diff --git a/package.json b/package.json index 12096343..530033ee 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,6 @@ "test-web-all": "nightwatch -e chrome test/web", "fuzzbasic": "jsfuzz gen/common/basic/fuzz.js ~/basic/corpus/ --versifier false", "fuzzhdl": "jsfuzz -r binaryen gen/common/hdl/fuzz.js ~/verilator/corpus/ --versifier false", - "machine": "node gen/tools/runmachine.js", "cli": "node gen/tools/8bws.js", "mkdoc": "typedoc --out web/jsdoc src/common/" }, diff --git a/presets/vcs/bb/duck_chase.bas b/presets/vcs/bb/duck_chase.bas index 5b917a27..9e425980 100644 --- a/presets/vcs/bb/duck_chase.bas +++ b/presets/vcs/bb/duck_chase.bas @@ -1,5 +1,5 @@ include fixed_point_math.asm - rem Zombie Chase + rem Zombie (Duck) Chase rem A fun game that may help you learn batari Basic! rem @@ -320,7 +320,7 @@ wrap turndelay = turndelay + 1 turndelay = turndelay & %11111011 temp1=turndelay&3 - if temp1 <> 0 goto SameFrame + if temp1 <> 0 then goto SameFrame if joy0left then carpos=carpos-1:gamebits{0}=1 diff --git a/src/common/baseplatform.ts b/src/common/baseplatform.ts index 96fa32fc..5b3500a4 100644 --- a/src/common/baseplatform.ts +++ b/src/common/baseplatform.ts @@ -440,6 +440,7 @@ export function getToolForFilename_6502(fn: string): string { if (fn.endsWith(".s")) return "ca65"; if (fn.endsWith(".ca65")) return "ca65"; if (fn.endsWith(".dasm")) return "dasm"; + if (fn.endsWith(".bb")) return "bataribasic"; if (fn.endsWith(".acme")) return "acme"; if (fn.endsWith(".xa")) return "xa"; if (fn.endsWith(".wiz")) return "wiz"; diff --git a/src/common/toolmeta.ts b/src/common/toolmeta.ts index cfb7dcac..107d1079 100644 --- a/src/common/toolmeta.ts +++ b/src/common/toolmeta.ts @@ -481,8 +481,8 @@ export const TOOL_META: { [id: string]: ToolMeta } = { includeDirs: ['/includes'], editorStyle: 'bataribasic', helpURL: 'help/bataribasic/manual.html', - wasmModule: 'bb2600basic', - platforms: { default: { preloadFS: '2600basic' } }, + wasiFSZip: 'bb-fs.zip', + platforms: { default: {} }, includePatterns: SHARED_INCLUDE_PATTERNS, linkPatterns: SHARED_LINK_PATTERNS, }, diff --git a/src/common/wasi/wasishim.ts b/src/common/wasi/wasishim.ts index fa0dba9d..c5b4d632 100644 --- a/src/common/wasi/wasishim.ts +++ b/src/common/wasi/wasishim.ts @@ -292,6 +292,12 @@ export class WASIMemoryFilesystem implements WASIFilesystem { } getFile(name: string) { let file = this.files.get(name); + // fallback: normalize leading './' so 'dir.name + "/" + path' joins still match + if (!file && name.startsWith('./')) { + const stripped = name.substring(2); + file = this.files.get(stripped) + ?? this.parent?.getFile(stripped); + } if (!file) { file = this.parent?.getFile(name); } diff --git a/src/worker/asmjs/bb2600basic.js b/src/worker/asmjs/bb2600basic.js deleted file mode 100644 index 5f77d549..00000000 --- a/src/worker/asmjs/bb2600basic.js +++ /dev/null @@ -1,37 +0,0 @@ - -var bb2600basic = (function() { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - return ( -function(bb2600basic) { - bb2600basic = bb2600basic || {}; - -var Module=typeof bb2600basic!=="undefined"?bb2600basic:{};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);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",abort);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_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}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=false;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>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)}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function getMemory(size){if(!staticSealed)return staticAlloc(size);if(!runtimeInitialized)return dynamicAlloc(size);return _malloc(size)}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=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&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=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 allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}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:y+" ["+x+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}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_MEMORY0){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>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var Math_abs=Math.abs;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 getUniqueRunDependency(id){return id}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+354256;__ATINIT__.push();memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAAACAAAACAAAABAAAAAgAAAAMAAAAHAAAAAYAAAAWAAAAAoAAAASAAAAIgAAADIAAABSAAAAYgAAAHIAAAALAAAAGgAAAFoAAAAWAAAAJgAAADYAAABWAAAAZgAAAHYAAAAJAAAA/wAAAAAAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzTAAAAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABEwkLCwAACQYLAAALAAYRAAAAERERAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAADQAAAAQNAAAAAAkOAAAAAAAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEhISAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAACgAAAAAKAAAAAAkLAAAAAAALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRlQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fAAAAAAAAAAAAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAAAAAAAACgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUBAAAAyAoAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAA6FwFAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABICwAABQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAADIZwUAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgLAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAPhgBQAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJRnBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX3CJAP8JLw9kZWZhdWx0LmluYwAyNjAwYmFzaWNfdmFyaWFibGVfcmVkZWZzLmgAaTpyOgB1c2FnZTogJXMgLXIgPHZhcmlhYmxlIHJlZGVmcyBmaWxlPiAtaSA8aW5jbHVkZXMgcGF0aD4KAGdhbWUKACglZCkgV2FybmluZzogbG9uZyBsaW5lCgBMMCVkAC4lcyA7ICVzCgAgICAgICAgZWNobyAiICAgICIsWyhzY29yZXRhYmxlIC0gKildZCAsICJieXRlcyBvZiBST00gc3BhY2UgbGVmdAAgaW4gYmFuayAyACBpbiBiYW5rIDQAIGluIGJhbmsgOAAiKQoAIAoAMjYwMCBCYXNpYyBjb21waWxhdGlvbiBjb21wbGV0ZS4KAAlKTVAgKCRGRkZDKQoAdmJsYW5rX2JCX2NvZGUKAAlMREEgIzAKAAlMREEgACBqc3IgJXMKACBzdGEgdGVtcDcKACBsZGEgIz4ocmV0X3BvaW50JWQtMSkKACBwaGEKACBsZGEgIzwocmV0X3BvaW50JWQtMSkKACBsZGEgIz4oJXMtMSkKACBsZGEgIzwoJXMtMSkKACBsZGEgdGVtcDcKACB0eGEKACBsZHggIyVkCgAgam1wIEJTX2pzcgoAcmV0X3BvaW50JWQKACVzCgAlcyx4CgAjAAlMRFggAGludmFsaWQAIGlmICg8KikgPiAyMjMKAAlyZXBlYXQgKDI3Ny08KikKCS5ieXRlIDAKAAlyZXBlbmQKCWVuZGlmCgBwZmNvbG9ybGFiZWwlZAoARXJyb3I6IE1pc3NpbmcgImVuZCIga2V5d29yZCBhdCBlbmQgb2YgcGZoZWlnaHQgZGVjbGFyYXRpb24KACBsZGEgIyVzCiBzdGEgcGxheWZpZWxkcG9zCgAgLmJ5dGUgJXMKACBsZGEgIz4ocGZjb2xvcmxhYmVsJWQtMjEpCgAgc3RhIHBmY29sb3J0YWJsZSsxCgAgbGRhICM8KHBmY29sb3JsYWJlbCVkLTIxKQoAIHN0YSBwZmNvbG9ydGFibGUKAFBGaGVpZ2h0cyBrZXJuZWwgb3B0aW9uIG5vdCBzZXQAIGlmICg8KikgPiAyMDYKAAlhbGlnbiAyNTYKCWVuZGlmCgAgaWYgKDwqKSA8IDg4CgAJcmVwZWF0ICg4OC0oPCopKQoJLmJ5dGUgMAoAcGxheWZpZWxkY29sb3JhbmRoZWlnaHQKACAuYnl0ZSAlcywwLDAsMAoARXJyb3I6IE1pc3NpbmcgImVuZCIga2V5d29yZCBhdCBlbmQgb2YgcGZjb2xvciBkZWNsYXJhdGlvbgoAIGxkYSAjJXMKIHN0YSBDT0xVUEYKAFdhcm5pbmc6IHNpemUgb2Ygc3Vic2VxdWVudCBwZmNvbG9yIHRhYmxlcyBzaG91bGQgbWF0Y2gKACVzLCVzJXMAIGxkYSAjPihwZmNvbG9ybGFiZWwlZC0lZCkKACBsZGEgIzwocGZjb2xvcmxhYmVsJWQtJWQpCgBQRmNvbG9ycyBrZXJuZWwgb3B0aW9uIG5vdCBzZXQAKCVkKTogJXMKAEVycm9yOiBNaXNzaW5nICJlbmQiIGtleXdvcmQgYXQgZW5kIG9mIHBsYXlmaWVsZCBkZWNsYXJhdGlvbgoACUxEQSAjPFBGMV9kYXRhJWQKAAlTVEEgUEYxcG9pbnRlcgoACUxEQSAjPlBGMV9kYXRhJWQKAAlTVEEgUEYxcG9pbnRlcisxCgAJTERBICM8UEYyX2RhdGElZAoACVNUQSBQRjJwb2ludGVyCgAJTERBICM+UEYyX2RhdGElZAoACVNUQSBQRjJwb2ludGVyKzEKACAgaWZjb25zdCBwZnJlcwoAICAgIGxkeCAjNCpwZnJlcy0xCgAgIGVsc2UKAAkgIGxkeCAjNDcKACAgZW5kaWYKAAlqbXAgcGZsYWJlbCVkCgBQRl9kYXRhJWQKAAkuYnl0ZSAlJQAxADAALCAlJQAKAHBmbGFiZWwlZAoACWxkYSBQRl9kYXRhJWQseAoACXN0YSBwbGF5ZmllbGQtMTI4LHgKAAlzdGEgcGxheWZpZWxkLHgKAAlkZXgKAAlicGwgcGZsYWJlbCVkCgAgbGR4ICMxCgBzd2l0Y2hyZXNldAAAIGxkYSAjMQoAIGJpdCBTV0NIQgoAc3dpdGNoc2VsZWN0AAAgbGRhICMyCgBzd2l0Y2hsZWZ0YgAAIGxkYSAjJDQwCgBzd2l0Y2hyaWdodGIAACBsZGEgIyQ4MAoAc3dpdGNoYncAACBsZGEgIzgKAGpveTB1cAAAIGxkYSAjJDEwCgAgYml0IFNXQ0hBCgBqb3kwZG93bgAAIGxkYSAjJDIwCgBqb3kwbGVmdAAAam95MHJpZ2h0AABqb3kxdXAAAGpveTFkb3duAABqb3kxbGVmdAAAIGxkYSAjNAoAam95MXJpZ2h0AABqb3kwZmlyZQAAIGJpdCBJTlBUNAoAam95MWZpcmUAACBiaXQgSU5QVDUKAGludmFsaWQgY29uc29sZSBzd2l0Y2gvY29udHJvbGxlciByZWZlcmVuY2UKAGluY2x1ZGVzLwAvaW5jbHVkZXMvAGJhbmtzdy5hc20AYmFuayBub3Qgc3VwcG9ydGVkCgAgZWNobyAiICAgICIsWyhzdGFydF9iYW5rJWQgLSAqKV1kICwgImJ5dGVzIG9mIFJPTSBzcGFjZSBsZWZ0IGluIGJhbmsgJWQiKQoAcgBDYW5ub3Qgb3BlbiBiYW5rc3cuYXNtIGZvciByZWFkaW5nCgA7c2l6ZT0AYnNjb2RlX2xlbmd0aCA9ICVkACBPUkcgJCVkRkY0LWJzY29kZV9sZW5ndGgKACBST1JHICQlWEY0LWJzY29kZV9sZW5ndGgKAHN0YXJ0X2JhbmslZAAlcwAgT1JHICQlZEZGQwoAIFJPUkcgJCVYRkMKACAud29yZCBzdGFydF9iYW5rJWQKACBPUkcgJCVkMDAwCgAgUk9SRyAkJVgwMAoAIHJlcGVhdCAyNTYKIC5ieXRlICRmZgogcmVwZW5kCgA7IGJCLmFzbSBmaWxlIGlzIHNwbGl0IGhlcmUKADAuJXMAIyVkCgAjMAoAMmsAAFJPTTJrID0gMQA4awAAYmFua3N3aXRjaF9ob3RzcG90ID0gJDFGRjgAYmFua3N3aXRjaCA9IDgAYnNfbWFzayA9IDEAOGtTQwAAc3VwZXJjaGlwID0gMQBzdXBlcmNoaXAuaW5jAGJhbmtzd2l0Y2guaW5jADE2awAAYmFua3N3aXRjaF9ob3RzcG90ID0gJDFGRjYAYmFua3N3aXRjaCA9IDE2AGJzX21hc2sgPSAzADE2a1NDAAAzMmsAAGJhbmtzd2l0Y2hfaG90c3BvdCA9ICQxRkY0AGJhbmtzd2l0Y2ggPSAzMgBic19tYXNrID0gNwAzMmtTQwAANGsAAFdhcm5pbmc6IHVuc3VwcG9ydGVkIFJPTSBzaXplOiAlcyBVc2luZyA0ay4KAENhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nCgBpbmNsdWRlcy5iQgB3AENhbm5vdCBvcGVuIGluY2x1ZGVzLmJCIGZvciB3cml0aW5nCgBiYi5hc20AACBpbmNsdWRlICVzCgAgaWYgKCg+KCorJWQpKSA+ICg+KikpCiBBTElHTiAyNTYKIGVuZGlmCgBQRjFfZGF0YSVkCgAgLmJ5dGUgJSUAUEYyX2RhdGElZAoACWxkeCAjMAoACXN0eCB0ZW1wMQoAdGVtcDIACXN0YSB0ZW1wMgoACWFzbAoAICByb2wgdGVtcDEKAAljbGMKAAlhZGMgAAl0YXgKAAlsZGEgdGVtcDEKAAlhZGMgIzAKAAlzdGEgdGVtcDEKAAl0eGEKAAlzZWMKAAlzYmMgAAlzYmMgIzAKAAlMRFkgIyVkCgAJanNyIG11bCVkCgBXYXJuaW5nIC0gdGhlcmUgc2VlbXMgdG8gYmUgYSBwcm9ibGVtLiAgWW91ciBjb2RlIG1heSBub3QgcnVuIHByb3Blcmx5LgoASWYgeW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlLCBwbGVhc2UgcmVwb3J0IGl0IC0gaXQgY291bGQgYmUgYSBidWcuCgAJbHNyCgAJanNyIGRpdiVkCgBleHRyYW5lb3VzIGVuZCBrZXl3b3JkIGVuY291bnRlcmVkCgAJU1RBIHRlbXAxCgAJU1RZIHRlbXAyCgBtaXNzaW5nICIpIiBhdCBlbmQgb2YgZnVuY3Rpb24gY2FsbAoAKCVkKSBXYXJuaW5nOiBmdW5jdGlvbiBjYWxsIHdpdGggbm8gYXJndW1lbnRzCgAJTERZIAAJU1RBIHRlbXAlZAoACWxkeCAjJXMKAAlsZGEgKDAseCkKAAlpbmMgMCx4CgAJYm5lICorNAoACWluYyAxLHgKACVzID0gJXMACWxkYSAjPCVzX2JlZ2luCgAJc3RhICVzCgAJbGRhICM+JXNfYmVnaW4KAAlzdGEgJXMrMQoACUpNUCAuc2tpcCVzCgAlc19iZWdpbgoARXJyb3I6IE1pc3NpbmcgImVuZCIga2V5d29yZCBhdCBlbmQgb2YgZGF0YQoACS5ieXRlICVzCgAuc2tpcCVzCgAgAGNvbnN0ACVzX2xlbmd0aAA9AC5za2lwJXMtJXMACUxEWCAlcwoACUxEQSAuJXNqdW1wdGFibGVoaSx4CgAJUEhBCgAJTERBIC4lc2p1bXB0YWJsZWxvLHgKAAlSVFMKAC4lc2p1bXB0YWJsZWhpCgAJLmJ5dGUgPiguJXMtMSkKAC4lc2p1bXB0YWJsZWxvCgAJLmJ5dGUgPCguJXMtMSkKAAlTVEEgJXMKACVzZm9yJXMALiVzCgBzdGVwAAAoJWQpIG5leHQgd2l0aG91dCBmb3IKADEAAAlMREEgJXMKAAlDTVAgAAlJTkMgJXMKAC0xAAAyNTUAAAlERUMgJXMKAAlDTEMKAAlBREMgACVzX2ZhaWxzYWZlACsxAAlCTUkgLiVzYmNzCgAuJXNiY3MKACBpZiAoKCogLSAuJXMpIDwgMTI3KSAmJiAoKCogLSAuJXMpID4gLTEyOCkKCUJFUSAuJXMKACBlbHNlCglibmUgLiVkc2tpcCVzCglqbXAgLiVzCgAuJWRza2lwJXMKACBlbmRpZgoACWJlcSAuJXMKACBpZiAoKCogLSAuJXMpIDwgMTI3KSAmJiAoKCogLSAuJXMpID4gLTEyOCkKCUJORSAuJXMKACBlbHNlCgliZXEgLiVkc2tpcCVzCglqbXAgLiVzCgAJYm5lIC4lcwoAIGlmICgoKiAtIC4lcykgPCAxMjcpICYmICgoKiAtIC4lcykgPiAtMTI4KQoJYmNzIC4lcwoAIGVsc2UKCWJjYyAuJWRza2lwJXMKCWptcCAuJXMKAAliY3MgLiVzCgAgaWYgKCgqIC0gLiVzKSA8IDEyNykgJiYgKCgqIC0gLiVzKSA+IC0xMjgpCgliY2MgLiVzCgAgZWxzZQoJYmNzIC4lZHNraXAlcwoJam1wIC4lcwoACWJjYyAuJXMKAHRoaXNiYW5rAABvdGhlcmJhbmsAAAlKTVAgQlNfcmV0dXJuCgAJdHN4CgAJbGRhIDIseCA7IGNoZWNrIHJldHVybiBhZGRyZXNzCgAJZW9yICMoPiopIDsgdnMuIGN1cnJlbnQgUENICgAJYW5kICMkRTAgOyAgbWFzayBvZmYgYWxsIGJ1dCB0b3AgMyBiaXRzCgAJYmVxICorNiA7IGlmIGVxdWFsLCBkbyBub3JtYWwgcmV0dXJuCgAJdHlhCgAJYmVxICorNSA7IGlmIGVxdWFsLCBkbyBub3JtYWwgcmV0dXJuCgBwZnJlYWQARXJyb3I6IHBmcGl4ZWwgbm90IHN1cHBvcnRlZCBpbiBtdWx0aXNwcml0ZSBrZXJuZWwKAAlMRFggIwBmbGlwADIKAG9mZgAxCgAwCgBwZnBpeGVsAEVycm9yOiBwZmhsaW5lIG5vdCBzdXBwb3J0ZWQgaW4gbXVsdGlzcHJpdGUga2VybmVsCgAJU1RBIHRlbXAzCgBwZmhsaW5lAEVycm9yOiBwZnZsaW5lIG5vdCBzdXBwb3J0ZWQgaW4gbXVsdGlzcHJpdGUga2VybmVsCgBwZnZsaW5lAEVycm9yOiBwZnNjcm9sbCBzdXBwb3J0IG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gbXVsdGlzcHJpdGUga2VybmVsCgAJTERBICMAbGVmdAByaWdodAB1cHVwAAA2CgBkb3duZG93bgA4CgB1cAAAZG93bgA0CgAoJWQpIHBmc2Nyb2xsIGRpcmVjdGlvbiB1bmtub3duCgBwZnNjcm9sbABFcnJvcjogTWlzc2luZyAiZW5kIiBrZXl3b3JkIGF0IGVuZCBvZiBpbmxpbmUgYXNtCgBwbGF5ZXIlc18lYwoAcGxheWVyY29sb3Ilc18lYwoACUxEQSAjPCVzCgAJU1RBIHBsYXllciVjcG9pbnRlcmxvCgAJU1RBIHBsYXllciVjY29sb3IKAAlMREEgIz4lcwoACVNUQSBwbGF5ZXIlY3BvaW50ZXJoaQoACVNUQSBwbGF5ZXIlY2NvbG9yKzEKACBpZiAoPCopIDwgMTAwCgAJcmVwZWF0ICgxMDAtPCopCgkuYnl0ZSAwCgAJLmJ5dGUgMAoARXJyb3I6IE1pc3NpbmcgImVuZCIga2V5d29yZCBhdCBlbmQgb2YgcGxheWVyIGRlY2xhcmF0aW9uCgAJLmJ5dGUgJXMAIGlmICg8KikgPiAoPCgqKyVkKSkKAAlyZXBlYXQgKCQxMDAtPCopCgkuYnl0ZSAwCgAJTERBICMlZAoACVNUQSBwbGF5ZXIlY2hlaWdodAoAbGl2ZXNfXyVzCgAJU1RBIGxpZmVwb2ludGVyCgAJTERBIGxpZmVwb2ludGVyKzEKAAlBTkQgIyRFMAoACU9SQSAjKD4lcykmKCQxRikKAAlTVEEgbGlmZXBvaW50ZXIrMQoAIGlmICg8KikgPiAoPCgqKzgpKQoARXJyb3I6IE5vdCBlbm91Z2ggZGF0YSBvciBtaXNzaW5nICJlbmQiIGtleXdvcmQgYXQgZW5kIG9mIGxpdmVzIGRlY2xhcmF0aW9uCgBpbmRleC1pbnZhbGlkAGpveQAAc3dpdGNoAAAJQkVRIAAJQk5FIAAuY29uZHBhcnQlZAoAcGZyZWFkAABjb2xsaXNpb24oAABjb2xsaXNpb24obWlzc2lsZTAscGxheWVyMSkAAAlCSVQgQ1hNMFAKAGNvbGxpc2lvbihtaXNzaWxlMCxwbGF5ZXIwKQAAY29sbGlzaW9uKG1pc3NpbGUxLHBsYXllcjApAAAJQklUIENYTTFQCgBjb2xsaXNpb24obWlzc2lsZTEscGxheWVyMSkAAGNvbGxpc2lvbihwbGF5ZXIwLHBsYXlmaWVsZCkAAAlCSVQgQ1hQMEZCCgBjb2xsaXNpb24ocGxheWVyMCxiYWxsKQAAY29sbGlzaW9uKHBsYXllcjEscGxheWZpZWxkKQAACUJJVCBDWFAxRkIKAGNvbGxpc2lvbihwbGF5ZXIxLGJhbGwpAABjb2xsaXNpb24obWlzc2lsZTAscGxheWZpZWxkKQAACUJJVCBDWE0wRkIKAGNvbGxpc2lvbihtaXNzaWxlMCxiYWxsKQAAY29sbGlzaW9uKG1pc3NpbGUxLHBsYXlmaWVsZCkAAAlCSVQgQ1hNMUZCCgBjb2xsaXNpb24obWlzc2lsZTEsYmFsbCkAAGNvbGxpc2lvbihiYWxsLHBsYXlmaWVsZCkAAAlCSVQgQ1hCTFBGCgBjb2xsaXNpb24ocGxheWVyMCxwbGF5ZXIxKQAACUJJVCBDWFBQTU0KAGNvbGxpc2lvbihtaXNzaWxlMCxtaXNzaWxlMSkAAGNvbGxpc2lvbihwbGF5ZXIxLG1pc3NpbGUwKQAAY29sbGlzaW9uKHBsYXllcjAsbWlzc2lsZTApAABjb2xsaXNpb24ocGxheWVyMCxtaXNzaWxlMSkAAGNvbGxpc2lvbihwbGF5ZXIxLG1pc3NpbGUxKQAAY29sbGlzaW9uKHBsYXlmaWVsZCxwbGF5ZXIwKQAAY29sbGlzaW9uKGJhbGwscGxheWVyMCkAAGNvbGxpc2lvbihwbGF5ZmllbGQscGxheWVyMSkAAGNvbGxpc2lvbihiYWxsLHBsYXllcjEpAABjb2xsaXNpb24ocGxheWZpZWxkLG1pc3NpbGUwKQAAY29sbGlzaW9uKGJhbGwsbWlzc2lsZTApAABjb2xsaXNpb24ocGxheWZpZWxkLG1pc3NpbGUxKQAAY29sbGlzaW9uKGJhbGwsbWlzc2lsZTEpAABjb2xsaXNpb24ocGxheWZpZWxkLGJhbGwpAABjb2xsaXNpb24ocGxheWVyMSxwbGF5ZXIwKQAAY29sbGlzaW9uKG1pc3NpbGUxLG1pc3NpbGUwKQAAKCVkKSBFcnJvcjogVW5rbm93biBjb2xsaXNpb24gdHlwZTogJXMKAAlCTUkgAAlCVlMgAAlCUEwgAAlCVkMgACglZCkgRXJyb3I6IHZhcmlhYmxlcyBpbiBiaXQgYWNjZXNzIG5vdCBzdXBwb3J0ZWQKAAlCSVQgACVjAAlMU1IKAAlBTkQgIyVkCgAJQkNTIAAJQkNDIAA8PgAAICAgICBCTkUgADw+ACAgICAgQkVRIAAgICAgIEJDUyAAICAgICBCQ0MgACBpZiAoKCogLSAuJXMpIDwgMTI3KSAmJiAoKCogLSAuJXMpID4gLTEyOCkKCWJ2YyAuJXMKACBlbHNlCglidnMgLiVkc2tpcCVzCglqbXAgLiVzCgAJYnZjIC4lcwoAIGlmICgoKiAtIC4lcykgPCAxMjcpICYmICgoKiAtIC4lcykgPiAtMTI4KQoJYnBsIC4lcwoAIGVsc2UKCWJtaSAuJWRza2lwJXMKCWptcCAuJXMKAAlicGwgLiVzCgAgaWYgKCgqIC0gLiVzKSA8IDEyNykgJiYgKCgqIC0gLiVzKSA+IC0xMjgpCglidnMgLiVzCgAgZWxzZQoJYnZjIC4lZHNraXAlcwoJam1wIC4lcwoACWJ2cyAuJXMKACBpZiAoKCogLSAuJXMpIDwgMTI3KSAmJiAoKCogLSAuJXMpID4gLTEyOCkKCWJtaSAuJXMKACBlbHNlCglicGwgLiVkc2tpcCVzCglqbXAgLiVzCgAJYm1pIC4lcwoAc3RhY2twdWxsAAAJVEFZCgAJUExBCgAJVFNYCgAJU1RZICQwMCx4CgAJU0VDCgAJU0JDICQxMDAseAoACUlOWAoACVRYUwoACSVzICQxMDAseAoACSVzIAA7IGNvbXBsZXggc3RhdGVtZW50IGRldGVjdGVkCgBBcmVnAHN0YWNrcHVsbABDYW5ub3QgZXZhbHVhdGUgZXhwcmVzc2lvbgoACU9SQSAjJWQKAHsAICBQSFAKAAogIFBMUAoACS5ieXRlICRGMCwgJDAzCgAJLmJ5dGUgJEQwLCAkMDMKAAkuYnl0ZSAkMEMKACglZCkgRXJyb3I6IGNhbiBvbmx5IGFzc2lnbiAwLCAxIG9yIGFub3RoZXIgYml0IHRvIGEgYml0CgAJU1RBIAAgIFNFQwoACVNCQyAlcwoAJWYACVNUWCAACUxEQSAjJXMKAHJhbmQAACAgICAgICAgbGRhIHJhbmQKACAgICAgICAgbHNyCgAgaWZjb25zdCByYW5kMTYKACAgICAgICAgcm9sIHJhbmQxNgoAICAgICAgICBiY2MgKis0CgAgICAgICAgIGVvciAjJEI0CgAgICAgICAgIHN0YSByYW5kCgAgICAgICAgIGVvciByYW5kMTYKAHJhbmRvbWl6ZQBzY29yZQAAc2NvcmVjAAAJU0VECgAJTERBIHNjb3JlKzIKAAlBREMgJXMKAAlBREMgIyQlZCVkCgAJU1RBIHNjb3JlKzIKAAlMREEgc2NvcmUrMQoACUFEQyAjMAoACVNUQSBzY29yZSsxCgAJTERBIHNjb3JlCgAJU1RBIHNjb3JlCgAJQ0xECgAJU0JDICMkJWQlZAoACVNCQyAjMAoACUxEQSAjJCVkJWQKAEFyZWcAAAlBREMgIzE2CgAJU0JDICMxNgoACUlOQyAACURFQyAAQXJlZwoACUNMQyAKAAlMRFkgJXMKAEFkZDQ0dG84OABBZGQ4OHRvNDQACUFEQyAjJWQKACtDTEMKCUFEQwAJU0VDIAoACVNCQyAAU3ViNDRmcm9tODgAU3ViODhmcm9tNDQACVNCQyAjJWQKAC1TRUMKCVNCQwAmQU5EAF5FT1IAfE9SQQAqTERZAG11bDE2AG11bDgAL0xEWQBkaXYxNgBkaXY4AHNyZWFkAAAoJWQpIEVycm9yOiBpbnZhbGlkIG9wZXJhdG9yOiAlcwoAICBBU0wKACAgTFNSCgAgIExEWCAAIGpzciBBc3NpZ244OHRvNDQAYnMAICBKU1IgQXNzaWduNDR0bzg4ACAgU1RYIABiYW5rACBqbXAgLiVzCgAgbGRhICM+KC4lcy0xKQoAIGxkYSAjPCguJXMtMSkKACBqc3IgLiVzCgB0dgAAbnRzYwAAb3ZlcnNjYW5fdGltZSA9IDM3AHZibGFua190aW1lID0gNDMAcGFsAABvdmVyc2Nhbl90aW1lID0gODIAdmJsYW5rX3RpbWUgPSA1NwBzZXQgVFY6IGludmFsaWQgVFYgdHlwZQoAc21hcnRicmFuY2hpbmcAAHJvbXNpemUAAG9wdGltaXphdGlvbgAAc3BlZWQAAHNpemUAAG5vaW5saW5lZGF0YQAAaW5saW5lcmFuZAAAbm9uZQAAa2VybmFsAABUaGUgcHJvcGVyIHNwZWxsaW5nIGlzICJrZXJuZWwuIiAgV2l0aCBhbiBlLiAgUGxlYXNlIG1ha2UgYSBub3RlIG9mIHRoaXMgdG8gc2F2ZSB5b3Vyc2VsZiBmcm9tIGZ1cnRoZXIgZW1iYXJhc3NtZW50LgoAa2VybmVsX29wdGlvbnMAAHJlYWRwYWRkbGUAAHJlYWRwYWRkbGUgPSAxAHBsYXllcjFjb2xvcnMAAHBsYXllcjFjb2xvcnMgPSAxAHBsYXllcmNvbG9ycwAAcGxheWVyY29sb3JzID0gMQBub19ibGFua19saW5lcwAAbm9fYmxhbmtfbGluZXMgPSAxAHBmY29sb3JzAABwZmhlaWdodHMAAGJhY2tncm91bmRjaGFuZ2UAAGJhY2tncm91bmRjaGFuZ2UgPSAxAHNldCBrZXJuZWxfb3B0aW9uczogT3B0aW9ucyB1bmtub3duIG9yIGludmFsaWQKAFBGaGVpZ2h0cyA9IDEAUEZjb2xvcnMgPSAxAFBGY29sb3JhbmRoZWlnaHQgPSAxAHNldCBrZXJuZWxfb3B0aW9uczogcmVhZHBhZGRsZSBtdXN0IGJlIHVzZWQgd2l0aCBub19ibGFua19saW5lcwoAc2V0IGtlcm5lbF9vcHRpb25zOiBJbnZhbGlkIGNhbWJpbmF0aW9uIG9mIG9wdGlvbnMKAGtlcm5lbAAAbXVsdGlzcHJpdGUAAG11bHRpc3ByaXRlID0gMQBtdWx0aXNwcml0ZS5pbmMAbXVsdGlzcHJpdGVfbm9faW5jbHVkZQAAc2V0IGtlcm5lbDoga2VybmVsIG5hbWUgdW5rbm93biBvciB1bnNwZWNpZmllZAoAZGVidWcAAGN5Y2xlc2NvcmUAAGRlYnVnc2NvcmUgPSAxAGN5Y2xlcwAAZGVidWdjeWNsZXMgPSAxAHNldCBkZWJ1ZzogZGVidWdnaW5nIG1vZGUgdW5rbm93bgoAbGVnYWN5AABsZWdhY3kgPSAlZABzZXQ6IHVua25vd24gcGFyYW1ldGVyCgAJcGxhCgBkcmF3c2NyZWVuAENhbm5vdCBvcGVuICVzIGZvciB3cml0aW5nCgA7IFRoaXMgZmlsZSBjb250YWlucyB2YXJpYWJsZSBtYXBwaW5nIGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdC4KAHJlbQAAaWYAAGVsc2UAAD4AADwAPD0AAD49ACYmAAB0aGVuJWQAaWYAfHwAAHRoZW4AAHRoZW4AJWRPUgA6AGdvdG8Ac2tpcGVsc2UlZAAlZDogQ2Fubm90IGZpbmQgZW5kIG9mIGxpbmUgLSBzdGF0ZW1lbnQgbWF5IGhhdmUgYmVlbiB0cnVuY2F0ZWQKAGNvbmRwYXJ0JWQAJWR0aGVuAGVuZAAAaW5jbHVkZXNmaWxlAABpbmNsdWRlAABpbmxpbmUAAGZ1bmN0aW9uAABnb3RvAABiYW5rAABzZGF0YQAAZGF0YQAAb24AAGNvbnN0AABkaW0AAGZvcgAAbmV4dAAAZ29zdWIAAHBmcGl4ZWwAAHBmaGxpbmUAAHBmY2xlYXIAAHBmdmxpbmUAAHBmc2Nyb2xsAABkcmF3c2NyZWVuAABhc20AAHBvcAAAc2V0AAByZXR1cm4AAHJlYm9vdAAAdmJsYW5rAABwZmNvbG9yczoAAHBmaGVpZ2h0czoAAHBsYXlmaWVsZDoAAGxpdmVzOgAAcGxheWVyMDoAAHBsYXllcjE6AABwbGF5ZXIyOgAAcGxheWVyMzoAAHBsYXllcjQ6AABwbGF5ZXI1OgAAcGxheWVyMGNvbG9yOgAAcGxheWVyMWNvbG9yOgAAPQAAbGV0AABFcnJvcjogVW5rbm93biBrZXl3b3JkOiAlcwoALnNraXBlbHNlJWQKAC0rICAgMFgweAAobnVsbCkALTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYATkFOAC4AOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAAOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQ6IAByd2EAaW5maW5pdHkAbmFu";var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___lock(){}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={"1024":flags["O_APPEND"],"64":flags["O_CREAT"],"128":flags["O_EXCL"],"0":flags["O_RDONLY"],"2":flags["O_RDWR"],"4096":flags["O_SYNC"],"512":flags["O_TRUNC"],"1":flags["O_WRONLY"]}}),bufferFrom:(function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsForNode:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),write:(function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21524:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}function ___wait(){}function __exit(status){exit(status)}function _exit(status){__exit(status)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}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 intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){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>2]=0;c[u>>2]=b;c[v>>2]=d;c[e+1152>>2]=0;c[A>>2]=0;c[G>>2]=0;c[H>>2]=3520;c[I>>2]=3532;c[J>>2]=0;a:while(1){d=sd(c[u>>2]|0,c[v>>2]|0,3560)|0;c[x>>2]=d;if((d|0)==-1)break;switch(c[x>>2]|0){case 63:{K=6;break a;break}case 105:{c[J>>2]=Zb(500)|0;bd(c[J>>2]|0,c[88538]|0)|0;break}case 114:{c[I>>2]=Zb(100)|0;bd(c[I>>2]|0,c[88538]|0)|0;break}default:{}}}if((K|0)==6){K=c[721]|0;c[t>>2]=c[c[v>>2]>>2];Od(K,3565,t)|0;ga(1)}c[88384]=0;Td(3621,s)|0;Wb(c[F>>2]|0);Va(c[J>>2]|0);c[w>>2]=Zb(200)|0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=50)break;J=Zb(50)|0;c[(c[w>>2]|0)+(c[x>>2]<<2)>>2]=J;c[x>>2]=(c[x>>2]|0)+1}while(1){c[x>>2]=0;while(1){if((c[x>>2]|0)>=50)break;c[y>>2]=0;while(1){if((c[y>>2]|0)>=50)break;a[(c[(c[w>>2]|0)+(c[x>>2]<<2)>>2]|0)+(c[y>>2]|0)>>0]=0;c[y>>2]=(c[y>>2]|0)+1}c[x>>2]=(c[x>>2]|0)+1}c[B>>2]=Cd(D,500,c[689]|0)|0;cb();bd(E,D)|0;if(!(c[B>>2]|0))break;c[x>>2]=0;c[y>>2]=0;c[z>>2]=0;while(1){if(!(a[D+(c[x>>2]|0)>>0]|0))break;J=c[x>>2]|0;c[x>>2]=J+1;a[C>>0]=a[D+J>>0]|0;if((a[C>>0]|0)==32){if(!(c[G>>2]|0)){c[y>>2]=(c[y>>2]|0)+1;c[z>>2]=0}c[G>>2]=(c[G>>2]|0)+1}else{c[G>>2]=0;J=a[C>>0]|0;s=c[(c[w>>2]|0)+(c[y>>2]<<2)>>2]|0;t=c[z>>2]|0;c[z>>2]=t+1;a[s+t>>0]=J}}if((c[y>>2]|0)>40){J=c[721]|0;c[r>>2]=db()|0;Od(J,3627,r)|0}if(!(a[c[c[w>>2]>>2]>>0]|0)){J=c[c[w>>2]>>2]|0;t=c[A>>2]|0;c[A>>2]=t+1;c[q>>2]=t;lc(J,3652,q)|0}if(jc(c[c[w>>2]>>2]|0,12885,3)|0){c[p>>2]=c[c[w>>2]>>2];c[p+4>>2]=E;Td(3657,p)|0}Yb(c[w>>2]|0)}Ha()|0;c[88384]=Ia()|0;Wa();Td(3667,o)|0;if((c[88384]|0)==8)Td(3733,n)|0;if((c[88384]|0)==16)Td(3744,m)|0;if((c[88384]|0)!=32){Td(3766,j)|0;Td(3770,i)|0;Td(3770,h)|0;Td(3770,g)|0;L=c[F>>2]|0;M=c[I>>2]|0;Xb(L,M);N=c[H>>2]|0;Sa(N);O=c[721]|0;Od(O,3773,f)|0;k=e;return 0}Td(3755,l)|0;Td(3766,j)|0;Td(3770,i)|0;Td(3770,h)|0;Td(3770,g)|0;L=c[F>>2]|0;M=c[I>>2]|0;Xb(L,M);N=c[H>>2]|0;Sa(N);O=c[721]|0;Od(O,3773,f)|0;k=e;return 0}function sa(){var a=0;a=k;k=k+16|0;Td(3807,a)|0;k=a;return}function ta(){return c[88385]|0}function ua(){var a=0;a=k;k=k+16|0;Td(3821,a)|0;k=a;return}function va(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;d=k;k=k+80|0;e=d+64|0;f=d+56|0;g=d+72|0;h=d;i=d+68|0;c[g>>2]=b;c[i>>2]=0;wa();if(a[c[(c[g>>2]|0)+8>>2]>>0]|0?(a[c[(c[g>>2]|0)+8>>2]>>0]|0)!=58:0){c[i>>2]=xa(c[(c[g>>2]|0)+8>>2]|0,h)|0;if(c[i>>2]|0)ya(h);Td(3846,e)|0;za(c[(c[g>>2]|0)+8>>2]|0,c[i>>2]|0);j=c[g>>2]|0;l=j+4|0;m=c[l>>2]|0;Aa(m);n=c[g>>2]|0;o=n+4|0;p=c[o>>2]|0;Ba(p);k=d;return}Td(3837,f)|0;j=c[g>>2]|0;l=j+4|0;m=c[l>>2]|0;Aa(m);n=c[g>>2]|0;o=n+4|0;p=c[o>>2]|0;Ba(p);k=d;return}function wa(){bd(18400,4029)|0;return}function xa(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0;e=k;k=k+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=b;c[g>>2]=d;c[j>>2]=0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=50)break;if(!(a[(c[f>>2]|0)+(c[h>>2]|0)>>0]|0)){l=4;break}if((a[(c[f>>2]|0)+(c[h>>2]|0)>>0]|0)==91){l=6;break}c[h>>2]=(c[h>>2]|0)+1}if((l|0)==4)c[h>>2]=50;else if((l|0)==6)c[j>>2]=1;if((c[h>>2]|0)>=50){m=c[j>>2]|0;k=e;return m|0}bd(c[g>>2]|0,(c[f>>2]|0)+(c[h>>2]|0)+1|0)|0;l=c[g>>2]|0;a[l+((Zc(c[g>>2]|0)|0)-1)>>0]=0;l=c[g>>2]|0;if((a[l+((Zc(c[g>>2]|0)|0)-2)>>0]|0)==93){l=c[g>>2]|0;a[l+((Zc(c[g>>2]|0)|0)-2)>>0]=0}l=c[g>>2]|0;if((a[l+((Zc(c[g>>2]|0)|0)-1)>>0]|0)==93){l=c[g>>2]|0;a[l+((Zc(c[g>>2]|0)|0)-1)>>0]=0}c[i>>2]=c[h>>2];while(1){if((c[i>>2]|0)>=50)break;a[(c[f>>2]|0)+(c[i>>2]|0)>>0]=0;c[i>>2]=(c[i>>2]|0)+1}m=c[j>>2]|0;k=e;return m|0}function ya(a){a=a|0;var b=0,d=0,e=0;b=k;k=k+16|0;d=b+8|0;e=b+12|0;c[e>>2]=a;Td(4023,b)|0;Ca(c[e>>2]|0)|0;c[d>>2]=c[e>>2];Td(4011,d)|0;k=b;return}function za(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=k;k=k+32|0;e=d+8|0;f=d;g=d+16|0;h=d+12|0;c[g>>2]=a;c[h>>2]=b;b=c[g>>2]|0;if(c[h>>2]|0){c[e>>2]=b;Td(4015,e)|0;k=d;return}else{Ca(b)|0;c[f>>2]=c[g>>2];Td(4011,f)|0;k=d;return}}function Aa(b){b=b|0;var d=0,e=0;d=k;k=k+16|0;e=d;c[e>>2]=b;while(1){b=c[e>>2]|0;if((a[b+((Zc(c[e>>2]|0)|0)-1)>>0]|0)!=10?(b=c[e>>2]|0,(a[b+((Zc(c[e>>2]|0)|0)-1)>>0]|0)!=13):0)break;b=c[e>>2]|0;a[b+((Zc(c[e>>2]|0)|0)-1)>>0]=0}k=d;return}function Ba(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;b=k;k=k+144|0;d=b+128|0;e=b+120|0;f=b+112|0;g=b+104|0;h=b+96|0;i=b+88|0;j=b+80|0;l=b+72|0;m=b+64|0;n=b+56|0;o=b+48|0;p=b+40|0;q=b+32|0;r=b+24|0;s=b+16|0;t=b+8|0;u=b;v=b+132|0;c[v>>2]=a;if(c[88386]|0?(c[88387]|0)!=(c[88388]|0):0){Td(3861,t)|0;t=(c[88389]|0)+1|0;c[88389]=t;c[s>>2]=t;Td(3873,s)|0;Td(3897,r)|0;c[q>>2]=c[88389];Td(3903,q)|0;Td(3897,p)|0;c[o>>2]=c[v>>2];Td(3927,o)|0;Td(3897,n)|0;c[m>>2]=c[v>>2];Td(3942,m)|0;Td(3897,l)|0;Td(3957,j)|0;Td(3897,i)|0;Td(3969,h)|0;Td(3897,g)|0;c[f>>2]=c[88388];Td(3975,f)|0;Td(3985,e)|0;c[d>>2]=c[88389];Td(3998,d)|0;k=b;return}c[u>>2]=c[v>>2];Td(3852,u)|0;k=b;return}function Ca(a){a=a|0;var b=0,d=0,e=0,f=0;b=k;k=k+16|0;d=b+8|0;e=b+4|0;c[d>>2]=a;c[e>>2]=Da(c[d>>2]|0)|0;if(!(c[e>>2]|0)){f=c[e>>2]|0;k=b;return f|0}Td(4021,b)|0;f=c[e>>2]|0;k=b;return f|0}function Da(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=k;k=k+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=b;c[g>>2]=0;while(1){h=c[f>>2]|0;if((c[g>>2]|0)>=(c[88390]|0))break;if(!(ic(h,13392+((c[g>>2]|0)*100|0)|0)|0)){i=4;break}c[g>>2]=(c[g>>2]|0)+1}if((i|0)==4){c[e>>2]=1;j=c[e>>2]|0;k=d;return j|0}if(((a[h>>0]|0)!=36?(a[c[f>>2]>>0]|0)!=37:0)?(a[c[f>>2]>>0]|0)>=58:0){c[e>>2]=0;j=c[e>>2]|0;k=d;return j|0}c[e>>2]=1;j=c[e>>2]|0;k=d;return j|0}function Ea(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;d=k;k=k+528|0;e=d+480|0;f=d+472|0;g=d+464|0;h=d+456|0;i=d+448|0;j=d+440|0;l=d+432|0;m=d+416|0;n=d+408|0;o=d+400|0;p=d+392|0;q=d+384|0;r=d+376|0;s=d+368|0;t=d+360|0;u=d+352|0;v=d+344|0;w=d+336|0;x=d+328|0;y=d+320|0;z=d+312|0;A=d+304|0;B=d+296|0;C=d+288|0;D=d+280|0;E=d+272|0;F=d+264|0;G=d+256|0;H=d+248|0;I=d+240|0;J=d+232|0;K=d+224|0;L=d+216|0;M=d+512|0;N=d+112|0;O=d;P=d+508|0;Q=d+504|0;R=d+500|0;S=d+496|0;T=d+492|0;c[M>>2]=b;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=0;c[S>>2]=0;b=(ed(c[(c[M>>2]|0)+4>>2]|0,13098,9)|0)!=0;M=c[88391]&48;if(!b){if((M|0)==32){b=c[88392]|0;c[88392]=b+1;lc(18464+(b*50|0)|0,4037,L)|0;L=c[88392]|0;c[88392]=L+1;lc(18464+(L*50|0)|0,4053,K)|0;K=c[88392]|0;c[88392]=K+1;lc(18464+(K*50|0)|0,4080,J)|0;J=18464+((c[88392]|0)*50|0)|0;c[I>>2]=c[88392];lc(J,4096,I)|0;c[T>>2]=c[88392];c[88392]=(c[88392]|0)+1;while(1){if(Cd(N,100,c[689]|0)|0){if((a[N>>0]|0)<58?(a[N>>0]|0)>47:0)U=7}else U=7;if((U|0)==7?(U=0,(a[N>>0]|0)!=101):0){U=8;break}c[88385]=(c[88385]|0)+1;if(!(jc(N,12885,3)|0))break;Aa(N);if(c[R>>2]|0){I=c[88392]|0;c[88392]=I+1;c[G>>2]=N;lc(18464+(I*50|0)|0,4201,G)|0}else{c[H>>2]=N;Td(4173,H)|0}c[R>>2]=(c[R>>2]|0)+1}if((U|0)==8){Fa(4112);ga(1)}c[F>>2]=c[T>>2];Td(4212,F)|0;Td(4240,E)|0;c[D>>2]=c[T>>2];Td(4261,D)|0;Td(4289,C)|0;k=d;return}if((c[88391]&48|0)!=48){Fa(4308);ga(1)}C=c[88392]|0;c[88392]=C+1;lc(18464+(C*50|0)|0,4340,B)|0;B=c[88392]|0;c[88392]=B+1;lc(18464+(B*50|0)|0,4356,A)|0;A=c[88392]|0;c[88392]=A+1;lc(18464+(A*50|0)|0,4375,z)|0;z=c[88392]|0;c[88392]=z+1;lc(18464+(z*50|0)|0,4390,y)|0;y=c[88392]|0;c[88392]=y+1;lc(18464+(y*50|0)|0,4080,x)|0;x=c[88392]|0;c[88392]=x+1;lc(18464+(x*50|0)|0,4418,w)|0;c[88393]=c[88392];while(1){if(Cd(N,100,c[689]|0)|0){if((a[N>>0]|0)<58?(a[N>>0]|0)>47:0)U=21}else U=21;if((U|0)==21?(U=0,(a[N>>0]|0)!=101):0){U=22;break}c[88385]=(c[88385]|0)+1;if(!(jc(N,12885,3)|0)){U=76;break}Aa(N);if(c[R>>2]|0){w=c[88392]|0;c[88392]=w+1;c[u>>2]=N;lc(18464+(w*50|0)|0,4443,u)|0}else{c[v>>2]=N;Td(4173,v)|0}c[R>>2]=(c[R>>2]|0)+1}if((U|0)==22){Fa(4112);ga(1)}else if((U|0)==76){k=d;return}}if((M|0)!=16){if((c[88391]&48|0)!=48){Fa(4663);ga(1)}while(1){if(Cd(N,100,c[689]|0)|0){if((a[N>>0]|0)<58?(a[N>>0]|0)>47:0)U=61}else U=61;if((U|0)==61?(U=0,(a[N>>0]|0)!=101):0){U=62;break}c[88385]=(c[88385]|0)+1;if(!(jc(N,12885,3)|0)){U=76;break}Aa(N);if(c[R>>2]|0){c[Q>>2]=0;c[P>>2]=0;while(1){if(!((c[Q>>2]|0)!=0^1))break;M=18464+(((c[88393]|0)+(c[S>>2]|0)|0)*50|0)|0;v=c[P>>2]|0;c[P>>2]=v+1;if((a[M+v>>0]|0)==44)c[Q>>2]=(c[Q>>2]|0)+1;if((c[P>>2]|0)>99){U=71;break}}if((U|0)==71){U=0;Fa(4542)}bd(O,18464+(((c[88393]|0)+(c[S>>2]|0)|0)*50|0)|0)|0;a[O+((c[P>>2]|0)-1)>>0]=0;if((c[P>>2]|0)<100){v=c[88393]|0;M=c[S>>2]|0;c[S>>2]=M+1;u=O+(c[P>>2]|0)+1|0;c[e>>2]=O;c[e+4>>2]=N;c[e+8>>2]=u;lc(18464+((v+M|0)*50|0)|0,4599,e)|0}}else{c[f>>2]=N;Td(4520,f)|0}c[R>>2]=(c[R>>2]|0)+1}if((U|0)==62){Fa(4460);ga(1)}else if((U|0)==76){k=d;return}}if(!(c[88394]|0)){f=c[88392]|0;c[88392]=f+1;lc(18464+(f*50|0)|0,4340,t)|0;t=c[88392]|0;c[88392]=t+1;lc(18464+(t*50|0)|0,4356,s)|0;s=c[88392]|0;c[88392]=s+1;lc(18464+(s*50|0)|0,4375,r)|0;r=c[88392]|0;c[88392]=r+1;lc(18464+(r*50|0)|0,4390,q)|0;q=c[88392]|0;c[88392]=q+1;lc(18464+(q*50|0)|0,4080,p)|0;p=18464+((c[88392]|0)*50|0)|0;c[o>>2]=c[88392];lc(p,4096,o)|0;c[88392]=(c[88392]|0)+1}c[S>>2]=1;while(1){if(Cd(N,100,c[689]|0)|0){if((a[N>>0]|0)<58?(a[N>>0]|0)>47:0)U=35}else U=35;if((U|0)==35?(U=0,(a[N>>0]|0)!=101):0){U=36;break}c[88385]=(c[88385]|0)+1;if(!(jc(N,12885,3)|0))break;Aa(N);do if(c[R>>2]|0){if((c[88394]|0)==1){o=c[88392]|0;c[88392]=o+1;c[l>>2]=N;lc(18464+(o*50|0)|0,4443,l)|0;break}c[Q>>2]=0;c[P>>2]=0;while(1){if((c[Q>>2]|0)==(((c[88394]|0)+3|0)%4|0|0))break;o=18464+(((c[88393]|0)+(c[S>>2]|0)|0)*50|0)|0;p=c[P>>2]|0;c[P>>2]=p+1;if((a[o+p>>0]|0)==44)c[Q>>2]=(c[Q>>2]|0)+1;if((c[P>>2]|0)>99){U=48;break}}if((U|0)==48){U=0;Fa(4542)}bd(O,18464+(((c[88393]|0)+(c[S>>2]|0)|0)*50|0)|0)|0;a[O+((c[P>>2]|0)-1)>>0]=0;if((c[P>>2]|0)<100){p=c[88393]|0;o=c[S>>2]|0;c[S>>2]=o+1;q=O+(c[P>>2]|0)+1|0;c[m>>2]=O;c[m+4>>2]=N;c[m+8>>2]=q;lc(18464+((p+o|0)*50|0)|0,4599,m)|0}}else{c[n>>2]=N;Td(4520,n)|0;if(!(c[88394]|0))c[88393]=(c[88392]|0)-1;c[88394]=((c[88394]|0)+1|0)%4|0;c[R>>2]=(c[R>>2]|0)+1}while(0)}if((U|0)==36){Fa(4460);ga(1)}U=85-(c[88394]|0)-(((c[88394]<<1|c[88394]<<2)^4)&4)|0;c[j>>2]=c[88393];c[j+4>>2]=U;Td(4607,j)|0;Td(4240,i)|0;i=85-(c[88394]|0)-(((c[88394]<<1|c[88394]<<2)^4)&4)|0;c[h>>2]=c[88393];c[h+4>>2]=i;Td(4635,h)|0;Td(4289,g)|0;k=d;return}function Fa(a){a=a|0;var b=0,d=0,e=0,f=0;b=k;k=k+16|0;d=b;e=b+8|0;c[e>>2]=a;a=c[721]|0;f=c[e>>2]|0;c[d>>2]=c[88385];c[d+4>>2]=f;Od(a,4694,d)|0;k=b;return}function Ga(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;e=k;k=k+5408|0;f=e+5376|0;g=e+5368|0;h=e+5360|0;i=e+5352|0;j=e+5344|0;l=e+5336|0;m=e+5328|0;n=e+5320|0;o=e+5312|0;p=e+5304|0;q=e+5296|0;r=e+5288|0;s=e+5280|0;t=e+5272|0;u=e+5264|0;v=e+5256|0;w=e+5248|0;x=e+5240|0;y=e+5232|0;z=e+5224|0;A=e+5216|0;B=e+5208|0;C=e+5200|0;D=e+5192|0;E=e+5184|0;F=e+5176|0;G=e+5168|0;H=e+5160|0;I=e+5152|0;J=e+5144|0;K=e+5136|0;L=e+5128|0;M=e+5120|0;N=e+5112|0;O=e+5396|0;P=e+5401|0;Q=e+5400|0;R=e+5392|0;S=e+5388|0;T=e+5384|0;U=e+5380|0;V=e+5008|0;W=e;c[O>>2]=b;a[P>>0]=46;a[Q>>0]=88;c[U>>2]=0;if((d[c[(c[O>>2]|0)+8>>2]>>0]|0)>32)a[P>>0]=a[c[(c[O>>2]|0)+8>>2]>>0]|0;if((d[c[(c[O>>2]|0)+12>>2]>>0]|0)>32)a[Q>>0]=a[c[(c[O>>2]|0)+12>>2]>>0]|0;while(1){if(Cd(V,100,c[689]|0)|0){if((a[V>>0]|0)<58?(a[V>>0]|0)>47:0)X=9}else X=9;if((X|0)==9?(X=0,(a[V>>0]|0)!=101):0){X=10;break}c[88385]=(c[88385]|0)+1;O=(jc(V,12885,3)|0)!=0;Y=(c[88395]|0)!=0;if(!O)break;if(Y){c[268464+(c[88396]<<10)+(c[319664+(c[88396]<<2)>>2]<<2)>>2]=0;c[R>>2]=0;while(1){if((c[R>>2]|0)>=32)break;if((a[V+(c[R>>2]|0)>>0]|0)!=(a[P>>0]|0)?(a[V+(c[R>>2]|0)>>0]|0)!=(a[Q>>0]|0):0)break;O=268464+(c[88396]<<10)+(c[319664+(c[88396]<<2)>>2]<<2)|0;c[O>>2]=c[O>>2]<<1;if((a[V+(c[R>>2]|0)>>0]|0)==(a[Q>>0]|0)){O=268464+(c[88396]<<10)+(c[319664+(c[88396]<<2)>>2]<<2)|0;c[O>>2]=c[O>>2]|1}c[R>>2]=(c[R>>2]|0)+1}O=319664+(c[88396]<<2)|0;c[O>>2]=(c[O>>2]|0)+1}else{O=c[U>>2]|0;c[U>>2]=O+1;bd(W+(O*100|0)|0,V)|0}}if((X|0)==10){Fa(4704);ga(1)}if(Y){c[N>>2]=c[88396];Td(4766,N)|0;Td(4785,M)|0;c[L>>2]=c[88396];Td(4802,L)|0;Td(4821,K)|0;c[J>>2]=c[88396];Td(4840,J)|0;Td(4859,I)|0;c[H>>2]=c[88396];Td(4876,H)|0;Td(4895,G)|0;c[88396]=(c[88396]|0)+1;k=e;return}Td(4914,F)|0;Td(4931,E)|0;Td(4951,D)|0;Td(4959,C)|0;Td(4971,B)|0;c[A>>2]=c[88396];Td(4980,A)|0;c[z>>2]=c[88396];Td(4996,z)|0;c[S>>2]=0;while(1){if((c[S>>2]|0)>=(c[U>>2]|0))break;Td(5007,y)|0;c[T>>2]=0;while(1){if((c[T>>2]|0)>=8)break;if((a[W+((c[S>>2]|0)*100|0)+(c[T>>2]|0)>>0]|0)==(a[Q>>0]|0))Td(5017,x)|0;else Td(5019,w)|0;c[T>>2]=(c[T>>2]|0)+1}Td(5021,v)|0;c[T>>2]=15;while(1){if((c[T>>2]|0)<8)break;if((a[W+((c[S>>2]|0)*100|0)+(c[T>>2]|0)>>0]|0)==(a[Q>>0]|0))Td(5017,u)|0;else Td(5019,t)|0;c[T>>2]=(c[T>>2]|0)+-1}Td(5021,s)|0;c[T>>2]=16;while(1){if((c[T>>2]|0)>=24)break;if((a[W+((c[S>>2]|0)*100|0)+(c[T>>2]|0)>>0]|0)==(a[Q>>0]|0))Td(5017,r)|0;else Td(5019,q)|0;c[T>>2]=(c[T>>2]|0)+1}Td(5021,p)|0;c[T>>2]=31;while(1){if((c[T>>2]|0)<24)break;if((a[W+((c[S>>2]|0)*100|0)+(c[T>>2]|0)>>0]|0)==(a[Q>>0]|0))Td(5017,o)|0;else Td(5019,n)|0;c[T>>2]=(c[T>>2]|0)+-1}Td(5026,m)|0;c[S>>2]=(c[S>>2]|0)+1}c[l>>2]=c[88396];Td(5028,l)|0;c[j>>2]=c[88396];Td(5039,j)|0;if(c[88397]|0)Td(5057,i)|0;else Td(5079,h)|0;Td(5097,g)|0;c[f>>2]=c[88396];Td(5103,f)|0;c[88396]=(c[88396]|0)+1;k=e;return}function Ha(){return c[88387]|0}function Ia(){return c[88386]|0}function Ja(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+144|0;d=b+128|0;e=b+64|0;f=b+48|0;g=b+32|0;h=b+16|0;i=b;j=b+132|0;c[j>>2]=a;if((c[88386]|0)==0|(c[88387]|0)==1){c[i>>2]=c[j>>2];Td(3852,i)|0;k=b;return}else{Td(3861,b+8|0)|0;i=(c[88389]|0)+1|0;c[88389]=i;c[h>>2]=i;Td(3873,h)|0;Td(3897,b+24|0)|0;c[g>>2]=c[88389];Td(3903,g)|0;Td(3897,b+40|0)|0;c[f>>2]=c[j>>2];Td(3927,f)|0;Td(3897,b+56|0)|0;c[e>>2]=c[j>>2];Td(3942,e)|0;Td(3897,b+72|0)|0;Td(3957,b+80|0)|0;Td(3897,b+88|0)|0;Td(3969,b+96|0)|0;Td(3897,b+104|0)|0;Td(5119,b+112|0)|0;Td(3985,b+120|0)|0;c[d>>2]=c[88389];Td(3998,d)|0;k=b;return}}function Ka(a){a=a|0;var b=0,d=0;b=k;k=k+240|0;d=b+236|0;c[d>>2]=a;if(!(jc(c[d>>2]|0,5128,11)|0)){Td(5141,b)|0;Td(5150,b+8|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5162,12)|0)){Td(5176,b+16|0)|0;Td(5150,b+24|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5185,11)|0)){Td(5198,b+32|0)|0;Td(5150,b+40|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5209,12)|0)){Td(5223,b+48|0)|0;Td(5150,b+56|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5234,8)|0)){Td(5244,b+64|0)|0;Td(5150,b+72|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5253,6)|0)){Td(5261,b+80|0)|0;Td(5272,b+88|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5284,8)|0)){Td(5294,b+96|0)|0;Td(5272,b+104|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5305,8)|0)){Td(5198,b+112|0)|0;Td(5272,b+120|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5315,9)|0)){Td(5223,b+128|0)|0;Td(5272,b+136|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5326,6)|0)){Td(5141,b+144|0)|0;Td(5272,b+152|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5334,8)|0)){Td(5176,b+160|0)|0;Td(5272,b+168|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5344,8)|0)){Td(5354,b+176|0)|0;Td(5272,b+184|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5363,9)|0)){Td(5244,b+192|0)|0;Td(5272,b+200|0)|0;k=b;return}if(!(jc(c[d>>2]|0,5374,8)|0)){Td(5223,b+208|0)|0;Td(5384,b+216|0)|0;k=b;return}if(jc(c[d>>2]|0,5396,8)|0){Fa(5418);k=b;return}else{Td(5223,b+224|0)|0;Td(5406,b+232|0)|0;k=b;return}}function La(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=k;k=k+1152|0;e=d+1128|0;f=d+1120|0;g=d+1112|0;h=d+1104|0;i=d+1096|0;j=d+1088|0;l=d+1080|0;m=d+1072|0;n=d+1064|0;o=d+1056|0;p=d+1048|0;q=d+1040|0;r=d+1032|0;s=d+1024|0;t=d+1016|0;u=d+1140|0;v=d+1136|0;w=d+512|0;x=d;y=d+1132|0;c[u>>2]=b;if((c[u>>2]|0)==1){k=d;return}a[x>>0]=0;bd(x,319872)|0;if((a[319872+((Zc(319872)|0)-1)>>0]|0)!=92?(a[319872+((Zc(319872)|0)-1)>>0]|0)!=47:0)Sd(x,5473)|0;else Sd(x,5463)|0;Sd(x,5484)|0;c[88387]=c[u>>2];if((c[88387]|0)>(c[88388]|0))Fa(5495);u=(c[88387]|0)-1|0;c[t>>2]=(c[88387]|0)-1;c[t+4>>2]=u;Td(5515,t)|0;t=td(5484,5591)|0;c[v>>2]=t;if((t|0)==0?(t=td(x,5591)|0,c[v>>2]=t,(t|0)==0):0){Od(c[721]|0,5593,s)|0;ga(1)}do if(!(Cd(w,500,c[v>>2]|0)|0))break;while((jc(w,5629,6)|0)!=0);c[y>>2]=Ud(w+6|0)|0;if((c[88387]|0)==2){s=c[88398]|0;c[88398]=s+1;c[r>>2]=c[y>>2];lc(320384+(s*100|0)|0,5636,r)|0}c[q>>2]=(c[88387]|0)-1;Td(5655,q)|0;c[p>>2]=(15-((c[88386]|0)/2|0)+((c[88387]|0)-1<<1)<<4)+15;Td(5682,p)|0;c[o>>2]=(c[88387]|0)-1;Td(5709,o)|0;while(1){if(!(Cd(w,500,c[v>>2]|0)|0))break;if((a[w>>0]|0)==32){c[n>>2]=w;Td(5722,n)|0}}zd(c[v>>2]|0)|0;c[m>>2]=(c[88387]|0)-1;Td(5725,m)|0;c[l>>2]=(15-((c[88386]|0)/2|0)+((c[88387]|0)-1<<1)<<4)+15;Td(5738,l)|0;c[j>>2]=(c[88387]|0)-1;Td(5751,j)|0;c[i>>2]=(c[88387]|0)-1;Td(5751,i)|0;c[h>>2]=c[88387];Td(5772,h)|0;c[g>>2]=15-((c[88386]|0)/2|0)+(c[88387]<<1)<<4;Td(5785,g)|0;if(c[88397]|0)Td(5798,f)|0;if((c[88387]|0)!=(c[88388]|0)){k=d;return}Td(5830,e)|0;k=d;return}function Ma(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0.0;d=k;k=k+80|0;e=d+56|0;f=d+64|0;g=d+60|0;h=d;c[f>>2]=b;c[g>>2]=Na(c[f>>2]|0)|0;a[(c[f>>2]|0)+(c[g>>2]|0)>>0]=0;c[e>>2]=(c[f>>2]|0)+(c[g>>2]|0)+1;lc(h,5859,e)|0;i=+Xd(h);k=d;return +i}function Na(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=k;k=k+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=b;c[g>>2]=0;while(1){if((c[g>>2]|0)>=50){h=8;break}if(!(a[(c[f>>2]|0)+(c[g>>2]|0)>>0]|0)){h=4;break}i=c[g>>2]|0;if((a[(c[f>>2]|0)+(c[g>>2]|0)>>0]|0)==46){h=6;break}c[g>>2]=i+1}if((h|0)==4){c[e>>2]=50;j=c[e>>2]|0;k=d;return j|0}else if((h|0)==6){c[e>>2]=i;j=c[e>>2]|0;k=d;return j|0}else if((h|0)==8){c[e>>2]=c[g>>2];j=c[e>>2]|0;k=d;return j|0}return 0}function Oa(a){a=a|0;var b=0,d=0,e=0,f=0;b=k;k=k+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;while(1){f=c[d>>2]|0;if((c[e>>2]|0)>=50)break;_b(c[f+(c[e>>2]<<2)>>2]|0);c[e>>2]=(c[e>>2]|0)+1}_b(f);k=b;return}function Pa(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+96|0;d=b+72|0;e=b+64|0;f=b+56|0;g=b+80|0;h=b;i=b+76|0;c[g>>2]=a;c[i>>2]=0;while(1){if((c[i>>2]|0)>=(c[88399]|0))break;bd(h,332884+((c[i>>2]|0)*50|0)|0)|0;if(!(ic(330384+((c[i>>2]|0)*50|0)|0,c[g>>2]|0)|0)){j=4;break}c[i>>2]=(c[i>>2]|0)+1}if((j|0)==4){c[f>>2]=h;Td(4011,f)|0;k=b;return}if((Na(c[g>>2]|0)|0)<50){c[e>>2]=~~(+Ma(c[g>>2]|0)*256.0);Td(5864,e)|0;k=b;return}else{Td(5869,d)|0;k=b;return}}function Qa(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=k;k=k+16|0;d=b+8|0;e=b+4|0;f=b;c[e>>2]=a;Aa(c[e>>2]|0);c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[88399]|0))break;if(!(ic(c[e>>2]|0,330384+((c[f>>2]|0)*50|0)|0)|0)){g=4;break}c[f>>2]=(c[f>>2]|0)+1}if((g|0)==4){c[d>>2]=8;h=c[d>>2]|0;k=b;return h|0}c[f>>2]=0;while(1){i=c[e>>2]|0;if((c[f>>2]|0)>=(c[88400]|0))break;if(!(ic(i,335392+((c[f>>2]|0)*50|0)|0)|0)){g=9;break}c[f>>2]=(c[f>>2]|0)+1}if((g|0)==9){c[d>>2]=4;h=c[d>>2]|0;k=b;return h|0}if((Na(i)|0)<50){c[d>>2]=12;h=c[d>>2]|0;k=b;return h|0}else{c[d>>2]=0;h=c[d>>2]|0;k=b;return h|0}return 0}function Ra(a){a=a|0;var b=0,d=0,e=0;b=k;k=k+16|0;d=b;e=b+4|0;c[e>>2]=a;if(!(jc(c[e>>2]|0,5873,2)|0)){a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,5877)|0;k=b;return}if(!(jc(c[e>>2]|0,5887,2)|0)){c[88386]=8;c[88388]=2;a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,5891)|0;a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,5918)|0;a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,5933)|0;if(jc(c[e>>2]|0,5945,4)|0){Sa(5979);k=b;return}else{a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,5951)|0;Sa(5965);c[88397]=1;k=b;return}}if(!(jc(c[e>>2]|0,5994,2)|0)){c[88386]=16;c[88388]=4;a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,5999)|0;a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,6026)|0;a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,6042)|0;if(jc(c[e>>2]|0,6054,5)|0){Sa(5979);k=b;return}else{a=c[88398]|0;c[88398]=a+1;bd(320384+(a*100|0)|0,5951)|0;Sa(5965);c[88397]=1;k=b;return}}if(jc(c[e>>2]|0,6061,2)|0){if(!(jc(c[e>>2]|0,6128,2)|0)){k=b;return}a=c[721]|0;c[d>>2]=c[e>>2];Od(a,6132,d)|0;k=b;return}c[88386]=32;c[88388]=8;d=c[88398]|0;c[88398]=d+1;bd(320384+(d*100|0)|0,6066)|0;d=c[88398]|0;c[88398]=d+1;bd(320384+(d*100|0)|0,6093)|0;d=c[88398]|0;c[88398]=d+1;bd(320384+(d*100|0)|0,6109)|0;if(jc(c[e>>2]|0,6121,5)|0){Sa(5979);k=b;return}else{e=c[88398]|0;c[88398]=e+1;bd(320384+(e*100|0)|0,5951)|0;Sa(5965);c[88397]=1;k=b;return}}function Sa(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;d=k;k=k+1056|0;e=d+1024|0;f=d+1016|0;g=d+1044|0;h=d+1040|0;i=d+1036|0;j=d+512|0;l=d;m=d+1032|0;n=d+1028|0;c[g>>2]=b;Aa(c[g>>2]|0);if(c[88401]|0){k=d;return}c[88401]=1;a[l>>0]=0;bd(l,319872)|0;if((a[319872+((Zc(319872)|0)-1)>>0]|0)!=92?(a[319872+((Zc(319872)|0)-1)>>0]|0)!=47:0)Sd(l,5473)|0;else Sd(l,5463)|0;Sd(l,c[g>>2]|0)|0;b=td(c[g>>2]|0,5591)|0;c[h>>2]=b;if((b|0)==0?(b=td(l,5591)|0,c[h>>2]=b,(b|0)==0):0){b=c[721]|0;c[f>>2]=c[g>>2];Od(b,6177,f)|0;ga(1)}f=td(6205,6217)|0;c[i>>2]=f;if(!f){Od(c[721]|0,6219,e)|0;ga(1)}while(1){if(!(Cd(j,500,c[h>>2]|0)|0))break;c[m>>2]=0;while(1){if((c[m>>2]|0)>=500)break;if((a[j+(c[m>>2]|0)>>0]|0)==59){o=16;break}if((a[j+(c[m>>2]|0)>>0]|0)==10){o=18;break}if((a[j+(c[m>>2]|0)>>0]|0)==13){o=20;break}if((a[j+(c[m>>2]|0)>>0]|0)>32){o=22;break}c[n>>2]=0;c[m>>2]=(c[m>>2]|0)+1}if((o|0)==16){o=0;c[n>>2]=0}else if((o|0)==18){o=0;c[n>>2]=0}else if((o|0)==20){o=0;c[n>>2]=0}else if((o|0)==22){o=0;c[n>>2]=1}if(c[n>>2]|0){if((ed(j,6256,6)|0)==0?a[340400]|0:0)jd(340400,c[i>>2]|0)|0;jd(j,c[i>>2]|0)|0}}zd(c[h>>2]|0)|0;zd(c[i>>2]|0)|0;k=d;return}function Ta(a){a=a|0;var b=0,d=0;b=k;k=k+16|0;d=b;c[d>>2]=a;Sd(340400,c[d>>2]|0)|0;k=b;return}function Ua(a){a=a|0;var b=0,d=0,e=0;b=k;k=k+16|0;d=b;e=b+4|0;c[e>>2]=a;c[d>>2]=c[e>>2];Td(6264,d)|0;k=b;return}function Va(b){b=b|0;var d=0,e=0;d=k;k=k+16|0;e=d;c[e>>2]=b;if(c[e>>2]|0)bd(319872,c[e>>2]|0)|0;else a[319872]=0;a[340400]=0;k=d;return}function Wa(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a=k;k=k+112|0;b=a+96|0;d=a+88|0;e=a+80|0;f=a+72|0;g=a+64|0;h=a+56|0;i=a+48|0;j=a+40|0;l=a+32|0;m=a+24|0;n=a+16|0;o=a+8|0;p=a;q=a+108|0;r=a+104|0;s=a+100|0;if(!(c[88387]|0))c[88387]=1;c[q>>2]=c[88387];while(1){if((c[q>>2]|0)>=(c[88388]|0))break;La((c[q>>2]|0)+1|0);c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[88392]|0))break;c[p>>2]=18464+((c[q>>2]|0)*50|0);Td(5722,p)|0;c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[88396]|0))break;a:do if(c[88395]|0){c[o>>2]=c[319664+(c[q>>2]<<2)>>2];Td(6277,o)|0;c[n>>2]=c[q>>2];Td(6319,n)|0;c[r>>2]=(c[319664+(c[q>>2]<<2)>>2]|0)-1;while(1){if((c[r>>2]|0)<0)break;Td(6331,m)|0;c[s>>2]=15;while(1){if((c[s>>2]|0)<=7)break;if(c[268464+(c[q>>2]<<10)+(c[r>>2]<<2)>>2]&1<>2]|0)Td(5017,l)|0;else Td(5019,j)|0;c[s>>2]=(c[s>>2]|0)+-1}Td(5026,i)|0;c[r>>2]=(c[r>>2]|0)+-1}c[h>>2]=c[319664+(c[q>>2]<<2)>>2];Td(6277,h)|0;c[g>>2]=c[q>>2];Td(6341,g)|0;c[r>>2]=(c[319664+(c[q>>2]<<2)>>2]|0)-1;while(1){if((c[r>>2]|0)<0)break a;Td(6331,f)|0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=8)break;if(c[268464+(c[q>>2]<<10)+(c[r>>2]<<2)>>2]&1<>2]|0)Td(5017,e)|0;else Td(5019,d)|0;c[s>>2]=(c[s>>2]|0)+1}Td(5026,b)|0;c[r>>2]=(c[r>>2]|0)+-1}}while(0);c[q>>2]=(c[q>>2]|0)+1}k=a;return}function Xa(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=k;k=k+16|0;d=b+4|0;e=b;c[e>>2]=a;if((c[e>>2]|0)<11){c[d>>2]=1;f=c[d>>2]|0;k=b;return f|0}if(!((c[e>>2]|0)%2|0)){c[d>>2]=1;f=c[d>>2]|0;k=b;return f|0}a:do{if((c[e>>2]|0)==1)break;a=c[e>>2]|0;do if((c[e>>2]|0)%9|0|0){g=c[e>>2]|0;if(!((a|0)%7|0)){c[e>>2]=(g|0)/7|0;break}h=c[e>>2]|0;if(!((g|0)%5|0)){c[e>>2]=(h|0)/5|0;break}g=c[e>>2]|0;if(!((h|0)%3|0)){c[e>>2]=(g|0)/3|0;break}if((g|0)%2|0|0)break a;c[e>>2]=(c[e>>2]|0)/2|0}else c[e>>2]=(a|0)/9|0;while(0)}while(!(((c[e>>2]|0)%2|0|0)==0?(c[88402]&1|0)!=1:0));if((c[e>>2]|0)==1){c[d>>2]=1;f=c[d>>2]|0;k=b;return f|0}else{c[d>>2]=0;f=c[d>>2]|0;k=b;return f|0}return 0}function Ya(a){a=a|0;var b=0,d=0,e=0,f=0;b=k;k=k+16|0;d=b+4|0;e=b;c[e>>2]=a;while(1){if((c[e>>2]|0)==1)break;if((c[e>>2]|0)%2|0|0)break;c[e>>2]=(c[e>>2]|0)/2|0}if((c[e>>2]|0)==1){c[d>>2]=1;f=c[d>>2]|0;k=b;return f|0}else{c[d>>2]=0;f=c[d>>2]|0;k=b;return f|0}return 0}function Za(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0;d=k;k=k+512|0;e=d+488|0;f=d+480|0;g=d+472|0;h=d+464|0;i=d+456|0;j=d+448|0;l=d+440|0;m=d+432|0;n=d+424|0;o=d+416|0;p=d+408|0;q=d+400|0;r=d+392|0;s=d+384|0;t=d+376|0;u=d+368|0;v=d+360|0;w=d+352|0;x=d+344|0;y=d+336|0;z=d+328|0;A=d+320|0;B=d+312|0;C=d+304|0;D=d+296|0;E=d+288|0;F=d+280|0;G=d+272|0;H=d+264|0;I=d+256|0;J=d+248|0;K=d+240|0;L=d+232|0;M=d+224|0;N=d+216|0;O=d+208|0;P=d+200|0;Q=d+192|0;R=d+184|0;S=d+176|0;T=d+168|0;U=d+160|0;V=d+152|0;W=d+144|0;X=d+136|0;Y=d+128|0;Z=d+120|0;_=d+112|0;$=d+104|0;aa=d+96|0;ba=d+88|0;ca=d+80|0;da=d+72|0;ea=d+64|0;fa=d+56|0;ga=d+48|0;ha=d+40|0;ia=d+32|0;ja=d+24|0;ka=d+16|0;la=d+504|0;ma=d+500|0;na=d+496|0;oa=d+492|0;c[la>>2]=a;c[ma>>2]=b;c[na>>2]=Ud(c[(c[la>>2]|0)+24>>2]|0)|0;c[oa>>2]=0;if((c[ma>>2]|0)==16){Td(6353,d)|0;Td(6362,d+8|0)|0}while(1){if((c[na>>2]|0)==1)break;do if((c[na>>2]|0)%9|0|0){if(!((c[na>>2]|0)%7|0)){if(c[oa>>2]|0){bd(c[(c[la>>2]|0)+16>>2]|0,6374)|0;Td(6380,X)|0}c[na>>2]=(c[na>>2]|0)/7|0;Td(6392,W)|0;if((c[ma>>2]|0)==16)Td(6398,V)|0;Td(6392,U)|0;if((c[ma>>2]|0)==16)Td(6398,T)|0;Td(6392,S)|0;if((c[ma>>2]|0)==16)Td(6398,R)|0;Td(6468,Q)|0;Td(6474,P)|0;Ca(c[(c[la>>2]|0)+16>>2]|0)|0;c[O>>2]=c[(c[la>>2]|0)+16>>2];Td(4011,O)|0;if((c[ma>>2]|0)==16){Td(6423,N)|0;Td(6429,M)|0;Td(6480,L)|0;Td(6450,K)|0;Td(6462,J)|0}c[oa>>2]=1;break}if(!((c[na>>2]|0)%5|0)){if(c[oa>>2]|0){bd(c[(c[la>>2]|0)+16>>2]|0,6374)|0;Td(6380,I)|0}c[na>>2]=(c[na>>2]|0)/5|0;Td(6392,H)|0;if((c[ma>>2]|0)==16)Td(6398,G)|0;Td(6392,F)|0;if((c[ma>>2]|0)==16)Td(6398,E)|0;Td(6411,D)|0;Td(6417,C)|0;Ca(c[(c[la>>2]|0)+16>>2]|0)|0;c[B>>2]=c[(c[la>>2]|0)+16>>2];Td(4011,B)|0;if((c[ma>>2]|0)==16){Td(6423,A)|0;Td(6429,z)|0;Td(6441,y)|0;Td(6450,x)|0;Td(6462,w)|0}c[oa>>2]=1;break}if((c[na>>2]|0)%3|0|0){b=c[na>>2]|0;if((c[na>>2]|0)%2|0|0){c[h>>2]=b;Td(6489,h)|0;c[g>>2]=c[ma>>2];Td(6499,g)|0;Od(c[721]|0,6511,f)|0;Od(c[721]|0,6584,e)|0;break}c[na>>2]=(b|0)/2|0;Td(6392,j)|0;if((c[ma>>2]|0)!=16)break;Td(6398,i)|0;break}if(c[oa>>2]|0){bd(c[(c[la>>2]|0)+16>>2]|0,6374)|0;Td(6380,v)|0}c[na>>2]=(c[na>>2]|0)/3|0;Td(6392,u)|0;if((c[ma>>2]|0)==16)Td(6398,t)|0;Td(6411,s)|0;Td(6417,r)|0;Ca(c[(c[la>>2]|0)+16>>2]|0)|0;c[q>>2]=c[(c[la>>2]|0)+16>>2];Td(4011,q)|0;if((c[ma>>2]|0)==16){Td(6423,p)|0;Td(6429,o)|0;Td(6441,n)|0;Td(6450,m)|0;Td(6462,l)|0}c[oa>>2]=1}else{if(c[oa>>2]|0){bd(c[(c[la>>2]|0)+16>>2]|0,6374)|0;Td(6380,ka)|0}c[na>>2]=(c[na>>2]|0)/9|0;Td(6392,ja)|0;if((c[ma>>2]|0)==16)Td(6398,ia)|0;Td(6392,ha)|0;if((c[ma>>2]|0)==16)Td(6398,ga)|0;Td(6392,fa)|0;if((c[ma>>2]|0)==16)Td(6398,ea)|0;Td(6411,da)|0;Td(6417,ca)|0;Ca(c[(c[la>>2]|0)+16>>2]|0)|0;c[ba>>2]=c[(c[la>>2]|0)+16>>2];Td(4011,ba)|0;if((c[ma>>2]|0)==16){Td(6423,aa)|0;Td(6429,$)|0;Td(6441,_)|0;Td(6450,Z)|0;Td(6462,Y)|0}c[oa>>2]=1}while(0)}k=d;return}function _a(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;d=k;k=k+80|0;e=d+56|0;f=d+48|0;g=d+40|0;h=d+32|0;i=d+24|0;j=d+16|0;l=d+68|0;m=d+64|0;n=d+60|0;c[l>>2]=a;c[m>>2]=b;c[n>>2]=Ud(c[(c[l>>2]|0)+24>>2]|0)|0;if((c[m>>2]|0)==16){Td(6353,d)|0;Td(6362,d+8|0)|0}while(1){if((c[n>>2]|0)==1)break;l=c[n>>2]|0;if(!((c[n>>2]|0)%2|0|0)){c[n>>2]=(l|0)/2|0;Td(6655,j)|0;if((c[m>>2]|0)==16)Td(6398,i)|0}else{c[h>>2]=l;Td(6489,h)|0;c[g>>2]=c[m>>2];Td(6661,g)|0;Od(c[721]|0,6511,f)|0;Od(c[721]|0,6584,e)|0}}k=d;return}function $a(){if(!(c[88403]|0))Fa(6673);c[88403]=0;return}function ab(a){a=a|0;var b=0,d=0,e=0;b=k;k=k+32|0;d=b;e=b+20|0;c[e>>2]=a;c[88403]=1;c[d>>2]=c[(c[e>>2]|0)+8>>2];Td(4011,d)|0;Td(6709,b+8|0)|0;Td(6721,b+16|0)|0;k=b;return}function bb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;d=k;k=k+160|0;e=d+136|0;f=d+128|0;g=d+120|0;h=d+112|0;i=d+104|0;j=d+152|0;l=d+148|0;m=d+144|0;n=d+48|0;o=d+140|0;p=d;c[j>>2]=b;c[m>>2]=0;c[o>>2]=0;c[l>>2]=6;while(1){if((a[c[(c[j>>2]|0)+(c[l>>2]<<2)>>2]>>0]|0)==41)break;if((a[c[(c[j>>2]|0)+(c[l>>2]<<2)>>2]>>0]|0)!=44){b=c[l>>2]|0;q=c[o>>2]|0;c[o>>2]=q+1;c[p+(q<<2)>>2]=b}if((c[l>>2]|0)>45)Fa(6733);c[l>>2]=(c[l>>2]|0)+1}if(!(c[o>>2]|0)){l=c[721]|0;c[i>>2]=c[88385];Od(l,6770,i)|0}while(1){if(!(c[o>>2]|0))break;c[m>>2]=0;i=c[j>>2]|0;l=(c[o>>2]|0)+-1|0;c[o>>2]=l;b=xa(c[i+(c[p+(l<<2)>>2]<<2)>>2]|0,n)|0;c[m>>2]=c[m>>2]|b;if(c[m>>2]|0)ya(n);if((c[o>>2]|0)==1)Td(6817,h)|0;else Td(3846,g)|0;za(c[(c[j>>2]|0)+(c[p+(c[o>>2]<<2)>>2]<<2)>>2]|0,c[m>>2]|0);if((c[o>>2]|0)>1){c[f>>2]=(c[o>>2]|0)+1;Td(6823,f)|0}}c[e>>2]=c[(c[j>>2]|0)+16>>2];Td(3852,e)|0;bd(18400,4029)|0;k=d;return}function cb(){c[88385]=(c[88385]|0)+1;return}function db(){return c[88385]|0}function eb(a){a=a|0;var b=0,d=0,e=0,f=0;b=k;k=k+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;do{if((c[e>>2]|0)>=48)break;a=c[d>>2]|0;f=c[e>>2]|0;c[e>>2]=f+1}while((jc(c[a+(f<<2)>>2]|0,12768,4)|0)!=0);f=fb(c[d>>2]|0,c[e>>2]|0)|0;k=b;return f|0}function fb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=k;k=k+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=b;c[h>>2]=d;if((a[c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]>>0]|0)>47?(a[c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]>>0]|0)<59:0)c[f>>2]=0;else i=4;do if((i|0)==4){if((a[c[(c[g>>2]|0)+((c[h>>2]|0)+1<<2)>>2]>>0]|0)==58?jc(c[(c[g>>2]|0)+((c[h>>2]|0)+2<<2)>>2]|0,12723,3)|0:0){c[f>>2]=1;break}if((a[c[(c[g>>2]|0)+((c[h>>2]|0)+1<<2)>>2]>>0]|0)==58?(jc(c[(c[g>>2]|0)+((c[h>>2]|0)+2<<2)>>2]|0,12723,3)|0)==0:0){c[f>>2]=0;break}if(!(jc(c[(c[g>>2]|0)+((c[h>>2]|0)+1<<2)>>2]|0,12732,4)|0)){c[f>>2]=0;break}if(a[c[(c[g>>2]|0)+((c[h>>2]|0)+1<<2)>>2]>>0]|0){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13036,10)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13122,6)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13190,13)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13205,13)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13130,8)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13140,8)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13150,8)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13160,8)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13170,8)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13180,8)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13110,10)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13087,9)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13098,10)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13048,3)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,12723,3)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,12977,4)|0)){c[f>>2]=1;break}if(!(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13071,6)|0)){c[f>>2]=1;break}if(jc(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,13063,6)|0){c[f>>2]=0;break}else{c[f>>2]=1;break}}while(0);k=e;return c[f>>2]|0}function gb(a){a=a|0;var b=0,d=0,e=0,f=0;b=k;k=k+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;do{if((c[e>>2]|0)>=48)break;a=c[d>>2]|0;f=c[e>>2]|0;c[e>>2]=f+1}while((jc(c[a+(f<<2)>>2]|0,12732,4)|0)!=0);f=fb(c[d>>2]|0,c[e>>2]|0)|0;k=b;return f|0}function hb(a){a=a|0;var b=0,d=0,e=0;b=k;k=k+48|0;d=b;e=b+36|0;c[e>>2]=a;c[d>>2]=c[(c[e>>2]|0)+24>>2];Td(6836,d)|0;Td(6846,b+8|0)|0;Td(6858,b+16|0)|0;Td(6868,b+24|0)|0;Td(6878,b+32|0)|0;bd(18400,4029)|0;k=b;return}function ib(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=k;k=k+288|0;e=d+264|0;f=d+256|0;g=d+248|0;h=d+240|0;i=d+232|0;j=d+224|0;l=d+216|0;m=d+208|0;n=d+200|0;o=d+272|0;p=d;q=d+268|0;c[o>>2]=b;Aa(c[(c[o>>2]|0)+16>>2]|0);b=c[88398]|0;c[88398]=b+1;r=c[(c[o>>2]|0)+16>>2]|0;c[n>>2]=c[(c[o>>2]|0)+8>>2];c[n+4>>2]=r;lc(320384+(b*100|0)|0,6888,n)|0;c[m>>2]=c[(c[o>>2]|0)+8>>2];Td(6896,m)|0;c[l>>2]=c[(c[o>>2]|0)+16>>2];Td(6913,l)|0;c[j>>2]=c[(c[o>>2]|0)+8>>2];Td(6922,j)|0;c[i>>2]=c[(c[o>>2]|0)+16>>2];Td(6939,i)|0;c[h>>2]=c[c[o>>2]>>2];Td(6950,h)|0;c[g>>2]=c[(c[o>>2]|0)+8>>2];Td(6964,g)|0;while(1){if(Cd(p,200,c[689]|0)|0){if((a[p>>0]|0)<58?(a[p>>0]|0)>47:0)s=5}else s=5;if((s|0)==5?(s=0,(a[p>>0]|0)!=101):0){s=6;break}c[88385]=(c[88385]|0)+1;if(!(jc(p,12885,3)|0)){s=17;break}jb(p);c[q>>2]=0;while(1){if((c[q>>2]|0)>=200)break;if((a[p+(c[q>>2]|0)>>0]|0)>32)break;if((a[p+(c[q>>2]|0)>>0]|0)<14)c[q>>2]=200;c[q>>2]=(c[q>>2]|0)+1}if((c[q>>2]|0)<200){c[f>>2]=p;Td(7019,f)|0}}if((s|0)==6){Fa(6974);ga(1)}else if((s|0)==17){c[e>>2]=c[c[o>>2]>>2];Td(7030,e)|0;k=d;return}}function jb(b){b=b|0;var d=0,e=0,f=0,g=0;d=k;k=k+16|0;e=d+4|0;f=d;c[e>>2]=b;c[f>>2]=(Zc(c[e>>2]|0)|0)-1;while(1){if((c[f>>2]|0)<=0){g=10;break}if((((a[(c[e>>2]|0)+(c[f>>2]|0)>>0]|0)!=44?(a[(c[e>>2]|0)+(c[f>>2]|0)>>0]|0)!=32:0)?(a[(c[e>>2]|0)+(c[f>>2]|0)>>0]|0)!=10:0)?(a[(c[e>>2]|0)+(c[f>>2]|0)>>0]|0)!=13:0){g=10;break}if((a[(c[e>>2]|0)+(c[f>>2]|0)>>0]|0)==44){g=8;break}c[f>>2]=(c[f>>2]|0)+-1}if((g|0)==8){a[(c[e>>2]|0)+(c[f>>2]|0)>>0]=32;k=d;return}else if((g|0)==10){k=d;return}}function kb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;d=k;k=k+272|0;e=d+240|0;f=d+232|0;g=d+224|0;h=d+216|0;i=d+208|0;j=d+200|0;l=d+260|0;m=d;n=d+256|0;o=d+252|0;p=d+248|0;c[l>>2]=b;c[n>>2]=Zb(200)|0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=50)break;b=$b(50,1)|0;c[(c[n>>2]|0)+(c[p>>2]<<2)>>2]=b;c[p>>2]=(c[p>>2]|0)+1}c[o>>2]=c[n>>2];Aa(c[(c[l>>2]|0)+8>>2]|0);if(!(c[88402]&4)){c[j>>2]=c[c[l>>2]>>2];Td(6950,j)|0}c[i>>2]=c[(c[l>>2]|0)+8>>2];Td(4011,i)|0;while(1){if(Cd(m,200,c[689]|0)|0){if((a[m>>0]|0)<58?(a[m>>0]|0)>47:0)q=10}else q=10;if((q|0)==10?(q=0,(a[m>>0]|0)!=101):0){q=11;break}c[88385]=(c[88385]|0)+1;if(!(jc(m,12885,3)|0)){q=22;break}jb(m);c[p>>2]=0;while(1){if((c[p>>2]|0)>=200)break;if((a[m+(c[p>>2]|0)>>0]|0)>32)break;if((a[m+(c[p>>2]|0)>>0]|0)<14)c[p>>2]=200;c[p>>2]=(c[p>>2]|0)+1}if((c[p>>2]|0)<200){c[h>>2]=m;Td(7019,h)|0}}if((q|0)==11){Fa(6974);ga(1)}else if((q|0)==22){c[g>>2]=c[c[l>>2]>>2];Td(7030,g)|0;bd(c[c[n>>2]>>2]|0,7039)|0;bd(c[(c[n>>2]|0)+4>>2]|0,7041)|0;g=c[(c[n>>2]|0)+8>>2]|0;c[f>>2]=c[(c[l>>2]|0)+8>>2];lc(g,7047,f)|0;bd(c[(c[n>>2]|0)+12>>2]|0,7057)|0;f=c[(c[n>>2]|0)+16>>2]|0;g=c[(c[l>>2]|0)+8>>2]|0;c[e>>2]=c[c[l>>2]>>2];c[e+4>>2]=g;lc(f,7059,e)|0;bd(c[(c[n>>2]|0)+20>>2]|0,5026)|0;a[c[(c[n>>2]|0)+24>>2]>>0]=0;Yb(c[n>>2]|0);Oa(c[o>>2]|0);k=d;return}}function lb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=k;k=k+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=b;c[g>>2]=d;c[h>>2]=49;while(1){if((c[h>>2]|0)<=(c[g>>2]|0))break;c[i>>2]=0;while(1){if((c[i>>2]|0)>=50)break;a[(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0)+(c[i>>2]|0)>>0]=a[(c[(c[f>>2]|0)+((c[h>>2]|0)-1<<2)>>2]|0)+(c[i>>2]|0)>>0]|0;c[i>>2]=(c[i>>2]|0)+1}c[h>>2]=(c[h>>2]|0)+-1}k=e;return}function mb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0;f=k;k=k+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;l=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[h>>2];while(1){if((c[j>>2]|0)>=(50-(c[i>>2]|0)|0))break;c[l>>2]=0;while(1){if((c[l>>2]|0)>=50)break;a[(c[(c[g>>2]|0)+(c[j>>2]<<2)>>2]|0)+(c[l>>2]|0)>>0]=a[(c[(c[g>>2]|0)+((c[j>>2]|0)+(c[i>>2]|0)<<2)>>2]|0)+(c[l>>2]|0)>>0]|0;c[l>>2]=(c[l>>2]|0)+1}c[j>>2]=(c[j>>2]|0)+1}k=f;return}function nb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=k;k=k+96|0;e=d+72|0;f=d+64|0;g=d+56|0;h=d+48|0;i=d+24|0;j=d+8|0;l=d;m=d+84|0;n=d+80|0;o=d+76|0;c[m>>2]=b;c[o>>2]=4;if(ic(c[(c[m>>2]|0)+8>>2]|0,18400)|0){c[l>>2]=c[(c[m>>2]|0)+8>>2];Td(7070,l)|0}c[j>>2]=c[c[m>>2]>>2];Td(7079,j)|0;Td(7102,d+16|0)|0;c[i>>2]=c[c[m>>2]>>2];Td(7108,i)|0;Td(7102,d+32|0)|0;Td(7131,d+40|0)|0;c[h>>2]=c[c[m>>2]>>2];Td(7137,h)|0;while(1){if((a[c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]>>0]|0)==58)break;if(!(a[c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]>>0]|0))break;c[n>>2]=0;while(1){p=c[m>>2]|0;q=c[o>>2]|0;if((c[n>>2]|0)>=50)break;if(!((a[(c[p+(q<<2)>>2]|0)+(c[n>>2]|0)>>0]|0)!=10?(a[(c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]|0)+(c[n>>2]|0)>>0]|0)!=13:0))a[(c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]|0)+(c[n>>2]|0)>>0]=0;c[n>>2]=(c[n>>2]|0)+1}c[o>>2]=q+1;c[g>>2]=c[p+(q<<2)>>2];Td(7153,g)|0}c[f>>2]=c[c[m>>2]>>2];Td(7170,f)|0;c[o>>2]=4;while(1){if((a[c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]>>0]|0)==58){r=23;break}if(!(a[c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]>>0]|0)){r=23;break}c[n>>2]=0;while(1){s=c[m>>2]|0;t=c[o>>2]|0;if((c[n>>2]|0)>=50)break;if(!((a[(c[s+(t<<2)>>2]|0)+(c[n>>2]|0)>>0]|0)!=10?(a[(c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]|0)+(c[n>>2]|0)>>0]|0)!=13:0))a[(c[(c[m>>2]|0)+(c[o>>2]<<2)>>2]|0)+(c[n>>2]|0)>>0]=0;c[n>>2]=(c[n>>2]|0)+1}c[o>>2]=t+1;c[e>>2]=c[s+(t<<2)>>2];Td(7186,e)|0}if((r|0)==23){k=d;return}}function ob(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;d=k;k=k+48|0;e=d+32|0;f=d+24|0;g=d+16|0;h=d+8|0;i=d+36|0;c[i>>2]=b;if(ic(c[(c[i>>2]|0)+16>>2]|0,18400)|0){Td(3846,d)|0;Ca(c[(c[i>>2]|0)+16>>2]|0)|0;c[h>>2]=c[(c[i>>2]|0)+16>>2];Td(4011,h)|0}c[g>>2]=c[(c[i>>2]|0)+8>>2];Td(7203,g)|0;a[341408+((c[88404]|0)*50|0)>>0]=0;g=341408+((c[88404]|0)*50|0)|0;h=c[(c[i>>2]|0)+8>>2]|0;c[f>>2]=c[c[i>>2]>>2];c[f+4>>2]=h;lc(g,7212,f)|0;c[e>>2]=341408+((c[88404]|0)*50|0);Td(7220,e)|0;a[343920+((c[88404]|0)*50|0)>>0]=0;bd(343920+((c[88404]|0)*50|0)|0,c[(c[i>>2]|0)+24>>2]|0)|0;a[346432+((c[88404]|0)*50|0)>>0]=0;bd(346432+((c[88404]|0)*50|0)|0,c[(c[i>>2]|0)+8>>2]|0)|0;a[348944+((c[88404]|0)*50|0)>>0]=0;e=(ed(c[(c[i>>2]|0)+28>>2]|0,7225,4)|0)!=0;f=348944+((c[88404]|0)*50|0)|0;if(e){bd(f,5017)|0;j=c[88404]|0;l=j+1|0;c[88404]=l;k=d;return}else{bd(f,c[(c[i>>2]|0)+32>>2]|0)|0;j=c[88404]|0;l=j+1|0;c[88404]=l;k=d;return}}function pb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;b=k;k=k+272|0;d=b+240|0;e=b+232|0;f=b+224|0;g=b+216|0;h=b+208|0;i=b+200|0;j=b+192|0;l=b+184|0;m=b+176|0;n=b+168|0;o=b+160|0;p=b+152|0;q=b+144|0;r=b+136|0;s=b+128|0;t=b+120|0;u=b+112|0;v=b+104|0;w=b+96|0;x=b+88|0;y=b+80|0;z=b+72|0;A=b+64|0;B=b+256|0;C=b+252|0;D=b+248|0;E=b+244|0;F=b;c[B>>2]=a;c[C>>2]=0;c[D>>2]=0;c[E>>2]=0;wa();if(!(c[88404]|0)){a=c[721]|0;c[A>>2]=c[88385];Od(a,7231,A)|0;ga(1)}c[88404]=(c[88404]|0)+-1;A=(jc(348944+((c[88404]|0)*50|0)|0,7254,2)|0)!=0;a=c[88404]|0;do if(A){if(jc(348944+(a*50|0)|0,7281,3)|0?jc(348944+((c[88404]|0)*50|0)|0,7285,4)|0:0){c[r>>2]=346432+((c[88404]|0)*50|0);Td(7257,r)|0;Td(7299,q)|0;Td(7305,p)|0;c[C>>2]=Ca(348944+((c[88404]|0)*50|0)|0)|0;c[o>>2]=348944+((c[88404]|0)*50|0);Td(4011,o)|0;do if(c[C>>2]|0?Da(343920+((c[88404]|0)*50|0)|0)|0:0){G=((Ud(348944+((c[88404]|0)*50|0)|0)|0)&128|0)!=0;H=Ud(348944+((c[88404]|0)*50|0)|0)|0;if(G){if((256-(H&255)|0)<(Ud(343920+((c[88404]|0)*50|0)|0)|0))break;c[E>>2]=1;c[n>>2]=341408+((c[88404]|0)*50|0);lc(F,7311,n)|0;qb(F);break}else{if((H+(Ud(343920+((c[88404]|0)*50|0)|0)|0)|0)<=255)break;c[E>>2]=1;c[m>>2]=341408+((c[88404]|0)*50|0);lc(F,7311,m)|0;rb(F);break}}while(0);c[l>>2]=346432+((c[88404]|0)*50|0);Td(7203,l)|0;Td(7266,j)|0;c[D>>2]=Ca(343920+((c[88404]|0)*50|0)|0)|0;if(c[D>>2]|0?((Ud(348944+((c[88404]|0)*50|0)|0)|0)&128|0)==0:0)Sd(343920+((c[88404]|0)*50|0)|0,7323)|0;c[i>>2]=343920+((c[88404]|0)*50|0);Td(4011,i)|0;H=348944+((c[88404]|0)*50|0)|0;if(!(c[C>>2]|0)){c[h>>2]=H;Td(7070,h)|0;c[g>>2]=c[c[B>>2]>>2];Td(7326,g)|0;qb(341408+((c[88404]|0)*50|0)|0);Td(7299,f)|0;c[e>>2]=c[c[B>>2]>>2];Td(7339,e)|0;rb(341408+((c[88404]|0)*50|0)|0);break}G=((Ud(H)|0)&128|0)!=0;H=341408+((c[88404]|0)*50|0)|0;if(G){rb(H);break}qb(H);if(c[D>>2]|0)break;tb(341408+((c[88404]|0)*50|0)|0);break}c[v>>2]=346432+((c[88404]|0)*50|0);Td(7290,v)|0;H=(jc(343920+((c[88404]|0)*50|0)|0,7254,2)|0)!=0;G=c[88404]|0;if(H){c[u>>2]=346432+(G*50|0);Td(7257,u)|0;Td(7266,t)|0;Ca(343920+((c[88404]|0)*50|0)|0)|0;c[s>>2]=343920+((c[88404]|0)*50|0);Td(4011,s)|0;rb(341408+((c[88404]|0)*50|0)|0);break}else{sb(341408+(G*50|0)|0);break}}else{c[z>>2]=346432+(a*50|0);Td(7257,z)|0;Td(7266,y)|0;Ca(343920+((c[88404]|0)*50|0)|0)|0;c[x>>2]=343920+((c[88404]|0)*50|0);Td(4011,x)|0;c[w>>2]=346432+((c[88404]|0)*50|0);Td(7272,w)|0;qb(341408+((c[88404]|0)*50|0)|0)}while(0);if(!(c[E>>2]|0)){k=b;return}c[d>>2]=F;Td(7220,d)|0;k=b;return}function qb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+64|0;d=b+48|0;e=b+32|0;f=b+16|0;g=b;h=b+52|0;c[h>>2]=a;Aa(c[h>>2]|0);a=c[h>>2]|0;if(c[88405]|0){i=c[h>>2]|0;j=c[h>>2]|0;c[g>>2]=a;c[g+4>>2]=i;c[g+8>>2]=j;Td(7651,g)|0;g=c[h>>2]|0;j=c[h>>2]|0;c[f>>2]=c[88406];c[f+4>>2]=g;c[f+8>>2]=j;Td(7705,f)|0;f=c[88406]|0;c[88406]=f+1;j=c[h>>2]|0;c[e>>2]=f;c[e+4>>2]=j;Td(7432,e)|0;Td(7443,b+40|0)|0;k=b;return}else{c[d>>2]=a;Td(7736,d)|0;k=b;return}}function rb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+64|0;d=b+48|0;e=b+32|0;f=b+16|0;g=b;h=b+52|0;c[h>>2]=a;Aa(c[h>>2]|0);a=c[h>>2]|0;if(c[88405]|0){i=c[h>>2]|0;j=c[h>>2]|0;c[g>>2]=a;c[g+4>>2]=i;c[g+8>>2]=j;Td(7556,g)|0;g=c[h>>2]|0;j=c[h>>2]|0;c[f>>2]=c[88406];c[f+4>>2]=g;c[f+8>>2]=j;Td(7610,f)|0;f=c[88406]|0;c[88406]=f+1;j=c[h>>2]|0;c[e>>2]=f;c[e+4>>2]=j;Td(7432,e)|0;Td(7443,b+40|0)|0;k=b;return}else{c[d>>2]=a;Td(7641,d)|0;k=b;return}}function sb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+64|0;d=b+48|0;e=b+32|0;f=b+16|0;g=b;h=b+52|0;c[h>>2]=a;Aa(c[h>>2]|0);a=c[h>>2]|0;if(c[88405]|0){i=c[h>>2]|0;j=c[h>>2]|0;c[g>>2]=a;c[g+4>>2]=i;c[g+8>>2]=j;Td(7461,g)|0;g=c[h>>2]|0;j=c[h>>2]|0;c[f>>2]=c[88406];c[f+4>>2]=g;c[f+8>>2]=j;Td(7515,f)|0;f=c[88406]|0;c[88406]=f+1;j=c[h>>2]|0;c[e>>2]=f;c[e+4>>2]=j;Td(7432,e)|0;Td(7443,b+40|0)|0;k=b;return}else{c[d>>2]=a;Td(7546,d)|0;k=b;return}}function tb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+64|0;d=b+48|0;e=b+32|0;f=b+16|0;g=b;h=b+52|0;c[h>>2]=a;Aa(c[h>>2]|0);a=c[h>>2]|0;if(c[88405]|0){i=c[h>>2]|0;j=c[h>>2]|0;c[g>>2]=a;c[g+4>>2]=i;c[g+8>>2]=j;Td(7347,g)|0;g=c[h>>2]|0;j=c[h>>2]|0;c[f>>2]=c[88406];c[f+4>>2]=g;c[f+8>>2]=j;Td(7401,f)|0;f=c[88406]|0;c[88406]=f+1;j=c[h>>2]|0;c[e>>2]=f;c[e+4>>2]=j;Td(7432,e)|0;Td(7443,b+40|0)|0;k=b;return}else{c[d>>2]=a;Td(7451,d)|0;k=b;return}}function ub(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=k;k=k+64|0;e=d+60|0;f=d+56|0;g=d+52|0;h=d;c[e>>2]=b;c[f>>2]=Na(c[(c[e>>2]|0)+16>>2]|0)|0;if((c[f>>2]|0)<50){Aa(c[(c[e>>2]|0)+16>>2]|0);bd(h,c[(c[e>>2]|0)+16>>2]|0)|0;c[g>>2]=h+(c[f>>2]|0)+1;a[h+(c[f>>2]|0)>>0]=0;if(ic(c[g>>2]|0,h)|0){bd(332884+((c[88399]|0)*50|0)|0,c[g>>2]|0)|0;h=c[88399]|0;c[88399]=h+1;bd(330384+(h*50|0)|0,c[(c[e>>2]|0)+8>>2]|0)|0}else{bd(337892+((c[88400]|0)*50|0)|0,c[g>>2]|0)|0;g=c[88400]|0;c[88400]=g+1;bd(335392+(g*50|0)|0,c[(c[e>>2]|0)+8>>2]|0)|0}a[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]|0)>>0]=0}c[f>>2]=2;a[320384+((c[88398]|0)*100|0)>>0]=0;while(1){i=c[88398]|0;if(!(a[c[(c[e>>2]|0)+(c[f>>2]<<2)>>2]>>0]|0))break;g=c[e>>2]|0;h=c[f>>2]|0;c[f>>2]=h+1;Sd(320384+(i*100|0)|0,c[g+(h<<2)>>2]|0)|0;Sd(320384+((c[88398]|0)*100|0)|0,7039)|0}c[88398]=i+1;k=d;return}function vb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=k;k=k+16|0;e=d+4|0;f=d;c[e>>2]=b;c[f>>2]=2;a[320384+((c[88398]|0)*100|0)>>0]=0;while(1){g=c[88398]|0;if(!(a[c[(c[e>>2]|0)+(c[f>>2]<<2)>>2]>>0]|0))break;b=c[e>>2]|0;h=c[f>>2]|0;c[f>>2]=h+1;Sd(320384+(g*100|0)|0,c[b+(h<<2)>>2]|0)|0;Sd(320384+((c[88398]|0)*100|0)|0,7039)|0}c[88398]=g+1;g=c[88390]|0;c[88390]=g+1;bd(13392+(g*100|0)|0,c[(c[e>>2]|0)+8>>2]|0)|0;k=d;return}function wb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=k;k=k+176|0;e=d+160|0;f=d+152|0;g=d+144|0;h=d+136|0;i=d+128|0;j=d+120|0;l=d+112|0;m=d+104|0;n=d+96|0;o=d+88|0;p=d+80|0;q=d+72|0;r=d+64|0;s=d+56|0;t=d+172|0;u=d+168|0;v=d;w=d+164|0;c[t>>2]=b;c[u>>2]=0;c[w>>2]=0;do if(jc(c[(c[t>>2]|0)+8>>2]|0,7746,8)|0?jc(c[(c[t>>2]|0)+12>>2]|0,7746,8)|0:0){if(jc(c[(c[t>>2]|0)+8>>2]|0,7756,9)|0?jc(c[(c[t>>2]|0)+12>>2]|0,7756,9)|0:0)break;c[w>>2]=2}else x=3;while(0);if((x|0)==3)c[w>>2]=1;if(((a[c[(c[t>>2]|0)+8>>2]>>0]|0?(a[c[(c[t>>2]|0)+8>>2]>>0]|0)!=32:0)?jc(c[(c[t>>2]|0)+8>>2]|0,7746,8)|0:0)?jc(c[(c[t>>2]|0)+8>>2]|0,7756,9)|0:0){x=xa(c[(c[t>>2]|0)+8>>2]|0,v)|0;c[u>>2]=c[u>>2]|x;if(c[u>>2]&1|0)ya(v);if(c[w>>2]|0)Td(3846,r)|0;else Td(6817,s)|0;za(c[(c[t>>2]|0)+8>>2]|0,c[u>>2]&1)}if((c[w>>2]|0)==1){Td(7131,q)|0;k=d;return}if((c[w>>2]|0)==2){Td(7767,p)|0;k=d;return}if(c[88386]|0){Td(7783,o)|0;Td(7789,n)|0;Td(7822,m)|0;Td(7852,l)|0;if(a[c[(c[t>>2]|0)+8>>2]>>0]|0?(a[c[(c[t>>2]|0)+8>>2]>>0]|0)!=32:0){Td(7894,j)|0;Td(7933,i)|0}else Td(7939,h)|0;Td(7767,g)|0}if(a[c[(c[t>>2]|0)+8>>2]>>0]|0?(a[c[(c[t>>2]|0)+8>>2]>>0]|0)!=32:0)Td(7933,f)|0;Td(7131,e)|0;k=d;return}function xb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;b=k;k=k+144|0;d=b+128|0;e=b+136|0;f=b+64|0;g=b;h=b+132|0;c[e>>2]=a;c[h>>2]=0;wa();a=xa(c[(c[e>>2]|0)+12>>2]|0,f)|0;c[h>>2]=c[h>>2]|a;a=(xa(c[(c[e>>2]|0)+16>>2]|0,g)|0)<<1;c[h>>2]=c[h>>2]|a;if(c[h>>2]&1|0)ya(f);Td(3846,b+120|0)|0;za(c[(c[e>>2]|0)+16>>2]|0,c[h>>2]&1);if(!(c[h>>2]&2)){Td(6817,d)|0;i=c[e>>2]|0;j=i+24|0;l=c[j>>2]|0;m=c[h>>2]|0;n=m&2;za(l,n);Ba(7978);k=b;return}ya(g);Td(6817,d)|0;i=c[e>>2]|0;j=i+24|0;l=c[j>>2]|0;m=c[h>>2]|0;n=m&2;za(l,n);Ba(7978);k=b;return}function yb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=k;k=k+176|0;d=b+168|0;e=b+64|0;f=b;g=b+164|0;c[d>>2]=a;c[g>>2]=0;if((c[88407]|0)==1){Fa(7985);ga(1)}wa();a=xa(c[(c[d>>2]|0)+8>>2]|0,e)|0;c[g>>2]=c[g>>2]|a;a=(xa(c[(c[d>>2]|0)+12>>2]|0,f)|0)<<1;c[g>>2]=c[g>>2]|a;if(c[g>>2]&1|0)ya(e);Td(3846,b+120|0)|0;za(c[(c[d>>2]|0)+8>>2]|0,c[g>>2]&1);if(c[g>>2]&2|0)ya(f);Td(6817,b+128|0)|0;za(c[(c[d>>2]|0)+12>>2]|0,c[g>>2]&2);Td(8037,b+136|0)|0;if(!(jc(c[(c[d>>2]|0)+16>>2]|0,8044,2)|0)){Td(8049,b+144|0)|0;Ba(8062);k=b;return}if(jc(c[(c[d>>2]|0)+16>>2]|0,8052,2)|0){Td(8059,b+160|0)|0;Ba(8062);k=b;return}else{Td(8056,b+152|0)|0;Ba(8062);k=b;return}}function zb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=k;k=k+256|0;d=b+248|0;e=b+128|0;f=b+64|0;g=b;h=b+244|0;c[d>>2]=a;c[h>>2]=0;if((c[88407]|0)==1){Fa(8070);ga(1)}wa();a=xa(c[(c[d>>2]|0)+8>>2]|0,e)|0;c[h>>2]=c[h>>2]|a;a=(xa(c[(c[d>>2]|0)+12>>2]|0,f)|0)<<1;c[h>>2]=c[h>>2]|a;a=(xa(c[(c[d>>2]|0)+16>>2]|0,g)|0)<<2;c[h>>2]=c[h>>2]|a;if(c[h>>2]&4|0)ya(g);Td(3846,b+184|0)|0;za(c[(c[d>>2]|0)+16>>2]|0,c[h>>2]&4);Td(8122,b+192|0)|0;if(c[h>>2]&1|0)ya(e);Td(3846,b+200|0)|0;za(c[(c[d>>2]|0)+8>>2]|0,c[h>>2]&1);if(c[h>>2]&2|0)ya(f);Td(6817,b+208|0)|0;za(c[(c[d>>2]|0)+12>>2]|0,c[h>>2]&2);Td(8037,b+216|0)|0;if(!(jc(c[(c[d>>2]|0)+20>>2]|0,8044,2)|0)){Td(8049,b+224|0)|0;Ba(8134);k=b;return}if(jc(c[(c[d>>2]|0)+20>>2]|0,8052,2)|0){Td(8059,b+240|0)|0;Ba(8134);k=b;return}else{Td(8056,b+232|0)|0;Ba(8134);k=b;return}}function Ab(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=k;k=k+256|0;d=b+248|0;e=b+128|0;f=b+64|0;g=b;h=b+244|0;c[d>>2]=a;c[h>>2]=0;if((c[88407]|0)==1){Fa(8142);ga(1)}wa();a=xa(c[(c[d>>2]|0)+8>>2]|0,e)|0;c[h>>2]=c[h>>2]|a;a=(xa(c[(c[d>>2]|0)+12>>2]|0,f)|0)<<1;c[h>>2]=c[h>>2]|a;a=(xa(c[(c[d>>2]|0)+16>>2]|0,g)|0)<<2;c[h>>2]=c[h>>2]|a;if(c[h>>2]&4|0)ya(g);Td(3846,b+184|0)|0;za(c[(c[d>>2]|0)+16>>2]|0,c[h>>2]&4);Td(8122,b+192|0)|0;if(c[h>>2]&1|0)ya(e);Td(3846,b+200|0)|0;za(c[(c[d>>2]|0)+8>>2]|0,c[h>>2]&1);if(c[h>>2]&2|0)ya(f);Td(6817,b+208|0)|0;za(c[(c[d>>2]|0)+12>>2]|0,c[h>>2]&2);Td(8037,b+216|0)|0;if(!(jc(c[(c[d>>2]|0)+20>>2]|0,8044,2)|0)){Td(8049,b+224|0)|0;Ba(8194);k=b;return}if(jc(c[(c[d>>2]|0)+20>>2]|0,8052,2)|0){Td(8059,b+240|0)|0;Ba(8194);k=b;return}else{Td(8056,b+232|0)|0;Ba(8194);k=b;return}}function Bb(a){a=a|0;var b=0,d=0,e=0;b=k;k=k+64|0;d=b+56|0;e=b+60|0;c[e>>2]=a;if((c[88407]|0)==1){Fa(8202);ga(1)}wa();Td(8269,b)|0;if(!(jc(c[(c[e>>2]|0)+8>>2]|0,8276,2)|0)){Td(8059,b+8|0)|0;Ba(8353);k=b;return}if(!(jc(c[(c[e>>2]|0)+8>>2]|0,8281,2)|0)){Td(8056,b+16|0)|0;Ba(8353);k=b;return}if(!(jc(c[(c[e>>2]|0)+8>>2]|0,8287,4)|0)){Td(8293,b+24|0)|0;Ba(8353);k=b;return}if(!(jc(c[(c[e>>2]|0)+8>>2]|0,8296,6)|0)){Td(8305,b+32|0)|0;Ba(8353);k=b;return}if(!(jc(c[(c[e>>2]|0)+8>>2]|0,8308,2)|0)){Td(8049,b+40|0)|0;Ba(8353);k=b;return}if(jc(c[(c[e>>2]|0)+8>>2]|0,8312,2)|0){e=c[721]|0;c[d>>2]=c[88385];Od(e,8320,d)|0;ga(1)}Td(8317,b+48|0)|0;Ba(8353);k=b;return}function Cb(){var b=0,d=0,e=0,f=0;b=k;k=k+112|0;d=b+104|0;e=b;while(1){if(Cd(e,100,c[689]|0)|0){if((a[e>>0]|0)<58?(a[e>>0]|0)>47:0)f=5}else f=5;if((f|0)==5?(f=0,(a[e>>0]|0)!=101):0){f=6;break}c[88385]=(c[88385]|0)+1;if(!(jc(e,12885,3)|0)){f=9;break}c[d>>2]=e;Td(4011,d)|0}if((f|0)==6){Fa(8362);ga(1)}else if((f|0)==9){k=b;return}}function Db(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;d=k;k=k+352|0;e=d+320|0;f=d+312|0;g=d+304|0;h=d+296|0;i=d+288|0;j=d+280|0;l=d+272|0;m=d+256|0;n=d+224|0;o=d+216|0;p=d+208|0;q=d+200|0;r=d+192|0;s=d+184|0;t=d+176|0;u=d+168|0;v=d+340|0;w=d+336|0;x=d+328|0;y=d+112|0;z=d;A=d+344|0;B=d+324|0;c[v>>2]=b;c[w>>2]=0;c[d+332>>2]=0;c[x>>2]=0;a[A>>0]=a[(c[(c[v>>2]|0)+4>>2]|0)+6>>0]|0;if((a[(c[(c[v>>2]|0)+4>>2]|0)+7>>0]|0)==99)c[x>>2]=1;b=c[c[v>>2]>>2]|0;v=a[A>>0]|0;if(c[x>>2]|0){c[t>>2]=b;c[t+4>>2]=v;lc(y,8426,t)|0}else{c[u>>2]=b;c[u+4>>2]=v;lc(y,8413,u)|0}c[s>>2]=y;Td(8444,s)|0;s=a[A>>0]|0;if(c[x>>2]|0){c[q>>2]=s;Td(8479,q)|0}else{c[r>>2]=s;Td(8455,r)|0}c[p>>2]=y;Td(8499,p)|0;p=a[A>>0]|0;if(c[x>>2]|0){c[n>>2]=p;Td(8534,n)|0}else{c[o>>2]=p;Td(8510,o)|0}o=c[88392]|0;c[88392]=o+1;c[B>>2]=o;c[88392]=(c[88392]|0)+2;if((c[88407]|0)==1){o=c[88392]|0;c[88392]=o+1;lc(18464+(o*50|0)|0,8556,d+232|0)|0;o=c[88392]|0;c[88392]=o+1;lc(18464+(o*50|0)|0,8572,d+240|0)|0;o=c[88392]|0;c[88392]=o+1;lc(18464+(o*50|0)|0,4080,d+248|0)|0}o=c[88392]|0;c[88392]=o+1;c[m>>2]=y;lc(18464+(o*50|0)|0,4011,m)|0;m=c[88392]|0;c[88392]=m+1;lc(18464+(m*50|0)|0,8599,d+264|0)|0;while(1){if(Cd(z,100,c[689]|0)|0){if((a[z>>0]|0)<58?(a[z>>0]|0)>47:0)C=18}else C=18;if((C|0)==18?(C=0,(a[z>>0]|0)!=101):0){C=19;break}c[88385]=(c[88385]|0)+1;if(!(jc(z,12885,3)|0))break;c[w>>2]=(c[w>>2]|0)+1;m=c[88392]|0;c[88392]=m+1;c[l>>2]=z;lc(18464+(m*50|0)|0,8668,l)|0}if((C|0)==19){Fa(8609);ga(1)}C=18464+((c[B>>2]|0)*50|0)|0;c[j>>2]=(c[w>>2]|0)+1;lc(C,8678,j)|0;lc(18464+(((c[B>>2]|0)+1|0)*50|0)|0,8700,i)|0;lc(18464+(((c[B>>2]|0)+2|0)*50|0)|0,4080,h)|0;if((c[88407]|0)!=1){if(!(c[x>>2]|0)){c[f>>2]=c[w>>2];Td(8728,f)|0}}else{c[g>>2]=(c[w>>2]|0)+2;Td(8728,g)|0}if(c[x>>2]|0){k=d;return}c[e>>2]=a[A>>0];Td(8738,e)|0;k=d;return}function Eb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;d=k;k=k+272|0;e=d+256|0;f=d+248|0;g=d+208|0;h=d+176|0;i=d+168|0;j=d+268|0;l=d+260|0;m=d+112|0;n=d;c[j>>2]=b;c[d+264>>2]=8;c[l>>2]=0;if(!(c[88408]|0))c[88408]=1;c[i>>2]=c[c[j>>2]>>2];lc(m,8759,i)|0;Aa(m);c[h>>2]=m;Td(8444,h)|0;Td(8770,d+184|0)|0;Td(8788,d+192|0)|0;Td(8808,d+200|0)|0;c[g>>2]=m;Td(8819,g)|0;Td(8838,d+216|0)|0;g=c[88392]|0;c[88392]=g+1;lc(18464+(g*50|0)|0,8858,d+224|0)|0;g=c[88392]|0;c[88392]=g+1;lc(18464+(g*50|0)|0,8700,d+232|0)|0;g=c[88392]|0;c[88392]=g+1;lc(18464+(g*50|0)|0,4080,d+240|0)|0;g=c[88392]|0;c[88392]=g+1;c[f>>2]=m;lc(18464+(g*50|0)|0,4011,f)|0;c[l>>2]=0;while(1){if((c[l>>2]|0)>=9){o=12;break}if(Cd(n,100,c[689]|0)|0){if((a[n>>0]|0)<58?(a[n>>0]|0)>47:0)o=8}else o=8;if((o|0)==8?(o=0,(a[n>>0]|0)!=101):0){o=9;break}c[88385]=(c[88385]|0)+1;if(!(jc(n,12885,3)|0)){o=12;break}f=c[88392]|0;c[88392]=f+1;c[e>>2]=n;lc(18464+(f*50|0)|0,8668,e)|0;c[l>>2]=(c[l>>2]|0)+1}if((o|0)==9){Fa(8879);ga(1)}else if((o|0)==12){k=d;return}}function Fb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,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,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,La=0,Ma=0,Na=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0;d=k;k=k+880|0;e=d+832|0;f=d+824|0;g=d+816|0;h=d+808|0;i=d+800|0;j=d+792|0;l=d+784|0;m=d+776|0;n=d+768|0;o=d+760|0;p=d+752|0;q=d+744|0;r=d+736|0;s=d+728|0;t=d+720|0;u=d+712|0;v=d+704|0;w=d+696|0;x=d+688|0;y=d+680|0;z=d+672|0;A=d+664|0;B=d+656|0;C=d+648|0;D=d+640|0;E=d+632|0;F=d+624|0;G=d+616|0;H=d+608|0;I=d+600|0;J=d+592|0;K=d+584|0;L=d+576|0;M=d+568|0;N=d+560|0;O=d+552|0;P=d+544|0;Q=d+536|0;R=d+528|0;S=d+520|0;T=d+512|0;U=d+504|0;V=d+496|0;W=d+488|0;X=d+480|0;Y=d+472|0;Z=d+464|0;_=d+456|0;$=d+448|0;aa=d+440|0;ba=d+432|0;ca=d+424|0;da=d+416|0;ea=d+408|0;fa=d+400|0;ha=d+392|0;ia=d+384|0;ja=d+376|0;ka=d+368|0;la=d+360|0;ma=d+352|0;na=d+344|0;oa=d+336|0;pa=d+328|0;qa=d+320|0;ra=d+312|0;sa=d+304|0;ta=d+296|0;ua=d+288|0;va=d+280|0;wa=d+272|0;Aa=d+264|0;Ba=d+256|0;Ca=d+248|0;Da=d+240|0;Ea=d+232|0;Fa=d+224|0;Ga=d+216|0;Ha=d+208|0;Ia=d+200|0;Ja=d+192|0;La=d+184|0;Ma=d+872|0;Na=d+868|0;Pa=d+128|0;Qa=d+64|0;Ra=d+864|0;Sa=d+860|0;Ta=d+856|0;Ua=d+852|0;Va=d+848|0;Wa=d+844|0;Xa=d;Ya=d+840|0;Za=d+836|0;c[Ma>>2]=b;c[Na>>2]=0;c[Ra>>2]=0;c[Va>>2]=0;c[Wa>>2]=0;bd(Xa,8956)|0;c[Ya>>2]=Zb(200)|0;c[Ua>>2]=0;while(1){if((c[Ua>>2]|0)>=50)break;b=Zb(50)|0;c[(c[Ya>>2]|0)+(c[Ua>>2]<<2)>>2]=b;c[Ua>>2]=(c[Ua>>2]|0)+1}c[Za>>2]=c[Ya>>2];c[Ua>>2]=0;while(1){if((c[Ua>>2]|0)>=50)break;c[Ta>>2]=0;while(1){if((c[Ta>>2]|0)>=50)break;a[(c[(c[Ya>>2]|0)+(c[Ta>>2]<<2)>>2]|0)+(c[Ua>>2]|0)>>0]=0;c[Ta>>2]=(c[Ta>>2]|0)+1}c[Ua>>2]=(c[Ua>>2]|0)+1}a:do if((a[c[(c[Ma>>2]|0)+8>>2]>>0]|0)==33){c[Ra>>2]=1;c[Sa>>2]=0;while(1){if((c[Sa>>2]|0)>=49)break a;a[(c[(c[Ma>>2]|0)+8>>2]|0)+(c[Sa>>2]|0)>>0]=a[(c[(c[Ma>>2]|0)+8>>2]|0)+((c[Sa>>2]|0)+1)>>0]|0;c[Sa>>2]=(c[Sa>>2]|0)+1}}while(0);if(jc(c[(c[Ma>>2]|0)+8>>2]|0,8970,3)|0?jc(c[(c[Ma>>2]|0)+8>>2]|0,8975,6)|0:0){b=(jc(c[(c[Ma>>2]|0)+8>>2]|0,9008,6)|0)!=0;_a=c[Ma>>2]|0;if(!b){xb(_a);b=(eb(c[Ma>>2]|0)|0)!=0;$a=(c[Ra>>2]|0)!=0;if(!b){b=c[(c[Ma>>2]|0)+36>>2]|0;if($a)sb(b);else tb(b);Oa(c[Za>>2]|0);k=d;return}if($a)Td(8983,Fa)|0;else Td(8989,Ea)|0;c[Da>>2]=c[c[Ma>>2]>>2];Td(7030,Da)|0;c[Sa>>2]=8;while(1){if((c[Sa>>2]|0)>=50)break;c[Ua>>2]=0;while(1){if((c[Ua>>2]|0)>=50)break;a[(c[(c[Ya>>2]|0)+((c[Sa>>2]|0)-8<<2)>>2]|0)+(c[Ua>>2]|0)>>0]=a[(c[(c[Ma>>2]|0)+(c[Sa>>2]<<2)>>2]|0)+(c[Ua>>2]|0)>>0]|0;c[Ua>>2]=(c[Ua>>2]|0)+1}c[Sa>>2]=(c[Sa>>2]|0)+1}Da=c[88409]|0;c[88409]=Da+1;c[Ca>>2]=Da;Td(8995,Ca)|0;Yb(c[Ya>>2]|0);c[Ba>>2]=c[c[Ma>>2]>>2];Td(7030,Ba)|0;Oa(c[Za>>2]|0);k=d;return}if(!(jc(c[_a+8>>2]|0,9016,10)|0)){do if(jc(c[(c[Ma>>2]|0)+8>>2]|0,9028,27)|0){if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9069,27)|0)){Td(9057,wa)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9098,27)|0)){Td(9127,va)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9139,27)|0)){Td(9127,ua)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9168,28)|0)){Td(9198,ta)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9211,23)|0)){Td(9198,sa)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9236,28)|0)){Td(9266,ra)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9279,23)|0)){Td(9266,qa)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9304,29)|0)){Td(9335,pa)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9348,24)|0)){Td(9335,oa)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9374,29)|0)){Td(9405,na)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9418,24)|0)){Td(9405,ma)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9444,25)|0)){Td(9471,la)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9484,26)|0)){Td(9512,ka)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9525,28)|0)){Td(9512,ja)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9555,27)|0)){Td(9057,ia)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9584,27)|0)){Td(9057,ha)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9613,27)|0)){Td(9127,fa)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9642,27)|0)){Td(9127,ea)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9671,28)|0)){Td(9198,da)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9701,23)|0)){Td(9198,ca)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9726,28)|0)){Td(9266,ba)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9756,23)|0)){Td(9266,aa)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9781,29)|0)){Td(9335,$)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9812,24)|0)){Td(9335,_)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9838,29)|0)){Td(9405,Z)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9869,24)|0)){Td(9405,Y)|0;c[Va>>2]=6;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9895,25)|0)){Td(9471,X)|0;c[Va>>2]=7;break}if(!(jc(c[(c[Ma>>2]|0)+8>>2]|0,9922,26)|0)){Td(9512,W)|0;c[Va>>2]=7;break}if(jc(c[(c[Ma>>2]|0)+8>>2]|0,9950,28)|0){_a=c[721]|0;Ba=(c[(c[Ma>>2]|0)+8>>2]|0)+9|0;c[U>>2]=c[88385];c[U+4>>2]=Ba;Od(_a,9980,U)|0;ga(1)}else{Td(9512,V)|0;c[Va>>2]=6;break}}else{Td(9057,Aa)|0;c[Va>>2]=7}while(0);Aa=(eb(c[Ma>>2]|0)|0)!=0;V=(c[Ra>>2]|0)!=0;U=(c[Va>>2]|0)==7;if(!Aa){Aa=c[(c[Ma>>2]|0)+16>>2]|0;do if(V)if(U){Ib(Aa);break}else{Jb(Aa);break}else if(U){Gb(Aa);break}else{Hb(Aa);break}while(0);Oa(c[Za>>2]|0);k=d;return}do if(V)if(U){Td(10020,T)|0;break}else{Td(10026,S)|0;break}else if(U){Td(10032,R)|0;break}else{Td(10038,Q)|0;break}while(0);c[P>>2]=c[c[Ma>>2]>>2];Td(7030,P)|0;c[Sa>>2]=3;while(1){if((c[Sa>>2]|0)>=50)break;c[Ua>>2]=0;while(1){if((c[Ua>>2]|0)>=50)break;a[(c[(c[Ya>>2]|0)+((c[Sa>>2]|0)-3<<2)>>2]|0)+(c[Ua>>2]|0)>>0]=a[(c[(c[Ma>>2]|0)+(c[Sa>>2]<<2)>>2]|0)+(c[Ua>>2]|0)>>0]|0;c[Ua>>2]=(c[Ua>>2]|0)+1}c[Sa>>2]=(c[Sa>>2]|0)+1}P=c[88409]|0;c[88409]=P+1;c[O>>2]=P;Td(8995,O)|0;Yb(c[Ya>>2]|0);c[N>>2]=c[c[Ma>>2]>>2];Td(7030,N)|0;Oa(c[Za>>2]|0);k=d;return}c[Sa>>2]=0;while(1){if((c[Sa>>2]|0)>=50)break;if(!(a[(c[(c[Ma>>2]|0)+8>>2]|0)+(c[Sa>>2]|0)>>0]|0)){ab=135;break}if((a[(c[(c[Ma>>2]|0)+8>>2]|0)+(c[Sa>>2]|0)>>0]|0)==125)break;c[Sa>>2]=(c[Sa>>2]|0)+1}if((ab|0)==135)c[Sa>>2]=50;if((c[Sa>>2]|0)>=50){bd(Xa,c[(c[Ma>>2]|0)+8>>2]|0)|0;if(!(ic(c[(c[Ma>>2]|0)+8>>2]|0,18400)|0))c[Wa>>2]=1;ab=xa(c[(c[Ma>>2]|0)+8>>2]|0,Pa)|0;c[Na>>2]=c[Na>>2]|ab;if(jc(c[(c[Ma>>2]|0)+12>>2]|0,12768,4)|0){ab=(xa(c[(c[Ma>>2]|0)+16>>2]|0,Qa)|0)<<1;c[Na>>2]=c[Na>>2]|ab}if(!(c[Wa>>2]|0)){if(c[Na>>2]&1|0)ya(Pa);Td(3846,p)|0;za(c[(c[Ma>>2]|0)+8>>2]|0,c[Na>>2]&1);bd(18400,Xa)|0}if(c[Na>>2]&2|0)ya(Qa);if(jc(c[(c[Ma>>2]|0)+12>>2]|0,12768,4)|0){Td(7266,o)|0;za(c[(c[Ma>>2]|0)+16>>2]|0,c[Na>>2]&2)}Na=(eb(c[Ma>>2]|0)|0)!=0;o=(a[c[(c[Ma>>2]|0)+12>>2]>>0]|0)==61;if(!Na){if(o)tb(c[(c[Ma>>2]|0)+24>>2]|0);Na=(jc(c[(c[Ma>>2]|0)+12>>2]|0,10132,2)|0)!=0;Qa=c[Ma>>2]|0;if(Na){if((a[c[Qa+12>>2]>>0]|0)==60)qb(c[(c[Ma>>2]|0)+24>>2]|0)}else sb(c[Qa+24>>2]|0);if((a[c[(c[Ma>>2]|0)+12>>2]>>0]|0)==62)rb(c[(c[Ma>>2]|0)+24>>2]|0);do if(!(jc(c[(c[Ma>>2]|0)+12>>2]|0,12768,4)|0)){Qa=c[(c[Ma>>2]|0)+16>>2]|0;if(c[Ra>>2]|0){tb(Qa);break}else{sb(Qa);break}}while(0);Oa(c[Za>>2]|0);k=d;return}if(o)Td(10136,n)|0;if(ic(c[(c[Ma>>2]|0)+12>>2]|0,10146)|0){if((a[c[(c[Ma>>2]|0)+12>>2]>>0]|0)==60)Td(10159,l)|0}else Td(10149,m)|0;if((a[c[(c[Ma>>2]|0)+12>>2]>>0]|0)==62)Td(10169,j)|0;c[Ta>>2]=5;do if(!(jc(c[(c[Ma>>2]|0)+12>>2]|0,12768,4)|0)){c[Ta>>2]=3;if(c[Ra>>2]|0){Td(8989,i)|0;break}else{Td(8983,h)|0;break}}while(0);c[g>>2]=c[c[Ma>>2]>>2];Td(7030,g)|0;c[Sa>>2]=c[Ta>>2];while(1){if((c[Sa>>2]|0)>=50)break;c[Ua>>2]=0;while(1){if((c[Ua>>2]|0)>=50)break;a[(c[(c[Ya>>2]|0)+((c[Sa>>2]|0)-(c[Ta>>2]|0)<<2)>>2]|0)+(c[Ua>>2]|0)>>0]=a[(c[(c[Ma>>2]|0)+(c[Sa>>2]<<2)>>2]|0)+(c[Ua>>2]|0)>>0]|0;c[Ua>>2]=(c[Ua>>2]|0)+1}c[Sa>>2]=(c[Sa>>2]|0)+1}Ta=c[88409]|0;c[88409]=Ta+1;c[f>>2]=Ta;Td(8995,f)|0;Yb(c[Ya>>2]|0);c[e>>2]=c[c[Ma>>2]>>2];Td(7030,e)|0;Oa(c[Za>>2]|0);k=d;return}c[Va>>2]=(a[(c[(c[Ma>>2]|0)+8>>2]|0)+((c[Sa>>2]|0)-1)>>0]|0)-48;if((c[Va>>2]|0)>9|(c[Va>>2]|0)<0){e=c[721]|0;c[M>>2]=c[88385];Od(e,10044,M)|0;ga(1)}if((c[Va>>2]|0)==7|(c[Va>>2]|0)==6){Td(10095,L)|0;c[Sa>>2]=0;while(1){if((c[Sa>>2]|0)>=50)break;if((a[(c[(c[Ma>>2]|0)+8>>2]|0)+(c[Sa>>2]|0)>>0]|0)==123)break;c[K>>2]=a[(c[(c[Ma>>2]|0)+8>>2]|0)+(c[Sa>>2]|0)>>0];Td(10101,K)|0;c[Sa>>2]=(c[Sa>>2]|0)+1}Td(5026,J)|0;J=(eb(c[Ma>>2]|0)|0)!=0;K=(c[Ra>>2]|0)!=0;L=(c[Va>>2]|0)==7;if(!J){J=c[(c[Ma>>2]|0)+16>>2]|0;do if(K)if(L){Ib(J);break}else{Jb(J);break}else if(L){Gb(J);break}else{Hb(J);break}while(0);Oa(c[Za>>2]|0);k=d;return}do if(K)if(L){Td(10020,I)|0;break}else{Td(10026,H)|0;break}else if(L){Td(10032,G)|0;break}else{Td(10038,F)|0;break}while(0);c[E>>2]=c[c[Ma>>2]>>2];Td(7030,E)|0;c[Sa>>2]=3;while(1){if((c[Sa>>2]|0)>=50)break;c[Ua>>2]=0;while(1){if((c[Ua>>2]|0)>=50)break;a[(c[(c[Ya>>2]|0)+((c[Sa>>2]|0)-3<<2)>>2]|0)+(c[Ua>>2]|0)>>0]=a[(c[(c[Ma>>2]|0)+(c[Sa>>2]<<2)>>2]|0)+(c[Ua>>2]|0)>>0]|0;c[Ua>>2]=(c[Ua>>2]|0)+1}c[Sa>>2]=(c[Sa>>2]|0)+1}E=c[88409]|0;c[88409]=E+1;c[D>>2]=E;Td(8995,D)|0;Yb(c[Ya>>2]|0);c[C>>2]=c[c[Ma>>2]>>2];Td(7030,C)|0;Oa(c[Za>>2]|0);k=d;return}c[Wa>>2]=0;Td(3846,B)|0;c[Sa>>2]=0;while(1){if((c[Sa>>2]|0)>=50)break;if((a[(c[(c[Ma>>2]|0)+8>>2]|0)+(c[Sa>>2]|0)>>0]|0)==123)break;c[A>>2]=a[(c[(c[Ma>>2]|0)+8>>2]|0)+(c[Sa>>2]|0)>>0];Td(10101,A)|0;c[Sa>>2]=(c[Sa>>2]|0)+1}Td(5026,z)|0;if(c[Va>>2]|0){c[x>>2]=1<>2];Td(10110,x)|0}else Td(10104,y)|0;y=(eb(c[Ma>>2]|0)|0)!=0;x=(c[Ra>>2]|0)!=0;z=(c[Va>>2]|0)!=0;if(!y){y=c[(c[Ma>>2]|0)+16>>2]|0;do if(x)if(z){tb(y);break}else{qb(y);break}else if(z){sb(y);break}else{rb(y);break}while(0);Oa(c[Za>>2]|0);k=d;return}do if(x)if(z){Td(8989,v)|0;break}else{Td(10120,w)|0;break}else if(z){Td(8983,t)|0;break}else{Td(10126,u)|0;break}while(0);c[s>>2]=c[c[Ma>>2]>>2];Td(7030,s)|0;c[Sa>>2]=3;while(1){if((c[Sa>>2]|0)>=50)break;c[Ua>>2]=0;while(1){if((c[Ua>>2]|0)>=50)break;a[(c[(c[Ya>>2]|0)+((c[Sa>>2]|0)-3<<2)>>2]|0)+(c[Ua>>2]|0)>>0]=a[(c[(c[Ma>>2]|0)+(c[Sa>>2]<<2)>>2]|0)+(c[Ua>>2]|0)>>0]|0;c[Ua>>2]=(c[Ua>>2]|0)+1}c[Sa>>2]=(c[Sa>>2]|0)+1}s=c[88409]|0;c[88409]=s+1;c[r>>2]=s;Td(8995,r)|0;Yb(c[Ya>>2]|0);c[q>>2]=c[c[Ma>>2]>>2];Td(7030,q)|0;Oa(c[Za>>2]|0);k=d;return}Ka(c[(c[Ma>>2]|0)+8>>2]|0);q=(eb(c[Ma>>2]|0)|0)!=0;r=(c[Ra>>2]|0)!=0;if(!q){q=c[(c[Ma>>2]|0)+16>>2]|0;if(r)sb(q);else tb(q);Oa(c[Za>>2]|0);k=d;return}if(r)Td(8983,La)|0;else Td(8989,Ja)|0;c[Ia>>2]=c[c[Ma>>2]>>2];Td(7030,Ia)|0;c[Sa>>2]=3;while(1){if((c[Sa>>2]|0)>=50)break;c[Ua>>2]=0;while(1){if((c[Ua>>2]|0)>=50)break;a[(c[(c[Ya>>2]|0)+((c[Sa>>2]|0)-3<<2)>>2]|0)+(c[Ua>>2]|0)>>0]=a[(c[(c[Ma>>2]|0)+(c[Sa>>2]<<2)>>2]|0)+(c[Ua>>2]|0)>>0]|0;c[Ua>>2]=(c[Ua>>2]|0)+1}c[Sa>>2]=(c[Sa>>2]|0)+1}Sa=c[88409]|0;c[88409]=Sa+1;c[Ha>>2]=Sa;Td(8995,Ha)|0;Yb(c[Ya>>2]|0);c[Ga>>2]=c[c[Ma>>2]>>2];Td(7030,Ga)|0;Oa(c[Za>>2]|0);k=d;return}function Gb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+64|0;d=b+48|0;e=b+32|0;f=b+16|0;g=b;h=b+52|0;c[h>>2]=a;Aa(c[h>>2]|0);a=c[h>>2]|0;if(c[88405]|0){i=c[h>>2]|0;j=c[h>>2]|0;c[g>>2]=a;c[g+4>>2]=i;c[g+8>>2]=j;Td(10464,g)|0;g=c[h>>2]|0;j=c[h>>2]|0;c[f>>2]=c[88406];c[f+4>>2]=g;c[f+8>>2]=j;Td(10518,f)|0;f=c[88406]|0;c[88406]=f+1;j=c[h>>2]|0;c[e>>2]=f;c[e+4>>2]=j;Td(7432,e)|0;Td(7443,b+40|0)|0;k=b;return}else{c[d>>2]=a;Td(10549,d)|0;k=b;return}}function Hb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+64|0;d=b+48|0;e=b+32|0;f=b+16|0;g=b;h=b+52|0;c[h>>2]=a;Aa(c[h>>2]|0);a=c[h>>2]|0;if(c[88405]|0){i=c[h>>2]|0;j=c[h>>2]|0;c[g>>2]=a;c[g+4>>2]=i;c[g+8>>2]=j;Td(10369,g)|0;g=c[h>>2]|0;j=c[h>>2]|0;c[f>>2]=c[88406];c[f+4>>2]=g;c[f+8>>2]=j;Td(10423,f)|0;f=c[88406]|0;c[88406]=f+1;j=c[h>>2]|0;c[e>>2]=f;c[e+4>>2]=j;Td(7432,e)|0;Td(7443,b+40|0)|0;k=b;return}else{c[d>>2]=a;Td(10454,d)|0;k=b;return}}function Ib(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+64|0;d=b+48|0;e=b+32|0;f=b+16|0;g=b;h=b+52|0;c[h>>2]=a;Aa(c[h>>2]|0);a=c[h>>2]|0;if(c[88405]|0){i=c[h>>2]|0;j=c[h>>2]|0;c[g>>2]=a;c[g+4>>2]=i;c[g+8>>2]=j;Td(10274,g)|0;g=c[h>>2]|0;j=c[h>>2]|0;c[f>>2]=c[88406];c[f+4>>2]=g;c[f+8>>2]=j;Td(10328,f)|0;f=c[88406]|0;c[88406]=f+1;j=c[h>>2]|0;c[e>>2]=f;c[e+4>>2]=j;Td(7432,e)|0;Td(7443,b+40|0)|0;k=b;return}else{c[d>>2]=a;Td(10359,d)|0;k=b;return}}function Jb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=k;k=k+64|0;d=b+48|0;e=b+32|0;f=b+16|0;g=b;h=b+52|0;c[h>>2]=a;Aa(c[h>>2]|0);a=c[h>>2]|0;if(c[88405]|0){i=c[h>>2]|0;j=c[h>>2]|0;c[g>>2]=a;c[g+4>>2]=i;c[g+8>>2]=j;Td(10179,g)|0;g=c[h>>2]|0;j=c[h>>2]|0;c[f>>2]=c[88406];c[f+4>>2]=g;c[f+8>>2]=j;Td(10233,f)|0;f=c[88406]|0;c[88406]=f+1;j=c[h>>2]|0;c[e>>2]=f;c[e+4>>2]=j;Td(7432,e)|0;Td(7443,b+40|0)|0;k=b;return}else{c[d>>2]=a;Td(10264,d)|0;k=b;return}}function Kb(){return c[88409]|0}function Lb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=k;k=k+16|0;f=e;g=e+5|0;h=e+4|0;a[g>>0]=b;a[h>>0]=d;a:do if((a[g>>0]|0)==40)c[f>>2]=0;else{if((a[h>>0]|0)==40){c[f>>2]=0;break}if((a[h>>0]|0)==41){c[f>>2]=1;break}if(!(((a[g>>0]|0)!=94?(a[g>>0]|0)!=124:0)?(a[g>>0]|0)!=38:0))i=10;do if((i|0)==10){if(((a[h>>0]|0)!=94?(a[h>>0]|0)!=124:0)?(a[h>>0]|0)!=38:0)break;c[f>>2]=0;break a}while(0);if((a[g>>0]|0)!=42?(a[g>>0]|0)!=47:0){if((a[h>>0]|0)!=42?(a[h>>0]|0)!=47:0){if((a[g>>0]|0)!=43?(a[g>>0]|0)!=45:0){if((a[h>>0]|0)!=43?(a[h>>0]|0)!=45:0){c[f>>2]=1;break}c[f>>2]=0;break}c[f>>2]=1;break}c[f>>2]=0;break}c[f>>2]=1}while(0);k=e;return c[f>>2]|0}function Mb(b){b=b|0;var d=0,e=0,f=0,g=0;d=k;k=k+16|0;e=d;f=d+4|0;a[f>>0]=b;if(((((((((a[f>>0]|0)!=43?(a[f>>0]|0)!=45:0)?(a[f>>0]|0)!=47:0)?(a[f>>0]|0)!=42:0)?(a[f>>0]|0)!=38:0)?(a[f>>0]|0)!=124:0)?(a[f>>0]|0)!=94:0)?(a[f>>0]|0)!=41:0)?(a[f>>0]|0)!=40:0){c[e>>2]=0;g=c[e>>2]|0;k=d;return g|0}c[e>>2]=1;g=c[e>>2]|0;k=d;return g|0}function Nb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0;f=k;k=k+112|0;g=f+96|0;h=f+88|0;i=f+108|0;j=f+104|0;l=f+100|0;c[i>>2]=b;c[j>>2]=d;c[l>>2]=e;e=(jc(c[j>>2]|0,10559,9)|0)!=0;d=c[i>>2]|0;if(e){c[g>>2]=d+1;Td(10643,g)|0;za(c[j>>2]|0,c[l>>2]|0);k=f;return}if((a[d>>0]|0)==45){Td(10570,f)|0;Td(10576,f+8|0)|0;Td(10582,f+16|0)|0;Td(10588,f+24|0)|0;Td(10600,f+32|0)|0;Td(10606,f+40|0)|0;k=f;return}if((a[c[i>>2]>>0]|0)==47){Td(10570,f+48|0)|0;Td(10576,f+56|0)|0;k=f;return}else{Td(10582,f+64|0)|0;Td(10619,f+72|0)|0;Td(10625,f+80|0)|0;c[h>>2]=(c[i>>2]|0)+1;Td(10631,h)|0;k=f;return}}function Ob(b){b=b|0;var e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,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,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,Ea=0,Ga=0,Ha=0,Ia=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,$a=0,ab=0,cb=0,db=0,eb=0,fb=0,gb=0,ib=0,jb=0,kb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,kc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,_c=0,$c=0,ad=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0;e=k;k=k+12096|0;f=e+12016|0;g=e+12008|0;i=e+12e3|0;j=e+11992|0;l=e+11984|0;m=e+11976|0;n=e+11968|0;o=e+11960|0;p=e+11952|0;q=e+11944|0;r=e+11936|0;s=e+11928|0;t=e+11920|0;u=e+11912|0;v=e+11904|0;w=e+11896|0;x=e+11888|0;y=e+11880|0;z=e+11872|0;A=e+11864|0;B=e+11856|0;C=e+11848|0;D=e+11840|0;E=e+11832|0;F=e+11824|0;G=e+11816|0;H=e+11808|0;I=e+11800|0;J=e+11792|0;K=e+11784|0;L=e+11776|0;M=e+11768|0;N=e+11760|0;O=e+11752|0;P=e+11744|0;Q=e+11736|0;R=e+11728|0;S=e+11720|0;T=e+11712|0;U=e+11704|0;V=e+11696|0;W=e+11688|0;X=e+11680|0;Y=e+11672|0;Z=e+11664|0;_=e+11656|0;$=e+11648|0;aa=e+11640|0;ba=e+11632|0;ca=e+11624|0;da=e+11616|0;ea=e+11608|0;fa=e+11600|0;ha=e+11592|0;ia=e+11584|0;ja=e+11576|0;ka=e+11568|0;la=e+11560|0;ma=e+11552|0;na=e+11544|0;oa=e+11536|0;pa=e+11528|0;qa=e+11520|0;ra=e+11512|0;sa=e+11504|0;ta=e+11496|0;ua=e+11488|0;va=e+11480|0;wa=e+11472|0;Ea=e+11464|0;Ga=e+11456|0;Ha=e+11448|0;Ia=e+11440|0;Ka=e+11432|0;La=e+11424|0;Ma=e+11416|0;Na=e+11408|0;Oa=e+11400|0;Ra=e+11392|0;Sa=e+11384|0;Ta=e+11376|0;Ua=e+11368|0;Va=e+11360|0;Wa=e+11352|0;$a=e+11344|0;ab=e+11336|0;cb=e+11328|0;db=e+11320|0;eb=e+11312|0;fb=e+11304|0;gb=e+11296|0;ib=e+11288|0;jb=e+11280|0;kb=e+11272|0;mb=e+11264|0;nb=e+11256|0;ob=e+11248|0;pb=e+11240|0;qb=e+11232|0;rb=e+11224|0;sb=e+11216|0;tb=e+11208|0;ub=e+11200|0;vb=e+11192|0;wb=e+11184|0;xb=e+11176|0;yb=e+11168|0;zb=e+11160|0;Ab=e+11152|0;Bb=e+11144|0;Cb=e+11136|0;Db=e+11128|0;Eb=e+11120|0;Fb=e+11112|0;Gb=e+11104|0;Hb=e+11096|0;Ib=e+11088|0;Jb=e+11080|0;Kb=e+11072|0;Qb=e+11064|0;Rb=e+11056|0;Sb=e+11048|0;Tb=e+11040|0;Ub=e+11032|0;Vb=e+11024|0;Wb=e+11016|0;Xb=e+11008|0;Yb=e+11e3|0;$b=e+10992|0;ac=e+10984|0;bc=e+10976|0;cc=e+10968|0;dc=e+10960|0;ec=e+10952|0;fc=e+10944|0;gc=e+10936|0;hc=e+10928|0;kc=e+10920|0;mc=e+10912|0;nc=e+10904|0;oc=e+10896|0;pc=e+10888|0;qc=e+10880|0;rc=e+10872|0;sc=e+10864|0;tc=e+10856|0;uc=e+10848|0;vc=e+10840|0;wc=e+10832|0;xc=e+10824|0;yc=e+10816|0;zc=e+10808|0;Ac=e+10800|0;Bc=e+10792|0;Cc=e+10784|0;Dc=e+10776|0;Ec=e+10768|0;Fc=e+10760|0;Gc=e+10752|0;Hc=e+10744|0;Ic=e+10736|0;Jc=e+10728|0;Kc=e+10720|0;Lc=e+10712|0;Mc=e+10704|0;Nc=e+10696|0;Oc=e+10688|0;Pc=e+10680|0;Qc=e+10672|0;Rc=e+10664|0;Sc=e+10656|0;Tc=e+10648|0;Uc=e+10640|0;Vc=e+10632|0;Wc=e+10624|0;Xc=e+10616|0;Yc=e+10608|0;_c=e+10600|0;$c=e+10592|0;ad=e+10584|0;cd=e+10576|0;dd=e+10568|0;ed=e+10560|0;fd=e+10552|0;gd=e+10544|0;hd=e+10536|0;id=e+10528|0;jd=e+10520|0;kd=e+10512|0;ld=e+10504|0;md=e+12088|0;nd=e+12084|0;od=e+12080|0;pd=e+12076|0;qd=e+12072|0;rd=e+12068|0;sd=e+10448|0;td=e+10384|0;ud=e+10320|0;vd=e+10288|0;wd=e+12060|0;xd=e+12056|0;yd=e+12052|0;zd=e+10224|0;Ad=e+12048|0;Bd=e+12044|0;Cd=e+12040|0;Dd=e+12036|0;Ed=e+12032|0;Fd=e+224|0;Gd=e+12028|0;Hd=e+12024|0;Id=e+12020|0;Jd=e+112|0;Kd=e;c[md>>2]=b;c[od>>2]=0;c[pd>>2]=0;c[rd>>2]=0;c[e+12064>>2]=0;c[vd>>2]=0;c[vd+4>>2]=0;c[vd+8>>2]=0;c[vd+12>>2]=0;c[vd+16>>2]=0;c[vd+20>>2]=0;c[yd>>2]=0;c[Cd>>2]=0;c[Gd>>2]=0;c[Hd>>2]=0;bd(zd,8956)|0;c[wd>>2]=Zb(200)|0;c[Dd>>2]=c[wd>>2];a:do if(jc(c[(c[md>>2]|0)+8>>2]|0,13220,1)|0)c[wd>>2]=c[md>>2];else{c[nd>>2]=48;while(1){if((c[nd>>2]|0)<=0)break a;c[(c[wd>>2]|0)+((c[nd>>2]|0)+1<<2)>>2]=c[(c[md>>2]|0)+(c[nd>>2]<<2)>>2];c[nd>>2]=(c[nd>>2]|0)+-1}}while(0);if((a[c[(c[wd>>2]|0)+16>>2]>>0]|0)==45?(a[c[(c[wd>>2]|0)+20>>2]>>0]|0)>63:0){lb(c[wd>>2]|0,4);a[c[(c[wd>>2]|0)+16>>2]>>0]=48}c[Ad>>2]=Qa(c[(c[wd>>2]|0)+8>>2]|0)|0;c[Bd>>2]=Qa(c[(c[wd>>2]|0)+16>>2]|0)|0;Aa(c[(c[wd>>2]|0)+16>>2]|0);if(!((a[c[(c[wd>>2]|0)+16>>2]>>0]|0)==45?(a[c[(c[wd>>2]|0)+24>>2]>>0]|0)==58:0))Ld=11;do if(((Ld|0)==11?(a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=58:0)?(a[c[(c[wd>>2]|0)+28>>2]>>0]|0)!=58:0){if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==40?(a[c[(c[wd>>2]|0)+16>>2]>>0]|0)!=40:0)break;if((d[c[(c[wd>>2]|0)+20>>2]>>0]|0)>32?(d[c[(c[wd>>2]|0)+28>>2]>>0]|0)>32:0){Td(10648,ld)|0;c[Ed>>2]=Zb(400)|0;c[nd>>2]=0;while(1){if((c[nd>>2]|0)>=100)break;md=Zb(100)|0;c[(c[Ed>>2]|0)+(c[nd>>2]<<2)>>2]=md;c[qd>>2]=0;while(1){if((c[qd>>2]|0)>=100)break;a[(c[(c[Ed>>2]|0)+(c[nd>>2]<<2)>>2]|0)+(c[qd>>2]|0)>>0]=0;c[qd>>2]=(c[qd>>2]|0)+1}c[nd>>2]=(c[nd>>2]|0)+1}c[Id>>2]=Zb(40)|0;c[nd>>2]=0;while(1){if((c[nd>>2]|0)>=10)break;md=Zb(100)|0;c[(c[Id>>2]|0)+(c[nd>>2]<<2)>>2]=md;c[qd>>2]=0;while(1){if((c[qd>>2]|0)>=100)break;a[(c[(c[Id>>2]|0)+(c[nd>>2]<<2)>>2]|0)+(c[qd>>2]|0)>>0]=0;c[qd>>2]=(c[qd>>2]|0)+1}c[nd>>2]=(c[nd>>2]|0)+1}c[qd>>2]=4;while(1){if(!(a[c[(c[wd>>2]|0)+(c[qd>>2]<<2)>>2]>>0]|0))break;if((a[c[(c[wd>>2]|0)+(c[qd>>2]<<2)>>2]>>0]|0)==58)break;do if((a[c[(c[wd>>2]|0)+(c[qd>>2]<<2)>>2]>>0]|0)!=10?(a[c[(c[wd>>2]|0)+(c[qd>>2]<<2)>>2]>>0]|0)!=13:0){bd(Jd,c[(c[wd>>2]|0)+(c[qd>>2]<<2)>>2]|0)|0;if(!(Mb(a[Jd>>0]|0)|0)){md=c[Ed>>2]|0;b=c[Hd>>2]|0;c[Hd>>2]=b+1;bd(c[md+(b<<2)>>2]|0,Jd)|0;break}while(1){if(!(c[Gd>>2]|0))break;if(!(Lb(a[Fd+(((c[Gd>>2]|0)-1|0)*100|0)>>0]|0,a[Jd>>0]|0)|0))break;bd(Kd,Fd+(((c[Gd>>2]|0)-1|0)*100|0)|0)|0;c[Gd>>2]=(c[Gd>>2]|0)+-1;b=c[Ed>>2]|0;md=c[Hd>>2]|0;c[Hd>>2]=md+1;bd(c[b+(md<<2)>>2]|0,Kd)|0}if(c[Gd>>2]|0?(a[Jd>>0]|0)==41:0){c[Gd>>2]=(c[Gd>>2]|0)+-1;break}md=c[Gd>>2]|0;c[Gd>>2]=md+1;bd(Fd+(md*100|0)|0,Jd)|0}while(0);c[qd>>2]=(c[qd>>2]|0)+1}while(1){if(!(c[Gd>>2]|0))break;bd(Kd,Fd+(((c[Gd>>2]|0)-1|0)*100|0)|0)|0;c[Gd>>2]=(c[Gd>>2]|0)+-1;md=c[Ed>>2]|0;b=c[Hd>>2]|0;c[Hd>>2]=b+1;bd(c[md+(b<<2)>>2]|0,Kd)|0}c[Gd>>2]=0;b:while(1){b=(c[Gd>>2]|0)<(c[Hd>>2]|0);c[nd>>2]=0;if(!b){Ld=72;break}while(1){if((c[nd>>2]|0)>=10)break;c[qd>>2]=0;while(1){if((c[qd>>2]|0)>=100)break;a[(c[(c[Id>>2]|0)+(c[nd>>2]<<2)>>2]|0)+(c[qd>>2]|0)>>0]=0;c[qd>>2]=(c[qd>>2]|0)+1}c[nd>>2]=(c[nd>>2]|0)+1}do if(Mb(a[c[(c[Ed>>2]|0)+(c[Gd>>2]<<2)>>2]>>0]|0)|0){bd(c[(c[Id>>2]|0)+8>>2]|0,10678)|0;bd(c[(c[Id>>2]|0)+12>>2]|0,7057)|0;bd(c[(c[Id>>2]|0)+16>>2]|0,10678)|0;b=c[(c[Id>>2]|0)+20>>2]|0;md=c[Ed>>2]|0;Md=c[Gd>>2]|0;c[Gd>>2]=Md+1;bd(b,c[md+(Md<<2)>>2]|0)|0;bd(c[(c[Id>>2]|0)+24>>2]|0,10683)|0;Ob(c[Id>>2]|0)}else{if(Mb(a[c[(c[Ed>>2]|0)+((c[Gd>>2]|0)+1<<2)>>2]>>0]|0)|0){bd(c[(c[Id>>2]|0)+8>>2]|0,10678)|0;bd(c[(c[Id>>2]|0)+12>>2]|0,7057)|0;bd(c[(c[Id>>2]|0)+16>>2]|0,10678)|0;Md=c[(c[Id>>2]|0)+24>>2]|0;md=c[Ed>>2]|0;b=c[Gd>>2]|0;c[Gd>>2]=b+1;bd(Md,c[md+(b<<2)>>2]|0)|0;b=c[(c[Id>>2]|0)+20>>2]|0;md=c[Ed>>2]|0;Md=c[Gd>>2]|0;c[Gd>>2]=Md+1;bd(b,c[md+(Md<<2)>>2]|0)|0;Ob(c[Id>>2]|0);break}if(Mb(a[c[(c[Ed>>2]|0)+((c[Gd>>2]|0)+2<<2)>>2]>>0]|0)|0){if(c[Gd>>2]|0)Td(7102,kd)|0;bd(c[(c[Id>>2]|0)+8>>2]|0,10678)|0;bd(c[(c[Id>>2]|0)+12>>2]|0,7057)|0;Md=c[(c[Id>>2]|0)+16>>2]|0;md=c[Ed>>2]|0;b=c[Gd>>2]|0;c[Gd>>2]=b+1;bd(Md,c[md+(b<<2)>>2]|0)|0;b=c[(c[Id>>2]|0)+24>>2]|0;md=c[Ed>>2]|0;Md=c[Gd>>2]|0;c[Gd>>2]=Md+1;bd(b,c[md+(Md<<2)>>2]|0)|0;Md=c[(c[Id>>2]|0)+20>>2]|0;md=c[Ed>>2]|0;b=c[Gd>>2]|0;c[Gd>>2]=b+1;bd(Md,c[md+(b<<2)>>2]|0)|0;Ob(c[Id>>2]|0);break}if(!(a[c[(c[Ed>>2]|0)+(c[Gd>>2]<<2)>>2]>>0]|0)){Ld=67;break b}if(!(a[c[(c[Ed>>2]|0)+((c[Gd>>2]|0)+1<<2)>>2]>>0]|0)){Ld=67;break b}if(!(a[c[(c[Ed>>2]|0)+((c[Gd>>2]|0)+2<<2)>>2]>>0]|0)){Ld=67;break b}if(c[Gd>>2]|0)Td(7102,jd)|0;bd(c[(c[Id>>2]|0)+8>>2]|0,10678)|0;bd(c[(c[Id>>2]|0)+12>>2]|0,7057)|0;b=c[(c[Id>>2]|0)+16>>2]|0;md=c[Ed>>2]|0;Md=c[Gd>>2]|0;c[Gd>>2]=Md+1;bd(b,c[md+(Md<<2)>>2]|0)|0;Ob(c[Id>>2]|0)}while(0)}if((Ld|0)==67){Fa(10693);ga(1)}else if((Ld|0)==72){while(1){if((c[nd>>2]|0)>=10)break;c[qd>>2]=0;while(1){if((c[qd>>2]|0)>=100)break;a[(c[(c[Id>>2]|0)+(c[nd>>2]<<2)>>2]|0)+(c[qd>>2]|0)>>0]=0;c[qd>>2]=(c[qd>>2]|0)+1}c[nd>>2]=(c[nd>>2]|0)+1}bd(c[(c[Id>>2]|0)+8>>2]|0,c[(c[wd>>2]|0)+8>>2]|0)|0;bd(c[(c[Id>>2]|0)+12>>2]|0,7057)|0;bd(c[(c[Id>>2]|0)+16>>2]|0,10678)|0;Ob(c[Id>>2]|0);k=e;return}}}while(0);bd(zd,c[(c[wd>>2]|0)+16>>2]|0)|0;if(!(ic(c[(c[wd>>2]|0)+16>>2]|0,18400)|0))c[yd>>2]=1;Id=xa(c[(c[wd>>2]|0)+8>>2]|0,sd)|0;c[rd>>2]=c[rd>>2]|Id;Id=(xa(c[(c[wd>>2]|0)+16>>2]|0,td)|0)<<1;c[rd>>2]=c[rd>>2]|Id;if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=58){Id=(xa(c[(c[wd>>2]|0)+24>>2]|0,ud)|0)<<2;c[rd>>2]=c[rd>>2]|Id}c[nd>>2]=0;while(1){if((c[nd>>2]|0)>=50)break;if(!(a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0]|0)){Ld=86;break}if((a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0]|0)==125)break;c[nd>>2]=(c[nd>>2]|0)+1}if((Ld|0)==86)c[nd>>2]=50;if((c[nd>>2]|0)<50){bd(18400,4029)|0;c[pd>>2]=(a[(c[(c[wd>>2]|0)+8>>2]|0)+((c[nd>>2]|0)-1)>>0]|0)-48;if((c[pd>>2]|0)>9|(c[pd>>2]|0)<0){Id=c[721]|0;c[id>>2]=c[88385];Od(Id,10044,id)|0;ga(1)}do if((a[c[(c[wd>>2]|0)+16>>2]>>0]|0)==48){Td(3846,hd)|0;c[nd>>2]=0;while(1){if((c[nd>>2]|0)>=50)break;if((a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0]|0)==123)break;c[gd>>2]=a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0];Td(10101,gd)|0;c[nd>>2]=(c[nd>>2]|0)+1}Td(5026,fd)|0;c[ed>>2]=255^1<>2];Td(10110,ed)|0}else{if((a[c[(c[wd>>2]|0)+16>>2]>>0]|0)==49){Td(3846,dd)|0;c[nd>>2]=0;while(1){if((c[nd>>2]|0)>=50)break;if((a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0]|0)==123)break;c[cd>>2]=a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0];Td(10101,cd)|0;c[nd>>2]=(c[nd>>2]|0)+1}Td(5026,ad)|0;c[$c>>2]=1<>2];Td(10721,$c)|0;break}id=Rd(c[(c[wd>>2]|0)+16>>2]|0,10731)|0;c[xd>>2]=id;if(!id){id=c[721]|0;c[Nc>>2]=c[88385];Od(id,10794,Nc)|0;ga(1)}id=c[xd>>2]|0;if((a[c[xd>>2]>>0]|0)==33){c[_c>>2]=id+1;Td(7257,_c)|0}else{c[Yc>>2]=id;Td(7257,Yc)|0}id=c[(c[wd>>2]|0)+16>>2]|0;c[Xc>>2]=1<<(a[id+((Zc(c[xd>>2]|0)|0)+1)>>0]|0)-48;Td(10110,Xc)|0;Td(10733,Wc)|0;Td(3846,Vc)|0;c[nd>>2]=0;while(1){if((c[nd>>2]|0)>=50)break;if((a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0]|0)==123)break;c[Uc>>2]=a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0];Td(10101,Uc)|0;c[nd>>2]=(c[nd>>2]|0)+1}Td(10740,Tc)|0;if((a[c[xd>>2]>>0]|0)==33)Td(10748,Sc)|0;else Td(10765,Rc)|0;c[Qc>>2]=255^1<>2];Td(10110,Qc)|0;Td(10782,Pc)|0;c[Oc>>2]=1<>2];Td(10721,Oc)|0}while(0);Td(10852,Mc)|0;c[nd>>2]=0;while(1){if((c[nd>>2]|0)>=50)break;if((a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0]|0)==123)break;c[Lc>>2]=a[(c[(c[wd>>2]|0)+8>>2]|0)+(c[nd>>2]|0)>>0];Td(10101,Lc)|0;c[nd>>2]=(c[nd>>2]|0)+1}Td(5026,Kc)|0;_b(c[Dd>>2]|0);k=e;return}do if((a[c[(c[wd>>2]|0)+16>>2]>>0]|0)!=45){if(!(jc(c[(c[wd>>2]|0)+16>>2]|0,10893,4)|0)){bd(18400,4029)|0;if(c[88402]&8|0){Td(10899,vc)|0;Td(10917,uc)|0;Td(10930,tc)|0;Td(10947,sc)|0;Td(7443,rc)|0;Td(10967,qc)|0;Td(10984,pc)|0;Td(11002,oc)|0;Td(10930,nc)|0;Td(11020,mc)|0;Td(7443,kc)|0;break}else{Ba(11040);break}}if((jc(c[(c[wd>>2]|0)+8>>2]|0,11050,5)|0)==0?jc(c[(c[wd>>2]|0)+8>>2]|0,11057,6)|0:0){bd(18400,4029)|0;do if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==43){Td(11065,hc)|0;Td(7299,gc)|0;c[nd>>2]=5;while(1){if((c[nd>>2]|0)<0)break;if(a[(c[(c[wd>>2]|0)+24>>2]|0)+(c[nd>>2]|0)>>0]|0){Kc=Pb(a[(c[(c[wd>>2]|0)+24>>2]|0)+(c[nd>>2]|0)>>0]|0)|0;c[vd+(c[od>>2]<<2)>>2]=Kc}Kc=Pb(a[(c[(c[wd>>2]|0)+24>>2]|0)+(c[nd>>2]|0)>>0]|0)|0;c[vd+(c[od>>2]<<2)>>2]=Kc;if((c[vd+(c[od>>2]<<2)>>2]|0)<10?(c[vd+(c[od>>2]<<2)>>2]|0)>=0:0)c[od>>2]=(c[od>>2]|0)+1;c[nd>>2]=(c[nd>>2]|0)+-1}Td(11071,fc)|0;if((a[c[(c[wd>>2]|0)+24>>2]>>0]|0)>63){c[ec>>2]=c[(c[wd>>2]|0)+24>>2];Td(11085,ec)|0}else{Kc=c[vd>>2]|0;c[dc>>2]=c[vd+4>>2];c[dc+4>>2]=Kc;Td(11094,dc)|0}Td(11107,cc)|0;Td(11121,bc)|0;if((c[vd>>2]|0)>9)Td(11135,ac)|0;else{Kc=c[vd+8>>2]|0;c[$b>>2]=c[vd+12>>2];c[$b+4>>2]=Kc;Td(11094,$b)|0}Td(11144,Yb)|0;Td(11158,Xb)|0;if((c[vd>>2]|0)>9)Td(11135,Wb)|0;else{Kc=c[vd+16>>2]|0;c[Vb>>2]=c[vd+20>>2];c[Vb+4>>2]=Kc;Td(11094,Vb)|0}Td(11170,Ub)|0;Td(11182,Tb)|0}else{if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=45){c[nd>>2]=5;while(1){if((c[nd>>2]|0)<0)break;if(a[(c[(c[wd>>2]|0)+16>>2]|0)+(c[nd>>2]|0)>>0]|0){Kc=Pb(a[(c[(c[wd>>2]|0)+16>>2]|0)+(c[nd>>2]|0)>>0]|0)|0;c[vd+(c[od>>2]<<2)>>2]=Kc}Kc=Pb(a[(c[(c[wd>>2]|0)+16>>2]|0)+(c[nd>>2]|0)>>0]|0)|0;c[vd+(c[od>>2]<<2)>>2]=Kc;do if((c[vd+(c[od>>2]<<2)>>2]|0)<10){if((c[vd+(c[od>>2]<<2)>>2]|0)<0)break;c[od>>2]=(c[od>>2]|0)+1}while(0);c[nd>>2]=(c[nd>>2]|0)+-1}Kc=c[vd>>2]|0;c[yb>>2]=c[vd+4>>2];c[yb+4>>2]=Kc;Td(11210,yb)|0;Td(11107,xb)|0;Kc=c[vd+8>>2]|0;c[wb>>2]=c[vd+12>>2];c[wb+4>>2]=Kc;Td(11210,wb)|0;Td(11144,vb)|0;Kc=c[vd+16>>2]|0;c[ub>>2]=c[vd+20>>2];c[ub+4>>2]=Kc;Td(11210,ub)|0;Td(11170,tb)|0;break}Td(11065,Sb)|0;Td(10600,Rb)|0;c[nd>>2]=5;while(1){if((c[nd>>2]|0)<0)break;if(a[(c[(c[wd>>2]|0)+24>>2]|0)+(c[nd>>2]|0)>>0]|0){Kc=Pb(a[(c[(c[wd>>2]|0)+24>>2]|0)+(c[nd>>2]|0)>>0]|0)|0;c[vd+(c[od>>2]<<2)>>2]=Kc}Kc=Pb(a[(c[(c[wd>>2]|0)+24>>2]|0)+(c[nd>>2]|0)>>0]|0)|0;c[vd+(c[od>>2]<<2)>>2]=Kc;do if((c[vd+(c[od>>2]<<2)>>2]|0)<10){if((c[vd+(c[od>>2]<<2)>>2]|0)<0)break;c[od>>2]=(c[od>>2]|0)+1}while(0);c[nd>>2]=(c[nd>>2]|0)+-1}Td(11071,Qb)|0;if((c[vd>>2]|0)>9){c[Kb>>2]=c[(c[wd>>2]|0)+24>>2];Td(10865,Kb)|0}else{Kc=c[vd>>2]|0;c[Jb>>2]=c[vd+4>>2];c[Jb+4>>2]=Kc;Td(11188,Jb)|0}Td(11107,Ib)|0;Td(11121,Hb)|0;if((c[vd>>2]|0)>9)Td(11201,Gb)|0;else{Kc=c[vd+8>>2]|0;c[Fb>>2]=c[vd+12>>2];c[Fb+4>>2]=Kc;Td(11188,Fb)|0}Td(11144,Eb)|0;Td(11158,Db)|0;if((c[vd>>2]|0)>9)Td(11201,Cb)|0;else{Kc=c[vd+16>>2]|0;c[Bb>>2]=c[vd+20>>2];c[Bb+4>>2]=Kc;Td(11188,Bb)|0}Td(11170,Ab)|0;Td(11182,zb)|0}while(0);_b(c[Dd>>2]|0);k=e;return}do if((a[c[(c[wd>>2]|0)+24>>2]>>0]|0)==49){if((a[(c[(c[wd>>2]|0)+24>>2]|0)+1>>0]|0)<=57?(a[(c[(c[wd>>2]|0)+24>>2]|0)+1>>0]|0)>=48:0)break;if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=43?(a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=45:0)break;if((jc(c[(c[wd>>2]|0)+8>>2]|0,c[(c[wd>>2]|0)+16>>2]|0,50)|0)==0?jc(c[(c[wd>>2]|0)+8>>2]|0,11223,4)|0:0){if((a[(c[(c[wd>>2]|0)+24>>2]|0)+1>>0]|0?(a[(c[(c[wd>>2]|0)+24>>2]|0)+1>>0]|0)!=32:0)?(a[(c[(c[wd>>2]|0)+24>>2]|0)+1>>0]|0)!=10:0)break;bd(18400,4029)|0;do if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==4){Kc=c[wd>>2]|0;if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==43){c[sb>>2]=c[Kc+8>>2];Td(7257,sb)|0;Td(7299,rb)|0;Td(11229,qb)|0;c[pb>>2]=c[(c[wd>>2]|0)+8>>2];Td(7203,pb)|0;_b(c[Dd>>2]|0);k=e;return}if((a[c[Kc+20>>2]>>0]|0)!=45)break;c[ob>>2]=c[(c[wd>>2]|0)+8>>2];Td(7257,ob)|0;Td(10600,nb)|0;Td(11239,mb)|0;c[kb>>2]=c[(c[wd>>2]|0)+8>>2];Td(7203,kb)|0;_b(c[Dd>>2]|0);k=e;return}while(0);if(c[rd>>2]&1|0)ya(sd);if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==43)Td(11249,jb)|0;else Td(11255,ib)|0;Kc=c[wd>>2]|0;if(c[rd>>2]&1|0){c[fb>>2]=c[Kc+16>>2];Td(4015,fb)|0}else{c[gb>>2]=c[Kc+8>>2];Td(4011,gb)|0}_b(c[Dd>>2]|0);k=e;return}}while(0);if(!(c[yd>>2]|0)){if(c[rd>>2]&2|0)ya(td);if(!((c[Ad>>2]|0)!=0|(c[Bd>>2]|0)!=0?!((c[Ad>>2]|0)==0&(c[Bd>>2]|0)==8):0))Ld=218;if(((Ld|0)==218?(a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=40:0)?jc(c[(c[wd>>2]|0)+16>>2]|0,11261,4)|0:0){Td(3846,eb)|0;za(c[(c[wd>>2]|0)+16>>2]|0,c[rd>>2]&2)}bd(18400,zd)|0}}else{bd(18400,4029)|0;if((c[Ad>>2]|0)==0?(Qa(c[(c[wd>>2]|0)+20>>2]|0)|0)!=12:0)if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)>57){Td(3837,Jc)|0;Td(10858,Ic)|0;c[Hc>>2]=c[(c[wd>>2]|0)+20>>2];Td(10865,Hc)|0;break}else{c[Gc>>2]=256-(Ud(c[(c[wd>>2]|0)+20>>2]|0)|0);Td(8728,Gc)|0;break}if((c[Ad>>2]|0)!=4){if((c[Ad>>2]|0)!=8)break;Td(4023,Ac)|0;Kc=c[(c[wd>>2]|0)+16>>2]|0;h[zc>>3]=256.0-+Xd(c[(c[wd>>2]|0)+20>>2]|0);lc(Kc,10874,zc)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Td(10877,yc)|0;Pa(c[(c[wd>>2]|0)+8>>2]|0);c[xc>>2]=c[(c[wd>>2]|0)+16>>2];Td(10883,xc)|0;c[wc>>2]=c[(c[wd>>2]|0)+8>>2];Td(7203,wc)|0;_b(c[Dd>>2]|0);k=e;return}if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)>57){Td(3837,Fc)|0;Td(10858,Ec)|0;c[Dc>>2]=c[(c[wd>>2]|0)+20>>2];Td(10865,Dc)|0}else{c[Cc>>2]=~~((16.0-+Xd(c[(c[wd>>2]|0)+20>>2]|0))*16.0);Td(8728,Cc)|0}c[Bc>>2]=c[(c[wd>>2]|0)+8>>2];Td(7203,Bc)|0;_b(c[Dd>>2]|0);k=e;return}while(0);c:do if(a[c[(c[wd>>2]|0)+20>>2]>>0]|0?(a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=58:0){c[Cd>>2]=Qa(c[(c[wd>>2]|0)+24>>2]|0)|0;bd(18400,4029)|0;if(c[rd>>2]&4|0)ya(ud);if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==43){if(((c[Ad>>2]|0)==8?(c[Bd>>2]&8|0)==8:0)?(c[Cd>>2]&8|0)==8:0){Td(3846,db)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Td(11267,cb)|0;Td(7305,ab)|0;Pa(c[(c[wd>>2]|0)+24>>2]|0);Td(10852,$a)|0;Pa(c[(c[wd>>2]|0)+8>>2]|0);Td(3846,Wa)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[Va>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,Va)|0;Td(7305,Ua)|0;Ca(c[(c[wd>>2]|0)+24>>2]|0)|0;c[Ta>>2]=c[(c[wd>>2]|0)+24>>2];Td(4011,Ta)|0;break}if((c[Ad>>2]|0)==8?((c[Cd>>2]|0)==4?(c[Bd>>2]&8|0)==8:0):0){c[Sa>>2]=c[(c[wd>>2]|0)+24>>2];Td(11274,Sa)|0;Td(4023,Ra)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Td(3846,Oa)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[Na>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,Na)|0;Ja(11283);Td(10877,Ma)|0;Pa(c[(c[wd>>2]|0)+8>>2]|0);break}if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==8?(c[Cd>>2]&4|0)==4:0){Bc=c[(c[wd>>2]|0)+24>>2]|0;if((c[Cd>>2]|0)==4){c[La>>2]=Bc;Td(11274,La)|0}else{c[Ka>>2]=~~(+Xd(Bc)*16.0);Td(6489,Ka)|0}c[Ia>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,Ia)|0;Td(4023,Ha)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Ja(11293);break}if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==4&(c[Cd>>2]|0)==12){Td(7299,Ga)|0;c[Ea>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,Ea)|0;c[wa>>2]=~~(+Xd(c[(c[wd>>2]|0)+24>>2]|0)*16.0);Td(11303,wa)|0;break}if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==12&(c[Cd>>2]|0)==4){Td(7299,va)|0;c[ua>>2]=c[(c[wd>>2]|0)+24>>2];Td(7257,ua)|0;c[ta>>2]=~~(+Xd(c[(c[wd>>2]|0)+16>>2]|0)*16.0);Td(11303,ta)|0;break}if((c[Bd>>2]|0)==4){c[sa>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,sa)|0}if((c[Cd>>2]|0)==4&(c[Bd>>2]|0)==0){Td(3846,ra)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[qa>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,qa)|0}Nb(11313,c[(c[wd>>2]|0)+24>>2]|0,c[rd>>2]&4);break}if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==45){if(((c[Ad>>2]|0)==8?(c[Bd>>2]&8|0)==8:0)?(c[Cd>>2]&8|0)==8:0){Td(3846,pa)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Td(11323,oa)|0;Td(11330,na)|0;Pa(c[(c[wd>>2]|0)+24>>2]|0);Td(10852,ma)|0;Pa(c[(c[wd>>2]|0)+8>>2]|0);Td(3846,la)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[ka>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,ka)|0;Td(11330,ja)|0;Ca(c[(c[wd>>2]|0)+24>>2]|0)|0;c[ia>>2]=c[(c[wd>>2]|0)+24>>2];Td(4011,ia)|0;break}if((c[Ad>>2]|0)==8?((c[Cd>>2]|0)==4?(c[Bd>>2]&8|0)==8:0):0){c[ha>>2]=c[(c[wd>>2]|0)+24>>2];Td(11274,ha)|0;Td(4023,fa)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Td(3846,ea)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[da>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,da)|0;Ja(11336);Td(10877,ca)|0;Pa(c[(c[wd>>2]|0)+8>>2]|0);break}if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==8?(c[Cd>>2]&4|0)==4:0){Bc=c[(c[wd>>2]|0)+24>>2]|0;if((c[Cd>>2]|0)==4){c[ba>>2]=Bc;Td(11274,ba)|0}else{c[aa>>2]=~~(+Xd(Bc)*16.0);Td(6489,aa)|0}c[$>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,$)|0;Td(4023,_)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Ja(11348);break}if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==4&(c[Cd>>2]|0)==12){Td(10600,Z)|0;c[Y>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,Y)|0;c[X>>2]=~~(+Xd(c[(c[wd>>2]|0)+24>>2]|0)*16.0);Td(11360,X)|0;break}if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==12&(c[Cd>>2]|0)==4){Td(10600,W)|0;c[V>>2]=~~(+Xd(c[(c[wd>>2]|0)+16>>2]|0)*16.0);Td(8728,V)|0;c[U>>2]=c[(c[wd>>2]|0)+24>>2];Td(10865,U)|0;break}if((c[Bd>>2]|0)==4){c[T>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,T)|0}if((c[Cd>>2]|0)==4&(c[Bd>>2]|0)==0){c[S>>2]=c[(c[wd>>2]|0)+16>>2];Td(10883,S)|0}Nb(11370,c[(c[wd>>2]|0)+24>>2]|0,c[rd>>2]&4);break}if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==38){if((c[Bd>>2]|0)==4){c[R>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,R)|0}Nb(11380,c[(c[wd>>2]|0)+24>>2]|0,c[rd>>2]&4);break}if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==94){if((c[Bd>>2]|0)==4){c[Q>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,Q)|0}Nb(11385,c[(c[wd>>2]|0)+24>>2]|0,c[rd>>2]&4);break}if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==124){if((c[Bd>>2]|0)==4){c[P>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,P)|0}Nb(11390,c[(c[wd>>2]|0)+24>>2]|0,c[rd>>2]&4);break}if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==42){if((c[Bd>>2]|0)==4){c[O>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,O)|0}do if(Da(c[(c[wd>>2]|0)+24>>2]|0)|0){if(!(Xa(Ud(c[(c[wd>>2]|0)+24>>2]|0)|0)|0))break;Bc=c[wd>>2]|0;if((a[(c[(c[wd>>2]|0)+20>>2]|0)+1>>0]|0)==42){Za(Bc,16);break c}else{Za(Bc,8);break c}}while(0);Nb(11395,c[(c[wd>>2]|0)+24>>2]|0,c[rd>>2]&4);if((a[(c[(c[wd>>2]|0)+20>>2]|0)+1>>0]|0)==42){Ja(11400);break}else{Ja(11406);break}}if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=47){if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)==58){bd(18400,zd)|0;break}if((a[c[(c[wd>>2]|0)+20>>2]>>0]|0)!=40){Bc=c[721]|0;Cc=c[(c[wd>>2]|0)+20>>2]|0;c[M>>2]=c[88385];c[M+4>>2]=Cc;Od(Bc,11434,M)|0;ga(1)}bd(18400,4029)|0;Bc=(jc(c[(c[wd>>2]|0)+16>>2]|0,11427,5)|0)!=0;Cc=c[wd>>2]|0;if(Bc){bb(Cc);break}else{hb(Cc);break}}if((c[Bd>>2]|0)==4){c[N>>2]=c[(c[wd>>2]|0)+16>>2];Td(7257,N)|0}do if(Da(c[(c[wd>>2]|0)+24>>2]|0)|0){if(!(Ya(Ud(c[(c[wd>>2]|0)+24>>2]|0)|0)|0))break;Cc=c[wd>>2]|0;if((a[(c[(c[wd>>2]|0)+20>>2]|0)+1>>0]|0)==47){_a(Cc,16);break c}else{_a(Cc,8);break c}}while(0);Nb(11411,c[(c[wd>>2]|0)+24>>2]|0,c[rd>>2]&4);if((a[(c[(c[wd>>2]|0)+20>>2]|0)+1>>0]|0)==47){Ja(11416);break}else{Ja(11422);break}}else Ld=313;while(0);do if((Ld|0)==313){if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==0){Td(3846,L)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[K>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,K)|0;Td(11468,J)|0;Td(11468,I)|0;Td(11468,H)|0;Td(11468,G)|0;break}if((c[Ad>>2]|0)==0&(c[Bd>>2]|0)==4){Td(3846,F)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[E>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,E)|0;Td(11475,D)|0;Td(11475,C)|0;Td(11475,B)|0;Td(11475,A)|0;break}if((c[Ad>>2]|0)==4&(c[Bd>>2]|0)==8){Td(3846,z)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[y>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,y)|0;Td(11482,x)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Td(11489,w)|0;if(c[88386]|0)Td(11507,v)|0;Td(5026,u)|0;break}if((c[Ad>>2]|0)==8&(c[Bd>>2]|0)==4){Td(3846,t)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[s>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,s)|0;Td(11510,r)|0;if(c[88386]|0)Td(11507,q)|0;Td(5026,p)|0;Td(11529,o)|0;Pa(c[(c[wd>>2]|0)+8>>2]|0);break}if((c[Ad>>2]|0)==8?(c[Bd>>2]&8|0)==8:0){Td(4023,n)|0;Pa(c[(c[wd>>2]|0)+16>>2]|0);Td(10877,m)|0;Pa(c[(c[wd>>2]|0)+8>>2]|0);Td(3846,l)|0;Ca(c[(c[wd>>2]|0)+16>>2]|0)|0;c[j>>2]=c[(c[wd>>2]|0)+16>>2];Td(4011,j)|0;break}if((c[Ad>>2]|0)==4?(c[Bd>>2]&4|0)==4:0){N=c[(c[wd>>2]|0)+16>>2]|0;if((c[Bd>>2]|0)==4){c[i>>2]=N;Td(7257,i)|0;break}else{c[g>>2]=~~(+Xd(N)*16.0);Td(8728,g)|0;break}}}while(0);if(c[rd>>2]&1|0)ya(sd);if(jc(c[(c[wd>>2]|0)+8>>2]|0,11223,4)|0){Td(10852,f)|0;za(c[(c[wd>>2]|0)+8>>2]|0,c[rd>>2]&1)}_b(c[Dd>>2]|0);k=e;return}function Pb(b){b=b|0;var c=0,e=0;c=k;k=k+16|0;e=c;a[e>>0]=b;k=c;return (d[e>>0]|0)-48|0}function Qb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;d=k;k=k+112|0;e=d+88|0;f=d+72|0;g=d+24|0;h=d+8|0;i=d+96|0;j=d+92|0;c[i>>2]=b;c[j>>2]=0;b=(jc(c[(c[i>>2]|0)+12>>2]|0,11536,4)|0)!=0;l=c[i>>2]|0;if(b){c[e>>2]=c[l+8>>2];Td(11541,e)|0;k=d;return}else{c[j>>2]=(a[(c[l+12>>2]|0)+4>>0]|0)-48;Td(3861,d)|0;c[h>>2]=c[(c[i>>2]|0)+8>>2];Td(11551,h)|0;Td(3897,d+16|0)|0;c[g>>2]=c[(c[i>>2]|0)+8>>2];Td(11567,g)|0;Td(3897,d+32|0)|0;Td(3957,d+40|0)|0;Td(3897,d+48|0)|0;Td(3969,d+56|0)|0;Td(3897,d+64|0)|0;c[f>>2]=c[j>>2];Td(3975,f)|0;Td(3985,d+80|0)|0;k=d;return}}function Rb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;d=k;k=k+144|0;e=d+128|0;f=d+120|0;g=d+104|0;h=d+56|0;i=d+40|0;j=d+24|0;l=d+8|0;m=d+136|0;n=d+132|0;c[m>>2]=b;c[n>>2]=0;wa();b=(jc(c[(c[m>>2]|0)+12>>2]|0,11536,4)|0)!=0;o=c[m>>2]|0;if(b){c[e>>2]=c[o+8>>2];Td(11583,e)|0;k=d;return}else{c[n>>2]=(a[(c[o+12>>2]|0)+4>>0]|0)-48;Td(3861,d)|0;o=(c[88389]|0)+1|0;c[88389]=o;c[l>>2]=o;Td(3873,l)|0;Td(3897,d+16|0)|0;c[j>>2]=c[88389];Td(3903,j)|0;Td(3897,d+32|0)|0;c[i>>2]=c[(c[m>>2]|0)+8>>2];Td(11551,i)|0;Td(3897,d+48|0)|0;c[h>>2]=c[(c[m>>2]|0)+8>>2];Td(11567,h)|0;Td(3897,d+64|0)|0;Td(3957,d+72|0)|0;Td(3897,d+80|0)|0;Td(3969,d+88|0)|0;Td(3897,d+96|0)|0;c[g>>2]=c[n>>2];Td(3975,g)|0;Td(3985,d+112|0)|0;c[f>>2]=c[88389];Td(3998,f)|0;k=d;return}}function Sb(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0;b=k;k=k+128|0;e=b+104|0;f=b+116|0;g=b+112|0;h=b+108|0;i=b;c[f>>2]=a;a=i;j=16;l=a+104|0;do{c[a>>2]=c[j>>2];a=a+4|0;j=j+4|0}while((a|0)<(l|0));c[g>>2]=Zb(20)|0;g=(ed(c[(c[f>>2]|0)+8>>2]|0,11593,2)|0)!=0;j=c[f>>2]|0;if(!g){if(!(ed(c[j+12>>2]|0,11597,4)|0)){g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,11603)|0;g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,11622)|0;k=b;return}if(ed(c[(c[f>>2]|0)+12>>2]|0,11639,3)|0){Fa(11680);k=b;return}else{g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,11644)|0;g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,11663)|0;k=b;return}}g=(jc(c[j+8>>2]|0,11705,14)|0)!=0;j=c[f>>2]|0;if(!g)if(jc(c[j+12>>2]|0,12956,2)|0){c[88405]=0;k=b;return}else{c[88405]=1;k=b;return}g=(jc(c[j+8>>2]|0,11721,7)|0)!=0;j=c[f>>2]|0;if(!g){Ra(c[j+12>>2]|0);k=b;return}g=(jc(c[j+8>>2]|0,11730,5)|0)!=0;j=c[f>>2]|0;if(!g){if(!(jc(c[j+12>>2]|0,11744,5)|0))c[88402]=1;if(!(jc(c[(c[f>>2]|0)+12>>2]|0,11751,4)|0))c[88402]=2;if(!(jc(c[(c[f>>2]|0)+12>>2]|0,11757,4)|0))c[88402]=c[88402]|4;if(!(jc(c[(c[f>>2]|0)+12>>2]|0,11771,4)|0))c[88402]=c[88402]|8;if(jc(c[(c[f>>2]|0)+12>>2]|0,11783,4)|0){k=b;return}c[88402]=0;k=b;return}if(!(jc(c[j+8>>2]|0,11789,6)|0)){Fa(11797);k=b;return}if(jc(c[(c[f>>2]|0)+8>>2]|0,11915,10)|0){j=(jc(c[(c[f>>2]|0)+8>>2]|0,12330,6)|0)!=0;g=c[f>>2]|0;if(!j){if(!(jc(c[g+12>>2]|0,12338,11)|0)){c[88407]=1;j=c[88398]|0;c[88398]=j+1;bd(320384+(j*100|0)|0,12351)|0;Sa(12367);c[88395]=1;k=b;return}if(jc(c[(c[f>>2]|0)+12>>2]|0,12383,11)|0){Fa(12407);k=b;return}else{c[88407]=1;j=c[88398]|0;c[88398]=j+1;bd(320384+(j*100|0)|0,12351)|0;c[88395]=1;k=b;return}}j=(jc(c[g+8>>2]|0,12455,5)|0)!=0;g=c[f>>2]|0;if(j)if(jc(c[g+8>>2]|0,12548,6)|0){Fa(12568);k=b;return}else{j=c[88398]|0;c[88398]=j+1;c[e>>2]=~~(+Xd(c[(c[f>>2]|0)+12>>2]|0)*100.0);lc(320384+(j*100|0)|0,12556,e)|0;k=b;return}if(!(jc(c[g+12>>2]|0,12462,10)|0)){g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,12474)|0;k=b;return}if(jc(c[(c[f>>2]|0)+12>>2]|0,12489,6)|0){Fa(12513);k=b;return}else{g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,12497)|0;k=b;return}}c[h>>2]=3;c[88391]=0;a:while(1){if((d[c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]>>0]|0|0)<=64)break;if((d[c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]>>0]|0|0)>=123)break;do if(jc(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0,11931,10)|0){if(!(jc(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0,11958,13)|0)){g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,11973)|0;c[88391]=c[88391]|2;break}if(!(jc(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0,11991,12)|0)){g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,12005)|0;g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,11973)|0;c[88391]=c[88391]|6;break}if(!(jc(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0,12022,13)|0)){g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,12038)|0;c[88391]=c[88391]|8;break}if(!(ed(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0,12057,8)|0)){c[88391]=c[88391]|16;break}if(!(ed(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0,12067,9)|0)){c[88391]=c[88391]|32;break}if(ed(c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]|0,12078,10)|0){m=44;break a}g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,12096)|0;c[88391]=c[88391]|64}else{g=c[88398]|0;c[88398]=g+1;bd(320384+(g*100|0)|0,11943)|0;c[88391]=c[88391]|1}while(0);c[h>>2]=(c[h>>2]|0)+1}if((m|0)==44){Fa(12117);ga(1)}do if((c[88391]&48|0)!=32){if((c[88391]&48|0)==16){f=c[88398]|0;c[88398]=f+1;bd(320384+(f*100|0)|0,12179)|0;break}if((c[88391]&48|0)==48){f=c[88398]|0;c[88398]=f+1;bd(320384+(f*100|0)|0,12192)|0}}else{f=c[88398]|0;c[88398]=f+1;bd(320384+(f*100|0)|0,12165)|0}while(0);if((c[88391]|0)==1){Fa(12213);ga(1)}c[h>>2]=0;while(1){if((c[i+(c[h>>2]<<2)>>2]|0)==255){m=56;break}f=c[88391]|0;g=c[h>>2]|0;c[h>>2]=g+1;if((f|0)==(c[i+(g<<2)>>2]|0)){m=74;break}}if((m|0)==56){Fa(12278);ga(1)}else if((m|0)==74){k=b;return}}function Tb(a){a=a|0;var b=0,d=0;b=k;k=k+16|0;d=b;c[d>>2]=a;if(jc(c[(c[d>>2]|0)+8>>2]|0,11705,14)|0){k=b;return}if(jc(c[(c[d>>2]|0)+12>>2]|0,12956,2)|0){c[88405]=0;k=b;return}else{c[88405]=1;k=b;return}}function Ub(){var a=0;a=k;k=k+16|0;Td(12592,a)|0;Td(12592,a+8|0)|0;k=a;return}function Vb(){wa();Ba(12598);return}function Wb(a){a=a|0;var b=0;b=k;k=k+16|0;c[b>>2]=a;k=b;return}function Xb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=k;k=k+32|0;e=d+8|0;f=d;g=d+20|0;h=d+16|0;i=d+12|0;c[g>>2]=a;c[h>>2]=b;b=td(c[h>>2]|0,6217)|0;c[g>>2]=b;if(!b){b=c[721]|0;c[f>>2]=c[h>>2];Od(b,12609,f)|0;ga(1)}bd(320384+((c[88398]|0)*100|0)|0,12637)|0;c[i>>2]=c[88398];while(1){j=c[g>>2]|0;if((c[i>>2]|0)<0)break;c[e>>2]=320384+((c[i>>2]|0)*100|0);Od(j,4011,e)|0;c[i>>2]=(c[i>>2]|0)+-1}zd(j)|0;k=d;return}function Yb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;d=k;k=k+240|0;e=d+176|0;f=d+168|0;g=d+160|0;h=d+152|0;i=d+144|0;j=d+136|0;l=d+128|0;m=d+120|0;n=d+112|0;o=d+104|0;p=d+228|0;q=d;r=d+224|0;s=d+220|0;t=d+216|0;u=d+212|0;v=d+208|0;w=d+204|0;x=d+200|0;y=d+196|0;z=d+192|0;A=d+188|0;B=d+184|0;C=d+180|0;c[p>>2]=b;c[v>>2]=0;c[w>>2]=0;c[C>>2]=0;c[r>>2]=Zb(240)|0;c[z>>2]=Zb(240)|0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=60)break;b=$b(60,1)|0;c[(c[z>>2]|0)+(c[s>>2]<<2)>>2]=b;c[s>>2]=(c[s>>2]|0)+1}c[y>>2]=Zb(240)|0;c[s>>2]=0;while(1){if((c[s>>2]|0)>=60)break;b=$b(60,1)|0;c[(c[y>>2]|0)+(c[s>>2]<<2)>>2]=b;c[s>>2]=(c[s>>2]|0)+1}c[B>>2]=0;c[u>>2]=0;while(1){if((c[u>>2]|0)>40)break;if(!(jc(c[(c[p>>2]|0)+((c[u>>2]|0)+1<<2)>>2]|0,12723,3)|0))break;do if(!(jc(c[(c[p>>2]|0)+((c[u>>2]|0)+1<<2)>>2]|0,12728,2)|0)){c[s>>2]=(c[u>>2]|0)+2;while(1){if((c[s>>2]|0)>=50)break;if(!(jc(c[(c[p>>2]|0)+(c[s>>2]<<2)>>2]|0,12728,2)|0))break;if(!(jc(c[(c[p>>2]|0)+(c[s>>2]<<2)>>2]|0,12732,4)|0))c[C>>2]=c[s>>2];c[s>>2]=(c[s>>2]|0)+1}b=(jc(c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0,12738,2)|0)!=0;D=c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0;if(b){if(!(jc(D,12743,2)|0)){bd(c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+2<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+2<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0,12747)|0}}else{bd(D,c[(c[p>>2]|0)+((c[u>>2]|0)+2<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+2<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0,12741)|0}D=(jc(c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0,12750,2)|0)!=0;b=c[p>>2]|0;E=c[u>>2]|0;if(!D){lb(b,E+3|0);D=c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0;F=c[88410]|0;c[88410]=F+1;c[o>>2]=F;lc(D,12754,o)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0,12761)|0;break}D=(jc(c[b+(E+5<<2)>>2]|0,12750,2)|0)!=0;E=c[p>>2]|0;b=c[u>>2]|0;if(!D){lb(E,b+5|0);D=c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0;F=c[88410]|0;c[88410]=F+1;c[n>>2]=F;lc(D,12754,n)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0,12761)|0;break}D=(jc(c[E+(b+3<<2)>>2]|0,12764,2)|0)!=0;b=c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0;if(!D){D=(jc(b,12738,2)|0)!=0;E=c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0;if(D){if(!(jc(E,12743,2)|0)){bd(c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0,12747)|0}}else{bd(E,c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+4<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0,12741)|0}c[s>>2]=2;while(1){if((c[s>>2]|0)>=(48-(c[u>>2]|0)|0))break;bd(c[(c[z>>2]|0)+(c[s>>2]<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+(c[s>>2]|0)+2<<2)>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+1}E=(jc(c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0,12768,4)|0)!=0;D=c[p>>2]|0;F=c[u>>2]|0;if(E){if(!(jc(c[D+(F+7<<2)>>2]|0,12768,4)|0))mb(c[p>>2]|0,(c[u>>2]|0)+3|0,(c[u>>2]|0)+4|0)}else mb(D,F+3|0,(c[u>>2]|0)+2|0);bd(c[(c[p>>2]|0)+((c[u>>2]|0)+3<<2)>>2]|0,12774)|0;F=c[c[z>>2]>>2]|0;D=c[88410]|0;c[88410]=D+1;c[m>>2]=D;lc(F,12779,m)|0;bd(c[(c[z>>2]|0)+4>>2]|0,12761)|0;c[B>>2]=1;break}if(!(jc(b,12764,2)|0)){F=(jc(c[(c[p>>2]|0)+((c[u>>2]|0)+7<<2)>>2]|0,12738,2)|0)!=0;D=c[(c[p>>2]|0)+((c[u>>2]|0)+7<<2)>>2]|0;if(F){if(!(jc(D,12743,2)|0)){bd(c[(c[p>>2]|0)+((c[u>>2]|0)+7<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+8<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+8<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+7<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+7<<2)>>2]|0,12747)|0}}else{bd(D,c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+6<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+8<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+8<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+7<<2)>>2]|0)|0;bd(c[(c[p>>2]|0)+((c[u>>2]|0)+7<<2)>>2]|0,12741)|0}c[s>>2]=2;while(1){if((c[s>>2]|0)>=(46-(c[u>>2]|0)|0))break;bd(c[(c[z>>2]|0)+(c[s>>2]<<2)>>2]|0,c[(c[p>>2]|0)+((c[u>>2]|0)+(c[s>>2]|0)+4<<2)>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+1}b=(jc(c[(c[p>>2]|0)+((c[u>>2]|0)+7<<2)>>2]|0,12768,4)|0)!=0;D=c[p>>2]|0;F=c[u>>2]|0;if(b){if(!(jc(c[D+(F+9<<2)>>2]|0,12768,4)|0))mb(c[p>>2]|0,(c[u>>2]|0)+5|0,(c[u>>2]|0)+4|0)}else mb(D,F+5|0,(c[u>>2]|0)+2|0);bd(c[(c[p>>2]|0)+((c[u>>2]|0)+5<<2)>>2]|0,12774)|0;F=c[c[z>>2]>>2]|0;D=c[88410]|0;c[88410]=D+1;c[l>>2]=D;lc(F,12779,l)|0;bd(c[(c[z>>2]|0)+4>>2]|0,12761)|0;c[B>>2]=1}}while(0);if(c[B>>2]|0)break;c[u>>2]=(c[u>>2]|0)+1}a:do if(c[C>>2]|0){if(c[B>>2]|0)c[x>>2]=c[z>>2];else c[x>>2]=c[p>>2];c[s>>2]=1;while(1){if((c[s>>2]|0)>=50)break;l=(jc(c[(c[x>>2]|0)+(c[s>>2]<<2)>>2]|0,12732,4)|0)!=0;G=c[s>>2]|0;if(!l){H=60;break}c[s>>2]=G+1}if((H|0)==60)c[C>>2]=G;c[s>>2]=c[C>>2];while(1){if((c[s>>2]|0)>=50)break;bd(c[(c[y>>2]|0)+((c[s>>2]|0)-(c[C>>2]|0)<<2)>>2]|0,c[(c[x>>2]|0)+(c[s>>2]<<2)>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+1}if(gb(c[x>>2]|0)|0){l=c[x>>2]|0;m=c[C>>2]|0;c[C>>2]=m+1;bd(c[l+(m<<2)>>2]|0,12784)|0;m=c[x>>2]|0;l=c[C>>2]|0;c[C>>2]=l+1;bd(c[m+(l<<2)>>2]|0,12786)|0;l=c[x>>2]|0;m=c[C>>2]|0;c[C>>2]=m+1;n=c[l+(m<<2)>>2]|0;c[j>>2]=c[88411];lc(n,12791,j)|0}c[s>>2]=c[C>>2];while(1){if((c[s>>2]|0)>=50)break;a[c[(c[x>>2]|0)+(c[s>>2]<<2)>>2]>>0]=0;c[s>>2]=(c[s>>2]|0)+1}if(!(gb(c[y>>2]|0)|0)){bd(c[(c[y>>2]|0)+8>>2]|0,c[(c[y>>2]|0)+4>>2]|0)|0;bd(c[(c[y>>2]|0)+4>>2]|0,12786)|0}if(c[B>>2]|0){c[s>>2]=1;while(1){if((c[s>>2]|0)>=50)break;if(!(jc(c[(c[p>>2]|0)+(c[s>>2]<<2)>>2]|0,12732,4)|0))break;c[s>>2]=(c[s>>2]|0)+1}c[u>>2]=c[s>>2];while(1){if((c[u>>2]|0)>=50)break a;a[c[(c[p>>2]|0)+(c[u>>2]<<2)>>2]>>0]=0;c[u>>2]=(c[u>>2]|0)+1}}}while(0);if(c[B>>2]|0){c[A>>2]=c[z>>2];c[z>>2]=c[p>>2];c[p>>2]=c[A>>2];b:do if(eb(c[z>>2]|0)|0){c[s>>2]=3;do{B=c[z>>2]|0;x=c[s>>2]|0;c[s>>2]=x+1}while((jc(c[B+(x<<2)>>2]|0,12768,4)|0)!=0);if((c[s>>2]|0)>40){c[s>>2]=40;x=c[721]|0;c[i>>2]=ta()|0;Od(x,12802,i)|0}x=c[z>>2]|0;B=c[s>>2]|0;c[s>>2]=B+1;bd(c[x+(B<<2)>>2]|0,12786)|0;B=c[z>>2]|0;x=c[s>>2]|0;c[s>>2]=x+1;j=c[B+(x<<2)>>2]|0;c[h>>2]=(Kb()|0)+1;lc(j,12867,h)|0;while(1){if((c[s>>2]|0)>=50)break b;a[c[(c[z>>2]|0)+(c[s>>2]<<2)>>2]>>0]=0;c[s>>2]=(c[s>>2]|0)+1}}while(0);Yb(c[z>>2]|0)}if(c[C>>2]|0){c[A>>2]=c[y>>2];c[y>>2]=c[p>>2];c[p>>2]=c[A>>2];Yb(c[y>>2]|0)}c[s>>2]=0;while(1){if((c[s>>2]|0)>=50)break;c[(c[r>>2]|0)+(c[s>>2]<<2)>>2]=c[(c[p>>2]|0)+(c[s>>2]<<2)>>2];if((a[c[(c[r>>2]|0)+(c[s>>2]<<2)>>2]>>0]|0)==58)c[v>>2]=(c[v>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+1}if(!(jc(c[c[r>>2]>>2]|0,12768,4)|0)){y=c[c[r>>2]>>2]|0;A=c[88412]|0;c[88412]=A+1;c[g>>2]=A;lc(y,12878,g)|0}wa();c:while(1){c[s>>2]=0;if(!(a[c[(c[r>>2]|0)+4>>2]>>0]|0)){H=196;break}d:do if(jc(c[c[r>>2]>>2]|0,12885,3)|0){g=(jc(c[(c[r>>2]|0)+4>>2]|0,12890,12)|0)!=0;y=c[r>>2]|0;if(!g){Sa(c[y+8>>2]|0);break}g=(jc(c[y+4>>2]|0,12904,7)|0)!=0;y=c[r>>2]|0;if(!g){Ta(c[y+8>>2]|0);break}g=(jc(c[y+4>>2]|0,12913,6)|0)!=0;y=c[r>>2]|0;if(!g){Ua(c[y+8>>2]|0);break}g=(jc(c[y+4>>2]|0,12921,8)|0)!=0;y=c[r>>2]|0;if(!g){ab(y);break}if((a[c[y+4>>2]>>0]|0)==32){H=196;break c}y=(jc(c[(c[r>>2]|0)+4>>2]|0,12728,2)|0)!=0;I=c[r>>2]|0;if(!y){H=114;break c}y=(jc(c[I+4>>2]|0,12931,4)|0)!=0;g=c[r>>2]|0;if(!y){Qb(g);break}y=(jc(c[g+4>>2]|0,12937,4)|0)!=0;g=c[r>>2]|0;if(!y){La(Ud(c[g+8>>2]|0)|0);break}y=(jc(c[g+4>>2]|0,12943,5)|0)!=0;g=c[r>>2]|0;if(!y){ib(g);break}y=(jc(c[g+4>>2]|0,12950,4)|0)!=0;g=c[r>>2]|0;if(!y){kb(g);break}do if(!(jc(c[g+4>>2]|0,12956,2)|0)){if(jc(c[(c[r>>2]|0)+12>>2]|0,12931,4)|0)break;nb(c[r>>2]|0);break d}while(0);g=(jc(c[(c[r>>2]|0)+4>>2]|0,12960,5)|0)!=0;y=c[r>>2]|0;if(!g){vb(y);break}g=(jc(c[y+4>>2]|0,12967,3)|0)!=0;y=c[r>>2]|0;if(!g){ub(y);break}g=(jc(c[y+4>>2]|0,12972,3)|0)!=0;y=c[r>>2]|0;if(!g){ob(y);break}g=(jc(c[y+4>>2]|0,12977,4)|0)!=0;y=c[r>>2]|0;if(!g){pb(y);break}g=(jc(c[y+4>>2]|0,12983,5)|0)!=0;y=c[r>>2]|0;if(!g){Rb(y);break}g=(jc(c[y+4>>2]|0,12990,7)|0)!=0;y=c[r>>2]|0;if(!g){yb(y);break}g=(jc(c[y+4>>2]|0,12999,7)|0)!=0;y=c[r>>2]|0;if(!g){zb(y);break}g=(jc(c[y+4>>2]|0,13008,7)|0)!=0;y=c[r>>2]|0;if(!g){va(y);break}g=(jc(c[y+4>>2]|0,13017,7)|0)!=0;y=c[r>>2]|0;if(!g){Ab(y);break}g=(jc(c[y+4>>2]|0,13026,8)|0)!=0;y=c[r>>2]|0;if(!g){Bb(y);break}if(!(jc(c[y+4>>2]|0,13036,10)|0)){Vb();break}if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13048,3)|0)){Cb();break}if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13053,3)|0)){Ub();break}y=(jc(c[(c[r>>2]|0)+4>>2]|0,12723,3)|0)!=0;J=c[r>>2]|0;if(!y){H=153;break c}y=(jc(c[J+4>>2]|0,13058,3)|0)!=0;g=c[r>>2]|0;if(!y){Sb(g);break}y=(jc(c[g+4>>2]|0,13063,6)|0)!=0;g=c[r>>2]|0;if(!y){wb(g);break}if(!(jc(c[g+4>>2]|0,13071,6)|0)){sa();break}if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13079,6)|0)){ua();break}do if(ed(c[(c[r>>2]|0)+4>>2]|0,13087,9)|0){if(!(ed(c[(c[r>>2]|0)+4>>2]|0,13098,9)|0))break;g=(jc(c[(c[r>>2]|0)+4>>2]|0,13110,10)|0)!=0;y=c[r>>2]|0;if(!g){Ga(y);break d}g=(jc(c[y+4>>2]|0,13122,6)|0)!=0;y=c[r>>2]|0;if(!g){Eb(y);break d}do if(jc(c[y+4>>2]|0,13130,8)|0){if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13140,8)|0))break;if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13150,8)|0))break;if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13160,8)|0))break;if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13170,8)|0))break;if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13180,8)|0))break;if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13190,13)|0))break;if(!(jc(c[(c[r>>2]|0)+4>>2]|0,13205,13)|0))break;g=(jc(c[(c[r>>2]|0)+8>>2]|0,13220,1)|0)!=0;A=c[r>>2]|0;if(!g){Ob(A);break d}if(jc(c[A+4>>2]|0,13223,3)|0){H=182;break c}Ob(c[r>>2]|0);break d}while(0);Db(c[r>>2]|0);break d}while(0);Ea(c[r>>2]|0)}else $a();while(0);if(!(c[v>>2]|0))break;if((c[w>>2]|0)==(c[v>>2]|0))break;c[w>>2]=(c[w>>2]|0)+1;c[s>>2]=0;c[u>>2]=0;while(1){if((c[s>>2]|0)==(c[w>>2]|0))break;y=c[p>>2]|0;A=c[u>>2]|0;c[u>>2]=A+1;if((a[c[y+(A<<2)>>2]>>0]|0)==58)c[s>>2]=(c[s>>2]|0)+1}c[t>>2]=c[u>>2];while(1){if((c[t>>2]|0)>=50)break;c[(c[r>>2]|0)+((c[t>>2]|0)-(c[u>>2]|0)+1<<2)>>2]=c[(c[p>>2]|0)+(c[t>>2]<<2)>>2];c[t>>2]=(c[t>>2]|0)+1}}if((H|0)==114)Fb(I);else if((H|0)==153){Tb(J);k=d;return}else if((H|0)==182){c[f>>2]=c[(c[r>>2]|0)+4>>2];lc(q,13228,f)|0;Fa(q);ga(1)}else if((H|0)==196){k=d;return}if(!(c[C>>2]|0)){k=d;return}C=c[88411]|0;c[88411]=C+1;c[e>>2]=C;Td(13256,e)|0;k=d;return}function Zb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;b=k;k=k+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[88413]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=353692+(i<<1<<2)|0;l=j+8|0;m=c[l>>2]|0;n=m+8|0;o=c[n>>2]|0;if((o|0)==(j|0))c[88413]=g&~(1<>2]=j;c[l>>2]=o}o=i<<3;c[m+4>>2]=o|3;i=m+o+4|0;c[i>>2]=c[i>>2]|1;p=n;k=b;return p|0}n=c[88415]|0;if(e>>>0>n>>>0){if(h|0){i=2<>>12&16;f=i>>>o;i=f>>>5&8;h=f>>>i;f=h>>>2&4;m=h>>>f;h=m>>>1&2;l=m>>>h;m=l>>>1&1;j=(i|o|f|h|m)+(l>>>m)|0;m=353692+(j<<1<<2)|0;l=m+8|0;h=c[l>>2]|0;f=h+8|0;o=c[f>>2]|0;if((o|0)==(m|0)){i=g&~(1<>2]=m;c[l>>2]=o;q=g}o=j<<3;j=o-e|0;c[h+4>>2]=e|3;l=h+e|0;c[l+4>>2]=j|1;c[h+o>>2]=j;if(n|0){o=c[88418]|0;h=n>>>3;m=353692+(h<<1<<2)|0;i=1<>2]|0;s=i}c[s>>2]=o;c[r+12>>2]=o;c[o+8>>2]=r;c[o+12>>2]=m}c[88415]=j;c[88418]=l;p=f;k=b;return p|0}f=c[88414]|0;if(f){l=(f&0-f)+-1|0;j=l>>>12&16;m=l>>>j;l=m>>>5&8;o=m>>>l;m=o>>>2&4;i=o>>>m;o=i>>>1&2;h=i>>>o;i=h>>>1&1;t=c[353956+((l|j|m|o|i)+(h>>>i)<<2)>>2]|0;i=t;h=t;o=(c[t+4>>2]&-8)-e|0;while(1){t=c[i+16>>2]|0;if(!t){m=c[i+20>>2]|0;if(!m)break;else u=m}else u=t;t=(c[u+4>>2]&-8)-e|0;m=t>>>0>>0;i=u;h=m?u:h;o=m?t:o}i=h+e|0;if(i>>>0>h>>>0){t=c[h+24>>2]|0;m=c[h+12>>2]|0;do if((m|0)==(h|0)){j=h+20|0;l=c[j>>2]|0;if(!l){v=h+16|0;w=c[v>>2]|0;if(!w){x=0;break}else{y=w;z=v}}else{y=l;z=j}j=y;l=z;while(1){v=j+20|0;w=c[v>>2]|0;if(!w){A=j+16|0;B=c[A>>2]|0;if(!B)break;else{C=B;D=A}}else{C=w;D=v}j=C;l=D}c[l>>2]=0;x=j}else{v=c[h+8>>2]|0;c[v+12>>2]=m;c[m+8>>2]=v;x=m}while(0);do if(t|0){m=c[h+28>>2]|0;v=353956+(m<<2)|0;if((h|0)==(c[v>>2]|0)){c[v>>2]=x;if(!x){c[88414]=f&~(1<>2]|0)==(h|0)?m:t+20|0)>>2]=x;if(!x)break}c[x+24>>2]=t;m=c[h+16>>2]|0;if(m|0){c[x+16>>2]=m;c[m+24>>2]=x}m=c[h+20>>2]|0;if(m|0){c[x+20>>2]=m;c[m+24>>2]=x}}while(0);if(o>>>0<16){t=o+e|0;c[h+4>>2]=t|3;f=h+t+4|0;c[f>>2]=c[f>>2]|1}else{c[h+4>>2]=e|3;c[i+4>>2]=o|1;c[i+o>>2]=o;if(n|0){f=c[88418]|0;t=n>>>3;m=353692+(t<<1<<2)|0;v=1<>2]|0;F=v}c[F>>2]=f;c[E+12>>2]=f;c[f+8>>2]=E;c[f+12>>2]=m}c[88415]=o;c[88418]=i}p=h+8|0;k=b;return p|0}else G=e}else G=e}else G=e}else if(a>>>0<=4294967231){m=a+11|0;f=m&-8;v=c[88414]|0;if(v){t=0-f|0;w=m>>>8;if(w)if(f>>>0>16777215)H=31;else{m=(w+1048320|0)>>>16&8;A=w<>>16&4;B=A<>>16&2;I=14-(w|m|A)+(B<>>15)|0;H=f>>>(I+7|0)&1|I<<1}else H=0;I=c[353956+(H<<2)>>2]|0;a:do if(!I){J=0;K=0;L=t;M=61}else{A=0;B=t;m=I;w=f<<((H|0)==31?0:25-(H>>>1)|0);N=0;while(1){O=(c[m+4>>2]&-8)-f|0;if(O>>>0>>0)if(!O){P=m;Q=0;R=m;M=65;break a}else{S=m;T=O}else{S=A;T=B}O=c[m+20>>2]|0;m=c[m+16+(w>>>31<<2)>>2]|0;U=(O|0)==0|(O|0)==(m|0)?N:O;if(!m){J=U;K=S;L=T;M=61;break}else{A=S;B=T;w=w<<1;N=U}}}while(0);if((M|0)==61){if((J|0)==0&(K|0)==0){I=2<>>12&16;e=I>>>t;I=e>>>5&8;h=e>>>I;e=h>>>2&4;i=h>>>e;h=i>>>1&2;o=i>>>h;i=o>>>1&1;V=0;W=c[353956+((I|t|e|h|i)+(o>>>i)<<2)>>2]|0}else{V=K;W=J}if(!W){X=V;Y=L}else{P=V;Q=L;R=W;M=65}}if((M|0)==65){i=P;o=Q;h=R;while(1){e=(c[h+4>>2]&-8)-f|0;t=e>>>0>>0;I=t?e:o;e=t?h:i;t=c[h+16>>2]|0;if(!t)Z=c[h+20>>2]|0;else Z=t;if(!Z){X=e;Y=I;break}else{i=e;o=I;h=Z}}}if(((X|0)!=0?Y>>>0<((c[88415]|0)-f|0)>>>0:0)?(h=X+f|0,h>>>0>X>>>0):0){o=c[X+24>>2]|0;i=c[X+12>>2]|0;do if((i|0)==(X|0)){I=X+20|0;e=c[I>>2]|0;if(!e){t=X+16|0;g=c[t>>2]|0;if(!g){_=0;break}else{$=g;aa=t}}else{$=e;aa=I}I=$;e=aa;while(1){t=I+20|0;g=c[t>>2]|0;if(!g){n=I+16|0;N=c[n>>2]|0;if(!N)break;else{ba=N;ca=n}}else{ba=g;ca=t}I=ba;e=ca}c[e>>2]=0;_=I}else{t=c[X+8>>2]|0;c[t+12>>2]=i;c[i+8>>2]=t;_=i}while(0);do if(o){i=c[X+28>>2]|0;t=353956+(i<<2)|0;if((X|0)==(c[t>>2]|0)){c[t>>2]=_;if(!_){t=v&~(1<>2]|0)==(X|0)?t:o+20|0)>>2]=_;if(!_){da=v;break}}c[_+24>>2]=o;t=c[X+16>>2]|0;if(t|0){c[_+16>>2]=t;c[t+24>>2]=_}t=c[X+20>>2]|0;if(t){c[_+20>>2]=t;c[t+24>>2]=_;da=v}else da=v}else da=v;while(0);b:do if(Y>>>0<16){v=Y+f|0;c[X+4>>2]=v|3;o=X+v+4|0;c[o>>2]=c[o>>2]|1}else{c[X+4>>2]=f|3;c[h+4>>2]=Y|1;c[h+Y>>2]=Y;o=Y>>>3;if(Y>>>0<256){v=353692+(o<<1<<2)|0;t=c[88413]|0;i=1<>2]|0;fa=i}c[fa>>2]=h;c[ea+12>>2]=h;c[h+8>>2]=ea;c[h+12>>2]=v;break}v=Y>>>8;if(v)if(Y>>>0>16777215)ga=31;else{i=(v+1048320|0)>>>16&8;t=v<>>16&4;o=t<>>16&2;g=14-(v|i|t)+(o<>>15)|0;ga=Y>>>(g+7|0)&1|g<<1}else ga=0;g=353956+(ga<<2)|0;c[h+28>>2]=ga;t=h+16|0;c[t+4>>2]=0;c[t>>2]=0;t=1<>2]=h;c[h+24>>2]=g;c[h+12>>2]=h;c[h+8>>2]=h;break}t=c[g>>2]|0;c:do if((c[t+4>>2]&-8|0)==(Y|0))ha=t;else{g=Y<<((ga|0)==31?0:25-(ga>>>1)|0);o=t;while(1){ia=o+16+(g>>>31<<2)|0;i=c[ia>>2]|0;if(!i)break;if((c[i+4>>2]&-8|0)==(Y|0)){ha=i;break c}else{g=g<<1;o=i}}c[ia>>2]=h;c[h+24>>2]=o;c[h+12>>2]=h;c[h+8>>2]=h;break b}while(0);t=ha+8|0;I=c[t>>2]|0;c[I+12>>2]=h;c[t>>2]=h;c[h+8>>2]=I;c[h+12>>2]=ha;c[h+24>>2]=0}while(0);p=X+8|0;k=b;return p|0}else G=f}else G=f}else G=-1;while(0);X=c[88415]|0;if(X>>>0>=G>>>0){ha=X-G|0;ia=c[88418]|0;if(ha>>>0>15){Y=ia+G|0;c[88418]=Y;c[88415]=ha;c[Y+4>>2]=ha|1;c[ia+X>>2]=ha;c[ia+4>>2]=G|3}else{c[88415]=0;c[88418]=0;c[ia+4>>2]=X|3;ha=ia+X+4|0;c[ha>>2]=c[ha>>2]|1}p=ia+8|0;k=b;return p|0}ia=c[88416]|0;if(ia>>>0>G>>>0){ha=ia-G|0;c[88416]=ha;X=c[88419]|0;Y=X+G|0;c[88419]=Y;c[Y+4>>2]=ha|1;c[X+4>>2]=G|3;p=X+8|0;k=b;return p|0}if(!(c[88531]|0)){c[88533]=4096;c[88532]=4096;c[88534]=-1;c[88535]=-1;c[88536]=0;c[88524]=0;c[88531]=d&-16^1431655768;ja=4096}else ja=c[88533]|0;d=G+48|0;X=G+47|0;ha=ja+X|0;Y=0-ja|0;ja=ha&Y;if(ja>>>0<=G>>>0){p=0;k=b;return p|0}ga=c[88523]|0;if(ga|0?(da=c[88521]|0,ea=da+ja|0,ea>>>0<=da>>>0|ea>>>0>ga>>>0):0){p=0;k=b;return p|0}d:do if(!(c[88524]&4)){ga=c[88419]|0;e:do if(ga){ea=354100;while(1){da=c[ea>>2]|0;if(da>>>0<=ga>>>0?(da+(c[ea+4>>2]|0)|0)>>>0>ga>>>0:0)break;da=c[ea+8>>2]|0;if(!da){M=128;break e}else ea=da}da=ha-ia&Y;if(da>>>0<2147483647){fa=je(da|0)|0;if((fa|0)==((c[ea>>2]|0)+(c[ea+4>>2]|0)|0))if((fa|0)==(-1|0))ka=da;else{la=da;ma=fa;M=145;break d}else{na=fa;oa=da;M=136}}else ka=0}else M=128;while(0);do if((M|0)==128){ga=je(0)|0;if((ga|0)!=(-1|0)?(f=ga,da=c[88532]|0,fa=da+-1|0,_=((fa&f|0)==0?0:(fa+f&0-da)-f|0)+ja|0,f=c[88521]|0,da=_+f|0,_>>>0>G>>>0&_>>>0<2147483647):0){fa=c[88523]|0;if(fa|0?da>>>0<=f>>>0|da>>>0>fa>>>0:0){ka=0;break}fa=je(_|0)|0;if((fa|0)==(ga|0)){la=_;ma=ga;M=145;break d}else{na=fa;oa=_;M=136}}else ka=0}while(0);do if((M|0)==136){_=0-oa|0;if(!(d>>>0>oa>>>0&(oa>>>0<2147483647&(na|0)!=(-1|0))))if((na|0)==(-1|0)){ka=0;break}else{la=oa;ma=na;M=145;break d}fa=c[88533]|0;ga=X-oa+fa&0-fa;if(ga>>>0>=2147483647){la=oa;ma=na;M=145;break d}if((je(ga|0)|0)==(-1|0)){je(_|0)|0;ka=0;break}else{la=ga+oa|0;ma=na;M=145;break d}}while(0);c[88524]=c[88524]|4;pa=ka;M=143}else{pa=0;M=143}while(0);if(((M|0)==143?ja>>>0<2147483647:0)?(ka=je(ja|0)|0,ja=je(0)|0,na=ja-ka|0,oa=na>>>0>(G+40|0)>>>0,!((ka|0)==(-1|0)|oa^1|ka>>>0>>0&((ka|0)!=(-1|0)&(ja|0)!=(-1|0))^1)):0){la=oa?na:pa;ma=ka;M=145}if((M|0)==145){ka=(c[88521]|0)+la|0;c[88521]=ka;if(ka>>>0>(c[88522]|0)>>>0)c[88522]=ka;ka=c[88419]|0;f:do if(ka){pa=354100;while(1){qa=c[pa>>2]|0;ra=c[pa+4>>2]|0;if((ma|0)==(qa+ra|0)){M=154;break}na=c[pa+8>>2]|0;if(!na)break;else pa=na}if(((M|0)==154?(na=pa+4|0,(c[pa+12>>2]&8|0)==0):0)?ma>>>0>ka>>>0&qa>>>0<=ka>>>0:0){c[na>>2]=ra+la;na=(c[88416]|0)+la|0;oa=ka+8|0;ja=(oa&7|0)==0?0:0-oa&7;oa=ka+ja|0;X=na-ja|0;c[88419]=oa;c[88416]=X;c[oa+4>>2]=X|1;c[ka+na+4>>2]=40;c[88420]=c[88535];break}if(ma>>>0<(c[88417]|0)>>>0)c[88417]=ma;na=ma+la|0;X=354100;while(1){if((c[X>>2]|0)==(na|0)){M=162;break}oa=c[X+8>>2]|0;if(!oa)break;else X=oa}if((M|0)==162?(c[X+12>>2]&8|0)==0:0){c[X>>2]=ma;pa=X+4|0;c[pa>>2]=(c[pa>>2]|0)+la;pa=ma+8|0;oa=ma+((pa&7|0)==0?0:0-pa&7)|0;pa=na+8|0;ja=na+((pa&7|0)==0?0:0-pa&7)|0;pa=oa+G|0;d=ja-oa-G|0;c[oa+4>>2]=G|3;g:do if((ka|0)==(ja|0)){Y=(c[88416]|0)+d|0;c[88416]=Y;c[88419]=pa;c[pa+4>>2]=Y|1}else{if((c[88418]|0)==(ja|0)){Y=(c[88415]|0)+d|0;c[88415]=Y;c[88418]=pa;c[pa+4>>2]=Y|1;c[pa+Y>>2]=Y;break}Y=c[ja+4>>2]|0;if((Y&3|0)==1){ia=Y&-8;ha=Y>>>3;h:do if(Y>>>0<256){ga=c[ja+8>>2]|0;_=c[ja+12>>2]|0;if((_|0)==(ga|0)){c[88413]=c[88413]&~(1<>2]=_;c[_+8>>2]=ga;break}}else{ga=c[ja+24>>2]|0;_=c[ja+12>>2]|0;do if((_|0)==(ja|0)){fa=ja+16|0;da=fa+4|0;f=c[da>>2]|0;if(!f){ca=c[fa>>2]|0;if(!ca){sa=0;break}else{ta=ca;ua=fa}}else{ta=f;ua=da}da=ta;f=ua;while(1){fa=da+20|0;ca=c[fa>>2]|0;if(!ca){ba=da+16|0;aa=c[ba>>2]|0;if(!aa)break;else{va=aa;wa=ba}}else{va=ca;wa=fa}da=va;f=wa}c[f>>2]=0;sa=da}else{fa=c[ja+8>>2]|0;c[fa+12>>2]=_;c[_+8>>2]=fa;sa=_}while(0);if(!ga)break;_=c[ja+28>>2]|0;o=353956+(_<<2)|0;do if((c[o>>2]|0)!=(ja|0)){fa=ga+16|0;c[((c[fa>>2]|0)==(ja|0)?fa:ga+20|0)>>2]=sa;if(!sa)break h}else{c[o>>2]=sa;if(sa|0)break;c[88414]=c[88414]&~(1<<_);break h}while(0);c[sa+24>>2]=ga;_=ja+16|0;o=c[_>>2]|0;if(o|0){c[sa+16>>2]=o;c[o+24>>2]=sa}o=c[_+4>>2]|0;if(!o)break;c[sa+20>>2]=o;c[o+24>>2]=sa}while(0);xa=ja+ia|0;ya=ia+d|0}else{xa=ja;ya=d}ha=xa+4|0;c[ha>>2]=c[ha>>2]&-2;c[pa+4>>2]=ya|1;c[pa+ya>>2]=ya;ha=ya>>>3;if(ya>>>0<256){Y=353692+(ha<<1<<2)|0;ea=c[88413]|0;o=1<>2]|0;Aa=o}c[Aa>>2]=pa;c[za+12>>2]=pa;c[pa+8>>2]=za;c[pa+12>>2]=Y;break}Y=ya>>>8;do if(!Y)Ba=0;else{if(ya>>>0>16777215){Ba=31;break}o=(Y+1048320|0)>>>16&8;ea=Y<>>16&4;_=ea<>>16&2;fa=14-(ha|o|ea)+(_<>>15)|0;Ba=ya>>>(fa+7|0)&1|fa<<1}while(0);Y=353956+(Ba<<2)|0;c[pa+28>>2]=Ba;ia=pa+16|0;c[ia+4>>2]=0;c[ia>>2]=0;ia=c[88414]|0;fa=1<>2]=pa;c[pa+24>>2]=Y;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break}fa=c[Y>>2]|0;i:do if((c[fa+4>>2]&-8|0)==(ya|0))Ca=fa;else{Y=ya<<((Ba|0)==31?0:25-(Ba>>>1)|0);ia=fa;while(1){Da=ia+16+(Y>>>31<<2)|0;ea=c[Da>>2]|0;if(!ea)break;if((c[ea+4>>2]&-8|0)==(ya|0)){Ca=ea;break i}else{Y=Y<<1;ia=ea}}c[Da>>2]=pa;c[pa+24>>2]=ia;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break g}while(0);fa=Ca+8|0;Y=c[fa>>2]|0;c[Y+12>>2]=pa;c[fa>>2]=pa;c[pa+8>>2]=Y;c[pa+12>>2]=Ca;c[pa+24>>2]=0}while(0);p=oa+8|0;k=b;return p|0}pa=354100;while(1){d=c[pa>>2]|0;if(d>>>0<=ka>>>0?(Ea=d+(c[pa+4>>2]|0)|0,Ea>>>0>ka>>>0):0)break;pa=c[pa+8>>2]|0}pa=Ea+-47|0;oa=pa+8|0;d=pa+((oa&7|0)==0?0:0-oa&7)|0;oa=ka+16|0;pa=d>>>0>>0?ka:d;d=pa+8|0;ja=la+-40|0;na=ma+8|0;X=(na&7|0)==0?0:0-na&7;na=ma+X|0;Y=ja-X|0;c[88419]=na;c[88416]=Y;c[na+4>>2]=Y|1;c[ma+ja+4>>2]=40;c[88420]=c[88535];ja=pa+4|0;c[ja>>2]=27;c[d>>2]=c[88525];c[d+4>>2]=c[88526];c[d+8>>2]=c[88527];c[d+12>>2]=c[88528];c[88525]=ma;c[88526]=la;c[88528]=0;c[88527]=d;d=pa+24|0;do{Y=d;d=d+4|0;c[d>>2]=7}while((Y+8|0)>>>0>>0);if((pa|0)!=(ka|0)){d=pa-ka|0;c[ja>>2]=c[ja>>2]&-2;c[ka+4>>2]=d|1;c[pa>>2]=d;Y=d>>>3;if(d>>>0<256){na=353692+(Y<<1<<2)|0;X=c[88413]|0;fa=1<>2]|0;Ga=fa}c[Ga>>2]=ka;c[Fa+12>>2]=ka;c[ka+8>>2]=Fa;c[ka+12>>2]=na;break}na=d>>>8;if(na)if(d>>>0>16777215)Ha=31;else{fa=(na+1048320|0)>>>16&8;X=na<>>16&4;Y=X<>>16&2;ga=14-(na|fa|X)+(Y<>>15)|0;Ha=d>>>(ga+7|0)&1|ga<<1}else Ha=0;ga=353956+(Ha<<2)|0;c[ka+28>>2]=Ha;c[ka+20>>2]=0;c[oa>>2]=0;X=c[88414]|0;Y=1<>2]=ka;c[ka+24>>2]=ga;c[ka+12>>2]=ka;c[ka+8>>2]=ka;break}Y=c[ga>>2]|0;j:do if((c[Y+4>>2]&-8|0)==(d|0))Ia=Y;else{ga=d<<((Ha|0)==31?0:25-(Ha>>>1)|0);X=Y;while(1){Ja=X+16+(ga>>>31<<2)|0;fa=c[Ja>>2]|0;if(!fa)break;if((c[fa+4>>2]&-8|0)==(d|0)){Ia=fa;break j}else{ga=ga<<1;X=fa}}c[Ja>>2]=ka;c[ka+24>>2]=X;c[ka+12>>2]=ka;c[ka+8>>2]=ka;break f}while(0);d=Ia+8|0;Y=c[d>>2]|0;c[Y+12>>2]=ka;c[d>>2]=ka;c[ka+8>>2]=Y;c[ka+12>>2]=Ia;c[ka+24>>2]=0}}else{Y=c[88417]|0;if((Y|0)==0|ma>>>0>>0)c[88417]=ma;c[88525]=ma;c[88526]=la;c[88528]=0;c[88422]=c[88531];c[88421]=-1;c[88426]=353692;c[88425]=353692;c[88428]=353700;c[88427]=353700;c[88430]=353708;c[88429]=353708;c[88432]=353716;c[88431]=353716;c[88434]=353724;c[88433]=353724;c[88436]=353732;c[88435]=353732;c[88438]=353740;c[88437]=353740;c[88440]=353748;c[88439]=353748;c[88442]=353756;c[88441]=353756;c[88444]=353764;c[88443]=353764;c[88446]=353772;c[88445]=353772;c[88448]=353780;c[88447]=353780;c[88450]=353788;c[88449]=353788;c[88452]=353796;c[88451]=353796;c[88454]=353804;c[88453]=353804;c[88456]=353812;c[88455]=353812;c[88458]=353820;c[88457]=353820;c[88460]=353828;c[88459]=353828;c[88462]=353836;c[88461]=353836;c[88464]=353844;c[88463]=353844;c[88466]=353852;c[88465]=353852;c[88468]=353860;c[88467]=353860;c[88470]=353868;c[88469]=353868;c[88472]=353876;c[88471]=353876;c[88474]=353884;c[88473]=353884;c[88476]=353892;c[88475]=353892;c[88478]=353900;c[88477]=353900;c[88480]=353908;c[88479]=353908;c[88482]=353916;c[88481]=353916;c[88484]=353924;c[88483]=353924;c[88486]=353932;c[88485]=353932;c[88488]=353940;c[88487]=353940;Y=la+-40|0;d=ma+8|0;oa=(d&7|0)==0?0:0-d&7;d=ma+oa|0;pa=Y-oa|0;c[88419]=d;c[88416]=pa;c[d+4>>2]=pa|1;c[ma+Y+4>>2]=40;c[88420]=c[88535]}while(0);ma=c[88416]|0;if(ma>>>0>G>>>0){la=ma-G|0;c[88416]=la;ma=c[88419]|0;ka=ma+G|0;c[88419]=ka;c[ka+4>>2]=la|1;c[ma+4>>2]=G|3;p=ma+8|0;k=b;return p|0}}c[(ec()|0)>>2]=12;p=0;k=b;return p|0}function _b(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if(!a)return;b=a+-8|0;d=c[88417]|0;e=c[a+-4>>2]|0;a=e&-8;f=b+a|0;do if(!(e&1)){g=c[b>>2]|0;if(!(e&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0>>0)return;if((c[88418]|0)==(h|0)){j=f+4|0;k=c[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break}c[88415]=i;c[j>>2]=k&-2;c[h+4>>2]=i|1;c[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=c[h+8>>2]|0;j=c[h+12>>2]|0;if((j|0)==(g|0)){c[88413]=c[88413]&~(1<>2]=j;c[j+8>>2]=g;l=h;m=i;n=h;break}}g=c[h+24>>2]|0;j=c[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=c[o>>2]|0;if(!p){q=c[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}o=s;p=t;while(1){k=o+20|0;q=c[k>>2]|0;if(!q){u=o+16|0;v=c[u>>2]|0;if(!v)break;else{w=v;x=u}}else{w=q;x=k}o=w;p=x}c[p>>2]=0;r=o}else{k=c[h+8>>2]|0;c[k+12>>2]=j;c[j+8>>2]=k;r=j}while(0);if(g){j=c[h+28>>2]|0;k=353956+(j<<2)|0;if((c[k>>2]|0)==(h|0)){c[k>>2]=r;if(!r){c[88414]=c[88414]&~(1<>2]|0)==(h|0)?j:g+20|0)>>2]=r;if(!r){l=h;m=i;n=h;break}}c[r+24>>2]=g;j=h+16|0;k=c[j>>2]|0;if(k|0){c[r+16>>2]=k;c[k+24>>2]=r}k=c[j+4>>2]|0;if(k){c[r+20>>2]=k;c[k+24>>2]=r;l=h;m=i;n=h}else{l=h;m=i;n=h}}else{l=h;m=i;n=h}}else{l=b;m=a;n=b}while(0);if(n>>>0>=f>>>0)return;b=f+4|0;a=c[b>>2]|0;if(!(a&1))return;if(!(a&2)){if((c[88419]|0)==(f|0)){r=(c[88416]|0)+m|0;c[88416]=r;c[88419]=l;c[l+4>>2]=r|1;if((l|0)!=(c[88418]|0))return;c[88418]=0;c[88415]=0;return}if((c[88418]|0)==(f|0)){r=(c[88415]|0)+m|0;c[88415]=r;c[88418]=n;c[l+4>>2]=r|1;c[n+r>>2]=r;return}r=(a&-8)+m|0;x=a>>>3;do if(a>>>0<256){w=c[f+8>>2]|0;t=c[f+12>>2]|0;if((t|0)==(w|0)){c[88413]=c[88413]&~(1<>2]=t;c[t+8>>2]=w;break}}else{w=c[f+24>>2]|0;t=c[f+12>>2]|0;do if((t|0)==(f|0)){s=f+16|0;d=s+4|0;e=c[d>>2]|0;if(!e){k=c[s>>2]|0;if(!k){y=0;break}else{z=k;A=s}}else{z=e;A=d}d=z;e=A;while(1){s=d+20|0;k=c[s>>2]|0;if(!k){j=d+16|0;q=c[j>>2]|0;if(!q)break;else{B=q;C=j}}else{B=k;C=s}d=B;e=C}c[e>>2]=0;y=d}else{o=c[f+8>>2]|0;c[o+12>>2]=t;c[t+8>>2]=o;y=t}while(0);if(w|0){t=c[f+28>>2]|0;h=353956+(t<<2)|0;if((c[h>>2]|0)==(f|0)){c[h>>2]=y;if(!y){c[88414]=c[88414]&~(1<>2]|0)==(f|0)?t:w+20|0)>>2]=y;if(!y)break}c[y+24>>2]=w;t=f+16|0;h=c[t>>2]|0;if(h|0){c[y+16>>2]=h;c[h+24>>2]=y}h=c[t+4>>2]|0;if(h|0){c[y+20>>2]=h;c[h+24>>2]=y}}}while(0);c[l+4>>2]=r|1;c[n+r>>2]=r;if((l|0)==(c[88418]|0)){c[88415]=r;return}else D=r}else{c[b>>2]=a&-2;c[l+4>>2]=m|1;c[n+m>>2]=m;D=m}m=D>>>3;if(D>>>0<256){n=353692+(m<<1<<2)|0;a=c[88413]|0;b=1<>2]|0;F=b}c[F>>2]=l;c[E+12>>2]=l;c[l+8>>2]=E;c[l+12>>2]=n;return}n=D>>>8;if(n)if(D>>>0>16777215)G=31;else{E=(n+1048320|0)>>>16&8;F=n<>>16&4;b=F<>>16&2;a=14-(n|E|F)+(b<>>15)|0;G=D>>>(a+7|0)&1|a<<1}else G=0;a=353956+(G<<2)|0;c[l+28>>2]=G;c[l+20>>2]=0;c[l+16>>2]=0;F=c[88414]|0;b=1<>2]=l;c[l+24>>2]=a;c[l+12>>2]=l;c[l+8>>2]=l}else{E=c[a>>2]|0;b:do if((c[E+4>>2]&-8|0)==(D|0))H=E;else{n=D<<((G|0)==31?0:25-(G>>>1)|0);m=E;while(1){I=m+16+(n>>>31<<2)|0;r=c[I>>2]|0;if(!r)break;if((c[r+4>>2]&-8|0)==(D|0)){H=r;break b}else{n=n<<1;m=r}}c[I>>2]=l;c[l+24>>2]=m;c[l+12>>2]=l;c[l+8>>2]=l;break a}while(0);E=H+8|0;w=c[E>>2]|0;c[w+12>>2]=l;c[E>>2]=l;c[l+8>>2]=w;c[l+12>>2]=H;c[l+24>>2]=0}while(0);l=(c[88421]|0)+-1|0;c[88421]=l;if(l|0)return;l=354108;while(1){H=c[l>>2]|0;if(!H)break;else l=H+8|0}c[88421]=-1;return}function $b(a,b){a=a|0;b=b|0;var d=0,e=0;if(a){d=M(b,a)|0;if((b|a)>>>0>65535)e=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1;else e=d}else e=0;d=Zb(e)|0;if(!d)return d|0;if(!(c[d+-4>>2]&3))return d|0;ie(d|0,0,e|0)|0;return d|0}function ac(a){a=a|0;var b=0,d=0;b=k;k=k+16|0;d=b;c[d>>2]=fc(c[a+60>>2]|0)|0;a=dc(ba(6,d|0)|0)|0;k=b;return a|0}function bc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;f=k;k=k+32|0;g=f+16|0;h=f;c[h>>2]=d;i=h+4|0;j=b+48|0;l=c[j>>2]|0;c[i>>2]=e-((l|0)!=0&1);m=b+44|0;c[h+8>>2]=c[m>>2];c[h+12>>2]=l;c[g>>2]=c[b+60>>2];c[g+4>>2]=h;c[g+8>>2]=2;h=dc(Y(145,g|0)|0)|0;if((h|0)>=1){g=c[i>>2]|0;if(h>>>0>g>>>0){i=c[m>>2]|0;m=b+4|0;c[m>>2]=i;l=i;c[b+8>>2]=l+(h-g);if(!(c[j>>2]|0))n=e;else{c[m>>2]=l+1;a[d+(e+-1)>>0]=a[l>>0]|0;n=e}}else n=h}else{c[b>>2]=c[b>>2]|h&48^16;n=h}k=f;return n|0}function cc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=k;k=k+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((dc(X(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;k=e;return h|0}function dc(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(ec()|0)>>2]=0-a;b=-1}else b=a;return b|0}function ec(){return 354220}function fc(a){a=a|0;return a|0}function gc(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=k;k=k+48|0;f=e+32|0;g=e+16|0;h=e;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;l=a+20|0;m=(c[l>>2]|0)-j|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=m+d|0;m=a+60|0;c[g>>2]=c[m>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=dc(Z(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;n=b;o=h;p=j;while(1){if((p|0)<0)break;n=n-p|0;q=c[o+4>>2]|0;r=p>>>0>q>>>0;s=r?o+8|0:o;t=g+(r<<31>>31)|0;u=p-(r?q:0)|0;c[s>>2]=(c[s>>2]|0)+u;q=s+4|0;c[q>>2]=(c[q>>2]|0)-u;c[f>>2]=c[m>>2];c[f+4>>2]=s;c[f+8>>2]=t;p=dc(Z(146,f|0)|0)|0;if((n|0)==(p|0)){v=3;break a}else{g=t;o=s}}c[a+16>>2]=0;c[i>>2]=0;c[l>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)w=0;else w=d-(c[o+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=c[a+44>>2]|0;c[a+16>>2]=v+(c[a+48>>2]|0);a=v;c[i>>2]=a;c[l>>2]=a;w=d}k=e;return w|0}function hc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=k;k=k+32|0;g=f;c[b+36>>2]=3;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21523,c[g+8>>2]=f+16,aa(54,g|0)|0):0)a[b+75>>0]=-1;g=gc(b,d,e)|0;k=f;return g|0}function ic(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=b;do{c=c+1|0;d=d+1|0;b=a[c>>0]|0;e=a[d>>0]|0}while(!(b<<24>>24==0?1:b<<24>>24!=e<<24>>24));f=e;g=b}return (g&255)-(f&255)|0}function jc(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!e)f=0;else{g=a[b>>0]|0;a:do if(!(g<<24>>24)){h=c;i=0}else{j=b;k=e;l=c;m=g;while(1){k=k+-1|0;n=a[l>>0]|0;if(!(m<<24>>24==n<<24>>24&((k|0)!=0&n<<24>>24!=0))){h=l;i=m;break a}j=j+1|0;n=l+1|0;m=a[j>>0]|0;if(!(m<<24>>24)){h=n;i=0;break}else l=n}}while(0);f=(i&255)-(d[h>>0]|0)|0}return f|0}function kc(a){a=a|0;return (a+-48|0)>>>0<10|0}function lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=k;k=k+16|0;f=e;c[f>>2]=d;d=mc(a,b,f)|0;k=e;return d|0}function mc(a,b,c){a=a|0;b=b|0;c=c|0;return nc(a,2147483647,b,c)|0}function nc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;g=k;k=k+128|0;h=g+124|0;i=g;j=i;l=3144;m=j+124|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));if((d+-1|0)>>>0>2147483646)if(!d){n=h;o=1;p=4}else{c[(ec()|0)>>2]=75;q=-1}else{n=b;o=d;p=4}if((p|0)==4){p=-2-n|0;d=o>>>0>p>>>0?p:o;c[i+48>>2]=d;o=i+20|0;c[o>>2]=n;c[i+44>>2]=n;p=n+d|0;n=i+16|0;c[n>>2]=p;c[i+28>>2]=p;p=oc(i,e,f)|0;if(!d)q=p;else{d=c[o>>2]|0;a[d+(((d|0)==(c[n>>2]|0))<<31>>31)>>0]=0;q=p}}k=g;return q|0}function oc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=k;k=k+224|0;g=f+208|0;h=f+160|0;i=f+80|0;j=f;l=h;m=l+40|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[g>>2]=c[e>>2];if((pc(0,d,g,i,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=qc(b)|0;else o=0;e=c[b>>2]|0;l=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=j;q=b+28|0;c[q>>2]=j;r=b+20|0;c[r>>2]=j;c[e>>2]=80;s=b+16|0;c[s>>2]=j+80;j=pc(b,d,g,i,h)|0;if(!p)t=j;else{ja[c[b+36>>2]&7](b,0,0)|0;u=(c[r>>2]|0)==0?-1:j;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u}}else t=pc(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|l;if(o|0)rc(b);n=(h&32|0)==0?t:-1}k=f;return n|0} -function pc(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;j=k;k=k+64|0;l=j+56|0;m=j+40|0;n=j;o=j+48|0;p=j+60|0;c[l>>2]=e;e=(d|0)!=0;q=n+40|0;r=q;s=n+39|0;n=o+4|0;t=0;u=0;v=0;a:while(1){w=t;y=u;while(1){do if((y|0)>-1)if((w|0)>(2147483647-y|0)){c[(ec()|0)>>2]=75;z=-1;break}else{z=w+y|0;break}else z=y;while(0);A=c[l>>2]|0;B=a[A>>0]|0;if(!(B<<24>>24)){C=94;break a}D=B;B=A;b:while(1){switch(D<<24>>24){case 37:{C=10;break b;break}case 0:{E=B;break b;break}default:{}}F=B+1|0;c[l>>2]=F;D=a[F>>0]|0;B=F}c:do if((C|0)==10){C=0;D=B;F=B;while(1){if((a[F+1>>0]|0)!=37){E=D;break c}G=D+1|0;F=F+2|0;c[l>>2]=F;if((a[F>>0]|0)!=37){E=G;break}else D=G}}while(0);w=E-A|0;if(e)sc(d,A,w);if(!w)break;else y=z}y=(kc(a[(c[l>>2]|0)+1>>0]|0)|0)==0;w=c[l>>2]|0;if(!y?(a[w+2>>0]|0)==36:0){H=(a[w+1>>0]|0)+-48|0;I=1;J=3}else{H=-1;I=v;J=1}y=w+J|0;c[l>>2]=y;w=a[y>>0]|0;B=(w<<24>>24)+-32|0;if(B>>>0>31|(1<>2]=F;G=a[F>>0]|0;D=(G<<24>>24)+-32|0;if(D>>>0>31|(1<>24==42){if((kc(a[M+1>>0]|0)|0)!=0?(B=c[l>>2]|0,(a[B+2>>0]|0)==36):0){w=B+1|0;c[i+((a[w>>0]|0)+-48<<2)>>2]=10;N=c[g+((a[w>>0]|0)+-48<<3)>>2]|0;O=1;P=B+3|0}else{if(I|0){Q=-1;break}if(e){B=(c[f>>2]|0)+(4-1)&~(4-1);w=c[B>>2]|0;c[f>>2]=B+4;R=w}else R=0;N=R;O=0;P=(c[l>>2]|0)+1|0}c[l>>2]=P;w=(N|0)<0;S=w?0-N|0:N;T=w?K|8192:K;U=O;V=P}else{w=tc(l)|0;if((w|0)<0){Q=-1;break}S=w;T=K;U=I;V=c[l>>2]|0}do if((a[V>>0]|0)==46){w=V+1|0;if((a[w>>0]|0)!=42){c[l>>2]=w;w=tc(l)|0;W=w;X=c[l>>2]|0;break}if(kc(a[V+2>>0]|0)|0?(w=c[l>>2]|0,(a[w+3>>0]|0)==36):0){B=w+2|0;c[i+((a[B>>0]|0)+-48<<2)>>2]=10;D=c[g+((a[B>>0]|0)+-48<<3)>>2]|0;B=w+4|0;c[l>>2]=B;W=D;X=B;break}if(U|0){Q=-1;break a}if(e){B=(c[f>>2]|0)+(4-1)&~(4-1);D=c[B>>2]|0;c[f>>2]=B+4;Y=D}else Y=0;D=(c[l>>2]|0)+2|0;c[l>>2]=D;W=Y;X=D}else{W=-1;X=V}while(0);D=0;B=X;while(1){if(((a[B>>0]|0)+-65|0)>>>0>57){Q=-1;break a}w=B;B=B+1|0;c[l>>2]=B;Z=a[(a[w>>0]|0)+-65+(336+(D*58|0))>>0]|0;_=Z&255;if((_+-1|0)>>>0>=8)break;else D=_}if(!(Z<<24>>24)){Q=-1;break}w=(H|0)>-1;do if(Z<<24>>24==19)if(w){Q=-1;break a}else C=54;else{if(w){c[i+(H<<2)>>2]=_;F=g+(H<<3)|0;y=c[F+4>>2]|0;G=m;c[G>>2]=c[F>>2];c[G+4>>2]=y;C=54;break}if(!e){Q=0;break a}uc(m,_,f);$=c[l>>2]|0;C=55}while(0);if((C|0)==54){C=0;if(e){$=B;C=55}else aa=0}d:do if((C|0)==55){C=0;w=a[$+-1>>0]|0;y=(D|0)!=0&(w&15|0)==3?w&-33:w;w=T&-65537;G=(T&8192|0)==0?T:w;e:do switch(y|0){case 110:{switch((D&255)<<24>>24){case 0:{c[c[m>>2]>>2]=z;aa=0;break d;break}case 1:{c[c[m>>2]>>2]=z;aa=0;break d;break}case 2:{F=c[m>>2]|0;c[F>>2]=z;c[F+4>>2]=((z|0)<0)<<31>>31;aa=0;break d;break}case 3:{b[c[m>>2]>>1]=z;aa=0;break d;break}case 4:{a[c[m>>2]>>0]=z;aa=0;break d;break}case 6:{c[c[m>>2]>>2]=z;aa=0;break d;break}case 7:{F=c[m>>2]|0;c[F>>2]=z;c[F+4>>2]=((z|0)<0)<<31>>31;aa=0;break d;break}default:{aa=0;break d}}break}case 112:{ba=120;ca=W>>>0>8?W:8;da=G|8;C=67;break}case 88:case 120:{ba=y;ca=W;da=G;C=67;break}case 111:{F=m;ea=c[F>>2]|0;fa=c[F+4>>2]|0;F=wc(ea,fa,q)|0;ga=r-F|0;ha=F;ia=0;ja=13269;ka=(G&8|0)==0|(W|0)>(ga|0)?W:ga+1|0;la=G;ma=ea;na=fa;C=73;break}case 105:case 100:{fa=m;ea=c[fa>>2]|0;ga=c[fa+4>>2]|0;if((ga|0)<0){fa=ae(0,0,ea|0,ga|0)|0;F=x;oa=m;c[oa>>2]=fa;c[oa+4>>2]=F;pa=1;qa=13269;ra=fa;sa=F;C=72;break e}else{pa=(G&2049|0)!=0&1;qa=(G&2048|0)==0?((G&1|0)==0?13269:13271):13270;ra=ea;sa=ga;C=72;break e}break}case 117:{ga=m;pa=0;qa=13269;ra=c[ga>>2]|0;sa=c[ga+4>>2]|0;C=72;break}case 99:{a[s>>0]=c[m>>2];ta=s;ua=0;va=13269;wa=1;xa=w;ya=r;break}case 109:{za=yc(c[(ec()|0)>>2]|0)|0;C=77;break}case 115:{ga=c[m>>2]|0;za=(ga|0)==0?13279:ga;C=77;break}case 67:{c[o>>2]=c[m>>2];c[n>>2]=0;c[m>>2]=o;Aa=-1;C=81;break}case 83:{if(!W){Ac(d,32,S,0,G);Ba=0;C=91}else{Aa=W;C=81}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{aa=Cc(d,+h[m>>3],S,W,G,y)|0;break d;break}default:{ta=A;ua=0;va=13269;wa=W;xa=G;ya=r}}while(0);f:do if((C|0)==67){C=0;y=m;ga=c[y>>2]|0;ea=c[y+4>>2]|0;y=vc(ga,ea,q,ba&32)|0;F=(da&8|0)==0|(ga|0)==0&(ea|0)==0;ha=y;ia=F?0:2;ja=F?13269:13269+(ba>>>4)|0;ka=ca;la=da;ma=ga;na=ea;C=73}else if((C|0)==72){C=0;ha=xc(ra,sa,q)|0;ia=pa;ja=qa;ka=W;la=G;ma=ra;na=sa;C=73}else if((C|0)==77){C=0;ea=zc(za,0,W)|0;ga=(ea|0)==0;ta=za;ua=0;va=13269;wa=ga?W:ea-za|0;xa=w;ya=ga?za+W|0:ea}else if((C|0)==81){C=0;ea=c[m>>2]|0;ga=0;while(1){F=c[ea>>2]|0;if(!F){Ca=ga;break}y=Bc(p,F)|0;Da=(y|0)<0;if(Da|y>>>0>(Aa-ga|0)>>>0){C=85;break}F=y+ga|0;if(Aa>>>0>F>>>0){ea=ea+4|0;ga=F}else{Ca=F;break}}if((C|0)==85){C=0;if(Da){Q=-1;break a}else Ca=ga}Ac(d,32,S,Ca,G);if(!Ca){Ba=0;C=91}else{ea=c[m>>2]|0;F=0;while(1){y=c[ea>>2]|0;if(!y){Ba=Ca;C=91;break f}fa=Bc(p,y)|0;F=fa+F|0;if((F|0)>(Ca|0)){Ba=Ca;C=91;break f}sc(d,p,fa);if(F>>>0>=Ca>>>0){Ba=Ca;C=91;break}else ea=ea+4|0}}}while(0);if((C|0)==73){C=0;w=(ma|0)!=0|(na|0)!=0;ea=(ka|0)!=0|w;F=r-ha+((w^1)&1)|0;ta=ea?ha:q;ua=ia;va=ja;wa=ea?((ka|0)>(F|0)?ka:F):0;xa=(ka|0)>-1?la&-65537:la;ya=r}else if((C|0)==91){C=0;Ac(d,32,S,Ba,G^8192);aa=(S|0)>(Ba|0)?S:Ba;break}F=ya-ta|0;ea=(wa|0)<(F|0)?F:wa;w=ea+ua|0;ga=(S|0)<(w|0)?w:S;Ac(d,32,ga,w,xa);sc(d,va,ua);Ac(d,48,ga,w,xa^65536);Ac(d,48,ea,F,0);sc(d,ta,F);Ac(d,32,ga,w,xa^8192);aa=ga}while(0);t=aa;u=z;v=U}g:do if((C|0)==94)if(!d)if(!v)Q=0;else{U=1;while(1){u=c[i+(U<<2)>>2]|0;if(!u)break;uc(g+(U<<3)|0,u,f);u=U+1|0;if(u>>>0<10)U=u;else{Q=1;break g}}u=U;while(1){if(c[i+(u<<2)>>2]|0){Q=-1;break g}u=u+1|0;if(u>>>0>=10){Q=1;break}}}else Q=z;while(0);k=j;return Q|0}function qc(a){a=a|0;return 1}function rc(a){a=a|0;return}function sc(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))Pc(b,d,a)|0;return}function tc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;if(!(kc(a[c[b>>2]>>0]|0)|0))d=0;else{e=0;while(1){f=c[b>>2]|0;g=(e*10|0)+-48+(a[f>>0]|0)|0;h=f+1|0;c[b>>2]=h;if(!(kc(a[h>>0]|0)|0)){d=g;break}else e=g}}return d|0}function uc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0);while(0);return}function vc(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0;if((b|0)==0&(c|0)==0)g=e;else{h=e;e=c;c=b;while(1){b=h+-1|0;a[b>>0]=d[800+(c&15)>>0]|0|f;c=ee(c|0,e|0,4)|0;e=x;if((c|0)==0&(e|0)==0){g=b;break}else h=b}}return g|0}function wc(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((b|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=b;while(1){b=f+-1|0;a[b>>0]=c&7|48;c=ee(c|0,d|0,3)|0;d=x;if((c|0)==0&(d|0)==0){e=b;break}else f=b}}return e|0}function xc(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;do{c=f;f=de(f|0,g|0,10,0)|0;h=g;g=x;i=_d(f|0,g|0,10,0)|0;j=ae(c|0,h|0,i|0,x|0)|0;e=e+-1|0;a[e>>0]=j&255|48}while(h>>>0>9|(h|0)==9&c>>>0>4294967295);k=f;l=e}else{k=b;l=d}if(!k)m=l;else{d=k;k=l;while(1){l=d;d=(d>>>0)/10|0;b=k+-1|0;a[b>>0]=l-(d*10|0)|48;if(l>>>0<10){m=b;break}else k=b}}return m|0}function yc(a){a=a|0;return Kc(a,c[(Jc()|0)+188>>2]|0)|0}function zc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=b;j=e;while(1){if((a[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=b;r=e;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else m=16;b:do if((m|0)==6){r=d&255;if((a[k>>0]|0)==r<<24>>24)if(!l){m=16;break}else{t=k;break}q=M(f,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){e=c[s>>2]^q;if((e&-2139062144^-2139062144)&e+-16843009|0){u=g;v=s;break c}e=s+4|0;b=g+-4|0;if(b>>>0>3){s=e;g=b}else{w=e;x=b;m=11;break}}}else{w=k;x=l;m=11}while(0);if((m|0)==11)if(!x){m=16;break}else{u=x;v=w}q=v;g=u;while(1){if((a[q>>0]|0)==r<<24>>24){t=q;break b}g=g+-1|0;if(!g){m=16;break}else q=q+1|0}}while(0);if((m|0)==16)t=0;return t|0}function Ac(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=k;k=k+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;ie(g|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{sc(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;sc(a,g,h)}k=f;return}function Bc(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Gc(a,b,0)|0;return c|0}function Cc(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0.0,K=0,L=0,N=0,O=0,P=0,Q=0,R=0.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.0,ja=0.0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;j=k;k=k+560|0;l=j+32|0;m=j+536|0;n=j;o=n;p=j+540|0;c[m>>2]=0;q=p+12|0;r=Dc(e)|0;s=x;if((s|0)<0){t=-e;u=Dc(t)|0;v=t;w=1;y=13286;z=x;A=u}else{v=e;w=(h&2049|0)!=0&1;y=(h&2048|0)==0?((h&1|0)==0?13287:13292):13289;z=s;A=r}do if(0==0&(z&2146435072|0)==2146435072){r=(i&32|0)!=0;A=w+3|0;Ac(b,32,f,A,h&-65537);sc(b,y,w);sc(b,v!=v|0.0!=0.0?(r?13388:13313):r?13305:13309,3);Ac(b,32,f,A,h^8192);B=A}else{e=+Ec(v,m)*2.0;A=e!=0.0;if(A)c[m>>2]=(c[m>>2]|0)+-1;r=i|32;if((r|0)==97){s=i&32;u=(s|0)==0?y:y+9|0;C=w|2;D=12-g|0;do if(!(g>>>0>11|(D|0)==0)){t=8.0;E=D;do{E=E+-1|0;t=t*16.0}while((E|0)!=0);if((a[u>>0]|0)==45){F=-(t+(-e-t));break}else{F=e+t-t;break}}else F=e;while(0);D=c[m>>2]|0;E=(D|0)<0?0-D|0:D;G=xc(E,((E|0)<0)<<31>>31,q)|0;if((G|0)==(q|0)){E=p+11|0;a[E>>0]=48;H=E}else H=G;a[H+-1>>0]=(D>>31&2)+43;D=H+-2|0;a[D>>0]=i+15;G=(g|0)<1;E=(h&8|0)==0;I=n;J=F;while(1){K=~~J;L=I+1|0;a[I>>0]=s|d[800+K>>0];J=(J-+(K|0))*16.0;if((L-o|0)==1?!(E&(G&J==0.0)):0){a[L>>0]=46;N=I+2|0}else N=L;if(!(J!=0.0))break;else I=N}I=N;if((g|0)!=0?(-2-o+I|0)<(g|0):0){G=q;E=D;O=g+2+G-E|0;P=G;Q=E}else{E=q;G=D;O=E-o-G+I|0;P=E;Q=G}G=O+C|0;Ac(b,32,f,G,h);sc(b,u,C);Ac(b,48,f,G,h^65536);E=I-o|0;sc(b,n,E);I=P-Q|0;Ac(b,48,O-(E+I)|0,0,0);sc(b,D,I);Ac(b,32,f,G,h^8192);B=G;break}G=(g|0)<0?6:g;if(A){I=(c[m>>2]|0)+-28|0;c[m>>2]=I;R=e*268435456.0;S=I}else{R=e;S=c[m>>2]|0}I=(S|0)<0?l:l+288|0;E=I;J=R;do{s=~~J>>>0;c[E>>2]=s;E=E+4|0;J=(J-+(s>>>0))*1.0e9}while(J!=0.0);A=I;if((S|0)>0){D=I;C=E;u=S;while(1){s=(u|0)<29?u:29;L=C+-4|0;if(L>>>0>=D>>>0){K=L;L=0;do{T=fe(c[K>>2]|0,0,s|0)|0;U=$d(T|0,x|0,L|0,0)|0;T=x;L=de(U|0,T|0,1e9,0)|0;V=_d(L|0,x|0,1e9,0)|0;W=ae(U|0,T|0,V|0,x|0)|0;c[K>>2]=W;K=K+-4|0}while(K>>>0>=D>>>0);if(L){K=D+-4|0;c[K>>2]=L;X=K}else X=D}else X=D;a:do if(C>>>0>X>>>0){K=C;while(1){W=K+-4|0;if(c[W>>2]|0){Y=K;break a}if(W>>>0>X>>>0)K=W;else{Y=W;break}}}else Y=C;while(0);L=(c[m>>2]|0)-s|0;c[m>>2]=L;if((L|0)>0){D=X;C=Y;u=L}else{Z=X;_=Y;$=L;break}}}else{Z=I;_=E;$=S}if(($|0)<0){u=((G+25|0)/9|0)+1|0;C=(r|0)==102;D=Z;L=_;K=$;while(1){W=0-K|0;V=(W|0)<9?W:9;if(D>>>0>>0){W=(1<>>V;U=0;aa=D;do{ba=c[aa>>2]|0;c[aa>>2]=(ba>>>V)+U;U=M(ba&W,T)|0;aa=aa+4|0}while(aa>>>0>>0);aa=(c[D>>2]|0)==0?D+4|0:D;if(!U){ca=L;da=aa}else{c[L>>2]=U;ca=L+4|0;da=aa}}else{ca=L;da=(c[D>>2]|0)==0?D+4|0:D}aa=C?I:da;T=(ca-aa>>2|0)>(u|0)?aa+(u<<2)|0:ca;K=(c[m>>2]|0)+V|0;c[m>>2]=K;if((K|0)>=0){ea=da;fa=T;break}else{D=da;L=T}}}else{ea=Z;fa=_}if(ea>>>0>>0){L=(A-ea>>2)*9|0;D=c[ea>>2]|0;if(D>>>0<10)ga=L;else{K=L;L=10;while(1){L=L*10|0;u=K+1|0;if(D>>>0>>0){ga=u;break}else K=u}}}else ga=0;K=(r|0)==103;L=(G|0)!=0;D=G-((r|0)==102?0:ga)+((L&K)<<31>>31)|0;if((D|0)<(((fa-A>>2)*9|0)+-9|0)){u=D+9216|0;D=(u|0)/9|0;C=I+4+(D+-1024<<2)|0;E=u-(D*9|0)|0;if((E|0)<8){D=E;E=10;while(1){u=E*10|0;if((D|0)<7){D=D+1|0;E=u}else{ha=u;break}}}else ha=10;E=c[C>>2]|0;D=(E>>>0)/(ha>>>0)|0;r=E-(M(D,ha)|0)|0;u=(C+4|0)==(fa|0);if(!(u&(r|0)==0)){t=(D&1|0)==0?9007199254740992.0:9007199254740994.0;D=ha>>>1;J=r>>>0>>0?.5:u&(r|0)==(D|0)?1.0:1.5;if(!w){ia=J;ja=t}else{D=(a[y>>0]|0)==45;ia=D?-J:J;ja=D?-t:t}D=E-r|0;c[C>>2]=D;if(ja+ia!=ja){r=D+ha|0;c[C>>2]=r;if(r>>>0>999999999){r=C;D=ea;while(1){E=r+-4|0;c[r>>2]=0;if(E>>>0>>0){u=D+-4|0;c[u>>2]=0;ka=u}else ka=D;u=(c[E>>2]|0)+1|0;c[E>>2]=u;if(u>>>0>999999999){r=E;D=ka}else{la=E;ma=ka;break}}}else{la=C;ma=ea}D=(A-ma>>2)*9|0;r=c[ma>>2]|0;if(r>>>0<10){na=la;oa=D;pa=ma}else{E=D;D=10;while(1){D=D*10|0;u=E+1|0;if(r>>>0>>0){na=la;oa=u;pa=ma;break}else E=u}}}else{na=C;oa=ga;pa=ea}}else{na=C;oa=ga;pa=ea}E=na+4|0;qa=oa;ra=fa>>>0>E>>>0?E:fa;sa=pa}else{qa=ga;ra=fa;sa=ea}E=0-qa|0;b:do if(ra>>>0>sa>>>0){D=ra;while(1){r=D+-4|0;if(c[r>>2]|0){ta=D;ua=1;break b}if(r>>>0>sa>>>0)D=r;else{ta=r;ua=0;break}}}else{ta=ra;ua=0}while(0);do if(K){C=G+((L^1)&1)|0;if((C|0)>(qa|0)&(qa|0)>-5){va=i+-1|0;wa=C+-1-qa|0}else{va=i+-2|0;wa=C+-1|0}if(!(h&8)){if(ua?(C=c[ta+-4>>2]|0,(C|0)!=0):0)if(!((C>>>0)%10|0)){D=0;V=10;while(1){V=V*10|0;U=D+1|0;if((C>>>0)%(V>>>0)|0|0){xa=U;break}else D=U}}else xa=0;else xa=9;D=((ta-A>>2)*9|0)+-9|0;if((va|32|0)==102){V=D-xa|0;C=(V|0)>0?V:0;ya=va;za=(wa|0)<(C|0)?wa:C;break}else{C=D+qa-xa|0;D=(C|0)>0?C:0;ya=va;za=(wa|0)<(D|0)?wa:D;break}}else{ya=va;za=wa}}else{ya=i;za=G}while(0);G=(za|0)!=0;A=G?1:h>>>3&1;L=(ya|32|0)==102;if(L){Aa=0;Ba=(qa|0)>0?qa:0}else{K=(qa|0)<0?E:qa;D=xc(K,((K|0)<0)<<31>>31,q)|0;K=q;if((K-D|0)<2){C=D;while(1){V=C+-1|0;a[V>>0]=48;if((K-V|0)<2)C=V;else{Ca=V;break}}}else Ca=D;a[Ca+-1>>0]=(qa>>31&2)+43;C=Ca+-2|0;a[C>>0]=ya;Aa=C;Ba=K-C|0}C=w+1+za+A+Ba|0;Ac(b,32,f,C,h);sc(b,y,w);Ac(b,48,f,C,h^65536);if(L){E=sa>>>0>I>>>0?I:sa;V=n+9|0;U=V;r=n+8|0;u=E;do{T=xc(c[u>>2]|0,0,V)|0;if((u|0)==(E|0))if((T|0)==(V|0)){a[r>>0]=48;Da=r}else Da=T;else if(T>>>0>n>>>0){ie(n|0,48,T-o|0)|0;aa=T;while(1){W=aa+-1|0;if(W>>>0>n>>>0)aa=W;else{Da=W;break}}}else Da=T;sc(b,Da,U-Da|0);u=u+4|0}while(u>>>0<=I>>>0);if(!((h&8|0)==0&(G^1)))sc(b,13317,1);if(u>>>0>>0&(za|0)>0){I=za;U=u;while(1){r=xc(c[U>>2]|0,0,V)|0;if(r>>>0>n>>>0){ie(n|0,48,r-o|0)|0;E=r;while(1){L=E+-1|0;if(L>>>0>n>>>0)E=L;else{Ea=L;break}}}else Ea=r;sc(b,Ea,(I|0)<9?I:9);U=U+4|0;E=I+-9|0;if(!(U>>>0>>0&(I|0)>9)){Fa=E;break}else I=E}}else Fa=za;Ac(b,48,Fa+9|0,9,0)}else{I=ua?ta:sa+4|0;if(sa>>>0>>0&(za|0)>-1){U=n+9|0;V=(h&8|0)==0;u=U;G=0-o|0;E=n+8|0;T=za;L=sa;while(1){A=xc(c[L>>2]|0,0,U)|0;if((A|0)==(U|0)){a[E>>0]=48;Ga=E}else Ga=A;do if((L|0)==(sa|0)){A=Ga+1|0;sc(b,Ga,1);if(V&(T|0)<1){Ha=A;break}sc(b,13317,1);Ha=A}else{if(Ga>>>0<=n>>>0){Ha=Ga;break}ie(n|0,48,Ga+G|0)|0;A=Ga;while(1){K=A+-1|0;if(K>>>0>n>>>0)A=K;else{Ha=K;break}}}while(0);r=u-Ha|0;sc(b,Ha,(T|0)>(r|0)?r:T);A=T-r|0;L=L+4|0;if(!(L>>>0>>0&(A|0)>-1)){Ia=A;break}else T=A}}else Ia=za;Ac(b,48,Ia+18|0,18,0);sc(b,Aa,q-Aa|0)}Ac(b,32,f,C,h^8192);B=C}while(0);k=j;return ((B|0)<(f|0)?f:B)|0}function Dc(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;x=c[j+4>>2]|0;return b|0}function Ec(a,b){a=+a;b=b|0;return +(+Fc(a,b))}function Fc(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,k=0,l=0.0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=ee(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){g=+Fc(a*18446744073709551616.0,b);i=g;k=(c[b>>2]|0)+-64|0}else{i=a;k=0}c[b>>2]=k;l=i;break}case 2047:{l=a;break}default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;l=+h[j>>3]}}return +l}function Gc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(!(c[c[(Hc()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break}else{c[(ec()|0)>>2]=84;f=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(ec()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function Hc(){return Ic()|0}function Ic(){return 3268}function Jc(){return Ic()|0}function Kc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=0;while(1){if((d[816+f>>0]|0)==(b|0)){g=4;break}h=f+1|0;if((h|0)==87){i=87;g=5;break}else f=h}if((g|0)==4)if(!f)j=912;else{i=f;g=5}if((g|0)==5){g=912;f=i;while(1){i=g;do{b=i;i=i+1|0}while((a[b>>0]|0)!=0);f=f+-1|0;if(!f){j=i;break}else g=i}}return Lc(j,c[e+20>>2]|0)|0}function Lc(a,b){a=a|0;b=b|0;return Mc(a,b)|0}function Mc(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=Nc(c[b>>2]|0,c[b+4>>2]|0,a)|0;return ((d|0)==0?a:d)|0}function Nc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=(c[b>>2]|0)+1794895138|0;g=Oc(c[b+8>>2]|0,f)|0;h=Oc(c[b+12>>2]|0,f)|0;i=Oc(c[b+16>>2]|0,f)|0;a:do if((g>>>0>>2>>>0?(j=d-(g<<2)|0,h>>>0>>0&i>>>0>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=Oc(c[b+(q<<2)>>2]|0,f)|0;s=Oc(c[b+(q+1<<2)>>2]|0,f)|0;if(!(s>>>0>>0&r>>>0<(d-s|0)>>>0)){t=0;break a}if(a[b+(s+r)>>0]|0){t=0;break a}r=ic(e,b+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}l=s?l:o;m=s?n:m-n|0}m=p+k|0;l=Oc(c[b+(m<<2)>>2]|0,f)|0;j=Oc(c[b+(m+1<<2)>>2]|0,f)|0;if(j>>>0>>0&l>>>0<(d-j|0)>>>0)t=(a[b+(j+l)>>0]|0)==0?b+j|0:0;else t=0}else t=0;while(0);return t|0}function Oc(a,b){a=a|0;b=b|0;var c=0;c=ge(a|0)|0;return ((b|0)==0?a:c)|0}function Pc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Qc(e)|0)){h=c[f>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0>>0){j=ja[c[e+36>>2]&7](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){l=0;m=b;n=d;o=k}else{f=d;while(1){p=f+-1|0;if((a[b+p>>0]|0)==10)break;if(!p){l=0;m=b;n=d;o=k;break b}else f=p}p=ja[c[e+36>>2]&7](e,b,f)|0;if(p>>>0>>0){j=p;break a}l=f;m=b+f|0;n=d-f|0;o=c[g>>2]|0}while(0);he(o|0,m|0,n|0)|0;c[g>>2]=(c[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function Qc(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function Rc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+20|0;f=c[e>>2]|0;g=(c[a+16>>2]|0)-f|0;a=g>>>0>d>>>0?d:g;he(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function Sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0;e=c[a+4>>2]|0;f=d-e|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=e+b;else c[a+100>>2]=d;return}function Tc(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=b+104|0;f=c[e>>2]|0;if((f|0)!=0?(c[b+108>>2]|0)>=(f|0):0)g=4;else{f=Vc(b)|0;if((f|0)>=0){h=c[e>>2]|0;e=c[b+8>>2]|0;if(h){i=c[b+4>>2]|0;j=h-(c[b+108>>2]|0)|0;h=e;if((e-i|0)<(j|0)){k=h;g=9}else{c[b+100>>2]=i+(j+-1);l=h}}else{k=e;g=9}if((g|0)==9){c[b+100>>2]=e;l=k}k=b+4|0;if(!l)m=c[k>>2]|0;else{e=c[k>>2]|0;k=b+108|0;c[k>>2]=l+1-e+(c[k>>2]|0);m=e}e=m+-1|0;if((f|0)==(d[e>>0]|0|0))n=f;else{a[e>>0]=f;n=f}}else g=4}if((g|0)==4){c[b+100>>2]=0;n=-1}return n|0}function Uc(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Vc(a){a=a|0;var b=0,e=0,f=0;b=k;k=k+16|0;e=b;if((Wc(a)|0)==0?(ja[c[a+32>>2]&7](a,e,1)|0)==1:0)f=d[e>>0]|0;else f=-1;k=b;return f|0}function Wc(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=b+20|0;d=b+28|0;if((c[e>>2]|0)>>>0>(c[d>>2]|0)>>>0)ja[c[b+36>>2]&7](b,0,0)|0;c[b+16>>2]=0;c[d>>2]=0;c[e>>2]=0;e=c[b>>2]|0;if(!(e&4)){d=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=d;c[b+4>>2]=d;f=e<<27>>31}else{c[b>>2]=e|32;f=-1}return f|0}function Xc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0;g=k;k=k+16|0;h=g;a:do if(!e)i=0;else{do if(f|0){j=(b|0)==0?h:b;l=a[e>>0]|0;if(l<<24>>24>-1){c[j>>2]=l&255;i=l<<24>>24!=0&1;break a}l=(c[c[(Yc()|0)+188>>2]>>2]|0)==0;m=a[e>>0]|0;if(l){c[j>>2]=m<<24>>24&57343;i=1;break a}l=(m&255)+-194|0;if(l>>>0<=50){m=e+1|0;n=c[128+(l<<2)>>2]|0;if(f>>>0<4?n&-2147483648>>>((f*6|0)+-6|0)|0:0)break;l=d[m>>0]|0;m=l>>>3;if((m+-16|m+(n>>26))>>>0<=7){m=l+-128|n<<6;if((m|0)>=0){c[j>>2]=m;i=2;break a}n=(d[e+2>>0]|0)+-128|0;if(n>>>0<=63){l=n|m<<6;if((l|0)>=0){c[j>>2]=l;i=3;break a}m=(d[e+3>>0]|0)+-128|0;if(m>>>0<=63){c[j>>2]=m|l<<6;i=4;break a}}}}}while(0);c[(ec()|0)>>2]=84;i=-1}while(0);k=g;return i|0}function Yc(){return Ic()|0}function Zc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b;a:do if(!(d&3)){e=b;f=5}else{g=b;h=d;while(1){if(!(a[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){e=j;f=5;break}else g=j}}while(0);if((f|0)==5){f=e;while(1){k=c[f>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))f=f+4|0;else break}if(!((k&255)<<24>>24))l=f;else{k=f;while(1){f=k+1|0;if(!(a[f>>0]|0)){l=f;break}else k=f}}i=l}return i-d|0}function _c(a){a=a|0;return (a+-65|0)>>>0<26|0}function $c(a){a=a|0;var b=0;b=(_c(a)|0)==0;return (b?a:a|32)|0}function ad(b,d){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;e=d&255;a:do if(!e)f=b+(Zc(b)|0)|0;else{if(!(b&3))g=b;else{h=d&255;i=b;while(1){j=a[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){f=i;break a}j=i+1|0;if(!(j&3)){g=j;break}else i=j}}i=M(e,16843009)|0;h=c[g>>2]|0;b:do if(!((h&-2139062144^-2139062144)&h+-16843009)){j=g;k=h;while(1){l=k^i;if((l&-2139062144^-2139062144)&l+-16843009|0){m=j;break b}l=j+4|0;k=c[l>>2]|0;if((k&-2139062144^-2139062144)&k+-16843009|0){m=l;break}else j=l}}else m=g;while(0);i=d&255;h=m;while(1){j=a[h>>0]|0;if(j<<24>>24==0?1:j<<24>>24==i<<24>>24){f=h;break}else h=h+1|0}}while(0);return f|0}function bd(a,b){a=a|0;b=b|0;cd(a,b)|0;return a|0}function cd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=d;a:do if(!((e^b)&3)){if(!(e&3)){f=d;g=b}else{h=d;i=b;while(1){j=a[h>>0]|0;a[i>>0]=j;if(!(j<<24>>24)){k=i;break a}j=h+1|0;l=i+1|0;if(!(j&3)){f=j;g=l;break}else{h=j;i=l}}}i=c[f>>2]|0;if(!((i&-2139062144^-2139062144)&i+-16843009)){h=g;l=f;j=i;while(1){i=l+4|0;m=h+4|0;c[h>>2]=j;j=c[i>>2]|0;if((j&-2139062144^-2139062144)&j+-16843009|0){n=i;o=m;break}else{h=m;l=i}}}else{n=f;o=g}p=n;q=o;r=10}else{p=d;q=b;r=10}while(0);if((r|0)==10){r=a[p>>0]|0;a[q>>0]=r;if(!(r<<24>>24))k=q;else{r=q;q=p;while(1){q=q+1|0;p=r+1|0;b=a[q>>0]|0;a[p>>0]=b;if(!(b<<24>>24)){k=p;break}else r=p}}}return k|0}function dd(b,c){b=b|0;c=c|0;var d=0;d=ad(b,c)|0;return ((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function ed(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!e)f=0;else{g=a[b>>0]|0;a:do if(!(g<<24>>24)){h=c;i=0}else{j=b;k=e;l=c;m=g;n=g&255;while(1){k=k+-1|0;o=a[l>>0]|0;if(!((k|0)!=0&o<<24>>24!=0)){h=l;i=m;break a}if(m<<24>>24!=o<<24>>24?(o=$c(n)|0,(o|0)!=($c(d[l>>0]|0)|0)):0)break;o=j+1|0;p=l+1|0;q=a[o>>0]|0;if(!(q<<24>>24)){h=p;i=0;break a}else{j=o;l=p;m=q;n=q&255}}h=l;i=a[j>>0]|0}while(0);g=$c(i&255)|0;f=g-($c(d[h>>0]|0)|0)|0}return f|0}function fd(a){a=a|0;return Mc(a,c[(c[(gd()|0)+188>>2]|0)+20>>2]|0)|0}function gd(){return Ic()|0}function hd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[721]|0;g=fd(b)|0;id(f);if(((jd(a,f)|0)>-1?kd(g,Zc(g)|0,1,f)|0:0)?(kd(d,1,e,f)|0)==(e|0):0)ld(10,f)|0;md(f);return}function id(a){a=a|0;var b=0,d=0,e=0;if(qd(a)|0){b=a+76|0;d=a+80|0;do{e=c[b>>2]|0;if(e|0)da(b|0,d|0,e|0,1)}while((qd(a)|0)!=0)}return}function jd(a,b){a=a|0;b=b|0;var c=0;c=Zc(a)|0;return ((kd(a,1,c,b)|0)!=(c|0))<<31>>31|0}function kd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=M(d,b)|0;g=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){d=(qc(e)|0)==0;h=Pc(a,f,e)|0;if(d)i=h;else{rc(e);i=h}}else i=Pc(a,f,e)|0;if((i|0)==(f|0))j=g;else j=(i>>>0)/(b>>>0)|0;return j|0}function ld(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((c[d+76>>2]|0)>=0?(qc(d)|0)!=0:0){e=b&255;f=b&255;if((f|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=e;i=f}else i=pd(d,b)|0;rc(d);j=i}else k=3;do if((k|0)==3){i=b&255;f=b&255;if((f|0)!=(a[d+75>>0]|0)?(e=d+20|0,h=c[e>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[e>>2]=h+1;a[h>>0]=i;j=f;break}j=pd(d,b)|0}while(0);return j|0}function md(a){a=a|0;var b=0,d=0;b=a+68|0;d=c[b>>2]|0;if((d|0)==1){nd(a);c[b>>2]=0;rc(a)}else c[b>>2]=d+-1;return}function nd(a){a=a|0;var b=0,d=0,e=0;if(c[a+68>>2]|0){b=c[a+116>>2]|0;d=a+112|0;if(b|0)c[b+112>>2]=c[d>>2];a=c[d>>2]|0;if(!a)e=(od()|0)+232|0;else e=a+116|0;c[e>>2]=b}return}function od(){return Ic()|0}function pd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;f=k;k=k+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j)if(!(Qc(b)|0)){l=c[i>>2]|0;m=4}else n=-1;else{l=j;m=4}do if((m|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[j>>2]=i+1;a[i>>0]=h;n=o;break}if((ja[c[b+36>>2]&7](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);k=f;return n|0}function qd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=od()|0;d=c[b+52>>2]|0;e=a+76|0;if((c[e>>2]|0)==(d|0)){f=a+68|0;g=c[f>>2]|0;if((g|0)==2147483647)h=-1;else{c[f>>2]=g+1;h=0}}else{if((c[e>>2]|0)<0)c[e>>2]=0;if(!(c[e>>2]|0)){rd(e,d);c[a+68>>2]=1;c[a+112>>2]=0;d=b+232|0;b=c[d>>2]|0;c[a+116>>2]=b;if(b|0)c[b+112>>2]=a;c[d>>2]=a;h=0}else h=-1}return h|0}function rd(a,b){a=a|0;b=b|0;if(!(c[a>>2]|0))c[a>>2]=b;return}function sd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=k;k=k+16|0;g=f+4|0;h=f;i=c[688]|0;if((i|0)==0|0!=0){c[88537]=0;c[688]=1;j=1}else j=i;a:do if((j|0)<(b|0)?(i=c[d+(j<<2)>>2]|0,l=i,(i|0)!=0):0){if((a[i>>0]|0)!=45){if((a[e>>0]|0)!=45){m=-1;break}c[688]=j+1;c[88538]=l;m=1;break}l=i+1|0;switch(a[l>>0]|0){case 0:{m=-1;break a;break}case 45:{if(!(a[i+2>>0]|0)){c[688]=j+1;m=-1;break a}break}default:{}}n=c[88537]|0;if(!n){c[88537]=1;o=l}else o=i+n|0;n=Xc(g,o,4)|0;if((n|0)<0){c[g>>2]=65533;p=1}else p=n;n=c[688]|0;i=c[d+(n<<2)>>2]|0;l=c[88537]|0;q=i+l|0;r=l+p|0;c[88537]=r;if(!(a[i+r>>0]|0)){c[688]=n+1;c[88537]=0}switch(a[e>>0]|0){case 43:case 45:{s=e+1|0;break}default:s=e}c[h>>2]=0;n=0;while(1){r=Xc(h,s+n|0,4)|0;n=((r|0)>1?r:1)+n|0;i=c[h>>2]|0;t=c[g>>2]|0;u=(i|0)==(t|0);if(!r){v=24;break}if(u){w=i;break}}if((v|0)==24)if(u)w=t;else{if(!((a[s>>0]|0)!=58&1!=0)){m=63;break}hd(c[d>>2]|0,13319,q,p);m=63;break}if((a[s+n>>0]|0)==58){i=s+(n+1)|0;do if((a[i>>0]|0)==58){c[88538]=0;r=c[88537]|0;if((a[i>>0]|0)!=58|(r|0)!=0)x=r;else{m=w;break a}}else{if((c[688]|0)<(b|0)){x=c[88537]|0;break}if((a[s>>0]|0)==58){m=58;break a}if(!1){m=63;break a}hd(c[d>>2]|0,13343,q,p);m=63;break a}while(0);q=c[688]|0;c[688]=q+1;c[88538]=(c[d+(q<<2)>>2]|0)+x;c[88537]=0;m=w}else m=w}else m=-1;while(0);k=f;return m|0}function td(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=k;k=k+48|0;f=e+32|0;g=e+16|0;h=e;if(dd(13375,a[d>>0]|0)|0){i=ud(d)|0;c[h>>2]=b;c[h+4>>2]=i|32768;c[h+8>>2]=438;b=dc($(5,h|0)|0)|0;if((b|0)>=0){if(i&524288|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;_(221,g|0)|0}g=vd(b,d)|0;if(!g){c[f>>2]=b;ba(6,f|0)|0;j=0}else j=g}else j=0}else{c[(ec()|0)>>2]=22;j=0}k=e;return j|0}function ud(b){b=b|0;var c=0,d=0,e=0,f=0;c=(dd(b,43)|0)==0;d=a[b>>0]|0;e=c?d<<24>>24!=114&1:2;c=(dd(b,120)|0)==0;f=c?e:e|128;e=(dd(b,101)|0)==0;b=e?f:f|524288;f=d<<24>>24==114?b:b|64;b=d<<24>>24==119?f|512:f;return (d<<24>>24==97?b|1024:b)|0}function vd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;e=k;k=k+64|0;f=e+40|0;g=e+24|0;h=e+16|0;i=e;j=e+56|0;if(dd(13375,a[d>>0]|0)|0){l=Zb(1156)|0;if(!l)m=0;else{ie(l|0,0,124)|0;if(!(dd(d,43)|0))c[l>>2]=(a[d>>0]|0)==114?8:4;if(dd(d,101)|0){c[i>>2]=b;c[i+4>>2]=2;c[i+8>>2]=1;_(221,i|0)|0}if((a[d>>0]|0)==97){c[h>>2]=b;c[h+4>>2]=3;d=_(221,h|0)|0;if(!(d&1024)){c[g>>2]=b;c[g+4>>2]=4;c[g+8>>2]=d|1024;_(221,g|0)|0}g=c[l>>2]|128;c[l>>2]=g;n=g}else n=c[l>>2]|0;c[l+60>>2]=b;c[l+44>>2]=l+132;c[l+48>>2]=1024;g=l+75|0;a[g>>0]=-1;if((n&8|0)==0?(c[f>>2]=b,c[f+4>>2]=21523,c[f+8>>2]=j,(aa(54,f|0)|0)==0):0)a[g>>0]=10;c[l+32>>2]=1;c[l+36>>2]=3;c[l+40>>2]=2;c[l+12>>2]=1;if(!(c[88540]|0))c[l+76>>2]=-1;wd(l)|0;m=l}}else{c[(ec()|0)>>2]=22;m=0}k=e;return m|0}function wd(a){a=a|0;var b=0,d=0;b=xd()|0;c[a+56>>2]=c[b>>2];d=c[b>>2]|0;if(d|0)c[d+52>>2]=a;c[b>>2]=a;yd();return a|0}function xd(){V(354224);return 354232}function yd(){ca(354224);return}function zd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;if((c[a+76>>2]|0)>-1)b=qc(a)|0;else b=0;nd(a);d=(c[a>>2]&1|0)!=0;if(!d){e=xd()|0;f=c[a+52>>2]|0;g=a+56|0;if(f|0)c[f+56>>2]=c[g>>2];h=c[g>>2]|0;if(h|0)c[h+52>>2]=f;if((c[e>>2]|0)==(a|0))c[e>>2]=h;yd()}h=Ad(a)|0;e=ia[c[a+12>>2]&1](a)|0|h;h=c[a+92>>2]|0;if(h|0)_b(h);if(d){if(b|0)rc(a)}else _b(a);return e|0}function Ad(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Bd(a)|0;break}d=(qc(a)|0)==0;e=Bd(a)|0;if(d)b=e;else{rc(a);b=e}}else{if(!(c[785]|0))f=0;else f=Ad(c[785]|0)|0;e=c[(xd()|0)>>2]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=qc(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=Bd(d)|0|e;else i=e;if(h|0)rc(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}yd();b=g}while(0);return b|0}function Bd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(ja[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0>>0)ja[c[a+40>>2]&7](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function Cd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if((c[f+76>>2]|0)>-1)g=qc(f)|0;else g=0;h=e+-1|0;if((e|0)<2){e=f+74|0;i=a[e>>0]|0;a[e>>0]=i+255|i;if(g|0)rc(f);if(!h){a[b>>0]=0;j=b}else j=0}else{a:do if(h){i=f+4|0;e=f+8|0;k=h;l=b;while(1){m=c[i>>2]|0;n=m;o=(c[e>>2]|0)-n|0;p=zc(m,10,o)|0;q=(p|0)==0;r=q?o:1-n+p|0;p=r>>>0>>0?r:k;he(l|0,m|0,p|0)|0;m=(c[i>>2]|0)+p|0;c[i>>2]=m;s=l+p|0;r=k-p|0;if(!(q&(r|0)!=0)){t=s;u=17;break a}if(m>>>0>=(c[e>>2]|0)>>>0){q=Vc(f)|0;if((q|0)<0)break;else v=q}else{c[i>>2]=m+1;v=d[m>>0]|0}m=s+1|0;a[s>>0]=v;k=r+-1|0;if((v&255|0)==10|(k|0)==0){t=m;u=17;break a}else l=m}if((s|0)!=(b|0)?(c[f>>2]&16|0)!=0:0){t=s;u=17}else w=0}else{t=b;u=17}while(0);if((u|0)==17)if(!b)w=0;else{a[t>>0]=0;w=b}if(!g)j=w;else{rc(f);j=w}}return j|0}function Dd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=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;switch(e|0){case 0:{g=-149;h=24;i=4;break}case 1:{g=-1074;h=53;i=4;break}case 2:{g=-1074;h=53;i=4;break}default:j=0.0}a:do if((i|0)==4){e=b+4|0;k=b+100|0;do{l=c[e>>2]|0;if(l>>>0<(c[k>>2]|0)>>>0){c[e>>2]=l+1;m=d[l>>0]|0}else m=Tc(b)|0}while((Uc(m)|0)!=0);b:do switch(m|0){case 43:case 45:{l=1-(((m|0)==45&1)<<1)|0;n=c[e>>2]|0;if(n>>>0<(c[k>>2]|0)>>>0){c[e>>2]=n+1;o=d[n>>0]|0;p=l;break b}else{o=Tc(b)|0;p=l;break b}break}default:{o=m;p=1}}while(0);l=0;n=o;while(1){if((n|32|0)!=(a[13379+l>>0]|0)){s=n;t=l;break}do if(l>>>0<7){u=c[e>>2]|0;if(u>>>0<(c[k>>2]|0)>>>0){c[e>>2]=u+1;v=d[u>>0]|0;break}else{v=Tc(b)|0;break}}else v=n;while(0);l=l+1|0;if(l>>>0>=8){s=v;t=8;break}else n=v}c:do switch(t&2147483647|0){case 8:break;case 3:{i=23;break}default:{n=(f|0)!=0;if(n&t>>>0>3)if((t|0)==8)break c;else{i=23;break c}d:do if(!t){l=0;u=s;while(1){if((u|32|0)!=(a[13388+l>>0]|0)){w=l;x=u;break d}do if(l>>>0<2){y=c[e>>2]|0;if(y>>>0<(c[k>>2]|0)>>>0){c[e>>2]=y+1;z=d[y>>0]|0;break}else{z=Tc(b)|0;break}}else z=u;while(0);l=l+1|0;if(l>>>0>=3){w=3;x=z;break}else u=z}}else{w=t;x=s}while(0);switch(w|0){case 3:{u=c[e>>2]|0;if(u>>>0<(c[k>>2]|0)>>>0){c[e>>2]=u+1;A=d[u>>0]|0}else A=Tc(b)|0;if((A|0)!=40){if(!(c[k>>2]|0)){j=q;break a}c[e>>2]=(c[e>>2]|0)+-1;j=q;break a}u=1;while(1){l=c[e>>2]|0;if(l>>>0<(c[k>>2]|0)>>>0){c[e>>2]=l+1;B=d[l>>0]|0}else B=Tc(b)|0;if(!((B+-48|0)>>>0<10|(B+-65|0)>>>0<26)?!((B|0)==95|(B+-97|0)>>>0<26):0)break;u=u+1|0}if((B|0)==41){j=q;break a}l=(c[k>>2]|0)==0;if(!l)c[e>>2]=(c[e>>2]|0)+-1;if(!n){c[(ec()|0)>>2]=22;Sc(b,0);j=0.0;break a}if(!u){j=q;break a}y=u;while(1){y=y+-1|0;if(!l)c[e>>2]=(c[e>>2]|0)+-1;if(!y){j=q;break a}}break}case 0:{if((x|0)==48){y=c[e>>2]|0;if(y>>>0<(c[k>>2]|0)>>>0){c[e>>2]=y+1;C=d[y>>0]|0}else C=Tc(b)|0;if((C|32|0)==120){j=+Ed(b,h,g,p,f);break a}if(!(c[k>>2]|0))D=48;else{c[e>>2]=(c[e>>2]|0)+-1;D=48}}else D=x;j=+Fd(b,D,h,g,p,f);break a;break}default:{if(c[k>>2]|0)c[e>>2]=(c[e>>2]|0)+-1;c[(ec()|0)>>2]=22;Sc(b,0);j=0.0;break a}}}}while(0);if((i|0)==23){y=(c[k>>2]|0)==0;if(!y)c[e>>2]=(c[e>>2]|0)+-1;if((f|0)!=0&t>>>0>3){l=t;do{if(!y)c[e>>2]=(c[e>>2]|0)+-1;l=l+-1|0}while(l>>>0>3)}}j=+(p|0)*r}while(0);return +j}function Ed(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,y=0.0,z=0,A=0,B=0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0,M=0.0,N=0.0,O=0,P=0,Q=0.0,R=0,S=0,T=0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0.0,aa=0,ba=0.0;h=a+4|0;i=c[h>>2]|0;j=a+100|0;if(i>>>0<(c[j>>2]|0)>>>0){c[h>>2]=i+1;k=d[i>>0]|0}else k=Tc(a)|0;i=k;k=0;a:while(1){switch(i|0){case 46:{l=10;break a;break}case 48:break;default:{m=0;n=i;o=k;p=0;q=0;break a}}r=c[h>>2]|0;if(r>>>0<(c[j>>2]|0)>>>0){c[h>>2]=r+1;s=d[r>>0]|0}else s=Tc(a)|0;i=s;k=1}if((l|0)==10){s=c[h>>2]|0;if(s>>>0<(c[j>>2]|0)>>>0){c[h>>2]=s+1;t=d[s>>0]|0}else t=Tc(a)|0;if((t|0)==48){s=0;i=0;while(1){r=c[h>>2]|0;if(r>>>0<(c[j>>2]|0)>>>0){c[h>>2]=r+1;u=d[r>>0]|0}else u=Tc(a)|0;r=$d(s|0,i|0,-1,-1)|0;v=x;if((u|0)==48){s=r;i=v}else{m=1;n=u;o=1;p=r;q=v;break}}}else{m=1;n=t;o=k;p=0;q=0}}k=0;w=1.0;y=0.0;t=0;u=m;m=n;n=o;o=0;i=0;s=p;p=q;while(1){q=m+-48|0;v=m|32;if(q>>>0>=10){r=(m|0)==46;if(!(r|(v+-97|0)>>>0<6)){z=m;break}if(r)if(!u){A=1;B=k;C=w;D=y;E=t;F=n;G=i;H=o;I=i;J=o}else{z=46;break}else l=24}else l=24;if((l|0)==24){l=0;r=(m|0)>57?v+-87|0:q;do if(!((o|0)<0|(o|0)==0&i>>>0<8))if((o|0)<0|(o|0)==0&i>>>0<14){K=w*.0625;L=k;M=K;N=y+K*+(r|0);O=t;break}else{q=(k|0)!=0|(r|0)==0;L=q?k:1;M=w;N=q?y:y+w*.5;O=t;break}else{L=k;M=w;N=y;O=r+(t<<4)|0}while(0);r=$d(i|0,o|0,1,0)|0;A=u;B=L;C=M;D=N;E=O;F=1;G=s;H=p;I=r;J=x}r=c[h>>2]|0;if(r>>>0<(c[j>>2]|0)>>>0){c[h>>2]=r+1;P=d[r>>0]|0}else P=Tc(a)|0;k=B;w=C;y=D;t=E;u=A;m=P;n=F;o=J;i=I;s=G;p=H}do if(!n){H=(c[j>>2]|0)==0;if(!H)c[h>>2]=(c[h>>2]|0)+-1;if(g){if(!H?(c[h>>2]=(c[h>>2]|0)+-1,!((u|0)==0|H)):0)c[h>>2]=(c[h>>2]|0)+-1}else Sc(a,0);Q=+(f|0)*0.0}else{H=(u|0)==0;G=H?i:s;I=H?o:p;if((o|0)<0|(o|0)==0&i>>>0<8){H=t;J=i;F=o;while(1){P=H<<4;m=J;J=$d(J|0,F|0,1,0)|0;if(!((F|0)<0|(F|0)==0&m>>>0<7)){R=P;break}else{H=P;F=x}}}else R=t;if((z|32|0)==112){F=Gd(a,g)|0;H=x;if((F|0)==0&(H|0)==-2147483648){if(!g){Sc(a,0);Q=0.0;break}if(!(c[j>>2]|0)){S=0;T=0}else{c[h>>2]=(c[h>>2]|0)+-1;S=0;T=0}}else{S=F;T=H}}else if(!(c[j>>2]|0)){S=0;T=0}else{c[h>>2]=(c[h>>2]|0)+-1;S=0;T=0}H=fe(G|0,I|0,2)|0;F=$d(H|0,x|0,-32,-1)|0;H=$d(F|0,x|0,S|0,T|0)|0;F=x;if(!R){Q=+(f|0)*0.0;break}J=0-e|0;P=((J|0)<0)<<31>>31;if((F|0)>(P|0)|(F|0)==(P|0)&H>>>0>J>>>0){c[(ec()|0)>>2]=34;Q=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}J=e+-106|0;P=((J|0)<0)<<31>>31;if((F|0)<(P|0)|(F|0)==(P|0)&H>>>0>>0){c[(ec()|0)>>2]=34;Q=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((R|0)>-1){D=y;J=R;P=H;m=F;while(1){A=!(D>=.5);E=J<<1|(A^1)&1;C=D+(A?D:D+-1.0);A=$d(P|0,m|0,-1,-1)|0;B=x;if((E|0)>-1){D=C;J=E;P=A;m=B}else{U=C;V=E;W=A;X=B;break}}}else{U=y;V=R;W=H;X=F}m=((b|0)<0)<<31>>31;P=ae(32,0,e|0,((e|0)<0)<<31>>31|0)|0;J=$d(P|0,x|0,W|0,X|0)|0;P=x;if((P|0)<(m|0)|(P|0)==(m|0)&J>>>0>>0)if((J|0)>0){Y=J;l=65}else{Z=0;_=84;l=67}else{Y=b;l=65}if((l|0)==65)if((Y|0)<53){Z=Y;_=84-Y|0;l=67}else{$=0.0;aa=Y;ba=+(f|0)}if((l|0)==67){D=+(f|0);$=+Id(+Hd(1.0,_),D);aa=Z;ba=D}J=(V&1|0)==0&(U!=0.0&(aa|0)<32);D=(J?0.0:U)*ba+($+ba*+((V+(J&1)|0)>>>0))-$;if(!(D!=0.0))c[(ec()|0)>>2]=34;Q=+Kd(D,W)}while(0);return +Q}function Fd(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,y=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,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0.0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0.0,fb=0,gb=0.0,hb=0.0,ib=0.0,jb=0.0,kb=0.0,lb=0.0,mb=0.0,nb=0.0,ob=0.0,pb=0.0,qb=0;i=k;k=k+512|0;j=i;l=f+e|0;m=0-l|0;n=a+4|0;o=a+100|0;p=b;b=0;a:while(1){switch(p|0){case 46:{q=7;break a;break}case 48:break;default:{r=0;s=p;t=b;u=0;v=0;break a}}w=c[n>>2]|0;if(w>>>0<(c[o>>2]|0)>>>0){c[n>>2]=w+1;y=d[w>>0]|0}else y=Tc(a)|0;p=y;b=1}if((q|0)==7){y=c[n>>2]|0;if(y>>>0<(c[o>>2]|0)>>>0){c[n>>2]=y+1;A=d[y>>0]|0}else A=Tc(a)|0;if((A|0)==48){y=0;p=0;while(1){w=$d(y|0,p|0,-1,-1)|0;B=x;C=c[n>>2]|0;if(C>>>0<(c[o>>2]|0)>>>0){c[n>>2]=C+1;D=d[C>>0]|0}else D=Tc(a)|0;if((D|0)==48){y=w;p=B}else{r=1;s=D;t=1;u=w;v=B;break}}}else{r=1;s=A;t=b;u=0;v=0}}c[j>>2]=0;b=s+-48|0;A=(s|0)==46;b:do if(A|b>>>0<10){D=j+496|0;p=0;y=0;B=0;w=r;C=t;E=s;F=A;G=b;H=u;I=v;J=0;K=0;c:while(1){do if(F)if(!w){L=p;N=y;O=1;P=B;Q=C;R=J;S=K;T=J;U=K}else break c;else{V=$d(J|0,K|0,1,0)|0;W=x;X=(E|0)!=48;if((y|0)>=125){if(!X){L=p;N=y;O=w;P=B;Q=C;R=H;S=I;T=V;U=W;break}c[D>>2]=c[D>>2]|1;L=p;N=y;O=w;P=B;Q=C;R=H;S=I;T=V;U=W;break}Y=j+(y<<2)|0;if(!p)Z=G;else Z=E+-48+((c[Y>>2]|0)*10|0)|0;c[Y>>2]=Z;Y=p+1|0;_=(Y|0)==9;L=_?0:Y;N=y+(_&1)|0;O=w;P=X?V:B;Q=1;R=H;S=I;T=V;U=W}while(0);W=c[n>>2]|0;if(W>>>0<(c[o>>2]|0)>>>0){c[n>>2]=W+1;$=d[W>>0]|0}else $=Tc(a)|0;G=$+-48|0;F=($|0)==46;if(!(F|G>>>0<10)){aa=L;ba=N;ca=P;da=O;ea=$;fa=Q;ga=R;ha=T;ia=S;ja=U;q=31;break b}else{p=L;y=N;B=P;w=O;C=Q;E=$;H=R;I=S;J=T;K=U}}ka=p;la=y;ma=B;na=J;oa=K;pa=H;qa=I;ra=(C|0)!=0;q=39}else{aa=0;ba=0;ca=0;da=r;ea=s;fa=t;ga=u;ha=0;ia=v;ja=0;q=31}while(0);do if((q|0)==31){v=(da|0)==0;u=v?ha:ga;t=v?ja:ia;v=(fa|0)!=0;if(!(v&(ea|32|0)==101))if((ea|0)>-1){ka=aa;la=ba;ma=ca;na=ha;oa=ja;pa=u;qa=t;ra=v;q=39;break}else{sa=aa;ta=ba;ua=ca;va=ha;wa=ja;xa=v;ya=u;za=t;q=41;break}v=Gd(a,h)|0;s=x;if((v|0)==0&(s|0)==-2147483648){if(!h){Sc(a,0);Aa=0.0;break}if(!(c[o>>2]|0)){Ba=0;Ca=0}else{c[n>>2]=(c[n>>2]|0)+-1;Ba=0;Ca=0}}else{Ba=v;Ca=s}s=$d(Ba|0,Ca|0,u|0,t|0)|0;Da=aa;Ea=ba;Fa=ca;Ga=s;Ha=ha;Ia=x;Ja=ja;q=43}while(0);if((q|0)==39)if(c[o>>2]|0){c[n>>2]=(c[n>>2]|0)+-1;if(ra){Da=ka;Ea=la;Fa=ma;Ga=pa;Ha=na;Ia=qa;Ja=oa;q=43}else q=42}else{sa=ka;ta=la;ua=ma;va=na;wa=oa;xa=ra;ya=pa;za=qa;q=41}if((q|0)==41)if(xa){Da=sa;Ea=ta;Fa=ua;Ga=ya;Ha=va;Ia=za;Ja=wa;q=43}else q=42;do if((q|0)==42){c[(ec()|0)>>2]=22;Sc(a,0);Aa=0.0}else if((q|0)==43){wa=c[j>>2]|0;if(!wa){Aa=+(g|0)*0.0;break}if(((Ja|0)<0|(Ja|0)==0&Ha>>>0<10)&((Ga|0)==(Ha|0)&(Ia|0)==(Ja|0))?(e|0)>30|(wa>>>e|0)==0:0){Aa=+(g|0)*+(wa>>>0);break}wa=(f|0)/-2|0;za=((wa|0)<0)<<31>>31;if((Ia|0)>(za|0)|(Ia|0)==(za|0)&Ga>>>0>wa>>>0){c[(ec()|0)>>2]=34;Aa=+(g|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}wa=f+-106|0;za=((wa|0)<0)<<31>>31;if((Ia|0)<(za|0)|(Ia|0)==(za|0)&Ga>>>0>>0){c[(ec()|0)>>2]=34;Aa=+(g|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(!Da)Ka=Ea;else{if((Da|0)<9){wa=j+(Ea<<2)|0;za=Da;va=c[wa>>2]|0;while(1){va=va*10|0;if((za|0)>=8)break;else za=za+1|0}c[wa>>2]=va}Ka=Ea+1|0}if((Fa|0)<9?(Fa|0)<=(Ga|0)&(Ga|0)<18:0){if((Ga|0)==9){Aa=+(g|0)*+((c[j>>2]|0)>>>0);break}if((Ga|0)<9){Aa=+(g|0)*+((c[j>>2]|0)>>>0)/+(c[2720+(8-Ga<<2)>>2]|0);break}za=e+27+(M(Ga,-3)|0)|0;C=c[j>>2]|0;if((za|0)>30|(C>>>za|0)==0){Aa=+(g|0)*+(C>>>0)*+(c[2720+(Ga+-10<<2)>>2]|0);break}}C=(Ga|0)%9|0;if(!C){La=Ka;Ma=0;Na=Ga}else{za=(Ga|0)>-1?C:C+9|0;C=c[2720+(8-za<<2)>>2]|0;if(Ka){I=1e9/(C|0)|0;H=0;K=0;J=Ga;B=0;do{y=j+(B<<2)|0;p=c[y>>2]|0;ya=(p>>>0)/(C>>>0)|0;ua=p-(M(ya,C)|0)|0;p=ya+H|0;c[y>>2]=p;H=M(I,ua)|0;ua=(B|0)==(K|0)&(p|0)==0;J=ua?J+-9|0:J;K=ua?K+1&127:K;B=B+1|0}while((B|0)!=(Ka|0));if(!H){Oa=K;Pa=Ka;Qa=J}else{c[j+(Ka<<2)>>2]=H;Oa=K;Pa=Ka+1|0;Qa=J}}else{Oa=0;Pa=0;Qa=Ga}La=Pa;Ma=Oa;Na=9-za+Qa|0}B=0;I=La;C=Ma;va=Na;d:while(1){wa=(va|0)<18;ua=(va|0)==18;p=j+(C<<2)|0;Ra=B;Sa=I;while(1){if(!wa){if(!ua){Ta=va;break d}if((c[p>>2]|0)>>>0>=9007199){Ta=18;break d}}y=0;Ua=Sa;ya=Sa+127|0;while(1){ta=ya&127;sa=j+(ta<<2)|0;xa=fe(c[sa>>2]|0,0,29)|0;qa=$d(xa|0,x|0,y|0,0)|0;xa=x;if(xa>>>0>0|(xa|0)==0&qa>>>0>1e9){pa=de(qa|0,xa|0,1e9,0)|0;ra=_d(pa|0,x|0,1e9,0)|0;oa=ae(qa|0,xa|0,ra|0,x|0)|0;Va=pa;Wa=oa}else{Va=0;Wa=qa}c[sa>>2]=Wa;sa=(ta|0)==(C|0);Xa=(ta|0)!=(Ua+127&127|0)|sa?Ua:(Wa|0)==0?ta:Ua;if(sa)break;else{y=Va;Ua=Xa;ya=ta+-1|0}}Ya=Ra+-29|0;if(!Va){Ra=Ya;Sa=Ua}else break}p=C+127&127;ua=Xa+127&127;wa=j+((Xa+126&127)<<2)|0;if((p|0)==(Xa|0)){c[wa>>2]=c[wa>>2]|c[j+(ua<<2)>>2];Za=ua}else Za=Ua;c[j+(p<<2)>>2]=Va;B=Ya;I=Za;C=p;va=va+9|0}va=Ra;I=C;B=Ta;za=Sa;e:while(1){J=za+1&127;K=j+((za+127&127)<<2)|0;H=va;p=I;ua=B;while(1){wa=(ua|0)==18;ya=(ua|0)>27?9:1;_a=H;$a=p;while(1){y=0;while(1){ta=y+$a&127;if((ta|0)==(za|0)){q=92;break}sa=c[j+(ta<<2)>>2]|0;ta=c[3512+(y<<2)>>2]|0;if(sa>>>0>>0){q=92;break}if(sa>>>0>ta>>>0)break;if((y+1|0)>>>0<2)y=1;else{q=92;break}}if((q|0)==92?(q=0,wa):0)break e;ab=ya+_a|0;if(($a|0)==(za|0)){_a=ab;$a=za}else break}wa=(1<>>ya;bb=0;cb=$a;db=ua;ta=$a;do{sa=j+(ta<<2)|0;qa=c[sa>>2]|0;oa=(qa>>>ya)+bb|0;c[sa>>2]=oa;bb=M(qa&wa,y)|0;qa=(ta|0)==(cb|0)&(oa|0)==0;db=qa?db+-9|0:db;cb=qa?cb+1&127:cb;ta=ta+1&127}while((ta|0)!=(za|0));if(bb|0){if((J|0)!=(cb|0))break;c[K>>2]=c[K>>2]|1}H=ab;p=cb;ua=db}c[j+(za<<2)>>2]=bb;va=ab;I=cb;B=db;za=J}eb=0.0;B=za;I=0;while(1){va=I+$a&127;C=B+1&127;if((va|0)==(B|0)){c[j+(C+-1<<2)>>2]=0;fb=C}else fb=B;eb=eb*1.0e9+ +((c[j+(va<<2)>>2]|0)>>>0);I=I+1|0;if((I|0)==2)break;else B=fb}gb=+(g|0);hb=eb*gb;B=_a+53|0;I=B-f|0;za=(I|0)<(e|0);va=za?((I|0)>0?I:0):e;if((va|0)<53){ib=+Id(+Hd(1.0,105-va|0),hb);jb=+Jd(hb,+Hd(1.0,53-va|0));kb=ib;lb=jb;mb=ib+(hb-jb)}else{kb=0.0;lb=0.0;mb=hb}C=$a+2&127;if((C|0)!=(fb|0)){ua=c[j+(C<<2)>>2]|0;do if(ua>>>0>=5e8){if((ua|0)!=5e8){nb=gb*.75+lb;break}if(($a+3&127|0)==(fb|0)){nb=gb*.5+lb;break}else{nb=gb*.75+lb;break}}else{if((ua|0)==0?($a+3&127|0)==(fb|0):0){nb=lb;break}nb=gb*.25+lb}while(0);if((53-va|0)>1?!(+Jd(nb,1.0)!=0.0):0)ob=nb+1.0;else ob=nb}else ob=lb;gb=mb+ob-kb;do if((B&2147483647|0)>(-2-l|0)){ua=!(+z(+gb)>=9007199254740992.0);C=_a+((ua^1)&1)|0;eb=ua?gb:gb*.5;if((C+50|0)<=(m|0)?!(ob!=0.0&(za&((va|0)!=(I|0)|ua))):0){pb=eb;qb=C;break}c[(ec()|0)>>2]=34;pb=eb;qb=C}else{pb=gb;qb=_a}while(0);Aa=+Kd(pb,qb)}while(0);k=i;return +Aa}function Gd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=a+4|0;f=c[e>>2]|0;g=a+100|0;if(f>>>0<(c[g>>2]|0)>>>0){c[e>>2]=f+1;h=d[f>>0]|0}else h=Tc(a)|0;switch(h|0){case 43:case 45:{f=(h|0)==45&1;i=c[e>>2]|0;if(i>>>0<(c[g>>2]|0)>>>0){c[e>>2]=i+1;j=d[i>>0]|0}else j=Tc(a)|0;i=j+-48|0;if((b|0)!=0&i>>>0>9)if(!(c[g>>2]|0)){k=0;l=-2147483648}else{c[e>>2]=(c[e>>2]|0)+-1;m=14}else{n=f;o=j;p=i;m=12}break}default:{n=0;o=h;p=h+-48|0;m=12}}if((m|0)==12)if(p>>>0>9)m=14;else{p=0;h=o;while(1){p=h+-48+(p*10|0)|0;o=c[e>>2]|0;if(o>>>0<(c[g>>2]|0)>>>0){c[e>>2]=o+1;q=d[o>>0]|0}else q=Tc(a)|0;r=q+-48|0;if(!(r>>>0<10&(p|0)<214748364))break;else h=q}h=((p|0)<0)<<31>>31;if(r>>>0<10){r=q;q=p;o=h;while(1){i=_d(q|0,o|0,10,0)|0;j=x;f=$d(r|0,((r|0)<0)<<31>>31|0,-48,-1)|0;q=$d(f|0,x|0,i|0,j|0)|0;o=x;j=c[e>>2]|0;if(j>>>0<(c[g>>2]|0)>>>0){c[e>>2]=j+1;s=d[j>>0]|0}else s=Tc(a)|0;t=s+-48|0;if(!(t>>>0<10&((o|0)<21474836|(o|0)==21474836&q>>>0<2061584302)))break;else r=s}if(t>>>0<10){do{t=c[e>>2]|0;if(t>>>0<(c[g>>2]|0)>>>0){c[e>>2]=t+1;u=d[t>>0]|0}else u=Tc(a)|0}while((u+-48|0)>>>0<10);v=q;w=o}else{v=q;w=o}}else{v=p;w=h}if(c[g>>2]|0)c[e>>2]=(c[e>>2]|0)+-1;h=(n|0)==0;n=ae(0,0,v|0,w|0)|0;k=h?v:n;l=h?w:x}if((m|0)==14)if(!(c[g>>2]|0)){k=0;l=-2147483648}else{c[e>>2]=(c[e>>2]|0)+-1;k=0;l=-2147483648}x=l;return k|0}function Hd(a,b){a=+a;b=b|0;var d=0.0,e=0,f=0,g=0.0,i=0;if((b|0)<=1023)if((b|0)<-1022){d=a*2.2250738585072014e-308;e=(b|0)<-2044;f=b+2044|0;g=e?d*2.2250738585072014e-308:d;i=e?((f|0)>-1022?f:-1022):b+1022|0}else{g=a;i=b}else{d=a*8988465674311579538646525.0e283;f=(b|0)>2046;e=b+-2046|0;g=f?d*8988465674311579538646525.0e283:d;i=f?((e|0)<1023?e:1023):b+-1023|0}b=fe(i+1023|0,0,52)|0;i=x;c[j>>2]=b;c[j+4>>2]=i;return +(g*+h[j>>3])}function Id(a,b){a=+a;b=+b;return +(+Nd(a,b))}function Jd(a,b){a=+a;b=+b;return +(+Ld(a,b))}function Kd(a,b){a=+a;b=b|0;return +(+Hd(a,b))}function Ld(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;h[j>>3]=b;f=c[j>>2]|0;g=c[j+4>>2]|0;i=ee(d|0,e|0,52)|0;k=i&2047;i=ee(f|0,g|0,52)|0;l=i&2047;i=e&-2147483648;m=fe(f|0,g|0,1)|0;n=x;a:do if(!((m|0)==0&(n|0)==0)?(o=Md(b)|0,p=x&2147483647,!((k|0)==2047|(p>>>0>2146435072|(p|0)==2146435072&o>>>0>0))):0){o=fe(d|0,e|0,1)|0;p=x;if(!(p>>>0>n>>>0|(p|0)==(n|0)&o>>>0>m>>>0))return +((o|0)==(m|0)&(p|0)==(n|0)?a*0.0:a);if(!k){p=fe(d|0,e|0,12)|0;o=x;if((o|0)>-1|(o|0)==-1&p>>>0>4294967295){q=0;r=p;p=o;while(1){o=q+-1|0;r=fe(r|0,p|0,1)|0;p=x;if(!((p|0)>-1|(p|0)==-1&r>>>0>4294967295)){s=o;break}else q=o}}else s=0;q=fe(d|0,e|0,1-s|0)|0;t=s;u=q;v=x}else{t=k;u=d;v=e&1048575|1048576}if(!l){q=fe(f|0,g|0,12)|0;r=x;if((r|0)>-1|(r|0)==-1&q>>>0>4294967295){p=0;o=q;q=r;while(1){r=p+-1|0;o=fe(o|0,q|0,1)|0;q=x;if(!((q|0)>-1|(q|0)==-1&o>>>0>4294967295)){w=r;break}else p=r}}else w=0;p=fe(f|0,g|0,1-w|0)|0;y=w;z=p;A=x}else{y=l;z=f;A=g&1048575|1048576}p=ae(u|0,v|0,z|0,A|0)|0;o=x;q=(o|0)>-1|(o|0)==-1&p>>>0>4294967295;b:do if((t|0)>(y|0)){r=t;B=o;C=q;D=u;E=v;F=p;while(1){if(C)if((F|0)==0&(B|0)==0)break;else{G=F;H=B}else{G=D;H=E}I=fe(G|0,H|0,1)|0;J=x;K=r+-1|0;L=ae(I|0,J|0,z|0,A|0)|0;M=x;N=(M|0)>-1|(M|0)==-1&L>>>0>4294967295;if((K|0)>(y|0)){r=K;B=M;C=N;D=I;E=J;F=L}else{O=K;P=N;Q=L;R=M;S=I;T=J;break b}}U=a*0.0;break a}else{O=t;P=q;Q=p;R=o;S=u;T=v}while(0);if(P)if((Q|0)==0&(R|0)==0){U=a*0.0;break}else{V=R;W=Q}else{V=T;W=S}if(V>>>0<1048576|(V|0)==1048576&W>>>0<0){o=O;p=W;q=V;while(1){F=fe(p|0,q|0,1)|0;E=x;D=o+-1|0;if(E>>>0<1048576|(E|0)==1048576&F>>>0<0){o=D;p=F;q=E}else{X=D;Y=F;Z=E;break}}}else{X=O;Y=W;Z=V}if((X|0)>0){q=$d(Y|0,Z|0,0,-1048576)|0;p=x;o=fe(X|0,0,52)|0;_=p|x;$=q|o}else{o=ee(Y|0,Z|0,1-X|0)|0;_=x;$=o}c[j>>2]=$;c[j+4>>2]=_|i;U=+h[j>>3]}else aa=3;while(0);if((aa|0)==3){ba=a*b;U=ba/ba}return +U}function Md(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;x=c[j+4>>2]|0;return b|0}function Nd(a,b){a=+a;b=+b;var d=0,e=0,f=0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;h[j>>3]=b;f=c[j+4>>2]&-2147483648|e&2147483647;c[j>>2]=d;c[j+4>>2]=f;return +(+h[j>>3])}function Od(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=k;k=k+16|0;f=e;c[f>>2]=d;d=oc(a,b,f)|0;k=e;return d|0}function Pd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;e=k;k=k+32|0;f=e;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;g=a[d>>0]|0;do if(!(g<<24>>24))h=0;else{if(!(a[d+1>>0]|0)){i=b;while(1)if((a[i>>0]|0)==g<<24>>24)i=i+1|0;else break;h=i-b|0;break}j=d;l=g;do{m=l&255;n=f+(m>>>5<<2)|0;c[n>>2]=c[n>>2]|1<<(m&31);j=j+1|0;l=a[j>>0]|0}while(l<<24>>24!=0);l=a[b>>0]|0;a:do if(!(l<<24>>24))o=b;else{j=b;i=l;while(1){m=i&255;if(!(c[f+(m>>>5<<2)>>2]&1<<(m&31))){o=j;break a}m=j+1|0;i=a[m>>0]|0;if(!(i<<24>>24)){o=m;break}else j=m}}while(0);h=o-b|0}while(0);k=e;return h|0}function Qd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;e=k;k=k+32|0;f=e;g=a[d>>0]|0;a:do if(g<<24>>24!=0?(a[d+1>>0]|0)!=0:0){ie(f|0,0,32)|0;h=a[d>>0]|0;if(h<<24>>24){i=d;j=h;do{h=j&255;l=f+(h>>>5<<2)|0;c[l>>2]=c[l>>2]|1<<(h&31);i=i+1|0;j=a[i>>0]|0}while(j<<24>>24!=0)}j=a[b>>0]|0;if(!(j<<24>>24))m=b;else{i=b;h=j;while(1){j=h&255;if(c[f+(j>>>5<<2)>>2]&1<<(j&31)|0){m=i;break a}j=i+1|0;h=a[j>>0]|0;if(!(h<<24>>24)){m=j;break}else i=j}}}else n=3;while(0);if((n|0)==3)m=ad(b,g<<24>>24)|0;k=e;return m-b|0}function Rd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(!b){e=c[88559]|0;if(!e)f=0;else{g=e;h=3}}else{g=b;h=3}do if((h|0)==3){b=g+(Pd(g,d)|0)|0;if(!(a[b>>0]|0)){c[88559]=0;f=0;break}e=b+(Qd(b,d)|0)|0;c[88559]=e;if(!(a[e>>0]|0)){c[88559]=0;f=b;break}else{c[88559]=e+1;a[e>>0]=0;f=b;break}}while(0);return f|0}function Sd(a,b){a=a|0;b=b|0;bd(a+(Zc(a)|0)|0,b)|0;return a|0}function Td(a,b){a=a|0;b=b|0;var d=0,e=0;d=k;k=k+16|0;e=d;c[e>>2]=b;b=oc(c[753]|0,a,e)|0;k=d;return b|0}function Ud(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=b;while(1){d=c+1|0;if(!(Uc(a[c>>0]|0)|0))break;else c=d}b=a[c>>0]|0;switch(b|0){case 45:{e=1;f=5;break}case 43:{e=0;f=5;break}default:{g=0;h=c;i=b}}if((f|0)==5){g=e;h=d;i=a[d>>0]|0}if(!(kc(i)|0))j=0;else{i=0;d=h;while(1){h=(i*10|0)+48-(a[d>>0]|0)|0;d=d+1|0;if(!(kc(a[d>>0]|0)|0)){j=h;break}else i=h}}return ((g|0)==0?0-j|0:j)|0}function Vd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0.0;e=k;k=k+128|0;f=e;g=f;h=g+124|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));g=f+4|0;c[g>>2]=a;h=f+8|0;c[h>>2]=-1;c[f+44>>2]=a;c[f+76>>2]=-1;Sc(f,0);i=+Dd(f,d,1);d=(c[g>>2]|0)-(c[h>>2]|0)+(c[f+108>>2]|0)|0;if(b|0)c[b>>2]=(d|0)==0?a:a+d|0;k=e;return +i}function Wd(a,b){a=a|0;b=b|0;return +(+Vd(a,b,1))}function Xd(a){a=a|0;return +(+Wd(a,0))}function Yd(){}function Zd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=M(d,c)|0;f=a>>>16;a=(e>>>16)+(M(d,f)|0)|0;d=b>>>16;b=M(d,c)|0;return (x=(a>>>16)+(M(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function _d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=Zd(e,a)|0;f=x;return (x=(M(b,a)|0)+(M(d,e)|0)+f|f&0,c|0|0)|0}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (x=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (x=e,a-c>>>0|0)|0}function be(a){a=a|0;return (a?31-(P(a^a-1)|0)|0:32)|0}function ce(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (x=n,o)|0}else{if(!m){n=0;o=0;return (x=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (x=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(P(l|0)|0)-(P(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<>>(q>>>0)&s;w=0;y=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (x=n,o)|0}r=j-1|0;if(r&j|0){s=(P(j|0)|0)+33-(P(i|0)|0)|0;q=64-s|0;p=32-s|0;z=p>>31;A=s-32|0;B=A>>31;t=s;u=p-1>>31&i>>>(A>>>0)|(i<>>(s>>>0))&B;v=B&i>>>(s>>>0);w=g<>>(A>>>0))&z|g<>31;break}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (x=n,o)|0}else{r=be(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (x=n,o)|0}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (x=n,o)|0}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (x=n,o)|0}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((be(l|0)|0)>>>0);return (x=n,o)|0}r=(P(l|0)|0)-(P(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>>0);v=i>>>(s>>>0);w=0;y=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (x=n,o)|0}while(0);if(!t){C=y;D=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=$d(b|0,d|0,-1,-1)|0;k=x;h=y;y=w;w=v;v=u;u=t;t=0;do{a=h;h=y>>>31|h<<1;y=t|y<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;ae(e|0,k|0,g|0,a|0)|0;i=x;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=ae(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=x;u=u-1|0}while((u|0)!=0);C=h;D=y;E=w;F=v;G=0;H=t}t=D;D=0;if(f|0){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(C|D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (x=n,o)|0}function de(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ce(a,b,c,d,0)|0}function ee(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){x=b>>>c;return a>>>c|(b&(1<>>c-32|0}function fe(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){x=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function he(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return fa(b|0,d|0,e|0)|0;f=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}h=g&-4|0;e=h-64|0;while((b|0)<=(e|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function ie(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=g-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(h|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function je(a){a=a|0;var b=0,d=0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){U()|0;W(12);return -1}c[i>>2]=d;if((d|0)>(T()|0)?(S()|0)==0:0){c[i>>2]=b;W(12);return -1}return b|0}function ke(a,b){a=a|0;b=b|0;return ia[a&1](b|0)|0}function le(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ja[a&7](b|0,c|0,d|0)|0}function me(a){a=a|0;Q(0);return 0}function ne(a,b,c){a=a|0;b=b|0;c=c|0;Q(1);return 0} - -// EMSCRIPTEN_END_FUNCS -var ia=[me,ac];var ja=[ne,bc,cc,gc,hc,Rc,ne,ne];return{___errno_location:ec,___muldi3:_d,___udivdi3:de,_bitshift64Lshr:ee,_bitshift64Shl:fe,_free:_b,_i64Add:$d,_i64Subtract:ae,_llvm_bswap_i32:ge,_main:ra,_malloc:Zb,_memcpy:he,_memset:ie,_sbrk:je,dynCall_ii:ke,dynCall_iiii:le,establishStackSpace:na,getTempRet0:qa,runPostSets:Yd,setTempRet0:pa,setThrew:oa,stackAlloc:ka,stackRestore:ma,stackSave:la}}) - - -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _main=Module["_main"]=asm["_main"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];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"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];Module["asm"]=asm;Module["getMemory"]=getMemory;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS"]=FS;Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;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()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(Module["thisProgram"]);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);Module["quit"](1,e)}}finally{calledMain=true}};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"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}Module["quit"](status,new ExitStatus(status))}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()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() - - - - - - - return bb2600basic; -} -); -})(); -if (typeof exports === 'object' && typeof module === 'object') - module.exports = bb2600basic; - else if (typeof define === 'function' && define['amd']) - define([], function() { return bb2600basic; }); - else if (typeof exports === 'object') - exports["bb2600basic"] = bb2600basic; - \ No newline at end of file diff --git a/src/worker/asmjs/bbpreprocess.js b/src/worker/asmjs/bbpreprocess.js deleted file mode 100644 index a3f53b7a..00000000 --- a/src/worker/asmjs/bbpreprocess.js +++ /dev/null @@ -1,36 +0,0 @@ - -var preprocess = (function() { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - return ( -function(preprocess) { - preprocess = preprocess || {}; - -var Module=typeof preprocess!=="undefined"?preprocess:{};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);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",abort);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_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}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=false;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>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)}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function getMemory(size){if(!staticSealed)return staticAlloc(size);if(!runtimeInitialized)return dynamicAlloc(size);return _malloc(size)}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=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&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=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 allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}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:y+" ["+x+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}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_MEMORY0){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>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var Math_abs=Math.abs;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 getUniqueRunDependency(id){return id}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+9488;__ATINIT__.push();memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAAAAAQEBAQEBAQECAwEBBAEBAQEBAQEBAQEBAQEBAQEBAQUGAQcICQoBCwwNDg8QERITExQUFBQVFRUVFgEXGBkBARoaGhoaGxoaGhoaGhoaGhwaGhoaGhoaGhoaHQEeHyABISIjJCUmJygpIiIqKywtLiIvMDEyMyIiNCI1NjcBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAABTAFEAAQBQAFEANwAyADMANABKAD0APgBHAEQAPABFADgARgBPAEkAQwBBAEgATQBNADUANgBMADkATgBOAE4ATgBOAE4ATgBOAE4AOgBLADsAUgAFAAQACQAJAA0ADQAUABQAGAAYABwAHAAeACEAIQAjACYAJgAoACsAKwAQAA8ALQAwAFIALwABAAIAAABKAEcARgBPAEAAQgA/AE0ATQAAAE4ATgBOAE4ATgBOAE4ATgBOAE4ASwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAIwAAAAAAKAAAAAAADwAtAAAAAAAAAAYATgBOAE4ATgBOAE4ATgADAE4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAAABOAAoATgBOAE4ATgBOAE4ACAAHAAwACwATABIAFwAWABsAGgAgAB8AJQAkACoAKQAAAAAAAABOAE4ATgBOAE4ATgBOAAAAAAAAAE4ATgAVAE4ATgBOAE4AMQAAAAAATgAOAE4ATgAAAAAATgAAAAAATgBOAE4AEQAAAE4AIgAAAE4ATgAAAE4AJwAsAAAAHQAAAAAAGQAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAPAA8A+QAPABAAEAD1ABAAEQARAPQAEQASABIA8gASABMAEwAXABMAFAAUABgAFADvABcAKwArACsAGAAbABsAGwAbAO4AFwAtAC0A7QAYAB0AHQAdAB0AMAAwADAAMQAxADEAPABPAFIAVQBPAFIAVQCBAOwAMQCBADwAZABkAGQAPABeAF4AXgBeAGAAYABgAGAAaABoAGgAaQBpAGkAagCEAHEA6wCEAGoAaQBxAM4AhwDfAGkAhwCyALIA1gDWAOkA6ADOAOYA5QDkAN8A+AD4AOMA4gDhAOAA3gDdANsA2gDZANcA1QDUANIA0QDQAM8AzQDMAMsAygDJAMgAxwDGAMUAxACzALEAsACvAK4ArACrAKoAqQCoAKcApgClAKQAowCiAKEAoACfAJ4AnQCcAJsAmgCZAJgAlgCVAJQAkwCSAJEAkACOAI0AjACLAIoAiQCIAIYAhQCDAIIAgAB/AH4AfQB8AHsAegB5AHgAdwB2AHUAdABzAHIAcABvAG4AbQBsAGMAYgBhAFwAWgBZAFcAVgBUAFMAUQBQAE4ATQBMAEsASgBJAEgARwBGAEUARABAAD4APQA7ADoAOQA4ADYALwAqACUAIgAZABYAFQAOAA0ADAALAAoACQAIAAcABgAFAAQAAwD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcAAAAAAAAAAAAAACoBKQEoAScBJgElASQBIwEiASEBIAEfATYAOgA+AEIARgBKAB4BHQFFAEkAHwEuAVQALgFeAC4BLgEuAS4BFAEuAS4BEAEuAS4BLgEuAQoBPwAuAUQALgEDAUoATQAuAS4BLgEuAeoAAADsAPcA6wDtAE8A8ADjAC4B3QAuAS4BLgEPAewA6wDqAOkA6ADnAOYA5QDkAOMAaQDiAOEAagDgAN8AawDeAN0ALgH+APsALgH9AC4BeAAuAXwA9ADwAOoAYwAuAS4BLgFoAGsAZQAAANAA0ADIANUAxABnANUAygDPAL0A7wDFAMQAwwDCAMEAwAC/AL4AvQC8AG8AuwC6AIcAuQC4AI8AtwC2AN4A2wDcALEAuAAAALIAugCwALQAqwCyAKIAAACnALAArwCuAK0ArACrAKoAqQCoAKcApgClAKQAowCiAKEArgCZAJkAmAAAAI4AjwCUAJQAcAC3AC4BLgEuAS4BLgEuAS4BLgEuAS4BLgEuAS4BLgEuAS4BuQCNAJIAiACTAKAAiACNAIQAiQCLAIIAiACGAIkALgF+AIQAhACGAC4BegB4AHsAAAB3AHUAfACPAHoAjQByAHIAhwBsAC4BbQB1AC4BdQBnAEgAMAA6AC4BLgEZAC4BEwAoAC4BLgGfADgAAAAAAAAAAAAAAAAAAAD3AAEA+AD4APgA+AD4APgA+AD4APgA+AD4APgA+AD4APgA+AD4APgA+AD4APgA+AD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA+QD5APkA+QD5APkA+QD5APkA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APkA+QD5APkA+QD5APkA+QD5APkA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APkA+QD5APkA+QD5APkA+QD5APkA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD5APkA+QD5APkA+QD5APkA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD5APkA+QD5APkA+QD5APcA9wD3APkA+QD3APkA+QD5APkA9wD3APcA+QD5APkA+QD3APcA+QD3APcA+QD5APkA9wD3APkA9wD3APkA+QD3APkA9wD3APcA9wD3APcA9wAAAPcA9wAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgICAgICAgICAgEBAQAAAAAAAAAAAAAaABsAHAAdABsAHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACsAKwAsAC0ALgAvADAAMAAxADIAMwA0ADUANgA3ADgAOQA3ADcANwA3ADoAOwA3ADcANwA8AD0APgA3ADcANwA3AD8AQABBAE8AUABrAE8ATwBRAPYATwBSAFMA9QBSAFIAVAD0AFIAVQBWAFoAVQBVAFcAWgBVAPMAWwBkAGQAZABdAF4AXwBgAF4A8gBcAGUAZgDwAFwAYABfAGAAYABoAGgAaABoAGkAaABqAIEAhACHAIEAhACHAIEA8QBqAIEAcQBkAGQAZAByAF4AXwBgAF4AYABfAGAAYABoAGgAaABoAGgAaACNAIQAlADwAIQAjgCNAJUAzgCHAOcAjgCHAMwAzQDfAOAA7wDuANgA7QDqAOwA6ABCAEIA6wDqAOkA5wDmAOUA5ADjAOIA4QDeAN0A3ADbANoA2QDXANYA1QDUANMA0gDRANAAzwCMAM4AywDKAMkAyADHAMYAxQDEAMMAwgDBAMAAvwC+AL0AvAC7ALoAuQC4ALcAtgC1ALQAswCyALEAsACvAK4ArQCsAKsAqgCpAIsAigCoAKcApgClAKQAowCiAKEAoACfAJ4AnQCcAJsAmgCZAHYAdQCYAJcAlgCTAJIAkQCQAI8AYwBiAGEAjACLAIoAiQCIAIYAhQCDAIIAgAB/AH4AfQB8AHsAegB5AHgAdwB2AHUAdABzAHAAbwBuAG0AbABnAGMAYgBhAPcAWQBYAE4ATQBMAEsASgBJAEgARwBGAEUARABDABkA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wD3APcA9wAAAAAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAETCQsLAAAJBgsAAAsABhEAAAAREREAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAABA0AAAAACQ4AAAAAAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASEhIAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAoAAAAACQsAAAAAAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGVCEiGQ0BAgMRSxwMEAQLHRIeJ2hub3BxYiAFBg8TFBUaCBYHKCQXGAkKDhsfJSODgn0mKis8PT4/Q0dKTVhZWltcXV5fYGFjZGVmZ2lqa2xyc3R5ent8AAAAAAAAAAAASWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAAAAAAABAAAAOBYAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAiBoAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4FgAABQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAANJQAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgXAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAJgeAAAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlbQAlcwAKAAplbmQAICVzACAAJWQ6IE1pc3NpbmcgKQoAc3RlcCAtACAlcyAAKCVkKSBQYXJzZSBlcnJvcjogdW5yZWNvZ25pemVkIGNoYXJhY3RlciAiJXMiCgBmYXRhbCBmbGV4IHNjYW5uZXIgaW50ZXJuYWwgZXJyb3ItLW5vIGFjdGlvbiBmb3VuZABvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfY3JlYXRlX2J1ZmZlcigpAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQAZmF0YWwgZXJyb3IgLSBzY2FubmVyIGlucHV0IGJ1ZmZlciBvdmVyZmxvdwBpbnB1dCBpbiBmbGV4IHNjYW5uZXIgZmFpbGVkAG91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9nZXRfbmV4dF9idWZmZXIoKQBvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkAJXMKAC0rICAgMFgweAAobnVsbCkALTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAu";var tempDoublePtr=STATICTOP;STATICTOP+=16;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={"1024":flags["O_APPEND"],"64":flags["O_CREAT"],"128":flags["O_EXCL"],"0":flags["O_RDONLY"],"2":flags["O_RDWR"],"4096":flags["O_SYNC"],"512":flags["O_TRUNC"],"1":flags["O_WRONLY"]}}),bufferFrom:(function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsForNode:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),write:(function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21524:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __exit(status){exit(status)}function _exit(status){__exit(status)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}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 intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){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>2]|0)!=0:0)){na();Ua=oa(c[2216]|0,16384)|0;c[c[2220]>>2]=Ua}pa()}a:while(1){c[Oa>>2]=c[2221];a[c[Oa>>2]>>0]=a[9476]|0;c[Pa>>2]=c[Oa>>2];c[Na>>2]=c[2219];c[Na>>2]=(c[Na>>2]|0)+(c[(c[c[2220]>>2]|0)+28>>2]|0);b:while(1){do{a[Ra>>0]=a[16+(d[c[Oa>>2]>>0]|0)>>0]|0;if(b[272+(c[Na>>2]<<1)>>1]|0){c[2222]=c[Na>>2];c[2223]=c[Oa>>2]}while(1){Va=c[Na>>2]|0;if((b[768+((b[1488+(c[Na>>2]<<1)>>1]|0)+(d[Ra>>0]|0)<<1)>>1]|0)==(c[Na>>2]|0))break;c[Na>>2]=b[2e3+(Va<<1)>>1];if((c[Na>>2]|0)>=248)a[Ra>>0]=a[2512+(d[Ra>>0]|0)>>0]|0}c[Na>>2]=b[2576+((b[1488+(Va<<1)>>1]|0)+(d[Ra>>0]|0)<<1)>>1];c[Oa>>2]=(c[Oa>>2]|0)+1}while((b[1488+(c[Na>>2]<<1)>>1]|0)!=302);c:while(1){c[Qa>>2]=b[272+(c[Na>>2]<<1)>>1];if(!(c[Qa>>2]|0)){c[Oa>>2]=c[2223];c[Na>>2]=c[2222];c[Qa>>2]=b[272+(c[Na>>2]<<1)>>1]}c[2224]=c[Pa>>2];c[2225]=(c[Oa>>2]|0)-(c[Pa>>2]|0);a[9476]=a[c[Oa>>2]>>0]|0;a[c[Oa>>2]>>0]=0;c[2221]=c[Oa>>2];d:while(1){switch(c[Qa>>2]|0){case 46:{Wa=161;break a;break}case 81:{Wa=266;break a;break}case 95:case 94:case 93:case 92:case 91:case 90:case 89:case 88:case 87:case 86:case 85:case 84:{Wa=272;break a;break}case 1:{Wa=29;break b;break}case 2:{Wa=32;break b;break}case 3:{Wa=34;break b;break}case 4:{Wa=37;break b;break}case 5:{Wa=40;break b;break}case 6:{Wa=43;break b;break}case 7:{Wa=46;break b;break}case 8:{Wa=49;break b;break}case 9:{Wa=52;break b;break}case 10:{Wa=55;break b;break}case 11:{Wa=58;break b;break}case 12:{Wa=61;break b;break}case 13:{Wa=64;break b;break}case 14:{Wa=67;break b;break}case 15:{Wa=70;break b;break}case 16:{Wa=73;break b;break}case 17:{Wa=76;break b;break}case 18:{Wa=79;break b;break}case 19:{Wa=82;break b;break}case 20:{Wa=85;break b;break}case 21:{Wa=88;break b;break}case 22:{Wa=91;break b;break}case 23:{Wa=94;break b;break}case 24:{Wa=97;break b;break}case 25:{Wa=100;break b;break}case 26:{Wa=103;break b;break}case 27:{Wa=106;break b;break}case 28:{Wa=109;break b;break}case 29:{Wa=112;break b;break}case 30:{Wa=115;break b;break}case 31:{Wa=117;break b;break}case 32:{Wa=120;break b;break}case 33:{Wa=123;break b;break}case 34:{Wa=126;break b;break}case 35:{Wa=129;break b;break}case 36:{Wa=132;break b;break}case 37:{Wa=135;break b;break}case 38:{Wa=138;break b;break}case 39:{Wa=141;break b;break}case 40:{Wa=144;break b;break}case 41:{Wa=147;break b;break}case 42:{Wa=150;break b;break}case 43:{Wa=153;break b;break}case 44:{Wa=156;break b;break}case 45:{Wa=159;break b;break}case 47:{Wa=164;break b;break}case 48:{Wa=167;break b;break}case 49:{Wa=170;break b;break}case 50:{Wa=173;break b;break}case 51:{Wa=176;break b;break}case 52:{Wa=179;break b;break}case 53:{Wa=182;break b;break}case 54:{Wa=185;break b;break}case 55:{Wa=188;break b;break}case 56:{Wa=191;break b;break}case 57:{Wa=194;break b;break}case 58:{Wa=197;break b;break}case 59:{Wa=200;break b;break}case 60:{Wa=203;break b;break}case 61:{Wa=206;break b;break}case 62:{Wa=209;break b;break}case 63:{Wa=212;break b;break}case 64:{Wa=215;break b;break}case 65:{Wa=218;break b;break}case 66:{Wa=221;break b;break}case 67:{Wa=224;break b;break}case 68:{Wa=227;break b;break}case 69:{Wa=230;break b;break}case 70:{Wa=233;break b;break}case 71:{Wa=236;break b;break}case 72:{Wa=239;break b;break}case 73:{Wa=242;break b;break}case 74:{Wa=245;break b;break}case 75:{Wa=248;break b;break}case 76:{Wa=251;break b;break}case 77:{Wa=254;break b;break}case 78:{Wa=257;break b;break}case 79:{Wa=260;break b;break}case 80:{Wa=263;break b;break}case 82:{Wa=269;break b;break}case 0:{Wa=28;break d;break}case 83:break;default:{Wa=286;break a}}c[Sa>>2]=(c[Oa>>2]|0)-(c[2224]|0)-1;a[c[Oa>>2]>>0]=a[9476]|0;if(!(c[(c[c[2220]>>2]|0)+44>>2]|0)){c[2226]=c[(c[c[2220]>>2]|0)+16>>2];c[c[c[2220]>>2]>>2]=c[2216];c[(c[c[2220]>>2]|0)+44>>2]=1}if((c[2221]|0)>>>0<=((c[(c[c[2220]>>2]|0)+4>>2]|0)+(c[2226]|0)|0)>>>0){Wa=276;break}switch(sa()|0){case 0:{Wa=284;break c;break}case 2:{Wa=285;break d;break}case 1:break;default:break b}if(!(ta()|0)){Wa=282;break b}c[2221]=c[2224];c[Qa>>2]=83+(((c[2219]|0)-1|0)/2|0)+1}if((Wa|0)==28){Wa=0;a[c[Oa>>2]>>0]=a[9476]|0;c[Oa>>2]=c[2223];c[Na>>2]=c[2222];continue}else if((Wa|0)==276){Wa=0;c[2221]=(c[2224]|0)+(c[Sa>>2]|0);c[Na>>2]=qa()|0;c[Ta>>2]=ra(c[Na>>2]|0)|0;c[Pa>>2]=c[2224];Xa=c[2221]|0;if(c[Ta>>2]|0){Wa=277;break}c[Oa>>2]=Xa;continue}else if((Wa|0)==285){Wa=0;c[2221]=(c[(c[c[2220]>>2]|0)+4>>2]|0)+(c[2226]|0);c[Na>>2]=qa()|0;c[Oa>>2]=c[2221];c[Pa>>2]=c[2224];continue}}if((Wa|0)==277){Wa=0;Ua=Xa+1|0;c[2221]=Ua;c[Oa>>2]=Ua;c[Na>>2]=c[Ta>>2];continue}else if((Wa|0)==284){Wa=0;c[2221]=(c[2224]|0)+(c[Sa>>2]|0);c[Na>>2]=qa()|0;c[Oa>>2]=c[2221];c[Pa>>2]=c[2224];continue}}switch(Wa|0){case 29:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;Ab(32)|0;break}case 32:{Wa=0;a[c[Oa>>2]>>0]=a[9476]|0;Ua=(c[Oa>>2]|0)+-1|0;c[Oa>>2]=Ua;c[2221]=Ua;c[2224]=c[Pa>>2];c[2225]=(c[Oa>>2]|0)-(c[Pa>>2]|0);a[9476]=a[c[Oa>>2]>>0]|0;a[c[Oa>>2]>>0]=0;c[2221]=c[Oa>>2];if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;break}case 34:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;Eb(6312,Ma)|0;c[2219]=3;break}case 37:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[La>>2]=c[2224];Eb(6316,La)|0;break}case 40:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,Ka)|0;c[2219]=1;break}case 43:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[Ja>>2]=c[2224];Eb(6316,Ja)|0;c[2219]=5;break}case 46:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[Ia>>2]=c[2224];Eb(6316,Ia)|0;break}case 49:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6321,Ha)|0;c[2219]=1;break}case 52:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,Ga)|0;break}case 55:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[Fa>>2]=c[2224];Eb(6316,Fa)|0;c[2219]=7;break}case 58:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[Ea>>2]=c[2224];Eb(6316,Ea)|0;break}case 61:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6321,Da)|0;c[2219]=1;break}case 64:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,Ca)|0;break}case 67:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[Ba>>2]=c[2224];Eb(6316,Ba)|0;c[2219]=21;break}case 70:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[Aa>>2]=c[2224];Eb(6316,Aa)|0;break}case 73:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,za)|0;c[2219]=1;break}case 76:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[ya>>2]=c[2224];Eb(6316,ya)|0;c[2219]=9;break}case 79:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[xa>>2]=c[2224];Eb(6316,xa)|0;break}case 82:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6321,wa)|0;c[2219]=1;break}case 85:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,ma)|0;break}case 88:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[la>>2]=c[2224];Eb(6316,la)|0;c[2219]=11;break}case 91:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[ka>>2]=c[2224];Eb(6316,ka)|0;break}case 94:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6321,ja)|0;c[2219]=1;break}case 97:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,ia)|0;break}case 100:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[ha>>2]=c[2224];Eb(6316,ha)|0;c[2219]=13;break}case 103:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[ga>>2]=c[2224];Eb(6316,ga)|0;break}case 106:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6321,fa)|0;c[2219]=1;break}case 109:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,ea)|0;break}case 112:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[da>>2]=c[2224];Eb(6316,da)|0;c[2219]=15;break}case 115:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;break}case 117:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[ca>>2]=c[2224];Eb(6326,ca)|0;break}case 120:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6321,aa)|0;c[2219]=1;break}case 123:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,$)|0;break}case 126:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[_>>2]=c[2224];Eb(6316,_)|0;c[2219]=17;break}case 129:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;Eb(6330,Z)|0;break}case 132:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[Y>>2]=c[2224];Eb(6326,Y)|0;break}case 135:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6321,X)|0;c[2219]=1;break}case 138:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,W)|0;break}case 141:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[V>>2]=c[2224];Eb(6316,V)|0;c[2219]=19;break}case 144:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;Eb(6330,U)|0;break}case 147:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[T>>2]=c[2224];Eb(6326,T)|0;break}case 150:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6321,S)|0;c[2219]=1;break}case 153:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[1420]=(c[1420]|0)+1;Eb(6319,R)|0;break}case 156:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[Q>>2]=c[2224];Eb(6316,Q)|0;c[2219]=23;break}case 159:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;break}case 164:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[O>>2]=c[2224];Eb(6316,O)|0;break}case 167:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[N>>2]=c[2224];Eb(6316,N)|0;c[2219]=1;break}case 170:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;Eb(6347,M)|0;break}case 173:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[L>>2]=c[2224];Eb(6316,L)|0;break}case 176:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[K>>2]=c[2224];Eb(6316,K)|0;break}case 179:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[J>>2]=c[2224];Eb(6316,J)|0;break}case 182:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[I>>2]=c[2224];Eb(6316,I)|0;break}case 185:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[H>>2]=c[2224];Eb(6316,H)|0;break}case 188:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[G>>2]=c[2224];Eb(6316,G)|0;break}case 191:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[F>>2]=c[2224];Eb(6316,F)|0;break}case 194:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[E>>2]=c[2224];Eb(6316,E)|0;break}case 197:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[D>>2]=c[2224];Eb(6316,D)|0;break}case 200:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[C>>2]=c[2224];Eb(6316,C)|0;break}case 203:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[B>>2]=c[2224];Eb(6354,B)|0;break}case 206:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[A>>2]=c[2224];Eb(6354,A)|0;break}case 209:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[z>>2]=c[2224];Eb(6354,z)|0;break}case 212:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[y>>2]=c[2224];Eb(6354,y)|0;break}case 215:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[x>>2]=c[2224];Eb(6354,x)|0;break}case 218:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[w>>2]=c[2224];Eb(6354,w)|0;break}case 221:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[v>>2]=c[2224];Eb(6354,v)|0;break}case 224:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[u>>2]=c[2224];Eb(6354,u)|0;break}case 227:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[t>>2]=c[2224];Eb(6354,t)|0;break}case 230:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[s>>2]=c[2224];Eb(6354,s)|0;break}case 233:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[r>>2]=c[2224];Eb(6354,r)|0;break}case 236:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[q>>2]=c[2224];Eb(6354,q)|0;break}case 239:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[p>>2]=c[2224];Eb(6354,p)|0;break}case 242:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[o>>2]=c[2224];Eb(6354,o)|0;break}case 245:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[n>>2]=c[2224];Eb(6354,n)|0;break}case 248:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[m>>2]=c[2224];Eb(6354,m)|0;break}case 251:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[l>>2]=c[2224];Eb(6354,l)|0;break}case 254:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[j>>2]=c[2224];Eb(6316,j)|0;break}case 257:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[i>>2]=c[2224];Eb(6316,i)|0;break}case 260:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;c[h>>2]=c[2224];Eb(6316,h)|0;break}case 263:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;Eb(6319,g)|0;c[1420]=(c[1420]|0)+1;break}case 269:{Wa=0;if((c[2225]|0)>0)c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;tb(c[2224]|0,c[2225]|0,1,c[2217]|0)|0;break}case 282:{Wa=0;if(!0)ua(c[2216]|0);break}}}if((Wa|0)==161){if((c[2225]|0)<=0){Ya=c[1453]|0;Za=c[1420]|0;c[P>>2]=Za;wb(Ya,6332,P)|0;ba(1)}c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;Ya=c[1453]|0;Za=c[1420]|0;c[P>>2]=Za;wb(Ya,6332,P)|0;ba(1)}else if((Wa|0)==266){if((c[2225]|0)<=0){_a=c[1453]|0;$a=c[1420]|0;ab=c[2224]|0;c[f>>2]=$a;bb=f+4|0;c[bb>>2]=ab;wb(_a,6359,f)|0;ba(1)}c[(c[c[2220]>>2]|0)+28>>2]=(a[(c[2224]|0)+((c[2225]|0)-1)>>0]|0)==10&1;_a=c[1453]|0;$a=c[1420]|0;ab=c[2224]|0;c[f>>2]=$a;bb=f+4|0;c[bb>>2]=ab;wb(_a,6359,f)|0;ba(1)}else if((Wa|0)==272){k=e;return 0}else if((Wa|0)==286)va(6406);return 0}function na(){var a=0,b=0,d=0;a=k;k=k+16|0;b=a+4|0;d=a;if(!(c[2220]|0)){c[b>>2]=1;c[2220]=xa(c[b>>2]<<2)|0;if(!(c[2220]|0))va(6676);Rb(c[2220]|0,0,c[b>>2]<<2|0)|0;c[2227]=c[b>>2];k=a;return}if(0<((c[2227]|0)-1|0)>>>0){k=a;return}c[d>>2]=8;c[b>>2]=(c[2227]|0)+(c[d>>2]|0);c[2220]=za(c[2220]|0,c[b>>2]<<2)|0;if(!(c[2220]|0))va(6676);Rb((c[2220]|0)+(c[2227]<<2)|0,0,c[d>>2]<<2|0)|0;c[2227]=c[b>>2];k=a;return}function oa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=k;k=k+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=xa(48)|0;if(!(c[g>>2]|0))va(6457);c[(c[g>>2]|0)+12>>2]=c[f>>2];f=xa((c[(c[g>>2]|0)+12>>2]|0)+2|0)|0;c[(c[g>>2]|0)+4>>2]=f;if(c[(c[g>>2]|0)+4>>2]|0){c[(c[g>>2]|0)+20>>2]=1;wa(c[g>>2]|0,c[e>>2]|0);k=d;return c[g>>2]|0}else va(6457);return 0}function pa(){var b=0;c[2226]=c[(c[c[2220]>>2]|0)+16>>2];b=c[(c[c[2220]>>2]|0)+8>>2]|0;c[2221]=b;c[2224]=b;c[2216]=c[c[c[2220]>>2]>>2];a[9476]=a[c[2221]>>0]|0;return}function qa(){var e=0,f=0,g=0,h=0,i=0,j=0;e=k;k=k+16|0;f=e+4|0;g=e;h=e+8|0;c[f>>2]=c[2219];c[f>>2]=(c[f>>2]|0)+(c[(c[c[2220]>>2]|0)+28>>2]|0);c[g>>2]=c[2224];while(1){if((c[g>>2]|0)>>>0>=(c[2221]|0)>>>0)break;if(a[c[g>>2]>>0]|0)i=d[16+(d[c[g>>2]>>0]|0)>>0]|0;else i=1;a[h>>0]=i;if(b[272+(c[f>>2]<<1)>>1]|0){c[2222]=c[f>>2];c[2223]=c[g>>2]}while(1){j=c[f>>2]|0;if((b[768+((b[1488+(c[f>>2]<<1)>>1]|0)+(d[h>>0]|0)<<1)>>1]|0)==(c[f>>2]|0))break;c[f>>2]=b[2e3+(j<<1)>>1];if((c[f>>2]|0)>=248)a[h>>0]=a[2512+(d[h>>0]|0)>>0]|0}c[f>>2]=b[2576+((b[1488+(j<<1)>>1]|0)+(d[h>>0]|0)<<1)>>1];c[g>>2]=(c[g>>2]|0)+1}k=e;return c[f>>2]|0}function ra(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0;f=k;k=k+16|0;g=f+8|0;h=f+4|0;i=f;j=f+12|0;c[g>>2]=e;c[i>>2]=c[2221];a[j>>0]=1;if(b[272+(c[g>>2]<<1)>>1]|0){c[2222]=c[g>>2];c[2223]=c[i>>2]}while(1){l=c[g>>2]|0;if((b[768+((b[1488+(c[g>>2]<<1)>>1]|0)+(d[j>>0]|0)<<1)>>1]|0)==(c[g>>2]|0))break;c[g>>2]=b[2e3+(l<<1)>>1];if((c[g>>2]|0)>=248)a[j>>0]=a[2512+(d[j>>0]|0)>>0]|0}c[g>>2]=b[2576+((b[1488+(l<<1)>>1]|0)+(d[j>>0]|0)<<1)>>1];c[h>>2]=(c[g>>2]|0)==247&1;k=f;return (c[h>>2]|0?0:c[g>>2]|0)|0}function sa(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;b=k;k=k+64|0;d=b+48|0;e=b+44|0;f=b+40|0;g=b+36|0;h=b+32|0;i=b+28|0;j=b+24|0;l=b+20|0;m=b+16|0;n=b+12|0;o=b+8|0;p=b+4|0;q=b;c[e>>2]=c[(c[c[2220]>>2]|0)+4>>2];c[f>>2]=c[2224];if((c[2221]|0)>>>0>((c[(c[c[2220]>>2]|0)+4>>2]|0)+((c[2226]|0)+1)|0)>>>0)va(6501);r=(c[2221]|0)-(c[2224]|0)|0;if(!(c[(c[c[2220]>>2]|0)+40>>2]|0))if((r-0|0)==1){c[d>>2]=1;s=c[d>>2]|0;k=b;return s|0}else{c[d>>2]=2;s=c[d>>2]|0;k=b;return s|0}c[g>>2]=r-1;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[g>>2]|0))break;r=c[f>>2]|0;c[f>>2]=r+1;t=a[r>>0]|0;r=c[e>>2]|0;c[e>>2]=r+1;a[r>>0]=t;c[h>>2]=(c[h>>2]|0)+1}if((c[(c[c[2220]>>2]|0)+44>>2]|0)==2){c[2226]=0;c[(c[c[2220]>>2]|0)+16>>2]=0}else{c[j>>2]=(c[(c[c[2220]>>2]|0)+12>>2]|0)-(c[g>>2]|0)-1;while(1){if((c[j>>2]|0)>0)break;c[l>>2]=c[c[2220]>>2];c[m>>2]=(c[2221]|0)-(c[(c[l>>2]|0)+4>>2]|0);h=c[l>>2]|0;if(c[(c[l>>2]|0)+20>>2]|0){c[n>>2]=c[h+12>>2]<<1;e=(c[l>>2]|0)+12|0;f=c[e>>2]|0;if((c[n>>2]|0)<=0){t=(c[l>>2]|0)+12|0;c[t>>2]=(c[t>>2]|0)+((f|0)/8|0)}else c[e>>2]=f<<1;f=za(c[(c[l>>2]|0)+4>>2]|0,(c[(c[l>>2]|0)+12>>2]|0)+2|0)|0;c[(c[l>>2]|0)+4>>2]=f}else c[h+4>>2]=0;if(!(c[(c[l>>2]|0)+4>>2]|0)){u=21;break}c[2221]=(c[(c[l>>2]|0)+4>>2]|0)+(c[m>>2]|0);c[j>>2]=(c[(c[c[2220]>>2]|0)+12>>2]|0)-(c[g>>2]|0)-1}if((u|0)==21)va(6557);if((c[j>>2]|0)>8192)c[j>>2]=8192;a:do if(c[(c[c[2220]>>2]|0)+24>>2]|0){c[o>>2]=42;c[p>>2]=0;while(1){if((c[p>>2]|0)<(c[j>>2]|0)?(u=yb(c[2216]|0)|0,c[o>>2]=u,(u|0)!=-1):0)v=(c[o>>2]|0)!=10;else v=0;w=c[o>>2]|0;if(!v)break;a[(c[(c[c[2220]>>2]|0)+4>>2]|0)+(c[g>>2]|0)+(c[p>>2]|0)>>0]=w;c[p>>2]=(c[p>>2]|0)+1}if((w|0)==10){u=c[o>>2]&255;m=(c[(c[c[2220]>>2]|0)+4>>2]|0)+(c[g>>2]|0)|0;l=c[p>>2]|0;c[p>>2]=l+1;a[m+l>>0]=u}if((c[o>>2]|0)==-1?vb(c[2216]|0)|0:0)va(6601);c[2226]=c[p>>2]}else{c[(Ka()|0)>>2]=0;while(1){u=Cb((c[(c[c[2220]>>2]|0)+4>>2]|0)+(c[g>>2]|0)|0,1,c[j>>2]|0,c[2216]|0)|0;c[2226]=u;if(u|0)break a;if(!(vb(c[2216]|0)|0))break a;if((c[(Ka()|0)>>2]|0)!=4)break;c[(Ka()|0)>>2]=0;zb(c[2216]|0)}va(6601)}while(0);c[(c[c[2220]>>2]|0)+16>>2]=c[2226]}do if(!(c[2226]|0))if(!(c[g>>2]|0)){c[i>>2]=1;ua(c[2216]|0);break}else{c[i>>2]=2;c[(c[c[2220]>>2]|0)+44>>2]=2;break}else c[i>>2]=0;while(0);do if(((c[2226]|0)+(c[g>>2]|0)|0)>(c[(c[c[2220]>>2]|0)+12>>2]|0)){c[q>>2]=(c[2226]|0)+(c[g>>2]|0)+(c[2226]>>1);j=za(c[(c[c[2220]>>2]|0)+4>>2]|0,c[q>>2]|0)|0;c[(c[c[2220]>>2]|0)+4>>2]=j;if(c[(c[c[2220]>>2]|0)+4>>2]|0){c[(c[c[2220]>>2]|0)+12>>2]=(c[q>>2]|0)-2;break}else va(6630)}while(0);c[2226]=(c[2226]|0)+(c[g>>2]|0);a[(c[(c[c[2220]>>2]|0)+4>>2]|0)+(c[2226]|0)>>0]=0;a[(c[(c[c[2220]>>2]|0)+4>>2]|0)+((c[2226]|0)+1)>>0]=0;c[2224]=c[(c[c[2220]>>2]|0)+4>>2];c[d>>2]=c[i>>2];s=c[d>>2]|0;k=b;return s|0}function ta(){return 1}function ua(a){a=a|0;var b=0,d=0,e=0;b=k;k=k+16|0;d=b;c[d>>2]=a;if(!(c[2220]|0?(c[c[2220]>>2]|0)!=0:0)){na();a=oa(c[2216]|0,16384)|0;c[c[2220]>>2]=a}if(c[2220]|0)e=c[c[2220]>>2]|0;else e=0;wa(e,c[d>>2]|0);pa();k=b;return}function va(a){a=a|0;var b=0,d=0,e=0;b=k;k=k+16|0;d=b;e=b+4|0;c[e>>2]=a;a=c[1453]|0;c[d>>2]=c[e>>2];wb(a,6725,d)|0;ba(2)}function wa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;d=k;k=k+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[(Ka()|0)>>2];ya(c[e>>2]|0);c[c[e>>2]>>2]=c[f>>2];c[(c[e>>2]|0)+40>>2]=1;if(c[2220]|0)h=c[c[2220]>>2]|0;else h=0;if((c[e>>2]|0)!=(h|0)){c[(c[e>>2]|0)+32>>2]=1;c[(c[e>>2]|0)+36>>2]=0}if(!(c[f>>2]|0)){i=0;j=c[e>>2]|0;l=j+24|0;c[l>>2]=i;m=c[g>>2]|0;n=Ka()|0;c[n>>2]=m;k=d;return}i=(xb(Db(c[f>>2]|0)|0)|0)>0&1;j=c[e>>2]|0;l=j+24|0;c[l>>2]=i;m=c[g>>2]|0;n=Ka()|0;c[n>>2]=m;k=d;return}function xa(a){a=a|0;var b=0,d=0;b=k;k=k+16|0;d=b;c[d>>2]=a;a=Ba(c[d>>2]|0)|0;k=b;return a|0}function ya(b){b=b|0;var d=0,e=0,f=0;d=k;k=k+16|0;e=d;c[e>>2]=b;if(!(c[e>>2]|0)){k=d;return}c[(c[e>>2]|0)+16>>2]=0;a[c[(c[e>>2]|0)+4>>2]>>0]=0;a[(c[(c[e>>2]|0)+4>>2]|0)+1>>0]=0;c[(c[e>>2]|0)+8>>2]=c[(c[e>>2]|0)+4>>2];c[(c[e>>2]|0)+28>>2]=1;c[(c[e>>2]|0)+44>>2]=0;if(c[2220]|0)f=c[c[2220]>>2]|0;else f=0;if((c[e>>2]|0)!=(f|0)){k=d;return}pa();k=d;return}function za(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=k;k=k+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Da(c[e>>2]|0,c[f>>2]|0)|0;k=d;return b|0}function Aa(){var a=0,b=0;a=k;k=k+16|0;c[a>>2]=0;b=ma()|0;k=a;return b|0}function Ba(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;b=k;k=k+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[2228]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=8952+(i<<1<<2)|0;l=j+8|0;m=c[l>>2]|0;n=m+8|0;o=c[n>>2]|0;if((o|0)==(j|0))c[2228]=g&~(1<>2]=j;c[l>>2]=o}o=i<<3;c[m+4>>2]=o|3;i=m+o+4|0;c[i>>2]=c[i>>2]|1;p=n;k=b;return p|0}n=c[2230]|0;if(e>>>0>n>>>0){if(h|0){i=2<>>12&16;f=i>>>o;i=f>>>5&8;h=f>>>i;f=h>>>2&4;m=h>>>f;h=m>>>1&2;l=m>>>h;m=l>>>1&1;j=(i|o|f|h|m)+(l>>>m)|0;m=8952+(j<<1<<2)|0;l=m+8|0;h=c[l>>2]|0;f=h+8|0;o=c[f>>2]|0;if((o|0)==(m|0)){i=g&~(1<>2]=m;c[l>>2]=o;q=g}o=j<<3;j=o-e|0;c[h+4>>2]=e|3;l=h+e|0;c[l+4>>2]=j|1;c[h+o>>2]=j;if(n|0){o=c[2233]|0;h=n>>>3;m=8952+(h<<1<<2)|0;i=1<>2]|0;s=i}c[s>>2]=o;c[r+12>>2]=o;c[o+8>>2]=r;c[o+12>>2]=m}c[2230]=j;c[2233]=l;p=f;k=b;return p|0}f=c[2229]|0;if(f){l=(f&0-f)+-1|0;j=l>>>12&16;m=l>>>j;l=m>>>5&8;o=m>>>l;m=o>>>2&4;i=o>>>m;o=i>>>1&2;h=i>>>o;i=h>>>1&1;t=c[9216+((l|j|m|o|i)+(h>>>i)<<2)>>2]|0;i=t;h=t;o=(c[t+4>>2]&-8)-e|0;while(1){t=c[i+16>>2]|0;if(!t){m=c[i+20>>2]|0;if(!m)break;else u=m}else u=t;t=(c[u+4>>2]&-8)-e|0;m=t>>>0>>0;i=u;h=m?u:h;o=m?t:o}i=h+e|0;if(i>>>0>h>>>0){t=c[h+24>>2]|0;m=c[h+12>>2]|0;do if((m|0)==(h|0)){j=h+20|0;l=c[j>>2]|0;if(!l){v=h+16|0;w=c[v>>2]|0;if(!w){x=0;break}else{y=w;z=v}}else{y=l;z=j}j=y;l=z;while(1){v=j+20|0;w=c[v>>2]|0;if(!w){A=j+16|0;B=c[A>>2]|0;if(!B)break;else{C=B;D=A}}else{C=w;D=v}j=C;l=D}c[l>>2]=0;x=j}else{v=c[h+8>>2]|0;c[v+12>>2]=m;c[m+8>>2]=v;x=m}while(0);do if(t|0){m=c[h+28>>2]|0;v=9216+(m<<2)|0;if((h|0)==(c[v>>2]|0)){c[v>>2]=x;if(!x){c[2229]=f&~(1<>2]|0)==(h|0)?m:t+20|0)>>2]=x;if(!x)break}c[x+24>>2]=t;m=c[h+16>>2]|0;if(m|0){c[x+16>>2]=m;c[m+24>>2]=x}m=c[h+20>>2]|0;if(m|0){c[x+20>>2]=m;c[m+24>>2]=x}}while(0);if(o>>>0<16){t=o+e|0;c[h+4>>2]=t|3;f=h+t+4|0;c[f>>2]=c[f>>2]|1}else{c[h+4>>2]=e|3;c[i+4>>2]=o|1;c[i+o>>2]=o;if(n|0){f=c[2233]|0;t=n>>>3;m=8952+(t<<1<<2)|0;v=1<>2]|0;F=v}c[F>>2]=f;c[E+12>>2]=f;c[f+8>>2]=E;c[f+12>>2]=m}c[2230]=o;c[2233]=i}p=h+8|0;k=b;return p|0}else G=e}else G=e}else G=e}else if(a>>>0<=4294967231){m=a+11|0;f=m&-8;v=c[2229]|0;if(v){t=0-f|0;w=m>>>8;if(w)if(f>>>0>16777215)H=31;else{m=(w+1048320|0)>>>16&8;A=w<>>16&4;B=A<>>16&2;I=14-(w|m|A)+(B<>>15)|0;H=f>>>(I+7|0)&1|I<<1}else H=0;I=c[9216+(H<<2)>>2]|0;a:do if(!I){J=0;K=0;L=t;M=61}else{A=0;B=t;m=I;w=f<<((H|0)==31?0:25-(H>>>1)|0);N=0;while(1){O=(c[m+4>>2]&-8)-f|0;if(O>>>0>>0)if(!O){P=m;Q=0;R=m;M=65;break a}else{S=m;T=O}else{S=A;T=B}O=c[m+20>>2]|0;m=c[m+16+(w>>>31<<2)>>2]|0;U=(O|0)==0|(O|0)==(m|0)?N:O;if(!m){J=U;K=S;L=T;M=61;break}else{A=S;B=T;w=w<<1;N=U}}}while(0);if((M|0)==61){if((J|0)==0&(K|0)==0){I=2<>>12&16;e=I>>>t;I=e>>>5&8;h=e>>>I;e=h>>>2&4;i=h>>>e;h=i>>>1&2;o=i>>>h;i=o>>>1&1;V=0;W=c[9216+((I|t|e|h|i)+(o>>>i)<<2)>>2]|0}else{V=K;W=J}if(!W){X=V;Y=L}else{P=V;Q=L;R=W;M=65}}if((M|0)==65){i=P;o=Q;h=R;while(1){e=(c[h+4>>2]&-8)-f|0;t=e>>>0>>0;I=t?e:o;e=t?h:i;t=c[h+16>>2]|0;if(!t)Z=c[h+20>>2]|0;else Z=t;if(!Z){X=e;Y=I;break}else{i=e;o=I;h=Z}}}if(((X|0)!=0?Y>>>0<((c[2230]|0)-f|0)>>>0:0)?(h=X+f|0,h>>>0>X>>>0):0){o=c[X+24>>2]|0;i=c[X+12>>2]|0;do if((i|0)==(X|0)){I=X+20|0;e=c[I>>2]|0;if(!e){t=X+16|0;g=c[t>>2]|0;if(!g){_=0;break}else{$=g;aa=t}}else{$=e;aa=I}I=$;e=aa;while(1){t=I+20|0;g=c[t>>2]|0;if(!g){n=I+16|0;N=c[n>>2]|0;if(!N)break;else{ba=N;ca=n}}else{ba=g;ca=t}I=ba;e=ca}c[e>>2]=0;_=I}else{t=c[X+8>>2]|0;c[t+12>>2]=i;c[i+8>>2]=t;_=i}while(0);do if(o){i=c[X+28>>2]|0;t=9216+(i<<2)|0;if((X|0)==(c[t>>2]|0)){c[t>>2]=_;if(!_){t=v&~(1<>2]|0)==(X|0)?t:o+20|0)>>2]=_;if(!_){da=v;break}}c[_+24>>2]=o;t=c[X+16>>2]|0;if(t|0){c[_+16>>2]=t;c[t+24>>2]=_}t=c[X+20>>2]|0;if(t){c[_+20>>2]=t;c[t+24>>2]=_;da=v}else da=v}else da=v;while(0);b:do if(Y>>>0<16){v=Y+f|0;c[X+4>>2]=v|3;o=X+v+4|0;c[o>>2]=c[o>>2]|1}else{c[X+4>>2]=f|3;c[h+4>>2]=Y|1;c[h+Y>>2]=Y;o=Y>>>3;if(Y>>>0<256){v=8952+(o<<1<<2)|0;t=c[2228]|0;i=1<>2]|0;fa=i}c[fa>>2]=h;c[ea+12>>2]=h;c[h+8>>2]=ea;c[h+12>>2]=v;break}v=Y>>>8;if(v)if(Y>>>0>16777215)ga=31;else{i=(v+1048320|0)>>>16&8;t=v<>>16&4;o=t<>>16&2;g=14-(v|i|t)+(o<>>15)|0;ga=Y>>>(g+7|0)&1|g<<1}else ga=0;g=9216+(ga<<2)|0;c[h+28>>2]=ga;t=h+16|0;c[t+4>>2]=0;c[t>>2]=0;t=1<>2]=h;c[h+24>>2]=g;c[h+12>>2]=h;c[h+8>>2]=h;break}t=c[g>>2]|0;c:do if((c[t+4>>2]&-8|0)==(Y|0))ha=t;else{g=Y<<((ga|0)==31?0:25-(ga>>>1)|0);o=t;while(1){ia=o+16+(g>>>31<<2)|0;i=c[ia>>2]|0;if(!i)break;if((c[i+4>>2]&-8|0)==(Y|0)){ha=i;break c}else{g=g<<1;o=i}}c[ia>>2]=h;c[h+24>>2]=o;c[h+12>>2]=h;c[h+8>>2]=h;break b}while(0);t=ha+8|0;I=c[t>>2]|0;c[I+12>>2]=h;c[t>>2]=h;c[h+8>>2]=I;c[h+12>>2]=ha;c[h+24>>2]=0}while(0);p=X+8|0;k=b;return p|0}else G=f}else G=f}else G=-1;while(0);X=c[2230]|0;if(X>>>0>=G>>>0){ha=X-G|0;ia=c[2233]|0;if(ha>>>0>15){Y=ia+G|0;c[2233]=Y;c[2230]=ha;c[Y+4>>2]=ha|1;c[ia+X>>2]=ha;c[ia+4>>2]=G|3}else{c[2230]=0;c[2233]=0;c[ia+4>>2]=X|3;ha=ia+X+4|0;c[ha>>2]=c[ha>>2]|1}p=ia+8|0;k=b;return p|0}ia=c[2231]|0;if(ia>>>0>G>>>0){ha=ia-G|0;c[2231]=ha;X=c[2234]|0;Y=X+G|0;c[2234]=Y;c[Y+4>>2]=ha|1;c[X+4>>2]=G|3;p=X+8|0;k=b;return p|0}if(!(c[2346]|0)){c[2348]=4096;c[2347]=4096;c[2349]=-1;c[2350]=-1;c[2351]=0;c[2339]=0;c[2346]=d&-16^1431655768;ja=4096}else ja=c[2348]|0;d=G+48|0;X=G+47|0;ha=ja+X|0;Y=0-ja|0;ja=ha&Y;if(ja>>>0<=G>>>0){p=0;k=b;return p|0}ga=c[2338]|0;if(ga|0?(da=c[2336]|0,ea=da+ja|0,ea>>>0<=da>>>0|ea>>>0>ga>>>0):0){p=0;k=b;return p|0}d:do if(!(c[2339]&4)){ga=c[2234]|0;e:do if(ga){ea=9360;while(1){da=c[ea>>2]|0;if(da>>>0<=ga>>>0?(da+(c[ea+4>>2]|0)|0)>>>0>ga>>>0:0)break;da=c[ea+8>>2]|0;if(!da){M=128;break e}else ea=da}da=ha-ia&Y;if(da>>>0<2147483647){fa=Sb(da|0)|0;if((fa|0)==((c[ea>>2]|0)+(c[ea+4>>2]|0)|0))if((fa|0)==(-1|0))ka=da;else{la=da;ma=fa;M=145;break d}else{na=fa;oa=da;M=136}}else ka=0}else M=128;while(0);do if((M|0)==128){ga=Sb(0)|0;if((ga|0)!=(-1|0)?(f=ga,da=c[2347]|0,fa=da+-1|0,_=((fa&f|0)==0?0:(fa+f&0-da)-f|0)+ja|0,f=c[2336]|0,da=_+f|0,_>>>0>G>>>0&_>>>0<2147483647):0){fa=c[2338]|0;if(fa|0?da>>>0<=f>>>0|da>>>0>fa>>>0:0){ka=0;break}fa=Sb(_|0)|0;if((fa|0)==(ga|0)){la=_;ma=ga;M=145;break d}else{na=fa;oa=_;M=136}}else ka=0}while(0);do if((M|0)==136){_=0-oa|0;if(!(d>>>0>oa>>>0&(oa>>>0<2147483647&(na|0)!=(-1|0))))if((na|0)==(-1|0)){ka=0;break}else{la=oa;ma=na;M=145;break d}fa=c[2348]|0;ga=X-oa+fa&0-fa;if(ga>>>0>=2147483647){la=oa;ma=na;M=145;break d}if((Sb(ga|0)|0)==(-1|0)){Sb(_|0)|0;ka=0;break}else{la=ga+oa|0;ma=na;M=145;break d}}while(0);c[2339]=c[2339]|4;pa=ka;M=143}else{pa=0;M=143}while(0);if(((M|0)==143?ja>>>0<2147483647:0)?(ka=Sb(ja|0)|0,ja=Sb(0)|0,na=ja-ka|0,oa=na>>>0>(G+40|0)>>>0,!((ka|0)==(-1|0)|oa^1|ka>>>0>>0&((ka|0)!=(-1|0)&(ja|0)!=(-1|0))^1)):0){la=oa?na:pa;ma=ka;M=145}if((M|0)==145){ka=(c[2336]|0)+la|0;c[2336]=ka;if(ka>>>0>(c[2337]|0)>>>0)c[2337]=ka;ka=c[2234]|0;f:do if(ka){pa=9360;while(1){qa=c[pa>>2]|0;ra=c[pa+4>>2]|0;if((ma|0)==(qa+ra|0)){M=154;break}na=c[pa+8>>2]|0;if(!na)break;else pa=na}if(((M|0)==154?(na=pa+4|0,(c[pa+12>>2]&8|0)==0):0)?ma>>>0>ka>>>0&qa>>>0<=ka>>>0:0){c[na>>2]=ra+la;na=(c[2231]|0)+la|0;oa=ka+8|0;ja=(oa&7|0)==0?0:0-oa&7;oa=ka+ja|0;X=na-ja|0;c[2234]=oa;c[2231]=X;c[oa+4>>2]=X|1;c[ka+na+4>>2]=40;c[2235]=c[2350];break}if(ma>>>0<(c[2232]|0)>>>0)c[2232]=ma;na=ma+la|0;X=9360;while(1){if((c[X>>2]|0)==(na|0)){M=162;break}oa=c[X+8>>2]|0;if(!oa)break;else X=oa}if((M|0)==162?(c[X+12>>2]&8|0)==0:0){c[X>>2]=ma;pa=X+4|0;c[pa>>2]=(c[pa>>2]|0)+la;pa=ma+8|0;oa=ma+((pa&7|0)==0?0:0-pa&7)|0;pa=na+8|0;ja=na+((pa&7|0)==0?0:0-pa&7)|0;pa=oa+G|0;d=ja-oa-G|0;c[oa+4>>2]=G|3;g:do if((ka|0)==(ja|0)){Y=(c[2231]|0)+d|0;c[2231]=Y;c[2234]=pa;c[pa+4>>2]=Y|1}else{if((c[2233]|0)==(ja|0)){Y=(c[2230]|0)+d|0;c[2230]=Y;c[2233]=pa;c[pa+4>>2]=Y|1;c[pa+Y>>2]=Y;break}Y=c[ja+4>>2]|0;if((Y&3|0)==1){ia=Y&-8;ha=Y>>>3;h:do if(Y>>>0<256){ga=c[ja+8>>2]|0;_=c[ja+12>>2]|0;if((_|0)==(ga|0)){c[2228]=c[2228]&~(1<>2]=_;c[_+8>>2]=ga;break}}else{ga=c[ja+24>>2]|0;_=c[ja+12>>2]|0;do if((_|0)==(ja|0)){fa=ja+16|0;da=fa+4|0;f=c[da>>2]|0;if(!f){ca=c[fa>>2]|0;if(!ca){sa=0;break}else{ta=ca;ua=fa}}else{ta=f;ua=da}da=ta;f=ua;while(1){fa=da+20|0;ca=c[fa>>2]|0;if(!ca){ba=da+16|0;aa=c[ba>>2]|0;if(!aa)break;else{va=aa;wa=ba}}else{va=ca;wa=fa}da=va;f=wa}c[f>>2]=0;sa=da}else{fa=c[ja+8>>2]|0;c[fa+12>>2]=_;c[_+8>>2]=fa;sa=_}while(0);if(!ga)break;_=c[ja+28>>2]|0;o=9216+(_<<2)|0;do if((c[o>>2]|0)!=(ja|0)){fa=ga+16|0;c[((c[fa>>2]|0)==(ja|0)?fa:ga+20|0)>>2]=sa;if(!sa)break h}else{c[o>>2]=sa;if(sa|0)break;c[2229]=c[2229]&~(1<<_);break h}while(0);c[sa+24>>2]=ga;_=ja+16|0;o=c[_>>2]|0;if(o|0){c[sa+16>>2]=o;c[o+24>>2]=sa}o=c[_+4>>2]|0;if(!o)break;c[sa+20>>2]=o;c[o+24>>2]=sa}while(0);xa=ja+ia|0;ya=ia+d|0}else{xa=ja;ya=d}ha=xa+4|0;c[ha>>2]=c[ha>>2]&-2;c[pa+4>>2]=ya|1;c[pa+ya>>2]=ya;ha=ya>>>3;if(ya>>>0<256){Y=8952+(ha<<1<<2)|0;ea=c[2228]|0;o=1<>2]|0;Aa=o}c[Aa>>2]=pa;c[za+12>>2]=pa;c[pa+8>>2]=za;c[pa+12>>2]=Y;break}Y=ya>>>8;do if(!Y)Ba=0;else{if(ya>>>0>16777215){Ba=31;break}o=(Y+1048320|0)>>>16&8;ea=Y<>>16&4;_=ea<>>16&2;fa=14-(ha|o|ea)+(_<>>15)|0;Ba=ya>>>(fa+7|0)&1|fa<<1}while(0);Y=9216+(Ba<<2)|0;c[pa+28>>2]=Ba;ia=pa+16|0;c[ia+4>>2]=0;c[ia>>2]=0;ia=c[2229]|0;fa=1<>2]=pa;c[pa+24>>2]=Y;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break}fa=c[Y>>2]|0;i:do if((c[fa+4>>2]&-8|0)==(ya|0))Ca=fa;else{Y=ya<<((Ba|0)==31?0:25-(Ba>>>1)|0);ia=fa;while(1){Da=ia+16+(Y>>>31<<2)|0;ea=c[Da>>2]|0;if(!ea)break;if((c[ea+4>>2]&-8|0)==(ya|0)){Ca=ea;break i}else{Y=Y<<1;ia=ea}}c[Da>>2]=pa;c[pa+24>>2]=ia;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break g}while(0);fa=Ca+8|0;Y=c[fa>>2]|0;c[Y+12>>2]=pa;c[fa>>2]=pa;c[pa+8>>2]=Y;c[pa+12>>2]=Ca;c[pa+24>>2]=0}while(0);p=oa+8|0;k=b;return p|0}pa=9360;while(1){d=c[pa>>2]|0;if(d>>>0<=ka>>>0?(Ea=d+(c[pa+4>>2]|0)|0,Ea>>>0>ka>>>0):0)break;pa=c[pa+8>>2]|0}pa=Ea+-47|0;oa=pa+8|0;d=pa+((oa&7|0)==0?0:0-oa&7)|0;oa=ka+16|0;pa=d>>>0>>0?ka:d;d=pa+8|0;ja=la+-40|0;na=ma+8|0;X=(na&7|0)==0?0:0-na&7;na=ma+X|0;Y=ja-X|0;c[2234]=na;c[2231]=Y;c[na+4>>2]=Y|1;c[ma+ja+4>>2]=40;c[2235]=c[2350];ja=pa+4|0;c[ja>>2]=27;c[d>>2]=c[2340];c[d+4>>2]=c[2341];c[d+8>>2]=c[2342];c[d+12>>2]=c[2343];c[2340]=ma;c[2341]=la;c[2343]=0;c[2342]=d;d=pa+24|0;do{Y=d;d=d+4|0;c[d>>2]=7}while((Y+8|0)>>>0>>0);if((pa|0)!=(ka|0)){d=pa-ka|0;c[ja>>2]=c[ja>>2]&-2;c[ka+4>>2]=d|1;c[pa>>2]=d;Y=d>>>3;if(d>>>0<256){na=8952+(Y<<1<<2)|0;X=c[2228]|0;fa=1<>2]|0;Ga=fa}c[Ga>>2]=ka;c[Fa+12>>2]=ka;c[ka+8>>2]=Fa;c[ka+12>>2]=na;break}na=d>>>8;if(na)if(d>>>0>16777215)Ha=31;else{fa=(na+1048320|0)>>>16&8;X=na<>>16&4;Y=X<>>16&2;ga=14-(na|fa|X)+(Y<>>15)|0;Ha=d>>>(ga+7|0)&1|ga<<1}else Ha=0;ga=9216+(Ha<<2)|0;c[ka+28>>2]=Ha;c[ka+20>>2]=0;c[oa>>2]=0;X=c[2229]|0;Y=1<>2]=ka;c[ka+24>>2]=ga;c[ka+12>>2]=ka;c[ka+8>>2]=ka;break}Y=c[ga>>2]|0;j:do if((c[Y+4>>2]&-8|0)==(d|0))Ia=Y;else{ga=d<<((Ha|0)==31?0:25-(Ha>>>1)|0);X=Y;while(1){Ja=X+16+(ga>>>31<<2)|0;fa=c[Ja>>2]|0;if(!fa)break;if((c[fa+4>>2]&-8|0)==(d|0)){Ia=fa;break j}else{ga=ga<<1;X=fa}}c[Ja>>2]=ka;c[ka+24>>2]=X;c[ka+12>>2]=ka;c[ka+8>>2]=ka;break f}while(0);d=Ia+8|0;Y=c[d>>2]|0;c[Y+12>>2]=ka;c[d>>2]=ka;c[ka+8>>2]=Y;c[ka+12>>2]=Ia;c[ka+24>>2]=0}}else{Y=c[2232]|0;if((Y|0)==0|ma>>>0>>0)c[2232]=ma;c[2340]=ma;c[2341]=la;c[2343]=0;c[2237]=c[2346];c[2236]=-1;c[2241]=8952;c[2240]=8952;c[2243]=8960;c[2242]=8960;c[2245]=8968;c[2244]=8968;c[2247]=8976;c[2246]=8976;c[2249]=8984;c[2248]=8984;c[2251]=8992;c[2250]=8992;c[2253]=9e3;c[2252]=9e3;c[2255]=9008;c[2254]=9008;c[2257]=9016;c[2256]=9016;c[2259]=9024;c[2258]=9024;c[2261]=9032;c[2260]=9032;c[2263]=9040;c[2262]=9040;c[2265]=9048;c[2264]=9048;c[2267]=9056;c[2266]=9056;c[2269]=9064;c[2268]=9064;c[2271]=9072;c[2270]=9072;c[2273]=9080;c[2272]=9080;c[2275]=9088;c[2274]=9088;c[2277]=9096;c[2276]=9096;c[2279]=9104;c[2278]=9104;c[2281]=9112;c[2280]=9112;c[2283]=9120;c[2282]=9120;c[2285]=9128;c[2284]=9128;c[2287]=9136;c[2286]=9136;c[2289]=9144;c[2288]=9144;c[2291]=9152;c[2290]=9152;c[2293]=9160;c[2292]=9160;c[2295]=9168;c[2294]=9168;c[2297]=9176;c[2296]=9176;c[2299]=9184;c[2298]=9184;c[2301]=9192;c[2300]=9192;c[2303]=9200;c[2302]=9200;Y=la+-40|0;d=ma+8|0;oa=(d&7|0)==0?0:0-d&7;d=ma+oa|0;pa=Y-oa|0;c[2234]=d;c[2231]=pa;c[d+4>>2]=pa|1;c[ma+Y+4>>2]=40;c[2235]=c[2350]}while(0);ma=c[2231]|0;if(ma>>>0>G>>>0){la=ma-G|0;c[2231]=la;ma=c[2234]|0;ka=ma+G|0;c[2234]=ka;c[ka+4>>2]=la|1;c[ma+4>>2]=G|3;p=ma+8|0;k=b;return p|0}}c[(Ka()|0)>>2]=12;p=0;k=b;return p|0}function Ca(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if(!a)return;b=a+-8|0;d=c[2232]|0;e=c[a+-4>>2]|0;a=e&-8;f=b+a|0;do if(!(e&1)){g=c[b>>2]|0;if(!(e&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0>>0)return;if((c[2233]|0)==(h|0)){j=f+4|0;k=c[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break}c[2230]=i;c[j>>2]=k&-2;c[h+4>>2]=i|1;c[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=c[h+8>>2]|0;j=c[h+12>>2]|0;if((j|0)==(g|0)){c[2228]=c[2228]&~(1<>2]=j;c[j+8>>2]=g;l=h;m=i;n=h;break}}g=c[h+24>>2]|0;j=c[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=c[o>>2]|0;if(!p){q=c[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}o=s;p=t;while(1){k=o+20|0;q=c[k>>2]|0;if(!q){u=o+16|0;v=c[u>>2]|0;if(!v)break;else{w=v;x=u}}else{w=q;x=k}o=w;p=x}c[p>>2]=0;r=o}else{k=c[h+8>>2]|0;c[k+12>>2]=j;c[j+8>>2]=k;r=j}while(0);if(g){j=c[h+28>>2]|0;k=9216+(j<<2)|0;if((c[k>>2]|0)==(h|0)){c[k>>2]=r;if(!r){c[2229]=c[2229]&~(1<>2]|0)==(h|0)?j:g+20|0)>>2]=r;if(!r){l=h;m=i;n=h;break}}c[r+24>>2]=g;j=h+16|0;k=c[j>>2]|0;if(k|0){c[r+16>>2]=k;c[k+24>>2]=r}k=c[j+4>>2]|0;if(k){c[r+20>>2]=k;c[k+24>>2]=r;l=h;m=i;n=h}else{l=h;m=i;n=h}}else{l=h;m=i;n=h}}else{l=b;m=a;n=b}while(0);if(n>>>0>=f>>>0)return;b=f+4|0;a=c[b>>2]|0;if(!(a&1))return;if(!(a&2)){if((c[2234]|0)==(f|0)){r=(c[2231]|0)+m|0;c[2231]=r;c[2234]=l;c[l+4>>2]=r|1;if((l|0)!=(c[2233]|0))return;c[2233]=0;c[2230]=0;return}if((c[2233]|0)==(f|0)){r=(c[2230]|0)+m|0;c[2230]=r;c[2233]=n;c[l+4>>2]=r|1;c[n+r>>2]=r;return}r=(a&-8)+m|0;x=a>>>3;do if(a>>>0<256){w=c[f+8>>2]|0;t=c[f+12>>2]|0;if((t|0)==(w|0)){c[2228]=c[2228]&~(1<>2]=t;c[t+8>>2]=w;break}}else{w=c[f+24>>2]|0;t=c[f+12>>2]|0;do if((t|0)==(f|0)){s=f+16|0;d=s+4|0;e=c[d>>2]|0;if(!e){k=c[s>>2]|0;if(!k){y=0;break}else{z=k;A=s}}else{z=e;A=d}d=z;e=A;while(1){s=d+20|0;k=c[s>>2]|0;if(!k){j=d+16|0;q=c[j>>2]|0;if(!q)break;else{B=q;C=j}}else{B=k;C=s}d=B;e=C}c[e>>2]=0;y=d}else{o=c[f+8>>2]|0;c[o+12>>2]=t;c[t+8>>2]=o;y=t}while(0);if(w|0){t=c[f+28>>2]|0;h=9216+(t<<2)|0;if((c[h>>2]|0)==(f|0)){c[h>>2]=y;if(!y){c[2229]=c[2229]&~(1<>2]|0)==(f|0)?t:w+20|0)>>2]=y;if(!y)break}c[y+24>>2]=w;t=f+16|0;h=c[t>>2]|0;if(h|0){c[y+16>>2]=h;c[h+24>>2]=y}h=c[t+4>>2]|0;if(h|0){c[y+20>>2]=h;c[h+24>>2]=y}}}while(0);c[l+4>>2]=r|1;c[n+r>>2]=r;if((l|0)==(c[2233]|0)){c[2230]=r;return}else D=r}else{c[b>>2]=a&-2;c[l+4>>2]=m|1;c[n+m>>2]=m;D=m}m=D>>>3;if(D>>>0<256){n=8952+(m<<1<<2)|0;a=c[2228]|0;b=1<>2]|0;F=b}c[F>>2]=l;c[E+12>>2]=l;c[l+8>>2]=E;c[l+12>>2]=n;return}n=D>>>8;if(n)if(D>>>0>16777215)G=31;else{E=(n+1048320|0)>>>16&8;F=n<>>16&4;b=F<>>16&2;a=14-(n|E|F)+(b<>>15)|0;G=D>>>(a+7|0)&1|a<<1}else G=0;a=9216+(G<<2)|0;c[l+28>>2]=G;c[l+20>>2]=0;c[l+16>>2]=0;F=c[2229]|0;b=1<>2]=l;c[l+24>>2]=a;c[l+12>>2]=l;c[l+8>>2]=l}else{E=c[a>>2]|0;b:do if((c[E+4>>2]&-8|0)==(D|0))H=E;else{n=D<<((G|0)==31?0:25-(G>>>1)|0);m=E;while(1){I=m+16+(n>>>31<<2)|0;r=c[I>>2]|0;if(!r)break;if((c[r+4>>2]&-8|0)==(D|0)){H=r;break b}else{n=n<<1;m=r}}c[I>>2]=l;c[l+24>>2]=m;c[l+12>>2]=l;c[l+8>>2]=l;break a}while(0);E=H+8|0;w=c[E>>2]|0;c[w+12>>2]=l;c[E>>2]=l;c[l+8>>2]=w;c[l+12>>2]=H;c[l+24>>2]=0}while(0);l=(c[2236]|0)+-1|0;c[2236]=l;if(l|0)return;l=9368;while(1){H=c[l>>2]|0;if(!H)break;else l=H+8|0}c[2236]=-1;return}function Da(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!a){d=Ba(b)|0;return d|0}if(b>>>0>4294967231){c[(Ka()|0)>>2]=12;d=0;return d|0}e=Ea(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(e|0){d=e+8|0;return d|0}e=Ba(b)|0;if(!e){d=0;return d|0}f=c[a+-4>>2]|0;g=(f&-8)-((f&3|0)==0?8:4)|0;Qb(e|0,a|0,(g>>>0>>0?g:b)|0)|0;Ca(a);d=e;return d|0}function Ea(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,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=a+4|0;e=c[d>>2]|0;f=e&-8;g=a+f|0;if(!(e&3)){if(b>>>0<256){h=0;return h|0}if(f>>>0>=(b+4|0)>>>0?(f-b|0)>>>0<=c[2348]<<1>>>0:0){h=a;return h|0}h=0;return h|0}if(f>>>0>=b>>>0){i=f-b|0;if(i>>>0<=15){h=a;return h|0}j=a+b|0;c[d>>2]=e&1|b|2;c[j+4>>2]=i|3;k=g+4|0;c[k>>2]=c[k>>2]|1;Fa(j,i);h=a;return h|0}if((c[2234]|0)==(g|0)){i=(c[2231]|0)+f|0;j=i-b|0;k=a+b|0;if(i>>>0<=b>>>0){h=0;return h|0}c[d>>2]=e&1|b|2;c[k+4>>2]=j|1;c[2234]=k;c[2231]=j;h=a;return h|0}if((c[2233]|0)==(g|0)){j=(c[2230]|0)+f|0;if(j>>>0>>0){h=0;return h|0}k=j-b|0;if(k>>>0>15){i=a+b|0;l=a+j|0;c[d>>2]=e&1|b|2;c[i+4>>2]=k|1;c[l>>2]=k;m=l+4|0;c[m>>2]=c[m>>2]&-2;n=i;o=k}else{c[d>>2]=e&1|j|2;k=a+j+4|0;c[k>>2]=c[k>>2]|1;n=0;o=0}c[2230]=o;c[2233]=n;h=a;return h|0}n=c[g+4>>2]|0;if(n&2|0){h=0;return h|0}o=(n&-8)+f|0;if(o>>>0>>0){h=0;return h|0}f=o-b|0;k=n>>>3;do if(n>>>0<256){j=c[g+8>>2]|0;i=c[g+12>>2]|0;if((i|0)==(j|0)){c[2228]=c[2228]&~(1<>2]=i;c[i+8>>2]=j;break}}else{j=c[g+24>>2]|0;i=c[g+12>>2]|0;do if((i|0)==(g|0)){m=g+16|0;l=m+4|0;p=c[l>>2]|0;if(!p){q=c[m>>2]|0;if(!q){r=0;break}else{s=q;t=m}}else{s=p;t=l}l=s;p=t;while(1){m=l+20|0;q=c[m>>2]|0;if(!q){u=l+16|0;v=c[u>>2]|0;if(!v)break;else{w=v;x=u}}else{w=q;x=m}l=w;p=x}c[p>>2]=0;r=l}else{m=c[g+8>>2]|0;c[m+12>>2]=i;c[i+8>>2]=m;r=i}while(0);if(j|0){i=c[g+28>>2]|0;m=9216+(i<<2)|0;if((c[m>>2]|0)==(g|0)){c[m>>2]=r;if(!r){c[2229]=c[2229]&~(1<>2]|0)==(g|0)?i:j+20|0)>>2]=r;if(!r)break}c[r+24>>2]=j;i=g+16|0;m=c[i>>2]|0;if(m|0){c[r+16>>2]=m;c[m+24>>2]=r}m=c[i+4>>2]|0;if(m|0){c[r+20>>2]=m;c[m+24>>2]=r}}}while(0);if(f>>>0<16){c[d>>2]=e&1|o|2;r=a+o+4|0;c[r>>2]=c[r>>2]|1;h=a;return h|0}else{r=a+b|0;c[d>>2]=e&1|b|2;c[r+4>>2]=f|3;b=a+o+4|0;c[b>>2]=c[b>>2]|1;Fa(r,f);h=a;return h|0}return 0}function Fa(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,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=a+b|0;e=c[a+4>>2]|0;do if(!(e&1)){f=c[a>>2]|0;if(!(e&3))return;g=a+(0-f)|0;h=f+b|0;if((c[2233]|0)==(g|0)){i=d+4|0;j=c[i>>2]|0;if((j&3|0)!=3){k=g;l=h;break}c[2230]=h;c[i>>2]=j&-2;c[g+4>>2]=h|1;c[d>>2]=h;return}j=f>>>3;if(f>>>0<256){f=c[g+8>>2]|0;i=c[g+12>>2]|0;if((i|0)==(f|0)){c[2228]=c[2228]&~(1<>2]=i;c[i+8>>2]=f;k=g;l=h;break}}f=c[g+24>>2]|0;i=c[g+12>>2]|0;do if((i|0)==(g|0)){j=g+16|0;m=j+4|0;n=c[m>>2]|0;if(!n){o=c[j>>2]|0;if(!o){p=0;break}else{q=o;r=j}}else{q=n;r=m}m=q;n=r;while(1){j=m+20|0;o=c[j>>2]|0;if(!o){s=m+16|0;t=c[s>>2]|0;if(!t)break;else{u=t;v=s}}else{u=o;v=j}m=u;n=v}c[n>>2]=0;p=m}else{j=c[g+8>>2]|0;c[j+12>>2]=i;c[i+8>>2]=j;p=i}while(0);if(f){i=c[g+28>>2]|0;j=9216+(i<<2)|0;if((c[j>>2]|0)==(g|0)){c[j>>2]=p;if(!p){c[2229]=c[2229]&~(1<>2]|0)==(g|0)?i:f+20|0)>>2]=p;if(!p){k=g;l=h;break}}c[p+24>>2]=f;i=g+16|0;j=c[i>>2]|0;if(j|0){c[p+16>>2]=j;c[j+24>>2]=p}j=c[i+4>>2]|0;if(j){c[p+20>>2]=j;c[j+24>>2]=p;k=g;l=h}else{k=g;l=h}}else{k=g;l=h}}else{k=a;l=b}while(0);b=d+4|0;a=c[b>>2]|0;if(!(a&2)){if((c[2234]|0)==(d|0)){p=(c[2231]|0)+l|0;c[2231]=p;c[2234]=k;c[k+4>>2]=p|1;if((k|0)!=(c[2233]|0))return;c[2233]=0;c[2230]=0;return}if((c[2233]|0)==(d|0)){p=(c[2230]|0)+l|0;c[2230]=p;c[2233]=k;c[k+4>>2]=p|1;c[k+p>>2]=p;return}p=(a&-8)+l|0;v=a>>>3;do if(a>>>0<256){u=c[d+8>>2]|0;r=c[d+12>>2]|0;if((r|0)==(u|0)){c[2228]=c[2228]&~(1<>2]=r;c[r+8>>2]=u;break}}else{u=c[d+24>>2]|0;r=c[d+12>>2]|0;do if((r|0)==(d|0)){q=d+16|0;e=q+4|0;j=c[e>>2]|0;if(!j){i=c[q>>2]|0;if(!i){w=0;break}else{x=i;y=q}}else{x=j;y=e}e=x;j=y;while(1){q=e+20|0;i=c[q>>2]|0;if(!i){o=e+16|0;s=c[o>>2]|0;if(!s)break;else{z=s;A=o}}else{z=i;A=q}e=z;j=A}c[j>>2]=0;w=e}else{m=c[d+8>>2]|0;c[m+12>>2]=r;c[r+8>>2]=m;w=r}while(0);if(u|0){r=c[d+28>>2]|0;h=9216+(r<<2)|0;if((c[h>>2]|0)==(d|0)){c[h>>2]=w;if(!w){c[2229]=c[2229]&~(1<>2]|0)==(d|0)?r:u+20|0)>>2]=w;if(!w)break}c[w+24>>2]=u;r=d+16|0;h=c[r>>2]|0;if(h|0){c[w+16>>2]=h;c[h+24>>2]=w}h=c[r+4>>2]|0;if(h|0){c[w+20>>2]=h;c[h+24>>2]=w}}}while(0);c[k+4>>2]=p|1;c[k+p>>2]=p;if((k|0)==(c[2233]|0)){c[2230]=p;return}else B=p}else{c[b>>2]=a&-2;c[k+4>>2]=l|1;c[k+l>>2]=l;B=l}l=B>>>3;if(B>>>0<256){a=8952+(l<<1<<2)|0;b=c[2228]|0;p=1<>2]|0;D=p}c[D>>2]=k;c[C+12>>2]=k;c[k+8>>2]=C;c[k+12>>2]=a;return}a=B>>>8;if(a)if(B>>>0>16777215)E=31;else{C=(a+1048320|0)>>>16&8;D=a<>>16&4;p=D<>>16&2;b=14-(a|C|D)+(p<>>15)|0;E=B>>>(b+7|0)&1|b<<1}else E=0;b=9216+(E<<2)|0;c[k+28>>2]=E;c[k+20>>2]=0;c[k+16>>2]=0;D=c[2229]|0;p=1<>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;return}p=c[b>>2]|0;a:do if((c[p+4>>2]&-8|0)==(B|0))F=p;else{b=B<<((E|0)==31?0:25-(E>>>1)|0);D=p;while(1){G=D+16+(b>>>31<<2)|0;C=c[G>>2]|0;if(!C)break;if((c[C+4>>2]&-8|0)==(B|0)){F=C;break a}else{b=b<<1;D=C}}c[G>>2]=k;c[k+24>>2]=D;c[k+12>>2]=k;c[k+8>>2]=k;return}while(0);G=F+8|0;B=c[G>>2]|0;c[B+12>>2]=k;c[G>>2]=k;c[k+8>>2]=B;c[k+12>>2]=F;c[k+24>>2]=0;return}function Ga(a){a=a|0;var b=0,d=0;b=k;k=k+16|0;d=b;c[d>>2]=La(c[a+60>>2]|0)|0;a=Ja(_(6,d|0)|0)|0;k=b;return a|0}function Ha(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;f=k;k=k+32|0;g=f+16|0;h=f;c[h>>2]=d;i=h+4|0;j=b+48|0;l=c[j>>2]|0;c[i>>2]=e-((l|0)!=0&1);m=b+44|0;c[h+8>>2]=c[m>>2];c[h+12>>2]=l;c[g>>2]=c[b+60>>2];c[g+4>>2]=h;c[g+8>>2]=2;h=Ja(X(145,g|0)|0)|0;if((h|0)>=1){g=c[i>>2]|0;if(h>>>0>g>>>0){i=c[m>>2]|0;m=b+4|0;c[m>>2]=i;l=i;c[b+8>>2]=l+(h-g);if(!(c[j>>2]|0))n=e;else{c[m>>2]=l+1;a[d+(e+-1)>>0]=a[l>>0]|0;n=e}}else n=h}else{c[b>>2]=c[b>>2]|h&48^16;n=h}k=f;return n|0}function Ia(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=k;k=k+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((Ja(W(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;k=e;return h|0}function Ja(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(Ka()|0)>>2]=0-a;b=-1}else b=a;return b|0}function Ka(){return 9472}function La(a){a=a|0;return a|0}function Ma(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=k;k=k+48|0;f=e+32|0;g=e+16|0;h=e;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;l=a+20|0;m=(c[l>>2]|0)-j|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=m+d|0;m=a+60|0;c[g>>2]=c[m>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=Ja(Y(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;n=b;o=h;p=j;while(1){if((p|0)<0)break;n=n-p|0;q=c[o+4>>2]|0;r=p>>>0>q>>>0;s=r?o+8|0:o;t=g+(r<<31>>31)|0;u=p-(r?q:0)|0;c[s>>2]=(c[s>>2]|0)+u;q=s+4|0;c[q>>2]=(c[q>>2]|0)-u;c[f>>2]=c[m>>2];c[f+4>>2]=s;c[f+8>>2]=t;p=Ja(Y(146,f|0)|0)|0;if((n|0)==(p|0)){v=3;break a}else{g=t;o=s}}c[a+16>>2]=0;c[i>>2]=0;c[l>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)w=0;else w=d-(c[o+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=c[a+44>>2]|0;c[a+16>>2]=v+(c[a+48>>2]|0);a=v;c[i>>2]=a;c[l>>2]=a;w=d}k=e;return w|0}function Na(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=k;k=k+32|0;g=f;c[b+36>>2]=3;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21523,c[g+8>>2]=f+16,Z(54,g|0)|0):0)a[b+75>>0]=-1;g=Ma(b,d,e)|0;k=f;return g|0}function Oa(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=b;do{c=c+1|0;d=d+1|0;b=a[c>>0]|0;e=a[d>>0]|0}while(!(b<<24>>24==0?1:b<<24>>24!=e<<24>>24));f=e;g=b}return (g&255)-(f&255)|0}function Pa(a){a=a|0;return (a+-48|0)>>>0<10|0}function Qa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=k;k=k+224|0;g=f+208|0;h=f+160|0;i=f+80|0;j=f;l=h;m=l+40|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[g>>2]=c[e>>2];if((Ra(0,d,g,i,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=Sa(b)|0;else o=0;e=c[b>>2]|0;l=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=j;q=b+28|0;c[q>>2]=j;r=b+20|0;c[r>>2]=j;c[e>>2]=80;s=b+16|0;c[s>>2]=j+80;j=Ra(b,d,g,i,h)|0;if(!p)t=j;else{ea[c[b+36>>2]&7](b,0,0)|0;u=(c[r>>2]|0)==0?-1:j;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u}}else t=Ra(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|l;if(o|0)Ta(b);n=(h&32|0)==0?t:-1}k=f;return n|0}function Ra(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;j=k;k=k+64|0;l=j+56|0;m=j+40|0;n=j;o=j+48|0;p=j+60|0;c[l>>2]=e;e=(d|0)!=0;q=n+40|0;r=q;s=n+39|0;n=o+4|0;t=0;u=0;v=0;a:while(1){w=t;y=u;while(1){do if((y|0)>-1)if((w|0)>(2147483647-y|0)){c[(Ka()|0)>>2]=75;z=-1;break}else{z=w+y|0;break}else z=y;while(0);A=c[l>>2]|0;B=a[A>>0]|0;if(!(B<<24>>24)){C=94;break a}D=B;B=A;b:while(1){switch(D<<24>>24){case 37:{C=10;break b;break}case 0:{E=B;break b;break}default:{}}F=B+1|0;c[l>>2]=F;D=a[F>>0]|0;B=F}c:do if((C|0)==10){C=0;D=B;F=B;while(1){if((a[F+1>>0]|0)!=37){E=D;break c}G=D+1|0;F=F+2|0;c[l>>2]=F;if((a[F>>0]|0)!=37){E=G;break}else D=G}}while(0);w=E-A|0;if(e)Ua(d,A,w);if(!w)break;else y=z}y=(Pa(a[(c[l>>2]|0)+1>>0]|0)|0)==0;w=c[l>>2]|0;if(!y?(a[w+2>>0]|0)==36:0){H=(a[w+1>>0]|0)+-48|0;I=1;J=3}else{H=-1;I=v;J=1}y=w+J|0;c[l>>2]=y;w=a[y>>0]|0;B=(w<<24>>24)+-32|0;if(B>>>0>31|(1<>2]=F;G=a[F>>0]|0;D=(G<<24>>24)+-32|0;if(D>>>0>31|(1<>24==42){if((Pa(a[M+1>>0]|0)|0)!=0?(B=c[l>>2]|0,(a[B+2>>0]|0)==36):0){w=B+1|0;c[i+((a[w>>0]|0)+-48<<2)>>2]=10;N=c[g+((a[w>>0]|0)+-48<<3)>>2]|0;O=1;P=B+3|0}else{if(I|0){Q=-1;break}if(e){B=(c[f>>2]|0)+(4-1)&~(4-1);w=c[B>>2]|0;c[f>>2]=B+4;R=w}else R=0;N=R;O=0;P=(c[l>>2]|0)+1|0}c[l>>2]=P;w=(N|0)<0;S=w?0-N|0:N;T=w?K|8192:K;U=O;V=P}else{w=Va(l)|0;if((w|0)<0){Q=-1;break}S=w;T=K;U=I;V=c[l>>2]|0}do if((a[V>>0]|0)==46){w=V+1|0;if((a[w>>0]|0)!=42){c[l>>2]=w;w=Va(l)|0;W=w;X=c[l>>2]|0;break}if(Pa(a[V+2>>0]|0)|0?(w=c[l>>2]|0,(a[w+3>>0]|0)==36):0){B=w+2|0;c[i+((a[B>>0]|0)+-48<<2)>>2]=10;D=c[g+((a[B>>0]|0)+-48<<3)>>2]|0;B=w+4|0;c[l>>2]=B;W=D;X=B;break}if(U|0){Q=-1;break a}if(e){B=(c[f>>2]|0)+(4-1)&~(4-1);D=c[B>>2]|0;c[f>>2]=B+4;Y=D}else Y=0;D=(c[l>>2]|0)+2|0;c[l>>2]=D;W=Y;X=D}else{W=-1;X=V}while(0);D=0;B=X;while(1){if(((a[B>>0]|0)+-65|0)>>>0>57){Q=-1;break a}w=B;B=B+1|0;c[l>>2]=B;Z=a[(a[w>>0]|0)+-65+(3296+(D*58|0))>>0]|0;_=Z&255;if((_+-1|0)>>>0>=8)break;else D=_}if(!(Z<<24>>24)){Q=-1;break}w=(H|0)>-1;do if(Z<<24>>24==19)if(w){Q=-1;break a}else C=54;else{if(w){c[i+(H<<2)>>2]=_;F=g+(H<<3)|0;y=c[F+4>>2]|0;G=m;c[G>>2]=c[F>>2];c[G+4>>2]=y;C=54;break}if(!e){Q=0;break a}Wa(m,_,f);$=c[l>>2]|0;C=55}while(0);if((C|0)==54){C=0;if(e){$=B;C=55}else aa=0}d:do if((C|0)==55){C=0;w=a[$+-1>>0]|0;y=(D|0)!=0&(w&15|0)==3?w&-33:w;w=T&-65537;G=(T&8192|0)==0?T:w;e:do switch(y|0){case 110:{switch((D&255)<<24>>24){case 0:{c[c[m>>2]>>2]=z;aa=0;break d;break}case 1:{c[c[m>>2]>>2]=z;aa=0;break d;break}case 2:{F=c[m>>2]|0;c[F>>2]=z;c[F+4>>2]=((z|0)<0)<<31>>31;aa=0;break d;break}case 3:{b[c[m>>2]>>1]=z;aa=0;break d;break}case 4:{a[c[m>>2]>>0]=z;aa=0;break d;break}case 6:{c[c[m>>2]>>2]=z;aa=0;break d;break}case 7:{F=c[m>>2]|0;c[F>>2]=z;c[F+4>>2]=((z|0)<0)<<31>>31;aa=0;break d;break}default:{aa=0;break d}}break}case 112:{ba=120;ca=W>>>0>8?W:8;da=G|8;C=67;break}case 88:case 120:{ba=y;ca=W;da=G;C=67;break}case 111:{F=m;ea=c[F>>2]|0;fa=c[F+4>>2]|0;F=Ya(ea,fa,q)|0;ga=r-F|0;ha=F;ia=0;ja=6729;ka=(G&8|0)==0|(W|0)>(ga|0)?W:ga+1|0;la=G;ma=ea;na=fa;C=73;break}case 105:case 100:{fa=m;ea=c[fa>>2]|0;ga=c[fa+4>>2]|0;if((ga|0)<0){fa=Jb(0,0,ea|0,ga|0)|0;F=x;oa=m;c[oa>>2]=fa;c[oa+4>>2]=F;pa=1;qa=6729;ra=fa;sa=F;C=72;break e}else{pa=(G&2049|0)!=0&1;qa=(G&2048|0)==0?((G&1|0)==0?6729:6731):6730;ra=ea;sa=ga;C=72;break e}break}case 117:{ga=m;pa=0;qa=6729;ra=c[ga>>2]|0;sa=c[ga+4>>2]|0;C=72;break}case 99:{a[s>>0]=c[m>>2];ta=s;ua=0;va=6729;wa=1;xa=w;ya=r;break}case 109:{za=_a(c[(Ka()|0)>>2]|0)|0;C=77;break}case 115:{ga=c[m>>2]|0;za=(ga|0)==0?6739:ga;C=77;break}case 67:{c[o>>2]=c[m>>2];c[n>>2]=0;c[m>>2]=o;Aa=-1;C=81;break}case 83:{if(!W){ab(d,32,S,0,G);Ba=0;C=91}else{Aa=W;C=81}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{aa=cb(d,+h[m>>3],S,W,G,y)|0;break d;break}default:{ta=A;ua=0;va=6729;wa=W;xa=G;ya=r}}while(0);f:do if((C|0)==67){C=0;y=m;ga=c[y>>2]|0;ea=c[y+4>>2]|0;y=Xa(ga,ea,q,ba&32)|0;F=(da&8|0)==0|(ga|0)==0&(ea|0)==0;ha=y;ia=F?0:2;ja=F?6729:6729+(ba>>>4)|0;ka=ca;la=da;ma=ga;na=ea;C=73}else if((C|0)==72){C=0;ha=Za(ra,sa,q)|0;ia=pa;ja=qa;ka=W;la=G;ma=ra;na=sa;C=73}else if((C|0)==77){C=0;ea=$a(za,0,W)|0;ga=(ea|0)==0;ta=za;ua=0;va=6729;wa=ga?W:ea-za|0;xa=w;ya=ga?za+W|0:ea}else if((C|0)==81){C=0;ea=c[m>>2]|0;ga=0;while(1){F=c[ea>>2]|0;if(!F){Ca=ga;break}y=bb(p,F)|0;Da=(y|0)<0;if(Da|y>>>0>(Aa-ga|0)>>>0){C=85;break}F=y+ga|0;if(Aa>>>0>F>>>0){ea=ea+4|0;ga=F}else{Ca=F;break}}if((C|0)==85){C=0;if(Da){Q=-1;break a}else Ca=ga}ab(d,32,S,Ca,G);if(!Ca){Ba=0;C=91}else{ea=c[m>>2]|0;F=0;while(1){y=c[ea>>2]|0;if(!y){Ba=Ca;C=91;break f}fa=bb(p,y)|0;F=fa+F|0;if((F|0)>(Ca|0)){Ba=Ca;C=91;break f}Ua(d,p,fa);if(F>>>0>=Ca>>>0){Ba=Ca;C=91;break}else ea=ea+4|0}}}while(0);if((C|0)==73){C=0;w=(ma|0)!=0|(na|0)!=0;ea=(ka|0)!=0|w;F=r-ha+((w^1)&1)|0;ta=ea?ha:q;ua=ia;va=ja;wa=ea?((ka|0)>(F|0)?ka:F):0;xa=(ka|0)>-1?la&-65537:la;ya=r}else if((C|0)==91){C=0;ab(d,32,S,Ba,G^8192);aa=(S|0)>(Ba|0)?S:Ba;break}F=ya-ta|0;ea=(wa|0)<(F|0)?F:wa;w=ea+ua|0;ga=(S|0)<(w|0)?w:S;ab(d,32,ga,w,xa);Ua(d,va,ua);ab(d,48,ga,w,xa^65536);ab(d,48,ea,F,0);Ua(d,ta,F);ab(d,32,ga,w,xa^8192);aa=ga}while(0);t=aa;u=z;v=U}g:do if((C|0)==94)if(!d)if(!v)Q=0;else{U=1;while(1){u=c[i+(U<<2)>>2]|0;if(!u)break;Wa(g+(U<<3)|0,u,f);u=U+1|0;if(u>>>0<10)U=u;else{Q=1;break g}}u=U;while(1){if(c[i+(u<<2)>>2]|0){Q=-1;break g}u=u+1|0;if(u>>>0>=10){Q=1;break}}}else Q=z;while(0);k=j;return Q|0}function Sa(a){a=a|0;return 1}function Ta(a){a=a|0;return}function Ua(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))pb(b,d,a)|0;return}function Va(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;if(!(Pa(a[c[b>>2]>>0]|0)|0))d=0;else{e=0;while(1){f=c[b>>2]|0;g=(e*10|0)+-48+(a[f>>0]|0)|0;h=f+1|0;c[b>>2]=h;if(!(Pa(a[h>>0]|0)|0)){d=g;break}else e=g}}return d|0}function Wa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0);while(0);return}function Xa(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0;if((b|0)==0&(c|0)==0)g=e;else{h=e;e=c;c=b;while(1){b=h+-1|0;a[b>>0]=d[3760+(c&15)>>0]|0|f;c=Nb(c|0,e|0,4)|0;e=x;if((c|0)==0&(e|0)==0){g=b;break}else h=b}}return g|0}function Ya(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((b|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=b;while(1){b=f+-1|0;a[b>>0]=c&7|48;c=Nb(c|0,d|0,3)|0;d=x;if((c|0)==0&(d|0)==0){e=b;break}else f=b}}return e|0}function Za(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;do{c=f;f=Mb(f|0,g|0,10,0)|0;h=g;g=x;i=Hb(f|0,g|0,10,0)|0;j=Jb(c|0,h|0,i|0,x|0)|0;e=e+-1|0;a[e>>0]=j&255|48}while(h>>>0>9|(h|0)==9&c>>>0>4294967295);k=f;l=e}else{k=b;l=d}if(!k)m=l;else{d=k;k=l;while(1){l=d;d=(d>>>0)/10|0;b=k+-1|0;a[b>>0]=l-(d*10|0)|48;if(l>>>0<10){m=b;break}else k=b}}return m|0}function _a(a){a=a|0;return kb(a,c[(jb()|0)+188>>2]|0)|0}function $a(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=b;j=e;while(1){if((a[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=b;r=e;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else m=16;b:do if((m|0)==6){r=d&255;if((a[k>>0]|0)==r<<24>>24)if(!l){m=16;break}else{t=k;break}q=M(f,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){e=c[s>>2]^q;if((e&-2139062144^-2139062144)&e+-16843009|0){u=g;v=s;break c}e=s+4|0;b=g+-4|0;if(b>>>0>3){s=e;g=b}else{w=e;x=b;m=11;break}}}else{w=k;x=l;m=11}while(0);if((m|0)==11)if(!x){m=16;break}else{u=x;v=w}q=v;g=u;while(1){if((a[q>>0]|0)==r<<24>>24){t=q;break b}g=g+-1|0;if(!g){m=16;break}else q=q+1|0}}while(0);if((m|0)==16)t=0;return t|0}function ab(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=k;k=k+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;Rb(g|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Ua(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Ua(a,g,h)}k=f;return}function bb(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=gb(a,b,0)|0;return c|0}function cb(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0.0,K=0,L=0,N=0,O=0,P=0,Q=0,R=0.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.0,ja=0.0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;j=k;k=k+560|0;l=j+32|0;m=j+536|0;n=j;o=n;p=j+540|0;c[m>>2]=0;q=p+12|0;r=db(e)|0;s=x;if((s|0)<0){t=-e;u=db(t)|0;v=t;w=1;y=6746;z=x;A=u}else{v=e;w=(h&2049|0)!=0&1;y=(h&2048|0)==0?((h&1|0)==0?6747:6752):6749;z=s;A=r}do if(0==0&(z&2146435072|0)==2146435072){r=(i&32|0)!=0;A=w+3|0;ab(b,32,f,A,h&-65537);Ua(b,y,w);Ua(b,v!=v|0.0!=0.0?(r?6773:6777):r?6765:6769,3);ab(b,32,f,A,h^8192);B=A}else{e=+eb(v,m)*2.0;A=e!=0.0;if(A)c[m>>2]=(c[m>>2]|0)+-1;r=i|32;if((r|0)==97){s=i&32;u=(s|0)==0?y:y+9|0;C=w|2;D=12-g|0;do if(!(g>>>0>11|(D|0)==0)){t=8.0;E=D;do{E=E+-1|0;t=t*16.0}while((E|0)!=0);if((a[u>>0]|0)==45){F=-(t+(-e-t));break}else{F=e+t-t;break}}else F=e;while(0);D=c[m>>2]|0;E=(D|0)<0?0-D|0:D;G=Za(E,((E|0)<0)<<31>>31,q)|0;if((G|0)==(q|0)){E=p+11|0;a[E>>0]=48;H=E}else H=G;a[H+-1>>0]=(D>>31&2)+43;D=H+-2|0;a[D>>0]=i+15;G=(g|0)<1;E=(h&8|0)==0;I=n;J=F;while(1){K=~~J;L=I+1|0;a[I>>0]=s|d[3760+K>>0];J=(J-+(K|0))*16.0;if((L-o|0)==1?!(E&(G&J==0.0)):0){a[L>>0]=46;N=I+2|0}else N=L;if(!(J!=0.0))break;else I=N}I=N;if((g|0)!=0?(-2-o+I|0)<(g|0):0){G=q;E=D;O=g+2+G-E|0;P=G;Q=E}else{E=q;G=D;O=E-o-G+I|0;P=E;Q=G}G=O+C|0;ab(b,32,f,G,h);Ua(b,u,C);ab(b,48,f,G,h^65536);E=I-o|0;Ua(b,n,E);I=P-Q|0;ab(b,48,O-(E+I)|0,0,0);Ua(b,D,I);ab(b,32,f,G,h^8192);B=G;break}G=(g|0)<0?6:g;if(A){I=(c[m>>2]|0)+-28|0;c[m>>2]=I;R=e*268435456.0;S=I}else{R=e;S=c[m>>2]|0}I=(S|0)<0?l:l+288|0;E=I;J=R;do{s=~~J>>>0;c[E>>2]=s;E=E+4|0;J=(J-+(s>>>0))*1.0e9}while(J!=0.0);A=I;if((S|0)>0){D=I;C=E;u=S;while(1){s=(u|0)<29?u:29;L=C+-4|0;if(L>>>0>=D>>>0){K=L;L=0;do{T=Ob(c[K>>2]|0,0,s|0)|0;U=Ib(T|0,x|0,L|0,0)|0;T=x;L=Mb(U|0,T|0,1e9,0)|0;V=Hb(L|0,x|0,1e9,0)|0;W=Jb(U|0,T|0,V|0,x|0)|0;c[K>>2]=W;K=K+-4|0}while(K>>>0>=D>>>0);if(L){K=D+-4|0;c[K>>2]=L;X=K}else X=D}else X=D;a:do if(C>>>0>X>>>0){K=C;while(1){W=K+-4|0;if(c[W>>2]|0){Y=K;break a}if(W>>>0>X>>>0)K=W;else{Y=W;break}}}else Y=C;while(0);L=(c[m>>2]|0)-s|0;c[m>>2]=L;if((L|0)>0){D=X;C=Y;u=L}else{Z=X;_=Y;$=L;break}}}else{Z=I;_=E;$=S}if(($|0)<0){u=((G+25|0)/9|0)+1|0;C=(r|0)==102;D=Z;L=_;K=$;while(1){W=0-K|0;V=(W|0)<9?W:9;if(D>>>0>>0){W=(1<>>V;U=0;aa=D;do{ba=c[aa>>2]|0;c[aa>>2]=(ba>>>V)+U;U=M(ba&W,T)|0;aa=aa+4|0}while(aa>>>0>>0);aa=(c[D>>2]|0)==0?D+4|0:D;if(!U){ca=L;da=aa}else{c[L>>2]=U;ca=L+4|0;da=aa}}else{ca=L;da=(c[D>>2]|0)==0?D+4|0:D}aa=C?I:da;T=(ca-aa>>2|0)>(u|0)?aa+(u<<2)|0:ca;K=(c[m>>2]|0)+V|0;c[m>>2]=K;if((K|0)>=0){ea=da;fa=T;break}else{D=da;L=T}}}else{ea=Z;fa=_}if(ea>>>0>>0){L=(A-ea>>2)*9|0;D=c[ea>>2]|0;if(D>>>0<10)ga=L;else{K=L;L=10;while(1){L=L*10|0;u=K+1|0;if(D>>>0>>0){ga=u;break}else K=u}}}else ga=0;K=(r|0)==103;L=(G|0)!=0;D=G-((r|0)==102?0:ga)+((L&K)<<31>>31)|0;if((D|0)<(((fa-A>>2)*9|0)+-9|0)){u=D+9216|0;D=(u|0)/9|0;C=I+4+(D+-1024<<2)|0;E=u-(D*9|0)|0;if((E|0)<8){D=E;E=10;while(1){u=E*10|0;if((D|0)<7){D=D+1|0;E=u}else{ha=u;break}}}else ha=10;E=c[C>>2]|0;D=(E>>>0)/(ha>>>0)|0;r=E-(M(D,ha)|0)|0;u=(C+4|0)==(fa|0);if(!(u&(r|0)==0)){t=(D&1|0)==0?9007199254740992.0:9007199254740994.0;D=ha>>>1;J=r>>>0>>0?.5:u&(r|0)==(D|0)?1.0:1.5;if(!w){ia=J;ja=t}else{D=(a[y>>0]|0)==45;ia=D?-J:J;ja=D?-t:t}D=E-r|0;c[C>>2]=D;if(ja+ia!=ja){r=D+ha|0;c[C>>2]=r;if(r>>>0>999999999){r=C;D=ea;while(1){E=r+-4|0;c[r>>2]=0;if(E>>>0>>0){u=D+-4|0;c[u>>2]=0;ka=u}else ka=D;u=(c[E>>2]|0)+1|0;c[E>>2]=u;if(u>>>0>999999999){r=E;D=ka}else{la=E;ma=ka;break}}}else{la=C;ma=ea}D=(A-ma>>2)*9|0;r=c[ma>>2]|0;if(r>>>0<10){na=la;oa=D;pa=ma}else{E=D;D=10;while(1){D=D*10|0;u=E+1|0;if(r>>>0>>0){na=la;oa=u;pa=ma;break}else E=u}}}else{na=C;oa=ga;pa=ea}}else{na=C;oa=ga;pa=ea}E=na+4|0;qa=oa;ra=fa>>>0>E>>>0?E:fa;sa=pa}else{qa=ga;ra=fa;sa=ea}E=0-qa|0;b:do if(ra>>>0>sa>>>0){D=ra;while(1){r=D+-4|0;if(c[r>>2]|0){ta=D;ua=1;break b}if(r>>>0>sa>>>0)D=r;else{ta=r;ua=0;break}}}else{ta=ra;ua=0}while(0);do if(K){C=G+((L^1)&1)|0;if((C|0)>(qa|0)&(qa|0)>-5){va=i+-1|0;wa=C+-1-qa|0}else{va=i+-2|0;wa=C+-1|0}if(!(h&8)){if(ua?(C=c[ta+-4>>2]|0,(C|0)!=0):0)if(!((C>>>0)%10|0)){D=0;V=10;while(1){V=V*10|0;U=D+1|0;if((C>>>0)%(V>>>0)|0|0){xa=U;break}else D=U}}else xa=0;else xa=9;D=((ta-A>>2)*9|0)+-9|0;if((va|32|0)==102){V=D-xa|0;C=(V|0)>0?V:0;ya=va;za=(wa|0)<(C|0)?wa:C;break}else{C=D+qa-xa|0;D=(C|0)>0?C:0;ya=va;za=(wa|0)<(D|0)?wa:D;break}}else{ya=va;za=wa}}else{ya=i;za=G}while(0);G=(za|0)!=0;A=G?1:h>>>3&1;L=(ya|32|0)==102;if(L){Aa=0;Ba=(qa|0)>0?qa:0}else{K=(qa|0)<0?E:qa;D=Za(K,((K|0)<0)<<31>>31,q)|0;K=q;if((K-D|0)<2){C=D;while(1){V=C+-1|0;a[V>>0]=48;if((K-V|0)<2)C=V;else{Ca=V;break}}}else Ca=D;a[Ca+-1>>0]=(qa>>31&2)+43;C=Ca+-2|0;a[C>>0]=ya;Aa=C;Ba=K-C|0}C=w+1+za+A+Ba|0;ab(b,32,f,C,h);Ua(b,y,w);ab(b,48,f,C,h^65536);if(L){E=sa>>>0>I>>>0?I:sa;V=n+9|0;U=V;r=n+8|0;u=E;do{T=Za(c[u>>2]|0,0,V)|0;if((u|0)==(E|0))if((T|0)==(V|0)){a[r>>0]=48;Da=r}else Da=T;else if(T>>>0>n>>>0){Rb(n|0,48,T-o|0)|0;aa=T;while(1){W=aa+-1|0;if(W>>>0>n>>>0)aa=W;else{Da=W;break}}}else Da=T;Ua(b,Da,U-Da|0);u=u+4|0}while(u>>>0<=I>>>0);if(!((h&8|0)==0&(G^1)))Ua(b,6781,1);if(u>>>0>>0&(za|0)>0){I=za;U=u;while(1){r=Za(c[U>>2]|0,0,V)|0;if(r>>>0>n>>>0){Rb(n|0,48,r-o|0)|0;E=r;while(1){L=E+-1|0;if(L>>>0>n>>>0)E=L;else{Ea=L;break}}}else Ea=r;Ua(b,Ea,(I|0)<9?I:9);U=U+4|0;E=I+-9|0;if(!(U>>>0>>0&(I|0)>9)){Fa=E;break}else I=E}}else Fa=za;ab(b,48,Fa+9|0,9,0)}else{I=ua?ta:sa+4|0;if(sa>>>0>>0&(za|0)>-1){U=n+9|0;V=(h&8|0)==0;u=U;G=0-o|0;E=n+8|0;T=za;L=sa;while(1){A=Za(c[L>>2]|0,0,U)|0;if((A|0)==(U|0)){a[E>>0]=48;Ga=E}else Ga=A;do if((L|0)==(sa|0)){A=Ga+1|0;Ua(b,Ga,1);if(V&(T|0)<1){Ha=A;break}Ua(b,6781,1);Ha=A}else{if(Ga>>>0<=n>>>0){Ha=Ga;break}Rb(n|0,48,Ga+G|0)|0;A=Ga;while(1){K=A+-1|0;if(K>>>0>n>>>0)A=K;else{Ha=K;break}}}while(0);r=u-Ha|0;Ua(b,Ha,(T|0)>(r|0)?r:T);A=T-r|0;L=L+4|0;if(!(L>>>0>>0&(A|0)>-1)){Ia=A;break}else T=A}}else Ia=za;ab(b,48,Ia+18|0,18,0);Ua(b,Aa,q-Aa|0)}ab(b,32,f,C,h^8192);B=C}while(0);k=j;return ((B|0)<(f|0)?f:B)|0}function db(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;x=c[j+4>>2]|0;return b|0}function eb(a,b){a=+a;b=b|0;return +(+fb(a,b))}function fb(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,k=0,l=0.0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=Nb(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){g=+fb(a*18446744073709551616.0,b);i=g;k=(c[b>>2]|0)+-64|0}else{i=a;k=0}c[b>>2]=k;l=i;break}case 2047:{l=a;break}default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;l=+h[j>>3]}}return +l}function gb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(!(c[c[(hb()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break}else{c[(Ka()|0)>>2]=84;f=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(Ka()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function hb(){return ib()|0}function ib(){return 6068}function jb(){return ib()|0}function kb(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=0;while(1){if((d[3776+f>>0]|0)==(b|0)){g=4;break}h=f+1|0;if((h|0)==87){i=87;g=5;break}else f=h}if((g|0)==4)if(!f)j=3872;else{i=f;g=5}if((g|0)==5){g=3872;f=i;while(1){i=g;do{b=i;i=i+1|0}while((a[b>>0]|0)!=0);f=f+-1|0;if(!f){j=i;break}else g=i}}return lb(j,c[e+20>>2]|0)|0}function lb(a,b){a=a|0;b=b|0;return mb(a,b)|0}function mb(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=nb(c[b>>2]|0,c[b+4>>2]|0,a)|0;return ((d|0)==0?a:d)|0}function nb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=(c[b>>2]|0)+1794895138|0;g=ob(c[b+8>>2]|0,f)|0;h=ob(c[b+12>>2]|0,f)|0;i=ob(c[b+16>>2]|0,f)|0;a:do if((g>>>0>>2>>>0?(j=d-(g<<2)|0,h>>>0>>0&i>>>0>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=ob(c[b+(q<<2)>>2]|0,f)|0;s=ob(c[b+(q+1<<2)>>2]|0,f)|0;if(!(s>>>0>>0&r>>>0<(d-s|0)>>>0)){t=0;break a}if(a[b+(s+r)>>0]|0){t=0;break a}r=Oa(e,b+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}l=s?l:o;m=s?n:m-n|0}m=p+k|0;l=ob(c[b+(m<<2)>>2]|0,f)|0;j=ob(c[b+(m+1<<2)>>2]|0,f)|0;if(j>>>0>>0&l>>>0<(d-j|0)>>>0)t=(a[b+(j+l)>>0]|0)==0?b+j|0:0;else t=0}else t=0;while(0);return t|0}function ob(a,b){a=a|0;b=b|0;var c=0;c=Pb(a|0)|0;return ((b|0)==0?a:c)|0}function pb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(qb(e)|0)){h=c[f>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0>>0){j=ea[c[e+36>>2]&7](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){l=0;m=b;n=d;o=k}else{f=d;while(1){p=f+-1|0;if((a[b+p>>0]|0)==10)break;if(!p){l=0;m=b;n=d;o=k;break b}else f=p}p=ea[c[e+36>>2]&7](e,b,f)|0;if(p>>>0>>0){j=p;break a}l=f;m=b+f|0;n=d-f|0;o=c[g>>2]|0}while(0);Qb(o|0,m|0,n|0)|0;c[g>>2]=(c[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function qb(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function rb(a){a=a|0;var b=0,e=0,f=0;b=k;k=k+16|0;e=b;if((sb(a)|0)==0?(ea[c[a+32>>2]&7](a,e,1)|0)==1:0)f=d[e>>0]|0;else f=-1;k=b;return f|0}function sb(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=b+20|0;d=b+28|0;if((c[e>>2]|0)>>>0>(c[d>>2]|0)>>>0)ea[c[b+36>>2]&7](b,0,0)|0;c[b+16>>2]=0;c[d>>2]=0;c[e>>2]=0;e=c[b>>2]|0;if(!(e&4)){d=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=d;c[b+4>>2]=d;f=e<<27>>31}else{c[b>>2]=e|32;f=-1}return f|0}function tb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=M(d,b)|0;g=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){d=(Sa(e)|0)==0;h=pb(a,f,e)|0;if(d)i=h;else{Ta(e);i=h}}else i=pb(a,f,e)|0;if((i|0)==(f|0))j=g;else j=(i>>>0)/(b>>>0)|0;return j|0}function ub(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;f=k;k=k+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j)if(!(qb(b)|0)){l=c[i>>2]|0;m=4}else n=-1;else{l=j;m=4}do if((m|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[j>>2]=i+1;a[i>>0]=h;n=o;break}if((ea[c[b+36>>2]&7](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);k=f;return n|0}function vb(a){a=a|0;var b=0,d=0,e=0;if((c[a+76>>2]|0)>-1){b=(Sa(a)|0)==0;d=(c[a>>2]|0)>>>5&1;if(b)e=d;else e=d}else e=(c[a>>2]|0)>>>5&1;return e|0}function wb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=k;k=k+16|0;f=e;c[f>>2]=d;d=Qa(a,b,f)|0;k=e;return d|0}function xb(a){a=a|0;var b=0,d=0;b=k;k=k+32|0;d=b;c[d>>2]=a;c[d+4>>2]=21523;c[d+8>>2]=b+16;a=(Ja(Z(54,d|0)|0)|0)==0&1;k=b;return a|0}function yb(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;if((c[a+76>>2]|0)>=0?(Sa(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;f=d[e>>0]|0}else f=rb(a)|0;g=f}else h=3;do if((h|0)==3){f=a+4|0;e=c[f>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[f>>2]=e+1;g=d[e>>0]|0;break}else{g=rb(a)|0;break}}while(0);return g|0}function zb(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Sa(a)|0)==0;c[a>>2]=c[a>>2]&-49;if(!b)Ta(a)}else c[a>>2]=c[a>>2]&-49;return}function Ab(a){a=a|0;return Bb(a,c[1485]|0)|0}function Bb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((c[d+76>>2]|0)>=0?(Sa(d)|0)!=0:0){e=b&255;f=b&255;if((f|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=e;i=f}else i=ub(d,b)|0;Ta(d);j=i}else k=3;do if((k|0)==3){i=b&255;f=b&255;if((f|0)!=(a[d+75>>0]|0)?(e=d+20|0,h=c[e>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[e>>2]=h+1;a[h>>0]=i;j=f;break}j=ub(d,b)|0}while(0);return j|0}function Cb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=M(e,d)|0;h=(d|0)==0?0:e;if((c[f+76>>2]|0)>-1)i=Sa(f)|0;else i=0;e=f+74|0;j=a[e>>0]|0;a[e>>0]=j+255|j;j=f+4|0;e=c[j>>2]|0;k=(c[f+8>>2]|0)-e|0;if((k|0)>0){l=k>>>0>>0?k:g;Qb(b|0,e|0,l|0)|0;c[j>>2]=(c[j>>2]|0)+l;m=g-l|0;n=b+l|0}else{m=g;n=b}a:do if(!m)o=13;else{b=f+32|0;l=n;j=m;while(1){if(sb(f)|0)break;e=ea[c[b>>2]&7](f,l,j)|0;if((e+1|0)>>>0<2)break;k=j-e|0;if(!k){o=13;break a}else{l=l+e|0;j=k}}if(i|0)Ta(f);p=((g-j|0)>>>0)/(d>>>0)|0}while(0);if((o|0)==13)if(!i)p=h;else{Ta(f);p=h}return p|0}function Db(a){a=a|0;(c[a+76>>2]|0)>-1?Sa(a)|0:0;return c[a+60>>2]|0}function Eb(a,b){a=a|0;b=b|0;var d=0,e=0;d=k;k=k+16|0;e=d;c[e>>2]=b;b=Qa(c[1485]|0,a,e)|0;k=d;return b|0}function Fb(){}function Gb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=M(d,c)|0;f=a>>>16;a=(e>>>16)+(M(d,f)|0)|0;d=b>>>16;b=M(d,c)|0;return (x=(a>>>16)+(M(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function Hb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=Gb(e,a)|0;f=x;return (x=(M(b,a)|0)+(M(d,e)|0)+f|f&0,c|0|0)|0}function Ib(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (x=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function Jb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (x=e,a-c>>>0|0)|0}function Kb(a){a=a|0;return (a?31-(P(a^a-1)|0)|0:32)|0}function Lb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (x=n,o)|0}else{if(!m){n=0;o=0;return (x=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (x=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(P(l|0)|0)-(P(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<>>(q>>>0)&s;w=0;y=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (x=n,o)|0}r=j-1|0;if(r&j|0){s=(P(j|0)|0)+33-(P(i|0)|0)|0;q=64-s|0;p=32-s|0;z=p>>31;A=s-32|0;B=A>>31;t=s;u=p-1>>31&i>>>(A>>>0)|(i<>>(s>>>0))&B;v=B&i>>>(s>>>0);w=g<>>(A>>>0))&z|g<>31;break}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (x=n,o)|0}else{r=Kb(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (x=n,o)|0}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (x=n,o)|0}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (x=n,o)|0}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((Kb(l|0)|0)>>>0);return (x=n,o)|0}r=(P(l|0)|0)-(P(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>>0);v=i>>>(s>>>0);w=0;y=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (x=n,o)|0}while(0);if(!t){C=y;D=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=Ib(b|0,d|0,-1,-1)|0;k=x;h=y;y=w;w=v;v=u;u=t;t=0;do{a=h;h=y>>>31|h<<1;y=t|y<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Jb(e|0,k|0,g|0,a|0)|0;i=x;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Jb(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=x;u=u-1|0}while((u|0)!=0);C=h;D=y;E=w;F=v;G=0;H=t}t=D;D=0;if(f|0){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(C|D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (x=n,o)|0}function Mb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Lb(a,b,c,d,0)|0}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){x=b>>>c;return a>>>c|(b&(1<>>c-32|0}function Ob(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){x=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Qb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return aa(b|0,d|0,e|0)|0;f=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}h=g&-4|0;e=h-64|0;while((b|0)<=(e|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function Rb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=g-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(h|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function Sb(a){a=a|0;var b=0,d=0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){U()|0;V(12);return -1}c[i>>2]=d;if((d|0)>(T()|0)?(S()|0)==0:0){c[i>>2]=b;V(12);return -1}return b|0}function Tb(a,b){a=a|0;b=b|0;return da[a&1](b|0)|0}function Ub(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ea[a&7](b|0,c|0,d|0)|0}function Vb(a){a=a|0;Q(0);return 0}function Wb(a,b,c){a=a|0;b=b|0;c=c|0;Q(1);return 0} - -// EMSCRIPTEN_END_FUNCS -var da=[Vb,Ga];var ea=[Wb,Ha,Ia,Ma,Na,Wb,Wb,Wb];return{___errno_location:Ka,___muldi3:Hb,___udivdi3:Mb,_bitshift64Lshr:Nb,_bitshift64Shl:Ob,_free:Ca,_i64Add:Ib,_i64Subtract:Jb,_llvm_bswap_i32:Pb,_main:Aa,_malloc:Ba,_memcpy:Qb,_memset:Rb,_sbrk:Sb,dynCall_ii:Tb,dynCall_iiii:Ub,establishStackSpace:ia,getTempRet0:la,runPostSets:Fb,setTempRet0:ka,setThrew:ja,stackAlloc:fa,stackRestore:ha,stackSave:ga}}) - - -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _main=Module["_main"]=asm["_main"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];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"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];Module["asm"]=asm;Module["getMemory"]=getMemory;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS"]=FS;Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;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()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(Module["thisProgram"]);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);Module["quit"](1,e)}}finally{calledMain=true}};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"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}Module["quit"](status,new ExitStatus(status))}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()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() - - - - - - - return preprocess; -} -); -})(); -if (typeof exports === 'object' && typeof module === 'object') - module.exports = preprocess; - else if (typeof define === 'function' && define['amd']) - define([], function() { return preprocess; }); - else if (typeof exports === 'object') - exports["preprocess"] = preprocess; - \ No newline at end of file diff --git a/src/worker/fs/bb-fs.zip b/src/worker/fs/bb-fs.zip new file mode 100644 index 00000000..f2429992 Binary files /dev/null and b/src/worker/fs/bb-fs.zip differ diff --git a/src/worker/fs/fs2600basic.data b/src/worker/fs/fs2600basic.data deleted file mode 100644 index 1ff169d4..00000000 --- a/src/worker/fs/fs2600basic.data +++ /dev/null @@ -1,4214 +0,0 @@ - ifconst bankswitch - if bankswitch == 8 - ORG $2FFC - RORG $FFFC - endif - if bankswitch == 16 - ORG $4FFC - RORG $FFFC - endif - if bankswitch == 32 - ORG $8FFC - RORG $FFFC - endif - else - ifconst ROM2k - ORG $F7FC - else - ORG $FFFC - endif - endif - .word start - .word start -; MACRO.H -; Version 1.05, 13/NOVEMBER/2003 - -VERSION_MACRO = 105 - -; -; THIS FILE IS EXPLICITLY SUPPORTED AS A DASM-PREFERRED COMPANION FILE -; PLEASE DO *NOT* REDISTRIBUTE MODIFIED VERSIONS OF THIS FILE! -; -; This file defines DASM macros useful for development for the Atari 2600. -; It is distributed as a companion machine-specific support package -; for the DASM compiler. Updates to this file, DASM, and associated tools are -; available at at http://www.atari2600.org/dasm -; -; Many thanks to the people who have contributed. If you take issue with the -; contents, or would like to add something, please write to me -; (atari2600@taswegian.com) with your contribution. -; -; Latest Revisions... -; -; 1.05 14/NOV/2003 - Added VERSION_MACRO equate (which will reflect 100x version #) -; This will allow conditional code to verify MACRO.H being -; used for code assembly. -; 1.04 13/NOV/2003 - SET_POINTER macro added (16-bit address load) -; -; 1.03 23/JUN/2003 - CLEAN_START macro added - clears TIA, RAM, registers -; -; 1.02 14/JUN/2003 - VERTICAL_SYNC macro added -; (standardised macro for vertical synch code) -; 1.01 22/MAR/2003 - SLEEP macro added. -; - NO_ILLEGAL_OPCODES switch implemented -; 1.0 22/MAR/2003 Initial release - -; Note: These macros use illegal opcodes. To disable illegal opcode usage, -; define the symbol NO_ILLEGAL_OPCODES (-DNO_ILLEGAL_OPCODES=1 on command-line). -; If you do not allow illegal opcode usage, you must include this file -; *after* including VCS.H (as the non-illegal opcodes access hardware -; registers and require them to be defined first). - -; Available macros... -; SLEEP n - sleep for n cycles -; VERTICAL_SYNC - correct 3 scanline vertical synch code -; CLEAN_START - set machine to known state on startup -; SET_POINTER - load a 16-bit absolute to a 16-bit variable - -;------------------------------------------------------------------------------- -; SLEEP duration -; Original author: Thomas Jentzsch -; Inserts code which takes the specified number of cycles to execute. This is -; useful for code where precise timing is required. -; ILLEGAL-OPCODE VERSION DOES NOT AFFECT FLAGS OR REGISTERS. -; LEGAL OPCODE VERSION MAY AFFECT FLAGS -; Uses illegal opcode (DASM 2.20.01 onwards). - - MAC SLEEP ;usage: SLEEP n (n>1) -.CYCLES SET {1} - - IF .CYCLES < 2 - ECHO "MACRO ERROR: 'SLEEP': Duration must be > 1" - ERR - ENDIF - - IF .CYCLES & 1 - IFNCONST NO_ILLEGAL_OPCODES - nop 0 - ELSE - bit VSYNC - ENDIF -.CYCLES SET .CYCLES - 3 - ENDIF - - REPEAT .CYCLES / 2 - nop - REPEND - ENDM - -;------------------------------------------------------------------------------- -; VERTICAL_SYNC -; Original author: Manuel Polik -; Inserts the code required for a proper 3 scannline -; vertical sync sequence -; -; Note: Alters the accumulator -; -; IN: -; OUT: A = 1 - - MAC VERTICAL_SYNC - LDA #$02 ; A = VSYNC enable - STA WSYNC ; Finish current line - STA VSYNC ; Start vertical sync - STA WSYNC ; 1st line vertical sync - STA WSYNC ; 2nd line vertical sync - LSR ; A = VSYNC disable - STA WSYNC ; 3rd line vertical sync - STA VSYNC ; Stop vertical sync - ENDM - -;------------------------------------------------------------------------------- -; CLEAN_START -; Original author: Andrew Davie -; Standardised start-up code, clears stack, all TIA registers and RAM to 0 -; Sets stack pointer to $FF, and all registers to 0 -; Sets decimal mode off, sets interrupt flag (kind of un-necessary) -; Use as very first section of code on boot (ie: at reset) -; Code written to minimise total ROM usage - uses weird 6502 knowledge :) - - MAC CLEAN_START - sei - cld - - ldx #0 - txa - tay -.CLEAR_STACK dex - txs - pha - bne .CLEAR_STACK ; SP=$FF, X = A = Y = 0 - - ENDM - -;------------------------------------------------------- -; SET_POINTER -; Original author: Manuel Rotschkar -; -; Sets a 2 byte RAM pointer to an absolute address. -; -; Usage: SET_POINTER pointer, address -; Example: SET_POINTER SpritePTR, SpriteData -; -; Note: Alters the accumulator, NZ flags -; IN 1: 2 byte RAM location reserved for pointer -; IN 2: absolute address - - MAC SET_POINTER -.POINTER SET {1} -.ADDRESS SET {2} - - LDA #<.ADDRESS ; Get Lowbyte of Address - STA .POINTER ; Store in pointer - LDA #>.ADDRESS ; Get Hibyte of Address - STA .POINTER+1 ; Store in pointer+1 - - ENDM - -; EOF -; this file is screwed, I accidentally deleted the comments. Restore with version in .99b zip file. -2600basicheader.asm -bB.asm -std_kernel.asm -startup.asm -pf_drawing.asm -pf_scrolling.asm -std_routines.asm -std_overscan.asm -bB2.asm -score_graphics.asm -banksw.asm -2600basicfooter.asm -minikernel ; display up to 6 lives on screen - sta WSYNC - sleep 10 ; can we optimize this? - lda #0 - ldy #7 - sta VDELP0 - sta VDELP1 - ifnconst lives_compact - ifnconst lives_centered - sta RESP0 - endif - lda.w lives - ifnconst lives_centered - sta RESP1 - endif - lsr - lsr - lsr - lsr - ifconst lives_centered - sta RESP0 - endif - lsr - tax - ifconst lives_centered - sta RESP1 - endif - lda lifenusiz0table,x - sta NUSIZ0 - lda lifenusiz1table,x - sta NUSIZ1 - lda lifecolor - sta COLUP0 - sta COLUP1 - lda #$b0 - sta HMP0 - - else - - ifnconst lives_centered - sta.w RESP0 - sta RESP1 - endif - lda lives - lsr - lsr - lsr - lsr - lsr - tax - lda lifenusiz0table,x - ifconst lives_centered - sta RESP0 - sta RESP1 - sta.w NUSIZ0 - else - sta NUSIZ0 - endif - lda lifenusiz1table,x - sta NUSIZ1 - lda lifecolor - sta COLUP0 - sta COLUP1 - lda #$10 - sta HMP1 - - endif - - sta HMOVE ; cycle 73 - -lifeloop - cpx #0 - beq skipall - lda (lifepointer),y - sta GRP0 - cpx #1 - beq skipall - sta GRP1 -skipall - dey - sta WSYNC - bpl lifeloop - iny - sty GRP0 - sty GRP1 - rts - - if (<*) > $F5 - align 256 - endif - ifconst lives_compact -lifenusiz1table - .byte 0 -lifenusiz0table - .byte 0,0,0,1,1,3,3,3 - else -lifenusiz1table - .byte 0 -lifenusiz0table - .byte 0,0,0,2,2,6,6,6 - endif -; VCS.H -; Version 1.05, 13/November/2003 - -VERSION_VCS = 105 - -; THIS IS A PRELIMINARY RELEASE OF *THE* "STANDARD" VCS.H -; THIS FILE IS EXPLICITLY SUPPORTED AS A DASM-PREFERRED COMPANION FILE -; PLEASE DO *NOT* REDISTRIBUTE THIS FILE! -; -; This file defines hardware registers and memory mapping for the -; Atari 2600. It is distributed as a companion machine-specific support package -; for the DASM compiler. Updates to this file, DASM, and associated tools are -; available at at http://www.atari2600.org/dasm -; -; Many thanks to the original author(s) of this file, and to everyone who has -; contributed to understanding the Atari 2600. If you take issue with the -; contents, or naming of registers, please write to me (atari2600@taswegian.com) -; with your views. Please contribute, if you think you can improve this -; file! -; -; Latest Revisions... -; 1.05 13/NOV/2003 - Correction to 1.04 - now functions as requested by MR. -; - Added VERSION_VCS equate (which will reflect 100x version #) -; This will allow conditional code to verify VCS.H being -; used for code assembly. -; 1.04 12/NOV/2003 Added TIA_BASE_WRITE_ADDRESS and TIA_BASE_READ_ADDRESS for -; convenient disassembly/reassembly compatibility for hardware -; mirrored reading/writing differences. This is more a -; readability issue, and binary compatibility with disassembled -; and reassembled sources. Per Manuel Rotschkar's suggestion. -; 1.03 12/MAY/2003 Added SEG segment at end of file to fix old-code compatibility -; which was broken by the use of segments in this file, as -; reported by Manuel Polik on [stella] 11/MAY/2003 -; 1.02 22/MAR/2003 Added TIMINT($285) -; 1.01 Constant offset added to allow use for 3F-style bankswitching -; - define TIA_BASE_ADDRESS as $40 for Tigervision carts, otherwise -; it is safe to leave it undefined, and the base address will -; be set to 0. Thanks to Eckhard Stolberg for the suggestion. -; Note, may use -DLABEL=EXPRESSION to define TIA_BASE_ADDRESS -; - register definitions are now generated through assignment -; in uninitialised segments. This allows a changeable base -; address architecture. -; 1.0 22/MAR/2003 Initial release - - -;------------------------------------------------------------------------------- - -; TIA_BASE_ADDRESS -; The TIA_BASE_ADDRESS defines the base address of access to TIA registers. -; Normally 0, the base address should (externally, before including this file) -; be set to $40 when creating 3F-bankswitched (and other?) cartridges. -; The reason is that this bankswitching scheme treats any access to locations -; < $40 as a bankswitch. - - IFNCONST TIA_BASE_ADDRESS -TIA_BASE_ADDRESS = 0 - ENDIF - -; Note: The address may be defined on the command-line using the -D switch, eg: -; dasm.exe code.asm -DTIA_BASE_ADDRESS=$40 -f3 -v5 -ocode.bin -; *OR* by declaring the label before including this file, eg: -; TIA_BASE_ADDRESS = $40 -; include "vcs.h" - -; Alternate read/write address capability - allows for some disassembly compatibility -; usage ; to allow reassembly to binary perfect copies). This is essentially catering -; for the mirrored ROM hardware registers. - -; Usage: As per above, define the TIA_BASE_READ_ADDRESS and/or TIA_BASE_WRITE_ADDRESS -; using the -D command-line switch, as required. If the addresses are not defined, -; they defaut to the TIA_BASE_ADDRESS. - - IFNCONST TIA_BASE_READ_ADDRESS -TIA_BASE_READ_ADDRESS = TIA_BASE_ADDRESS - ENDIF - - IFNCONST TIA_BASE_WRITE_ADDRESS -TIA_BASE_WRITE_ADDRESS = TIA_BASE_ADDRESS - ENDIF - -;------------------------------------------------------------------------------- - - SEG.U TIA_REGISTERS_WRITE - ORG TIA_BASE_WRITE_ADDRESS - - ; DO NOT CHANGE THE RELATIVE ORDERING OF REGISTERS! - -VSYNC ds 1 ; $00 0000 00x0 Vertical Sync Set-Clear -VBLANK ds 1 ; $01 xx00 00x0 Vertical Blank Set-Clear -WSYNC ds 1 ; $02 ---- ---- Wait for Horizontal Blank -RSYNC ds 1 ; $03 ---- ---- Reset Horizontal Sync Counter -NUSIZ0 ds 1 ; $04 00xx 0xxx Number-Size player/missle 0 -NUSIZ1 ds 1 ; $05 00xx 0xxx Number-Size player/missle 1 -COLUP0 ds 1 ; $06 xxxx xxx0 Color-Luminance Player 0 -COLUP1 ds 1 ; $07 xxxx xxx0 Color-Luminance Player 1 -COLUPF ds 1 ; $08 xxxx xxx0 Color-Luminance Playfield -COLUBK ds 1 ; $09 xxxx xxx0 Color-Luminance Background -CTRLPF ds 1 ; $0A 00xx 0xxx Control Playfield, Ball, Collisions -REFP0 ds 1 ; $0B 0000 x000 Reflection Player 0 -REFP1 ds 1 ; $0C 0000 x000 Reflection Player 1 -PF0 ds 1 ; $0D xxxx 0000 Playfield Register Byte 0 -PF1 ds 1 ; $0E xxxx xxxx Playfield Register Byte 1 -PF2 ds 1 ; $0F xxxx xxxx Playfield Register Byte 2 -RESP0 ds 1 ; $10 ---- ---- Reset Player 0 -RESP1 ds 1 ; $11 ---- ---- Reset Player 1 -RESM0 ds 1 ; $12 ---- ---- Reset Missle 0 -RESM1 ds 1 ; $13 ---- ---- Reset Missle 1 -RESBL ds 1 ; $14 ---- ---- Reset Ball -AUDC0 ds 1 ; $15 0000 xxxx Audio Control 0 -AUDC1 ds 1 ; $16 0000 xxxx Audio Control 1 -AUDF0 ds 1 ; $17 000x xxxx Audio Frequency 0 -AUDF1 ds 1 ; $18 000x xxxx Audio Frequency 1 -AUDV0 ds 1 ; $19 0000 xxxx Audio Volume 0 -AUDV1 ds 1 ; $1A 0000 xxxx Audio Volume 1 -GRP0 ds 1 ; $1B xxxx xxxx Graphics Register Player 0 -GRP1 ds 1 ; $1C xxxx xxxx Graphics Register Player 1 -ENAM0 ds 1 ; $1D 0000 00x0 Graphics Enable Missle 0 -ENAM1 ds 1 ; $1E 0000 00x0 Graphics Enable Missle 1 -ENABL ds 1 ; $1F 0000 00x0 Graphics Enable Ball -HMP0 ds 1 ; $20 xxxx 0000 Horizontal Motion Player 0 -HMP1 ds 1 ; $21 xxxx 0000 Horizontal Motion Player 1 -HMM0 ds 1 ; $22 xxxx 0000 Horizontal Motion Missle 0 -HMM1 ds 1 ; $23 xxxx 0000 Horizontal Motion Missle 1 -HMBL ds 1 ; $24 xxxx 0000 Horizontal Motion Ball -VDELP0 ds 1 ; $25 0000 000x Vertical Delay Player 0 -VDELP1 ds 1 ; $26 0000 000x Vertical Delay Player 1 -VDELBL ds 1 ; $27 0000 000x Vertical Delay Ball -RESMP0 ds 1 ; $28 0000 00x0 Reset Missle 0 to Player 0 -RESMP1 ds 1 ; $29 0000 00x0 Reset Missle 1 to Player 1 -HMOVE ds 1 ; $2A ---- ---- Apply Horizontal Motion -HMCLR ds 1 ; $2B ---- ---- Clear Horizontal Move Registers -CXCLR ds 1 ; $2C ---- ---- Clear Collision Latches - -;------------------------------------------------------------------------------- - - SEG.U TIA_REGISTERS_READ - ORG TIA_BASE_READ_ADDRESS - - ; bit 7 bit 6 -CXM0P ds 1 ; $00 xx00 0000 Read Collision M0-P1 M0-P0 -CXM1P ds 1 ; $01 xx00 0000 M1-P0 M1-P1 -CXP0FB ds 1 ; $02 xx00 0000 P0-PF P0-BL -CXP1FB ds 1 ; $03 xx00 0000 P1-PF P1-BL -CXM0FB ds 1 ; $04 xx00 0000 M0-PF M0-BL -CXM1FB ds 1 ; $05 xx00 0000 M1-PF M1-BL -CXBLPF ds 1 ; $06 x000 0000 BL-PF ----- -CXPPMM ds 1 ; $07 xx00 0000 P0-P1 M0-M1 -INPT0 ds 1 ; $08 x000 0000 Read Pot Port 0 -INPT1 ds 1 ; $09 x000 0000 Read Pot Port 1 -INPT2 ds 1 ; $0A x000 0000 Read Pot Port 2 -INPT3 ds 1 ; $0B x000 0000 Read Pot Port 3 -INPT4 ds 1 ; $0C x000 0000 Read Input (Trigger) 0 -INPT5 ds 1 ; $0D x000 0000 Read Input (Trigger) 1 - -;------------------------------------------------------------------------------- - - SEG.U RIOT - ORG $280 - - ; RIOT MEMORY MAP - -SWCHA ds 1 ; $280 Port A data register for joysticks: - ; Bits 4-7 for player 1. Bits 0-3 for player 2. - -SWACNT ds 1 ; $281 Port A data direction register (DDR) -SWCHB ds 1 ; $282 Port B data (console switches) -SWBCNT ds 1 ; $283 Port B DDR -INTIM ds 1 ; $284 Timer output - -TIMINT ds 1 ; $285 - - ; Unused/undefined registers ($285-$294) - - ds 1 ; $286 - ds 1 ; $287 - ds 1 ; $288 - ds 1 ; $289 - ds 1 ; $28A - ds 1 ; $28B - ds 1 ; $28C - ds 1 ; $28D - ds 1 ; $28E - ds 1 ; $28F - ds 1 ; $290 - ds 1 ; $291 - ds 1 ; $292 - ds 1 ; $293 - -TIM1T ds 1 ; $294 set 1 clock interval -TIM8T ds 1 ; $295 set 8 clock interval -TIM64T ds 1 ; $296 set 64 clock interval -T1024T ds 1 ; $297 set 1024 clock interval - -;------------------------------------------------------------------------------- -; The following required for back-compatibility with code which does not use -; segments. - - SEG - -; EOF -; this file is screwed, I accidentally deleted the comments. Restore with version in .99b zip file. -superchipheader.asm -bB.asm -std_kernel.asm -startup.asm -pf_drawing.asm -pf_scrolling.asm -std_routines.asm -std_overscan.asm -bB2.asm -score_graphics.asm -banksw.asm -2600basicfooter.asm -; Compute mul1*mul2+acc -> acc:mul1 [mul2 is unchanged] -; Routine courtesy of John Payson (AtariAge member supercat) - - ; x and a contain multiplicands, result in a, temp1 contains any overflow - -mul16 - sty temp1 - sta temp2 - ldx #8 - dec temp2 -loopmul - lsr - ror temp1 - bcc noaddmul - adc temp2 -noaddmul - dex - bne loopmul - RETURN - -; div int/int -; numerator in A, denom in temp1 -; returns with quotient in A, remainder in temp1 - -div16 - sty temp1 - ldx #8 -loopdiv - cmp temp1 - bcc toosmalldiv - sbc temp1 ; Note: Carry is, and will remain, set. - rol temp2 - rol - dex - bne loopdiv - beq donediv -toosmalldiv - rol temp2 - rol - dex - bne loopdiv -donediv - sta temp1 - lda temp2 - RETURN -drawscreen - ifconst debugscore - ldx #14 - lda INTIM ; display # cycles left in the score - - ifconst mincycles - lda mincycles - cmp INTIM - lda mincycles - bcc nochange - lda INTIM - sta mincycles -nochange - endif - -; cmp #$2B -; bcs no_cycles_left - bmi cycles_left - ldx #64 - eor #$ff ;make negative -cycles_left - stx scorecolor - and #$7f ; clear sign bit - tax - lda scorebcd,x - sta score+2 - lda scorebcd1,x - sta score+1 - jmp done_debugscore -scorebcd - .byte $00, $64, $28, $92, $56, $20, $84, $48, $12, $76, $40 - .byte $04, $68, $32, $96, $60, $24, $88, $52, $16, $80, $44 - .byte $08, $72, $36, $00, $64, $28, $92, $56, $20, $84, $48 - .byte $12, $76, $40, $04, $68, $32, $96, $60, $24, $88 -scorebcd1 - .byte 0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6 - .byte 7, 7, 8, 8, 9, $10, $10, $11, $12, $12, $13 - .byte $14, $14, $15, $16, $16, $17, $17, $18, $19, $19, $20 - .byte $21, $21, $22, $23, $23, $24, $24, $25, $26, $26 -done_debugscore - endif - - ifconst debugcycles - lda INTIM ; if we go over, it mucks up the background color -; cmp #$2B -; BCC overscan - bmi overscan - sta COLUBK - bcs doneoverscan - endif - - -overscan - lda INTIM ;wait for sync - bmi overscan -doneoverscan -;do VSYNC - lda #2 - sta WSYNC - sta VSYNC - STA WSYNC - STA WSYNC - LDA #0 - STA WSYNC - STA VSYNC - sta VBLANK - ifnconst overscan_time - lda #37+128 - else - lda #overscan_time+128 - endif - sta TIM64T - - ifconst legacy - if legacy < 100 - ldx #4 -adjustloop - lda player0x,x - sec - sbc #14 ;? - sta player0x,x - dex - bpl adjustloop - endif - endif - if (<*)>$F0 - align 256, $EA - endif - sta WSYNC - ldx #4 - SLEEP 3 -HorPosLoop ; 5 - lda player0x,X ;+4 9 - sec ;+2 11 -DivideLoop - sbc #15 - bcs DivideLoop;+4 15 - sta temp1,X ;+4 19 - sta RESP0,X ;+4 23 - sta WSYNC - dex - bpl HorPosLoop;+5 5 - ; 4 - - ldx #4 - ldy temp1,X - lda repostable-256,Y - sta HMP0,X ;+14 18 - - dex - ldy temp1,X - lda repostable-256,Y - sta HMP0,X ;+14 32 - - dex - ldy temp1,X - lda repostable-256,Y - sta HMP0,X ;+14 46 - - dex - ldy temp1,X - lda repostable-256,Y - sta HMP0,X ;+14 60 - - dex - ldy temp1,X - lda repostable-256,Y - sta HMP0,X ;+14 74 - - sta WSYNC - - sta HMOVE ;+3 3 - - - ifconst legacy - if legacy < 100 - ldx #4 -adjustloop2 - lda player0x,x - clc - adc #14 ;? - sta player0x,x - dex - bpl adjustloop2 - endif - endif - - - - -;set score pointers - lax score+2 - jsr scorepointerset - sty scorepointers+5 - stx scorepointers+2 - lax score+1 - jsr scorepointerset - sty scorepointers+4 - stx scorepointers+1 - lax score - jsr scorepointerset - sty scorepointers+3 - stx scorepointers - -vblk -; run possible vblank bB code - ifconst vblank_bB_code - jsr vblank_bB_code - endif -vblk2 - LDA INTIM - bmi vblk2 - jmp kernel - - - .byte $80,$70,$60,$50,$40,$30,$20,$10,$00 - .byte $F0,$E0,$D0,$C0,$B0,$A0,$90 -repostable - -scorepointerset - and #$0F - asl - asl - asl - adc #$d5) - align 256 - endif - ; this is a kludge to prevent page wrapping - fix!!! - -.skipDrawlastP1 - sleep 2 - lda #0 - jmp .continuelastP1 - -.endkerloop ; enter at cycle 59?? - - nop - -.enterfromNBL - ifconst pfres - ldy.w playfield+pfres*4-4 - sty PF1 ;3 - ldy.w playfield+pfres*4-3 - sty PF2 ;3 - ldy.w playfield+pfres*4-1 - sty PF1 ; possibly too early? - ldy.w playfield+pfres*4-2 - sty PF2 ;3 - else - ldy.w playfield+44 - sty PF1 ;3 - ldy.w playfield+45 - sty PF2 ;3 - ldy.w playfield+47 - sty PF1 ; possibly too early? - ldy.w playfield+46 - sty PF2 ;3 - endif - -enterlastkernel - lda ballheight - -; tya - dcp bally -; sleep 4 - -; sbc stack3 - rol - rol - sta ENABL - - lda player1height ;3 - dcp player1y ;5 - bcc .skipDrawlastP1 - ldy player1y ;3 - lda (player1pointer),y ;5; player0pointer must be selected carefully by the compiler - ; so it doesn't cross a page boundary! - -.continuelastP1 - sta GRP1 ;3 - - ifnconst player1colors - lda missile1height ;3 - dcp missile1y ;5 - else - lda (player1color),y - sta COLUP1 - endif - - dex - ;dec temp4 ; might try putting this above PF writes - beq endkernel - - - ifconst pfres - ldy.w playfield+pfres*4-4 - sty PF1 ;3 - ldy.w playfield+pfres*4-3 - sty PF2 ;3 - ldy.w playfield+pfres*4-1 - sty PF1 ; possibly too early? - ldy.w playfield+pfres*4-2 - sty PF2 ;3 - else - ldy.w playfield+44 - sty PF1 ;3 - ldy.w playfield+45 - sty PF2 ;3 - ldy.w playfield+47 - sty PF1 ; possibly too early? - ldy.w playfield+46 - sty PF2 ;3 - endif - - ifnconst player1colors - rol;2 - rol;2 - sta ENAM1 ;3 - else - ifnconst playercolors - sleep 7 - else - lda.w player0colorstore - sta COLUP0 - endif - endif - - lda.w player0height - dcp player0y - bcc .skipDrawlastP0 - ldy player0y - lda (player0pointer),y -.continuelastP0 - sta GRP0 - - - - ifnconst no_blank_lines - lda missile0height ;3 - dcp missile0y ;5 - sbc stack1 - sta ENAM0 ;3 - jmp .endkerloop - else - ifconst readpaddle - ldy currentpaddle - lda INPT0,y - bpl noreadpaddle2 - inc paddle - jmp .endkerloop -noreadpaddle2 - sleep 4 - jmp .endkerloop - else ; no_blank_lines and no paddle reading - sleep 14 - jmp .endkerloop - endif - endif - - -; ifconst donepaddleskip -;paddleskipread - ; this is kind of lame, since it requires 4 cycles from a page boundary crossing - ; plus we get a lo-res paddle read -; bmi donepaddleskip -; endif - -.skipDrawlastP0 - sleep 2 - lda #0 - jmp .continuelastP0 - - ifconst no_blank_lines -no_blank_lines_bailout - ldx #0 - endif - -endkernel - ; 6 digit score routine - stx PF1 - stx PF2 - stx PF0 - clc - - ifconst pfrowheight - lda #pfrowheight+2 - else - ifnconst pfres - lda #10 - else - lda #(96/pfres)+2 ; try to come close to the real size - endif - endif - - sbc playfieldpos - sta playfieldpos - txa - - ifconst shakescreen - bit shakescreen - bmi noshakescreen2 - ldx #$3D -noshakescreen2 - endif - - sta WSYNC,x - -; STA WSYNC ;first one, need one more - sta REFP0 - sta REFP1 - STA GRP0 - STA GRP1 - ; STA PF1 - ; STA PF2 - sta HMCLR - sta ENAM0 - sta ENAM1 - sta ENABL - - lda temp2 ;restore variables that were obliterated by kernel - sta player0y - lda temp3 - sta player1y - ifnconst player1colors - lda temp6 - sta missile1y - endif - ifnconst playercolors - ifnconst readpaddle - lda temp5 - sta missile0y - endif - endif - lda stack2 - sta bally - - ifconst no_blank_lines - sta WSYNC - endif - - lda INTIM - clc - ifnconst vblank_time - adc #43+12+87 - else - adc #vblank_time+12+87 - endif -; sta WSYNC - sta TIM64T - - ifconst minikernel - jsr minikernel - endif - - ; now reassign temp vars for score pointers - -; score pointers contain: -; score1-5: lo1,lo2,lo3,lo4,lo5,lo6 -; swap lo2->temp1 -; swap lo4->temp3 -; swap lo6->temp5 - ifnconst noscore - lda scorepointers+1 -; ldy temp1 - sta temp1 -; sty scorepointers+1 - - lda scorepointers+3 -; ldy temp3 - sta temp3 -; sty scorepointers+3 - - - sta HMCLR - tsx - stx stack1 - ldx #$10 - stx HMP0 - - sta WSYNC - ldx #0 - STx GRP0 - STx GRP1 ; seems to be needed because of vdel - - lda scorepointers+5 -; ldy temp5 - sta temp5,x -; sty scorepointers+5 - lda #>scoretable - sta scorepointers+1 - sta scorepointers+3 - sta scorepointers+5,x - sta temp2,x - sta temp4,x - sta temp6,x - LDY #7 - STA RESP0 - STA RESP1 - - - LDA #$03 - STA NUSIZ0 - STA NUSIZ1,x - STA VDELP0 - STA VDELP1 - LDA #$20 - STA HMP1 - LDA scorecolor -; STA HMCLR -; STA WSYNC; second one - STA HMOVE ; cycle 73 ? - - STA COLUP0 - STA COLUP1 - lda (scorepointers),y - sta GRP0 - ifconst pfscore - lda pfscorecolor - sta COLUPF - endif - lda (scorepointers+8),y - sta WSYNC - sleep 2 - jmp beginscore - - if ((<*)>$d4) - align 256 ; kludge that potentially wastes space! should be fixed! - endif - -loop2 - lda (scorepointers),y ;+5 68 204 - sta GRP0 ;+3 71 213 D1 -- -- -- - ifconst pfscore - lda.w pfscore1 - sta PF1 - else - sleep 7 - endif - ; cycle 0 - lda (scorepointers+$8),y ;+5 5 15 -beginscore - sta GRP1 ;+3 8 24 D1 D1 D2 -- - lda (scorepointers+$6),y ;+5 13 39 - sta GRP0 ;+3 16 48 D3 D1 D2 D2 - lax (scorepointers+$2),y ;+5 29 87 - txs - lax (scorepointers+$4),y ;+5 36 108 - sleep 3 - - ifconst pfscore - lda pfscore2 - sta PF1 - else - sleep 6 - endif - - lda (scorepointers+$A),y ;+5 21 63 - stx GRP1 ;+3 44 132 D3 D3 D4 D2! - tsx - stx GRP0 ;+3 47 141 D5 D3! D4 D4 - sta GRP1 ;+3 50 150 D5 D5 D6 D4! - sty GRP0 ;+3 53 159 D4* D5! D6 D6 - dey - bpl loop2 ;+2 60 180 - - ldx stack1 - txs -; lda scorepointers+1 - ldy temp1 -; sta temp1 - sty scorepointers+1 - - LDA #0 - sta PF1 - STA GRP0 - STA GRP1 - STA VDELP0 - STA VDELP1;do we need these - STA NUSIZ0 - STA NUSIZ1 - -; lda scorepointers+3 - ldy temp3 -; sta temp3 - sty scorepointers+3 - -; lda scorepointers+5 - ldy temp5 -; sta temp5 - sty scorepointers+5 - endif ;noscore - LDA #%11000010 - sta WSYNC - STA VBLANK - RETURN - - ifconst shakescreen -doshakescreen - bit shakescreen - bmi noshakescreen - sta WSYNC -noshakescreen - ldx missile0height - inx - rts - endif - - processor 6502 - include "vcs.h" - include "macro.h" - include "2600basic_variable_redefs.h" - -player0x = $80 -player1x = $81 -missile0x = $82 -missile1x = $83 -ballx = $84 - -objecty = $85 -player0y = $85 -player1y = $86 -missile1height = $87 -missile1y = $88 -bally = $89 - -player1color = $87 ; replaces missile 1 - -player0pointer = $8A ;uses $8A-$8B -player0pointerlo = $8A -player0pointerhi = $8B -player1pointer = $8C ; $8C-$8D -player1pointerlo = $8C -player1pointerhi = $8D - -player0height = $8E -player1height = $8F -missile0height = $90 -missile0y = $91 -ballheight = $92 - -currentpaddle = $90 ; replaces missile 0 (and can't be used with playercolor) -paddle = $91 ; replaces missile 0 -player0colorstore = $82 ; replaces missile 0 -player0color = $90 ; replaces missile 0 - -score = $93 ; $93-$95 -scorepointers = $96 ; $96-$9B = 6 bytes -temp1 = $9C ;used by kernel. can be used in program too, but -temp2 = $9D ;are obliterated when drawscreen is called. -temp3 = $9E -temp4 = $9F -temp5 = $A0 -temp6 = $A1 - -rand = $A2 -scorecolor = $A3 - -var0 = $A4 -var1 = $A5 -var2 = $A6 -var3 = $A7 -var4 = $A8 -var5 = $A9 -var6 = $AA -var7 = $AB -var8 = $AC -var9 = $AD -var10 = $AE -var11 = $AF -var12 = $B0 -var13 = $B1 -var14 = $B2 -var15 = $B3 -var16 = $B4 -var17 = $B5 -var18 = $B6 -var19 = $B7 -var20 = $B8 -var21 = $B9 -var22 = $BA -var23 = $BB -var24 = $BC -var25 = $BD -var26 = $BE -var27 = $BF -var28 = $C0 -var29 = $C1 -var30 = $C2 -var31 = $C3 -var32 = $C4 -var33 = $C5 -var34 = $C6 -var35 = $C7 -var36 = $C8 -var37 = $C9 -var38 = $CA -var39 = $CB -var40 = $CC -var41 = $CD -var42 = $CE -var43 = $CF -var44 = $D0 -var45 = $D1 -var46 = $D2 -var47 = $D3 - -temp7 = $D4 ; This is used to aid in bankswitching - -playfieldpos = $D5 - -A = $d6 -a = $d6 -B = $d7 -b = $d7 -C = $d8 -c = $d8 -D = $d9 -d = $d9 -E = $da -e = $da -F = $db -f = $db -G = $dc -g = $dc -H = $dd -h = $dd -I = $de -i = $de -J = $df -j = $df -K = $e0 -k = $e0 -L = $e1 -l = $e1 -M = $e2 -m = $e2 -N = $e3 -n = $e3 -O = $e4 -o = $e4 -P = $e5 -p = $e5 -Q = $e6 -q = $e6 -R = $e7 -r = $e7 -S = $e8 -s = $e8 -T = $e9 -t = $e9 -U = $ea -u = $ea -V = $eb -v = $eb -W = $ec -w = $ec -X = $ed -x = $ed -Y = $ee -y = $ee -Z = $ef -z = $ef - -; available for other uses, or if unused, provide more stack space - -aux1 = $f0 -aux2 = $f1 -aux3 = $f2 -aux4 = $f3 -aux5 = $f4 -aux6 = $f5 - -; playfield color/height pointers -pfcolortable = $f0 ; and $d5 -pfheighttable = $f0 ; and $d5 -; the above pointers are the same because if color and height are both used together, -; they must used absolute indexed and cannot use pointers - -lifepointer = $f2 ; pointer to "lives" shape -; upper 3 bits of $f2 contain the number of lives -lifecolor = $f4 -lives = $f3 ; # lives >> 5 -statusbarlength = $f5 ; only uses upper 5 bits; other bits free - -pfscore1 = $f2 ; optional playfield bytes in score -pfscore2 = $f3 -pfscorecolor = $f4 - -stack1 = $f6 -stack2 = $f7 -stack3 = $f8 -stack4 = $f9 -; the stack bytes above may be used in the kernel -; stack = F6-F7, F8-F9, FA-FB, FC-FD, FE-FF - - MAC RETURN ; auto-return from either a regular or bankswitched module - ifnconst bankswitch - rts - else - jmp BS_return - endif - ENDM - - ifconst superchip -playfieldbase = $10D0 - else -playfieldbase = $A4 - endif - -; define playfield start based on height - ifnconst pfres -playfield = playfieldbase - else -playfield = playfieldbase-(pfres-12)*4 - endif - -; every bank has this stuff at the same place -; this code can switch to/from any bank at any entry point -; and can preserve register values -; note: lines not starting with a space are not placed in all banks -; -; line below tells the compiler how long this is - do not remove -;size=32 -begin_bscode - ldx #$ff - txs - lda #>(start-1) - pha - lda #<(start-1) - pha -BS_return - pha - txa - pha - tsx - lda 4,x ; get high byte of return address - rol - rol - rol - rol - and #bs_mask ;1 3 or 7 for F8/F6/F4 - tax - inx -BS_jsr - lda bankswitch_hotspot-1,x - pla - tax - pla - rts - if ((* & $1FFF) > ((bankswitch_hotspot & $1FFF) - 1)) - echo "WARNING: size parameter in banksw.asm too small - the program probably will not work." - echo "Change to",[(*-begin_bscode+1)&$FF]d,"and try again." - endif - processor 6502 - include "vcs.h" - include "macro.h" - include "multisprite.h" - include "2600basic_variable_redefs.h" - ifconst bankswitch - if bankswitch == 8 - ORG $1000 - RORG $D000 - endif - if bankswitch == 16 - ORG $1000 - RORG $9000 - endif - if bankswitch == 32 - ORG $1000 - RORG $1000 - endif - else - ORG $F000 - endif -; y and a contain multiplicands, result in a - -mul8 - sty temp1 - sta temp2 - lda #0 -reptmul8 - lsr temp2 - bcc skipmul8 - clc - adc temp1 -;bcs donemul8 might save cycles? -skipmul8 -;beq donemul8 might save cycles? - asl temp1 - bne reptmul8 -donemul8 - RETURN - -div8 - ; a=numerator y=denominator, result in a - cpy #2 - bcc div8end+1;div by 0 = bad, div by 1=no calc needed, so bail out - sty temp1 - ldy #$ff -div8loop - sbc temp1 - iny - bcs div8loop -div8end - tya - ; result in a - RETURN -minikernel ; display up to 6 lives on screen - sta WSYNC - ldx #$20 - stx HMP1 - stx VDELP0 - lda lives - lsr - lsr - lsr - lsr - lsr - sta RESP0 - sta RESP1 - stx VDELP1 - tax - lda lifenusiz0table,x - sta NUSIZ0 - lda lifenusiz1table,x - sta NUSIZ1 - lda lifecolor - sta COLUP0 - sta COLUP1 - lda #$10 - sta HMP0 - - lda statusbarlength - lsr - lsr - lsr ; 0-31 - ; 3 cases: 0-7, 8-15, 16-24 - ; if 0-7, temp1=val, temp2=0, temp3=0 - ; if 8-15, temp1=255, temp2=val (rev), temp3=0 - ; if 16-23, temp1=255, temp2=255, temp3=val - tay - - sta HMOVE ;cycle 74? - - ifconst statusbarcolor - ; only write COLUPF if color variable exists, otherwise use existing PF color - lda statusbarcolor - sta COLUPF - endif - - cmp #8 - bcc zero_7 - cmp #16 - bcc eight_15 - lda #255 - sta temp1 - sta temp2 - lda statustable-16,y - sta temp3 - lda statustable,y - sta temp4 - jmp startlifedisplay - -zero_7 - lda #0 - sta temp4 - sta temp3 - sta temp2 - lda statustable,y - sta temp1 - jmp startlifedisplay -eight_15 - lda #255 - sta temp1 - lda #0 - sta temp4 - sta temp3 - lda statustable+16,y - sta temp2 -startlifedisplay - ldy #7 -lifeloop - sta WSYNC - stx PF0 - lda (lifepointer),y - cpx #0 - bne onelife - .byte $0C -onelife - sta GRP0 - - cpx #2 - bcs nolives - .byte $0C -nolives - sta GRP1 - lda temp4 - sta PF0 - lda temp1 - sta PF2 - lda temp3 - sta PF1 - lda temp2 - sta PF2 ;cycle 48! - sleep 14 - lda #0 - dey - sta PF1 - bpl lifeloop - sta WSYNC - iny - sty PF0 - sty PF2 - sty PF1 - sty GRP0 - sty GRP1 - rts - - if (<*) > $F5 - align 256 - endif -lifenusiz1table - .byte 0 -lifenusiz0table - .byte 0,0,0,1,1,3,3,3 - -statustable -;0-7 and 16+ - .byte %00000000 - .byte %00000001 - .byte %00000011 - .byte %00000111 - .byte %00001111 - .byte %00011111 - .byte %00111111 - .byte %01111111 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 255 -; 8-15 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte %00000000 - .byte %10000000 - .byte %11000000 - .byte %11100000 - .byte %11110000 - .byte %11111000 - .byte %11111100 - .byte %11111110 - -FineAdjustTableBegin - .byte %01100000 ;left 6 - .byte %01010000 - .byte %01000000 - .byte %00110000 - .byte %00100000 - .byte %00010000 - .byte %00000000 ;left 0 - .byte %11110000 - .byte %11100000 - .byte %11010000 - .byte %11000000 - .byte %10110000 - .byte %10100000 - .byte %10010000 - .byte %10000000 ;right 8 -FineAdjustTableEnd = FineAdjustTableBegin - 241 - -PFStart - .byte 87,43,0,21,0,0,0,10 -blank_pf - .byte 0,0,0,0,0,0,0,5 -; .byte 43,21,0,10,0,0,0,5 - ifconst screenheight -pfsub - .byte 8,4,2,2,1,0,0,1,0 - endif - ;--set initial P1 positions -multisprite_setup - lda #15 - sta pfheight - - ldx #4 -; stx temp3 -SetCopyHeight -; lda #76 -; sta NewSpriteX,X -; lda CopyColorData,X -; sta NewCOLUP1,X - ;lda SpriteHeightTable,X -; sta spriteheight,x - txa - sta SpriteGfxIndex,X - sta spritesort,X - dex - bpl SetCopyHeight - - - -; since we can't turn off pf, point PF to zeros here - lda #>blank_pf - sta PF2pointer+1 - sta PF1pointer+1 - lda #temp1 -; swap lo4->temp3 -; swap lo6->temp5 - - lda scorepointers+5 - sta temp5 - lda scorepointers+1 - sta temp1 - lda scorepointers+3 - sta temp3 - - lda #>scoretable - sta scorepointers+1 - sta scorepointers+3 - sta scorepointers+5 - sta temp2 - sta temp4 - sta temp6 - - rts - - - -;------------------------------------------------------------------------- -;----------------------Kernel Routine------------------------------------- -;------------------------------------------------------------------------- - - -;------------------------------------------------------------------------- -; echo * -; repeat $f147-* -; brk -; repend -; org $F240 - -SwitchDrawP0K1 ; 72 - lda P0Bottom - sta P0Top ;+6 2 - jmp BackFromSwitchDrawP0K1 ;+3 5 - -WaitDrawP0K1 ; 74 - SLEEP 4 ;+4 2 - jmp BackFromSwitchDrawP0K1 ;+3 5 - -SkipDrawP1K1 ; 11 - lda #0 - sta GRP1 ;+5 16 so Ball gets drawn - jmp BackFromSkipDrawP1 ;+3 19 - -;------------------------------------------------------------------------- - -KernelRoutine - ifnconst screenheight - jsr wastetime ; waste 12 cycles - else - sleep 6 - endif - tsx - stx stack1 - ldx #ENABL - txs ;+9 9 - - ldx #0 - lda pfheight - bpl asdhj - .byte $24 -asdhj - tax - -; ldx pfheight - lda PFStart,x ; get pf pixel resolution for heights 15,7,3,1,0 - - ifconst screenheight - sec - if screenheight == 84 - sbc pfsub+1,x - else - sbc pfsub,x - endif - endif - - sta pfpixelheight - - ifconst screenheight - ldy #screenheight - else - ldy #88 - endif - -; lda #$02 -; sta COLUBK ;+5 18 - -; sleep 25 - sleep 2 -KernelLoopa ; 50 - SLEEP 7 ;+4 54 -KernelLoopb ; 54 - SLEEP 2 ;+12 66 - cpy P0Top ;+3 69 - beq SwitchDrawP0K1 ;+2 71 - bpl WaitDrawP0K1 ;+2 73 - lda (player0pointer),Y ;+5 2 - sta GRP0 ;+3 5 VDEL because of repokernel -BackFromSwitchDrawP0K1 - - cpy P1Bottom ;+3 8 unless we mean to draw immediately, this should be set - ; to a value greater than maximum Y value initially - bcc SkipDrawP1K1 ;+2 10 - lda (P1display),Y ;+5 15 - sta.w GRP1 ;+4 19 -BackFromSkipDrawP1 - -;fuck - sty temp1 - ldy pfpixelheight - lax (PF1pointer),y - stx PF1 ;+7 26 - lda (PF2pointer),y - sta PF2 ;+7 33 - ;sleep 6 - stx PF1temp2 - sta PF2temp2 - dey - lda (PF1pointer),y - sta PF1temp1 - lda (PF2pointer),y - sta PF2temp1 - ldy temp1 - - ldx #ENABL - txs - cpy bally - php ;+6 39 VDEL ball - - - cpy missile1y - php ;+6 71 - - cpy missile0y - php ;+6 1 - ldx #1 - - - dey ;+2 15 - - cpy RepoLine ;+3 18 - beq RepoKernel ;+2 20 -; SLEEP 20 ;+23 43 - sleep 6 - -newrepo ; since we have time here, store next repoline - ldx SpriteIndex - lda SpriteGfxIndex-1,x - tax - lda NewSpriteY,x - sta temp6 - sleep 4 - -BackFromRepoKernel - tya ;+2 45 - and pfheight ;+2 47 - bne KernelLoopa ;+2 49 - dec pfpixelheight - bpl KernelLoopb ;+3 54 -; bmi donewkernel ;+3 54 -; bne KernelLoopb+1 ;+3 54 - -donewkernel - jmp DoneWithKernel ;+3 56 - -;------------------------------------------------------------------------- - - ; room here for score? - -setscorepointers - lax score+2 - jsr scorepointerset - sty scorepointers+5 - stx scorepointers+2 - lax score+1 - jsr scorepointerset - sty scorepointers+4 - stx scorepointers+1 - lax score - jsr scorepointerset - sty scorepointers+3 - stx scorepointers -wastetime - rts - -scorepointerset - and #$0F - asl - asl - asl - adc #=temp1) - cmp spriteheight,x - bcs countdown -; overlap with x+1>x -; -; stick x at end of gfxtable, dec counter -overlapping - dec temp3 - ldx temp2 - inx - jsr shiftnumbers - jmp skipswapGfxtable - -largerXislower ; (temp1>A) - tay - ldx temp2 - lda spritesort,x - tax - tya - eor #$FF - cmp spriteheight,x - bcs notoverlapping - - dec temp3 - ldx temp2 - inx - jsr shiftnumbers - jmp skipswapGfxtable -notoverlapping - ldx temp2 ; swap display table - ldy SpriteGfxIndex+1,x - lda SpriteGfxIndex,x - sty SpriteGfxIndex,x - sta SpriteGfxIndex+1,x - -skipswapGfxtable - ldx temp2 ; swap sort table - ldy spritesort+1,x - lda spritesort,x - sty spritesort,x - sta spritesort+1,x - -countdown - dec temp2 - bpl sortloop - -checktoohigh - ldx temp3 - lda SpriteGfxIndex,x - tax - lda NewSpriteY,x - ifconst screenheight - cmp #screenheight-2 - else - cmp #$56 - endif - bcc nonetoohigh - dec temp3 - bne checktoohigh - -nonetoohigh - rts - - -shiftnumbers - ; stick current x at end, shift others down - ; if x=4: don't do anything - ; if x=3: swap 3 and 4 - ; if x=2: 2=3, 3=4, 4=2 - ; if x=1: 1=2, 2=3, 3=4, 4=1 - ; if x=0: 0=1, 1=2, 2=3, 3=4, 4=0 - ldy SpriteGfxIndex,x -swaploop - cpx #4 - beq shiftdone - lda SpriteGfxIndex+1,x - sta SpriteGfxIndex,x - inx - jmp swaploop -shiftdone - sty SpriteGfxIndex,x - rts - - ifconst debugscore -debugcycles - ldx #14 - lda INTIM ; display # cycles left in the score - - ifconst mincycles - lda mincycles - cmp INTIM - lda mincycles - bcc nochange - lda INTIM - sta mincycles -nochange - endif - -; cmp #$2B -; bcs no_cycles_left - bmi cycles_left - ldx #64 - eor #$ff ;make negative -cycles_left - stx scorecolor - and #$7f ; clear sign bit - tax - lda scorebcd,x - sta score+2 - lda scorebcd1,x - sta score+1 - rts -scorebcd - .byte $00, $64, $28, $92, $56, $20, $84, $48, $12, $76, $40 - .byte $04, $68, $32, $96, $60, $24, $88, $52, $16, $80, $44 - .byte $08, $72, $36, $00, $64, $28, $92, $56, $20, $84, $48 - .byte $12, $76, $40, $04, $68, $32, $96, $60, $24, $88 -scorebcd1 - .byte 0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6 - .byte 7, 7, 8, 8, 9, $10, $10, $11, $12, $12, $13 - .byte $14, $14, $15, $16, $16, $17, $17, $18, $19, $19, $20 - .byte $21, $21, $22, $23, $23, $24, $24, $25, $26, $26 - endif -; -; Inclues go below - order is crucial, since this is also the order in which -; they will appear in the generated assembly file -; - - -; header file -2600basicheader.asm - - -; standard kernel: two players, two missiles, a ball and an asymmetric playfield. -std_kernel.asm - -; standard startup routine. -startup.asm - - -; below are collections of subroutines and functions -; if you have any more to add, put them immediately below this line. - -pf_drawing.asm -pf_scrolling.asm -std_routines.asm - -; The overscan routine goes below. it sets up sprites for the std_kernel. -; if you have any routines that will not run until the overscan period, -; put them immediately below this line. -std_overscan.asm - - -; below is the generated batari Basic file - -bB.asm - - -; score graphics. -score_graphics.asm - -; below is the footer, which contains the score digits and startup vectors. -; If you want to create your own custom score digits, you may hack the file below, -; but first you should rename it to something else. - -2600basicfooter.asm - processor 6502 - include "vcs.h" - include "macro.h" - include "2600basic.h" - include "2600basic_variable_redefs.h" - ifconst bankswitch - if bankswitch == 8 - ORG $1000 - RORG $D000 - endif - if bankswitch == 16 - ORG $1000 - RORG $9000 - endif - if bankswitch == 32 - ORG $1000 - RORG $1000 - endif - else - ORG $F000 - endif - repeat 256 - .byte $ff - repend -pfscroll ;(a=0 left, 1 right, 2 up, 4 down, 6=upup, 12=downdown) - bne notleft -;left - ifconst pfres - ldx #pfres*4 - else - ldx #48 - endif -leftloop - lda playfield-1,x - lsr - - ifconst superchip - lda playfield-2,x - rol - sta playfield-130,x - lda playfield-3,x - ror - sta playfield-131,x - lda playfield-4,x - rol - sta playfield-132,x - lda playfield-1,x - ror - sta playfield-129,x - else - rol playfield-2,x - ror playfield-3,x - rol playfield-4,x - ror playfield-1,x - endif - - txa - sbx #4 - bne leftloop - RETURN - -notleft - lsr - bcc notright -;right - - ifconst pfres - ldx #pfres*4 - else - ldx #48 - endif -rightloop - lda playfield-4,x - lsr - ifconst superchip - lda playfield-3,x - rol - sta playfield-131,x - lda playfield-2,x - ror - sta playfield-130,x - lda playfield-1,x - rol - sta playfield-129,x - lda playfield-4,x - ror - sta playfield-132,x - else - rol playfield-3,x - ror playfield-2,x - rol playfield-1,x - ror playfield-4,x - endif - txa - sbx #4 - bne rightloop - RETURN - -notright - lsr - bcc notup -;up - lsr - bcc onedecup - dec playfieldpos -onedecup - dec playfieldpos - beq shiftdown - bpl noshiftdown2 -shiftdown - ifconst pfrowheight - lda #pfrowheight - else - ifnconst pfres - lda #8 - else - lda #(96/pfres) ; try to come close to the real size - endif - endif - - sta playfieldpos - lda playfield+3 - sta temp4 - lda playfield+2 - sta temp3 - lda playfield+1 - sta temp2 - lda playfield - sta temp1 - ldx #0 -up2 - lda playfield+4,x - ifconst superchip - sta playfield-128,x - lda playfield+5,x - sta playfield-127,x - lda playfield+6,x - sta playfield-126,x - lda playfield+7,x - sta playfield-125,x - else - sta playfield,x - lda playfield+5,x - sta playfield+1,x - lda playfield+6,x - sta playfield+2,x - lda playfield+7,x - sta playfield+3,x - endif - txa - sbx #252 - ifconst pfres - cpx #(pfres-1)*4 - else - cpx #44 - endif - bne up2 - - lda temp4 - - ifconst superchip - ifconst pfres - sta playfield+pfres*4-129 - lda temp3 - sta playfield+pfres*4-130 - lda temp2 - sta playfield+pfres*4-131 - lda temp1 - sta playfield+pfres*4-132 - else - sta playfield+47-128 - lda temp3 - sta playfield+46-128 - lda temp2 - sta playfield+45-128 - lda temp1 - sta playfield+44-128 - endif - else - ifconst pfres - sta playfield+pfres*4-1 - lda temp3 - sta playfield+pfres*4-2 - lda temp2 - sta playfield+pfres*4-3 - lda temp1 - sta playfield+pfres*4-4 - else - sta playfield+47 - lda temp3 - sta playfield+46 - lda temp2 - sta playfield+45 - lda temp1 - sta playfield+44 - endif - endif -noshiftdown2 - RETURN - - -notup -;down - lsr - bcs oneincup - inc playfieldpos -oneincup - inc playfieldpos - lda playfieldpos - - ifconst pfrowheight - cmp #pfrowheight+1 - else - ifnconst pfres - cmp #9 - else - cmp #(96/pfres)+1 ; try to come close to the real size - endif - endif - - bcc noshiftdown - lda #1 - sta playfieldpos - - ifconst pfres - lda playfield+pfres*4-1 - sta temp4 - lda playfield+pfres*4-2 - sta temp3 - lda playfield+pfres*4-3 - sta temp2 - lda playfield+pfres*4-4 - else - lda playfield+47 - sta temp4 - lda playfield+46 - sta temp3 - lda playfield+45 - sta temp2 - lda playfield+44 - endif - - sta temp1 - - ifconst pfres - ldx #(pfres-1)*4 - else - ldx #44 - endif -down2 - lda playfield-1,x - ifconst superchip - sta playfield-125,x - lda playfield-2,x - sta playfield-126,x - lda playfield-3,x - sta playfield-127,x - lda playfield-4,x - sta playfield-128,x - else - sta playfield+3,x - lda playfield-2,x - sta playfield+2,x - lda playfield-3,x - sta playfield+1,x - lda playfield-4,x - sta playfield,x - endif - txa - sbx #4 - bne down2 - - lda temp4 - ifconst superchip - sta playfield-125 - lda temp3 - sta playfield-126 - lda temp2 - sta playfield-127 - lda temp1 - sta playfield-128 - else - sta playfield+3 - lda temp3 - sta playfield+2 - lda temp2 - sta playfield+1 - lda temp1 - sta playfield - endif -noshiftdown - RETURN -;standard routines needed for pretty much all games -; just the random number generator is left - maybe we should remove this asm file altogether? -; repositioning code and score pointer setup moved to overscan -; read switches, joysticks now compiler generated (more efficient) - -randomize - lda rand - lsr - ifconst rand16 - rol rand16 - endif - bcc noeor - eor #$B4 -noeor - sta rand - ifconst rand16 - eor rand16 - endif - RETURN - processor 6502 - include "vcs.h" - include "macro.h" - include "2600basic.h" - include "2600basic_variable_redefs.h" - ifconst bankswitch - if bankswitch == 8 - ORG $1000 - RORG $D000 - endif - if bankswitch == 16 - ORG $1000 - RORG $9000 - endif - if bankswitch == 32 - ORG $1000 - RORG $1000 - endif - else - ORG $F000 - endif -; -; Inclues go below - order is crucial, since this is also the order in which -; they will appear in the generated assembly file -; -; header file -multispriteheader.asm - -; this is the batari Basic file -; for bankswitching, the concatenator will only parse until the end of -; bank 1 -bB.asm - -; standard kernel: two players, two missiles, a ball and an asymmetric playfield. -multisprite_kernel.asm - -; standard startup routine. -startup.asm - - -; below are collections of subroutines and functions -; if you have any more to add, put them immediately below this line. - -std_routines.asm - -; below is the generated batari Basic file -; note: this file is generated by the concatenation program. -; automatically split off from the bB.asm file where the new bank occurs - -bB2.asm - - -; score gfx -score_graphics.asm - -;bankswitch support -banksw.asm - - -; below is the footer, which contains the score digits and startup vectors. -; If you want to create your own custom score digits, you may hack the file below, -; but first you should rename it to something else. -; also includes bankswitching support (if applicable) - -2600basicfooter.asm -start - sei - cld - ldy #0 - lda $D0 - cmp #$2C ;check RAM location #1 - bne MachineIs2600 - lda $D1 - cmp #$A9 ;check RAM location #2 - bne MachineIs2600 - dey -MachineIs2600 - ldx #0 - txa -clearmem - inx - txs - pha - bne clearmem - sty temp1 - ifconst pfrowheight - lda pfrowheight - else - ifconst pfres - lda #(96/pfres) - else - lda #8 - endif - endif - sta playfieldpos - ldx #5 -initscore - lda #(game-1) - pha - lda #<(game-1) - pha - pha - pha - ldx #1 - jmp BS_jsr - endif -; playfield drawing routines -; you get a 32x12 bitmapped display in a single color :) -; 0-31 and 0-11 - -pfclear ; clears playfield - or fill with pattern - ifconst pfres - ldx #pfres*4-1 - else - ldx #47 - endif -pfclear_loop - ifnconst superchip - sta playfield,x - else - sta playfield-128,x - endif - dex - bpl pfclear_loop - RETURN - -setuppointers - stx temp2 ; store on.off.flip value - tax ; put x-value in x - lsr - lsr - lsr ; divide x pos by 8 - sta temp1 - tya - asl - asl ; multiply y pos by 4 - clc - adc temp1 ; add them together to get actual memory location offset - tay ; put the value in y - lda temp2 ; restore on.off.flip value - rts - -pfread -;x=xvalue, y=yvalue - jsr setuppointers - lda setbyte,x - and playfield,y - eor setbyte,x -; beq readzero -; lda #1 -; readzero - RETURN - -pfpixel -;x=xvalue, y=yvalue, a=0,1,2 - jsr setuppointers - - ifconst bankswitch - lda temp2 ; load on.off.flip value (0,1, or 2) - beq pixelon_r ; if "on" go to on - lsr - bcs pixeloff_r ; value is 1 if true - lda playfield,y ; if here, it's "flip" - eor setbyte,x - ifconst superchip - sta playfield-128,y - else - sta playfield,y - endif - RETURN -pixelon_r - lda playfield,y - ora setbyte,x - ifconst superchip - sta playfield-128,y - else - sta playfield,y - endif - RETURN -pixeloff_r - lda setbyte,x - eor #$ff - and playfield,y - ifconst superchip - sta playfield-128,y - else - sta playfield,y - endif - RETURN - - else - jmp plotpoint - endif - -pfhline -;x=xvalue, y=yvalue, a=0,1,2, temp3=endx - jsr setuppointers - jmp noinc -keepgoing - inx - txa - and #7 - bne noinc - iny -noinc - jsr plotpoint - cpx temp3 - bmi keepgoing - RETURN - -pfvline -;x=xvalue, y=yvalue, a=0,1,2, temp3=endx - jsr setuppointers - sty temp1 ; store memory location offset - inc temp3 ; increase final x by 1 - lda temp3 - asl - asl ; multiply by 4 - sta temp3 ; store it - ; Thanks to Michael Rideout for fixing a bug in this code - ; right now, temp1=y=starting memory location, temp3=final - ; x should equal original x value -keepgoingy - jsr plotpoint - iny - iny - iny - iny - cpy temp3 - bmi keepgoingy - RETURN - -plotpoint - lda temp2 ; load on.off.flip value (0,1, or 2) - beq pixelon ; if "on" go to on - lsr - bcs pixeloff ; value is 1 if true - lda playfield,y ; if here, it's "flip" - eor setbyte,x - ifconst superchip - sta playfield-128,y - else - sta playfield,y - endif - rts -pixelon - lda playfield,y - ora setbyte,x - ifconst superchip - sta playfield-128,y - else - sta playfield,y - endif - rts -pixeloff - lda setbyte,x - eor #$ff - and playfield,y - ifconst superchip - sta playfield-128,y - else - sta playfield,y - endif - rts - -setbyte - .byte $80 - .byte $40 - .byte $20 - .byte $10 - .byte $08 - .byte $04 - .byte $02 - .byte $01 - .byte $01 - .byte $02 - .byte $04 - .byte $08 - .byte $10 - .byte $20 - .byte $40 - .byte $80 - .byte $80 - .byte $40 - .byte $20 - .byte $10 - .byte $08 - .byte $04 - .byte $02 - .byte $01 - .byte $01 - .byte $02 - .byte $04 - .byte $08 - .byte $10 - .byte $20 - .byte $40 - .byte $80 -; feel free to modify the score graphics - just keep each digit 8 high -; and keep the conditional compilation stuff intact - ifconst ROM2k - ORG $F7AC - else - ifconst bankswitch - if bankswitch == 8 - ORG $2F94-bscode_length - RORG $FF94-bscode_length - endif - if bankswitch == 16 - ORG $4F94-bscode_length - RORG $FF94-bscode_length - endif - if bankswitch == 32 - ORG $8F94-bscode_length - RORG $FF94-bscode_length - endif - else - ORG $FF9C - endif - endif - - -scoretable - .byte %00111100 - .byte %01100110 - .byte %01100110 - .byte %01100110 - .byte %01100110 - .byte %01100110 - .byte %01100110 - .byte %00111100 - - .byte %01111110 - .byte %00011000 - .byte %00011000 - .byte %00011000 - .byte %00011000 - .byte %00111000 - .byte %00011000 - .byte %00001000 - - .byte %01111110 - .byte %01100000 - .byte %01100000 - .byte %00111100 - .byte %00000110 - .byte %00000110 - .byte %01000110 - .byte %00111100 - - .byte %00111100 - .byte %01000110 - .byte %00000110 - .byte %00000110 - .byte %00011100 - .byte %00000110 - .byte %01000110 - .byte %00111100 - - .byte %00001100 - .byte %00001100 - .byte %01111110 - .byte %01001100 - .byte %01001100 - .byte %00101100 - .byte %00011100 - .byte %00001100 - - .byte %00111100 - .byte %01000110 - .byte %00000110 - .byte %00000110 - .byte %00111100 - .byte %01100000 - .byte %01100000 - .byte %01111110 - - .byte %00111100 - .byte %01100110 - .byte %01100110 - .byte %01100110 - .byte %01111100 - .byte %01100000 - .byte %01100010 - .byte %00111100 - - .byte %00110000 - .byte %00110000 - .byte %00110000 - .byte %00011000 - .byte %00001100 - .byte %00000110 - .byte %01000010 - .byte %00111110 - - .byte %00111100 - .byte %01100110 - .byte %01100110 - .byte %01100110 - .byte %00111100 - .byte %01100110 - .byte %01100110 - .byte %00111100 - - .byte %00111100 - .byte %01000110 - .byte %00000110 - .byte %00111110 - .byte %01100110 - .byte %01100110 - .byte %01100110 - .byte %00111100 - - - ifconst ROM2k - ORG $F7FC - else - ifconst bankswitch - if bankswitch == 8 - ORG $2FF4-bscode_length - RORG $FFF4-bscode_length - endif - if bankswitch == 16 - ORG $4FF4-bscode_length - RORG $FFF4-bscode_length - endif - if bankswitch == 32 - ORG $8FF4-bscode_length - RORG $FFF4-bscode_length - endif - else - ORG $FFFC - endif - endif -pfread - cmp #16 - bcc lefthalf - eor #31 ; 16-31 converted to 15-0 -lefthalf - tax - lda bytemask,x - cpx #8 - bcc bytedone - and (PF2pointer),y - .byte $0C -bytedone - and (PF1pointer),y - RETURN -bytemask - .byte $80,$40,$20,$10,8,4,2,1 - .byte 1,2,4,8,$10,$20,$40,$80 -; Fixed point math routines - created by AtariAge member djmips -; some changes by Fred Quimby - -;assignment from 8.8 to 4.4 - -Assign88to44: - - ; A(4.4) = A,X(8.8) - - stx temp1 - rol temp1 - asl - rol temp1 - asl - rol temp1 - asl - rol temp1 - asl - rts - -;assignment from 4.4 to 8.8 -; - -Assign44to88: - - ; A,X(8.8) = A(4.4) - - sta temp1 - lda #0 - asl temp1 - sbc #0 ; - eor #$ff ; do sign extend - rol - asl temp1 - rol - asl temp1 - rol - asl temp1 - rol - ldx temp1 - rts - - ifconst bankswitch -Assign88to44bs: - - ; A(4.4) = A,X(8.8) - - stx temp1 - rol temp1 - asl - rol temp1 - asl - rol temp1 - asl - rol temp1 - asl - RETURN - -;assignment from 4.4 to 8.8 -; - -Assign44to88bs: - - ; A,X(8.8) = A(4.4) - - sta temp1 - lda #0 - asl temp1 - sbc #0 ; - eor #$ff ; do sign extend - rol - asl temp1 - rol - asl temp1 - rol - asl temp1 - rol - ldx temp1 - RETURN - endif - -; -;Addition/subtraction asm procedures: - -;add/sub 8.8 to/from 4.4 - -Add88to44: - - ; A(4.4) = A,X(8.8) + Y(4.4) - - jsr Assign88to44 - sty temp1 - clc - adc temp1 - rts - -Sub88from44: - - ; A(4.4) = A,X(8.8) - Y(4.4) - - jsr Assign88to44 - sty temp1 - sec - sbc temp1 - rts - - -Add44to88: - - ; A,X(8.8) = A,X(8.8) + Y(4.4) - - sta temp2 - stx temp3 - tya - jsr Assign44to88 - clc - sta temp1 - txa - adc temp3 - tax - lda temp1 - adc temp2 - rts - - -Sub44from88: - - ; A,X(8.8) = A,X(8.8) - Y(4.4) - - sta temp2 - stx temp3 - tya - jsr Assign44to88 - sec - sta temp1 - lda temp3 - stx temp3 - sbc temp3 - tax - lda temp2 - sbc temp1 - rts - -missile0x = $80 -missile1x = $81 -ballx = $82 - -objecty = $83 -missile0y = $83 -missile1y = $84 -bally = $85 - -; multisprite stuff below - 5 bytes each starting with spritex - -SpriteIndex = $86 - -player0x = $87 -NewSpriteX = $88 ; X position -player1x = $88 -player2x = $89 -player3x = $8A -player4x = $8B -player5x = $8C - -player0y = $8D -NewSpriteY = $8E ; Y position -player1y = $8E -player2y = $8F -player3y = $90 -player4y = $91 -player5y = $92 - -NewNUSIZ = $93 -_NUSIZ1 = $93 -NUSIZ2 = $94 -NUSIZ3 = $95 -NUSIZ4 = $96 -NUSIZ5 = $97 - -NewCOLUP1 = $98 -_COLUP1 = $98 -COLUP2 = $99 -COLUP3 = $9A -COLUP4 = $9B -COLUP5 = $9C - -SpriteGfxIndex = $9D - -player0pointer = $A2 -player0pointerlo = $A2 -player0pointerhi = $A3 - -;P0Top = $A4 -P0Top = temp5 -P0Bottom = $A4 -P1Bottom = $A5 - -player1pointerlo = $A6 -player2pointerlo = $A7 -player3pointerlo = $A8 -player4pointerlo = $A9 -player5pointerlo = $AA - -player1pointerhi = $AB -player2pointerhi = $AC -player3pointerhi = $AD -player4pointerhi = $AE -player5pointerhi = $AF - -player0height = $B0 -spriteheight = $B1 ; heights of multiplexed player sprite -player1height = $B1 -player2height = $B2 -player3height = $B3 -player4height = $B4 -player5height = $B5 - -PF1temp1 = $B6 -PF1temp2 = $B7 -PF2temp1 = $B8 -PF2temp2 = $B9 - -pfpixelheight = $BA - -; playfield is now a pointer to graphics -playfield = $BB -PF1pointer = $BB - -PF2pointer = $BD - -statusbarlength = $BF -aux3 = $BF - -lifecolor = $C0 -pfscorecolor = $C0 -aux4 = $C0 - -P1display = temp2 ; temp2 and temp3 -lifepointer = $c1 -lives = $c2 -pfscore1 = $c1 -pfscore2 = $c2 -aux5 = $c1 -aux6 = $c2 - -playfieldpos = $C3 - -RepoLine = temp4 - -scorepointers = $C4 - -temp1 = $CA ;used by kernel. can be used in program too, but -temp2 = $CB ;are obliterated when drawscreen is called. -temp3 = $CC -temp4 = $CD -temp5 = $CE -temp6 = $CF -temp7 = $D0 ; This is used to aid in bankswitching - -score = $D1 -pfheight = $D4 -scorecolor = $D5 ;need to find other places for these, possibly... -rand = $D6 - - - -A = $d7 -a = $d7 -B = $d8 -b = $d8 -C = $d9 -c = $d9 -D = $da -d = $da -E = $db -e = $db -F = $dc -f = $dc -G = $dd -g = $dd -H = $de -h = $de -I = $df -i = $df -J = $e0 -j = $e0 -K = $e1 -k = $e1 -L = $e2 -l = $e2 -M = $e3 -m = $e3 -N = $e4 -n = $e4 -O = $e5 -o = $e5 -P = $e6 -p = $e6 -Q = $e7 -q = $e7 -R = $e8 -r = $e8 -S = $e9 -s = $e9 -T = $ea -t = $ea -U = $eb -u = $eb -V = $ec -v = $ec -W = $ed -w = $ed -X = $ee -x = $ee -Y = $ef -y = $ef -Z = $f0 -z = $f0 - -spritesort = $f1 ; helps with flickersort -spritesort2 = $f2 ; helps with flickersort -spritesort3 = $f3 -spritesort4 = $f4 -spritesort5 = $f5 - -stack1 = $f6 -stack2 = $f7 -stack3 = $f8 -stack4 = $f9 -; the stack bytes above may be used in the kernel -; stack = F6-F7, F8-F9, FA-FB, FC-FD, FE-FF - - MAC RETURN ; auto-return from either a regular or bankswitched module - ifnconst bankswitch - rts - else - jmp BS_return - endif - ENDM - - -; -; Inclues go below - order is crucial, since this is also the order in which -; they will appear in the generated assembly file -; - - -; header file - multispriteheader.asm - - -multisprite_kernel.asm - -; standard startup routine. -startup.asm - - -; below are collections of subroutines and functions -; if you have any more to add, put them immediately below this line. - -std_routines.asm - -; The overscan routine goes below. it sets up sprites for the std_kernel. -; if you have any routines that will not run until the overscan period, -; put them immediately below this line. - - -; below is the generated batari Basic file - -bB.asm - - -; score graphics. -score_graphics.asm - -; below is the footer, which contains the score digits and startup vectors. -; If you want to create your own custom score digits, you may hack the file below, -; but first you should rename it to something else. - -2600basicfooter.asm diff --git a/src/worker/tools/bataribasic.ts b/src/worker/tools/bataribasic.ts index b24ab30a..e4e6ce59 100644 --- a/src/worker/tools/bataribasic.ts +++ b/src/worker/tools/bataribasic.ts @@ -1,100 +1,196 @@ -import { BuildStep, BuildStepResult, gatherFiles, getWorkFileAsString, populateFiles, putWorkFile, staleFiles } from "../builder"; -import { EmscriptenModule, emglobal, execMain, load, print_fn, setupFS, setupStdin } from "../wasmutils"; +// batari Basic compiler (WASI/wasmtime build, v1.9) +// Pipeline: preprocess | 2600basic > bB.asm ; postprocess -i . > final.asm ; +// dasm final.asm -I./includes -f3 -p20 -> .bin/.lst/.sym +// (The optional optimize/bbfilter/relocateBB stages are not used here.) +import { WASIRunner } from "../../common/wasi/wasishim"; +import { CodeListingMap, WorkerError } from "../../common/workertypes"; +import { BuildStep, BuildStepResult, gatherFiles, staleFiles, store, putWorkFile, anyTargetChanged } from "../builder"; +import { loadWASMBinary } from "../wasmutils"; +import { loadWASIFilesystemZip } from "../wasiutils"; +import { parseDASMListing, parseSymbolMap, re_usl } from "./dasm"; +import { msvcErrorMatcher } from "../listingutils"; -function preprocessBatariBasic(code: string): string { - load("bbpreprocess"); - var bbout = ""; - function addbbout_fn(s) { - bbout += s; - bbout += "\n"; +let bbModules: { [name: string]: WebAssembly.Module } = {}; +let bbFS: any = null; + +function getBBModule(name: string): WebAssembly.Module { + if (!bbModules[name]) { + bbModules[name] = new WebAssembly.Module(loadWASMBinary("bb/" + name)); } - var BBPRE: EmscriptenModule = emglobal.preprocess({ - noInitialRun: true, - //logReadFiles:true, - print: addbbout_fn, - printErr: print_fn, - noFSInit: true, - }); - var FS = BBPRE.FS; - setupStdin(FS, code); - BBPRE.callMain([]); - console.log("preprocess " + code.length + " -> " + bbout.length + " bytes"); - return bbout; + return bbModules[name]; } -export function compileBatariBasic(step: BuildStep): BuildStepResult { - load("bb2600basic"); - var params = step.params; - // stdout - var asmout = ""; - function addasmout_fn(s) { - asmout += s; - asmout += "\n"; +async function getBBFilesystem() { + if (!bbFS) { + bbFS = await loadWASIFilesystemZip("bb-fs.zip"); } - // stderr - var re_err1 = /[(](\d+)[)]:?\s*(.+)/; - var errors = []; - var errline = 0; - function match_fn(s) { - console.log(s); - var matches = re_err1.exec(s); - if (matches) { - errline = parseInt(matches[1]); - errors.push({ - line: errline, - msg: matches[2] - }); + return bbFS; +} + +function makeRunner(name: string): WASIRunner { + const wasi = new WASIRunner(); + wasi.initSync(getBBModule(name)); + wasi.fs.setParent(bbFS); + wasi.addPreopenDirectory("."); + return wasi; +} + +function runRunner(wasi: WASIRunner, name: string, args: string[], errors: WorkerError[]): void { + wasi.setArgs([name, ...args]); + try { + wasi.run(); + } catch (e) { + errors.push({ line: 0, msg: "" + e }); + } +} + +// match "line #: error msg" lines from the 2600basic stderr +function matchBasicErrors(stderr: string, path: string, errors: WorkerError[]): void { + // e.g. "(14): error: Unknown keyword" + const re = /\((\d+)\):?\s*(.+)/; + for (let line of stderr.split("\n")) { + const m = re.exec(line); + if (m) { + errors.push({ path: path, line: parseInt(m[1]), msg: m[2] }); + } else if (line.indexOf("error") >= 0 || line.indexOf("Error") >= 0) { + errors.push({ line: 0, msg: line.trim() }); } } +} + +export async function compileBatariBasic(step: BuildStep): Promise { gatherFiles(step, { mainFilePath: "main.bas" }); - var destpath = step.prefix + '.asm'; - if (staleFiles(step, [destpath])) { - var BB: EmscriptenModule = emglobal.bb2600basic({ - noInitialRun: true, - //logReadFiles:true, - print: addasmout_fn, - printErr: match_fn, - noFSInit: true, - TOTAL_MEMORY: 64 * 1024 * 1024, - }); - var FS = BB.FS; - populateFiles(step, FS); - // preprocess, pipe file to stdin - var code = getWorkFileAsString(step.path); - code = preprocessBatariBasic(code); - setupStdin(FS, code); - setupFS(FS, '2600basic'); - execMain(step, BB, ["-i", "/share", step.path]); - if (errors.length) - return { errors: errors }; - // build final assembly output from include file list - var includesout = FS.readFile("includes.bB", { encoding: 'utf8' }); - var redefsout = FS.readFile("2600basic_variable_redefs.h", { encoding: 'utf8' }); - var includes = includesout.trim().split("\n"); - var combinedasm = ""; - var splitasm = asmout.split("bB.asm file is split here"); - for (var incfile of includes) { - var inctext; - if (incfile == "bB.asm") - inctext = splitasm[0]; - else if (incfile == "bB2.asm") - inctext = splitasm[1]; - else - inctext = FS.readFile("/share/includes/" + incfile, { encoding: 'utf8' }); - console.log(incfile, inctext.length); - combinedasm += "\n\n;;;" + incfile + "\n\n"; - combinedasm += inctext; + const destpath = step.prefix + '.asm'; + const binpath = step.prefix + '.bin'; + const lstpath = step.prefix + '.lst'; + const sympath = step.prefix + '.sym'; + if (!staleFiles(step, [destpath])) { + return; + } + await getBBFilesystem(); + const errors: WorkerError[] = []; + const srcpath = step.path; + const srcdata = store.getFileData(srcpath); + const source = typeof srcdata === 'string' ? new TextEncoder().encode(srcdata) : srcdata; + + // 1. preprocess: source on stdin -> tokenized output + const pre = makeRunner("preprocess"); + pre.stdin.write(source); + pre.stdin.offset = 0; // reset so fd_read starts at BOF + runRunner(pre, "preprocess", [], errors); + matchBasicErrors(pre.fds[2].getBytesAsString(), srcpath, errors); + if (errors.length) return { errors }; + const preprocessed = pre.fds[1].getBytes(); + + // helper: fail if the compiler exited nonzero with no parsed errors + function checkExit(wasi: WASIRunner, msg: string) { + if (wasi.errno != 0 && !errors.length) { + errors.push({ line: 0, msg: msg }); } - // TODO: ; bB.asm file is split here - putWorkFile(destpath, combinedasm); - putWorkFile("2600basic.h", FS.readFile("/share/includes/2600basic.h")); - putWorkFile("2600basic_variable_redefs.h", redefsout); + } + + // 2. 2600basic: preprocessed code on stdin -> bB.asm on stdout, + // writes includes.bB + 2600basic_variable_redefs.h to cwd (-i . => ./includes) + const basic = makeRunner("2600basic"); + basic.stdin.write(preprocessed); + basic.stdin.offset = 0; + runRunner(basic, "2600basic", ["-i", "."], errors); + const basicerr = basic.fds[2].getBytesAsString(); + matchBasicErrors(basicerr, srcpath, errors); + checkExit(basic, "Compilation failed."); + if (errors.length) return { errors }; + const bbasm = basic.fds[1].getBytes(); + + // 3. postprocess: reads includes.bB + bB.asm from cwd -> composite asm on stdout + const post = makeRunner("postprocess"); + post.fs.putFile("./bB.asm", bbasm); + for (const f of basic.fs.getFiles()) { + if (!f.name.startsWith('./includes/')) post.fs.putFile(f.name, f.getBytes()); + } + runRunner(post, "postprocess", ["-i", "."], errors); + checkExit(post, "Postprocess failed."); + if (errors.length) return { errors }; + const asmout = post.fds[1].getBytes(); + putWorkFile(destpath, asmout); + + // 4. dasm: assemble composite asm with include dir + const dasm = makeRunner("dasm"); + dasm.fs.putFile("./" + destpath, asmout); + for (const f of basic.fs.getFiles()) { + if (!f.name.startsWith('./includes/')) dasm.fs.putFile(f.name, f.getBytes()); + } + runRunner(dasm, "dasm", [destpath, "-I./includes", "-f3", "-p20", + "-l" + lstpath, "-s" + sympath, "-o" + binpath], errors); + // parse dasm stdout/stderr for warnings/errors + const matcher = msvcErrorMatcher(errors); + const unresolved = {}; + for (let line of dasm.fds[1].getBytesAsString().split("\n")) { + matcher(line); + let m = re_usl.exec(line); + if (m) { + unresolved[m[1]] = 0; + } + } + for (let line of dasm.fds[2].getBytesAsString().split("\n")) { + matcher(line); + } + if (errors.length) { + return { errors: errors }; + } + const alst = dasm.fs.getFile("./" + lstpath).getBytesAsString(); + const listings: CodeListingMap = {}; + for (let path of [...step.files, destpath]) { + listings[path] = { lines: [] }; + } + parseDASMListing(lstpath, alst, listings, errors, unresolved); + if (errors.length) { + return { errors: errors }; + } + let asym; + try { + asym = dasm.fs.getFile("./" + sympath).getBytesAsString(); + } catch (e) { + console.log(e); + return { errors: [{ line: 0, msg: "No symbol table generated, maybe segment overflow?" }] }; + } + const symbolmap = parseSymbolMap(asym); + const aout = dasm.fs.getFile("./" + binpath).getBytes(); + putWorkFile(binpath, aout); + putWorkFile(lstpath, alst); + putWorkFile(sympath, asym); + // return unchanged if no files changed + if (!anyTargetChanged(step, [binpath])) + return; + // map asm listing onto the BASIC editor view + let lst = listings[destpath]; + if (lst) { + lst.asmlines = lst.lines; + lst.text = alst; + lst.lines = []; } return { - nexttool: "dasm", - path: destpath, - args: [destpath], - files: [destpath, "2600basic.h", "2600basic_variable_redefs.h"], - bblines: true, + output: aout, + listings: listings, + errors: errors, + symbolmap: symbolmap, + origin: getOrigin(listings), }; -} \ No newline at end of file +} + +// Determine likely origin address from listing +function getOrigin(listings: CodeListingMap): number | undefined { + let minOffset: number | undefined; + for (let key in listings) { + let lst = listings[key]; + if (lst && lst.asmlines) { + for (let line of lst.asmlines) { + if (line.iscode && line.offset > 0) { + if (minOffset === undefined || line.offset < minOffset) { + minOffset = line.offset; + } + } + } + } + } + return minOffset; +} diff --git a/src/worker/tools/dasm.ts b/src/worker/tools/dasm.ts index 96fc2d86..6f141806 100644 --- a/src/worker/tools/dasm.ts +++ b/src/worker/tools/dasm.ts @@ -4,7 +4,7 @@ import { BuildStep, BuildStepResult, populateFiles, putWorkFile, anyTargetChange import { msvcErrorMatcher, re_crlf, re_msvc } from "../listingutils"; import { execMain, emglobal, EmscriptenModule, load, loadWASMBinary } from "../wasmutils"; -function parseDASMListing(lstpath: string, lsttext: string, listings: CodeListingMap, errors: WorkerError[], unresolved: {}) { +export function parseDASMListing(lstpath: string, lsttext: string, listings: CodeListingMap, errors: WorkerError[], unresolved: {}) { // TODO: this gets very slow // TODO: macros that are on adjacent lines don't get offset addresses // 4 08ee a9 00 start lda #01workermain.js:23:5 @@ -120,9 +120,9 @@ function parseDASMListing(lstpath: string, lsttext: string, listings: CodeListin } } -var re_usl = /(\w+)\s+0000\s+[?][?][?][?]/; +export var re_usl = /(\w+)\s+0000\s+[?][?][?][?]/; -function parseSymbolMap(asym: string) { +export function parseSymbolMap(asym: string) { var symbolmap = {}; for (var s of asym.split("\n")) { var toks = s.split(/\s+/); diff --git a/src/worker/wasm/bb/2600basic.wasm b/src/worker/wasm/bb/2600basic.wasm new file mode 100755 index 00000000..46c0525b Binary files /dev/null and b/src/worker/wasm/bb/2600basic.wasm differ diff --git a/src/worker/wasm/bb/bbfilter.wasm b/src/worker/wasm/bb/bbfilter.wasm new file mode 100755 index 00000000..57e51ab7 Binary files /dev/null and b/src/worker/wasm/bb/bbfilter.wasm differ diff --git a/src/worker/wasm/bb/dasm.wasm b/src/worker/wasm/bb/dasm.wasm new file mode 100755 index 00000000..dcb0c94d Binary files /dev/null and b/src/worker/wasm/bb/dasm.wasm differ diff --git a/src/worker/wasm/bb/optimize.wasm b/src/worker/wasm/bb/optimize.wasm new file mode 100755 index 00000000..9f2111a1 Binary files /dev/null and b/src/worker/wasm/bb/optimize.wasm differ diff --git a/src/worker/wasm/bb/postprocess.wasm b/src/worker/wasm/bb/postprocess.wasm new file mode 100755 index 00000000..9780ba2d Binary files /dev/null and b/src/worker/wasm/bb/postprocess.wasm differ diff --git a/src/worker/wasm/bb/preprocess.wasm b/src/worker/wasm/bb/preprocess.wasm new file mode 100755 index 00000000..88d86eee Binary files /dev/null and b/src/worker/wasm/bb/preprocess.wasm differ diff --git a/src/worker/wasm/bb/relocateBB.wasm b/src/worker/wasm/bb/relocateBB.wasm new file mode 100755 index 00000000..0e5ea265 Binary files /dev/null and b/src/worker/wasm/bb/relocateBB.wasm differ diff --git a/test/cli/testworker.js b/test/cli/testworker.js index c2a49923..d639392e 100644 --- a/test/cli/testworker.js +++ b/test/cli/testworker.js @@ -136,6 +136,12 @@ describe('Worker', function() { it('should assemble DASM', function(done) { compile('dasm', '\tprocessor 6502\n\torg $f000\n MAC mack\n lda #0\n ENDM\nfoo: mack\n mack\n', 'vcs.mame', done, 4, 4); }); + it('should compile batari Basic', function(done) { + compileFiles('bataribasic', ['bb/helloworld.bas'], 'vcs', done, 4096); + }); + it('should NOT compile batari Basic (compile error)', function(done) { + compile('bataribasic', 'foo bar baz\n', 'vcs', done, 0, 0, 1); + }); it('should NOT assemble DASM', function(done) { compile('dasm', '\tprocessor 6502\n\torg $f000 ; this is a comment\nfoo asl a\n', 'vcs', done, 0, 0, 2); }); diff --git a/test/unit/testbataribasic.ts b/test/unit/testbataribasic.ts new file mode 100644 index 00000000..7e360e51 --- /dev/null +++ b/test/unit/testbataribasic.ts @@ -0,0 +1,84 @@ +import assert from "assert"; +import { WASIRunner } from "../../src/common/wasi/wasishim"; +import * as fs from "fs"; +import { unzipWASIFilesystem } from "../../src/worker/wasiutils"; + +async function loadBBRunner(filename: string, bbfs: any): Promise { + const wasmdata = fs.readFileSync(`./src/worker/wasm/bb/${filename}.wasm`); + let shim = new WASIRunner(); + await shim.loadAsync(wasmdata); + shim.fs.setParent(bbfs); + shim.addPreopenDirectory("."); + return shim; +} + +// load the bB include filesystem zip +async function loadBBFS() { + const zipdata = fs.readFileSync(`./src/worker/fs/bb-fs.zip`); + return unzipWASIFilesystem(zipdata as any, "./"); +} + +describe('test batariBasic WASI pipeline', function () { + + it('2600basic -v', async function () { + let shim = await loadBBRunner('2600basic', null); + shim.setArgs(["2600basic", "-v"]); + let errno = shim.run(); + assert.strictEqual(errno, 0); + const stdout = shim.fds[1].getBytesAsString(); + assert.ok(stdout.indexOf('batari Basic') >= 0, stdout); + }); + + it('compile helloworld.bas end-to-end', async function () { + const bbfs = await loadBBFS(); + + // 1. preprocess: source on stdin -> tokenized output on stdout + let pre = await loadBBRunner('preprocess', bbfs); + pre.stdin.write(new TextEncoder().encode( + fs.readFileSync('./presets/vcs/bb/helloworld.bas', 'utf8'))); + pre.stdin.offset = 0; // reset so fd_read starts at BOF + pre.setArgs(["preprocess"]); + assert.strictEqual(pre.run(), 0, pre.fds[2].getBytesAsString()); + const preprocessed = pre.fds[1].getBytes(); + assert.ok(preprocessed.length > 100); + + // 2. 2600basic: preprocessed input -> bB.asm on stdout (-i . => ./includes) + let basic = await loadBBRunner('2600basic', bbfs); + basic.stdin.write(preprocessed); + basic.stdin.offset = 0; + basic.setArgs(["2600basic", "-i", "."]); + assert.strictEqual(basic.run(), 0, basic.fds[2].getBytesAsString()); + const basicerr = basic.fds[2].getBytesAsString(); + assert.ok(basicerr.indexOf('compilation complete') >= 0, basicerr); + const bbasm = basic.fds[1].getBytes(); + assert.ok(bbasm.length > 500); + + // copy compiler-generated files (includes.bB, variable redefs) to next stage + function copyGeneratedFiles(dest: WASIRunner) { + for (const f of basic.fs.getFiles()) { + if (!f.name.startsWith('./includes/')) { + dest.fs.putFile(f.name, f.getBytes()); + } + } + } + + // 3. postprocess: reads includes.bB + bB.asm from cwd -> composite asm + let post = await loadBBRunner('postprocess', bbfs); + post.fs.putFile("./bB.asm", bbasm); + copyGeneratedFiles(post); + post.setArgs(["postprocess", "-i", "."]); + assert.strictEqual(post.run(), 0, post.fds[2].getBytesAsString()); + const asmout = post.fds[1].getBytes(); + assert.ok(asmout.length > 10000); + + // 4. dasm: assemble composite asm (+ generated headers) with -I./includes + let dasm = await loadBBRunner('dasm', bbfs); + dasm.fs.putFile("./main.bas.asm", asmout); + copyGeneratedFiles(dasm); + dasm.setArgs(["dasm", "main.bas.asm", "-I./includes", "-f3", "-p20", + "-lmain.bas.lst", "-smain.bas.sym", "-omain.bas.bin"]); + assert.strictEqual(dasm.run(), 0, dasm.fds[2].getBytesAsString()); + const bin = dasm.fs.getFile("./main.bas.bin"); + assert.ok(bin && bin.size >= 2048, "bin size " + (bin && bin.size)); + }); +}); diff --git a/test/unit/testtoolmeta.ts b/test/unit/testtoolmeta.ts index 5c109408..ffb6cf98 100644 --- a/test/unit/testtoolmeta.ts +++ b/test/unit/testtoolmeta.ts @@ -123,7 +123,7 @@ describe('Tool metadata registry', function () { // preloadFS-backed tools assert.equal(getSharedFileSystemName('cc65', 'nes'), '65-nes'); assert.equal(getSharedFileSystemName('sdcc', 'coleco'), 'sdcc'); - assert.equal(getSharedFileSystemName('bataribasic', 'vcs'), '2600basic'); + assert.equal(getSharedFileSystemName('bataribasic', 'vcs'), 'wasi:bb-fs.zip'); assert.equal(getSharedFileSystemName('wiz'), 'wiz'); // WASI zip-backed tools (cc2600/cc7800/armtcc/oscar64/dialog) assert.equal(getSharedFileSystemName('cc2600'), 'wasi:cc2600-fs.zip');