window = { }; document = { }; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o1){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",function(reason,p){process["exit"](1);});Module["quit"]=function(status){process["exit"](status);};Module["inspect"]=function(){return"[Emscripten Module object]";};}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data);}return read(f);};}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data;}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f));}data=read(f,"binary");assert((typeof data==='undefined'?'undefined':_typeof(data))==="object");return data;};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs;}else if(typeof arguments!="undefined"){Module["arguments"]=arguments;}if(typeof quit==="function"){Module["quit"]=function(status){quit(status);};}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src;}}else{scriptDirectory=self.location.href;}if(_scriptDir){scriptDirectory=_scriptDir;}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.split("/").slice(0,-1).join("/")+"/";}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 asm2wasmImports={"f64-rem":function f64Rem(x,y){return x%y;},"debugger":function _debugger(){debugger;}};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=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text);}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func;}var JSfuncs={"stackSave":function stackSave(){_stackSave();},"stackRestore":function stackRestore(){_stackRestore();},"arrayToC":function arrayToC(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret;},"stringToC":function stringToC(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 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 demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];assert(__cxa_demangle_func);try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(HEAP32[status>>2]===0&&ret){return Pointer_stringify(ret);}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret);}return func;}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]";});}function jsStackTrace(){var err=new Error();if(!err.stack){try{throw new Error(0);}catch(e){err=e;}if(!err.stack){return"(no stack trace available)";}}return err.stack.toString();}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js);}var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple;}return x;}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf;}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, or (3) 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 Math_clz32=Math.clz32;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 dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0;}function integrateWasmJS(){var wasmTextFile="";var wasmBinaryFile="data:application/octet-stream;base64,AGFzbQEAAAABxQMzYAF/AGAAAX9gAn9/AGADf39/AGABfwF/YAN/f38Bf2AAAGACf38Bf2AEf39/fwF/YAV/f39/fwF/YAZ/f39/f38Bf2AEf39/fwBgBn9/f39/fwBgBX9/f39/AGANf39/f39/f39/f39/fwBgCH9/f39/f39/AGADf39/AXxgB39/f39/f38Bf2ABfwF+YAF+AX5gAn5+AX5gAn9+AX9gAn9+AGANf39/f39/f39/f39/fwF/YAh/f39/f39/fwF/YAx/f39/f39/f39/f38Bf2AEf39+fwBgAn5/AX9gBX9/fn9/AX9gBn9/f39/fgF/YAN/f34Bf2AFf39/f34Bf2ALf39/f39/f39/f38Bf2AHf39/f39/fwBgBX9/f35/AX9gCX9/f39/f39/fwF/YAp/f39/f39/f39/AX9gEH9/f39/f39/f39/f39/f38Bf2AEfn9/fgF+YAJ/fwF+YAN+f38Bf2AFf35/f38AYAd/fn9/f39/AX5gCH9/f39/f35/AX9gBn9/f39+fwF/YAR/f39+AX9gB39/f39/f34Bf2AJf39/f39/f39/AGACfn4Bf2AGf3x/f39/AX9gAnx/AXwC9Ak0A2VudgZtZW1vcnkCAYACgAIDZW52BXRhYmxlAXABnAOcAwNlbnYJdGFibGVCYXNlA38AA2Vudg5EWU5BTUlDVE9QX1BUUgN/AANlbnYIU1RBQ0tUT1ADfwADZW52CVNUQUNLX01BWAN/AANlbnYFYWJvcnQAAANlbnYNZW5sYXJnZU1lbW9yeQABA2Vudg5nZXRUb3RhbE1lbW9yeQABA2VudhdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQABA2VudhlfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uAAQDZW52DF9fX2N4YV90aHJvdwADA2VudgdfX19sb2NrAAADZW52C19fX3NldEVyck5vAAADZW52DV9fX3N5c2NhbGwxNDAABwNlbnYNX19fc3lzY2FsbDE0NQAHA2Vudg1fX19zeXNjYWxsMTQ2AAcDZW52DV9fX3N5c2NhbGwyMjEABwNlbnYLX19fc3lzY2FsbDUABwNlbnYMX19fc3lzY2FsbDU0AAcDZW52C19fX3N5c2NhbGw2AAcDZW52CV9fX3VubG9jawAAA2VudhZfX2VtYmluZF9yZWdpc3Rlcl9ib29sAA0DZW52F19fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzAA4DZW52I19fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2NvbnN0cnVjdG9yAAwDZW52IF9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2Z1bmN0aW9uAA8DZW52F19fZW1iaW5kX3JlZ2lzdGVyX2VtdmFsAAIDZW52F19fZW1iaW5kX3JlZ2lzdGVyX2Zsb2F0AAMDZW52Gl9fZW1iaW5kX3JlZ2lzdGVyX2Z1bmN0aW9uAAwDZW52GV9fZW1iaW5kX3JlZ2lzdGVyX2ludGVnZXIADQNlbnYdX19lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcAAwNlbnYcX19lbWJpbmRfcmVnaXN0ZXJfc3RkX3N0cmluZwACA2Vudh1fX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZwADA2VudhZfX2VtYmluZF9yZWdpc3Rlcl92b2lkAAIDZW52Cl9fZW12YWxfYXMAEANlbnYMX19lbXZhbF9jYWxsAAgDZW52GF9fZW12YWxfY2FsbF92b2lkX21ldGhvZAALA2Vudg5fX2VtdmFsX2RlY3JlZgAAA2VudhlfX2VtdmFsX2dldF9tZXRob2RfY2FsbGVyAAcDZW52G19fZW12YWxfZ2V0X21vZHVsZV9wcm9wZXJ0eQAEA2VudhRfX2VtdmFsX2dldF9wcm9wZXJ0eQAHA2Vudg5fX2VtdmFsX2luY3JlZgAAA2VudgtfX2VtdmFsX25ldwAIA2VudhNfX2VtdmFsX25ld19jc3RyaW5nAAQDZW52F19fZW12YWxfcnVuX2Rlc3RydWN0b3JzAAADZW52El9fZW12YWxfdGFrZV92YWx1ZQAHA2VudgZfYWJvcnQABgNlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwAFA2VudhRfcHRocmVhZF9nZXRzcGVjaWZpYwAEA2VudhNfcHRocmVhZF9rZXlfY3JlYXRlAAcDZW52DV9wdGhyZWFkX29uY2UABwNlbnYUX3B0aHJlYWRfc2V0c3BlY2lmaWMABwPmB+QHBAEAAgIAAQYCAgQCBwIEBwcFBwcEBwUHBwAAAwMABAIAAgcEBAIHBAQCBwQEAgcEBAIHBAQCBwQCAwMFAwQAAQQDCwcFCAADBwQAAAUEBwQAAQUJCAQAAQgFBAEGBwcIBQgABAICBwQIAAQCBwQDAAQCBwQCAAQCBwQAAAcHAgQCBwcEBwQCBwcEBQcHAAQHBAIHBwQHBAIHBwQFBwcEBAkEBAQRCgQICQUDBAcHBwcCBwcEEhITBBIUFBUFBRIHBwIKBwkKCAkKCQgHBQkJBwkKBQMDAAACBAMDAgIWFgICBAUICQgKAwUKCQoCAhcYBQUZGQQBBAAEBBoaBwUKBwoACREICgUFAwMFCwoFBQkEBwcHBwcbGxsbBwgAAAAEBxwdHgISBRQHBx8CAAQEGSAHCgoKCgoKCgoKCgoKCgoKCgMHBwgLBQgFDQ0AAwIFBwgHBwcJCQoNESERGAkJCgkRIgoJAwAYCQMjGAQkCSUICAcIAwsJJicoGwUbCCkqCwsCBQIDAyssAxoJBRgYCgkFAi0RCgEEBC4dLQceBwgIBQcJAgoJBAoJBBgJDy8KCQoJGAcKGAoYAAQBBAQHBAQEBAQEBAcHBQQFCCcnBQUFBAcEEgQHBwcFBAcHBwcFBQcEBQggAwwCCgQREREDGAIRERgEBAoHBQkFCAgEBQUFCAERAREBEQUCCQUJBQkRBQMEAhgEAgQjBwgJBAkJCQkJCAgHCQkFCQUJEQgJBQkPLwICCQQFBQUEBwIFCQUJBQkRBQIYCAgJCAgFCREICQUJCQQFAwUFAgkFBQkFCSMFAwQCGAcJCAQICAkJCAgFCREPLwgJBAUJCQkEBQMFAQkRBAMFBQkFCRgFAwQCGAQJCAgICAUJCREPLwgJBQkJBQkIBAQJCQkJBwcKAQQECQUFBAcEMAUICQQIBAUBBQEFAQUEBQQBCQkJCQQJBAkECQkECQIGAAQEAAcHBwIEBQUEAQUFBQcEBAUHBQcHCAgFCQMEAygbGw0HMTIFBwUEBQcHBwQHBAEEBAAEBwQEBAQGAQIFDA0LBQsLDQgMDQsGAAUFBQwNCwsMDQgCAgILAAAEBQAAAwMEBQIPAwAFBQUFBQIFBwICBQUDAgUFAwUFBQIFAwICAgIFBQUFBwMFAAMLBQUICAUFBQUFBQUFBQUFBQUFBQUFBQUFAgUCAwUFBQUFBQUFBQICAgACAgIDAggFAwwCAgUAAAsCAAcHCAIFBQUCBQUFBwIAAgIFCwIAAAIIAAAAAAIAAgACBQAHBAUEBgQFBQUFBAcFCAkKEQIDCw0MIQEEBwUICQoGAAIDCw0MBh8GfwEjAQt/ASMCC38BIwMLfwFBAAt/AUEAC38BQQALB94EJRhfX0dMT0JBTF9fc3ViX0lfYmluZF9jcHAAgwYfX19HTE9CQUxfX3N1Yl9JX3pzdGRfYmluZGluZ19jYwCKARBfX19jeGFfY2FuX2NhdGNoAO8HD19fX2N4YV9kZW1hbmdsZQDZBhZfX19jeGFfaXNfcG9pbnRlcl90eXBlAPAHEV9fX2Vycm5vX2xvY2F0aW9uAJAGDl9fX2dldFR5cGVOYW1lAIUGBV9mcmVlAIcGD19sbHZtX2Jzd2FwX2kzMgDyBw5fbGx2bV9jdGx6X2k2NADzBwdfbWFsbG9jAIYGB19tZW1jcHkA9AcIX21lbW1vdmUA9QcHX21lbXNldAD2BwVfc2JyawD3BwlkeW5DYWxsX2kAbgpkeW5DYWxsX2lpAPgHC2R5bkNhbGxfaWlpAPkHDGR5bkNhbGxfaWlpaQD6Bw1keW5DYWxsX2lpaWlpAPsHDmR5bkNhbGxfaWlpaWlpAPwHD2R5bkNhbGxfaWlpaWlpaQD9BwlkeW5DYWxsX3YAdApkeW5DYWxsX3ZpAP4HC2R5bkNhbGxfdmlpAP8HDGR5bkNhbGxfdmlpaQCACA1keW5DYWxsX3ZpaWlpAIEIDmR5bkNhbGxfdmlpaWlpAIIID2R5bkNhbGxfdmlpaWlpaQCDCBNlc3RhYmxpc2hTdGFja1NwYWNlADELZ2V0VGVtcFJldDAANAtydW5Qb3N0U2V0cwDxBwtzZXRUZW1wUmV0MAAzCHNldFRocmV3ADIKc3RhY2tBbGxvYwAuDHN0YWNrUmVzdG9yZQAwCXN0YWNrU2F2ZQAvCbcFAQAjAAucA4QIf4UBiQFthAiECIQIhQhMUVJVVllaXV5hYmWRAZUBmAGbAZ4BoQGkAacBrQGxAbMBtwG+AcIBxAHIAYwGvQZ3ezx9boMBbogBbkJrbjjGA9wFhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhQiFCIUIhghQVFhcYGSUAZoBoAGmAa8BsAG1AbYBwAHBAcYBxwHoBHY6fIsBjAE9PkBBcUNFRnGGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiGCIYIhgiG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ACAEJAUgAA8LIARBEWohASAEQRBqIQIgAygCACAFKAIANgIMIAMoAgAgAygCACgCDEEEajYCEAJAIAAoAgBBBE8EQCADKAIAIAUoAgAgACgCAGpBfGo2AgggAygCACgCCBDhASECIAMoAgAgAjYCACABIAUoAgAgACgCAEEBa2osAAA6AAAgAS0AAAR/QQggAS0AABDUAWsFQQALIQIgAygCACACNgIEIAEtAABFBEAgBkF/NgIAIAYoAgAhACAEJAUgAA8LBSADKAIAIAMoAgAoAgw2AgggAygCACADKAIAKAIMLQAANgIAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEECaw4GBQQDAgEABgsgAygCACIBIAEoAgAgBSgCAC0ABkEQdGo2AgAMBgsMBQsMBQsMBQsMBQsMBQsMBQsgAygCACIBIAEoAgAgBSgCAC0ABUEIdGo2AgALIAMoAgAiASABKAIAIAUoAgAtAARqNgIACyADKAIAIgEgASgCACAFKAIALQADQRh0ajYCAAsgAygCACIBIAEoAgAgBSgCAC0AAkEQdGo2AgALIAMoAgAiASABKAIAIAUoAgAtAAFBCHRqNgIACyACIAUoAgAgACgCAEEBa2osAAA6AAAgAi0AAAR/QQggAi0AABDUAWsFQQALIQEgAygCACABNgIEIAItAAAEQCADKAIAQQRqIgEgASgCAEEEIAAoAgBrQQN0ajYCAAwCCyAGQWw2AgAgBigCACEAIAQkBSAADwsLIAYgACgCADYCACAGKAIAIQAgBCQFIAALhQEBAn8jBSEDIwVBIGokBSADQRBqIgQgADYCACADQQxqIgAgATYCACADQQhqIgEgAjYCACADQQRqIgIgASgCADYCACADIAIoAgA2AgAgACgCACADKAIALwEAENwBIQIgBCgCACACNgIAIAAoAgAQ2QEaIAQoAgAgASgCAEEEajYCBCADJAULvQMBBn8jBSEDIwVBEGokBSADQQxqIQIgA0EIaiIBIAA2AgAgASgCACgCBEEgSwRAIAJBAzYCACACKAIAIQAgAyQFIAAPCyABKAIAIQUgASgCACgCCCABKAIAKAIQTwRAIAEoAgBBCGoiACAAKAIAIAUoAgRBA3ZrNgIAIAEoAgBBBGoiACAAKAIAQQdxNgIAIAEoAgAoAggQ4QEhACAB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AzAgAkIANwM4IAJBQGtCADcDACACQgA3A0ggAiAAKQMAQoeVr6+Ytt6bnn98Qs/W077Sx6vZQnw3AwggAiAAKQMAQs/W077Sx6vZQnw3AxAgAiAAKQMAQgB8NwMYIAIgACkDAEKHla+vmLbem55/fTcDICADKAIAIgAgAikDADcDACAAIAIpAwg3AwggACACKQMQNwMQIAAgAikDGDcDGCAAIAIpAyA3AyAgACACKQMoNwMoIAAgAikDMDcDMCAAIAIpAzg3AzggAEFAayACQUBrKQMANwMAIAAgAikDSDcDSCAAIAIpA1A3A1AgAiQFQQALSQECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIgEgACgCACADKAIAEPQHGiADJAUgAQvcJQJ8fwJ+IwUhAyMFQeAEaiQFIANBuAFqIRogA0HQBGohLCADQcwEaiEtIANByARqIS4gA0HEBGohLyADQcAEaiEwIANBsAFqIRsgA0G8BGohMSADQbgEaiEyIANBtARqITMgA0GwBGohNCADQawEaiE1IANBqAFqIRwgA0GoBGohNiADQaQEaiE3IANBoARqITggA0GcBGohOSADQZgEaiE6IANBoAFqIR0gA0GUBGohOyADQZAEaiE8IANBjARqIT0gA0GIBGohPiADQYQEaiE/IANBmAFqIR4gA0GABGohQCADQfwDaiFBIANB+ANqIUIgA0H0A2ohQyADQfADaiFEIANBkAFqIR8gA0HsA2ohRSADQegDaiFGIANB5ANqIUcgA0HgA2ohSCADQdwDaiFJIANBiAFqISAgA0HYA2ohSiADQdQDaiFLIANB0ANqIUwgA0HMA2ohTSADQcgDaiFOIANBgAFqISEgA0HEA2ohTyADQcADaiFQIANBvANqIVEgA0G4A2ohUiADQbQDaiFTIANBsANqISIgA0GsA2ohBCADQagDaiEOIANBpANqIQogA0GgA2ohCCADQZwDaiEGIANBmANqIQsgA0GUA2ohVCADQfgAaiEPIANB8ABqIRAgA0HoAGohESADQeAAaiESIANB2ABqISMgA0GQA2ohVSADQYwDaiFWIANBiANqIVcgA0GEA2ohWCADQYADaiFZIANB0ABqISQgA0H8AmohWiADQfgCaiFbIANB9AJqIVwgA0HwAmohXSADQewCaiFeIANByABqISUgA0HoAmohXyADQeQCaiFgIANB4AJqIWEgA0HcAmohYiADQdgCaiFjIANBQGshJiADQdQCaiFkIANB0AJqIWUgA0HMAmohZiADQcgCaiFnIANBxAJqIWggA0E4aiEnIANBwAJqIWkgA0G8AmohaiADQbgCaiFrIANBtAJqIWwgA0GwAmohbSADQTBqISggA0GsAmohbiADQagCaiFvIANBpAJqIXAgA0GgAmohcSADQZwCaiFyIANBKGohKSADQZgCaiFzIANBlAJqIXQgA0GQAmohdSADQYwCaiF2IANBiAJqIXcgA0EgaiEqIANBhAJqIXggA0GAAmoheSADQfwBaiF6IANB+AFqIXsgA0H0AWohfCADQfABaiErIANB7AFqIQUgA0HoAWohEyADQeQBaiEMIANB4AFqIQkgA0HcAWohByADQdgBaiENIANB1AFqIX0gA0EYaiEUIANBEGohFSADQQhqIRYgAyEXIANB0AFqIRggA0HMAWoiGSAANgIAIANByAFqIn4gATYCACADQcQBaiIBIAI2AgAgA0HAAWoiAEGA5QAsAAA2AgAgGSgCACEZIH4oAgAhAiABKAIAIQEgACgCAEEBRgR/IAUgGTYCACATIAI2AgAgDCABNgIAIAlBATYCACAHIBMoAgA2AgAgDSAHKAIAIAwoAgBqNgIAIAUoAgAiACAAKQMAIAwoAgCtfDcDACAFKAIAIQAgBSgCACgCSCAMKAIAakEgSQRAIABBKGogBSgCACgCSGogEygCACAMKAIAEOoBGiAFKAIAQcgAaiIAIAAoAgAgDCgCAGo2AgAgK0EANgIABSAAKAJIBEAgBSgCAEEoaiAFKAIAKAJIaiATKAIAQSAgBSgCACgCSGsQ6gEaIAUoAgApAwghgAEgCSgCACEAIHsgBSgCAEEoajYCACB8IAA2AgAgfCgCACEAIHggeygCADYCACB5IAA2AgAgekEBNgIAIHkoAgBBAUYhASB4KAIAIQAgeigCAEEBRgRAIAAQ5gEhfyABRQRAIH8Q5AEhfwsgKiB/NwMABSAAKQMAIX8gAUUEQCB/EOQBIX8LICogfzcDAAsggAEgKikDABDnASF/IAUoAgAgfzcDCCAFKAIAKQMQIYABIAkoAgAhACB2IAUoAgBBMGo2AgAgdyAANgIA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AgAgGyAANgIAIBxBATYCACAbKAIAQQFGIQQgGigCACEAIBwoAgBBAUYEQCAAEOUBIQAgBEUEQCAAENEBIQALIBQgADYCAAUgACgCACEAIARFBEAgABDRASEACyAUIAA2AgALIAIgAikDACAUKAIArUKHla+vmLbem55/foU3AwAgAiACKQMAQheGIAIpAwBCKYiEQs/W077Sx6vZQn5C+fPd8Zn2masWfDcDACAFIAUoAgBBBGo2AgALA0AgBSgCACAJKAIASQRAIAIgAikDACAFKAIALQAArULFz9my8eW66id+hTcDACACIAIpAwBCC4YgAikDAEI1iIRCh5Wvr5i23puef343AwAgBSAFKAIAQQFqNgIADAELCyACIAIpAwAgAikDAEIhiIU3AwAgAiACKQMAQs/W077Sx6vZQn43AwAgAiACKQMAIAIpAwBCHYiFNwMAIAIgAikDAEL5893xmfaZqxZ+NwMAIAIgAikDACACKQMAQiCIhTcDACATIAIpAwA3AwAgEykDACEwIAEkBSAwCwttAQN/IwUhAiMFQRBqJAUgAkEEaiEDIAIiBCAANgIAIAEoAgAEfyADIAEoAgggBCgCACABKAIAQT9xQcgAahEHADYCACADKAIAIQAgAiQFIAAFIAMgBCgCABCGBjYCACADKAIAIQAgAiQFIAALC5ABAQR/IwUhAiMFQRBqJAUgAkEIaiEDIAIhBCACQQRqIgUgADYCACABKAIABH8gBCABKAIIIAUoAgAgASgCAEE/cUHIAGoRBwA2AgAgBCgCAEEAIAUoAgAQ9gcaIAMgBCgCADYCACADKAIAIQAgAiQFIAAFIANBASAFKAIAEIgGNgIAIAMoAgAhACACJAUgAAsLWAECfyMFIQIjBUEQaiQFIAIiAyAANgIAIAIoAgBFBEAgAiQFDwsgASgCBARAIAEoAgggAygCACABKAIEQR9xQeQCahECACACJAUFIAMoAgAQhwYgAiQFCwvLCgEOfyMFIQYjBUHwCGokBSAGQeQIaiEKIAZBtAhqIQ0gBkGwCGohCyAGQawIaiERIAZBqAhqIQggBkHgCGoiDiAANgIAIAZB3AhqIgcgATYCACAGQdgIaiIPIAI2AgAgBkHUCGoiCSADNgIAIAZB0AhqIgEgBDYCACAGQcwIaiIDIAU2AgAgBkHICGoiAkEBIAko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AgAoAhBLBEAgASgCACABKAIAKAIQNgIMCyABKAIAQQRqIgMgAygCAEEHcTYCACABKAIAIgEgASgCACAAKAIAQQN0djYCACACJAULRgECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIAIoAgAoAgAgAigCACgCDBCIAiADKAIAEIQCIAIkBQuLAQEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIAQQFBARCHAiABKAIAEIQCIAEoAgAoAgwgASgCACgCEE8EfyADQQA2AgAgAygCACEAIAIkBSAABSADIAEoAgAoAgwgASgCACgCCGsgASgCACgCBEEAS2o2AgAgAygCACEAIAIkBSAACwtoAQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAiASABKAIAIAAoAgAgBCgCACgCBHRyNgIAIAQoAgBBBGoiACAAKAIAIAMoAgBqNgIAIAMkBQt4AQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAiASABKAIAIAAoAgAgAygCAEECdEHgHWooAgBxIAQoAgAoAgR0cjYCACAEKAIAQQRqIgAgACgCACADKAIAajYCACADJAULNwECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIgMgAigCACIBEIoCIAIkBQtUAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAhAyACKAIAIQFBkOUALQAABEAgAyABEI0CIAIkBQUgAyABENEBEI0CIAIkBQsLVAECfyMFIQIjBUEQaiQFIAJBCGoiAyAANgIAIAIgATcDACADKAIAIQMgAikDACEBQZDlAC0AAARAIAMgARCMAiACJAUFIAMgARDkARCMAiACJAULCzMBAn8jBSECIwVBEGokBSACQQhqIgMgADYCACACIAE3AwAgAygCACACKQMANwAAIAIkBQszAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAgAigCADYAACACJAULuAEBBH8jBSECIwVBIGokBSACQRBqIgMgADYCACACQQxqIgQgATYCACACQQhqIgEgBCgCADYCACACQQRqIgUgASgCADYCACACIgAgASgCABCPAkH//wNxNgIAIAMoAgBBASACKAIAdDYCACADKAIAIAUoAgBBBGo2AgQgAygCACAEKAIAIgRBBGogAigCAAR/QQEgACgCAEEBa3QFQQELIgFBAnRqNgIIIAMoAgAgACgCADYCDCACJAULJgEBfyMFIQEjBUEQaiQFIAEgADYCACABKAIALgAAIQAgASQFIAALSgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIAAoAgAgAygCAEEBEPgBIQAgAyQFIAAL+gUBCX8jBSEEIwVB0ANqJAUgBEHEA2ohBSAEQcADaiIHIAA2AgAgBEG8A2oiACABNgIAIARBuANqIgogAjYCACAEQbQDaiICIAM2AgAgBEGwA2oiCSAHKAIANgIAIARBrANqIgEgCSgCADYCACAEQagDaiILIAkoAgAgACgCAGo2AgAgBEGkA2oiA0EMNgIAIARBoANqIgdBBjYCACACKAIAQQFNBEAgBUEANgIAIAUoAgAhACAEJAUgAA8LIARBnANqIgAgBEEgaiIIIAMgCigCACACKAIAEPQBNgIAIAAoAgAQzQFBAEchDCAAKAIAIQYgDARAIAUgBjYCACAFKAIAIQAgBCQFIAAPCyAGIAIoAgBGBEAgBUEBNgIAIAUoAgAhACAEJAUgAA8LIAAoAgBBAUYEQCAFQQA2AgAgBSgCACEAIAQkBSAADwsgByAHKAIAIAIoAgAgAygCABD6ATYCACAEQZgDaiIGIAQiACAHKAIAIAggAigCACADKAIAEPsBNgIAIAYoAgAQzQEEQCAFIAYoAgA2AgAgBSgCACEAIAQkBSAADwsgBEGUA2oiBiABKAIAIAsoAgAgASgCAGsgACADKAIAIAcoAgAQ8gE2AgAgBigCABDNAUEARyEIIAYoAgAhBiAIBEAgBSAGNgIAIAUoAgAhACAEJAUgAA8LIAEgASgCACAGajYCACAEQZADaiIGIARBoAFqIgggACADKAIAIAcoAgAgBEHgAGpBwAAQ8AE2AgAgBigCABDNAQRAIAUgBigCADYCACAFKAIAIQAgBCQFIAAPCyAEQYwDaiIAIAEoAgAgCygCACABKAIAayAKKAIAIAIoAgAgCBD+ATYCACAAKAIAEM0BQQBHIQMgACgCACECIAMEQCAFIAI2AgAgBSgCACEAIAQkBSAADwsgAgR/IAEgASgCACAAKAIAajYCACAFIAEoAgAgCSgCAGs2AgAgBSgCACEAIAQkBSAABSAFQQA2AgAgBSgCACEAIAQkBSAACwulBQEGfyMFIQUjBUHAAmokBSAFQaACaiEGIAVBnAJqIgcgADYCACAFQZgCaiIJIAE2AgAgBUGUAmoiCiACNgIAIAVBkAJqIgIgAzYCACAFQYwCaiIIIAQ2AgAgBUGIAmoiBCAHKAIANgIAIAIoAgBB/wFLBEAgBkFSNgIAIAYoAgAhACAFJAUgAA8LIAUhACAFQYACaiEDIAVBpAJqIgdBADoAACAFQYQCaiIBQQE2AgADQCABKAIAIAgoAgBBAWpJBEAgByABKAIAaiAIKAIAQQFqIAEoAgBrOgAAIAEgASgCAEEBajYCAAwBCwsgAUEANgIAA0AgASgCACACKAIASQRAIAAgASgCAGogByAKKAIAIAEoAgBBAnRqLQACaiwAADoAACABIAEoAgBBAWo2AgAMAQsLIAMgBCgCAEEBaiAJKAIAQQFrIAAgAigCABCRAjYCACADKAIAEM0BQQBHIQcgAygCACEIIAcEQCAGIAg2AgAgBigCACEAIAUkBSAADwsgCEEBSyADKAIAIAIoAgBBAm5JcQRAIAQoAgAgAygCADoAACAGIAMoAgBBAWo2AgAgBigCACEAIAUkBSAADwsgAigCAEGAAUsEQCAGQX82AgAgBigCACEAIAUkBSAADwsgAigCAEEBakECbkEBaiAJKAIASwRAIAZBun82AgAgBigCACEAIAUkBSAADwsgBCgCACACKAIAQf8AajoAACAAIAIoAgBqQQA6AAAgAUEANgIAA0AgASgCACACKAIASQRAIAQoAgAgASgCAEECbkEBamogACABKAIAai0AAEEEdCAAIAEoAgBBAWpqLQAAajoAACABIAEoAgBBAmo2AgAMAQsLIAYgAigCAEEBakECbkEBajYCACAGKAIAIQAgBSQFIAALmAcBEH8jBSEEIwVB0ANqJAUgBEG8A2ohBSAEQbgDaiIMIAA2AgAgBEG0A2oiDyABNgIAIARBsANqIgAgAjYCACAEQawDaiIGIAM2AgAgBEGoA2oiAUEANgIAIARBpANqIgJBADYCACAEQaADaiINIARB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akEAQfwHIAMoAgBBAnRrEPYHGiANQQhqIgggBygCACARKAIAIAEoAgBBgAhqIAMoAgAgACgCABCSAjYCACAIKAIAEM0BBEAgDiAIKAIANgIAIA4oAgAhACANJAUgAA8LIA1BBGohCyANIQACQCAEKAIABEAgBCgCACgCAARAIAsgBSgCACABKAIAIAMoAgAQnwI2AgAgACABKAIAQYAIaiABKAIAIAMoAgAQnwI2AgAgCygCACAIKAIAIAAoAgBqSwRAIAgoAgBBDGogAigCAEkNAwsgDiAGKAIAIAcoAgAgCigCACAPKAIAIAIoAgAgECgCACAFKAIAIAkoAgAQnQI2AgAgDigCACEAIA0kBSAADwsLCyAIKAIAQQxqIAIoAgBPBEAgDkEANgIAIA4oAgAhACANJAUgAA8LIAcgBygCACAIKAIAajYCACAEKAIABEAgBCgCAEEANgIACyAFKAIABEAgBSgCACABKAIAQYAIakGACBD0BxoLIA4gBigCACAHKAIAIAooAgAgDygCACACKAIAIBAoAgAgASgCAEGACGogCSgCABCdAjYCACAOKAIAIQAgDSQFIAAL+gIBBX8jBSEIIwVBMGokBSAIQSBqIgogADYCACAIQRxqIgkgATYCACAIQRhqIgEgAjYCACAIQRRqIgsgAzYCACAIQRBqIgIgBDYCACAIQQxqIgwgBTYCACAIQQhqIgUgBjYCACAIQQRqIgYgBzYCACAJKAIAIQAgASgCACAJKAIAayEBIAsoAgAhAyACKAIAIQQgBSgCACEFIAYoAgAhBiAMKAIABH8gACABIAMgBCAFIAYQlwIFIAAgASADIAQgBSAGEJkCCyEDIAhBJGohASAIIgAgAzYCACAIKAIAEM0BQQBHIQQgCCgCACEDIAQEQCABIAM2AgAgASgCACEAIAgkBSAADwsgA0UEQCABQQA2AgAgASgCACEAIAgkBSAADwsgCSAJKAIAIAAoAgBqNgIAIAkoAgAgCigCAGsgAigCAEEBa08EfyABQQA2AgAgASgCACEAIAgkBSAABSABIAkoAgAgCigCAGs2AgAgASgCACEAIAgkBSAACwutAQEDfyMFIQMjBUEgaiQFIANBEGoiBCAANgIAIANBDGoiBSABNgIAIANBCGoiASACNgIAIANBBGoiAkEANgIAIAMiAEEANgIAA0Ag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AiQFIAALnRIBBH8jBSEGIwVBIGokBSAGQRBqIQQgBiIFQQxqIgMgADYCACAFQQhqIgAgATYCACAFQQRqIgEgAjYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAQQprDsMIABYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAQIDBAUGBwgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWERITFBUWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgoLDBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWDg8QFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWCRYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFg0WCyABKAIAQQFLBEAgBEFYNgIADBcFIAMoAgAgASgCADYCACAEIAMoAgAoAgA2AgAMFwsACyAFIAEoAgA2AgAgBSgCAEEWSgRAIAVBFjYCAAsgBSgCAARAIAMoAgAgBSgCAEEASDYCMCADKAIAIAUoAgA2AiwLIAMoAgAoAixBAE4EQCAEIAMoAgAoAiw2AgAMFgUgBEEANgIADBYLAAsgASgCAEEASwRAIAEoAgBBCkkgASgCAEEeS3IEQCAEQVY2AgAMFgsLIAMoAgAgASgCADYCBCAEIAMoAgAoAgQ2AgAMFAsgASgCAEEASwRAIAEoAgBBBkkgASgCAEEeS3IEQCAEQVY2AgAMFQsLIAMoAgAgASgCADYCDCAEIAMoAgAoAgw2AgAMEwsgASgCAEEASwRAIAEoAgBBBkkgASgCAEEdS3IEQCAEQVY2AgAMFAsLIAMoAgAgASgCADYCCCAEIAMoAgAoAgg2AgAMEgsgASgCAEEASwRAIAEoAgBBAUkgASgCAEEdS3IEQCAEQVY2AgAMEwsLIAMoAgAgASgCADYCECAEIAEoAgA2AgAMEQsgASgCAEEASwRAIAEoAgBBA0kgASgCAEEHS3IEQCAEQVY2AgAMEgsLIAMoAgAgASgCADYCFCAEIAMoAgAoAhQ2AgAMEAsgAygCACABKAIANgIYIAQgAygCACgCGDYCAAwPCyABKAIAQQBLBEAgASgCAEEBSSABKAIAQQhLcgRAIARBVjYCAAwQCwsgAygCACABKAIANgIc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BiQFIAALC8kBAQN/IwUhAyMFQSBqJAUgA0EQaiEEIANBDGoiBSAANgIAIANBCGoiACABNgIAIANBBGoiASACNgIAIAAoAgAgASgCAEkEQCAEQWI2AgAgBCgCACEAIAMkBSAADwsgAyIAQQA2AgACQAJAA0AgACgCACABKAIASw0CIAUoAgAgACgCAEEBdGouAQBFDQEgACAAKAIAQQFqNgIADAALAAsgBEFiNgIAIAQoAgAhACADJAUgAA8LIARBADYCACAEKAIAIQAgAyQFIAALogMBBH8jBSEEIwVBIGokBSAEQQhqIQUgBEEcaiIDIAA2AgAgBEEYaiIGIAE2AgAgBEEUaiIBIAI2AgAgBEEQaiIAIAYoAgA2AgAgBEEMaiICQQE2AgAgBigCACADKAIAKAIARwRAIAUgAygCACgCACADKAIAKAIEazYCACADKAIAIAMoAgAoAgw2AhAgAygCACAFKAIANgIMIAMoAgAgAygCACgCBDYCCCADKAIAIAAoAgAgBSgCAGs2AgQgAygCACgCDCADKAIAKAIQa0EISQRAIAMoAgAgAygCACgCDDYCEAsgAkEANgIACyADKAIAIAAoAgAgASgCAGo2AgAgACgCACABKAIAaiADKAIAKAIIIAMoAgAoAhBqSyAAKAIAIAMoAgAoAgggAygCACgCDGpJcUUEQCACKAIAIQAgBCQFIAAPCyAEQQRqIgUgACgCACABKAIAaiADKAIAKAIIazYCACAEIAUoAgAgAygCACgCDEoEfyADKAIAKAIMBSAFKAIACyIANgIAIAMoAgAgBCgCADYCECACKAIAIQAgBCQFIAAL9wIBCX8jBSEDIwVBQGskBSADQQhqIQkgA0EEaiEEIAMhByADQTBqIgggADYCACADQSxqIgAgATYCACADQShqIgUgAjYCACADQSRqIgogCCgCACgCJDYCACADQSBqIgIgACgCACgCCDYCACADQRxqIgEgACgCACgCEDYCACADQRhqIgsgCCgCACgCBDYCACADQRRqIgYgCygCACAIKAIAKAIYajYCACADQRBqIgAgBSgCAEF4ajYCACADQQM2AgwDQCAGKAIAQQJqIAAoAgBNBEAgCSAGKAIAIAsoAgBrNgIAIARBADYCAANAIAYoAgAhBSAEKAIAQQNJBEAgByAFIAQoAgBqIAIoAgAgASgCABC7AjYCAAJAAkAgBCgCAEUNACAKKAIAIAcoAgBBAnRqKAIARQ0ADAELIAooAgAgBygCAEECdGogCSgCACAEKAIAajYCAAsgBCAEKAIAQQFqNgIADAELCyAGIAVBA2o2AgAMAQsLIAMkBQvjAwEMfyMFIQMjBUFAayQFIANBDGohCCADQQhqIQQgA0EEaiEKIAMhCSADQTxqIgYgADYCACADQThqIgAgATYCACADQTRqIgcgAjYCACADQTBqIgsgBigCACgCJDYCACADQSxqIg0gACgCACgCCDYCACADQShqIg4gACgCACgCEDYCACADQSRqIgIgBigCACgCLDYCACADQSBqIgEgACgCACgCBDYCACADQRxqIgwgBigCACgCBDYCACADQRhqIgUgDCgCACAGKAIAKAIYajYCACADQRRqIgAgBygCAEF4ajYCACADQQM2AhADQCAFKAIAQQJqIAAoAgBNBEAgCCAFKAIAIAwoAgBrNgIAIARBADYCAANAAkAgBSgCACEHIAQoAgBBA08NACAKIAcgBCgCAGogASgCACAOKAIAELsCNgIAIAkgBSgCACAEKAIAaiANKAIAQQgQuwI2AgAgBCgCAEUEQCACKAIAIAooAgBBAnRqIAgoAgAgBCgCAGo2AgALAkACQCAEKAIARQ0AIAsoAgAgCSgCAEECdGooAgBFDQAMAQsgCygCACAJKAIAQQJ0aiAIKAIAIAQoAgBqNgIACyAEIAQoAgBBAWo2AgAMAQsLIAUgB0EDajYCAAwBCwsgAyQFC1ABAn8jBSEDIwVBEGokBSADQQhqIgQgADYCACADQQRqIgAgATYCACADIAI2AgAgBCgCACAAKAIAIAMoAgAgACgCACgCEBDJAiEAIAMkBSAAC7cCAQZ/IwUhBCMFQUBrJAUgBEEMaiIFIAA2AgAgBEEIaiIAIAE2AgAgBEEEaiIBIAI2AgAgBCADNgIAIAAoAgAhAiABKAIAIQEgBCgCACEDIAAoAgAoAhAhBiAEQTBqIgAgBSgCADYCACAEQSxqIgUgAjYCACAEQShqIgcgATYCACAEQSRqIgggAzYCACAEQSBqIgkgBjYCACAEQRxqIgZBADYCACAEQRhqIgIgACgCACgCBDYCACAEQRRqIgMgBygCACACKAIAazYCACAEQRBqIgEgACgCACgCGDYCAANAIAEo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IAQ2AgAgDEEYaiIEIAU2AgAgDEEUaiIFIAY2AgAgDEEQaiIGIAc2AgAgDEEMaiIHIAg2AgAgDEEIaiIIIAk2AgAgDEEEaiIJIAo2AgAgDCALNgIAIAwoAgAEfyANIA4oAgAgACgCACABKAIAIAIoAgAgAygCACAEKAIAIAUoAgAgBigCACAHKAIAIAgoAgAgCSgCABDeAjYCACANKAIAIQAgDCQFIAAFIA0gDigCACAAKAIAIAEoAgAgAigCACADKAIAIAQoAgAgBSgCACAGKAIAIAcoAgAgCCgCACAJKAIAEN4CNgIAIA0oAgAhACAMJAUgAAsLlwsBCn8jBSELIwVB0AFqJAUgC0HAAWohDSALQShqIgwgADYCACALQSRqIgAgATYCACALQSBqIgEgAjYCACALQRxqIgIgAzYCACALQRhqIgMgBDYCACALQRRqIgQgBTYCACALQRBqIgUgBjYCACALQQxqIgYgBzYCACALQQhqIgcgCDYCACALQQRqIgggCTYCACALIAo2AgAgACgCACEAIAEoAgAhASACKAIAIQIgAygCACEDIAQoAgAhBCAFKAIAIQUgBigCACEGIAcoAgAhByAIKAIAIQ4gCygCACEPIAtBvAFqIhAgDCgCADYCACALQbgBaiIMIAA2AgAgC0G0AWoiESABNgIAIAtBsAFqIgkgAjYCACALQawBaiICIAM2AgAgC0GoAWoiCCAENgIAIAtBpAFqIgQgBTYCACALQaABaiIKIAY2AgAgC0GcAWoiAyAHNgIAIAtBmAFqIgEgDjYCACALQZQBaiISIA82AgAgC0HMAGoiBSALQYABaiIAIBAoAgAgDCgCABCAAjYCACAFKAIAEM0BBEAgDUG6fzYCACANKAIAIQAgCyQFIAAPCyALQfAAaiITIBEoAgAgCSgCACABKAIAQQFrai0AABCBAiALQeAAaiIRIAIoAgAgCCgCACABKAIAQQFrai0AABCBAiALQdAAaiIUIAQoAgAgCigCACABKAIAQQFrai0AABCBAiAAIAMoAgAgASgCAEEDdGpBfGovAQAgCigCACABKAIAQQFrai0AAEECdEGwNGooAgAQiAIgABCEAiAAIAMoAgAgASgCAEEDdGpBfmovAQAgCSgCACABKAIAQQFrai0AAEECdEHANWooAgAQiAIgABCEAiALQcgAaiECIAtBxABqIQQgEigCAARAIAIgCCgCACABKAIAQQFrai0AADYCACAEIAIoAgAgAigCAEEYSQR/IAIoAgAFQRgLazYCACAEKAIABEAgACADKAIAIAEoAgBBAWtBA3RqKAIAIAQoAgAQiAIgABCEAgsgACADKAIAIAEoAgBBAWtBA3RqKAIAIAQoAgB2IAIoAgAgBCgCAGsQiAIFIAAgAygCACABKAIAQQFrQQN0aigCACAIKAIAIAEoAgBBAWtqLQAAEIgCCyALQcYBaiEMIAtBxQFqIQ4gC0HEAWohDyALQTxqIQUgC0E4aiEEIAtBNGohBiALQTBqIQcgC0EsaiEQIAAQhAIgC0FAayICIAEoAgBBAms2AgADQCACKAIAIAEoAgBJBEAgDCAKKAIAIAIoAgBqLAAAOgAAIA4gCCgCACACKAIAaiwAADoAACAPIAkoAgAgAigCAGosAAA6AAAgBSAMLQAAQQJ0QbA0aigCADYCACAEIA4tAAA2AgAgBiAPLQAAQQJ0QcA1aigCADYCACAAIBEgDi0AABCCAiAAIBMgDy0AABCCAiAAEIQCIAAgFCAMLQAAEIICIAAQhAIgACADKAIAIAIoAgBBA3RqLwEEIAUoAgAQiAIgBSgCACAGKAIAakEYSwRAIAAQhAILIAAgAygCACACKAIAQQN0ai8BBiAGKAIAEIgCIAAQhAIgEigCAARAIAcgBCgCACAEKAIAQRhJBH8gBCgCAAVBGAtrNgIAIAcoAgAEQCAAIAMoAgAgAigCAEEDdGooAgAgBygCABCIAiAAEIQCCyAAIAMoAgAgAigCAEEDdGooAgAgBygCAHYgBCgCACAHKAIAaxCIAgUgACADKAIAIAIoAgBBA3RqKAIAIAQoAgAQiAILIAAQhAIgAiACKAIAQX9qNgIADAELCyAAIBMQhQIgACAREIUCIAAgFBCFAiAQIAAQhgI2AgAgECgCAAR/IA0gECgCADYCACANKAIAIQAgCyQFIAAFIA1Bun82AgAgDSgCACEAIAskBSAACwtFAQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAIoAgBBAEdBJGxB4B5qIAMoAgBBAnRqKAIAIQAgAiQFIAALnDIBeX8jBSEGIwVBgARqJAUgBkH0A2ohPCAGQfADaiE9IAZB7ANqISwgBkHoA2ohbyAGQeQDaiFwIAZB4ANqIS0gBkHcA2ohcSAGQdgDaiEuIAZB1ANqISQgBkHQA2ohHCAGQcwDaiE+IAZByANqIQcgBkHEA2ohEyAGQcADaiFWIAZBvANqIT8gBkG4A2ohJSAGQbQDaiFAIAZBsANqIQsgBkGsA2ohDyAGQagDaiEvIAZBpANqIVcgBkGgA2ohHSAGQZwDaiFYIAZBmANqIUEgBkGUA2ohWSAGQZADaiEXIAZBjANqIVogBkGIA2ohWyAGQYQDaiFyIAZBgANqIUIgBkH8AmohQyAGQfgCaiEwIAZB9AJqIXMgBkHwAmohdCAGQewCaiExIAZB6AJqIXUgBkHkAmohMiAGQeACaiEmIAZB3AJqIR4gBkHYAmohRCAGQdQCaiEIIAZB0AJqIRQgBkHMAmohXCAGQcgCaiFFIAZBxAJqIScgBkHAAmohRiAGQbwCaiEMIAZBuAJqIRAgBkG0AmohMyAGQbACaiFdIAZBrAJqIR8gBkGoAmohXiAGQaQCaiFHIAZBoAJqIV8gBkGcAmohGCAGQZgCaiFgIAZBlAJqIWEgBkGQAmohdiAGQYwCaiFIIAZBiAJqIUkgBkGEAmohNCAGQYACaiF3IAZB/AFqIXggBkH4AWohNSAGQfQBaiF5IAZB8AFqITYgBkHsAWohKCAGQegBaiEgIAZB5AFqIUogBkHgAWohCSAGQdwBaiEVIAZB2AFqIWIgBkHUAWohSyAGQdABaiEpIAZBzAFqIUwgBkHIAWohDSAGQcQBaiERIAZBwAFqITcgBkG8AWohYyAGQbgBaiEhIAZBtAFqIWQgBkGwAWohTSAGQawBaiFlIAZBqAFqIRkgBkGkAWohZiAGQaABaiFnIAZBnAFqIXogBkGYAWohTiAGQZQBaiFPIAZBkAFqITggBkGMAWoheyAGQYgBaiF8IAZBhAFqITkgBkGAAWohfSAGQfwAaiE6IAZB+ABqISogBkH0AGohIiAGQfAAaiFQIAZB7ABqIQogBkHoAGohFiAGQeQAaiFoIAZB4ABqIVEgBkHcAGohKyAGQdgAaiFSIAZB1ABqIQ4gBkHQAGohEiAGQcwAaiE7IAZByABqIWkgBkHEAGohIyAGQUBrIWogBkE8aiFTIAZBOGohayAGQTRqIRogBkEwaiFsIAZBLGohbSAGQShqIX4gBkEkaiEbIAZBIGoi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IFIoAgBJBEAgaiAKKAIAIDkoAgAgOigCABC7AjYCACBTIAooAgAgIigCAGs2AgAgayAqKAIAIGooAgBBAnRqKAIANgIAIBogIigCACBrKAIAajYCACAqKAIAIGooAgBBAnRqIFMoAgA2AgACQCAOKAIAQQBLIAooAgBBAWogDigCAGsQ0AEgCigCAEEBahDQAUZxBEAgIyAKKAIAQQVqIAooAgBBBWogDigCAGsgKygCABC8AkEEajYCACAKIAooAgBBAWo2AgAgTygCACAKKAIAIBYoAgBrIBYoAgBBACAjKAIAQQNrEPkCBSBrKAIAIGgoAgBLBEAgGigCABDQASAKKAIAENABRgRAICMgCigCAEEEaiAaKAIAQQRqICsoAgAQvAJBBGo2AgAgbCAKKAIAIBooAgBrNgIAA0ACQCAKKAIAIBYoAgBLIBooAgAgUSgCAEtxRQ0AIAooAgBBf2otAAAgGigCAEF/ai0AAEcNACAKIAooAgBBf2o2AgAgGiAaKAIAQX9qNgIAICMgIygCAEEBajYCAAwBCwsgEiAOKAIANgIAIA4gbCgCADYCACBPKAIAIAooAgAgFigCAGsgFigCACBsKAIAQQJqICMoAgBBA2sQ+QIMAwsLIAogCigCACAKKAIAIBYoAgBrQQh1IH0oAgBqajYCAAwDCwsgCiAKKAIAICMoAgBqNgIAIBYgCigCADYCAAJAIAooAgAgUigCAE0EQCBTKAIAQQJqIQAgKigCACAiKAIAIFMoAgBqQQJqIDkoAgAgOigCABC7AkECdGogADYCACAKKAIAQX5qICIoAgBrIQAgKigCACAKKAIAQX5qIDkoAgAgOigCABC7AkECdGogADYCAANAIAooAgAgUigCAEsNAiASKAIAQQBLIAooAgAQ0AEgCigCACASKAIAaxDQAUZxRQ0CIG0gCigCAEEEaiAKKAIAQQRqIBIoAgBrICsoAgAQvAJBBGo2AgAgfiASKAIANgIAIBIgDigCADYCACAOIH4oAgA2AgAgCigCACAiKAIAayEAICooAgAgCigCACA5KAIAIDooAgAQuwJBAnRqIAA2AgAgTygCAEEAIBYoAgBBACBtKAIAQQNrEPkCIAogCigCACBtKAIAajYCACAWIAooAgA2AgAMAAsACwsMAQsLIA4oAgAhACA7KAIAIQEgOCgCACAO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ai0AAEcNAyAHIAcoAgBBf2o2AgAgIiAiKAIAQX9qNgIAIA0gDSgCAEEBajYCAAwACwALCyAHIAcoAgAgBygCACALKAIAa0EIdUEBamo2AgAMAwsgFyAMKAIANgIAIAwgSigCADYCACBgKAIAIAcoAgAgCygCAGsgCygCACBKKAIAQQJqIA0oAgBBA2sQ+QILIAcgBygCACANKAIAajYCACALIAcoAgA2AgACQCAHKAIAIGIoAgBNBEAgNygCAEECaiEAIDUoAgAgGygCACA3KAIAakECaiBHKAIAIEYoAgAQuwJBAnRqIAA2AgAgHygCACAbKAIAIDcoAgBqQQJqIDQoAgBBCBC7AkECdGogADYCACAHKAIAQX5qIBsoAgBrIQAgNSgCACAHKAIAQX5qIEcoAgAgRigCABC7AkECdGogADYCACAfKAIAIAcoAgBBfmogNCgCAEEIELsCQQJ0aiAANgIAA0AgBygCACBiKAIASw0CIBcoAgBBAEsgBygCABDQASAHKAIAIBcoAgBrENABRnFFDQIgdiAHKAIAQQRqIAcoAgBBBGogFygCAGsgICgCABC8AkEEajYCACCUASAXKAIANgIAIBcgDCgCADYCACAMIJQBKAIANgIAIAcoAgAgGygCAGshACA1KAIAIAcoAgAgRygCACBGKAIAELsCQQJ0aiAANgIAIAcoAgAgGygCAGshACAfKAIAIAcoAgAgNCgCAEEIELsCQQJ0aiAANgIAIGAoAgBBACALKAIAQQAgdigCAEEDaxD5AiAHIAcoAgAgdigCAGo2AgAgCyAHKAIANgIADAALAAsLDAELCyAMKAIAIQAgSSgCACEBIEUoAgAgDCgCAAR/IAAFIAELNgIAIBcoAgAhACBJKAIAIQEgRSgCACAXKAIABH8gAAUgAQs2AgQgMyAgKAIAIAsoAgBrNgIAIDMoAgAhACAGJAUgAA8LIG0oAgAhBCABKAIAIQEgACgCACEAIAIoAgAhAiADKAIAIQMgUiBsKAIANgIAIGYgBDYCACBTIAE2AgAggAEgADYCACCYASACNgIAIJkBIAM2AgAgVEEFNgIAICkgUigCACgCJDYCACA8IIABKAIAKAIINgIAID0gUigCACgCLDYCACBVIIABKAIAKAIENgIAIB0gUigCACgCBDYCACBnIJgBKAIANgIAIAkgZygC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BE8EQCAcKAIAIB0oAgBKBEAgASAPKAIANgIAIAIgDigCADYCACADIAAoAgA2AgAMAgsLIBQoAgBBAkcNAiAAKAIAIA0oAgBPDQIgACAAKAIAQQFqNgIAAkAgAigCAARAIAcoAgBBAEsgACgCABDQASAAKAIAIAcoAgBrENABRnEEQCAQIAAoAgBBBGogACgCAEEEaiAHKAIAayAEKAIAELwCQQRqNgIAIB4gECgCAEECdDYCACAfIAEoAgBBAnQgAigCAEEBahDUAWtBAWo2AgAgECgCAEEETwRAIB4oAgAgHygCAEwNAyABIBAoAgA2AgAgAkEANgIAIAMgACgCADYCAAsLCwsgEUH/wdcvNgIAIBIgCigCACATKAIAIAAoAgAgBCgCACARIBYoAgBBB3FBuAFqEQkANgIAICAgEigCAEECdCARKAIAQQFqENQBazYCACAhIAEoAgBBAnQgAigCAEEBahDUAWtBB2o2AgAgEigCAEEESQ0CICAoAgAgISgCAEwNAiABIBIoAgA2AgAgAiARKAIANgIAIAMgACgCADYCAAwACwALCyACKAIABEADQAJAIAMoAgAgBSgCAEsgAygCACACKAIAQQJrayAVKAIAS3FFDQAgAygCAEF/ai0AACADKAIAIAIoAgBrLQABRw0AIAMgAygCAEF/ajYCACABIAEoAgBBAWo2AgAMAQsLIAggBygCADYCACAHIAIoAgBBAms2AgALCyAiIAMoAgAgBSgCAGs2AgAgGSgCACAiKAIAIAUoAgAgAigCACABKAIAQQNrEPkCIAAgAygCACABKAIAaiIjNgIAIAUgIzYCAANAAkAgACgCACANKAIATSAIKAIAQQBLcUUNACAAKAIAENABIAAoAgAgCCgCAGsQ0AFHDQAgASAAKAIAQQRqIAAoAgBBBGogCCgCAGsgBCgCABC8AkEEajYCACACIAgoAgA2AgAgCCAHKAIANgIAIAcgAigCADYCACAZKAIAQQAgBSgCAEEAIAEoAgBBA2sQ+QIgACAAKAIAIAEoAgBqNgIAIAUgACgCADYCAAwBCwsMAQsLIAcoAgAhACAMKAIAIQEgCygCACAHKAIABH8gAAUgAQs2AgAgCCgCACEAIAwoAgAhASALKAIAIAgoAgAEfyAABSABCzYCBCAEKAIAIAUoAgBrIQAgBiQFIAALjREB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IRwgBkHoD2ohkQIgBkHkD2ohugMgBkHgD2ohnQEgBkHcD2ohkgIgBkHYD2ohkwIgBkHUD2oh2QEgBkHQD2ohUyAGQcwPaiGUAiAGQcgPaiGVAiAGQcQPaiHsAiAGQcAPaiGWAiAGQbwPaiHaASAGQbgPaiHbASAGQbQPaiGXAiAGQbAPaiG7AyAGQawPaiEvIAZBqA9qIe0CIAZBpA9qIWogBkGgD2ohvAMgBkGcD2ohayAGQZgPaiGeASAGQZQPaiHuAiAGQZAPaiFUIAZBjA9qIe8CIAZBiA9qIWwgBkGED2ohbSAGQYAPaiG9AyAGQfwOaiG+AyAGQfgOaiHcASAGQfQOaiECIAZB8A5qIZ8BIAZB7A5qIZgCIAZB6A5qIUMgBkHkDmohoAEgBkHgDmohFCAGQdwOaiFEIAZB2A5qIZkCIAZB1A5qIb8DIAZB0A5qIZoCIAZBzA5qIW4gBkHIDmohwAMgBkHEDmohoQEgBkHADmoh8AIgBkG8DmohogEgBkG4DmohKCAGQbQOaiHBAyAGQbAOaiE6IAZBrA5qIfECIAZBqA5qIfICIAZBpA5qIR0gBkGgDmohmwIgBkGcDmohwgMgBkGYDmohowEgBkGUDmohnAIgBkGQDmohnQIgBkGMDmoh3QEgBkGIDmohVSAGQYQOaiGeAiAGQYAOaiGfAiAGQfwNaiHzAiAGQfgNaiGgAiAGQfQNaiHeASAGQfANaiHfASAGQewNaiGhAiAGQegNaiHDAyAGQeQNaiEwIAZB4A1qIfQCIAZB3A1qIW8gBkHYDWohxAMgBkHUDWohcCAGQdANaiGkASAGQcwNaiH1AiAGQcgNaiFWIAZBxA1qIfYCIAZBwA1qIXEgBkG8DWohciAGQbgNaiHFAyAGQbQNaiHGAyAGQbANaiHgASAGQawNaiEDIAZBqA1qIaUBIAZBpA1qIaICIAZBoA1qIUUgBkGcDWohpgEgBkGYDWohFSAGQZQNaiFGIAZBkA1qIaMCIAZBjA1qIccDIAZBiA1qIaQCIAZBhA1qIXMgBkGADWohyAMgBkH8DGohpwEgBkH4DGoh9wIgBkH0DGohqAEgBkHwDGohKSAGQewMaiHJAyAGQegMaiE7IAZB5AxqIfgCIAZB4AxqIfkCIAZB3AxqIR4gBkHYDGohpQIgBkHUDGohygMgBkHQDGohqQEg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NgIAIJIBKAIAIKADKAIASyAaKAIAIJIBKAIAaiBQKAIARnIEQCBPKAIAIC4oAgBBAWo2Ahgg1AJBATYCAAwFCwsLCwsgoQMoAgAgogMoAgBBAnRqIC4oAgA2AgACQAJAAkADQAJAIKQDIKQDKAIAIgdBf2o2AgAgB0UNACAjKAIAINwCKAIATQ0AIP4BINcCKAIAICMoAgAgzQEoAgBxQQN0ajYCACDYAigCACEHINkCKAIAIQggDyDYAigCACDZAigCAEkEfyAHBSAICzYCAAJAAkAg1QIoAgBFDQAgIygCACAPKAIAaiBiKAIATw0AIM8BIPsBKAIAICMoAgBqNgIAIBooAgAgDygCAGogzwEoAgAgDygCAGogUCgCACDaAigCACDbAigCABC9AiEHIA8gDygCACAHajYCACAjKAIAIA8oAgBqIGIoAgBPBEAgzwEgzAEoAgAgIygCAGo2AgALDAELIM8BIMwBKAIAICMoAgBqNgIAIBooAgAgDygCAGogzwEoAgAgDygCAGogUCgCABC8AiEHIA8gDygCACAHajYCAAsgDygCACCPASgCAEsEQCAPKAIAIN0CKAIAICMoAgBrSwRAIN0CICMoAgAgDygCAGo2AgALII8BIA8oAgA2AgAgjgEoAgAgNigCAEEDdGogLigCACAjKAIAa0ECajYCACCOASgCACA2KAIAQQN0aiAPKAIANgIEIDYgNigCAEEBajYCACAPKAIAQYAgSw0BIBooAgAgDygCAGogUCgCAEYNAQsgIygCACEHIM8BKAIAIA8oAgBqLQAAIBooAgAgDygCAGotAABIBEAg/AEoAgAgBzYCACDYAiAPKAIANgIAICMoAgAgowMoAgBNDQMg/AEg/gEoAgBBBGo2AgAgIyD+ASgCACgCBDYCAAUg/QEoAgAgBzYCACDZAiAPKAIANgIAICMoAgAgowMoAgBNDQQg/QEg/gEoAgA2AgAgIyD+ASgCACgCADYCAAsMAQsLDAILIPwBIPsDNgIADAELIP0BIPsDNgIACyD9ASgCAEEANgIAIPwBKAIAQQA2AgAgTygCACDdAigCAEEIazYCGCDUAiA2KAIANgIACyDQASDUAigCADYCAAwECyCTASgCACEHIJQBKAIAIQgg0QEoAgAhCSDSASgCACEKIIECKAIAIQwgggIoAgAhECCDAigCACERIIQCKAIAIRIgSSBkKAIANgIAILgBIAc2AgAgFyAINgIAIEogCTYCACC3AiAKNgIAIN8DIAw2AgAguAIgEDYCACB/IBE2AgAg4AMgEjYCACC5AUEGNgIAIIsDILgBKAIAKAIUQf8fSQR/ILgBKAIAKAIUBUH/HwsiBzYCACC6ASBJKAIAKAIENgIAICsgFygCACC6ASgCAGs2AgAg4QMguAEoAgAoAgg2AgAgPSC5ASgCAEEDRgR/QQMFQQQLNgIAIIwDIEkoAgAoAiQ2AgAgjQMgFygCACDhAygCACC5ASgCABC7AjYCACAgIIwDKAIAII0DKAIAQQJ0aigCADYCACC5AiBJKAIAKAIsNgIAIOIDILgBKAIAKAIEQQFrNgIAILsBQQEg4gMoAgB0QQFrNgIAILoCQQA2AgAguwJBADYCACDvASBJKAIAKAIINgIAIFwgSSgCACgCDDYCACC8AiDvASgCACBcKAIAajYCACC9AiC6ASgCACBcKAIAajYCACCOAyC7ASgCACArKAIATwR/QQAFICsoAgAguwEoAgBrCyIHNgIAIL4CIEkoAgAoAhA2AgAg8AEguQIoAgAgKygCACC7ASgCAHFBA3RqNgIAIPEBILkCKAIAICsoAgAguwEoAgBxQQN0akEEajYCACC/AiArKAIAQQlqNgIAIDNBADYCACCPA0EBILgBKAIAKAIMdDYCACCAASDgAygCAEEBazYCACDkAyC4AigCAEEDajYCACCBASC4AigCADYCAAJAAkACQANAIIEBKAIAIOQDKAIATw0CIN8DKAIAIQcgvAEggQEoAgBBA0YEfyAHKAIAQQFrBSAHIIEBKAIAQQJ0aigCAAsiBzYCACCQAyArKAIAILwBKAIAazYCACBdQQA2AgAgvAEoAgBBAWsgKygCACBcKAIAa0kEQCAXKAIAID0oAgAQ8QIgFygCACC8ASgCAGsgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogFygCACA9KAIAaiC8ASgCAGsgSigCABC8AiA9KAIAajYCAAsFIJEDIO8BKAIAIJADKAIAajYCACC3AigCAARAILwBKAIAQQFrICsoAgAgvgIoAgBrSSBcKAIAQQFrIJADKAIAa0EDT3EEQCAXKAIAID0oAgAQ8QIgkQMoAgAgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogkQMoAgAgPSgCAGogSigCACC8AigCACC9AigCABC9AiA9KAIAajYCAAsLCwsgXSgCACCAASgCAEsEQCCAASBdKAIANgIAIH8oAgAgMygCAEEDdGoggQEoAgAguAIoAgBrNgIAIH8oAgAgMygCAEEDdGogXSgCADYCBCAzIDMoAgBBAWo2AgAgXSgCACCLAygCAEsgFygCACBdKAIAaiBKKAIARnINAgsggQEggQEoAgBBAWo2AgAMAAsACyC2AiAzKAIANgIADAELILkBKAIAQQNGBEAggAEoAgAguQEoAgBJBEAgggEgSSgCACAXKAIAEPICNgIAIIIBKAIAIL4CKAIASyArKAIAIIIBKAIAa0GAgBBJcQRAAkACQCC3AigCAEUNACCCASgCACBcKAIATw0AIOYDIO8BKAIAIIIBKAIAajYCACCDASAXKAIAIOYDKAIAIEooAgAgvAIoAgAgvQIoAgAQvQI2AgAMAQsg5QMgugEoAgAgggEoAgBqNgIAIIMBIBcoAgAg5QMoAgAgSigCABC8AjYCAAsggwEoAgAguQEoAgBPBEAggAEggwEoAgA2AgAgfygCACArKAIAIIIBKAIAa0ECajYCACB/KAIAIIMBKAIANgIEIDNBATYCACCDASgCACCLAygCAEsgFygCACCDASgCAGogSigCAEZyBEAgSSgCACArKAIAQQFqNgIYILYCQQE2AgAMBQsLCwsLIIwDKAIAII0DKAIAQQJ0aiArKAIANgIAAkACQAJAA0ACQCCPAyCPAygCACIHQX9qNgIAIAdFDQAgICgCACC+AigCAE0NACDyASC5AigCACAgKAIAILsBKAIAcUEDdGo2AgAgugIoAgAhByC7AigCACEIIAsgugIoAgAguwIoAgBJBH8gBwUgCAs2AgACQAJAILcCKAIARQ0AICAoAgAgCygCAGogXCgCAE8NACC9ASDvASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAgvAIoAgAgvQIoAgAQvQIhByALIAsoAgAgB2o2AgAgICgCACALKAIAaiBcKAIATwRAIL0BILoBKAIAICAoAgBqNgIACwwBCyC9ASC6ASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAQvAIhByALIAsoAgAgB2o2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ASAlKAIAIIUCKAIAazYCAAsLILADIIUCKAIANgIAILEDIN8CKAIANgIAIGYgASgCADYCAANAIOQCIAAoAgAgZigCAEEcbGooAgg2AgAgiwQgACgCACBmKAIAQRxsaigCBDYCACAAKAIAIGYoAgBBHGxqILADKAIANgIIIAAoAgAgZigCAEEcbGogsQMoAgA2AgQgsAMg5AIoAgA2AgAgsQMgiwQoAgA2AgAg5AIoAgAgZigCAE0EQCBmIGYoAgAg5AIoAgBrNgIADAELCyBnQQA2AgADQCBnKAIAICUoAgBJBEAg5QIgJCgCACBSKAIAazYCACDWASAAKAIAIGcoAgBBHGxqKAIINgIAINcBIAAoAgAgZygCAEEcbGooAgQ2AgAg1gEoAgBBAUYEQCAkICQoAgBBAWo2AgAgZyBnKAIAQQFqNgIADAILIGcgZygCACDWASgCAGo2AgAgJCAkKAIAINYBKAIAajYCACDXASgCAEEDTwRAICYoAgAgJigCACgCBDYCCCAmKAIAICYoAgAoAgA2AgQgJigCACDXASgCAEECazYCAAUgigIg1wEoAgAg5QIoAgBFajYCACCKAigCAARAICYoAgAhByCMBCCKAigCAEEDRgR/IAcoAgBBAWsFIAcgigIoAgBBAnRqKAIACyIHNgIAIIoCKAIAQQJPBEAgJigCACAmKAIAKAIENgIICyAmKAIAICYoAgAoAgA2AgQgJigCACCMBCgCADYCAAsLIDgoAgAg5QIoAgAgUigCACDXASgCACDWASgCABD4AiCOBCgCACDlAigCACBSKAIAINcBKAIAINYBKAIAQQNrEPkCIFIgJCgCADYCAAwBCwsgOCgCABD6AgwBCwsgjQIoAgAgUigCAGshACAGJAUgAAuM1gEBiQR/IwUhBiMFQeAQaiQFIAZBFGoiCyAANgIAIAZBEGoiACABNgIAIAZBDGoiASACNgIAIAZBCGoiAiADNgIAIAZBBGoiAyAENgIAIAYgBTYCACAAKAIAIQAgASgCACEBIAIoAgAhAiADKAIAIQMgBigCACEEIAZBsAJqImggCygCADYCACAGQawCaiKOBCAANgIAIAZBqAJqIiYgATYCACAGQaQCaiLYASACNgIAIAZBoAJqIgcgAzYCACAGQZwCaiIIIAQ2AgAgBkGYAmoijAJBAjYCACAGQZQC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IDYoAgBBA3RqIJABKAIAINYCKAIAazYCACCOASgCACA2KAIAQQN0aiBjKAIANgIEIDYgNigCAEEBajYCACBjKAIAIKADKAIASyAaKAIAIGMoAgBqIFAoAgBGcg0CCyCQASCQASgCAEEBajYCAAwACwALINQCIDYoAgA2AgAMAQsgywEoAgBBA0YEQCCPASgCACDLASgCAEkEQCCRASBPKAIAIBooAgAQ8gI2AgAgkQEoAgAg3AIoAgBLIC4oAgAgkQEoAgBrQYCAEElxBEACQAJAINUCKAIARQ0AIJEBKAIAIGIoAgBPDQAg/gMg+wEoAgAgkQEoAgBqNgIAIJIBIBooAgAg/gMoAgAgUCgCACDaAigCACDbAigCABC9AjYCAAwBCyD9AyDMASgCACCRASgCAGo2AgAgkgEgGigCACD9AygCACBQKAIAELwCNgIACyCSASgCACDLASgCAE8EQCCPASCSASgCADYCACCOASgCACAuKAIAIJEBKAIAa0ECajYCACCOASgCACCSASgCADYCBCA2QQE2AgAgkgEoAgAgoAMoAgBLIBooAgAgkgEoAgBqIFAoAgBGcgRAIE8oAgAgLigCAEEBajYCGCDUAkEBNgIADAULCwsLCyChAygCACCiAygCAEECdGogLigCADYCAAJAAkACQANAAkAgpAMgpAMoAgAiB0F/ajYCACAHRQ0AICMoAgAg3AIoAgBNDQAg/gEg1wIoAgAgIygCACDNASgCAHFBA3RqNgIAINgCKAIAIQcg2QIoAgAhCCAPINgCKAIAINkCKAIASQR/IAcFIAgLNgIAAkACQCDVAigCAEUNACAjKAIAIA8oAgBqIGIoAgBPDQAgzwEg+wEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAINoCKAIAINsCKAIAEL0CIQcgDyAPKAIAIAdqNgIAICMoAgAgDygCAGogYigCAE8EQCDPASDMASgCACAjKAIAajYCAAsMAQsgzwEgzAEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAELwCIQcgDyAPKAIAIAdqNgIACyAPKAIAII8BKAIASwRAIA8oAgAg3QIoAgAgIygCAGtLBEAg3QIgIygCACAPKAIAajYCAAsgjwEgDygCADYCACCOASgCACA2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KAIASyAXKAIAIIMBKAIAaiBKKAIARnIEQCBJKAIAICsoAgBBAWo2AhggtgJBATYCAAwFCwsLCwsgjAMoAgAgjQMoAgBBAnRqICsoAgA2AgACQAJAAkADQAJAII8DII8DKAIAIgdBf2o2AgAgB0UNACAgKAIAIL4CKAIATQ0AIPIBILkCKAIAICAoAgAguwEoAgBxQQN0ajYCACC6AigCACEHILsCKAIAIQggCyC6AigCACC7AigCAEkEfyAHBSAICzYCAAJAAkAgtwIoAgBFDQAgICgCACALKAIAaiBcKAIATw0AIL0BIO8BKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCACC8AigCACC9AigCABC9AiEHIAsgCygCACAHajYCACAgKAIAIAsoAgBqIFwoAgBPBEAgvQEgugEoAgAgICgCAGo2AgALDAELIL0BILoBKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCABC8AiEHIAsgCygCACAHajYCAAsgCygCACCAASgCAEsEQCALKAIAIL8CKAIAICAoAgBrSwRAIL8CICAoAgAgCygCAGo2AgALIIABIAsoAgA2AgAgfygCACAzKAIAQQN0aiArKAIAICAoAgBrQQJqNgIAIH8oAgAgMygCAEEDdGogCygCADYCBCAzIDMoAgBBAWo2AgAgCygCAEGAIEsNASAXKAIAIAsoAgBqIEooAgBGDQELICAoAgAhByC9ASgCACALKAIAai0AACAXKAIAIAsoAgBqLQAASARAIPABKAIAIAc2AgAgugIgCygCADYCACAgKAIAII4DKAIATQ0DIPABIPIBKAIAQQRqNgIAICAg8gEoAgAoAgQ2AgAFIPEBKAIAIAc2AgAguwIgCygCADYCACAgKAIAII4DKAIATQ0EIPEBIPIBKAIANgIAICAg8gEoAgAoAgA2AgALDAELCwwCCyDwASDjAzYCAAwBCyDxASDjAzYCAAsg8QEoAgBBADYCACDwASgCAEEANgIAIEkoAgAgvwIoAgBBCGs2AhggtgIgMygCADYCAAsg0AEgtgIoAgA2AgAMAwsgkwEoAgAhByCUASgCACEIINEBKAIAIQkg0gEoAgAhCiCBAigCACEMIIICKAIAIRAggwIoAgAhESCEAigCACESIEsg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sgFBADYCAAUgfSgCACEHIH4oAgAhCCCzASgCACEJIIcDKAIAIQogtAEoAgAhDCDpASBbKAIANgIAINcDIAc2AgAg2AMgCDYCACDZAyAJNgIAINoDIAo2AgAg2wMgDDYCACCFAyDpASgCACgCBDYCACCGAyDYAygCACCFAygCAGs2AgAg6gEg6QEoAgAoAhg2AgADQCDqASgCACCGAygCAEkEQCDpASgCACDXAygCACCFAygCACDqASgCAGog2QMoAgAg2gMoAgAg2wMoAgAQugIhByDqASDqASgCACAHajYCAAwBCwsg6QEoAgAghgMoAgA2AhgCQAJAAkACQCCHAygCAEEDaw4FAAMCAQEDCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEcgWygCADYCACCsASAHNgIAIBYgCDYCACBIIAk2AgAgrQIgCjYCACDPAyAMNgIAIK4CIBA2AgAgeCARNgIAINADIBI2AgAgrQFBAzYCACD+AiCsASgCACgCFEH/H0kEfyCsASgCACgCFAVB/x8LIgc2AgAgrgEgRygCACgCBDYCACAqIBYoAgAgrgEoAgBrNgIAINEDIKwBKAIAKAIINgIAIDwgrQEoAgBBA0YEf0EDBUEECzYCACD/AiBHKAIAKAIkNgIAIIADIBYoAgAg0QMoAgAgrQEoAgAQuwI2AgAgHyD/AigCACCAAygCAEECdGooAgA2AgAgrwIgRygCACgCLDYCACDSAyCsASgCACgCBEEBazYCACCvAUEBINIDKAIAdEEBazYCACCwAkEANgIAILECQQA2AgAg5QEgRygCACgCCDYCACBZIEcoAgAoAgw2AgAgsgIg5QEoAgAgWSgCAGo2AgAgswIgrgEoAgAgWSgCAGo2AgAggQMgrwEoAgAgKigCAE8Ef0EABSAqKAIAIK8BKAIAawsiBzYCACC0AiBHKAIAKAIQNgIAIOYBIK8CKAIAICooAgAgrwEoAgBxQQN0ajYCACDnASCvAigCACAqKAIAIK8BKAIAcUEDdGpBBGo2AgAgtQIgKigCAEEJajYCACAyQQA2AgAgggNBASCsASgCACgCDHQ2AgAgeSDQAygCAEEBazYCACDUAyCuAigCAEEDajYCACB6IK4CKAIANgIA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NgIAAkACQCBRKAIAICUoAgBLDQAgrwMoAgAgACgCACBRKAIAQRxsaigCAEgNACCMAigCAEUNAgwBCwNAICUoAgAgUSgCAEkEQCAAKAIAICUoAgBBAWpBHGxqQYCAgIAENgIAICUgJSgCAEEBajYCAAwBCwsgACgCACBRKAIAQRxsaiCWASgCADYCCCAAKAIAIFEoAgBBHGxqIOMCKAIANgIEIAAoAgAgUSgCAEEcbGog1QEoAgA2AgwgACgCACBRKAIAQRxsaiCvAygCADYCACAAKAIAIFEoAgBBHGxqQRBqIgcgrgMpAgA3AgAgByCuAygCCDYCCAsglgEglgEoAgBBf2o2AgAMAQsLIGUgZSgCAEEBajYCAAwACwALCwsgASABKAIAQQFqNgIADAALAAsghQIg4gIoAgA2AgAg3wIgNygCACCJAigCAEEBa0EDdGooAgA2AgAgJSABKAIAQQFqNgIADAILIIUCIAAoAgAgJSgCAEEcbGooAgg2AgAg3wIgACgCACAlKAIAQRxsaigCBDYCACABICUoAgAghQIoAgBrNgIACwsgsAMghQIoAgA2AgAgsQMg3wIoAgA2AgAgZiABKAIANgIAA0Ag5AIgACgCACBmKAIAQRxsaigCCDYCACCLBCAAKAIAIGYoAgBBHGxqKAIENgIAIAAoAgAgZigCAEEcbGogsAMoAgA2AgggACgCACBmKAIAQRxsaiCxAygCADYCBCCwAyDkAigCADYCACCxAyCLBCgCADYCACDkAigCACBmKAIATQRAIGYgZigCACDkAigCAGs2AgAMAQsLIGdBADYCAANAIGcoAgAgJSgCAEkEQCDlAiAkKAIAIFIoAgBrNgIAINYBIAAoAgAgZygCAEEcbGooAgg2AgAg1wEgACgCACBnKAIAQRxsaigCBDYCACDWASgCAEEBRgRAICQgJCgCAEEBajYCACBnIGcoAgBBAWo2AgAMAgsgZyBnKAIAINYBKAIAajYCACAkICQoAgAg1gEoAgBqNgIAINcBKAIAQQNPBEAgJigCACAmKAIAKAIENgIIICYoAgAgJigCACgCADYCBCAmKAIAINcBKAIAQQJrNgIABSCKAiDXASgCACDlAigCAEVqNgIAIIoCKAIABEAgJigCACEHIIwEIIoCKAIAQQNGBH8gBygCAEEBawUgByCKAigCAEEC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ACEQIDcoAgAhESCLAigCACESIGQgaCgCADYCACCTASAHNgIAIJQBIAg2AgAg0QEgCTYCACDSASAKNgIAIIECIAw2AgAgggIgEDYCACCDAiARNgIAIIQCIBI2AgAgqQMgkwEoAgAoAhA2AgACQCCUASgCACBkKAIAKAIEIGQoAgAoAhhqSQRAINABQQA2AgAFIJMBKAIAIQcglAEoAgAhCCDRASgCACEJIKkDKAIAIQog0gEoAgAhDCD/ASBkKAIANgIAIP8DIAc2AgAggAQgCDYCACCBBCAJNgIAIIIEIAo2AgAggwQgDDYCACCnAyD/ASgCACgCBDYCACCoAyCABCgCACCnAygCAGs2AgAggAIg/wEoAgAoAhg2AgADQCCAAigCACCoAygCAEkEQCD/ASgCACD/AygCACCnAygCACCAAigCAGoggQQoAgAgggQoAgAggwQoAgAQugIhByCAAiCAAigCACAHajYCAAwBCwsg/wEoAgAgqAMoAgA2AhgCQAJAAkACQCCpAygCAEEDaw4FAAMCAQEDCyCTASgCACEHIJQBKAIAIQgg0QEoAgAhCSDSASgCACEKIIECKAIAIQwgggIoAgAhECCDAigCACERIIQCKAIAIRIgTyBkKAIANgIAIMoBIAc2AgAgGiAINgIAIFAgCTYCACDVAiAKNgIAIPcDIAw2AgAg1gIgEDYCACCOASARNgIAIPgDIBI2AgAgywFBAzYCACCgAyDKASgCACgCFEH/H0kEfyDKASgCACgCFAVB/x8LIgc2AgAgzAEgTygCACgCBDYCACAuIBooAgAgzAEoAgBrNgIAIPkDIMoBKAIAKAIINgIAIEAgywEoAgBBA0YEf0EDBUEECzYCACChAyBPKAIAKAIkNgIAIKIDIBooAgAg+QMoAgAgywEoAgAQuwI2AgAgIyChAygCACCiAygCAEECdGooAgA2AgAg1wIgTygCACgCLDYCACD6AyDKASgCACgCBEEBazYCACDNAUEBIPoDKAIAdEEBazYCACDYAkEANgIAINkCQQA2AgAg+wEgTygCACgCCDYCACBiIE8oAgAoAgw2AgAg2gIg+wEoAgAgYigCAGo2AgAg2wIgzAEoAgAgYigCAGo2AgAgowMgzQEoAgAgLigCAE8Ef0EABSAuKAIAIM0BKAIAawsiBzYCACDcAiBPKAIAKAIQNgIAIPwBINcCKAIAIC4oAgAgzQEoAgBxQQN0ajYCACD9ASDXAigCACAuKAIAIM0BKAIAcUEDdGpBBGo2AgAg3QIgLigCAEEJajYCACA2QQA2AgAgpANBASDKASgCACgCDHQ2AgAgjwEg+AMoAgBBAWs2AgAg/AMg1gIoAgBBA2o2AgAgkAEg1gIoAgA2AgACQAJAAkADQCCQASgCACD8AygCAE8NAiD3AygCACEHIM4BIJABKAIAQQNGBH8gBygCAEEBawUgByCQASgCAEECdGooAgALIgc2AgAgpQMgLigCACDOASgCAGs2AgAgY0EANgIAIM4BKAIAQQFrIC4oAgAgYigCAGtJBEAgGigCACBAKAIAEPECIBooAgAgzgEoAgBrIEAoAgAQ8QJGBEAgYyAaKAIAIEAoAgBqIBooAgAgQCgCAGogzgEoAgBrIFAoAgAQvAIgQCgCAGo2AgALBSCmAyD7ASgCACClAygCAGo2AgAg1QIoAgAEQCDOASgCAEEBayAuKAIAINwCKAIAa0kgYigCAEEBayClAygCAGtBA09xBEAgGigCACBAKAIAEPECIKYDKAIAIEAoAgAQ8QJGBEAgYyAaKAIAIEAoAgBqIKYDKAIAIEAoAgBqIFAoAgAg2gIoAgAg2wIoAgAQvQIgQCgCAGo2AgALCwsLIGMoAgAgjwEoAgBLBEAgjwEgYygCADYCACCOASgCACA2KAIAQQN0aiCQASgCACDWAigCAGs2AgAgjgEoAgAgNigCAEEDdGogYygCADYCBCA2IDYoAgBBAWo2AgAgYygCACCgAygCAEsgGigCACBjKAIAaiBQKAIARnINAgsgkAEgkAEoAgBBAWo2AgAMAAsACyDUAiA2KAIANgIADAELIMsBKAIAQQNGBEAgjwEoAgAgywEoAgBJBEAgkQEgTygCACAaKAIAEPICNgIAIJEBKAIAINwCKAIASyAuKAIAIJEBKAIAa0GAgBBJcQRAAkACQCDVAigCAEUNACCRASgCACBiKAIATw0AIP4DIPsBKAIAIJEBKAIAajYCACCSASAaKAIAIP4DKAIAIFAoAgAg2gIoAgAg2wIoAgAQvQI2AgAMAQsg/QMgzAEoAgAgkQEoAgBqNgIAIJIBIBooAgAg/QMoAgAgUCgCABC8AjYCAAsgkgEoAgAgywEoAgBPBEAgjwEgkgEoAgA2AgAgjgEoAgAgLigCACCRASgCAGtBAmo2AgAgjgEoAgAgkgEoAgA2AgQgNkEBNgIAIJIBKAIAIKADKAIASyAaKAIAIJIBKAIAaiBQKAIARnIEQCBPKAIAIC4oAgBBAWo2Ahgg1AJBATYCAAwFCwsLCwsgoQMoAgAgogMoAgBBAnRqIC4oAgA2AgACQAJAAkADQAJAIKQDIKQDKAIAIgdBf2o2AgAgB0UNACAjKAIAINwCKAIATQ0AIP4BINcCKAIAICMoAgAgzQEoAgBxQQN0ajYCACDYAigCACEHINkCKAIAIQggDyDYAigCACDZAigCAEkEfyAHBSAICzYCAAJAAkAg1QIoAgBFDQAgIygCACAPKAIAaiBiKAIATw0AIM8BIPsBKAIAICMoAgBqNgIAIBooAgAgDygCAGogzwEoAgAgDygCAGogUCgCACDaAigCACDbAigCABC9AiEHIA8gDygCACAHajYCACAjKAIAIA8oAgBqIGIoAgBPBEAgzwEgzAEoAgAgIygCAGo2AgALDAELIM8BIMwBKAIAICMoAgBqNgIAIBooAgAgDygCAGogzwEoAgAgDygCAGogUCgCABC8AiEHIA8gDygCACAHajYCAAsgDygCACCPASgCAEsEQCAPKAIAIN0CKAIAICMoAgBrSwRAIN0CICMoAgAgDygCAGo2AgALII8BIA8oAgA2AgAgjgEoAgAgNigCAEEDdGogLigCACAjKAIAa0ECajYCACCOASgCACA2KAIAQQN0aiAPKAIANgIEIDYgNigCAEEBajYCACAPKAIAQYAgSw0BIBooAgAgDygCAGogUCgCAEYNAQsgIygCACEHIM8BKAIAIA8oAgBqLQAAIBooAgAgDygCAGotAABIBEAg/AEoAgAgBzYCACDYAiAPKAIANgIAICMoAgAgowMoAgBNDQMg/AEg/gEoAgBBBGo2AgAgIyD+ASgCACgCBDYCAAUg/QEoAgAgBzYCACDZAiAPKAIANgIAICMoAgAgowMoAgBNDQQg/QEg/gEoAgA2AgAgIyD+ASgCACgCADYCAAsMAQsLDAILIPwBIPsDNgIADAELIP0BIPsDNgIACyD9ASgCAEEANgIAIPwBKAIAQQA2AgAgTygCACDdAigCAEEIazYCGCDUAiA2KAIANgIACyDQASDUAigCADYCAAwECyCTASgCACEHIJQBKAIAIQgg0QEoAgAhCSDSASgCACEKIIECKAIAIQwgggIoAgAhECCDAigCACERIIQCKAIAIRIgSSBkKAIANgIAILgBIAc2AgAgFyAINgIAIEogCTYCACC3AiAKNgIAIN8DIAw2AgAguAIgEDYCACB/IBE2AgAg4AMgEjYCACC5AUEGNgIAIIsDILgBKAIAKAIUQf8fSQR/ILgBKAIAKAIUBUH/HwsiBzYCACC6ASBJKAIAKAIENgIAICsgFygCACC6ASgCAGs2AgAg4QMguAEoAgAoAgg2AgAgPSC5ASgCAEEDRgR/QQMFQQQLNgIAIIwDIEkoAgAoAiQ2AgAgjQMgFygCACDhAygCACC5ASgCABC7AjYCACAgIIwDKAIAII0DKAIAQQJ0aigCADYCACC5AiBJKAIAKAIsNgIAIOIDILgBKAIAKAIEQQFrNgIAILsBQQEg4gMoAgB0QQFrNgIAILoCQQA2AgAguwJBADYCACDvASBJKAIAKAIINgIAIFwgSSgCACgCDDYCACC8AiDvASgCACBcKAIAajYCACC9AiC6ASgCACBcKAIAajYCACCOAyC7ASgCACArKAIATwR/QQAFICsoAgAguwEoAgBrCyIHNgIAIL4CIEkoAgAoAhA2AgAg8AEguQIoAgAgKygCACC7ASgCAHFBA3RqNgIAIPEBILkCKAIAICsoAgAguwEoAgBxQQN0akEEajYCACC/AiArKAIAQQlqNgIAIDNBADYCACCPA0EBILgBKAIAKAIMdDYCACCAASDgAygCAEEBazYCACDkAyC4AigCAEEDajYCACCBASC4AigCADYCAAJAAkACQANAIIEBKAIAIOQDKAIATw0CIN8DKAIAIQcgvAEggQEoAgBBA0YEfyAHKAIAQQFrBSAHIIEBKAIAQQJ0aigCAAsiBzYCACCQAyArKAIAILwBKAIAazYCACBdQQA2AgAgvAEoAgBBAWsgKygCACBcKAIAa0kEQCAXKAIAID0oAgAQ8QIgFygCACC8ASgCAGsgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogFygCACA9KAIAaiC8ASgCAGsgSigCABC8AiA9KAIAajYCAAsFIJEDIO8BKAIAIJADKAIAajYCACC3AigCAARAILwBKAIAQQFrICsoAgAgvgIoAgBrSSBcKAIAQQFrIJADKAIAa0EDT3EEQCAXKAIAID0oAgAQ8QIgkQMoAgAgPSgCABDxAkYEQCBdIBcoAgAgPSgCAGogkQMoAgAgPSgCAGogSigCACC8AigCACC9AigCABC9AiA9KAIAajYCAAsLCwsgXSgCACCAASgCAEsEQCCAASBdKAIANgIAIH8oAgAgMygCAEEDdGoggQEoAgAguAIoAgBrNgIAIH8oAgAgMygCAEEDdGogXSgCADYCBCAzIDMoAgBBAWo2AgAgXSgCACCLAygCAEsgFygCACBdKAIAaiBKKAIARnINAgsggQEggQEoAgBBAWo2AgAMAAsACyC2AiAzKAIANgIADAELILkBKAIAQQNGBEAggAEoAgAguQEoAgBJBEAgggEgSSgCACAXKAIAEPICNgIAIIIBKAIAIL4CKAIASyArKAIAIIIBKAIAa0GAgBBJcQRAAkACQCC3AigCAEUNACCCASgCACBcKAIATw0AIOYDIO8BKAIAIIIBKAIAajYCACCDASAXKAIAIOYDKAIAIEooAgAgvAIoAgAgvQIoAgAQvQI2AgAMAQsg5QMgugEoAgAgggEoAgBqNgIAIIMBIBcoAgAg5QMoAgAgSigCABC8AjYCAAsggwEoAgAguQEoAgBPBEAggAEggwEoAgA2AgAgfygCACArKAIAIIIBKAIAa0ECajYCACB/KAIAIIMBKAIANgIEIDNBATYCACCDASgCACCLAygCAEsgFygCACCDASgCAGogSigCAEZyBEAgSSgCACArKAIAQQFqNgIYILYCQQE2AgAMBQsLCwsLIIwDKAIAII0DKAIAQQJ0aiArKAIANgIAAkACQAJAA0ACQCCPAyCPAygCACIHQX9qNgIAIAdFDQAgICgCACC+AigCAE0NACDyASC5AigCACAgKAIAILsBKAIAcUEDdGo2AgAgugIoAgAhByC7AigCACEIIAsgugIoAgAguwIoAgBJBH8gBwUgCAs2AgACQAJAILcCKAIARQ0AICAoAgAgCygCAGogXCgCAE8NACC9ASDvASgCACAgKAIAajYCACAXKAIAIAsoAgBqIL0BKAIAIAsoAgBqIEooAgAgvAIoAgAgvQIoAgAQvQIhByALIAsoAgAgB2o2AgAgICgCACALKAIAaiBcKAIATwRAIL0BILoBKAIAICAoAgBqNgIACwwBCyC9ASC6ASgCACAgKAIA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CyCFAiAAKAIAICUoAgBBHGxqKAIINgIAIN8CIAAoAgAgJSgCAEEcbGooAgQ2AgAgASAlKAIAIIUCKAIAazYCAAsLILADIIUCKAIANgIAILEDIN8CKAIANgIAIGYgASgCADYCAANAIOQCIAAoAgAgZigCAEEcbGooAgg2AgAgiwQgACgCACBmKAIAQRxsaigCBDYCACAAKAIAIGYoAgBBHGxqILADKAIANgIIIAAoAgAgZigCAEEcbGogsQMoAgA2AgQgsAMg5AIoAgA2AgAgsQMgiwQoAgA2AgAg5AIoAgAgZigCAE0EQCBmIGYoAgAg5AIoAgBrNgIADAELCyBnQQA2AgADQCBnKAIAICUoAgBJBEAg5QIgJCgCACBSKAIAazYCACDWASAAKAIAIGcoAgBBHGxqKAIINgIAINcBIAAoAgAgZygCAEEcbGooAgQ2AgAg1gEoAgBBAUYEQCAkICQoAgBBAWo2AgAgZyBnKAIAQQFqNgIADAILIGcgZygCACDWASgCAGo2AgAgJCAkKAIAINYBKAIAajYCACDXASgCAEEDTwRAICYoAgAgJigCACgCBDYCCCAmKAIAICYoAgAoAgA2AgQgJigCACDXASgCAEECazYCAAUgigIg1wEoAgAg5QIoAgBFajYCACCKAigCAARAICYoAgAhByCMBCCKAigCAEEDRgR/IAcoAgBBAWsFIAcgigIoAgBBAnRqKAIACyIHNgIAIIoCKAIAQQJPBEAgJigCACAmKAIAKAIENgIICyAmKAIAICYoAgAoAgA2AgQgJigCACCMBCgCADYCAAsLIDgoAgAg5QIoAgAgUigCACDXASgCACDWASgCABD4AiCOBCgCACDlAigCACBSKAIAINcBKAIAINYBKAIAQQNrEPkCIFIgJCgCADYCAAwBCwsgOCgCABD6AgwBCwsgjQIoAgAgUigCAGshACAGJAUgAAuM1gEBiQR/IwUhBiMFQeAQaiQFIAZBFGoiCyAANgIAIAZBEGoiACABNgIAIAZBDGoiASACNgIAIAZBCGoiAiADNgIAIAZBBGoiAyAENgIAIAYgBTYCACAAKAIAIQAgASgCACEBIAIoAgAhAiADKAIAIQMgBigCACEEIAZBsAJqImggCygCADYCACAGQawCaiKOBCAANgIAIAZBqAJqIiYgATYCACAGQaQCaiLYASAC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ABC9AiBAKAIAajYCAAsLCwsgYygCACCPASgCAEsEQCCPASBjKAIANgIAII4BKAIAIDYoAgBBA3RqIJABKAIAINYCKAIAazYCACCOASgCACA2KAIAQQN0aiBjKAIANgIEIDYgNigCAEEBajYCACBjKAIAIKADKAIASyAaKAIAIGMoAgBqIFAoAgBGcg0CCyCQASCQASgCAEEBajYCAAwACwALINQCIDYoAgA2AgAMAQsgywEoAgBBA0YEQCCPASgCACDLASgCAEkEQCCRASBPKAIAIBooAgAQ8gI2AgAgkQEoAgAg3AIoAgBLIC4oAgAgkQEoAgBrQYCAEElxBEACQAJAINUCKAIARQ0AIJEBKAIAIGIoAgBPDQAg/gMg+wEoAgAgkQEoAgBqNgIAIJIBIBooAgAg/gMoAgAgUCgCACDaAigCACDbAigCABC9AjYCAAwBCyD9AyDMASgCACCRASgCAGo2AgAgkgEgGigCACD9AygCACBQKAIAELwCNgIACyCSASgCACDLASgCAE8EQCCPASCSASgCADYCACCOASgCACAuKAIAIJEBKAIAa0ECajYCACCOASgCACCSASgCADYCBCA2QQE2AgAgkgEoAgAgoAMoAgBLIBooAgAgkgEoAgBqIFAoAgBGcgRAIE8oAgAgLigCAEEBajYCGCDUAkEBNgIADAULCwsLCyChAygCACCiAygCAEECdGogLigCADYCAAJAAkACQANAAkAgpAMgpAMoAgAiB0F/ajYCACAHRQ0AICMoAgAg3AIoAgBNDQAg/gEg1wIoAgAgIygCACDNASgCAHFBA3RqNgIAINgCKAIAIQcg2QIoAgAhCCAPINgCKAIAINkCKAIASQR/IAcFIAgLNgIAAkACQCDVAigCAEUNACAjKAIAIA8oAgBqIGIoAgBPDQAgzwEg+wEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAINoCKAIAINsCKAIAEL0CIQcgDyAPKAIAIAdqNgIAICMoAgAgDygCAGogYigCAE8EQCDPASDMASgCACAjKAIAajYCAAsMAQsgzwEgzAEoAgAgIygCAGo2AgAgGigCACAPKAIAaiDPASgCACAPKAIAaiBQKAIAELwCIQcgDyAPKAIAIAdqNgIACyAPKAIAII8BKAIASwRAIA8oAgAg3QIo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ICsoAgAgggEoAgBrQQJqNgIAIH8oAgAggwEoAgA2AgQgM0EBNgIAIIMBKAIAIIsDKAIASyAXKAIAIIMBKAIAaiBKKAIARnIEQCBJKAIAICsoAgBBAWo2AhggtgJBATYCAAwFCwsLCwsgjAMoAgAgjQMoAgBBAnRqICsoAgA2AgACQAJAAkADQAJAII8DII8DKAIAIgdBf2o2AgAgB0UNACAgKAIAIL4CKAIATQ0AIPIBILkCKAIAICAoAgAguwEoAgBxQQN0ajYCACC6AigCACEHILsCKAIAIQggCyC6AigCACC7AigCAEkEfyAHBSAICzYCAAJAAkAgtwIoAgBFDQAgICgCACALKAIAaiBcKAIATw0AIL0BIO8BKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCACC8AigCACC9AigCABC9AiEHIAsgCygCACAHajYCACAgKAIAIAsoAgBqIFwoAgBPBEAgvQEgugEoAgAgICgCAGo2AgALDAELIL0BILoBKAIAICAoAgBqNgIAIBcoAgAgCygCAGogvQEoAgAgCygCAGogSigCABC8AiEHIAsgCygCACAHajYCAAsgCygCACCAASgCAEsEQCALKAIAIL8CKAIAICAoAgBrSwRAIL8CICAoAgAgCygCAGo2AgALIIABIAsoAgA2AgAgfygCACAzKAIAQQN0aiArKAIAICAoAgBrQQJqNgIAIH8oAgAgMygCAEEDdGogCygCADYCBCAzIDMoAgBBAWo2AgAgCygCAEGAIEsNASAXKAIAIAsoAgBqIEooAgBGDQELICAoAgAhByC9ASgCACALKAIAai0AACAXKAIAIAsoAgBqLQAASARAIPABKAIAIAc2AgAgugIgCygCADYCACAgKAIAII4DKAIATQ0DIPABIPIBKAIAQQRqNgIAICAg8gEoAgAoAgQ2AgAFIPEBKAIAIAc2AgAguwIgCygCADYCACAgKAIAII4DKAIATQ0EIPEBIPIBKAIANgIAICAg8gEoAgAoAgA2AgALDAELCwwCCyDwASDjAzYCAAwBCyDxASDjAzYCAAsg8QEoAgBBADYCACDwASgCAEEANgIAIEkoAgAgvwIoAgBBCGs2AhggtgIgMygCADYCAAsg0AEgtgIoAgA2AgAMAwsgkwEoAgAhByCUASgCACEIINEB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ASASNgIAIIcDIH0oAgAoAhA2AgACQCB+KAIAIFsoAgAoAgQgWygCACgCGGpJBEAgsgFBADYCAAUgfSgCACEHIH4oAgAhCCCzASgCACEJIIcDKAIAIQogtAEoAgAhDCDpASBbKAIANgIAINcDIAc2AgAg2AMgCDYCACDZAyAJNgIAINoDIAo2AgAg2wMgDDYCACCFAyDpASgCACgCBDYCACCGAyDYAygCACCFAygCAGs2AgAg6gEg6QEoAgAoAhg2AgADQCDqASgCACCGAygCAEkEQCDpASgCACDXAygCACCFAygCACDqASgCAGog2QMoAgAg2gMoAgAg2wMoAgAQugIhByDqASDqASgCACAHajYCAAwBCwsg6QEoAgAghgMoAgA2AhgCQAJAAkACQCCHAygCAEEDaw4FAAMCAQEDCyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEcgWygCADYCACCsASAHNgIAIBYgCDYCACBIIAk2AgAgrQIgCjYCACDPAyAMNgIAIK4CIBA2AgAgeCARNgIAINADIBI2AgAgrQFBAzYCACD+AiCsASgCACgCFEH/H0kEfyCsASgCACgCFAVB/x8LIgc2AgAgrgEgRygCACgCBDYCACAqIBYoAgAgrgEoAgBrNgIAINEDIKwBKAIAKAIINgIAIDwgrQEoAgBBA0YEf0EDBUEECzYCACD/AiBHKAIAKAIkNgIAIIADIBYoAgAg0QMoAgAgrQEoAgAQuwI2AgAgHyD/AigCACCAAygCAEECdGooAgA2AgAgrwIgRygCACgCLDYCACDSAyCsASgCACgCBEEBazYCACCvAUEBINIDKAIAdEEBazYCACCwAkEANgIAILECQQA2AgAg5QEgRygCACgCCDYCACBZIEcoAgAoAgw2AgAgsgIg5QEoAgAgWSgCAGo2AgAgswIgrgEoAgAgWSgCAGo2AgAggQMgrwEoAgAgKigCAE8Ef0EABSAqKAIAIK8BKAIAawsiBzYCACC0AiBHKAIAKAIQNgIAIOYBIK8CKAIAICooAgAgrwEoAgBxQQN0ajYCACDnASCvAigCACAqKAIAIK8BKAIAcUEDdGpBBGo2AgAgtQIgKigCAEEJajYCACAyQQA2AgAgggNBASCsASgCACgCDHQ2AgAgeSDQAygCAEEBazYCACDUAyCuAigCAEEDajYCACB6IK4CKAIANgIAAkACQAJAA0AgeigCACDUAygCAE8NAiDPAygCACEHILABIHooAgBBA0YEfyAHKAIAQQFrBSAHIHooAgBBAnRqKAIACyIHNgIAIIMDICooAgAgsAEoAgBrNgIAIFpBADYCAAJAILABKAIAQQFrICooAgAgWSgCAGtJBEAgFigCACA8KAIAEPECIBYoAgAgsAEoAgBrIDwoAgAQ8QJHDQEgWiAWKAIAIDwoAgBqIBYoAgAgPCgCAGogsAEoAgBrIEgoAgAQvAIgPCgCAGo2AgAFIIQDIOUBKAIAIIMDKAIAajYCACCtAigCAEUNASCwASgCAEEBayAqKAIAILQCKAIAa0kgWSgCAEEBayCDAygCAGtBA09xRQ0BIBYoAgAgPCgCABDxAiCEAygCACA8KAIAEPECRw0BIFogFigCACA8KAIAaiCEAygCACA8KAIAaiBIKAIAILICKAIAILMCKAIAEL0CIDwoAgBqNgIACwsgWigCACB5KAIASwRAIHkgWigCADYCACB4KAIAIDIoAgBBA3RqIHooAgAgrgIoAgBrNgIAIHgoAgAgMigCAEEDdGogWigCADYCBCAyIDIoAgBBAWo2AgAgWigCACD+AigCAEsgFigCACBaKAIAaiBIKAIARnINAgsgeiB6KAIAQQFqNgIADAALAAsgrAIgMigCADYCAAwBCwJAIK0BKAIAQQNGBEAgeSgCACCtASgCAE8NASB7IEcoAgAgFigCABDyAjYCACB7KAIAILQCKAIASyAqKAIAIHsoAgBrQYCAEElxRQ0BAkACQCCtAigCAEUNACB7KAIAIFkoAgBPDQAg1gMg5QEoAgAgeygCAGo2AgAgfCAWKAIAINYDKAIAIEgoAgAgsgIoAgAgswIoAgAQvQI2AgAMAQsg1QMgrgEoAgAgeygCAGo2AgAgfCAWKAIAINUDKAIAIEgoAgAQvAI2AgALIHwoAgAgrQEoAgBJDQEgeSB8KAIANgIAIHgoAgAgKigCACB7KAIAa0ECajYCACB4KAIAIHwoAgA2AgQgMkEBNgIAIHwoAgAg/gIoAgBLIBYoAgAgfCgCAGogSCgCAEZyRQ0BIEcoAgAgKigCAEEBajYCGCCsAkEBNgIADAILCyD/AigCACCAAygCAEECdGogKigCADYCAAJAAkACQANAAkAgggMgggMoAgAiB0F/ajYCACAHRQ0AIB8oAgAgtAIoAgBNDQAg6AEgrwIoAgAgHygCACCvASgCAHFBA3RqNgIAILACKAIAIQcgsQIoAgAhCCAFILACKAIAILECKAIASQR/IAcFIAgLNgIAAkACQCCtAigCAEUNACAfKAIAIAUoAgBqIFkoAgBPDQAgsQEg5QEoAgAgHygCAGo2AgAgFigCACAFKAIAaiCxASgCACAFKAIAaiBIKAIAILICKAIAILMCKAIAEL0CIQcgBSAFKAIAIAdqNgIAIB8oAgAgBSgCAGogWSgCAEkNASCxASCuASgCACAfKAIAajYCAAwBCyCxASCuASgCACAfKAIAajYCACAWKAIAIAUoAgBqILEBKAIAIAUoAgBqIEgoAgAQvAIhByAFIAUoAgAgB2o2AgALIAUoAgAgeSgCAEsEQCAFKAIAILUCKAIAIB8oAgBrSwRAILUCIB8oAgAgBSgCAGo2AgALIHkgBSgCADYCACB4KAIAIDIoAgBBA3RqICooAgAgHygCAGtBAmo2AgAgeCgCACAyKAIAQQN0aiAFKAIANgIEIDIgMigCAEEBajYCACAFKAIAQYAgSw0BIBYoAgAgBSgCAGogSCgCAEYNAQsgHygCACEHILEBKAIAIAUoAgBqLQAAIBYoAgAgBSgCAGotAABIBEAg5gEoAgAgBzYCACCwAiAFKAIANgIAIB8oAgAggQMoAgBNDQMg5gEg6AEoAgBBBGo2AgAgHyDoASgCACgCBDYCAAUg5wEoAgAgBzYCACCxAiAFKAIANgIAIB8oAgAggQMoAgBNDQQg5wEg6AEoAgA2AgAgHyDoASgCACgCADYCAAsMAQsLDAILIOYBINMDNgIADAELIOcBINMDNgIACyDnASgCAEEANgIAIOYBKAIAQQA2AgAgRygCACC1AigCAEEIazYCGCCsAiAyKAIANgIACyCyASCsAigCADYCAAwECyB9KAIAIQcgfigCACEIILMBKAIAIQkgtAEoAgAhCiDrASgCACEMIOwBKAIAIRAg7QEoAgAhESDuASgCACESIEEgWygCADYCACCaASAHNgIAIBMgCDYCACBCIAk2AgAgjwIgCjYCACC3AyAMNgIAIJACIBA2AgAgaSARNgIAILgDIBI2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CyAHQUBrIR8gB0E8aiEgIAdBOGohFSAHQTRqIRYgB0EwaiEdIAdBLGohCiAHQShqISEgB0EkaiEiIAdBIGohDSAHQRxqIQ4gB0EYaiEXIAdBFGohIyAHQRBqIQYgB0EMaiEPIAdBCGohASAHQQRqIQggACATKAIANgIAA0AgACgCAARAIB8gBCgCACAAKAIAIAIoAgBxQQN0akEEajYCACAgIB8oAgAoAgA2AgAgCSgCACALKAIAIAAoAgAgECgCACAFKAIAIBwoAgAgHigCABCIAyAAICAoAgA2AgAgBSAFKAIAQQFqNgIADAELCyAVQQA2AgAgFkEANgIAIB0gCSgCACgCCDYCACAKIAkoAgAoAgw2AgAgISAdKAIAIAooAgBqNgIAICIgESgCACAKKAIAajYCACANIAQoAgAgAygCACACKAIAcUEDdGo2AgAgDiAEKAIAIAMoAgAgAigCAHFBA3RqQQRqNgIAIBcgAygCAEEJajYCACAGQQA2AgAgACAZKAIAIBooAgBBAnRqKAIANgIAIBkoAgAgGigCAEECdGogAygCADYCAAJAAkACQANAAkAgEiASKAIAIgVBf2o2AgAgBUUNACAAKAIAIBsoAgBNDQAgDyAEKAIAIAAoAgAgAigCAHFBA3RqNgIAIBUoAgAhBSAWKAIAIQsgASAVKAIAIBYoAgBJBH8gBQUgCws2AgACQAJAIB4oAgBFDQAgACgCACABKAIAaiAKKAIATw0AIAggHSgCACAAKAIAajYCACAMKAIAIAEoAgBqIAgoAgAgASgCAGogECgCACAhKAIAICIoAgAQvQIhBSABIAEoAgAgBWo2AgAgACgCACABKAIAaiAKKAIATwRAIAggESgCACAAKAIAajYCAAsMAQsgCCARKAIAIAAoAgBqNgIAIAwoAgAgASgCAGogCCgCACABKAIAaiAQKAIAELwCIQUgASABKAIAIAVqNgIACyABKAIAIAYoAgBLBEAgASgCACAXKAIAIAAoAgBrSwRAIBcgACgCACABKAIAajYCAAsgASgCACAGKAIAa0ECdCADKAIAIAAoAgBrQQFqENQBIBgoAgAoAgBBAWoQ1AFrSgRAIAYgASgCADYCACAYKAIAIAMoAgBBAmogACgCAGs2AgALIAwoAgAgASgCAGogECgCAEYNAQsgACgCACEFIAgoAgAg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ACEAIAUkBSAADwsgAigCAEUEQCAIKAIAQajqvmkQigIgAUEENgIACyAPLAAAIQIgBCgCACEHIAEgASgCACIIQQFqNgIAIAcgCGogAjoAACAKKAIARQRAIA4sAAAhAiAEKAIAIQcgASABKAIAIghBAWo2AgAgByAIaiACOgAACwJAAkACQAJAIAsoAgBBAWsOAwECAAMLIAQoAgAgASgCAGogCSgCABCKAiABIAEoAgBBBGo2AgAMAgsgBCgCACABKAIAaiAJKAIAOgAAIAEgASgCAEEBajYCAAwBCyAEKAIAIAEoAgBqIAkoAgBB//8DcRCaAiABIAEoAgBBAmo2AgALAkACQAJAAkACQCAMKAIAQQFrDgMBAgADCyAEKAIAIAEoAgBqIAApAwAQiwIgASABKAIAQQhqNgIADAMLIAQoAgAgASgCAGogACkDAEKAAn2nQf//A3EQmgIgASABKAIAQQJqNgIADAILIAQoAgAgASgCAGogACkDAKcQigIgASABKAIAQQRqNgIADAELIAooAgAEQCAAKQMAp0H/AXEhACAEKAIAIQIgASABKAIAIgRBAWo2AgAgAiAEaiAAOgAACwsgBiABKAIANgIAIAYoAgAhACAFJAUgAAuQCAEPfyMFIQYjBUHwAGokBSAGQcgAaiIHIAA2AgAgBkHEAGoiCiABNgIAIAZBQGsiDSACNgIAIAZBPGoiASADNgIAIAZBOGoiACAENgIAIAZBNGoiECAFNgIAIAZBMGoiAiAHKAIAKALoATYCACAGQSxqIgsgACgCADYCACAGQShqIgggASgCADYCACAGQSRqIg8gCigCADYCACAGQSBqIgQgDygCADYCACAGQRxqIhFBASAHKAIAKAJ4dDYCACAHKAIAKAKYAUEARyAAKAIAQQBHcQRAIAcoAgBBiAJqIAEoAgAgACgCABDrARoLIAZB0ABqIQogBkHMAGohBSAGQRhqIQEgBkEUaiESIAZBEGohEyAGQQxqIQ4gBkEIaiEDIAZBBGohFCAGIQACQAJAAkACQANAIAsoAgBFDQQgASAHKAIAQeADajYCACASIBAoAgAgAigCACALKAIAT3E2AgAgDSgCAEEGSQ0BIAsoAgAgAigCAEkEQCACIAsoAgA2AgALIAgoAgAgAigCAGohDCAKIAEoAgAiCSkCADcCACAKIAkpAgg3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KAIAIgYpAgA3AgAgAiAGKQIINwIIIAIgBikCEDcCECAhIAcgCiACEKkDNgIAICJBADYCACAoIAApAwAgDSgCABCqAzYCACADICEoAgA2AgADQCADKAIAICEoAgAgLygCAEEDdGpJBEACQCADKAIAKAIEICgoAgBGBEAgAygCACgCACAmKAIASwRAIBQoAgAEQCAlKAIAIQYgDygCACEHICkgAygCACgCACAOKAIASQR/IAYFIAcLNgIAICMgKSgCACADKAIAKAIAajYCACAnKAIAIQYgECgCACEHICogAygCACgCACAOKAIASQR/IAYFIAcLNgIAIDIoAgAhBiAZKAIAIQcgKyADKAIAKAIAIA4oAgBJBH8gBgUgBws2AgAgCyABKAIAICMoAgAgECgCACAqKAIAIBkoAgAQvQI2AgAgCygCACAMKAIASQ0DIBYgASgCACARKAIAICMoAgAgKygCABCrAzYCACAcIAsoAgAgFigCAGo2AgAFICQgDygCACADKAIAKAIAajYCACALIAEoAgAgJCgCACAQKAIAELwCNgIAIAsoAgAgDCgCAEkNAyAWIAEoAgAgESgCACAkKAIAIBkoAgAQqwM2AgAgHCALKAIAIBYoAgBqNgIACyAcKAIAICIoAgBLBEAgIiAcKAIANgIAICAgCygCADYCACAaIBYoAgA2AgAgGyADKAIANgIACwsLCyADIAMoAgBBCGo2AgAMAQsLIBsoAgBFBEAgCCgCACEHIAApAwAhNSANKAIAIQogHygCACEXIAIgCSgCACIGKQIANwIAIAIgBikCCDcCCCACIAYpAhA3AhAgByA1IAogFyACEKwDIAEgASgCAEEBajYCAAwBCyASICAoAgAgGigCAGo2AgAgASABKAIAIBooAgBrNgIAICwgGygCACgCADYCACAtIB8oAgAgLCgCAGs2AgAgHSATKAIAKAIAIBMoAgAoAghBDGxqNgIAIBMoAgAoAgggEygCACgCDEYNASAdKAIAIAEoAgAgESgCAGs2AgQgHSgCACASKAIANgIIIB0oAgAgLSgCADYCACATKAIAQQhqIgYgBigCAEEBajYCACAIKAIAIQcgACkDACE1IA0oAgAhCiAEKAIAIA8oAgBrIRcgAiAJKAIAIgYpAgA3AgAgAiAGKQIINwIIIAIgBikCEDcCECAHIDUgCiAXIAIQrAMgASgCACASKAIAaiAeKAIATQRAIAgoAgAhByAAKQMAITUgBCgCACEKIAEoAgAgEigCAGohFyAPKAIAITMgDSgCACE0IAIgCSgCACIGKQIANwIAIAIgBikCCDcCCCACIAYpAhA3AhAgACAHIDUgCiAXIDMgNCACEK0DNwMAIAQgASgCACASKAIAakF/ajYCAAsgASABKAIAIBIoAgBqNgIAIBEgASgCADYCAAwACwALIBhBun82AgAgGCgCACEAIAUkBSAADwsgGCAQKAIAIBEoAgBrNgIAIBgoAgAhACAFJAUgAAuKAQEDfyMFIQUjBUEgaiQFIAVBCGoiBCAANwMAIAVBEWoiBiABOgAAIAVBEGoiASACOgAAIAUgAzcDACAEIAQpAwAgBi0AAEEKaqwgBSkDAH59NwMAIAQgBCkDAELjyJW9y5vvjU9+NwMAIAQgBCkDACABLQAAQQpqrHw3AwAgBCkDACEAIAUkBSAAC5oBAgN/AX4jBSECIwVBIGokBSACQRBqIgMgADYCACACQQxqIgQgATYCACACIgBCADcDACAAQQhqIgFBADYCAANAIAApAwAhBSABKAIAIAQoAgBJBEAgACAFQuPIlb3Lm++NT343AwAgACAAKQMAIAMoAgAgASgCAGotAABBCmqsfDcDACABIAEoAgBBAWo2AgAMAQsLIAIkBSAFC6ABAQN/IwUhAyMFQSBqJAUgA0EQaiEEIAMgADcDACADQQxqIgUgATYCACADQQhqIgEgAjYCACADKQMAIQBBICAFKAIAayABKAIASQR/IAQgAEEBIAEoAgB0QQFrrYM+AgAgBCgCACEBIAMkBSABBSAEIABBICAFKAIAayABKAIAa62IQQEgASgCAHRBAWutgz4CACAEKAIAIQEgAyQFIAELC00BA38jBSECIwVBEGokBSACIgQgADcDACACQQhqIgMgATYCACADKAIARQRAIAIkBUEADwsgBCkDAEHAACADKAIAa62IpyEBIAIkBSABC0EBAn8jBSEDIwVBEGokBSADQQRqIgQgADYCACADIAE2AgAgBCgCACgCFCADKAIAIAIoAgh0QQN0aiEAIAMkBSAAC0EBAn8jBSECIwVBEGokBSACIAA3AwAgAkEIaiIDIAE2AgAgAikDAEEgIAMoAgBrrYhC/////w+DpyEBIAIkBSAB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CyAANgIAIAlBIGoiDCABNgIAIAlBHGoiASACNgIAIAlBGGoiDSADNgIAIAlBFGoiAiAENgIAIAkiACAGNwMAIAlBEGoiAyAHNgIAIAIoAgAEQCACKAIAKAIIQQBLBEAgCygCAEEMaiIBIAUpAgA3AgAgASAFKQIINwIIIAEgBSkCEDcCECABIAUpAhg3AhggASAFKQIgNwIgIAEgBSkCKDcCKCABIAUpAjA3AjAgASAFKQI4NwI4IAFBQGsgBUFAaykCADcCACABIAUpAkg3AkggASAFKQJQNwJQIAEgBSkCWDcCWCABIAUpAmA3AmAgCygCACEBIAIoAgAhAiAFKAIEIQQgACkDACEGIAMoAgAhACAIIAVBIGoiAykCADcCACAIIAMoAgg2AgggCiABIAIgBCAIIAYgABC2AzYCACAKKAIAIQAgCSQFIAAPCwsgCygCACECIAApAwAhBiADKAIAIQMgCCAFKQIANwIAIAggBSkCCDcCCCAIIAUpAhA3AhAgCCAFKQIYNwIYIAggBSkCIDcCICAIIAUpAig3AiggCCAFKQIwNwIwIAggBSkCODcCOCAIQUBrIAVBQGspAgA3AgAgCCAFKQJINwJIIAggBSkCUDcCUCAIIAUpAlg3AlggCCAFKQJgNwJgIAlBDGoiACACIAggBkEAIAMQzwI2AgAgACgCABDNAQRAIAogACgCADYCACAKKAIAIQAgCSQFIAAPCyAJQQhqIgAgCygCACgC2AMgCygCAEHgA2ogBSAMKAIAIAEoAgAgDSgCACALKAIAKALMBBCxAjYCACAAKAIAEMwBQQBHIQEgACgCACEAIAEEfyAKIAA2AgAgCigCACEAIAkkBSAABSALKAIAIAA2AtwBIApBADYCACAKKAIAIQAgCSQFIAALC80GAQV/IwUhBiMFQYACaiQFIAZBlAFqIgcgADYCACAGQZABaiIIIAE2AgAgBkGMAWoiCSACNgIAIAYiACAENwMAIABBiAFqIgogBTYCACAAQSBqIgEgBygCAEEMaiICKQIANwIAIAEgAikCCDcCCCABIAIpAhA3AhAgASACKQIYNwIYIAEgAikCIDcCICABIAIpAig3AiggASACKQIwNwIwIAEgAikCODcCOCABQUBrIAJBQGspAgA3AgAgASACKQJINwJIIAEgAikCUDcCUCABIAIpAlg3AlggASACKQJgNwJgIAFBBGoiAiAIKAIAQfAkaiIFKQIANwIAIAIgBSkCCDcCCCACIAUpAhA3AhAgAiAFKAIYNgIYIAkoAgAEQCABIAkoAgA2AgQLIAFBIGoiAiADKQIANwIAIAIgAygCCDYCCCAHKAIAIQIgACkDACEEIAooAgAhAyAGQZgBaiIAIAEpAgA3AgAgACABKQIINwIIIAAgASkCEDcCECAAIAEpAhg3AhggACABKQIgNwIgIAAgASkCKDcCKCAAIAEpAjA3AjAgACABKQI4NwI4IABBQGsgAUFAaykCADcCACAAIAEpAkg3AkggACABKQJQNwJQIAAgASkCWDcCWCAAIAEpAmA3AmAgAiAAIARBASADEM8CGiAGQRxqIgEgCCgCAEGIJWooAgBBAUYEf0EABUEBIAgoAgBB9CRqKAIAdAsiADYCACAGQRhqIgBBASAIKAIAQfgkaigCAHQ2AgAgBkEUaiICIAEoAgAgACgCAGpBAnQ2AgAgBygCACgChAQgCCgCACgCOCACKAIAEPQHGiAGQRBqIgBBASAHKAIAKAKABHQ2AgAgBygCACgCiARBACAAKAIAQQJ0EPYHGiAGQQxqIgAgCCgCAEEUajYCACAGQQhqIgEgBygCAEHgA2o2AgAgASgCACICIAAoAgAiAykCADcCACACIAMpAgg3AgggAiADKAIQNgIQIAEoAgAgACgCACgCGDYCGCABKAIAIAAoAgAoAhw2AhwgASgCACAAKAIAKAIUNgIUIAcoAgAgCCgCAEGYJWooAgA2AtwBIAcoAgAoAtgDIAgoAgBBgAFqQfAjEPQHGiAGJAVBAAv2AgECfyMFIQMjBUHwAGokBSADIAEpAgA3AgAgAyABKQIINwIIIAMgASkCEDcCECADIAEpAhg3AhggAyABKQIgNwIgIAMgASkCKDcCKCADIAEpAjA3AjAgAyABKQI4NwI4IANBQGsgAUFAaykCADcCACADIAEpAkg3AkggAyABKQJQNwJQIAMgASkCWDcCWCADIAEpAmA3AmAgA0EEaiIBIAIpAgA3AgAgASACKQIINwIIIAEgAikCEDcCECABIAIoAhg2AhggA0EgaiIEIAJBHGoiASkCADcCACAEIAEoAgg2AgggA0EDNgIsIAAgAykCADcCACAAIAMpAgg3AgggACADKQIQNwIQIAAgAykCGDcCGCAAIAMpAiA3AiAgACADKQIoNwIoIAAgAykCMDcCMCAAIAMpAjg3AjggAEFAayADQUBrKQIANwIAIAAgAykCSDcCSCAAIAMpAlA3AlAgACADKQJYNwJYIAAgAykCYDcCYCADJAUL1wEBAn8jBSEEIwVB4ABqJAUgBEHUAGoiBSABNgIAIAQgAjcDACAEQdAAaiIBIAM2AgAgBEEIaiIDIAUoAgAgBCkDACABKAIAEKgCIARBKGoiAUIANwIAIAFCADcCCCABQgA3AhAgAUIANwIYIAFCADcCICABIAMpAgA3AgAgASADKQIINwIIIAEgAykCEDcCECABIAMoAhg2AhggAUEBNgIcIAAgASkCADcCACAAIAEpAgg3AgggACABKQIQNwIQIAAgASkCGDcCGCAAIAEpAiA3AiAgBCQFC78CAQV/IwUhBSMFQSBqJAUgBUEcaiEGIAVBGGoiByAANgIAIAVBFGoiCCABNgIAIAVBEGoiCSACNgIAIAVBDGoiASADNgIAIAVBCGoiAiAENgIAIAUiACAHKAIAIAgoAgAgCSgCACABKAIAIAIoAgBBAUEBEI8DNgIAIAUoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgBUEEaiIBIAcoAgAgCCgCACAAKAIAaiAJKAIAIAAoAgBrELoDNgIAIAEoAgAQzAEEQCAGIAEoAgA2AgAgBigCACEAIAUkBSAADwsgBygCACgClAEEQCAHKAIAKQPwASAHKAIAKQP4AUIBfFIEQCAGQbh/NgIAIAYoAgAhACAFJAUgAA8LCyAGIAAoAgAgASgCAGo2AgAgBigCACEAIAUkBSAAC5UFAQp/IwUhAyMFQZABaiQFIANBIGohBCADQRxqIgYgADYCACADQRhqIgggATYCACADQRRqIgcgAjYCACADQRBqIgogCCgCADYCACADQQxqIgUgCigCADYCACADQQhqIglBADYCACAGKAIAKAIARQRAIARBRDYCACAEKAIAIQAgAyQFIAAPCyADQShqIQEgA0EEaiELIAMhAAJAIAYoAgAoAgBBAUYEQCAIKAIAIQggBygCACEMIAEgBigCAEH0AGoiAikCADcCACABIAIpAgg3AgggASACKQIQNwIQIAEgAikCGDcCGCABIAIpAiA3AiAgASACKQIoNwIoIAEgAikCMDcCMCABIAIpAjg3AjggAUFAayACQUBrKQIANwIAIAEgAikCSDcCSCABIAIpAlA3AlAgASACKQJYNwJYIAEgAikCYDcCYCAJIAggDCABQgBBABCQAzYCACAJKAIAEMwBQQBHIQIgCSgCACEBIAJFBEAgByAHKAIAIAFrNgIAIAUgBSgCACAJKAIAajYCACAGKAIAQQI2AgAMAgsgBCABNgIAIAQoAgAhACADJAUgAA8LCwJAIAYoAgAoAgBBA0cEQCALQQE2AgAgBygCAEEETwRAIAUoAgBBARCKAiAFIAUoAgBBA2o2AgAgByAHKAIAQQNrNgIADAILIARBun82AgAgBCgCACEAIAMkBSAADwsLAkAgBigCACgCmAEEQCAAIAYoAgBBiAJqEOwBPgIAIAcoAgBBBE8EQCAFKAIAIAAoAgAQigIgBSAFKAIAQQRqNgIADAILIARBun82AgAgBCgCACEAIAMkBSAADwsLIAYoAgBBADYCACAEIAUoAgAgCigCAGs2AgAgBCgCACEAIAMkBSAAC4IDAgZ/AX4jBSEIIwVBkAFqJAUgCEEgaiEJIAhBHGoiCiAANgIAIAhBGGoiCyABNgIAIAhBFGoiDCACNgIAIAhBEGoiDSADNgIAIAhBDGoiAiAENgIAIAhBCGoiACAFNgIAIAhBBGoiASAGNgIAIAooAgAhAyAAKAIAIQQgASgCACEFIAIoAgCtIQ4gCEEoaiIBIAcpAgA3AgAgASAHKQIINwIIIAEgBykCEDcCECABIAcpAhg3AhggASAHKQIgNwIgIAEgBykCKDcCKCABIAcpAjA3AjAgASAHKQI4NwI4IAFBQGsgB0FAaykCADcCACABIAcpAkg3AkggASAHKQJQNwJQIAEgBykCWDcCWCABIAcpAmA3AmAgCCIAIAMgBCAFQQBBACABIA5BABC1AzYCACAIKAIAEM0BBH8gCSAAKAIANgIAIAkoAgAhACAIJAUgAAUgCSAKKAIAIAsoAgAgDCgCACANKAIAIAIoAgAQuQM2AgAgCSgCACEAIAgkBSAACwvzBAEKfyMFIQsjBUGQA2okBSALQaACaiEJIAtBsAFqIQogCyIIQZgCaiINIAA2AgAgCEGoAWoiECABNgIAIAhBpAFqIhEgAjYCACAIQaABaiICIAM2AgAgCEGcAWoiDCAENgIAIAhBmAFqIg4gBTYCACAIQZQBaiIPIAY2AgAgCEGQAWoiAyAHNgIAIAwoAgAhASAPKAIAIQAgCEHoAGoiBCADKAIAIAwoAgAEfyABBUEBC60gDigCAAR/IAAFQQALELgDIAogDSgCAEEMaiIAKQIANwIAIAogACkCCDcCCCAKIAApAhA3AhAgCiAAKQIYNwIYIAogACkCIDcCICAKIAApAig3AiggCiAAKQIwNwIwIAogACkCODcCOCAKQUBrIABBQGspAgA3AgAgCiAAKQJINwJIIAogACkCUDcCUCAKIAApAlg3AlggCiAAKQJgNwJgIAkgBCkCADcCACAJIAQpAgg3AgggCSAEKQIQNwIQIAkgBCkCGDcCGCAJIAQpAiA3AiAgCCAKIAkQtwMgCEHoByADKAIAQQBOEKsCGiANKAIAIQYgECgCACEFIBEoAgAhBCACKAIAIQMgDCgCACECIA4oAgAhASAPKAIAIQAgCSAIKQIANwIAIAkgCCkCCDcCCCAJIAgpAhA3AhAgCSAIKQIYNwIYIAkgCCkCIDcCICAJIAgpAig3AiggCSAIKQIwNwIwIAkgCCkCODcCOCAJQUBrIAhBQGspAgA3AgAgCSAIKQJINwJIIAkgCCkCUDcCUCAJIAgpAlg3AlggCSAIKQJgNwJgIAYgBSAEIAMgAiABIAAgCRC7AyEAIAskBSAAC38BAn8jBSEGIwVBIGokBSAGQRRqIgcgADYCACAGQRBqIgAgATYCACAGQQxqIgEgAjYCACAGQQhqIgIgAzYCACAGQQRqIgMgBDYCACAGIAU2AgAgBygCACAAKAIAIAEoAgAgAigCACADKAIAQQBBACAGKAIAELwDIQAgBiQFIAAL3QEBAn8jBSEFIwVBwAVqJAUgBUGkBWoiBiAANgIAIAVBoAVqIgAgATYCACAFQZwFaiIBIAI2AgAgBUGYBWoiAiADNgIAIAVBlAVqIgMgBDYCACAFQQBBkAUQ9gcaIAVB4AJqIgRB6LABKQIANwIAIARB8LABKAIANgIIIAVBkAVqIgQgBSAGKAIAIAAoAgAgASgCACACKAIAIAMoAgAQvQM2AgAgBSgC4AEhASAFQagFaiIAQeiwASkCADcCACAAQfCwASgCADYCCCABIAAQ7wEgBCgCACEAIAUkBSAAC7UBAQJ/IwUhAyMFQdAAaiQFIANBJGoiBCAANgIAIANBIGoiACABNgIAIANBHGoiASACNgIAIAMgASgCAEIAIAAoAgAQqAIgBCgCACECIAAoAgAhBCADQShqIgAgAykCADcCACAAIAMpAgg3AgggACADKQIQNwIQIAAgAygCGDYCGCADQcQAaiIBQeiwASkCADcCACABQfCwASgCADYCCCACIARBAEEAIAAgARCsAiEAIAMkBSAAC0sBAX8jBSECIwVBEGokBSACIAE2AgAgACACKAIAQfAkaiIBKQIANwIAIAAgASkCCDcCCCAAIAEpAhA3AhAgACABKAIYNgIYIAIkBQuNBQEIfyMFIQUjBUGQAmokBSAFQaABaiEHIAVBnAFqIgsgADYCACAFQZgBaiIIIAE2AgAgBSIAIAM3AwAgCCgCAEUEQCAHQWA2AgAgBygCACEAIAUkBSAADwsgBUEMaiEGIAVBCGohCSAFQTBqIgEgCygCAEEMaiIEKQIANwIAIAEgBCkCCDcCCCABIAQpAhA3AhAgASAEKQIYNwIYIAEgBCkCIDcCICABIAQpAig3AiggASAEKQIwNwIwIAEgBCkCODcCOCABQUBrIARBQGspAgA3AgAgASAEKQJINwJIIAEgBCkCUDcCUCABIAQpAlg3AlggASAEKQJgNwJgIAVBEGoiBCAIKAIAEMADIAFBBGoiCiAEKQIANwIAIAogBCkCCDcCCCAKIAQpAhA3AhAgCiAEKAIYNgIYIAApAwBCf1IEQCAAKQMAIQMgBiAAKQMAQoCAIFQEfiADBUKAgCALPgIAIAkgBigCAEEBSwR/IAYoAgBBAWsQ1AFBAWoFQQELIgQ2AgAgASgCBCEEIAkoAgAhBiABIAEoAgQgCSgCAEsEfyAEBSAGCzYCBAsgAUEgaiIEIAIpAgA3AgAgBCACKAIINgIIIAsoAgAhAiAIKAIAIQQgACkDACEDIAVBqAFqIgAgASkCADcCACAAIAEpAgg3AgggACABKQIQNwIQIAAgASkCGDcCGCAAIAEpAiA3AiAgACABKQIoNwIoIAAgASkCMDcCMCAAIAEpAjg3AjggAEFAayABQUBrKQIANwIAIAAgASkCSDcCSCAAIAEpAlA3AlAgACABKQJYNwJYIAAgASkCYDcCYCAHIAJBAEEAQQAgBCAAIANBABC1AzYCACAHKAIAIQAgBSQFIAAL8gECBn8BfiMFIQcjBUEwaiQFIAdBHGohCCAHQRhqIgkgADYCACAHQRRqIgogATYCACAHQRBqIgsgAjYCACAHQQxqIgwgAzYCACAHQQhqIgEgBDYCACAHQQRqIgAgBTYCACAJKAIAIQMgACgCACEEIAEoAgCtIQ0gB0EgaiICIAYpAgA3AgAgAiAGKAIINgIIIAciACADIAQgAiANEMEDNgIAIAcoAgAQzQEEfyAIIAAoAgA2AgAgCCgCACEAIAckBSAABSAIIAkoAgAgCigCACALKAIAIAwoAgAgASgCABC5AzYCACAIKAIAIQAgByQFIAALC7IBAQJ/IwUhBiMFQTBqJAUgBkEUaiIHIAA2AgAgBkEQaiIAIAE2AgAgBkEMaiIBIAI2AgAgBkEIaiICIAM2AgAgBkEEaiIDIAQ2AgAgBiAFNgIAIAcoAgAhBCAAKAIAIQUgASgCACEBIAIoAgAhAiADKAIAIQMgBigCACEHIAZBGGoiAEGE5QApAgA3AgAgAEGM5QAoAgA2AgggBCAFIAEgAiADIAcgABDCAyEAIAYkBSAACzQBAn8jBSEAIwVBEGokBSAAQeiwASkCADcCACAAQfCwASgCADYCCCAAEMUDIQEgACQFIAELMAEBfyMFIQEjBUEQaiQFIAEgACkCADcCACABIAAoAgg2AgggARCkAiEAIAEkBSAACyYBAX8jBSEBIwVBEGokBSABIAA2AgAgASgCABCmAiEAIAEkBSAAC8wDAQZ/IwUhByMFQZABaiQFIAdBIGohCSAHQRxqIgggADYCACAHQRhqIgogATYCACAHQRRqIgEgAjYCACAHQRBqIgIgAzYCACAHQQxqIgMgBDYCACAHIgAgBjcDACAIKAIAIQQgCigCACEKIAEoAgAhCyACKAIAIQwgAygCACEDIAcpAwAhBiAHQShqIgEgBSkCADcCACABIAUpAgg3AgggASAFKQIQNwIQIAEgBSkCGDcCGCABIAUpAiA3AiAgASAFKQIoNwIoIAEgBSkCMDcCMCABIAUpAjg3AjggAUFAayAFQUBrKQIANwIAIAEgBSkCSDcCSCABIAUpAlA3AlAgASAFKQJYNwJYIAEgBSkCYDcCYCAHQQhqIgIgBCAKIAsgDCADIAEgBkEBELUDNgIAIAIoAgAQzQEEfyAJIAIoAgA2AgAgCSgCACEAIAckBSAABSAIKAIAQQA2AtgEIAgoAgBBADYC3AQgCCgCACAIKAIAKALoASAIKAIAKALoAa0gACkDAFFqNgLgBCAIKAIAQQA2AvAEIAgoAgBBADYC7AQgCCgCAEEBNgL0BCAIKAIAQQA2AvgEIAlBADYCACAJKAIAIQAgByQFIAALC/0EAQd/IwUhByMFQcABaiQFIAdB2ABqIQYgB0E0aiELIAdB0ABqIQkgB0EIaiEMIAdBMGoiCCAANgIAIAdBLGoiCiABNgIAIAdBKGoiASACNgIAIAdBJGoiAiADNgIAIAciACAFNwMAIAooAgBBAEcgASgCAEEIT3EEQCAIKAIAKALsAgRAIAlBQDYCACAJKAIAIQAgByQFIAAPCyAIKAIAKAL8BBCnAhogCigCACECIAEoAgAhASAIKAIAQeACaiEDIAsgBEEEaiIKKQIANwIAIAsgCikCCDcCCCALIAopAhA3AhAgCyAKKAIYNgIYIAYgAykCADcCACAGIAMoAgg2AgggAiABQQBBACALIAYQrAIhASAIKAIAIAE2AvwEIAgoAgAgCCgCACgC/AQ2AoAFIAgoAgAoAvwERQRAIAlBQDYCACAJKAIAIQAgByQFIAAPCwUgAigCAARAIAwgAigCABDAAyAEQQRqIgEgDCkCADcCACABIAwpAgg3AgggASAMKQIQNwIQIAEgDCgCGDYCGAsgCCgCACgC/AQQpwIaIAgoAgBBADYC/AQgCCgCACACKAIANgKABQsgCCgCACECIAgoAgAoAoAFIQEgACkDACEFIAYgBCkCADcCACAGIAQpAgg3AgggBiAEKQIQNwIQIAYgBCkCGDcCGCAGIAQpAiA3AiAgBiAEKQIoNwIoIAYgBCkCMDcCMCAGIAQpAjg3AjggBkFAayAEQUBrKQIANwIAIAYgBCkCSDcCSCAGIAQpAlA3AlAgBiAEKQJYNwJYIAYgBCkCYDcCYCAJIAJBAEEAQQAgASAGIAUQxwM2AgAgCSgCACEAIAckBSAAC4wEAQd/IwUhBiMFQZACaiQFIAZBoAFqIQUgBkGYAWohCCAGQShqIQQgBkEIaiEHIAZBlAFqIgogADYCACAGQZABaiIJIAE2AgAgBiIAIAM3AwAgCSgCAAR/IAQgCigCAEEMaiIBKQIANwIAIAQgASkCCDcCCCAEIAEpAhA3AhAgBCABKQIYNwIYIAQgASkCIDcCICAEIAEpAig3AiggBCABKQIwNwIwIAQgASkCODcCOCAEQUBrIAFBQGspAgA3AgAgBCABKQJINwJIIAQgASkCUDcCUCAEIAEpAlg3AlggBCABKQJgNwJgIAcgCSgCABDAAyAEQQRqIgEgBykCADcCACABIAcpAgg3AgggASAHKQIQNwIQIAEgBygCGDYCGCAEQSBqIgEgAikCADcCACABIAIoAgg2AgggCigCACEBIAkoAgAhAiAAKQMAIQMgBSAEKQIANwIAIAUgBCkCCDcCCCAFIAQpAhA3AhAgBSAEKQIYNwIYIAUgBCkCIDcCICAFIAQpAig3AiggBSAEKQIwNwIwIAUgBCkCODcCOCAFQUBrIARBQGspAgA3AgAgBSAEKQJINwJIIAUgBCkCUDcCUCAFIAQpAlg3AlggBSAEKQJgNwJgIAggAUEAQQAgAiAFIAMQyAM2AgAgCCgCACEAIAYkBSAABSAIQWA2AgAgCCgCACEAIAYkBSAACwtgAQJ/IwUhAiMFQSBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAhASACKAIAIQMgAkEIaiIAQfSwASkCADcCACAAQfywASgCADYCCCABIAMgAEJ/EMkDIQAgAiQFIAAL/AMBB38jBSEGIwVBgANqJAUgBkGYAmohAyAGQagBaiEEIAZB+ABqIQcgBkEQaiEFIAZBkAJqIgggADYCACAGQaABaiIJIAE2AgAgBkEIaiIBIAI3AwAgASkDACECIAYiACABKQMAQgBRBH5CfwUgAgs3AwAgByAJKAIAIAApAwBBABC4AyAEIAgoAgBBDGoiASkCADcCACAEIAEpAgg3AgggBCABKQIQNwIQIAQgASkCGDcCGCAEIAEpAiA3AiAgBCABKQIoNwIoIAQgASkCMDcCMCAEIAEpAjg3AjggBEFAayABQUBrKQIANwIAIAQgASkCSDcCSCAEIAEpAlA3AlAgBCABKQJYNwJYIAQgASkCYDcCYCADIAcpAgA3AgAgAyAHKQIINwIIIAMgBykCEDcCECADIAcpAhg3AhggAyAHKQIgNwIgIAUgBCADELcDIAgoAgAhASAAKQMAIQIgAyAFKQIANwIAIAMgBSkCCDcCCCADIAUpAhA3AhAgAyAFKQIYNwIYIAMgBSkCIDcCICADIAUpAig3AiggAyAFKQIwNwIwIAMgBSkCODcCOCADQUBrIAVBQGspAgA3AgAgAyAFKQJINwJIIAMgBSkCUDcCUCADIAUpAlg3AlggAyAFKQJgNwJgIAFBAEEAQQAgAyACEMgDIQAgBiQFIAALOQECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIAIoAgBCfxDLAyEAIAIkBSAAC50MARl/IwUhBSMFQeAAaiQFIAVB2ABqIQcgBUEoaiEIIAVBJGohGCAFQSBqIRIgBUEcaiEJIAVBGGohCiAFQRRqIRMgBUEQaiELIAVBDGohFCAFQQhqIRUgBUEEaiEMIAUhDSAFQdQAaiIEIAA2AgAgBUHQAGoiDiABNgIAIAVBzABqIg8gAjYCACAFQcgAaiIQIAM2AgAgBUHEAGoiFiAPKAIAKAIANgIAIAVBQGsiAyAWKAIAIA8oAgAoAgRqNgIAIAVBPGoiASAWKAIAIA8oAgAoAghqNgIAIAVBOGoiFyAOKAIAKAIANgIAIAVBNGoiESAXKAIAIA4oAgAoAgRqNgIAIAVBMGoiACAXKAIAIA4oAgAoAghqNgIAIAVBLGoiAkEBNgIAAkACQAJAAkADQCACKAIARQ0EAkACQAJAAkACQAJAIAQoAgAoAvQEDgMAAQIDCwwGCyAQKAIAQQJGBEAgESgCACAAKAIAayADKAIAIAEoAgBrEKICTwRAIAQoAgAoAtwERQRAIAggBCgCACAAKAIAIBEoAgAgACgCAGsgASgCACADKAIAIAEoAgBrELkDNgIAIAgoAgAQzAENCSABIAMoAgA2AgAgACAAKAIAIAgoAgBqNgIAIAQoAgBBATYC+AQgBCgCABDMAiACQQA2AgAMBgsLCyAYIAQoAgAoAuAEIAQoAgAoAtwEazYCACASIAQoAgAoAtAEIAQoAgAoAtwEaiAYKAIAIAEoAgAgAygCACABKAIAaxDOAzYCACAEKAIAQdwEaiIGIAYoAgAgEigCAGo2AgAgASABKAIAIBIoAgBqNgIAIBAoAgBFBEAgBCgCACgC3AQgBCgCACgC4ARJBEAgAkEANgIADAULCyAQKAIAQQFGBEAgBCgCACgC3AQgBCgCACgC2ARGBEAgAkEANgIADAULCyATIAQoAgAoAtwEIAQoAgAoAtgEazYCACALIBEoAgAgACgCAGs2AgAgFCAQKAIAQQJGBH8gASgCACADKAIARgVBAAsiBkEBcTYCACALKAIAIBMoAgAQogJPBEAgCSAAKAIANgIABSAJIAQoAgAoAuQENgIAIAsgBCgCACgC6AQ2AgALIAQoAgAhBiAJKAIAIRkgCygCACEaIAQoAgAoAtAEIAQoAgAoAtgEaiEbIBMoAgAhHCAKIBQoAgAEfyAGIBkgGiAbIBwQuQMFIAYgGSAaIBsgHBCOAwsiBjYCACAKKAIAEMwBDQcgBCgCACAUKAIANgL4BCAEKAIAIAQoAgAoAtwEIAQoAgAoAugBajYC4AQgBCgCACgC4AQgBCgCACgC1ARLBEAgBCgCAEEANgLcBCAEKAIAIAQoAgAoAugBNgLgBAsgBCgCACAEKAIAKALcBDYC2AQgCigCACEGIAkoAgAgACgCAEcEQCAEKAIAIAY2AuwEIAQoAgBBADYC8AQgBCgCAEECNgL0BAwDCyAAIAAoAgAgBmo2AgAgBCgCACgC+AQEQCACQQA2AgAgBCgCABDMAgsMAwsMAQsMAQsgFSAEKAIAKALsBCAEKAIAKALwBGs2AgAgDCAAKAIAIBEoAgAgACgCAGsgBCgCACgC5AQgBCgCACgC8ARqIBUoAgAQzgM2AgAgACAAKAIAIAwoAgBqNgIAIAQoAgBB8ARqIgYgBigCACAMKAIAajYCACAVKAIAIAwoAgBHBEAgAkEANgIADAELIAQoAgBBADYC8AQgBCgCAEEANgLsBCAEKAIAKAL4BARAIAJBADYCACAEKAIAEMwCBSAEKAIAQQE2AvQECwsMAAsACyAHQUI2AgAgBygCACEAIAUkBSAADwsgByAIKAIANgIAIAcoAgAhACAFJAUgAA8LIAcgCigCADYCACAHKAIAIQAgBSQFIAAPCyAPKAIAIAEoAgAgFigCAGs2AgggDigCACAAKAIAIBcoAgBrNgIIIAQoAgAoAvgEBEAgB0EANgIAIAcoAgAhACAFJAUgAA8LIA0gBCgCACgC4AQgBCgCACgC3ARrNgIAIA0oAgBFBEAgDSAEKAIAKALoATYCAAsgByANKAIANgIAIAcoAgAhACAFJAUgAAueAQEEfyMFIQQjBUEgaiQFIARBEGoiBiAANgIAIARBDGoiBSABNgIAIARBCGoiByACNgIAIARBBGoiASADNgIAIAUoAgAhAiABKAIAIQMgBCIAIAUoAgAgASgCAEkEfyACBSADCzYCACAAKAIARQRAIAAoAgAhACAEJAUgAA8LIAYoAgAgBygCACAAKAIAEPQHGiAAKAIAIQAgBCQFIAALrwEBBH8jBSEDIwVBEGokBSADQQxqIQQgA0EIaiIGIAA2AgAgA0EEaiIFIAE2AgAgAyIAIAI2AgAgBSgCACgCCCAFKAIAKAIESwRAIARBfzYCACAEKAIAIQAgAyQFIAAPCyAAKAIAKAIIIAAoAgAoAgRLBH8gBEF/NgIAIAQoAgAhACADJAUgAAUgBCAGKAIAIAUoAgAgACgCAEEAEM0DNgIAIAQoAgAhACADJAUgAAsLpQIBBH8jBSECIwVBMGokBSACQSRqIQMgAkEgaiIEIAA2AgAgAkEcaiIAIAE2AgAgAkEQaiIBQgA3AgAgAUEANgIIIAAoAgAoAgggACgCACgCBEsEQCADQX82AgAgAygCACEAIAIkBSAADwsgAkEMaiIFIAQoAgAgACgCACABQQIQzQM2AgAgBSgCABDNAQRAIAMgBSgCADYCACADKAIAIQAgAiQFIAAPCyACQQhqIgEgBCgCACgC+AQEf0EABUEDCzYCACACQQRqIgUgBCgCACgC+AQEf0EABSAEKAIAKAKYAUECdAsiADYCACACIAQoAgAoAuwEIAQoAgAoAvAEayABKAIAaiAFKAIAajYCACADIAIoAgA2AgAgAygCACEAIAIkBSAAC80GAQt/IwUhBSMFQeAAaiQFIAVB0ABqIQYgBUHMAGoiByAANgIAIAVByABqIgggATYCACAFQcQAaiIJIAI2AgAgBUFAayICIAM2AgAgBUE8aiIDIAQ2AgAgBUE4aiIKQQA2AgAgBUE0aiIMQQA2AgAgBUEsaiIAIAcoAgBBBGo2AgAgBUEoaiIPIAAoAgA2AgAgBUEcaiIAQQA2AgAgBUEkaiIBIAIoAgAgACgCAEECdGo2AgAgACAAKAIAQRBqNgIAIAVBIGoiDSACKAIAIAAoAgBBAnRqNgIAIAAgACgCAEFAazYCACAAKAIAQQJ0IAMoAgBLBEAgBkFUNgIAIAYoAgAhACAFJAUgAA8LIAVBMGoiCyANKAIAQYACIAEoAgAgDCAKIAgoAgAgCSgCABDSATYCACALKAIAEM0BBEAgBiALKAIANgIAIAYoAgAhACAFJAUgAA8LIAVB2ABqIgQgBygCABDSAyAKKAIAIAQtAABBAWpLBEAgBkFUNgIAIAYoAgAhACAFJAUgAA8LIAVBEGohDiAFQQxqIQIgBUEIaiEDIAVBBGohCCAFIQAgBUHUAGohCSAEQQA6AAEgBCAKKAIAOgACIAcoAgAgBCgAADYAACAFQRRqIgdBADYCACAFQRhqIgRBATYCAANAIAQoAgAgCigCAEEBakkEQCAOIAcoAgA2AgAgByAHKAIAIAEoAgAgBCgCAEECdGooAgAgBCgCAEEBa3RqNgIAIAEoAgAgBCgCAEECdGogDigCADYCACAEIAQoAgBBAWo2AgAMAQsLIAJBADYCAANAIAIoAgAgDCgCAEkEQCADIA0oAgAgAigCAGotAAA2AgAgCEEBIAMoAgB0QQF1NgIAIAkgAigCADoAACAJIAooAgBBAWogAygCAGs6AAEgACABKAIAIAMoAgBBAnRqKAIANgIAA0AgACgCACABKAIAIAMoAgBBAnRqKAIAIAgoAgBqSQRAIA8oAgAgACgCAEEBdGogCS4AADsAACAAIAAoAgBBAWo2AgAMAQsLIAEoAgAgAygCAEECdGoiBCAEKAIAIAgoAgBqNgIAIAIgAigCAEEBajYCAAwBCwsgBiALKAIANgIAIAYoAgAhACAFJAUgAAs2AQF/IwUhAiMFQRBqJAUgAiABNgIAIAJBBGoiASACKAIAKAAANgAAIAAgASgAADYAACACJAULwwEBBX8jBSEGIwVBIGokBSAGQRhqIQcgBkEUaiIIIAA2AgAgBkEQaiIJIAE2AgAgBkEMaiIKIAI2AgAgBkEIaiIBIAM2AgAgBkEEaiIAIAQ2AgAgBiAFNgIAIAgoAgAhBCAJKAIAIQMgCigCACECIAEoAgAhASAAKAIAIQAgBigCAAR/IAcgBCADIAIgASAAENQDNgIAIAcoAgAhACAGJAUgAAUgByAEIAMgAiABIAAQ1AM2AgAgBygCACEAIAYkBSAACwvuCQEafyMFIQUjBUHgAWokBSAFQdQAaiENIAVBEGoiByAANgIAIAVBDGoiACABNgIAIAVBCGoiASACNgIAIAVBBGoiAiADNgIAIAUgBDYCACAAKAIAIQAgASgCACEBIAIoAgAhAiAFKAIAIQMgBUHQAGoiBCAHKAIANgIAIAVBzABqIhUgADYCACAFQcgAaiIHIAE2AgAgBUHEAGoiDiACNgIAIAVBQGsiACADNgIAIAVBPGoiASAEKAIANgIAIAVBOGoiAiABKAIAIBUoAgBqNgIAIAVBNGoiAyAAKAIAQQRqNgIAIAVBMGoiDyADKAIANgIAIAVB0AFqIgMgACgCABDSAyAFQRhqIgYgAy0AAjYCACAFQRRqIgAgBUEcaiIWIAcoAgAgDigCABDXATYCACAAKAIAEM0BBEAgDSAAKAIANgIAIA0oAgAhACAFJAUgAA8LIAVBzAFqIQQgBUHIAWohByAFQcQBaiEXIAVBwAFqIQ4gBUHZAWohGCAFQbwBaiEIIAVBuAFqIQkgBUG0AWohGSAFQbABaiEQIAVB2AFqIRogBUGsAWohCiAFQagBaiELIAVBpAFqIRsgBUGgAWohESAFQdcBaiEcIAVBjAFqIRIgBUGIAWohEyAFQYQBaiEdIAVBgAFqIRQgBUHVAWohHiACKAIAIQIgDygCACEDIAYoAgAhBiAFQewAaiIAIAEoAgA2AgAgBUHoAGoiASAWNgIAIAVB5ABqIg8gAjYCACAFQeAAaiICIAM2AgAgBUHcAGoiAyAGNgIAIAUgACgCADYCWANAIAEoAgAQ2QFFIAAoAgAgDygCAEF9aklxBEAgAigCACEGIAMoAgAhDCASIAEoAgA2AgAgEyAGNgIAIB0gDDYCACAUIBIoAgAgHSgCABDgATYCACAeIBMoAgAgFCgCAEEBdGosAAA6AAAgEigCACATKAIAIBQoAgBBAXRqLQABEN4BIB4sAAAhBiAAIAAoAgAiDEEBajYCACAMIAY6AAAgAigCACEGIAMoAgAhDCAKIAEoAgA2AgAgCyAGNgIAIBsgDDYCACARIAooAgAgGygCABDgATYCACAcIAsoAgAgESgCAEEBdGosAAA6AAAgCigCACALKAIAIBEoAgBBAXRqLQABEN4BIBwsAAAhBiAAIAAoAgAiDEEBajYCACAMIAY6AAAMAQsLAkADQCABKAIAENkBRSAAKAIAIA8oAgBJcUUNASACKAIAIQogAygCACELIAggASgCADYCACAJIAo2AgAgGSALNgIAIBAgCCgCACAZKAIAEOABNgIAIBogCSgCACAQKAIAQQF0aiwAADoAACAIKAIAIAkoAgAgECgCAEEBdGotAAEQ3gEgGiwAACEKIAAgACgCACILQQFqNgIAIAsgCjoAAAwACwALA0AgACgCACAPKAIASQRAIAIoAgAhCCADKAIAIQkgBCABKAIANgIAIAcgCDYCACAXIAk2AgAgDiAEKAIAIBcoAgAQ4AE2AgAgGCAHKAIAIA4oAgBBAXRqLAAAOgAAIAQoAgAgBygCACAOKAIAQQF0ai0AARDeASAYLAAAIQggACAAKAIAIglBAWo2AgAgCSAIOgAADAELCyAWENUDBH8gDSAVKAIANgIAIA0oAgAhACAFJAUgAAUgDUFsNgIAIA0oAgAhACAFJAUgAAsLRgECfyMFIQEjBUEQaiQFIAEiAiAANgIAIAEoAgAoAgggASgCACgCDEcEQCABJAVBAA8LIAIoAgAoAgRBIEYhACABJAUgAAvDAQEFfyMFIQYjBUEgaiQFIAZBGGohByAGQRRqIgggADYCACAGQRBqIgkgATYCACAGQQxqIgogAjYCACAGQQhqIgEgAzYCACAGQQRqIgAgBDYCACAGIAU2AgAgCCgCACEEIAkoAgAhAyAKKAIAIQIgASgCACEBIAAoAgAhACAGKAIABH8gByAEIAMgAiABIAAQ1wM2AgAgBygCACEAIAYkBSAABSAHIAQgAyACIAEgABDXAzYCACAHKAIAIQAgBiQFIAALC4cwAXR/IwUhBSMFQYAIaiQFIAVB6AFqIQogBUEQaiIGIAA2AgAgBUEMaiIAIAE2AgAgBUEIaiIBIAI2AgAgBUEEaiICIAM2AgAgBSAENgIAIAAoAgAhACABKAIAIQEgAigCACEDIAUoAgAhBCAFQeQBaiIJIAYoAgA2AgAgBUHgAWoiOSAANgIAIAVB3AFqIgAgATYCACAFQdgBaiICIAM2AgAgBUHUAWoiDSAENgIAIAIoAgBBCkkEQCAKQWw2AgAgCigCACEAIAUkBSAADwsgBUHQAWoiASAAKAIANgIAIAVBzAFqIgMgCSgCADYCACAFQcgBaiJUIAMoAgAgOSgCAGo2AgAgBUHEAWoiBCANKAIAQQRqNgIAIAVBwAFqIgAgBCgCADYCACAFQewAaiIEIAEoAgAQ2ANB//8DcTYCACAFQegAaiILIAEoAgBBAmoQ2ANB//8DcTYCACAFQeQAaiIMIAEoAgBBBGoQ2ANB//8DcTYCACAFQeAAaiIOIAIoAgAgBCgCACALKAIAaiAMKAIAakEGams2AgAgBUHcAGoiFiABKAIAQQZqNgIAIAVB2ABqIhcgFigCACAEKAIAajYCACAFQdQAaiIYIBcoAgAgCygCAGo2AgAgBUHQAGoiDyAYKAIAIAwoAgBqNgIAIAVBzABqIgEgOSgCAEEDakEEbjYCACAFQcgAaiIGIAMoAgAgASgCAGo2AgAgBUHEAGoiOCAGKAIAIAEoAgBqNgIAIAVBQGsiOiA4KAIAIAEoAgBqNgIAIAVBPGoiCSADKAIANgIAIAVBOGoiJiAGKAIANgIAIAVBNGoiJyA4KAIANgIAIAVBMGoiKCA6KAIANgIAIAVBLGoiKUEANgIAIAVBzAdqIgMgDSgCABDSAyAFQShqIgEgAy0AAjYCACAOKAIAIAIoAgBLBEAgCkFsNgIAIAooAgAhACAFJAUgAA8LIAVBJGoiAiAFQawBaiIqIBYoAgAgBCgCABDXATYCACACKAIAEM0BBEAgCiACKAIANgIAIAooAgAhACAFJAUgAA8LIAVBIGoiAiAFQZgBaiIWIBcoAgAgCygCABDXATYCACACKAIAEM0BBEAgCiACKAIANgIAIAooAgAhACAFJAUgAA8LIAVBHGoiAiAFQYQBaiIXIBgoAgAgDCgCABDXATYCACACKAIAEM0BBEAgCiACKAIANgIAIAooAgAhACAFJAUgAA8LIAVBGGoiAiAFQfAAaiIYIA8oAgAgDigCABDXATYCACACKAIAEM0BBEAgCiACKAIANgIAIAooAgAhACAFJAUgAA8LIAVB6ANqIQIgBUHkA2ohAyAFQeADaiErIAVB3ANqIQQgBUHfB2ohHSAFQdgDaiELIAVB1ANqIQwgBUHQA2ohHiAFQcwDaiENIAVB3gdqIR8gBUHIA2ohDiAFQcQDaiEPIAVBwANqISwgBUG8A2ohGSAFQd0HaiEtIAVBuANqIRogBUG0A2ohGyAFQbADaiEuIAVBrANqIRwgBUHcB2ohLyAFQegCaiEgIAVB5AJqISEgBUHgAmohMCAFQdwCaiEQIAVB1wdqITEgBUHYAmohESAFQdQCaiESIAVB0AJqITIgBUHMAmohIiAFQdYHaiEzIAVByAJqISMgBUHEAmohJCAFQcACaiE0IAVBvAJqIRMgBUHVB2ohNSAFQbgCaiEVIAVBtAJqIRQgBUGwAmohNiAFQawCaiElIAVB1AdqITcgKSAqENkBIBYQ2QFyIBcQ2QFyIBgQ2QFyNgIAA0ACQCApKAIADQAgKCgCACBUKAIAQX1qTw0AIAAoAgAhCCABKAIAIQcgFSAqNgIAIBQgCDYCACA2IAc2AgAgJSAVKAIAIDYoAgAQ4AE2AgAgNyAUKAIAICUoAgBBAXRqLAAAOgAAIBUoAgAgFCgCACAlKAIAQQF0ai0AARDeASA3LAAAIQggCSAJKAIAIgdBAWo2AgAgByAIOgAAIAAoAgAhCCABKAIAIQcgIyAWNgIAICQgCDYCACA0IAc2AgAgEyAjKAIAIDQoAgAQ4AE2AgAgNSAkKAIAIBMoAgBBAXRqLAAAOgAAICMoAgAgJCgCACATKAIAQQF0ai0AARDeASA1LAAAIQggJiAmKAIAIgdBAWo2AgAgByAIOgAAIAAoAgAhCCABKAIAIQcgESAXNgIAIBIgCDYCACAyIAc2AgAgIiARKAIAIDIoAgAQ4AE2AgAgMyASKAIAICIoAgBBAXRqLAAAOgAAIBEoAgAgEigCACAiKAIAQQF0ai0AARDeASAzLAAAIQggJyAnKAIAIgdBAWo2AgAgByAIOgAAIAAoAgAhCCABKAIAIQcgICAYNgIAICEgCDYCACAwIAc2AgAgECAgKAIAIDAoAgAQ4AE2AgAgMSAhKAIAIBAoAgBBAXRqLAAAOgAAICAoAgAgISgCACAQKAIAQQF0ai0AARDeASAxLAAAIQggKCAoKAIAIgdBAWo2AgAgByAIOgAAIAAoAgAhCCABKAIAIQcgGiAqNgIAIBsgCDYCACAuIAc2AgAgHCAaKAIAIC4oAgAQ4AE2AgAgLyAbKAIAIBwoAgBBAXRqLAAAOgAAIBooAgAgGygCACAcKAIAQQF0ai0AARDeASAvLAAAIQggCSAJKAIAIgdBAWo2AgAgByAIOgAAIAAoAgAhCCABKAIAIQcgDiAWNgIAIA8gCDYCACAsIAc2AgAgGSAOKAIAICwoAgAQ4AE2AgAgLSAPKAIAIBkoAgBBAXRqLAAAOgAAIA4oAgAgDygCACAZKAIAQQF0ai0AARDeASAtLAAAIQggJiAmKAIAIgdBAWo2AgAgByAIOgAAIAAoAgAhCCABKAIAIQcgCyAXNgIAIAwgCDYCACAeIAc2AgAgDSALKAIAIB4oAgAQ4AE2AgAgHyAMKAIAIA0oAgBBAXRqLAAAOgAAIAsoAgAgDCgCACANKAIAQQF0ai0AARDeASAfLAAAIQggJyAnKAIAIgdBAWo2AgAgByAIOgAAIAAoAgAhCCABKAIAIQcgAiAYNgIAIAMgCDYCACArIAc2AgAgBCACKAIAICsoAgAQ4AE2AgAgHSADKAIAIAQoAgBBAXRqLAAAOgAAIAIoAgAgAygCACAEKAIAQQF0ai0AARDeASAdLAAAIQggKCAoKAIAIgdBAWo2AgAgByAIOgAAICoQ2QEaIBYQ2QEaIBcQ2QEaIBgQ2QEaDAELCyAJKAIAIAYoAgBLBEAgCkFsNgIAIAooAgAhACAFJAUgAA8LICYoAgAgOCgCAEsEQCAKQWw2AgAgCigCACEAIAUkBSAADwsgJygCACA6KAIASwRAIApBbDYCACAKKAIAIQAgBSQFIAAPCyAFQcgHaiE7IAVBxAdqITwgBUHAB2ohVSAFQbwHaiE9IAVB9wdqIVYgBUG4B2ohPiAFQbQHaiE/IAVBsAdqIVcgBUGsB2ohQCAFQfYHaiFYIAVBqAdqIUEgBUGkB2ohICAFQaAHaiFZIAVBnAdqISEgBUH1B2ohWiAFQYgHaiEiIAVBhAdqISMgBUGAB2ohWyAFQfwGaiEkIAVB8wdqIVwgBUHoBmohAiAFQeQGaiELIAVB4AZqIR0gBUHcBmohDiAFQdgGaiEPIAVB1AZqIXYgBUHQBmohJSAFQcwGaiFCIAVByAZqIV0gBUHEBmohQyAFQfEHaiFeIAVBwAZqIUQgBUG8BmohRSAFQbgGaiFfIAVBtAZqIUYgBUHwB2ohYCAFQbAGaiFHIAVBrAZqIUggBUGoBmohYSAFQaQGaiFJIAVB7wdqIWIgBUGQBmohSiAFQYwGaiEpIAVBiAZqIWMgBUGEBmohKyAFQe0HaiFkIAVB8AVqIQMgBUHsBWohDCAFQegFaiEeIAVB5AVqIRkgBUHgBWohGiAFQdwFaiF3IAVB2AVqISwgBUHUBWohLSAFQdAFaiFlIAVBzAVqIS4gBUHrB2ohZiAFQcgFaiEvIAVBxAVqITMgBUHABWohZyAFQbwFaiE0IAVB6gdqIWggBUG4BWohNSAFQbQFaiFLIAVBsAVqIWkgBUGsBWohTCAFQekHaiFqIAVBmAVqITAgBUGUBWohMSAFQZAFaiFrIAVBjAVqITIgBUHnB2ohbCAFQfgEaiEEIAVB9ARqIQ0gBUHwBGohHyAFQewEaiEbIAVB6ARqIRwgBUHkBGoheCAFQeAEaiE2IAVB3ARqITcgBUHYBGohbSAFQdQEaiFNIAVB5QdqIW4gBUHQBGohECAFQcwEaiERIAVByARqIW8gBUHEBGohTiAFQeQHaiFwIAVBwARqIRIgBUG8BGohEyAFQbgEaiFxIAVBtARqIU8gBUHjB2ohciAFQaAEaiFQIAVBnARqIVEgBUGYBGohcyAFQZQEaiFSIAVB4QdqIXQgBUEUaiF1IAYoAgAhCCAAKAIAIRUgASgCACEHIAVBgARqIgYgCSgCADYCACAFQfwDaiIJICo2AgAgBUH4A2oiUyAINgIAIAVB9ANqIgggFTYCACAFQfADaiIVIAc2AgAgBSAGKAIANgLsAwNAIAkoAgAQ2QFFIAYoAgAgUygCAEF9aklxBEAgCCgCACEHIBUoAgAhFCBQIAkoAgA2AgAgUSAHNgIAIHMgFDYCACBSIFAoAgAgcygCABDgATYCACB0IFEoAgAgUigCAEEBdGosAAA6AAAgUCgCACBRKAIAIFIoAgBBAXRqLQABEN4BIHQsAAAhByAGIAYoAgAiFEEBajYCACAUIAc6AAAgCCgCACEHIBUoAgAhFCASIAkoAgA2AgAgEyAHNgIAIHEgFDYCACBPIBIoAgAgcSgCABDgATYCACByIBMoAgAgTygCAEEBdGosAAA6AAAgEigCACATKAIAIE8oAgBBAXRqLQABEN4BIHIsAAAhByAGIAYoAgAiFEEBajYCACAUIAc6AAAMAQsLAkADQCAJKAIAENkBRSAGKAIAIFMoAgBJcUUNASAIKAIAIRIgFSgCACETIBAgCSgCADYCACARIBI2AgAgbyATNgIAIE4gECgCACBvKAIAEOABNgIAIHAgESgCACBOKAIAQQF0aiwAADoAACAQKAIAIBEoAgAgTigCAEEBdGotAAEQ3gEgcCwAACESIAYgBigCACITQQFqNgIAIBMgEjoAAAwACwALA0AgBigCACBTKAIASQRAIAgoAgAhECAVKAIAIREgNiAJKAIANgIAIDcgEDYCACBtIBE2AgAgTSA2KAIAIG0oAgAQ4AE2AgAgbiA3KAIAIE0oAgBBAXRqLAAAOgAAIDYoAgAgNygCACBNKAIAQQF0ai0AARDeASBuLAAAIRAgBiAGKAIAIhFBAWo2AgAgESAQOgAADAELCyA4KAIAIQYgACgCACEJIAEoAgAhCCAEICYoAgA2AgAgDSAWNgIAIB8gBjYCACAbIAk2AgAgHCAINgIAIHggBCgCADYCAANAIA0oAgAQ2QFFIAQoAgAgHygCAEF9aklxBEAgGygCACEGIBwoAgAhCSAwIA0oAgA2AgAgMSAGNgIAIGsgCTYCACAyIDAoAgAgaygCABDgATYCACBsIDEoAgAgMigCAEEBdGosAAA6AAAgMCgCACAxKAIAIDIoAgBBAXRqLQABEN4BIGwsAAAhBiAEIAQoAgAiCUEBajYCACAJIAY6AAAgGygCACEGIBwoAgAhCSA1IA0oAgA2AgAgSyAGNgIAIGkgCTYCACBMIDUoAgAgaSgCABDgATYCACBqIEsoAgAgTCgCAEEBdGosAAA6AAAgNSgCACBLKAIAIEwoAgBBAXRqLQABEN4BIGosAAAhBiAEIAQoAgAiCUEBajYCACAJIAY6AAAMAQsLAkADQCANKAIAENkBRSAEKAIAIB8oAgBJcUUNASAbKAIAIQYgHCgCACEJIC8gDSgCADYCACAzIAY2AgAgZyAJNgIAIDQgLygCACBnKAIAEOABNgIAIGggMygCACA0KAIAQQF0aiwAADoAACAvKAIAIDMoAgAgNCgCAEEBdGotAAEQ3gEgaCwAACEGIAQgBCgCACIJQQFqNgIAIAkgBjoAAAwACwALA0AgBCgCACAfKAIASQRAIBsoAgAhBiAcKAIAIQkgLCANKAIANgIAIC0gBjYCACBlIAk2AgAgLiAsKAIAIGUoAgAQ4AE2AgAgZiAtKAIAIC4oAgBBAXRqLAAAOgAAICwoAgAgLSgCACAuKAIAQQF0ai0AARDeASBmLAAAIQYgBCAEKAIAIglBAWo2AgAgCSAGOgAADAELCyA6KAIAIQQgACgCACEGIAEoAgAhCSADICcoAgA2AgAgDCAXNgIAIB4gBDYCACAZIAY2AgAgGiAJNgIAIHcgAygCADYCAANAIAwoAgAQ2QFFIAMoAgAgHigCAEF9aklxBEAgGSgCACEEIBooAgAhBiBKIAwoAgA2AgAgKSAENgIAIGMgBjYCACArIEooAgAgYygCABDgATYCACBkICkoAgAgKygCAEEBdGosAAA6AAAgSigCACApKAIAICsoAgBBAXRqLQABEN4BIGQsAAAhBCADIAMoAgAiBkEBajYCACAGIAQ6AAAgGSgCACEEIBooAgAhBiBHIAwoAgA2AgAgSCAENgIAIGEgBjYCACBJIEcoAgAgYSgCABDgATYCACBiIEgoAgAgSSgCAEEBdGosAAA6AAAgRygCACBIKAIAIEkoAgBBAXRqLQABEN4BIGIsAAAhBCADIAMoAgAiBkEBajYCACAGIAQ6AAAMAQsLAkADQCAMKAIAENkBRSADKAIAIB4oAgBJcUUNASAZKAIAIQQgGigCACEGIEQgDCgCADYCACBFIAQ2AgAgXyAGNgIAIEYgRCgCACBfKAIAEOABNgIAIGAgRSgCACBGKAIAQQF0aiwAADoAACBEKAIAIEUoAgAgRigCAEEBdGotAAEQ3gEgYCwAACEEIAMgAygCACIGQQFqNgIAIAYgBDoAAAwACwALA0AgAygCACAeKAIASQRAIBkoAgAhBCAaKAIAIQYgJSAMKAIANgIAIEIgBDYCACBdIAY2AgAgQyAlKAIAIF0oAgAQ4AE2AgAgXiBCKAIAIEMoAgBBAXRqLAAAOgAAICUoAgAgQigCACBDKAIAQQF0ai0AARDeASBeLAAAIQQgAyADKAIAIgZBAWo2AgAgBiAEOgAADAELCyBUKAIAIQMgACgCACEAIAEoAgAhASACICgoAgA2AgAgCyAYNgIAIB0gAzYCACAOIAA2AgAgDyABNgIAIHYgAigCADYCAANAIAsoAgAQ2QFFIAIoAgAgHSgCAEF9aklxBEAgDigCACEAIA8oAgAhASAiIAsoAgA2AgAgIyAANgIAIFsgATYCACAkICIoAgAgWygCABDgATYCACBcICMoAgAgJCgCAEEBdGosAAA6AAAgIigCACAjKAIAICQoAgBBAXRqLQABEN4BIFwsAAAhACACIAIoAgAiAUEBajYCACABIAA6AAAgDigCACEAIA8oAgAhASBBIAsoAgA2AgAgICAANgIAIFkgATYCACAhIEEoAgAgWSgCABDgATYCACBaICAoAgAgISgCAEEBdGosAAA6AAAgQSgCACAgKAIAICEoAgBBAXRqLQABEN4BIFosAAAhACACIAIoAgAiAUEBajYCACABIAA6AAAMAQsLAkADQCALKAIAENkBRSACKAIAIB0oAgBJcUUNASAOKAIAIQAgDygCACEBID4gCygCADYCACA/IAA2AgAgVyABNgIA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BzYCACAlICEoAgAgOigCABDgATYCACA5KAIAIB0oAgAgJSgCAEECdGouAAA7AAAgISgCACAdKAIAICUoAgBBAnRqLQACEN4BIAMgAygCACAdKAIAICUoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDcgBCgCADYCACAcICo2AgAgFCAINgIAIDggBzYCACAXIBwoAgAgOCgCABDgATYCACA3KAIAIBQoAgAgFygCAEECdGouAAA7AAAgHCgCACAUKAIAIBcoAgBBAnRqLQACEN4BIAQgBCgCACAUKAIAIBcoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDUgECgCADYCACAbICs2AgAgICAINgIAIDYgBzYCACAWIBsoAgAgNigCABDgATYCACA1KAIAICAoAgAgFigCAEECdGouAAA7AAAgGygCACAgKAIAIBYoAgBBAnRqLQACEN4BIBAgECgCACAgKAIAIBYoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDMgJCgCADYCACAuICw2AgAgGSAINgIAIDQgBzYCACAaIC4oAgAgNCgCABDgATYCACAzKAIAIBkoAgAgGigCAEECdGouAAA7AAAgLigCACAZKAIAIBooAgBBAnRqLQACEN4BICQgJCgCACAZKAIAIBooAgBBAnRqLQADajYCACABKAIAIQggAigCACEHIDEgAygCADYCACAVICk2AgAgDiAINgIAIDIgBzYCACAPIBUoAgAgMigCABDgATYCACAxKAIAIA4oAgAgDygCAEECdGouAAA7AAAgFSgCACAOKAIAIA8oAgBBAnRqLQACEN4BIAMgAygCACAOKAIAIA8oAgBBAnRqLQADajYCACABKAIAIQggAigCACEHICggBCgCADYCACAeICo2AgAgDSAINgIAIC0gBzYCACALIB4oAgAgLSgCABDgATYCACAoKAIAIA0oAgAgCygCAEECdGouAAA7AAAgHigCACANKAIAIAsoAgBBAnRqLQACEN4BIAQgBCgCACANKAIAIAsoAgBBAnRqLQADajYCACABKAIAIQggAigCACEHICYgECgCADYCACASICs2AgAgDCAINgIAICcgBzYCACAKIBIoAgAgJygCABDgATYCACAmKAIAIAwoAgAgCigCAEECdGouAAA7AAAgEigCACAM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IQAgASQFIAALegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCMBCHBiABKAIAKAI8EIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsLegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCHBCHBiABKAIAKAIoEIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsL1gEBA38jBSECIwVBEGokBSACQQRqIQMgAiIBIAA2AgAgASgCAEUEQCADQQA2AgAgAygCACEAIAIkBSAADwsgASgCACgCABDxAxogASgCACgCJARAIAEoAgAoAmQgASgCACgCJCABKAIAKAJgQR9xQeQCahECAAsgASgCACgCMARAIAEoAgAoAmQgASgCACgCMCABKAIAKAJgQR9xQeQCahECAAsgASgCACgCZCABKAIAIAEoAgAoAmBBH3FB5AJqEQIAIANBADYCACADKAIAIQAgAiQFIAALeQEDfyMFIQEjBUEQaiQFIAFBBGohAiABIgMgADYCACABKAIABH8gAygCAEHEqQFqKAIAIAMoAgAgAygCAEHAqQFqKAIAQR9xQeQCahECACACQQA2AgAgAigCACEAIAEkBSAABSACQQA2AgAgAigCACEAIAEkBSAACwskAQF/IwUhASMFQRBqJAUgASAANgIAIAEoAgAQhwYgASQFQQALegEDfyMFIQIjBUEQaiQFIAJBBGohAyACIgEgADYCACABKAIABH8gASgCACgCABDyAxogASgCACgCKBCHBiABKAIAKAI0EIcGIAEoAgAQhwYgA0EANgIAIAMoAgAhACACJAUgAAUgA0EANgIAIAMoAgAhACACJAUgAAsLrgEBBH8jBSEDIwVBEGokBSADQQxqIQIgAyEEIANBCGoiBSAANgIAIANBBGoiACABNgIAAkAgACgCAEEESQRAIAJBADYCAAUgBCAFKAIAEM8BNgIAAkACQAJAAkACQCAEKAIAQaTqvmlrDgQAAQIDBAsgAkEENgIADAULIAJBBTYCAAwECyACQQY2AgAMAwsgAkEHNgIADAILIAJBADYCAAsLIAIoAgAhACADJAUgAAs5AQJ/IwUhAiMFQRBqJAUgAkEEaiIDIAA2AgAgAiABNgIAIAMoAgAgAigCAEEAEPYDIQAgAiQFIAALpgIBBH8jBSEDIwVBMGokBSADQRxqIQQgA0EYaiIFIAA2AgAgA0EUaiIAIAE2AgAgA0EQaiIGIAI2AgAgA0EMaiIBIAYoAgAQ9wM2AgAgACgCACABKAIASQRAIARBuH82AgAgBCgCACEAIAMkBSAADwsgA0EgaiICIAUoAgAgASgCAEEBa2osAAA6AAAgA0EIaiIGIAItAABBA3E2AgAgA0EEaiIFIAItAABBBXVBAXE2AgAgAyIAIAItAABBBnU2AgAgBCABKAIAIgEgBSgCACICQQBHQQFzaiAGKAIAQQJ0QfAiaigCACIGaiADKAIAQQJ0QYAjaigCAGogBSgCAAR/IAAoAgBBAEdBAXMFQQALIgBBAXFqNgIAIAQoAgAhACADJAUgAAs/AQJ/IwUhASMFQRBqJAUgAUEEaiICIAA2AgAgASIAIAIoAgBBAUYEf0EBBUEFCzYCACAAKAIAIQAgASQFIAALSgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACAEKAIAIAAoAgAgAygCAEEAEPkDIQAgAyQFIAALiwkCDH8BfiMFIQQjBUHQAGokBSAEQcgAaiEFIARBxABqIgcgADYCACAEQUBrIgAgATYCACAEQTxqIgEgAjYCACAEQThqIgYgAzYCACAEQTRqIgIgACgCADYCACAEQTBqIgMgBigCABD3AzYCACABKAIAIAMoAgBJBEAgBSADKAIANgIAIAUoAgAhACAEJAUgAA8LIAYoAgBBAUcEQCAAKAIAEM8BQajqvmlHBEAgACgCABDPAUFwcUHQ1LTCAUcEQCAFQXY2AgAgBSgCACEAIAQkBSAADwsgASgCAEEISQRAIAVBCDYCACAFKAIAIQAgBCQFIAAPBSAHKAIAIgFCADcDACABQgA3AwggAUIANwMQIAFCADcDGCABQgA3AyAgACgCAEEEahDPAa0hECAHKAIAIBA3AwAgBygCAEEBNgIUIAVBADYCACAFKAIAIQAgBCQFIAAPCwALCyAEQSxqIgggACgCACABKAIAIAYoAgAQ9gM2AgAgCCgCACEAIAEoAgAgCCgCAEkEQCAFIAA2AgAgBSgCACEAIAQkBSAADwsgBygCACAANgIYIARBzQBqIgYgAigCACADKAIAQQFraiwAADoAACAEQShqIgEgAygCADYCACAEQSRqIgsgBi0AAEEDcTYCACAEQSBqIgwgBi0AAEECdUEBcTYCACAEQRxqIgkgBi0AAEEFdUEBcTYCACAEQRhqIg0gBi0AAEEGdTYCACAEQQhqIgNCADcDACAEQRRqIghBADYCACAEIgBCfzcDACAGLQAAQQhxBEAgBUFyNgIAIAUoAgAhACAEJAUgAA8LIARBzABqIQYgBEEQaiEKAkAgCSgCAEUEQCACKAIAIQ4gASABKAIAIg9BAWo2AgAgBiAOIA9qLAAAOgAAIAogBi0AAEEDdUEKajYCACAKKAIAQR5NBEAgA0IBIAooAgCthjcDACADIAMpAwAgAykDAEIDiCAGLQAAQQdxrH58NwMADAILIAVBcDYCACAFKAIAIQAgBCQFIAAPCwsCQAJAAkACQCALKAIAQQFrDgMBAgADCyAIIAIoAgAgASgCAGoQzwE2AgAgASABKAIAQQRqNgIADAILIAggAigCACABKAIAai0AADYCACABIAEoAgBBAWo2AgAMAQsgCCACKAIAIAEoAgBqENgDQf//A3E2AgAgASABKAIAQQJqNgIACwJAAkACQAJAAkAgDSgCAEEBaw4DAQIAAwsgACACKAIAIAEoAgBqEOIBNwMADAMLIAAgAigCACABKAIAahDYA0H//wNxQYACaqw3AwAMAgsgACACKAIAIAEoAgBqEM8BrTcDAAwBCyAJKAIABEAgACACKAIAIAEoAgBqLQAArTcDAAsLIAkoAgAEQCADIAApAwA3AwALIAcoAgBBADYCFCAHKAIAIAApAwA3AwAgBygCACADKQMANwMIIAMpAwAhECAHKAIAIAMpAwBCgIAIVAR+IBAFQoCACAs+AhAgBygCACAIKAIANgIcIAcoAgAgDCgCADYCICAFQQA2AgAgBSgCACEAIAQkBSAAC8sBAgZ/AX4jBSECIwVBQGskBSACQTBqIQMgAkEoaiEFIAIhBiACQTxqIgQgADYCACACQThqIgcgATYCACAEKAIAIAcoAgAQ9ANBAEchACAEKAIAIQQgBygCACEBAkAgAARAIAUgBCABEPsDNwMAIAUp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AiQFIAALxQEBA38jBSECIwVBEGokBSACQQxqIQMgAkEIaiIEIAA2AgAgAkEEaiIAIAE2AgAgAiAEKAIAIAAoAgAQ9AM2AgACQAJAAkACQAJAAkAgAigCAEEEaw4EAAECAwQLIAMgBCgCACAAKAIAEIkENgIADAQLIAMgBCgCACAAKAIAEIoENgIADAMLIAMgBCgCACAAKAIAEIsENgIADAILIAMgBCgCACAAKAIAEIwENgIADAELIANBdjYCAAsgAygCACEAIAIkBSAAC4kCAQN/IwUhAyMFQSBqJAUgA0EUaiEEIANBEGoiBSAANgIAIANBDGoiACABNgIAIANBCGoiASACNgIAIAAoAgBBA0kEQCAEQbh/NgIAIAQoAgAhACADJAUgAA8LIANBBGoiAiAFKAIAEIgENgIAIAMiACACKAIAQQN2NgIAIAEoAgAgAigCAEEBcTYCBCABKAIAIAIoAgBBAXZBA3E2AgAgASgCACADKAIANgIIIAEoAgAoAgBBAUYEQCAEQQE2AgAgBCgCACEAIAMkBSAADwsgASgCACgCAEEDRgR/IARBbDYCACAEKAIAIQAgAyQFIAAFIAQgACgCADYCACAEKAIAIQAgAyQFIAALCzcBAX8jBSEBIwVBEGokBSABIAA2AgAgASgCABDYA0H//wNxIAEoAgAtAAJBEHRqIQAgASQFIAALNwECfyMFIQIjBUEQaiQFIAJBBGoiAyAANgIAIAIgATYCACADKAIAIAIoAgAQjwQhACACJAUgAAv/AgEFfyMFIQIjBUEwaiQFIAJBIGohAyACQRxqIgUgADYCACACQRhqIgAgATYCACACQRRqIgEgBSgCADYCACACQRBqIgQgACgCADYCACAAKAIAQQVJBEAgA0G4fzYCACADKAIAIQAgAiQFIAAPCyAFKAIAEM8BQaXqvmlHBEAgA0F2NgIAIAMoAgAhACACJAUgAA8LIAJBCGohBiACIQAgASABKAIAQQVqNgIAIAQgBCgCAEEFazYCAAJAAkACQANAIAAgASgCACAEKAIAIAYQjgQ2AgAgACgCABDMAQ0BIAEgASgCAEEDajYCACAEIAQoAgBBA2s2AgAgACgCACAEKAIASw0CIAAoAgBFDQMgASABKAIAIAAoAgBqNgIAIAQgBCgCACAAKAIAazYCAAwACwALIAMgACgCADYCACADKAIAIQAgAiQFIAAPCyADQbh/NgIAIAMoAgAhACACJAUgAA8LIAMgASgCACAFKAIAazYCACADKAIAIQAgAiQFIAALxwMBBn8jBSECIwVBMGokBSACQSBqIQMgAkEcaiIGIAA2AgAgAkEYaiIAIAE2AgAgAkEUaiIBIAYoAgA2AgAgAkEQaiIEIAAoAgA2AgAgAkEIaiIHQgA3AgAgAkEEaiIFIAYoAgBBBRCEBDYCACAFKAIAEM0BBEAgAyAFKAIANgIAIAMoAgAhACACJAUgAA8LIAYoAgAQ/wNBpuq+aUcEQCADQXY2AgAgAygCACEAIAIkBSAADwsgACgCACAFKAIAQQNqSQRAIANBuH82AgAgAygCACEAIAIkBSAADwsgAiEAIAEgASgCACAFKAIAajYCACAEIAQoAgAgBSgCAGs2AgACQAJAAkADQCAAIAEoAgAgBCgCACAHEI0ENgIAIAAoAgAQzQENASABIAEoAgBBA2o2AgAgBCAEKAIAQQNrNgIAIAAoAgAgBCgCAEsNAiAAKAIARQ0DIAEgASgCACAAKAIAajYCACAEIAQoAgAgACgCAGs2AgAMAAsACyADIAAoAgA2AgAgAygCACEAIAIkBSAADwsgA0G4fzYCACADKAIAIQAgAiQFIAAPCyADIAEoAgAgBigCAGs2AgAgAygCACEAIAIkBSAAC+UDAQZ/IwUhAiMFQTBqJAUgAkEkaiEDIAJBIGoiBiAANgIAIAJBHGoiACABNgIAIAJBGGoiASAGKAIANgIAIAJBFGoiBCAAKAIANgIAIAAoAgBBCEkEQCADQbh/NgIAIAMoAgAhACACJAUgAA8LIAJBEGoiBSAGKAIAQQUQgAQ2AgAgBSgCABDNAQRAIAMgBSgCADYCACADKAIAIQAgAiQFIAAPCyAGKAIAEP8DQafqvmlHBEAgA0F2NgIAIAMoAgAhACACJAUgAA8LIAAoAgAgBSgCAEEDakkEQCADQbh/NgIAIAMoAgAhACACJAUgAA8LIAJBCGohByACIQAgASABKAIAIAUoAgBqNgIAIAQgBCgCACAFKAIAazYCAAJAAkACQANAIAAgASgCACAEKAIAIAcQjQQ2AgAgACgCABDNAQ0BIAEgASgCAEEDajYCACAEIAQoAgBBA2s2AgAgBygCAEEDRg0DIAAoAgAgBCgCAEsNAiABIAEoAgAgACgCAGo2AgAgBCAEKAIAIAAoAgBrNgIADAALAAsgAyAAKAIANgIAIAMoAgAhACACJAUgAA8LIANBuH82AgAgAygCACEAIAIkBSAADwsgAyABKAIAIAYoAgBrNgIAIAMoAgAhACACJAUgAAumAgEDfyMFIQMjBUEgaiQFIANBFGohBCADQRBqIgUgADYCACADQQxqIgAgATYCACADQQhqIgEgAjYCACADQQRqIgIgBSgCADYCACAAKAIAQQNJBEAgBEG4fzYCACAEKAIAIQAgAyQFIAAPCyABKAIAIAIoAgAtAABBBnU2AgAgAyIAIAIoAgAtAAIgAigCAC0AAUEIdGogAigCAC0AAEEHcUEQdGo2AgAgAygCACECIAEoAgAgASgCACgCAEECRgR/IAIFQQALNgIEIAEoAgAoAgBBA0YEQCAEQQA2AgAgBCgCACEAIAMkBSAADwsgASgCACgCAEECRgR/IARBATYCACAEKAIAIQAgAyQFIAAFIAQgACgCADYCACAEKAIAIQAgAyQFIAALC7UCAQN/IwUhAyMFQSBqJAUgA0EUaiEEIANBEGoiBSAANgIAIANBDGoiACABNgIAIANBCGoiASACNgIAIANBBGoiAiAFKAIANgIAIAAoAgBBA0kEQCAEQbh/NgIAIAQoAgAhACADJAUgAA8LIANBGGoiBSACKAIALAAAOgAAIAMiACACKAIALQACIAIoAgAtAAFBCHRqIAIoAgAtAABBB3FBEHRqNgIAIAEoAgAgBS0AAEEGdTYCACADKAIAIQIgASgCACABKAIAKAIAQQJGBH8gAgVBAAs2AgQgASgCACgCAEEDRgRAIARBADYCACAEKAIAIQAgAyQFIAAPCyABKAIAKAIAQQJGBH8gBEEBNgIAIAQoAgAhACADJAUgAAUgBCAAKAIANgIAIAQoAgAhACADJAUgAAsL/wIBBX8jBSECIwVBMGokBSACQSBqIQMgAkEcaiIFIAA2AgAgAkEYaiIAIAE2AgAgAkEUaiIBIAUoAgA2AgAgAkEQaiIEIAAoAgA2AgAgACgCAEEFSQRAIANBuH82AgAgAygCACEAIAIkBSAADwsgBSgCABCQBEGk6r5pRwRAIANBdjYCACADKAIAIQAgAiQFIAAPCyACQQhqIQYgAiEAIAEgASgCAEEFajYCACAEIAQoAgBBBWs2AgACQAJAAkADQCAAIAEoAgAgBCgCACAGEI4ENgIAIAAoAgAQzAENASABIAEoAgBBA2o2AgAgBCAEKAIAQQNrNgIAIAAoAgAgBCgCAEsNAiAAKAIARQ0DIAEgASgCACAAKAIAajYCACAEIAQoAgAgACgCAGs2AgAMAAsACyADIAAoAgA2AgAgAygCACEAIAIkBSAADwsgA0G4fzYCACADKAIAIQAgAiQFIAAPCyADIAEoAgAgBSgCAGs2AgAgAygCACEAIAIkBSAAC5IBAQR/IwUhAiMFQRBqJAUgAkEIaiEDIAIiAUEEaiIEIAA2AgAgBCgCACEEQZDlAC0AAAR/IAMgBBDlATYCACADKAIAIQAgAiQFIAAFIAEgBDYCACADIAEoAgAtAAAgASgCAC0AAUEIdGogASgCAC0AAkEQdGogASgCAC0AA0EYdGo2AgAgAygCACEAIAIkBSAACwu/DQEPfyMFIQMjBUHQAGokBSADQcQAaiEEIANBQGsiBSAANgIAIANBPGoiDiABNgIAIANBOGoiCCACNgIAIAgoAgBBA0kEQCAEQWw2AgAgBCgCACEAIAMkBSAADwsgA0EsaiEKIANBKGohCyADQSRqIQwgA0EgaiENIANBHGohDyADQRhqIQcgA0EUaiECIANBEGohBiADQQxqIRAgA0EIaiERIANBBGohCSADIQAgA0E0aiIBIA4oAgA2AgAgA0EwaiIOIAEoAgAtAABBA3E2AgACQAJAAkACQAJAAkAgDigCAA4EAgMBAAQLIAUoAgBBiOEBaigCAEUEQCAEQWI2AgAgBCgCACEAIAMkBSAADwsMBAsMAwsgECABKAIALQAAQQJ1QQNxNgIAAkACQAJAAkAgECgCAEEBaw4DAQIAAgsgBkEDNgIAIAIgASgCABCIBEEEdjYCAAwCCyAGQQI2AgAgAiABKAIAENgDQf//A3FBBHU2AgAMAQsgBkEBNgIAIAIgASgCAC0AAEEDdTYCAAsgBigCACACKAIAakEIaiAIKAIATQRAIAUoAgBB9OEBaiABKAIAIAYoAgBqNgIAIAUoAgBBhOIBaiACKAIANgIAIAQgBigCACACKAIAajYCACAEKAIAIQAgAyQFIAAPCyACKAIAIAYoAgBqIAgoAgBLBEAgBEFsNgIAIAQoAgAhACADJAUgAA8FIAUoAgBB1OIBaiABKAIAIAYoAgBqIAIoAgAQ9AcaIAUoAgBB9OEBaiAFKAIAQdTiAWo2AgAgBSgCAEGE4gFqIAIoAgA2AgAgBSgCAEHU4gFqIAUoAgBBhOIBaigCAGpCADcAACAEIAYoAgAgAigCAGo2AgAgBCgCACEAIAMkBSAADwsACyARIAEoAgAtAABBAnVBA3E2AgACQAJAAkACQCARKAIAQQFrDgMBAgACCyAAQQM2AgAgCSABKAIAEIgEQQR2NgIAIAgoAgBBBEkEQCAEQWw2AgAgBCgCACEAIAMkBSAADwsMAgsgAEECNgIAIAkgASgCABDYA0H//wNxQQR1NgIADAELIABBATYCACAJIAEoAgAtAABBA3U2AgALIAkoAgBBgIAISwRAIARBbDYCACAEKAIAIQAgAyQFIAAPBSAFKAIAQdTiAWogASgCACAAKAIAai0AACAJKAIAQQhqEPYHGiAFKAIAQfThAWogBSgCAEHU4gFqNgIAIAUoAgBBhOIBaiAJKAIANgIAIAQgACgCAEEBajYCACAEKAIAIQAgAyQFIAAPCwALIARBbDYCACAEKAIAIQAgAyQFIAAPCyAIKAIAQQVJBEAgBEFsNgIAIAQoAgAhACADJAUgAA8LIA1BADYCACAPIAEoAgAtAABBAnVBA3E2AgAgByABKAIAEM8BNgIAAkACQAJAAkAgDygCAEECaw4CAQACCyAKQQU2AgAgCyAHKAIAQQR2Qf//D3E2AgAgDCAHKAIAQRZ2IAEoAgAtAARBCnRqNgIADAILIApBBDYCACALIAcoAgBBBHZB//8AcTYCACAMIAcoAgBBEnY2AgAMAQsgDSAPKAIAQQBHQQFzNgIAIApBAzYCACALIAcoAgBBBHZB/wdxNgIAIAwgBygCAEEOdkH/B3E2AgALIAsoAgBBgIAISwRAIARBbDYCACAEKAIAIQAgAyQFIAAPCyAMKAIAIAooAgBqIAgoAgBLBEAgBEFsNgIAIAQoAgAhACADJAUgAA8LIA0oAgBBAEchACAFKAIAIQIgDigCAEEDRgR/IAJB1OIBaiECIAsoAgAhBiABKAIAIAooAgBqIQEgDCgCACEHIAUoAgAoAgwhCCAFKAIAQZDiAWooAgAhCSAABH8gAiAGIAEgByAIIAkQ4wMFIAIgBiABIAcgCCAJEOUDCwUgAkGo0ABqIQIgBSgCAEHU4gFqIQYgCygCACEHIAEoAgAgCigCAGohASAMKAIAIQggBSgCAEGs0AFqIQkgBSgCAEGQ4gFqKAIAIQ0gAAR/IAIgBiAHIAEgCCAJQYAQIA0Q5AMFIAIgBiAHIAEgCCAJQYAQIA0Q5gMLCyIAEM0BBEAgBEFsNgIAIAQoAgAhACADJAUgAA8LIAUoAgBB9OEBaiAFKAIAQdTiAWo2AgAgBSgCAEGE4gFqIAsoAgA2AgAgBSgCAEGI4QFqQQE2AgAgDigCAEECRgRAIAUoAgAgBSgCAEGo0ABqNgIMCyAFKAIAQdTiAWogBSgCAEGE4gFqKAIAakIANwAAIAQgDCgCACAKKAIAajYCACAEKAIAIQAgAyQFIAALugcBDH8jBSEEIwVBQGskBSAEQThqIQUgBEE0aiIGIAA2AgAgBEEwaiILIAE2AgAgBEEsaiIBIAI2AgAgBEEoaiIAIAM2AgAgBEEkaiIIIAEoAgA2AgAgBEEgaiIDIAgoAgAgACgCAGo2AgAgBEEcaiIBIAgoAgA2AgAgACgCAEEBSQRAIAVBuH82AgAgBSgCACEAIAQkBSAADwsgASABKAIAIgBBAWo2AgAgBEEYaiICIAAtAAA2AgAgAigCAEUEQCALKAIAQQA2AgAgBUEBNgIAIAUoAgAhACAEJAUgAA8LIARBFGohDCAEQRBqIQ0gBEEMaiEOIARBCGohCSAEQQRqIQogBCEAAkAgAigCAEH/AEoEQCABKAIAIQcgAigCAEH/AUYEQCAHQQJqIAMoAgBNBEAgAiABKAIAENgDQf//A3FBgP4BajYCACABIAEoAgBBAmo2AgAMAwsgBUG4fzYCACAFKAIAIQAgBCQFIAAPBSAHIAMoAgBJBEAgAigCAEGAAWtBCHQhByABIAEoAgAiD0EBajYCACACIAcgDy0AAGo2AgAMAwsgBUG4fzYCACAFKAIAIQAgBCQFIAAPCwALCyALKAIAIAIoAgA2AgAgASgCAEEEaiADKAIASwRAIAVBuH82AgAgBSgCACEAIAQkBSAADwsgDCABKAIALQAAQQZ1NgIAIA0gASgCAC0AAEEEdUEDcTYCACAOIAEoAgAtAABBAnVBA3E2AgAgASABKAIAQQFqNgIAIAkgBigCAEEQaiAGKAIAIAwoAgBBI0EJIAEoAgAgAygCACABKAIAa0GAOkGwNEGgIyAGKAIAQYzhAWooAgAQkwQ2AgAgCSgCABDNAQRAIAVBbDYCACAFKAIAIQAgBCQFIAAPCyABIAEoAgAgCSgCAGo2AgAgCiAGKAIAQZggaiAGKAIAQQhqIA0oAgBBH0EIIAEoAgAgAygCACABKAIAa0GwJ0GwKEGwKSAGKAIAQYzhAWooAgAQkwQ2AgAgCigCABDNAQRAIAVBbDYCACAFKAIAIQAgBCQFIAAPCyABIAEoAgAgCigCAGo2AgAgACAGKAIAQaAwaiAGKAIAQQRqIA4oAgBBNEEJIAEoAgAgAygCACABKAIAa0HQMEHANUHAKyAGKAIAQYzhAWooAgAQkwQ2AgAgACgCABDNAQR/IAVBbDYCACAFKAIAIQAgBCQFIAAFIAEgASgCACAAKAIAajYCACAFIAEoAgAgCCgCAGs2AgAgBSgCACEAIAQkBSAACwvDBAENfyMFIQsjBUGwAWokBSALQawBaiEMIAtB/ABqIQ4gC0H4AGohFCALQfQAaiEVIAtB8ABqIQ8gCyEWIAtB7ABqIRAgC0GoAWoiDSAANgIAIAtBpAFqIhEgATYCACALQaABaiIXIAI2AgAgC0GcAWoiEiADNgIAIAtBmAFqIgIgBDYCACALQZQBaiITIAU2AgAgC0GQAWoiBSAGNgIAIAtBjAFqIgQgBzYCACALQYgBaiIDIAg2AgAgC0GEAWoiASAJNgIAIAtBgAFqIgAgCjYCAAJAAkACQAJAAkACQCAXKAIADgQBAAMCBAsgBSgCAEUEQCAMQbh/NgIADAULIBMoAgAtAAAgEigCAEsEQCAMQWw2AgAMBQUgDiATKAIALQAANgIAIBQgBCgCACAOKAIAQQJ0aigCADYCACAVIAMoAgAgDigCAEECdGooAgA2AgAgDSgCACAUKAIAIBUoAgAQlAQgESgCACANKAIANgIAIAxBATYCAAwFCwALIBEoAgAgASgCADYCACAMQQA2AgAMAwsgACgCAARAIAxBADYCAAwDBSAMQWw2AgAMAwsACyAQIBYgEiAPIBMoAgAgBSgCABDOATYCACAQKAIAEM0BBEAgDEFsNgIADAILIA8oAgAgAigCAEsEQCAMQWw2AgAMAgUgDSgCACAWIBIoAgAgBCgCACADKAIAIA8oAgAQlQQgESgCACANKAIANgIAIAwgECgCADYCAAwCCwALIAxBfzYCAAsgDCgCACEAIAskBSAAC6QBAQN/IwUhAyMFQSBqJAUgA0EUaiIEIAA2AgAgA0EQaiIFIAE2AgAgA0EMaiIBIAI2AgAgA0EIaiICIAQoAgA2AgAgA0EEaiIAIAIoAgA2AgAgAyAEKAIAQQhqNgIAIAAoAgBBADYCBCAAKAIAQQA2AgAgAygCAEEAOgADIAMoAgBBADsBACADKAIAIAEoAgA6AAIgAygCACAFKAIANgIEIAMkBQvGBwETfyMFIQYjBUHQAWokBSAGIREgBkGIAWohEiAGQYQBaiETIAZBgAFqIQwgBkH8AGohCiAGQfgAaiENIAZB9ABqIQcgBkHwAGohDiAGQewAaiEUIAZBvAFqIhYgADYCACAGQbgBaiIPIAE2AgAgBkG0AWoiACACNgIAIAZBsAFqIhcgAzYCACAGQawBaiIYIAQ2AgAgBkGoAWoiECAFNgIAIAZBpAFqIgkgFigCAEEIajYCACAGQaABaiIEIAAoAgBBAWo2AgAgBkGcAWoiC0EBIBAoAgB0NgIAIAZBmAFqIhUgCygCAEEBazYCACAGQZABaiIFIBAoAgA2AgQgBUEBNgIAIAZBwAFqIgNBASAQKAIAQQFrdDsBACAGQYwBaiIIQQA2AgADQCAIKAIAIAQoAgBJBEAgDygCACAIKAIAQQF0ai4BAEF/RgRAIAgoAgAhAiAJKAIAIQEgFSAVKAIAIgBBf2o2AgAgASAAQQN0aiACNgIEIBEgCCgCAEEBdGpBATsBAAUgDygCACAIKAIAQQF0ai4BACADLgEATgRAIAVBADYCAAsgESAIKAIAQQF0aiAPKAIAIAgoAgBBAXRqLgEAOwEACyAIIAgoAgBBAWo2AgAMAQsLIBYoAgAgBSkCADcCACASIAsoAgBBAWs2AgAgEyALKAIAQQF2IAsoAgBBA3ZqQQNqNgIAIApBADYCACAMQQA2AgADQCAMKAIAIAQoAgBJBEAgDUEANgIAA0AgDCgCACEAIA0oAgAgDygCACAMKAIAQQF0ai4BAEgEQCAJKAIAIAooAgBBA3RqIAA2AgQgCiAKKAIAIBMoAgBqIBIoAgBxNgIAA0AgCigCACAVKAIASwRAIAogCigCACATKAIAaiASKAIAcTYCAAwBCwsgDSANKAIAQQFqNgIADAELCyAMIABBAWo2AgAMAQsLIAdBADYCAANAIAcoAgAgCygCAEkEQCAOIAkoAgAgBygCAEEDdGooAgQ2AgAgESAOKAIAQQF0aiIALgEAIQEgACABQQFqOwEAIBQgAUH//wNxNgIAIBAoAgAgFCgCABDUAWtB/wFxIQAgCSgCACAHKAIAQQN0aiAAOgADIAkoAgAgBygCAEEDdGogFCgCACAJKAIAIAcoAgBBA3RqLQADdCALKAIAazsBACAJKAIAIAcoAgBBA3RqIBgoAgAgDigCAEECdGooAgA6AAIgCSgCACAHKAIAQQN0aiAXKAIAIA4oAgBBAnRqKAIANgIEIAcgBygCAEEBajYCAAwBCwsgBiQFC68BAQJ/IwUhAyMFQRBqJAUgA0EEaiICIAA2AgAgAyIAIAE2AgAgAygCACACKAIAQbjgAWooAgBGBEAgAyQFDwsgAigCAEHE4AFqIAIoAgBBuOABaigCADYCACACKAIAQcDgAWogACgCACACKAIAQbjgAWooAgAgAigCAEG84AFqKAIAa2s2AgAgAigCAEG84AFqIAAoAgA2AgAgAigCAEG44AFqIAAoAgA2AgAgAyQFC+oEAQh/IwUhBiMFQUBrJAUgBkEwaiIHIAA2AgAgBkEsaiIJIAE2AgAgBkEoaiIKIAI2AgAgBkEkaiIIIAM2AgAgBkEgaiICIAQ2AgAgBkEcaiILIAU2AgAgBkEYaiIDIAgoAgA2AgAgBkE0aiEBIAZBFGoiDCALKAIABH8gBygCAEHY4AFqKQMAQoCAgBBWBUEBC0EBcTYCACACKAIAQYCACE8EQCABQbh/NgIAIAEoAgAhACAGJAUgAA8LIAZBEGoiACAHKAIAIAgoAgAgAigCABCRBDYCACAAKAIAEM0BQQBHIQUgACgCACEEIAUEQCABIAQ2AgAgASgCACEAIAYkBSAADwsgAyADKAIAIARqNgIAIAIgAigCACAAKAIAazYCACAGQQhqIgUgBygCACAGQQxqIgQgAygCACACKAIAEJIENgIAIAUoAgAQzQFBAEchACAFKAIAIQggAARAIAEgCDYCACABKAIAIQAgBiQFIAAPCyAGQQRqIQ0gBiEAIAMgAygCACAIajYCACACIAIoAgAgBSgCAGs2AgACQAJAIAsoAgAEQCAHKAIAQdjgAWopAwBCgICACFYgBCgCAEEASnENAQUgBCgCAEEASg0BCwwBCyANIAcoAgAoAggQmAQ2AgAgAEEUNgIAIA0oAgAgACgCAE8EQCABIAcoAgAgCSgCACAKKAIAIAMoAgAgAigCACAEKAIAIAwoAgAQmQQ2AgAgASgCACEAIAYkBSAADwsLIAEgBygCACAJKAIAIAooAgAgAygCACACKAIAIAQoAgAgDCgCABCaBDYCACABKAIAIQAgBiQFIAAL2QEBBX8jBSEBIwVBIGokBSABQRhqIgIgADYCACABQRRqIgAgAigCADYCACABQRBqIgMgACgCACgCBDYCACABQQxqIgQgAigCAEEIajYCACABQQhqIgVBASADKAIAdDYCACABIgBBADYCACAAQQRqIgJBADYCAANAIAIoAgAgBSgCAEkEQCAEKAIAIAIoAgBBA3RqLQACQRZKBEAgACAAKAIAQQFqNgIACyACIAIoAgBBAWo2AgAMAQsLIAAgACgCAEEIIAMoAgBrdDYCACAAKAIAIQAgASQFIAAL7QEBBX8jBSEHIwVBIGokBSAHQRxqIQggB0EYaiIJIAA2AgAgB0EUaiIKIAE2AgAgB0EQaiILIAI2AgAgB0EMaiICIAM2AgAgB0EIaiIBIAQ2AgAgB0EEaiIAIAU2AgAgByAGNgIAIAkoAgAhBiAKKAIAIQUgCygCACEEIAIoAgAhAyABKAIAIQIgACgCACEBIAcoAgAhACAJKAIAQZDiAWooAgAEfyAIIAYgBSAEIAMgAiABIAAQnwQ2AgAgCCgCACEAIAckBSAABSAIIAYgBSAEIAMgAiABIAAQnwQ2AgAgCCgCACEAIAckBSAACwvtAQEFfyMFIQcjBUEgaiQFIAdBHGohCCAHQRhqIgkgADYCACAHQRRqIgogATYCACAHQRBqIgsgAjYCACAHQQxqIgIgAzYCACAHQQhqIgEgBDYCACAHQQRqIgAgBTYCACAHIAY2AgAgCSgCACEGIAooAgAhBSALKAIAIQQgAigCACEDIAEoAgAhAiAAKAIAIQEgBygCACEAIAkoAgBBkOIBaigCAAR/IAggBiAFIAQgAyACIAEgABCbBDYCACAIKAIAIQAgByQFIAAFIAggBiAFIAQgAyACIAEgABCbBDYCACAIKAIAIQAgByQFIAALC4YdAUJ/IwUhByMFQcADaiQFIAdBsANqISwgB0GoA2ohEiAHQaQDaiEKIAdBoANqIRkgB0GcA2ohFSAHQZgDaiEtIAdBlANqIRogB0GQA2ohLiAHQYwDaiEbIAdBiANqIREgB0GEA2ohHCAHQYADaiEjIAdB/AJqIRQgB0H4AmohLyAHQfQCaiEJIAdB8AJqISQgB0HsAmohFiAHQegCaiE6IAchCyAHQeQCaiElIAdB4AJqITsgB0HYAmohMCAHQdQCaiE8IAdB0AJqIT0gB0HMAmohJiAHQcgCaiE+IAdBwAJqITEgB0G8AmohPyAHQbgCaiFAIAdBtAJqIScgB0GwAmohQSAHQagCaiEyIAdBpAJqIUIgB0GgAmohQyAHQZwCaiEIIAdBmAJqIUQgB0GIAmohHSAHQYACaiEeIAdB/AFqIR8gB0H4AWohDyAHQfQBaiFFIAdB8AFqITMgB0HsAWohRiAHQegBaiE0IAdB5AFqIQwgB0HgAWohICAHQdwBaiEhIAdB2AFqIRAgB0HQAGohDSAHQcwAaiEXIAdByABqISIgB0E4aiEoIAdBNGohNSAHQTBqIRggB0EsaiEpIAdBKGoiNiAANgIAIAdBJGoiNyABNgIAIAdBIGoiACACNgIAIAdBHGoiASADNgIAIAdBGGoiOCAENgIAIAdBFGoiBCAFNgIAIAdBEGoiAyAGNgIAIDcoAgAhAiAAKAIAIQAgASgCACEBIDgoAgAhBiAEKAIAIQUgAygCACEEIAdB1AFqIg4gNigCADYCACAHQdABaiIDIAI2AgAgB0HMAWoiAiAANgIAIAdByAFqIgAgATYCACAHQcQBaiIBIAY2AgAgB0HAAWoiKiAFNgIAIAdBvAFqIjYgBDYCACAHQbgBaiIEIAAoAgA2AgAgB0G0AWoiACAEKAIAIAEoAgBqNgIAIAdBsAFqIjkgAygCADYCACAHQawBaiJHIDkoAgAgAigCAGo2AgAgB0GoAWoiEyA5KAIANgIAIAdBpAFqIisgDigCAEH04QFqKAIANgIAIAdBoAFqIkggKygCACAOKAIAQYTiAWooAgBqNgIAIAdBnAFqIjcgDigCAEG84AFqKAIANgIAIAdBmAFqIjggDigCAEHA4AFqKAIANgIAIAdBlAFqIgYgDigCAEHE4AFqKAIANgIAAkAgKigCAARAIA4oAgBBjOEBakEBNgIAIBdBADYCAANAIBcoAgBBA0kEQCANQSxqIBcoAgBBAnRqIA4oAgBBrOABaiAXKAIAQQJ0aigCADYCACAXIBcoAgBBAWo2AgAMAQsLICIgDSAEKAIAIAAoAgAgBCgCAGsQ1wE2AgAgIigCABDNAQRAIBBBbDYCACAQKAIAIQAgByQFIAAPCyANQRRqIA0gDigCACgCABCcBCANQRxqIA0gDigCACgCCBCcBCANQSRqIA0gDigCACgCBBCcBAJAAkADQAJAIA0Q2QFBAk0hASAqKAIAQQBHIQAgKigCACECIAEEfyAABUEAC0UNACAqIAJBf2o2AgAgNigCACEAIAggDTYCACBEIAA2AgAgHiAIKAIAKAIYIAgoAgAoAhRBA3RqLQACNgIAIB8gCCgCACgCKCAIKAIAKAIkQQN0ai0AAjYCACAPIAgoAgAoAiAgCCgCACgCHEEDdGotAAI2AgAgRSAeKAIAIB8oAgBqIA8oAgBqNgIAIDMgCCgCACgCGCAIKAIAKAIUQQN0aigCBDYCACBGIAgoAgAoAiggCCgCACgCJEEDdGooAgQ2AgAgNCAIKAIAKAIgIAgoAgAoAhxBA3RqKAIENgIAAkAgDygCAARAIEQoAgBBAEcgDygCAEEZT3FFBEAgDCA0KAIAIAgoAgAgDygCABDfAWo2AgAgCCgCABDZARoMAgsgICAPKAIAIA8oAgBBICAIKAIAKAIEa0kEfyAPKAIABUEgIAgoAgAoAgRrC2s2AgAgDCA0KAIAIAgoAgAgDygCACAgKAIAaxDfASAgKAIAdGo2AgAgCCgCABDZARogICgCAARAIAgoAgAgICgCABDfASEAIAwgDCgCACAAajYCAAsFIAxBADYCAAsLAkAgDygCAEEBTQRAIAwgDCgCACAzKAIARWo2AgAgDCgCAEUEQCAMIAgoAgAoAiw2AgAMAgsgCCgCAEEsaiEAICEgDCgCAEEDRgR/IAAoAgBBAWsFIAAgDCgCAEECdGooAgALNgIAICEgISgCACAhKAIAQQBHQQFzajYCACAMKAIAQQFHBEAgCCgCACAIKAIAKAIwNgI0CyAIKAIAIAgoAgAoAiw2AjAgDCAhKAIAIgA2AgAgCCgCACAANgIsBSAIKAIAIAgoAgAoAjA2AjQgCCgCACAIKAIAKAIsNgIwIAgoAgAgDCgCADYCLAsLIB0gDCgCADYCCCAdIEYoAgAgHygCAEEASwR/IAgoAgAgHygCABDfAQVBAAtqNgIEIB8oAgAgHigCAGpBFE8EQCAIKAIAENkBGgsgRSgCAEEfT0EAcQRAIAgoAgAQ2QEaCyAdIDMoAgAgHigCAEEASwR/IAgoAgAgHigCABDfAQVBAAtqNgIAIAgoAgAQ2QEaIAgoAgAhACAnIAgoAgBBFGo2AgAgQSAANgIAIDIgJygCACgCBCAnKAIAKAIAQQN0aikCADcCACBCIDItAAM2AgAgQyBBKAIAIEIoAgAQ3AE2AgAgJygCACAyLwEAIEMoAgBqNgIAIAgoAgAhACAmIAgoAgBBJGo2AgAgPiAANgIAIDEgJigCACgCBCAmKAIAKAIAQQN0aikCADcCACA/IDEtAAM2AgAgQCA+KAIAID8oAgAQ3AE2AgAgJigCACAxLwEAIEAoAgBqNgIAIAgoAgAQ2QEaIAgoAgAhACAlIAgoAgBBHGo2AgAgOyAANgIAIDAgJSgCACgCBCAlKAIAKAIAQQN0aikCADcCACA8IDAtAAM2AgAgPSA7KAIAIDwoAgAQ3AE2AgAgJSgCACAwLwEAID0oAgBqNgIAICggHSkCADcCACAoIB0pAgg3AgggEygCACEFIEcoAgAhBCBIKAIAIQMgNygCACECIDgoAgAhASAGKAIAIQAgCyAoKQAANwAAIAsgKCkACDcACCAKIAU2AgAgGSAENgIAIBUgKzYCACAtIAM2AgAgGiACNgIAIC4gATYCACAbIAA2AgAgESAKKAIAIAsoAgBqNgIAIBwgCygCACALKAIEajYCACAjIAooAgAgHCgCAGo2AgAgFCAZKAIAQXhqNgIAIC8gFSgCACgCACALKAIAajYCACAJIBEoAgAgCygCCGs2AgACQCAjKAIAIBkoAgBLBEAgEkG6fzYCAAUgLygCACAtKAIASwRAIBJBbDYCAAwCCyAKKAIAISIgESgCACAUKAIASwRAIBkoAgAhBSAVKAIAIQQgLSgCACEDIBooAgAhAiAuKAIAIQEgGygCACEAICwgCykCADcCACAsIAspAgg3AgggEiAiIAUgLCAEIAMgAiABIAAQnQQ2AgAMAgsgIiAVKAIAKAIAEPwCIAsoAgBBCEsEQCAKKAIAQQhqIBUoAgAoAgBBCGogCygCAEEIaxD7AgsgCiARKAIANgIAIBUoAgAgLygCADYCAAJAIAsoAgggESgCACAaKAIAa0sEQCALKAIIIBEoAgAgLigCAGtLBEAgEkFsNgIADAQLIAkgGygCACAJKAIAIBooAgBrajYCACAJKAIAIAsoAgRqIBsoAgBNBEAgESgCACAJKAIAIAsoAgQQ9QcaIBIgHCgCADYCAAwECyAkIBsoAgAgCSgCAGs2AgAgESgCACAJKAIAICQoAgAQ9QcaIAogESgCACAkKAIAajYCACALQQRqIgAgACgCACAkKAIAazYCACAJIBooAgA2AgAgCigCACAUKAIATQRAIAsoAgRBA08NAgsgFkEANgIAA0AgFigCACALKAIESQRAIAooAgAgFigCAGogCSgCACAWKAIAaiwAADoAACAWIBYoAgBBAWo2AgAMAQsLIBIgHCgCADYCAAwDCwsgCygCCEEISQRAIDogCygCCEECdEGQPWooAgA2AgAgCigCACAJKAIALAAAOgAAIAooAgAgCSgCACwAAToAASAKKAIAIAkoAgAsAAI6AAIgCigCACAJKAIALAADOgADIAkgCSgCACALKAIIQQJ0QbA9aigCAGo2AgAgCigCAEEEaiAJKAIAEJ4EIAkgCSgCACA6KAIAazYCAAUgCigCACAJKAIAEPwCCyAKIAooAgBBCGo2AgAgCSAJKAIAQQhqNgIAIAooAgAhAAJAICMoAgAgGSgCAEFzaksEQCAAIBQoAgBJBEAgCigCACAJKAIAIBQoAgAgCigCAGsQ+wIgCSAJKAIAIBQoAgAgCigCAGtqNgIAIAogFCgCADYCAAsDQCAKKAIAICMoAgBPDQIgCSAJKAIAIgBBAWo2AgAgACwAACEBIAogCigCACIAQQFqNgIAIAAgAToAAAwACwAFIAAgCSgCACALKAIEQQhrEPsCCwsgEiAcKAIANgIACwsgNSASKAIANgIAIDUoAgAQzQFBAEchACA1KAIAIQEgAA0CIBMgEygCACABajYCAAwBCwsMAQsgECABNgIAIBAoAgAhACAHJAUgAA8LIAIEQCAQQWw2AgAgECgCACEAIAckBSAADwsgGEEANgIAA0AgGCgCAEEDTw0CIA4oAgBBrOABaiAYKAIAQQJ0aiANQSxqIBgoAgBBAnRqKAIANgIAIBggGCgCAEEBajYCAAwACwALCyApIEgoAgAgKygCAGs2AgAgKSgCACBHKAIAIBMoAgBrSwR/IBBBun82AgAgECgCACEAIAckBSAA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IAAoAgAgOygCAGs2AgAgCyA4KAIANgIAIAooAgAgHygCAE0EQCAOKAIEQQNPDQILICNBADYCAANAICMoAgAgDigCBEkEQCAKKAIAICMoAgBqIAsoAgAgIygCAGosAAA6AAAgIyAjKAIAQQFqNgIADAELCyAbICwoAgA2AgAMAwsLIA4oAghBCEkEQCBkIA4oAghBAnRBkD1qKAIANgIAIAooAgAgCygCACwAADoAACAKKAIAIAsoAgAsAAE6AAEgCigCACALKAIALAACOgACIAooAgAgCygCACwAAzoAAyALIAsoAgAgDigCCEECdEGwPWooAgBqNgIAIAooAgBBBGogCygCABCeBCALIAsoAgAgZCgCAGs2AgAFIAooAgAgCygCABD8AgsgCiAKKAIAQQhqNgIAIAsgCygCAEEIajYCACAKKAIAIQACQCA6KAIAICsoAgBBc2pLBEAgACAfKAIASQRAIAooAgAgCygCACAfKAIAIAooAgBrEPsCIAsgCygCACAfKAIAIAooAgBrajYCACAKIB8oAgA2AgALA0AgCigCACA6KAIATw0CIAsgCygCACIAQQFqNgIAIAAsAAAhASAKIAooAgAiAEEBajYCACAAIAE6AAAMAAsABSAAIAsoAgAgDigCBEEIaxD7AgsLIBsgLCgCADYCAAsLIGAgGygCADYCACBgKAIAEM0BQQBHIQAgYCgCACEBIAANAiAVIBUoAgAgAWo2AgAgECAQKAIAQQFqNgIADAELCwwBCyAUIAE2AgAgFCgCACEAIAckBSAADwsgKUEANgIAA0AgKSgCAEEDTw0CIBYoAgBBrOABaiApKAIAQQJ0aiARQSxqICkoAgBBAnRqKAIANgIAICkgKSgCAEEBajYCAAwACwALCyBMIGMoAgAgNygCAGs2AgAgTCgCACBiKAIAIBUoAgBrSwR/IBRBun82AgAgFCgCACEAIAckBSAABSAVKAIAIDcoAgAgTCgCABD0BxogFSAVKAIAIEwoAgBqNgIAIBQgFSgCACBhKAIAazYCACAUKAIAIQAgByQFIAALC44BAQJ/IwUhByMFQSBqJAUgB0EYaiIIIAA2AgAgB0EUaiIAIAE2AgAgB0EQaiIBIAI2AgAgB0EMaiICIAM2AgAgB0EIaiIDIAQ2AgAgB0EEaiIEIAU2AgAgByAGNgIAIAgoAgAg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IAMoAgAoAgQ2AgAgAigCAEHA4AFqIAMoAgAoAgQ2AgAgAigCAEHE4AFqIAMoAgAoAgQgAygCACgCCGo2AgAgAigCAEG44AFqIAIoAgBBxOABaigCADYCACACKAIAQYjhAWohACADKAIAQbjgAWooAgAEQCAAQQE2AgAgAigCAEGM4QFqQQE2AgAgAigCACADKAIAQQxqNgIAIAIoAgAgAygCAEGcMGo2AgQgAigCACADKAIAQZQgajYCCCACKAIAIAMoAgBBpNAAajYCDCACKAIAQazgAWogAygCAEGo4AFqKAIANgIAIAIoAgBBsOABaiADKAIAQazgAWooAgA2AgAgAigCAEG04AFqIAMoAgBBsOABaigCADYCAAUgAEEANgIAIAIoAgBBjOEBakEANgIACwsgBUEANgIAIAUoAgAhACAEJAUgAAvSAQEEfyMFIQMjBUEgaiQFIANBFGohBCADQRBqIgUgADYCACADQQxqIgYgATYCACADQQhqIgEgAjYCACADQQRqIgAgBSgCABCrBDYCACAAKAIAEM0BBEAgBCAAKAIANgIAIAQoAgAhACADJAUgAA8LIAMhACAGKAIAQQBHIAEoAgBBAEdxBEAgACAFKAIAIAYoAgAgASgCABCsBDYCACAAKAIAEM0BBEAgBEFiNgIAIAQoAgAhACADJAUgAA8LCyAEQQA2AgAgBCgCACEAIAMkBSAAC+gIAQt/IwUhBSMFQdAAaiQFIAVBzABqIQYgBUHIAGoiCCAANgIAIAVBxABqIgAgATYCACAFQUBrIgcgAjYCACAFQTxqIg0gAzYCACAFQThqIg4gBDYCACAFQTRqIgEgDSgCACgCADYCACAFQTBqIgogACgCADYCACAFQSxqIgwgCigCACAHKAIAajYCACAFQShqIgMgCigCADYCACAFQSRqIgIgDigCACgCADYCACACKAIAQQlJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQSBqIgkgASgCAEEFEPUDNgIAIAkoAgAQzQEEQCAGIAkoAgA2AgAgBigCACEAIAUkBSAADwsgAigCACAJKAIAQQNqSQRAIAZBuH82AgAgBigCACEAIAUkBSAADwsgBUEcaiIAIAgoAgAgASgCACAJKAIAEKgENgIAIAAoAgAQzQEEQCAGIAAoAgA2AgAgBigCACEAIAUk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ACANKAIAQQJ0aigCADYCACAOIBEoAgA2AgAgFCARKAIAIBAoAgBqNgIAIAogBC8BACATKAIAQQh0akH//wNxEOAEIAogDygCACAWKAIAajoAAiAKQQI6AAMDQCAVKAIAIQEgDiAOKAIAIgJBAWo2AgAgASACQQJ0aiAKKAEANgEAIA4oAgAgFCgCAEkNAAsgACANKAIAQQJ0aiIBIAEoAgAgECgCAGo2AgAgCyALKAIAQQFqNgIADAELCyAJJAULcwEDfyMFIQIjBUEQaiQFIAIhAyACQQRqIgQgADYCACACQQhqIgAgATsBACAEKAIAIQFBkOUALQAABEAgASAALgEAEOEEIAIkBQUgAyABNgIAIAMoAgAgAC4BADoAACADKAIAIAAvAQBBCHU6AAEgAiQFCwszAQF/IwUhAiMFQRBqJAUgAiAANgIAIAJBBGoiACABOwEAIAIoAgAgAC4AADsAACACJAULwgIBBn8jBSEFIwVB0ABqJAUgBUE8aiEGIAVBOGoiByAANgIAIAVBNGoiCCABNgIAIAVBMGoiCSACNgIAIAVBLGoiCiADNgIAIAVBKGoiACAENgIAIAVBJGoiASAHKAIANgIAIAVBIGoiAyABKAIAIAgoAgBqNgIAIAVBHGoiAiAAKAIAQQRqNgIAIAVBGGoiBCACKAIANgIAIAVBQGsiAiAAKAIAENIDIAVBBGoiByACLQACNgIAIAUiACAFQQhqIgIgCSgCACAKKAIAEL4ENgIAIAUoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgASgCACACIAMoAgAgBCgCACAHKAIAENgEGiACENUDBH8gBiAIKAIANgIAIAYoAgAhACAFJAUgAAUgBkFsNgIAIAYoAgAhACAFJAUgAAsLhgIBAn8jBSECIwVBEGokBSACQQRqIgEgADYCACABKAIAQaCoAWpBBTYCACABKAIAQcyoAWpBADYCACABKAIAQZCoAWpBADYCACABKAIAQZSoAWpBADYCACABKAIAQZioAWpBADYCACABKAIAQZyoAWpBADYCACABKAIAQYwoakGMgIDgADYCACABKAIAQdSoAWpBADYCACABKAIAQdCoAWpBADYCACABKAIAQbSpAWpBADYCACACIgBBADYCAANAIAAoAgBBA0gEQCABKAIAQaSoAWogACgC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ACIBIAEoAgAgBSgCAC0AAUEIdGo2AgALIAIgBSgCACAAKAIAQQFraiwAADoAACACLQAABEBBCCACLQAAENQBayEBIAMoAgAgATYCBCADKAIAQQRqIgEgASgCAEEEIAAoAgBrQQN0ajYCAAwCCyAGQX82AgAgBigCACEAIAQkBSAADwsACyAGIAAoAgA2AgAgBigCACEAIAQkBSAAC+MFAQl/IwUhBCMFQTBqJAUgBEEEaiEDIARBKGoiBiAANgIAIARBJGoiAiABNgIAIARBIGoiASACKAIAQRBqEMMEQf8BcTYCACAEQRxqIgcgAigCAEEgahDDBEH/AXE2AgAgBEEYaiIAIAIoAgBBGGoQwwRB/wFxNgIAIARBFGoiCCABKAIAQQJ0QbA0aigCADYCACAEQRBqIgkgBygCAEECdEHANWooAgA2AgAgBEEMaiIFIAAoAgA2AgAgBEEIaiIKIAgoAgAgCSgCAGogBSgCAGo2AgAgACgCAARAIAMgACgCAEECdEGgN2ooAgAgAigCACAFKAIAENwBajYCACACKAIAEMAEGgUgA0EANgIACyAEIQACQCADKAIAQQNJBEAgASgCAEUgAygCAEEBTXEEQCADQQEgAygCAGs2AgALIAIoAgBBKGohBSADKAIARQRAIAMgBSgCADYCAAwCCyAAIAUgAygCAEECdGooAgA2AgAgAygCAEEBRwRAIAIoAgAgAigCACgCLDYCMAsgAigCACACKAIAKAIoNgIsIAMgACgCACIANgIAIAIoAgAgADYCKAUgAyADKAIAQQJrNgIAIAIoAgAgAigCACgCLDYCMCACKAIAIAIoAgAoAig2AiwgAigCACADKAIANgIoCwsgBigCACADKAIANgIIIAcoAgBBAnRBoDhqKAIAIQMgBygCAEEfSwR/IAIoAgAgCSgCABDcAQVBAAshACAGKAIAIANBA2ogAGo2AgQgCSgCACAIKAIAakEYSwRAIAIoAgAQwAQaCyABKAIAQQJ0QYA6aigCACEDIAEoAgBBD0sEfyACKAIAIAgoAgAQ3AEFQQALIQAgBigCACADIABqNgIAIAooAgBBH0tBAXIEQCACKAIAEMAEGgsgAigCAEEQaiACKAIAEMQEIAIoAgBBIGogAigCABDEBCACKAIAEMAEGiACKAIAQRhqIAIoAgAQxAQgBCQFC+gI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QTBqIgcgACgCAEEGajYCACAFQSxqIhMgBygCACAKKAIAajYCACAFQShqIhQgEygCACALKAIAajYCACAFQSRqIhYgFCgCACAMKAIAajYCACAFQSBqIgAgECgCAEEDakEEbjYCACAFQRxqIg4gBCgCACAAKAIAajYCACAFQRhqIg8gDigCACAAKAIAajYCACAFQRRqIhEgDygCACAAKAIAajYCACAFQRBqIgMgBCgCADYCACAFQQxqIgQgDigCADYCACAFQQhqIgggDygCADYCACAFQQRqIg0gESgCADYCACAFQTRqIhUgCSgCACAKKAIAIAsoAgBqIAwoAgBqQQZqazYCACAVKAIAIAkoAgBLBEAgBkFsNgIAIAYoAgAhACAFJAUgAA8LIAVBiAFqIgAgBUH4AGoiCSAHKAIAIAooAgAQ8QQ2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAAIAVB6ABqIgogEygCACALKAIAEPEENgIAIAAoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgACAFQdgAaiILIBQoAgAgDCgCABDxBDYCACAAKAIAEMwBBEAgBiAAKAIANgIAIAYoAgAhACAFJAUgAA8LIAAgBUHIAGoiDCAWKAIAIBUoAgAQ8QQ2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAFIgAgCRDABCAKEMAEciALEMAEciAMEMAEcjYCAANAAkAgACgCAA0AIA0oAgAgEigCAEF5ak8NACADKAIAIAkgASgCACACKAIAENAEIQcgAyADKAIAIAdqNgIAIAQoAgAgCiABKAIAIAIoAgAQ0AQhByAEIAQoAgAgB2o2AgAgCCgCACALIAEoAgAgAigCABDQBCEHIAggCCgCACAHajYCACANKAIAIAwgASgCACACKAIAENAEIQcgDSANKAIAIAdqNgIAIAMoAgAgCSABKAIAIAIoAgAQ0AQhByADIAMoAgAgB2o2AgAgBCgCACAKIAEoAgAgAigCABDQBCEHIAQgBCgCACAHajYCACAIKAIAIAsgASgCACACKAIAENAEIQcgCCAIKAIAIAdqNgIAIA0oAgAgDCABKAIAIAIoAgAQ0AQhByANIA0oAgAgB2o2AgAgACAJEMAEIAoQwARyIAsQwARy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mNABaiAAKAIAIAIoAgBBkNABaigCACACKAIAQZTQAWooAgBrazYCACACKAIAQZTQAWogACgCADYCACACKAIAQZDQAWogACgCADYCACADJAUL/AYBCX8jBSEFIwVB0ABqJAUgBUHEAGohBiAFQUBrIgkgADYCACAFQTxqIgAgATYCACAFQThqIgogAjYCACAFQTRqIgggAzYCACAFQTBqIgcgBDYCACAFQSxqIgEgCCgCADYCACAFQShqIg0gASgCACAHKAIAajYCACAFQSRqIgsgACgCADYCACAFQSBqIgMgCygCADYCACAFQRxqIgwgCygCACAKKAIAajYCACAFQRhqIgIgBygCADYCACAHKAIAQQhJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQQhqIgAgCSgCACAIKAIAQQUQiAU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAHKAIAIAAoAgBBA2pJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyABIAEoAgAgACgCAGo2AgAgAiACKAIAIAAoAgBrNgIAIAAgCSgCACAIKAIAIAAoAgAQiQU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAFQRBqIQcgBUEEaiEEIAUhAAJAAkACQAJAAkACQAJAA0AgBEEANgIAIAAgASgCACANKAIAIAEoAgBrIAcQjgQ2AgAgACgCABDMAQ0BIAEgASgCAEEDajYCACACIAIoAgBBA2s2AgAgACgCACACKAIASw0CAkACQAJAAkACQAJAIAcoAgAOBAECAAMECwwICyAEIAkoAgAgAygCACAMKAIAIAMoAgBrIAEoAgAgACgCABCKBTYCAAwDCyAEIAMoAgAgDCgCACADKAIAayABKAIAIAAoAgAQqQQ2AgAMAgsgAigCAA0GDAELDAYLIAAoAgBFDQcgBCgCABDMAUEARyEKIAQoAgAhCCAKDQYgAyADKAIAIAhqNgIAIAEgASgCACAAKAIAajYCACACIAIoAgAgACgCAGs2AgAMAAsACyAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAGQX82AgAgBigCACEAIAUkBSAADwsgBkG4fzYCACAGKAIAIQAgBSQFIAAP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AgAgCigCACEAIAkkBSAADwsgBygCAEEKTQRAIAEgASgCACADKAIAajYCACANKAIAIAAgEigCACAHKAIAEJUFGgwBCyAKQWw2AgAgCigCACEAIAkkBSAADwsgCiABKAIAIAgoAgBrNgIAIAooAgAhACAJJAUgAAuuBQEFfyMFIQQjBUEgaiQFIARBFGohBSAEQRBqIgMgADYCACAEQQxqIgYgATYCACAEQQhqIgEgAjYCACABKAIAQQFJBEAgAygCACIAQgA3AgAgAEIANwIIIAVBuH82AgAgBSgCACEAIAQkBSAADwsgBEEEaiECIAQhACABKAIAQQRPIQcgAygCACAGKAIANgIMAkAgBwRAIAMoAgAgBigCACABKAIAakF8ajYCCCADKAIAKAIIEOEBIQAgAygCACAANgIAIAIgBigCACABKAIAQQFrai0AADYCACACKAIABEBBCCACKAIAENQBayEAIAMoAgAgADYCBAwCCyAFQX82AgAgBSgCACEAIAQkBSAADwUgAygCACADKAIAKAIMNgIIIAMoAgAgAygCACgCDC0AADYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAmsOBgUEAwIBAAYLIAMoAgAiAiACKAIAIAMoAgAoAgwtAAZBEHRqNgIADAYLDAULDAULDAULDAULDAULDAULIAMoAgAiAiACKAIAIAMoAgAoAgwtAAVBCHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQAEajYCAAsgAygCACICIAIoAgAgAygCACgCDC0AA0EYdGo2AgALIAMoAgAiAiACKAIAIAMoAgAoAgwtAAJBEHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQABQQh0ajYCAAsgACAGKAIAIAEoAgBBAWtqLQAANgIAIAAoAgAEQEEIIAAoAgAQ1AFrIQAgAygCACAANgIEIAMoAgBBBGoiACAAKAIAQQQgASgCAGtBA3RqNgIADAILIAVBfzYCACAFKAIAIQAgBCQFIAAPCwALIAUgASgCADYCACAFKAIAIQAgBCQFIAALhQEBAn8jBSEDIwVBIGokBSADQRBqIgQgADYCACADQQxqIgAgATYCACADQQhqIgEgAjYCACADQQRqIgIgASgCADYCACADIAIoAgA2AgAgACgCACADKAIALwEAENwBIQIgBCgCACACNgIAIAAoAgAQkAUaIAQoAgAgASgCAEEEajYCBCADJAULwAMBBn8jBSEDIwVBEGokBSADQQxqIQIgA0EIaiIBIAA2AgAgASgCACgCBEEgSwRAIAJBAzYCACACKAIAIQAgAyQFIAAPCyABKAIAIQUgASgCACgCCCABKAIAKAIMQQRqTwRAIAEoAgBBCGoiACAAKAIAIAUoAgRBA3ZrNgIAIAEoAgBBBGoiACAAKAIAQQdxNgIAIAEoAgAoAggQ4QEhACABKAIAIAA2AgAgAkEANgIAIAIoAgAhACADJAUgAA8LIANBBGohBCADIQAgASgCACgCBCEGIAUoAgggASgCACgCDEcEQCAEIAZBA3Y2AgAgAEEANgIAIAEoAgAoAgggBCgCAGsgASgCACgCDEkEQCAEIAEoAgAoAgggASgCACgCDGs2AgAgAEEBNgIACyABKAIAQQhqIgUgBSgCACAEKAIAazYCACABKAIAQQRqIgUgBSgCACAEKAIAQQN0azYCACABKAIAKAIIEOEBIQQgASgCACAENgIAIAIgACgCADYCACACKAIAIQAgAyQFIAAPCyAGQSBJBH8gAkEBNgIAIAIoAgAhACADJAUgAAUgAkECNgIAIAIoAgAhACADJAUgAAsL6QcBCX8jBSEEIwVBMGokBSAEQSxqIgYgADYCACAEQShqIgMgATYCACAEQRRqIgEgAygCACgCLDYCACAEQRBqIgcgAygCACgCMDYCACAEQSRqIgUgAygCAEEQahDDBEH/AXE2AgAgBEEMaiEAIARBIGoiCSAFKAIABH8gBigCACgCCAUgAygCACgCKAs2AgAgBSgCAEE/RgRAIAEgASgCACICQQFqNgIAIAAgAi0AADYCACAAKAIAQf8BSQRAIAUgBSgCACAAKAIAajYCAAUgBSABKAIAEM8BQf///wdxNgIAIAUoAgAhACAFKAIAQQFxBEAgBSAAQQF2NgIAIAEgASgCAEEDajYCAAUgBSAAQf//A3FBAXU2AgAgASABKAIAQQJqNgIACwsgASgCACAHKAIASwRAIAVBvgI2AgALIAEoAgAgBygCAE8EQCABIAcoAgBBf2o2AgALCyAEQRxqIQggBEEIaiIAIAMoAgBBGGoQwwRB/wFxNgIAIARBBGoiAiAAKAIAQQFrIgo2AgAgAiAAKAIABH8gCgVBAAs2AgAgCCAAKAIAQQJ0QdA9aigCACADKAIAIAIoAgAQ3AFqNgIAIAMoAgAQkAUaIAAoAgBFBEAgCCAJKAIANgIACyAAKAIAIAUoAgBBAEdBAXNyBEAgAygCACAGKAIAKAIINgIoCyADKAIAQRhqIAMoAgAQ2wEaIAMoAgBBEGogAygCABDbARogAygCABCQBRogBEEYaiICIAMoAgBBIGogAygCABDbAUH/AXE2AgAgAigCAEH/AEcEQCACIAIoAgBBBGo2AgAgBigCACAFKAIANgIAIAYoAgAgCCgCADYCCCAGKAIAIAIoAgA2AgQgAygCACABKAIANgIsIAQkBQ8LIAEgASgCACIJQQFqNgIAIAQiACAJLQAANgIAIAQoAgBB/wFJBEAgAiACKAIAIAAoAgBqNgIABSACIAEoAgAQzwFB////B3E2AgAgAigCACEAIAIoAgBBAXEEQCACIABBAXY2AgAgASABKAIAQQNqNgIABSACIABB//8DcUEBdTYCACABIAEoAgBBAmo2AgALCyABKAIAIAcoAgBLBEAgAkH+AjYCAAsgASgCACAHKAIASQRAIAIgAigCAEEEajYCACAGKAIAIAUoAgA2AgAgBigCACAIKAIANgIIIAYoAgAgAigCADYCBCADKAIAIAEoAgA2AiwgBCQFDwsgASAHKAIAQX9qNgIAIAIgAigCAEEEajYCACAGKAIAIAUoAgA2AgAgBigCACAIKAIANgIIIAYoAgAgAigCADYCBCADKAIAIAEoAgA2AiwgBCQFC+gIAQl/IwUhCSMFQUBrJAUgCUE8aiEKIAlBOGoiCCAANgIAIAlBNGoiCyABNgIAIAlBMGoiDCADNgIAIAlBLGoiACAENgIAIAlBKGoiDSAFNgIAIAlBJGoiECAGNgIAIAlBIGoiDiAHNgIAIAlBHGoiAyAIKAIAIAIoAgBqNgIAIAlBGGoiBSACKAIAIAIoAgRqNgIAIAlBFGoiBiAIKAIAIAUoAgBqNgIAIAlBEGoiBCALKAIAQXhqNgIAIAlBDGoiDyAMKAIAKAIAIAIoAgBqNgIAIAlBCGoiASADKAIAIAIoAghrNgIAIAMoAgAgBCgCAEsEQCAKQbp/NgIAIAooAgAhACAJJAUgAA8LIAYoAgAgCygCAEsEQCAKQbp/NgIAIAooAgAhACAJJAUgAA8LIA8oAgAgACgCAEsEQCAKQWw2AgAgCigCACEAIAkkBSAADwsgCUEEaiEHIAkhACAIKAIAIAwoAgAoAgAgAigCABD7AiAIIAMoAgA2AgAgDCgCACAPKAIANgIAAkAgAigCCCADKAIAIA0oAgBrSwRAIAIoAgggAygCACAQKAIAa0sEQCAKQWw2AgAgCigCACEAIAkkBSAADwsgASAOKAIAIA0oAgAgASgCAGtrNgIAIAEoAgAgAigCBGogDigCAE0EQCADKAIAIAEoAgAgAigCBBD1BxogCiAFKAIANgIAIAooAgAhACAJJAUgAA8LIAcgDigCACABKAIAazYCACADKAIAIAEoAgAgBygCABD1BxogCCADKAIAIAcoAgBqNgIAIAJBBGoiAyADKAIAIAcoAgBrNgIAIAEgDSgCADYCACAIKAIAIAQoAgBNBEAgAigCBEEETw0CCwNAIAgoAgAgBigCAEkEQCABIAEoAgAiAEEBajYCACAALAAAIQAgCCAIKAIAIgJBAWo2AgAgAiAAOgAADAELCyAKIAUoAgA2AgAgCigCACEAIAkkBSAADwsLIAIoAghBCEkEQCAAIAIoAghBAnRBkD1qKAIANgIAIAgoAgAgASgCACwAADoAACAIKAIAIAEoAgAsAAE6AAEgCCgCACABKAIALAACOgACIAgoAgAgASgCACwAAzoAAyABIAEoAgAgAigCCEECdEGwPWooAgBqNgIAIAgoAgBBBGogASgCABCeBCABIAEoAgAgACgCAGs2AgAFIAgoAgAgASgCABD8AgsgCCAIKAIAQQhqNgIAIAEgASgCAEEIajYCACAIKAIAIQACQCAGKAIAIAsoAgBBdGpLBEAgACAEKAIASQRAIAgoAgAgASgCACAEKAIAIAgoAgBrEPsCIAEgASgCACAEKAIAIAgoAgBrajYCACAIIAQoAgA2AgALA0AgCCgCACAGKAIATw0CIAEgASgCACIAQQFqNgIAIAAsAAAhACAIIAgoAgAiAkEBajYCACACIAA6AAAMAAsABSAAIAEoAgAgAigCBEEIaxD7AgsLIAogBSgCADYCACAKKAIAIQAgCSQFIAAL0wIBBX8jBSECIwVBMGokBSACQShqIQQgAkEkaiIDIAA2AgAgAkEgaiIFIAE2AgAgAkEcaiIBIAMoAgA2AgAgAkEYaiIAIAEoAgA2AgAgAkEUaiIGIAMoAgBBBGo2AgAgAkEQaiIBIAYoAgA2AgAgAkEMaiIDQQEgBSgCAHQ2AgAgAkEIaiIGIAMoAgBBAWs2AgAgAkEEaiIDIAYoAgA2AgAgBSgCAEEBSQRAIARBfzYCACAEKAIAIQAgAiQFIAAPCyAAKAIAIAUoAgA7AQAgACgCAEEBOwECIAIiAEEANgIAA0AgACgCACADKAIATQRAIAEoAgAgACgCAEECdGpBADsBACABKAIAIAAoAgBBAnRqIAAoAgA6AAIgASgCACAAKAIAQQJ0aiAFKAIAOgADIAAgACgCAEEBajYCAAwBCwsgBEEANgIAIAQoAgAhACACJAUgAAuNCwEQfyMFIQUjBUHQAGokBSAFQUBrIQYgBUE8aiISIAA2AgAgBUE4aiIPIAE2AgAgBUE0aiIIIAI2AgAgBUEwaiIAIAM2AgAgBUEsaiIQIAQ2AgAgBUEoaiIOIAAoAgA2AgAgBUEkaiILIA4oAgAgECgCAGo2AgAgBUEgaiICIA4oAgA2AgAgBUEIaiIJQQA2AgAgBUEEaiITQQA2AgAgECgCAEEESQRAIAZBuH82AgAgBigCACEAIAUkBSAADwsgBUEQaiIDIAIoAgAQzwE2AgAgBUEcaiIEIAMoAgBBD3FBBWo2AgAgBCgCAEEPSgRAIAZBVDYCACAGKAIAIQAgBSQFIAAPCyAFIQAgBUHGAGohESAFQcQAaiEHIAMgAygCAEEEdjYCACAFQQxqIgFBBDYCACAIKAIAIAQoAgA2AgAgBUEYaiIMQQEgBCgCAHRBAWo2AgAgBUEUaiIIQQEgBCgCAHQ2AgAgBCAEKAIAQQFqNgIAAkACQANAAkAgDCgCAEEBTA0AIAkoAgAgDygCACgCAEsNAAJAIBMoAgAEQCAAIAkoAgA2AgADQCADKAIAQf//A3FB//8DRgRAIAAgACgCAEEYajYCACACKAIAIAsoAgBBe2pJBEAgAiACKAIAQQJqNgIAIAMgAigCABDPASABKAIAdjYCAAUgAyADKAIAQRB2NgIAIAEgASgCAEEQajYCAAsMAQsLA0AgAygCAEEDcUEDRgRAIAAgACgCAEEDajYCACADIAMoAgBBAnY2AgAgASABKAIAQQJqNgIADAELCyAAIAAoAgAgAygCAEEDcWo2AgAgASABKAIAQQJqNgIAIAAoAgAgDygCACgCAEsNBANAIAkoAgAgACgCAEkEQCASKAIAIQogCSAJKAIAIg1BAWo2AgAgCiANQQF0akEAOwEADAELCyACKAIAIAsoAgBBeWpLBEAgAigCACABKAIAQQN1aiALKAIAQXxqSwRAIAMgAygCAEECdjYCAAwDCwsgAiACKAIAIAEoAgBBA3VqNgIAIAEgASgCAEEHcTYCACADIAIoAgAQzwEgASgCAHY2AgALCyARIAgoAgBBAXRBAWsgDCgCAGs7AQAgAygCACEKIAgoAgAhDSADKAIAIAgoAgBBAWtxIBEuAQBJBEAgByAKIA1BAWtxOwEAIAEgASgCACAEKAIAQQFrajYCAAUgByAKIA1BAXRBAWtxOwEAIAcuAQAgCCgCAE4EQCAHIAcuAQAgES4BAGs7AQALIAEgASgCACAEKAIAajYCAAsgByAHLgEAQX9qOwEAIAcuAQAQygRBEHRBEHUhCiAMIAwoAgAgCms2AgAgBy4BACEKIBIoAgAhDSAJIAkoAgAiFEEBajYCACANIBRBAXRqIAo7AQAgEyAHLgEAQQBHQQFzNgIAA0AgDCgCACAIKAIASARAIAQgBCgCAEF/ajYCACAIIAgoAgBBAXU2AgAMAQsLAkACQCACKAIAIAsoAgBBeWpNDQAgAigCACABKAIAQQN1aiALKAIAQXxqTQ0AIAEgASgCACALKAIAQXxqIAIoAgBrQQN0azYCACACIAsoAgBBfGo2AgAMAQsgAiACKAIAIAEoAgBBA3VqNgIAIAEgASgCAEEHcTYCAAsgAyACKAIAEM8BIAEoAgBBH3F2NgIADAELCwwBCyAGQVA2AgAgBigCACEAIAUkBSAADwsgDCgCAEEBRwRAIAZBfzYCACAGKAIAIQAgBSQFIAAPCyAPKAIAIAkoAgBBAWs2AgAgAiACKAIAIAEoAgBBB2pBA3VqNgIAIAIoAgAgDigCAGsgECgCAEsEfyAGQbh/NgIAIAYoAgAhACAFJAUgAAUgBiACKAIAIA4oAgBrNgIAIAYoAgAhACAFJAUgAAsLzgcBEX8jBSEEIwVB0ARqJAUgBEG8BGohBiAEQbgEaiINIAA2AgAgBEG0BGoiByABNgIAIARBsARqIgggAjYCACAEQawEaiIJIAM2AgAgBEGoBGoiACANKAIAQQRqNgIAIARBpARqIgMgACgCADYCACAEQaAEaiIKQQEgCSgCAHQ2AgAgBEGcBGoiDiAKKAIAQQFrNgIAIARBmARqIg8gCigCABCWBTYCACAEQZQEaiICQQA2AgAgBEGQBGoiDCAKKAIAQQFrNgIAIARBwgRqIgtBASAJKAIAQQFrdDsBACAEQYwEaiIQQQE2AgAgCCgCAEH/AUsEQCAGQVI2AgAgBigCACEAIAQkBSAADwsgCSgCAEEMSwRAIAZBVDYCACAGKAIAIQAgBCQFIAAPCyAEIQAgBEGEBGohBSAEQcQEaiIRIAkoAgA7AQAgBEGIBGoiAUEANgIAA0AgASgCACAIKAIATQRAIAcoAgAgASgCAEEBdGouAQBBf0YEQCABKAIAQf8BcSESIAMoAgAhEyAMIAwoAgAiFEF/ajYCACATIBRBAnRqIBI6AAIgACABKAIAQQF0akEBOwEABSAHKAIAIAEoAgBBAXRqLgEAIAsuAQBOBEAgEEEANgIACyAAIAEoAgBBAXRqIAcoAgAgASgCAEEBdGouAQA7AQALIAEgASgCAEEBajYCAAwBCwsgAUEANgIAA0AgASgCACAIKAIATQRAIAVBADYCAANAIAEoAgAhCyAFKAIAIAcoAgAgASgCAEEBdGouAQBIBEAgAygCACACKAIAQQJ0aiALOgACIAIgAigCACAPKAIAaiAOKAIAcTYCAANAIAIoAgAgDCgCAEsEQCACIAIoAgAgDygCAGogDigCAHE2AgAMAQsLIAUgBSgCAEEBajYCAAwBCwsgASALQQFqNgIADAELCyACKAIABEAgBkF/NgIAIAYoAgAhACAEJAUgAA8LIARByARqIQcgBEHABGohAiAEQYAEaiIBQQA2AgADQCABKAIAIAooAgBJBEAgByADKAIAIAEoAgBBAnRqLAACOgAAIAAgBy0AAEEBdGoiCC4BACEFIAggBUEBajsBACACIAU7AQAgCSgCACACLwEAENQBa0H/AXEhBSADKAIAIAEoAgBBAnRqIAU6AAMgAygCACABKAIAQQJ0aiACLwEAIAMoAgAgASgCAEECdGotAAN0IAooAgBrOwEAIAEgASgCAEEBajYCAAwBCwsgESAQKAIAOwECIA0oAgAgESgBADYBACAGQQA2AgAgBigCACEAIAQkBSAACzIBAX8jBSEBIwVBEGokBSABIAA2AgAgASgCAEEBdiABKAIAQQN2akEDaiEAIAEkBSAAC60CAQZ/IwUhBCMFQaDAAGokBSAEQZzAAGohBSAEQZjAAGoiByAANgIAIARBlMAAaiIIIAE2AgAgBEGQwABqIgYgAjYCACAEQYzAAGoiASADNgIAIAQiAEEAQYLAABD2BxogBEEMOwEAIARBiMAAaiIDIAYoAgA2AgAgBEGEwABqIgIgBCAGKAIAIAEoAgAQpQU2AgAgAigCABDMAUEARyEJIAIoAgAhBiAJBEAgBSAGNgIAIAUoAgAhACAEJAUgAA8LIAYgASgCAE8EfyAFQbh/NgIAIAUoAgAhACAEJAUgAAUgAyADKAIAIAIoAgBqNgIAIAEgASgCACACKAIAazYCACAFIAcoAgAgCCgCACADKAIAIAEoAgAgABCoBTYCACAFKAIAIQAgBCQFIAALC+4DAQd/IwUhBCMFQTBqJAUgBEEsaiEFIARBKGoiByAANgIAIARBJGoiBiABNgIAIARBIGoiCCACNgIAIARBHGoiAiADNgIAIARBFGoiCiAGKAIAQQh2NgIAIARBBGoiA0EANgIAIAYoAgBFBEAgBUG6fzYCACAFKAIAIQAgBCQFIAAPCyACKAIAIAYoAgBPBEAgBUFsNgIAIAUoAgAhACAEJAUgAA8LIAIoAgBBAUYEQCAHKAIAIAgoAgAtAAAgBigCABD2BxogBSAGKAIANgIAIAUoAgAhACAEJAUgAA8LIARBCGohASAEQRhqIgkgAigCAEEEdCAGKAIAbjYCACAEIgBBADYCAANAIAAoAgBBA0gEQCABIAAoAgBBAnRqIAkoAgBBGGxB0D5qIAAoAgBBA3RqKAIAIAkoAgBBGGwgACgCAEEDdGpB1D5qKAIAIAooAgBsajYCACAAIAAoAgBBAWo2AgAMAQsLIAFBBGoiACAAKAIAIAEoAgRBBHZqNgIAIAFBCGoiACAAKAIAIAEoAghBA3ZqNgIAIAEoAgQgASgCAEkEQCADQQE2AgALIAUgBygCACAGKAIAIAgoAgAgAigCACADKAIAQQJ0QbjlAGooAgBBD3FBqAFqEQgANgIAIAUoAgAhACAEJAUgAAvFAgEGfyMFIQUjBUHQAGokBSAFQUBrIQYgBUE8aiIHIAA2AgAgBUE4aiIIIAE2AgAgBUE0aiIBIAI2AgAgBUEwaiIJIAM2AgAgBUEsaiIAIAQ2AgAgBUEoaiIDIAEoAgA2AgAgBUEkaiIBIAcoAgA2AgAgBUEgaiIEIAEoAgAgCCgCAGo2AgAgBUEcaiIHIAAoAgAoAgA2AgAgBUEYaiICIAAoAgA2AgAgBUEUaiIKIAIoAgBBBGo2AgAgBUEQaiICIAUiACADKAIAIAkoAgAQjgU2AgAgAigCABDMAQRAIAYgAigCADYCACAGKAIAIQAgBSQFIAAPCyABKAIAIAAgBCgCACAKKAIAIAcoAgAQmgUaIAAQ1QMEfyAGIAgoAgA2AgAgBigCACEAIAUkBSAABSAGQWw2AgAgBigCACEAIAUkBSAACwulAwEEfyMFIQYjBUEgaiQFIAZBFGoiBSAANgIAIAZBEGoiByABNgIAIAZBDGoiCCACNgIAIAZBCGoiASADNgIAIAZBBGoiAiAENgIAIAYiACAFKAIANgIAA0ACQCAHKAIAEJAFDQAgBSgCACAIKAIAQXlqTw0AIAUoAgAgBygCACABKAIAIAIoAgAQ0AQhAyAFIAUoAgAgA2o2AgAgBSgCACAHKAIAIAEoAgAgAigCABDQBCEDIAUgBSgCACADajYCAAwBCwsDQAJAIAcoAgAQkAUNACAFKAIAIAgoAgBBfmpLDQAgBSgCACAHKAIAIAEoAgAgAigCABDQBCEDIAUgBSgCACADajYCAAwBCwsDQCAFKAIAIQMgBSgCACAIKAIAQX5qTQRAIAMgBygCACABKAIAIAIoAgAQ0AQhAyAFIAUoAgAgA2o2AgAMAQsLIAMgCCgCAE8EQCAFKAIAIAAoAgBrIQAgBiQFIAAPCyAFKAIAIAcoAgAgASgCACACKAIAENEEIQEgBSAFKAIAIAFqNgIAIAUoAgAgACgCAGshACAGJAUgAAutAgEGfyMFIQQjBUGgwABqJAUgBEGcwABqIQUgBEGYwABqIgcgADYCACAEQZTAAGoiCCABNgIAIARBkMAAaiIGIAI2AgAgBEGMwABqIgEgAzYCACAEIgBBAEGCwAAQ9gcaIARBDDsBACAEQYjAAGoiAyAGKAIANgIAIARBhMAAaiICIAQgBigCACABKAIAEKUFNgIAIAIoAgAQzAFBAEchCSACKAIAIQYgCQRAIAUgBjYCACAFKAIAIQAgBCQFIAAPCyAGIAEoAgBPBH8gBUG4fzYCACAFKAIAIQAgBCQFIAAFIAMgAygCACACKAIAajYCACABIAEoAgAgAigCAGs2AgAgBSAHKAIAIAgoAgAgAygCACABKAIAIAAQpgU2AgAgBSgCACEAIAQkBSAACwutAgEGfyMFIQQjBUGggAFqJAUgBEGcgAFqIQUgBEGYgAFqIgcgADYCACAEQZSAAWoiCCABNgIAIARBkIABaiIGIAI2AgAgBEGMgAFqIgEgAzYCACAEIgBBAEGEgAEQ9gcaIARBDDYCACAEQYiAAWoiAyAGKAIANgIAIARBhIABaiICIAQgBigCACABKAIAEJ0FNgIAIAIoAgAQzAFBAEchCSACKAIAIQYgCQRAIAUgBjYCACAFKAIAIQAgBCQFIAAPCyAGIAEoAgBPBH8gBUG4fzYCACAFKAIAIQAgBCQFIAAFIAMgAygCACACKAIAajYCACABIAEoAgAgAigCAGs2AgAgBSAHKAIAIAgoAgAgAygCACABKAIAIAAQngU2AgAgBSgCACEAIAQkBSAACwvgCQEbfyMFIQMjBUHQEGokBSADQcgQaiEHIANBxBBqIgQgADYCACADQcAQaiIAIAE2AgAgA0G8EGoiASACNgIAIANBkAlqIgJCADcDACACQgA3AwggAkIANwMQIAJCADcDGCACQgA3AyAgAkIANwMoIAJCADcDMCACQgA3AzggAkFAa0EANgIAIANBwAhqIgZCADcDACAGQgA3AwggBkIANwMQIAZCADcDGCAGQgA3AyAgBkIANwMoIAZCADcDMCAGQgA3AzggBkFAa0IANwMAIANBuBBqIg0gBkEEajYCACADQaQQaiILIAQoAgAoAgA2AgAgA0GcEGoiBSAEKAIANgIAIANBmBBqIhsgBSgCAEEEajYCACALKAIAQRBLBEAgB0FUNgIAIAcoAgAhACADJAUgAA8LIANBoBBqIg8gA0HgDWoiHEGAAiACIANBqBBqIh0gA0G0EGoiDCAAKAIAIAEoAgAQnwU2AgAgDygCABDMAQRAIAcgDygCADYCACAHKAIAIQAgAyQFIAAPCyAMKAIAIAsoAgBLBEAgB0FUNgIAIAcoAgAhACADJAUgAA8LIANB4AlqIRAgAyEAIANBrBBqIRUgA0GUEGohBSADQZAQaiEIIANBjBBqIRYgA0GIEGohCSADQYQQaiERIANBgBBqIRIgA0H8D2ohEyADQfgPaiEOIANB9A9qIQEgA0HwD2ohCiADQewPaiEXIANB6A9qIRQgA0HkD2ohGCADQeAPaiEZIANBsBBqIgQgDCgCADYCAANAIAIgBCgCAEECdGooAgBFBEAgBCAEKAIAQX9qNgIADAELCyAIQQA2AgAgBUEBNgIAA0AgCCgCACEaIAUoAgAgBCgCAE0EQCAWIBo2AgAgCCAIKAIAIAIgBSgCAEECdGooAgBqNgIAIA0oAgAgBSgCAEECdGogFigCADYCACAFIAUoAgBBAWo2AgAMAQsLIA0oAgAgGjYCACAVIAgoAgA2AgAgCUEANgIAA0AgCSgCACAdKAIASQRAIBEgHCAJKAIAai0AADYCACANKAIAIBEoAgBBAnRqIggoAgAhBSAIIAVBAWo2AgAgEiAFNgIAIBAgEigCAEEBdGogCSgCADoAACAQIBIoAgBBAXRqIBEoAgA6AAEgCSAJKAIAQQFqNgIADAELCyANKAIAQQA2AgAgEyAMKAIAQQFqIAQoAgBrNgIAIA5BADYCACAXIAsoAgAgDCgCAGtBAWs2AgAgFCAANgIAIAFBATYCAANAIAEoAgAgBCgCAE0EQCAYIA4oAgA2AgAgDiAOKAIAIAIgASgCAEECdGooAgAgASgCACAXKAIAanRqNgIAIBQoAgAgASgCAEECdGogGCgCADYCACABIAEoAgBBAWo2AgAMAQsLIAogEygCADYCAANAIAooAgAgCygCACATKAIAa00EQCAZIAAgCigCAEHEAGxqNgIAIAFBATYCAANAIAEoAgAgBCgCAE0EQCAZKAIAIAEoAgBBAnRqIBQoAgAgASgCAEECdGooAgAgCigCAHY2AgAgASABKAIAQQFqNgIADAELCyAKIAooAgBBAWo2AgAMAQsLIBsoAgAgCygCACAQIBUoAgAgBiAAIAQoAgAgDCgCAEEBahCgBSAHIA8oAgA2AgAgBygCACEAIAMkBSAAC+QLARJ/IwUhBSMFQcABaiQFIAVBuAFqIQYgBUG0AWoiCCAANgIAIAVBsAFqIhAgATYCACAFQawBaiIBIAI2AgAgBUGoAWoiCSADNgIAIAVBpAFqIgMgBDYCACAJKAIAQQpJBEAgBkFsNgIAIAYoAgAhACAFJAUgAA8LIAVBoAFqIgAgASgCADYCACAFQZwBaiIEIAgoAgA2AgAgBUGYAWoiEiAEKAIAIBAoAgBqNgIAIAVBlAFqIgIgAygCADYCACAFQZABaiIBIAIoAgBBBGo2AgAgBUGMAWoiAiADKAIAKAIANgIAIAVBQGsiCiAAKAIAENgDQf//A3E2AgAgBUE8aiILIAAoAgBBAmoQ2ANB//8DcTYCACAFQThqIgwgACgCAEEEahDYA0H//wNxNgIAIAVBMGoiByAAKAIAQQZqNgIAIAVBLGoiEyAHKAIAIAooAgBqNgIAIAVBKGoiFCATKAIAIAsoAgBqNgIAIAVBJGoiFiAUKAIAIAwoAgBqNgIAIAVBIGoiACAQKAIAQQNqQQRuNgIAIAVBHGoiDiAEKAIAIAAoAgBqNgIAIAVBGGoiDyAOKAIAIAAoAgBqNgIAIAVBFGoiESAPKAIAIAAoAgBqNgIAIAVBEGoiAyAEKAIANgIAIAVBDGoiBCAOKAIANgIAIAVBCGoiCCAPKAIANgIAIAVBBGoiDSARKAIANgIAIAVBNGoiFSAJKAIAIAooAgAgCygCAGogDCgCAGpBBmprNgIAIBUoAgAgCSgCAEsEQCAGQWw2AgAgBigCACEAIAUkBSAADwsgBUGIAWoiACAFQfgAaiIJIAcoAgAgCigCABCOBTYCACAAKAIAEMwBBEAgBiAAKAIANgIAIAYoAgAhACAFJAUgAA8LIAAgBUHoAGoiCiATKAIAIAsoAgAQjgU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAAIAVB2ABqIgsgFCgCACAMKAIAEI4FNgIAIAAoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgACAFQcgAaiIMIBYoAgAgFSgCABCOBTYCACAAKAIAEMwBBEAgBiAAKAIANgIAIAYoAgAhACAFJAUgAA8LIAUiACAJEJAFIAoQkAVyIAsQkAVyIAwQkAVyNgIAA0ACQCAAKAIADQAgDSgCACASKAIAQXlqTw0AIAMoAgAgCSABKAIAIAIoAgAQ0AQhByADIAMoAgAgB2o2AgAgBCgCACAKIAEoAgAgAigCABDQBCEHIAQgBCgCACAHajYCACAIKAIAIAsgASgCACACKAIAENAEIQcgCCAIKAIAIAdqNgIAIA0oAgAgDCABKAIAIAIoAgAQ0AQhByANIA0oAgAgB2o2AgAgAygCACAJIAEoAgAgAigCABDQBCEHIAMgAygCACAHajYCACAEKAIAIAogASgCACACKAIAENAEIQcgBCAEKAIAIAdqNgIAIAgoAgAgCyABKAIAIAIoAgAQ0AQhByAIIAgoAgAgB2o2AgAgDSgCACAMIAEoAgAgAigCABDQBCEHIA0gDSgCACAHajYCACAAIAkQkAUgChCQBXIgCxCQBXIgDBCQBXI2AgAMAQsLIAMoAgAgDigCAEsEQCAGQWw2AgAgBigCACEAIAUkBSAADwsgBCgCACAPKAIASwRAIAZBbDYCACAGKAIAIQAgBSQFIAAPCyAIKAIAIBEoAgBLBEAgBkFsNgIAIAYoAgAhACAFJAUgAA8LIAMoAgAgCSAOKAIAIAEoAgAgAigCABCaBRogBCgCACAKIA8oAgAgASgCACACKAIAEJoFGiAIKAIAIAsgESgCACABKAIAIAIoAgAQmgUaIA0oAgAgDCASKAIAIAEoAgAgAigCABCaBRogACAJENUDIAoQ1QNxIAsQ1QNxIAwQ1QNxNgIAIAAoAgAEfyAGIBAoAgA2AgAgBigCACEAIAUkBSAABSAGQWw2AgAgBigCACEAIAUkBSAACwuoCQENfyMFIQcjBUHQAGokBSAHQcQAaiEIIAdBQGsiCSAANgIAIAdBPGoiDCABNgIAIAdBOGoiCiACNgIAIAdBNGoiEiADNgIAIAdBMGoiEyAENgIAIAdBLGoiACAFNgIAIAdBKGoiDSAGNgIAIAdBHGoiBCAAKAIANgIAIA0oAgBFBEAgCEG4fzYCACAIKAIAIQAgByQFIAAPCyAHQSRqIQUgB0EgaiEGIAdBFGohAiAHQRBqIQEgB0EMaiEOIAdBCGohCyAHQQRqIQ8gByEAIAdBGGoiAyAEKAIALQAANgIAIAMoAgAhEAJAIAMoAgBBgAFPBEAgAygCACERIBBB8gFPBEAgAiARQQJ0QYg6aigCADYCACAJKAIAQQEgDCgCABD2BxogA0EANgIADAILIAIgEUH/AGs2AgAgAyACKAIAQQFqQQJuNgIAIAMoAgBBAWogDSgCAEsEQCAIQbh/NgIAIAgoAgAhACAHJAUgAA8LIAIoAgAgDCgCAE8EQCAIQWw2AgAgCCgCACEAIAckBSAADwsgBCAEKAIAQQFqNgIAIAFBADYCAANAIAEoAgAgAigCAE8NAiAJKAIAIAEoAgBqIAQoAgAgASgCAEECbmotAABBBHU6AAAgCSgCACABKAIAQQFqaiAEKAIAIAEoAgBBAm5qLQAAQQ9xOgAAIAEgASgCAEECajYCAAwACwAFIBBBAWogDSgCAEsEQCAIQbh/NgIAIAgoAgAhACAHJAUgAA8LIAIgCSgCACAMKAIAQQFrIAQoAgBBAWogAygCABCiBTYCACACKAIAEMwBBEAgCCACKAIANgIAIAgoAgAhACAHJAUgAA8LCwsgCigCACIEQgA3AgAgBEIANwIIIARCADcCECAEQgA3AhggBEIANwIgIARCADcCKCAEQgA3AjAgBEIANwI4IARBQGtBADYCACAFQQA2AgAgAUEANgIAAkACQANAIAEoAgAgAigCAEkEQCAJKAIAIAEoAgBqLQAAQRBODQIgCigCACAJKAIAIAEoAgBqLQAAQQJ0aiIEIAQoAgBBAWo2AgAgBSAFKAIAQQEgCSgCACABKAIAai0AAHRBAXVqNgIAIAEgASgCAEEBajYCAAwBCwsMAQsgCEFsNgIAIAgoAgAhACAHJAUgAA8LIAUoAgBFBEAgCEFsNgIAIAgoAgAhACAHJAUgAA8LIAYgBSgCABDUAUEBajYCACAGKAIAQRBLBEAgCEFsNgIAIAgoAgAhACAHJAUgAA8LIA5BASAGKAIAdDYCACALIA4oAgAgBSgCAGs2AgAgD0EBIAsoAgAQ1AF0NgIAIAAgCygCABDUAUEBajYCACAPKAIAIAsoAgBHBEAgCEFsNgIAIAgoAgAhACAHJAUgAA8LIAkoAgAgAigCAGogACgCADoAACAKKAIAIAAoAgBBAnRqIgAgACgCAEEBajYCACAKKAIAKAIEQQJPBEAgCigCACgCBEEBcUUEQCASKAIAIAIoAgBBAWo2AgAgEygCACAGKAIANgIAIAggAygCAEEBajYCACAIKAIAIQAgByQFIAAPCwsgCEFsNgIAIAgoAgAhACAHJAUgAAuhBgEQfyMFIQgjBUGgAWokBSAIQZQBaiEQIAhB4ABqIQwgCEHcAGohCSAIQdgAaiENIAhB1ABqIREgCEHQAGohEiAIQcwAaiEKIAhByABqIQsgCEHEAGohFCAIQZABaiEOIAhBjAFqIhUgADYCACAIQYgBaiIPIAE2AgAgCEGEAWoiEyACNgIAIAhBgAFqIhYgAzYCACAIQfwAaiIXIAQ2AgAgCEH4AGoiAyAFNgIAIAhB9ABqIgAgBjYCACAIQfAAaiICIAc2AgAgCEHsAGoiBCACKAIAIA8oAgBrNgIAIAhB6ABqIgUgAigCACAAKAIAazYCACAIIgAgAygCACIBKQIANwIAIAggASkCCDcCCCAIIAEpAhA3AhAgCCABKQIYNwIYIAggASkCIDcCICAIIAEpAig3AiggCCABKQIwNwIwIAggASkCODcCOCAIQUBrIAFBQGsoAgA2AgAgCEHkAGoiAUEANgIAA0AgASgCACAWKAIASQRAIBAgEygCACABKAIAQQF0ai0AADsBACAMIBMoAgAgASgCAEEBdGotAAE2AgAgCSACKAIAIAwoAgBrNgIAIA0gACAMKAIAQQJ0aigCADYCACARQQEgDygCACAJKAIAa3Q2AgACQCAPKAIAIAkoAgBrIAUoAgBPBEAgCiAJKAIAIAQoAgBqIgY2AgAgCiAKKAIAQQFIBH9BAQUgBgs2AgAgEiAXKAIAIAooAgBBAnRqKAIANgIAIBUoAgAgDSgCAEECdGogDygCACAJKAIAayAJKAIAIAMoAgAgCSgCAEHEAGxqIAooAgAgEygCACASKAIAQQF0aiAWKAIAIBIoAgBrIAIoAgAgEC4BABChBQUgFCANKAIAIBEoAgBqNgIAIA4gEC4BABCaAiAOIAkoAgA6AAIgDkEBOgADIAsgDSgCADYCAANAIAsoAgAgFCgCAE8NAiAVKAIAIAsoAgBBAnRqIA4oAQA2AQAgCyALKAIAQQFqNgIADAALAAsLIAAgDCgCAEECdGoiBiAGKAIAIBEoAgBqNgIAIAEgASgCAEEBajYCAAwBCwsgCCQFC+QFAQ9/IwUhCSMFQaABaiQFIAlBjAFqIQogCUHoAGohCyAJQeQAaiEMIAlB4ABqIRIgCUHcAGohEyAJQdgAaiENIAlB1ABqIQ8gCUHQAGohECAJQcwAaiERIAlByABqIQ4gCUHEAGohFCAJQYgBaiIVIAA2AgAgCUGEAWoiFyABNgIAIAlBgAFqIhYgAjYCACAJQfwAaiIBIAM2AgAgCUH4AGoiAiAENgIAIAlB9ABqIgMgBTYCACAJQfAAaiIFIAY2AgAgCUHsAGoiBiAHNgIAIAlBkAFqIgQgCDsBACAJIgAgASgCACIBKQIANwIAIAkgASkCCDcCCCAJIAEpAhA3AhAgCSABKQIYNwIYIAkgASkCIDcCICAJIAEpAig3AiggCSABKQIwNwIwIAkgASkCODcCOCAJQUBrIAFBQGsoAgA2AgACQCACKAIAQQFKBEAgEiAAIAIoAgBBAnRqKAIANgIAIAogBC4BABCaAiAKIBYoAgA6AAIgCkEBOgADIAxBADYCAANAIAwoAgAgEigCAE8NAiAVKAIAIAwoAgBBAnRqIAooAQA2AQAgDCAMKAIAQQFqNgIADAALAAsLIAtBADYCAANAIAsoAgAgBSgCAEkEQCATIAMoAgAgCygCAEEBdGotAAA2AgAgDSADKAIAIAsoAgBBAXRqLQABNgIAIA8gBigCACANKAIAazYCACAQQQEgFygCACAPKAIAa3Q2AgAgESAAIA0oAgBBAnRqKAIANgIAIA4gESgCADYCACAUIBEoAgAgECgCAGo2AgAgCiAELwEAIBMoAgBBCHRqQf//A3EQmgIgCiAPKAIAIBYoAgBqOgACIApBAjoAAwNAIBUoAgAhASAOIA4oAgAiAkEBajYCACABIAJBAnRqIAooAQA2AQAgDigCACAUKAIASQ0ACyAAIA0oAgBBAnRqIgEgASgCACAQKAIAajYCACALIAsoAgBBAWo2AgAMAQsLIAkkBQumAwEIfyMFIQQjBUHAhAFqJAUgBEG0hAFqIQUgBEGwhAFqIgcgADYCACAEQayEAWoiCCABNgIAIARBqIQBaiIBIAI2AgAgBEGkhAFqIgIgAzYCACAEQaCEAWoiACABKAIANgIAIARBnIQBaiIDIAAoAgA2AgAgBEGUhAFqIgZB/wE2AgAgAigCAEECSQRAIAVBuH82AgAgBSgCACEAIAQkBSAADwsgBEGQhAFqIgEgBEGQgAFqIgkgBiAEQZiEAWoiCiAAKAIAIAIoAgAQlAU2AgAgASgCABDMAUEARyELIAEoAgAhACALBEAgBSAANgIAIAUoAgAhACAEJAUgAA8LIAAgAigCAE8EQCAFQbh/NgIAIAUoAgAhACAEJAUgAA8LIAMgAygCACABKAIAajYCACACIAIoAgAgASgCAGs2AgAgASAEIgAgCSAGKAIAIAooAgAQlQU2AgAgASgCABDMAQR/IAUgASgCADYCACAFKAIAIQAgBCQFIAAFIAUgBygCACAIKAIAIAMoAgAgAigCACAAEKMFNgIAIAUoAgAhACAEJAUgAAsLnA4BJH8jBSEFIwVB0AFqJAUgBUHAAWohECAFQbwBaiEbIAVBuAFqIRwgBUG0AWohHSAFQbABaiEeIAVBrAFqIRUgBUGoAWohCiAFQaQBaiEWIAVBoAFqIQggBUGcAWohESAFQZgBaiEfIAVBiAFqIQYgBUGAAWohCyAFQfgAaiEMIAVB9ABqIRcgBUHwAGohEiAFQewAaiEgIAVB6ABqISEgBUHkAGohIiAFQeAAaiEjIAVB3ABqIRggBUHYAGohDSAFQdQAaiEZIAVB0ABqIQkgBUHMAGohEyAFQcgAaiEkIAVBOGohByAFQTBqIQ4gBUEoaiEPIAVBJGohGiAFQSBqIRQgBUEcaiIlIAA2AgAgBUEYaiImIAE2AgAgBUEUaiInIAI2AgAgBUEQaiIoIAM2AgAgBUEMaiIAIAQ2AgAgBUEIaiIBIAAoAgA2AgAgBUEEaiICIAEoAgA2AgAgBSACKAIALwECNgIAICUoAgAhASAmKAIAIQIgJygCACEDICgoAgAhBCAAKAIAIQAgBSgCAAR/ICAgATYCACAhIAI2AgAgIiADNgIAICMgBDYCACAYIAA2AgAgDUEBNgIAIBkgICgCADYCACAJIBkoAgA2AgAgEyAJKAIAICEoAgBqNgIAICQgEygCAEF9ajYCACAaIAcgIigCACAjKAIAEI4FNgIAAkAgGigCABDMAQRAIBIgGigCADYCAAUgDiAHIBgoAgAQjwUgDyAHIBgoAgAQjwUCQAJAA0ACQCAHEJAFDQAgCSgCACAkKAIATw0AIA0oAgAEfyAOIAcQ2gFB/wFxBSAOIAcQ2wFB/wFxCyEAIAkoAgAgADoAACANKAIABH8gDyAHENoBQf8BcQUgDyAHENsBQf8BcQshACAJKAIAIAA6AAEgBxCQBUEASw0CIA0oAgAEfyAOIAcQ2gFB/wFxBSAOIAcQ2wFB/wFxCyEAIAkoAgAgADoAAiANKAIABH8gDyAHENoBQf8BcQUgDyAHENsBQf8BcQshACAJKAIAIAA6AAMgCSAJKAIAQQRqNgIADAELCwwBCyAJIAkoAgBBAmo2AgALA0ACQCAHEJAFQQJLDQAgCSgCACATKAIARg0AIAcQ1QMEQCANKAIADQEgDhCkBQ0BCyANKAIABH8gDiAHENoBQf8BcQUgDiAHENsBQf8BcQshACAJIAkoAgAiAUEBajYCACABIAA6AAAgBxCQBUECSw0AIAkoAgAgEygCAEYNACAHENUDBEAgDSgCAA0BIA8QpAUNAQsgDSgCAAR/IA8gBxDaAUH/AXEFIA8gBxDbAUH/AXELIQAgCSAJKAIAIgFBAWo2AgAgASAAOgAADAELCyAHENUDBEAgDhCkBQRAIA8QpAUEQCASIAkoAgAgGSgCAGs2AgAMBAsLCyAJKAIAIBMoAgBGBEAgEkG6fzYCAAUgEkFsNgIACwsLIBQgEigCADYCACAUKAIAIQAgBSQFIAAFIBsgATYCACAcIAI2AgAgHSADNgIAIB4gBDYCACAVIAA2AgAgCkEANgIAIBYgGygCADYCACAIIBYoAgA2AgAgESAIKAIAIBwoAgBqNgIAIB8gESgCAEF9ajYCACAXIAYgHSgCACAeKAIAEI4FNgIAAkAgFygCABDMAQRAIBAgFygCADYCAAUgCyAGIBUoAgAQjwUgDCAGIBUoAgAQjwUCQAJAA0ACQCAGEJAFDQAgCCgCACAfKAIATw0AIAooAgAEfyALIAYQ2gFB/wFxBSALIAYQ2wFB/wFxCyEAIAgoAgAgADoAACAKKAIABH8gDCAGENoBQf8BcQUgDCAGENsBQf8BcQshACAIKAIAIAA6AAEgBhCQBUEASw0CIAooAgAEfyALIAYQ2gFB/wFxBSALIAYQ2wFB/wFxCyEAIAgoAgAgADoAAiAKKAIABH8gDCAGENoBQf8BcQUgDCAGENsBQf8BcQshACAIKAIAIAA6AAMgCCAIKAIAQQRqNgIADAELCwwBCyAIIAgoAgBBAmo2AgALA0ACQCAGEJAFQQJLDQAgCCgCACARKAIARg0AIAYQ1QMEQCAKKAIADQEgCxCkBQ0BCyAKKAIABH8gCyAGENoBQf8BcQUgCyAGENsBQf8BcQshACAIIAgoAgAiAUEBajYCACABIAA6AAAgBhCQBUECSw0AIAgoAgAgESgCAEYNACAGENUDBEAgCigCAA0BIAwQpAUNAQsgCigCAAR/IAwgBhDaAUH/AXEFIAwgBhDbAUH/AXELIQAgCCAIKAIAIgFBAWo2AgAgASAAOgAADAELCyAGENUDBEAgCxCkBQRAIAwQpAUEQCAQIAgoAgAgFigCAGs2AgAMBAsLCyAIKAIAIBEoAgBGBEAgEEG6fzYCAAUgEEFsNgIACwsLIBQgECgCADYCACAUKAIAIQAgBSQFIAALCycBAX8jBSEBIwVBEGokBSABIAA2AgAgASgCACgCAEUhACABJAUgAAuMBQEMfyMFIQMjBUGQA2okBSADQYgDaiEGIANBhANqIgQgADYCACADQYADaiIFIAE2AgAgA0H8AmoiASACNgIAIANB+AJqIgdBADYCACADQfACaiILQQA2AgAgA0HkAmoiACAEKAIAQQJqNgIAIANB4AJqIg0gACgCADYCACADQfQCaiIIIANB0ABqIg5BgAIgAyIAIAsgByAFKAIAIAEoAgAQnwU2AgAgCCgCABDMAQRAIAYgCCgCADYCACAGKAIAIQAgAyQFIAAPCyAHKAIAIAQoAgAvAQBLBEAgBkFUNgIAIAYoAgAhACADJAUgAA8LIANB3AJqIQwgA0HYAmohAiADQdQCaiEJIANB0AJqIQUgA0GMA2ohCiAEKAIAIAcoAgA7AQAgA0HoAmoiBEEANgIAIANB7AJqIgFBATYCAANAIAEoAgAgBygCAE0EQCAMIAQoAgA2AgAgBCAEKAIAIAAgASgCAEECdGooAgAgASgCAEEBa3RqNgIAIAAgASgCAEECdGogDCgCADYCACABIAEoAgBBAWo2AgAMAQsLIAFBADYCAANAIAEoAgAgCygCAEkEQCACIA4gASgCAGotAAA2AgAgCUEBIAIoAgB0QQF1NgIAIAogASgCADoAACAKIAcoAgBBAWogAigCAGs6AAEgBSAAIAIoAgBBAnRqKAIANgIAA0AgBSgCACAAIAIoAgBBAnRqKAIAIAkoAgBqSQRAIA0oAgAgBSgCAEEBdGogCi4AADsAACAFIAUoAgBBAWo2AgAMAQsLIAAgAigCAEECdGoiBCAEKAIAIAkoAgBqNgIAIAEgASgCAEEBajYCAAwBCwsgBiAIKAIANgIAIAYoAgAhACADJAUgAAuEDAESfyMFIQUjBUHAAWokBSAFQbgBaiEGIAVBtAFqIg0gADYCACAFQbABaiIRIAE2AgAgBUGsAWoiASACNgIAIAVBqAFqIgkgAzYCACAFQaQBaiIDIAQ2AgAgBUGgAWoiACABKAIANgIAIAVBnAFqIgQgDSgCADYCACAFQZgBaiITIAQoAgAgESgCAGo2AgAgBUGUAWoiAiADKAIANgIAIAVBkAFqIgEgAigCAEECajYCACAFQYwBaiICIAMoAgAvAQA2AgAgBUFAayIKIAAoAgAQ2ANB//8DcTYCACAFQTxqIgsgACgCAEECahDYA0H//wNxNgIAIAVBOGoiDCAAKAIAQQRqENgDQf//A3E2AgAgBUEwaiIHIAAoAgBBBmo2AgAgBUEsaiIIIAcoAgAgCigCAGo2AgAgBUEoaiIUIAgoAgAgCygCAGo2AgAgBUEkaiIWIBQoAgAgDCgCAGo2AgAgBUEgaiIAIBEoAgBBA2pBBG42AgAgBUEcaiIPIAQoAgAgACgCAGo2AgAgBUEYaiIQIA8oAgAgACgCAGo2AgAgBUEUaiISIBAoAgAgACgCAGo2AgAgBUEQaiIDIAQoAgA2AgAgBUEMaiIEIA8oAgA2AgAgBUEIaiINIBAoAgA2AgAgBUEEaiIOIBIoAgA2AgAgCSgCAEEKSQRAIAZBbDYCACAGKAIAIQAgBSQFIAAPCyAFQTRqIhUgCSgCACAKKAIAIAsoAgBqIAwoAgBqQQZqazYCACAVKAIAIAkoAgBLBEAgBkFsNgIAIAYoAgAhACAFJAUgAA8LIAVBiAFqIgAgBUH4AGoiCSAHKAIAIAooAgAQjgU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAAIAVB6ABqIgogCCgCACALKAIAEI4FNgIAIAAoAgAQzAEEQCAGIAAoAgA2AgAgBigCACEAIAUkBSAADwsgACAFQdgAaiILIBQoAgAgDCgCABCOBTYCACAAKAIAEMwBBEAgBiAAKAIANgIAIAYoAgAhACAFJAUgAA8LIAAgBUHIAGoiDCAWKAIAIBUoAgAQjgU2AgAgACgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyAFIgAgCRCQBSAKEJAFciALEJAFciAMEJAFcjYCAANAAkAgACgCAA0AIA4oAgAgEygCAEF5ak8NACAJIAEoAgAgAigCABDXBCEHIAMgAygCACIIQQFqNgIAIAggBzoAACAKIAEoAgAgAigCABDXBCEHIAQgBCgCACIIQQFqNgIAIAggBzoAACALIAEoAgAgAigCABDXBCEHIA0gDSgCACIIQQFqNgIAIAggBzoAACAMIAEoAgAgAigCABDXBCEHIA4gDigCACIIQQFqNgIAIAggBzoAACAJIAEoAgAgAigCABDXBCEHIAMgAygCACIIQQFqNgIAIAggBzoAACAKIAEoAgAgAigCABDXBCEHIAQgBCgCACIIQQFqNgIAIAggBzoAACALIAEoAgAgAigCABDXBCEHIA0gDSgCACIIQQFqNgIAIAggBzoAACAMIAEoAgAgAigCABDXBCEHIA4gDigCACIIQQFqNgIAIAggBzoAACAAIAkQkAUgChCQBXIgCxCQBXIgDBCQBXI2AgAMAQsLIAMoAgAgDygCAEsEQCAGQWw2AgAgBigCACEAIAUkBSAADwsgBCgCACAQKAIASwRAIAZBbDYCACAGKAIAIQAgBSQFIAAPCyANKAIAIBIoAgBLBEAgBkFsNgIAIAYoAgAhACAFJAUgAA8LIAMoAgAgCSAPKAIAIAEoAgAgAigCABCnBRogBCgCACAKIBAoAgAgASgCACACKAIAEKcFGiANKAIAIAsgEigCACABKAIAIAIoAgAQpwUaIA4oAgAgDCATKAIAIAEoAgAgAigCABCnBRogACAJENUDIAoQ1QNxIAsQ1QNxIAwQ1QNxNgIAIAAoAgAEfyAGIBEoAgA2AgAgBigCACEAIAUkBSAABSAGQWw2AgAgBigCACEAIAUkBSAACwvmAgEEfyMFIQYjBUEgaiQFIAZBFGoiBSAANgIAIAZBEGoiByABNgIAIAZBDGoiCCACNgIAIAZBCGoiASADNgIAIAZBBGoiAiAENgIAIAYiACAFKAIANgIAA0ACQCAHKAIAEJAFDQAgBSgCACAIKAIAQXxqSw0AIAcoAgAgASgCACACKAIAENcEIQMgBSAFKAIAIgRBAWo2AgAgBCADOgAAIAcoAgAgASgCACACKAIAENcEIQMgBSAFKAIAIgRBAWo2AgAgBCADOgAADAELCwNAAkAgBygCABCQBQ0AIAUoAgAgCCgCAE8NACAHKAIAIAEoAgAgAigCABDXBCEDIAUgBSgCACIEQQFqNgIAIAQgAzoAAAwBCwsDQCAFKAIAIAgoAgBJBEAgBygCACABKAIAIAIoAgAQ1wQhAyAFIAUoAgAiBEEBajYCACAEIAM6AAAMAQsLIAgoAgAgACgCAGshACAGJAUgAAvaAgEGfyMFIQUjBUHQAGokBSAFQUBrIQYgBUE8aiIHIAA2AgAgBUE4aiIIIAE2AgAgBUE0aiIJIAI2AgAgBUEwaiIBIAM2AgAgBUEsaiIAIAQ2AgAgBUEoaiICIAcoAgA2AgAgBUEkaiIEIAIoAgAgCCgCAGo2AgAgBUEgaiIHIAAoAgAvAQA2AgAgBUEcaiIDIAAoAgA2AgAgBUEYaiIKIAMoAgBBAmo2AgAgCCgCACABKAIATQRAIAZBun82AgAgBigCACEAIAUkBSAADwsgBSIAIAVBCGoiAyAJKAIAIAEoAgAQjgU2AgAgBSgCABDMAQRAIAYgACgCADYCACAGKAIAIQAgBSQFIAAPCyACKAIAIAMgBCgCACAKKAIAIAcoAgAQpwUaIAMQ1QMEfyAGIAgoAgA2AgAgBigCACEAIAUkBSAABSAGQWw2AgAgBigCACEAIAUkBSAACwuUAQEBfyMFIQEjBUEQaiQFIAEgADYCACABKAIAQaDQAWpBBTYCACABKAIAQdTQAWpBADYCACABKAIAQZDQAWpBADYCACABKAIAQZTQAWpBADYCACABKAIAQZjQAWpBADYCACABKAIAQZzQAWpBADYCACABKAIAQYzQAGpBDDYCACABKAIAQdjQAWpBADYCACABJAVBAAuZAgEDfyMFIQMjBUEgaiQFIANBFGohBCADQRBqIgUgADYCACADQQxqIgAgATYCACADQQhqIgEgAjYCACADIAAoAgAQzwE2AgAgAygCAEG1yMLhfkcEQCAFKAIAIAAoAgAgASgCABCrBSAEQQA2AgAgBCgCACEAIAMkBSAADwsgACAAKAIAQQRqNgIAIAEgASgCAEEEazYCACADQQRqIgIgBSgCACAAKAIAIAEoAgAQrAU2AgAgAigCABDMAQR/IARBYjYCACAEKAIAIQAgAyQFIAAFIAAgACgCACACKAIAajYCACABIAEoAgAgAigCAGs2AgAgBSgCACAAKAIAIAEoAgAQqwUgBEEANgIAIAQoAgAhACADJAUgAAsLpAEBAn8jBSEEIwVBEGokBSAEQQhqIgMgADYCACAEQQRqIgAgATYCACAEIAI2AgAgAygCAEGc0AFqIAMoAgBBkNABaigCADYCACADKAIAQZjQAWogACgCACADKAIAQZDQAWooAgAgAygCAEGU0AFqKAIAa2s2AgAgAygCAEGU0AFqIAAoAgA2AgAgAygCAEGQ0AFqIAAoAgAgBCgCAGo2AgAgBCQFC7QGAQp/IwUhAyMFQYAEaiQFIANB+ANqIQQgA0H0A2oiCCAANgIAIANB8ANqIgUgATYCACADQewDaiIBIAI2AgAgA0HUA2oiAEEfNgIAIANBzANqIglB/wA2AgAgA0HEA2oiDEE/NgIAIANB6ANqIgogCCgCAEGM0ABqIAUoAgAgASgCABCdBTYCACAKKAIAEMwBBEAgBEFiNgIAIAQoAgAhACADJAUgAA8LIAUgBSgCACAKKAIAajYCACABIAEoAgAgCigCAGs2AgAgA0HkA2oiCyADQYADaiIHIAAgA0HQA2oiBiAFKAIAIAEoAgAQlAU2AgAgCygCABDMAQRAIARBYjYCACAEKAIAIQAgAyQFIAAPCyAGKAIAQQlLBEAgBEFiNgIAIAQoAgAhACADJAUgAA8LIANB3ANqIgIgCCgCAEGEIGogByAAKAIAIAYoAgAQlQU2AgAgAigCABDMAQRAIARBYjYCACAEKAIAIQAgAyQFIAAPCyAFIAUoAgAgCygCAGo2AgAgASABKAIAIAsoAgBrNgIAIANB4ANqIgYgA0GAAWoiByAJIANByANqIgAgBSgCACABKAIAEJQFNgIAIAYoAgAQzAEEQCAEQWI2AgAgBCgCACEAIAMkBSAADwsgACgCAEEKSwRAIARBYjYCACAEKAIAIQAgAyQFIAAPCyACIAgoAgBBiDBqIAcgCSgCACAAKAIAEJUFNgIAIAIoAgAQzAEEQCAEQWI2AgAgBCgCACEAIAMkBSAADwsgBSAFKAIAIAYoAgBqNgIAIAEgASgCACAGKAIAazYCACADQdgDaiIJIAMiACAMIANBwANqIgcgBSgCACABKAIAEJQFNgIAIAcoAgBBCksEQCAEQWI2AgAgBCgCACEAIAMkBSAADwsgCSgCABDMAQRAIARBYjYCACAEKAIAIQAgAyQFIAAPCyACIAgoAgAgACAMKAIAIAcoAgAQlQU2AgAgAigCABDMAQR/IARBYjYCACAEKAIAIQAgAyQFIAAFIAgoAgBB2NABakEBNgIAIAQgCigCACALKAIAaiAGKAIAaiAJKAIAajYCACAEKAIAIQAgAyQFIAALC2EBA38jBSEBIwVBEGokBSABQQRqIQIgASIAQejQCBCGBjYCACABKAIABH8gACgCABCwBRogAiAAKAIANgIAIAIoAgAhACABJAUgAAUgAkEANgIAIAIoAgAhACABJAUgAAsLbgECfyMFIQUjBUEgaiQFIAVBEGoiBiAANgIAIAVBDGoiACABNgIAIAVBCGoiASACNgIAIAVBBGoiAiADNgIAIAUgBDYCACAGKAIAIAAoAgAgASgCACACKAIAIAUoAgBBAEEAEK8FIQAgBSQFIAALxggBB38jBSEHIwVB0ABqJAUgB0HIAGoiCCAANgIAIAdBxABqIgAgATYCACAHQUBrIgsgAjYCACAHQTxqIgogAzYCACAHQThqIgkgBDYCACAHQTRqIgEgBTYCACAHQTBqIgUgBjYCACAHQSxqIgIgCigCADYCACAHQShqIg0gAigCACAJKAIAajYCACAHQSRqIgYgACgCADYCACAHQSBqIgQgBigCADYCACAHQRxqIgwgBigCACALKAIAajYCACAHQRhqIgMgCSgCADYCACAIKAIAELAFGiABKAIABEAgCCgCACABKAIAIAUoAgAQsQUgCCgCAEGY0ABqIAgoAgBBjNAAaigCADYCACAIKAIAQZTQAGogACgCACAIKAIAQYzQAGooAgAgCCgCAEGQ0ABqKAIAa2s2AgAgCCgCAEGQ0ABqIAAoAgA2AgAFIAgoAgBBmNAAaiAAKAIAIgA2AgAgCCgCAEGQ0ABqIAA2AgAgCCgCAEGU0ABqIAA2AgALIAdBzABqIQEgCSgCAEEISQRAIAFBuH82AgAgASgCACEAIAckBSAADwsgB0EIaiIAIAgoAgAgCigCAEEFELIFNgIAIAAoAgAQzAEEQCABIAAoAgA2AgAgASgCACEAIAckBSAADwsgCSgCACAAKAIAQQNqSQRAIAFBuH82AgAgASgCACEAIAckBSAADwsgAiACKAIAIAAoAgBqNgIAIAMgAygCACAAKAIAazYCACAAIAgoAgAgCigCACAAKAIAELMFNgIAIAAoAgAQzAEEQCABIAAoAgA2AgAgASgCACEAIAckBSAADwsgB0EQaiEJIAdBBGohBSAHIQACQAJAAkACQAJAAkACQANAIAVBADYCACAAIAIoAgAgDSgCACACKAIAayAJEI4ENgIAIAAoAgAQzAENASACIAIoAgBBA2o2AgAgAyADKAIAQQNrNgIAIAAoAgAgAygCAEsNAgJAAkACQAJAAkACQCAJKAIADgQBAgADBAsMCAsgBSAIKAIAIAQoAgAgDCgCACAEKAIAayACKAIAIAAoAgAQtAU2AgAMAwsgBSAEKAIAIAwoAgAg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AgAgBSgCACEAIAQkBSAADwsgBEEEaiECIAQhACABKAIAQQRPIQcgAygCACAGKAIANgIMAkAgBwRAIAMoAgAgBigCACABKAIAakF8ajYCCCADKAIAKAIIEL0FIQAgAygCACAANgIAIAIgBigCACABKAIAQQFrai0AADYCACACKAIABEBBCCACKAIAENQBayEAIAMoAgAgADYCBAwCCyAFQX82AgAgBSgCACEAIAQkBSAADwUgAygCACADKAIAKAIMNgIIIAMoAgAgAygCACgCDC0AADYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgBBAmsOBgUEAwIBAAYLIAMoAgAiAiACKAIAIAMoAgAoAgwtAAZBEHRqNgIADAYLDAULDAULDAULDAULDAULDAULIAMoAgAiAiACKAIAIAMoAgAoAgwtAAVBCHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQAEajYCAAsgAygCACICIAIoAgAgAygCACgCDC0AA0EYdGo2AgALIAMoAgAiAiACKAIAIAMoAgAoAgwtAAJBEHRqNgIACyADKAIAIgIgAigCACADKAIAKAIMLQABQQh0ajYCAAsgACAGKAIAIAEoAgBBAWtqLQAANgIAIAAoAgAEQEEIIAAoAgAQ1AFrIQAgAygCACAANgIEIAMoAgBBBGoiACAAKAIAQQQgASgCAGtBA3RqNgIADAILIAVBfzYCACAFKAIAIQAgBCQFIAAPCwALIAUgASgCADYCACAFKAIAIQAgBCQFIAALdgECfyMFIQMjBUEQaiQFIANBCGoiBCAANgIAIANBBGoiACABNgIAIAMgAjYCACADQQxqIgEgAygCACgBADYBACAAKAIAIAEvAQAQ3AEhASAEKAIAIAE2AgAgACgCABC6BRogBCgCACADKAIAQQRqNgIEIAMkBQvAAwEGfyMFIQMjBUEQaiQFIANBDGohAiADQQhqIgEgADYCACABKAIAKAIEQSBLBEAgAkEDNgIAIAIoAgAhACADJAUgAA8LIAEoAgAhBSABKAIAKAIIIAEoAgAoAgxBBGpPBEAgASgCAEEIaiIAIAAoAgAgBSgCBEEDdms2AgAgASgCAEEEaiIAIAAoAgBBB3E2AgAgASgCACgCCBC9BSEAIAEoAgAgADYCACACQQA2AgAgAigCACEAIAMk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QCACKAIIQQRPDQILA0AgCCgCACAGKAIASQRAIAEgASgCACIAQQFqNgIAIAAsAAAhACAIIAgoAgAiAkEBajYCACACIAA6AAAMAQsLIAogBSgCADYCACAKKAIAIQAgCSQFIAAPCwsgAigCBEEISQRAIAAgAigCBEECdEGQPWooAgA2AgAgCCgCACABKAIALAAAOgAAIAgoAgAgASgCACwAAToAASAIKAIAIAEoAgAsAAI6AAIgCCgCACABKAIALAADOgADIAEgASgCACACKAIEQQJ0QbA9aigCAGo2AgAgCCgCAEEEaiABKAIAEJ4EIAEgASgCACAAKAIAazYCAAUgCCgCACABKAIAEPwCCyAIIAgoAgBBCGo2AgAgASABKAIAQQhqNgIAIAgoAgAhAAJAIAYoAgAgCygCAEF0aksEQCAAIAQoAgBJBEAgCCgCACABKAIAIAQoAgAgCCgCAGsQ+wIgASABKAIAIAQoAgAgCCgCAGtqNgIAIAggBCgCADYCAAsDQCAIKAIAIAYoAgBPDQIgASABKAIAIgBBAWo2AgAgACwAACEAIAggCCgCACICQQFqNgIAIAIgADoAAAwACwAFIAAgASgCACACKAIIQQhrEPsCCwsgCiAFKAIANgIAIAooAgAhACAJJAUgAAs3AQJ/IwUhASMFQRBqJAUgASAANgIAIAFBBGoiAiABKAIAIgAQkAQ2AgAgAigCACEAIAEkBSAAC40LARB/IwUhBSMFQdAAaiQFIAVBQGshBiAFQTxqIhIgADYCACAFQThqIg8gATYCACAFQTRqIgggAjYCACAFQTBqIgAgAzYCACAFQSxqIhAgBDYCACAFQShqIg4gACgCADYCACAFQSRqIgsgDigCACAQKAIAajYCACAFQSBqIgIgDigCADYCACAFQQhqIglBADYCACAFQQRqIhNBADYCACAQKAIAQQRJBEAgBkG4fzYCACAGKAIAIQAgBSQFIAAPCyAFQRBqIgMgAigCABCQBDYCACAFQRxqIgQgAygCAEEPcUEFajYCACAEKAIAQQ9KBEAgBkFUNgIAIAYoAgAhACAFJAUgAA8LIAUhACAFQcYAaiERIAVBxABqIQcgAyADKAIAQQR2NgIAIAVBDGoiAUEENgIAIAgoAgAgBCgCADYCACAFQRhqIgxBASAEKAIAdEEBajYCACAFQRRqIghB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CyABQQRqIgAgACgCACABKAIEQQR2ajYCACABQQhqIgAgACgCACABKAIIQQN2ajYCACABKAIEIAEoAgBJBEAgA0EBNgIACyAFIAcoAgAgBigCACAIKAIAIAIoAgAgAygCAEECdEHE5QBqKAIAQQ9xQagBahEIADYCACAFKAIAIQAgBCQFIAALrQIBBn8jBSEEIwVBoMAAaiQFIARBnMAAaiEFIARBmMAAaiIHIAA2AgAgBEGUwABqIgggATYCACAEQZDAAGoiBiACNgIAIARBjMAAaiIBIAM2AgAgBCIAQQBBgsAAEPYHGiAEQQw7AQAgBEGIwABqIgMgBigCADYCACAEQYTAAGoiAiAEIAYoAgAgASgCABDLBTYCACACKAIAEMwBQQBHIQkgAigCACEGIAkEQCAFIAY2AgAgBSgCACEAIAQkBSAADwsgBiABKAIATwR/IAVBuH82AgAgBSgCACEAIAQkBSAABSADIAMoAgAgAigCAGo2AgAgASABKAIAIAIoAgBrNgIAIAUgBygCACAIKAIAIAMoAgAgASgCACAAEMwFNgIAIAUoAgAhACAEJAUgAAsLrQIBBn8jBSEEIwVBoIABaiQFIARBnIABaiEFIARBmIABaiIHIAA2AgAgBEGUgAFqIgggATYCACAEQZCAAWoiBiACNgIAIARBjIABaiIBIAM2AgAgBCIAQQBBhIABEPYHGiAEQQw2AgAgBEGIgAFqIgMgBigCADYCACAEQYSAAWoiAiAEIAYoAgAgASgCABDDBTYCACACKAIAEMwBQQBHIQkgAigCACEGIAkEQCAFIAY2AgAgBSgCACEAIAQkBSAADwsgBiABKAIATwR/IAVBuH82AgAgBSgCACEAIAQkBSAABSADIAMoAgAgAigCAGo2AgAgASABKAIAIAIoAgBrNgIAIAUgBygCACAIKAIAIAMoAgAgASgCACAAEMQFNgIAIAUoAgAhACAEJAUgAAsLhQoBG38jBSEDIwVB0BBqJAUgA0HIEGohBiADQcQQaiIEIAA2AgAgA0HAEGoiACABNgIAIANBvBBqIgEgAjYCACADQZAJaiICQgA3AwAgAkIANwMIIAJCADcDECACQgA3AxggAkIANwMgIAJCADcDKCACQgA3AzAgAkIANwM4IAJBQGtBADYCACADQcAIaiIHQgA3AwAgB0IANwMIIAdC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AigCAEECdGooAgA2AgAgCiAELgEAEOAEIAogFigCADoAAiAKQQE6AAMgDEEANgIAA0AgDCgCACASKAIATw0CIBUoAgAgDCgCAEECdGogCigBADYBACAMIAwoAgBBAWo2AgAMAAsACwsgC0EANgIAA0AgCygCACAFKAIASQRAIBMgAygCACALKAIAQQF0ai0AADYCACANIAMoAgAgCygCAEEBdGotAAE2AgAgDyAGKAIAIA0oAgBrNgIAIBBBASAXKAIAIA8oAgBrdDYCACARIAAgDSgCAEECdGooAgA2AgAgDiARKAIANgIAIBQgESgCACAQKAIAajYCACAKIAQvAQAgEygCAEEIdGpB//8DcRDgBCAKIA8oAgAgFigCAGo6AAIgCkECOgADA0AgFSgCACEBIA4gDigCACICQQFqNgIAIAEgAkECdGogCigBADYBACAOKAIAIBQoAgBJDQALIAAgDSgCAEECdGoiASABKAIAIBAoAgBqNgIAIAsgCygCAEEBajYCAAwBCwsgCSQFC6YDAQh/IwUhBCMFQcCEAWokBSAEQbSEAWohBSAEQbCEAWoiByAANgIAIARBrIQBaiIIIAE2AgAgBEGohAFqIgEgAjYCACAEQaSEAWoiAiADNgIAIARBoIQBaiIAIAEoAgA2AgAgBEGchAFqIgMgACgCADYCACAEQZSEAWoiBkH/ATYCACACKAIAQQJJBEAgBUG4fzYCACAFKAIAIQAgBCQFIAAPCyAEQZCEAWoiASAEQZCAAWoiCSAGIARBmIQBaiIKIAAoAgAgAigCABC+BTYCACABKAIAEMwBQQBHIQsgASgCACEAIAsEQCAFIAA2AgAgBSgCACEAIAQkBSAADwsgACACKAIATwRAIAVBuH82AgAgBSgCACEAIAQkBSAADwsgAyADKAIAIAEoAgBqNgIAIAIgAigCACABKAIAazYCACABIAQiACAJIAYoAgAgCigCABCVBTYCACABKAIAEMwBBH8gBSABKAIANgIAIAUoAgAhACAEJAUgAAUgBSAHKAIAIAgoAgAgAygCACACKAIAIAAQygU2AgAgBSgCACEAIAQkBSAACwuNDgEkfyMFIQUjBUHAAWokBSAFQbgBaiEQIAVBtAFqIRsgBUGwAWohHCAFQawBaiEdIAVBqAFqIR4gBUGkAWohFSAFQaABaiEKIAVB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AWogADYCACAFKAIAQejhAWooAgAQzQFBAEchAyAFKAIAIQAgAwRAIAYgAEHo4QFqKAIANgIAIAYoAgAhACAHJAUgAA8FIABB3OIJaiACKAIAIAEoAgAQ9AcaIAUoAgBByOABaiAFKAIAQejhAWooAgAgASgCAGs2AgAgBSgCAEGE4QFqQQE2AgAgBkEANgIAIAYoAgAhACAHJAUgAA8LAAsgBSgCAEHc4glqIAUoAgBB6OEBaigCACABKAIAa2ogAigCACABKAIAEPQHGiALIAUoAgAgBSgCAEHc4glqIAUoAgBB6OEBaigCABCoBDYCACALKAIAEM0BBEAgBiALKAIANgIAIAYoAgAhACAHJAUgAA8FIAUoAgBByOABakEDNgIAIAUoAgBBhOEBakECNgIAIAZBADYCACAGKAIAIQAgByQFIAAPCwALIAogAigCAEEDIAQQhwQ2AgAgCigCABDNAUEARyEBIAooAgAhACABBEAgBiAANgIAIAYoAgAhACAHJAUgAA8LIAUoAgBByOABaiAANgIAIAUoAgBBgOEBaiAEKAIANgIAIAUoAgBBiOIBaiAEKAIINgIAIAQoAgRBAEchACAKKAIABEAgBSgCAEGE4QFqIAAEf0EEBUEDCzYCACAGQQA2AgAgBigCACEAIAckBSAADwsgBSgCACEBIAAEQCAFKAIAQcjgAWohACABQfDgAWooAgAEQCAAQQQ2AgAgBSgCAEGE4QFqQQU2AgAFIABBADYCACAFKAIAQYThAWpBADYCAAsFIAFByOABakEDNgIAIAUoAgBBhOEBakECNgIACyAGQQA2AgAgBigCACEAIAckBSAADwsCQAJAAkACQAJAIAUoAgBBgOEBaigCAA4DAQIAAwsgAyAFKAIAIAgoAgAgCSgCACACKAIAIAEoAgBBARCXBDYCAAwDCyADIAgoAgAgCSgCACACKAIAIAEoAgAQqQQ2AgAMAgsgAyAIKAIAIAkoAgAgAigCACABKAIAIAUoAgBBiOIBaigCABDUBTYCAAwBCyAGQWw2AgAgBigCACEAIAckBSAADwsgAygCABDNAUEARyEBIAMoAgAhACABBEAgBiAANgIAIAYoAgAhACAHJAUgAA8LIAUoAgBB+OABaiIBIAEpAwAgAK18NwMAIAUoAgBB8OABaigCAARAIAUoAgBBkOEBaiAI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AygCAEGE4QFqQQI2AgALIAMoAgBB2OABaiADKAIAQdjgAWopAwBCgAhWBH4gAygCAEHY4AFqKQMABUKACAs3AwAgAygCAEHY4AFqKQMAIAMoAgBBrOIBaigCAK1WBEBBNCEBDAULIBkgAygCAEHg4AFqKAIAQQRLBH8gAygCAEHg4AFqKAIABUEECyIGNgIAIBogAygCAEHY4AFqKQMAIAMoAgBB0OABaikDABDjBTYCAAJAAkAgAygCAEGk4gFqKAIAIBkoAgBJDQAgAygCAEG04gFqKAIAIBooAgBJDQAMAQsgIiAZKAIAIBooAgBqNgIAIAMoAgBBjOIBaigCAARAICIoAgAgAygCAEGM4gFqKAIAQfDiCWtLBEBBOyEBDAcLBSADKAIAQaDiAWooAgAhBiANIAMoAgBB+OEBaiIOKQIANwIAIA0gDigCCDYCCCAGIA0Q7wEgAygCAEGk4gFqQQA2AgAgAygCAEG04gFqQQA2AgAgIigCACEGIA0gAygCAEH44QFqIg4pAgA3AgAgDSAOKAIINgIIIAYgDRDtASEGIAMoAgBBoOIBaiAGNgIAIAMoAgBBoOIBaigCAEUEQEE9IQEMBwsLIAMoAgBBpOIBaiAZKAIANgIAIAMoAgBBsOIBaiADKAIAQaDiAWooAgAgAygCAEGk4gFqKAIAajYCACADKAIAQbTiAWogGigCADYCAAsgAygCAEGc4gFqQQI2AgALIBEgAygCABDRBTYCACARKAIARQRAIAMoAgBBnOIBakEANgIAIAFBADYCAAwDCyALKAIAIAIoAgBrIBEoAgBJBEAgAigCACALKAIARgRAIAFBADYCAAwEBSADKAIAQZziAWpBAzYCAAwCCwALICMgAygCABDnBTYCACASIAMoAgAiDiADKAIAQbDiAWooAgAgAygCAEG44gFqKAIAaiAjKAIABH9BAAUgAygCAEG04gFqKAIAIAMoAgBBuOIBaigCAGsLIgYgAigCACARKAIAENMFNgIAIBIoAgAQzQEEQEHGACEBDAQLIAIgAigCACARKAIAajYCACASKAIAICMoAgByBEAgAygCAEG84gFqIAMoAgBBuOIBaigCACASKAIAajYCACADKAIAQZziAWpBBDYCAAsMAgsgJCADKAIAENEFNgIAIBMgJCgCACADKAIAQajiAWooAgBrNgIA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NgIAIAMoAgAhASAAKAIABEAgARDSBUECRkEDbCEBIAAgACgCACABajYCACAAIAAoAgAgAygCAEGo4gFqKAIAazYCACAFIAAoAgA2AgAgBSgCACEAIAQkBSAADwsgAygCAEHQ4gFqKAIAQQBHIQAgAUG84gFqKAIAIAMoAgBBuOIBaigCAEcEQCAARQRAIAcoAgBBCGoiACAAKAIAQX9qNgIAIAMoAgBB0OIBakEBNgIACyAFQQE2AgAgBSgCACEAIAQkBSAADwsCQCAABEAgBygCACgCCCAHKAIAKAIESQRAIAcoAgBBCGoiACAAKAIAQQFqNgIADAILIAMoAgBBnOIBakECNgIAIAVBATYCACAFKAIAIQAgBCQFIAAPCwsgBUEANgIAIAUoAgAhACAEJAUgAA8LQQALvggBHH8jBSEEIwVBgAFqJAUgBEHwAGohBiAEQdwAaiEQIARB2ABqIREgBEHUAGohCCAEQdAAaiESIARBzABqIQkgBEHIAGohEyAEQcQAaiEUIARBQGshFSAEQTxqIQogBEE4aiEWIARBNGohCyAEQTBqIRcgBEEsaiEYIARBKGohGSAEQSRqIQwgBEEgaiEaIARBHGohDSAEQRhqIRsgBEEUaiEcIARBEGohHSAEQQxqIQ4gBEEIaiEeIARBBGohDyAEIR8gBEHsAGoiByAANgIAIARB6ABqIgAgATYCACAEQeQAaiIFIAI2AgAgBEHgAGoiASADNgIAAkACQAJAAkACQCAAKAIAQQRrDgQDAgEABAsgHCAHKAIANgIAIB0gASgCACgCACABKAIAKAIIajYCACAOIAEoAgAoAgQgASgCACgCCGs2AgAgHiAFKAIAKAIAIAUoAgAoAghqNgIAIA8gBSgCACgCBCAFKAIAKAIIazYCACAfIBwoAgAgHigCACAPIB0oAgAgDhD4BTYCACAFKAIAQQhqIgAgACgCACAPKAIAajYCACABKAIAQQhqIgAgACgCACAOKAIAajYCACAGIB8oAgA2AgAgBigCACEAIAQkBSAADwsgGCAHKAIANgIAIBkgASgCACgCACABKAIAKAIIajYCACAMIAEoAgAoAgQgASgCACgCCGs2AgAgGiAFKAIAKAIAIAUoAgAoAghqNgIAIA0gBSgCACgCBCAFKAIAKAIIazYCACAbIBgoAgAgGigCACANIBkoAgAgDBD3BTYCACAFKAIAQQhqIgAgACgCACANKAIAajYCACABKAIAQQhqIgAgACgCACAMKAIAajYCACAGIBsoAgA2AgAgBigCACEAIAQkBSAADwsgFCAHKAIANgIAIBUgASgCACgCACABKAIAKAIIajYCACAKIAEoAgAoAgQgASgCACgCCGs2AgAgFiAFKAIAKAIAIAUoAgAoAghqNgIAIAsgBSgCACgCBCAFKAIAKAIIazYCACAXIBQoAgAgFigCACALIBUoAgAgChD2BTYCACAFKAIAQQhqIgAgACgCACALKAIAajYCACABKAIAQQhqIgAgACgCACAKKAIAajYCACAGIBcoAgA2AgAgBigCACEAIAQkBSAADwsgECAHKAIANgIAIBEgASgCACgCACABKAIAKAIIajYCACAIIAEoAgAoAgQgASgCACgCCGs2AgAgEiAFKAIAKAIAIAUoAgAoAghqNgIAIAkgBSgCACgCBCAFKAIAKAIIazYCACATIBAoAgAgEigCACAJIBEoAgAgCBD1BTYCACAFKAIAQQhqIgAgACgCACAJKAIAajYCACABKAIAQQhqIgAgACgCACAIKAIAajYCACAGIBMoAgA2AgAgBigCACEAIAQkBSAADwsgBkF0NgIAIAYoAgAhACAEJAUgAAuRBQEGfyMFIQUjBUEwaiQFIAVBIGoiBiAANgIAIAVBHGoiByABNgIAIAVBGGoiCCACNgIAIAVBFGoiCSADNgIAIAVBEGoiAyAENgIAIAcoAgAgCCgCAEcEQCAGKAIAKAIAIAcoAgAQ7AMaCyAFQSRqIQEgBUEMaiECIAVBCGohBCAFQQRqIQogBSEAAkACQAJAAkACQCAIKAIAQQRrDgQDAgEABAsgACAHKAIAIAgoAgBHBH8Q7wUFIAYoAgAoAgALNgIAIAAoAgAEQCAAKAIAIAkoAgAgAygCABDwBRogBigCACAAKAIANgIAIAFBADYCACABKAIAIQAgBSQFIAAPBSABQUA2AgAgASgCACEAIAUkBSAADwsACyAKIAcoAgAgCCgCAEcEfxDtBQUgBigCACgCAAs2AgAgCigCAARAIAooAgAgCSgCACADKAIAEO4FGiAGKAIAIAooAgA2AgAgAUEANgIAIAEoAgAhACAFJAUgAA8FIAFBQDYCACABKAIAIQAgBSQFIAAPCwALIAQgBygCACAIKAIARwR/EOsFBSAGKAIAKAIACzYCACAEKAIABEAgBCgCACAJKAIAIAMoAgAQ7AUaIAYoAgAgBCgCADYCACABQQA2AgAgASgCACEAIAUkBSAADwUgAUFANgIAIAEoAgAhACAFJAUgAA8LAAsgAiAHKAIAIAgoAgBHBH8Q9AUFIAYoAgAoAgALNgIAIAIoAgAEQCACKAIAEOkFGiACKAIAIAkoAgAgAygCABDqBRogBigCACACKAIANgIAIAFBADYCACABKAIAIQAgBSQFIAAPBSABQUA2AgAgASgCACEAIAUkBSAADwsACyABQQA2AgAgASgCACEAIAUkBSAACy4BAX8jBSEBIwVBEGokBSABIAA2AgAgASgCAEGE4QFqKAIAQQdGIQAgASQFIAALhwEBBH8jBSEEIwVBIGokBSAEQRBqIgYgADYCACAEQQxqIgUgATYCACAEQQhqIgcgAjYCACAEQQRqIgEgAzYCACAFKAIAIQIgASgCACEDIAQiACAFKAIAIAEoAgBJBH8gAgUgAws2AgAgBigCACAHKAIAIAAoAgAQ9AcaIAAoAgAhACAEJAUgAAsmAQF/IwUhASMFQRBqJAUgASAANgIAIAEoAgAQ8wUhACABJAUgAAtIAQJ/IwUhAyMFQRBqJAUgA0EIaiIEIAA2AgAgA0EEaiIAIAE2AgAgAyACNgIAIAQoAgAgACgCACADKAIAEPIFIQAgAyQFIAALzAEBBH8jBSECIwVBEGokBSACQQRqIQMgAiIBQeAAEIYGNgIAIAEoAgAEfyABKAIAIgBCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSCAAQgA3A1AgAEIANwNYELAEIQAgASgCACAANgIAIAEoAgBBADYCUCADIAEoAgA2AgAgAygCACEBIAIkBSABBSADQQA2AgAgAygCACEBIAIkBSABCwt9AQJ/IwUhBCMFQRBqJAUgBEEIaiIDIAA2AgAgBEEEaiIAIAE2AgAgBCACNgIAIAMoAgBBATYCUCADKAIAQQA2AkggAygCAEEANgJEIAMoAgBBADYCOCADKAIAQQA2AkwgAygCACgCACAAKAIAIAQoAgAQhQUhACAEJAUgAAu+AQEEfyMFIQIjBUEQaiQFIAJBBGohAyACIgFB0AAQhgY2AgAgASgCAAR/IAEoAgAiAEIANwMAIABCADcDCCAAQgA3AxAgAEIANwMYIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQUBrQgA3AwAgAEIANwNIELIEIQAgASgCACAANgIAIAEoAgBBADYCGCADIAEoAgA2AgAgAygCACEBIAIkBSABBSADQQA2AgAgAygCACEBIAIkBSABCwt9AQJ/IwUhBCMFQRBqJAUgBEEIaiIDIAA2AgAgBEEEaiIAIAE2AgAgBCACNgIAIAMoAgBBATYCGCADKAIAQQA2AjQgAygCAEEANgIwIAMoAgBBADYCJCADKAIAQQA2AkwgAygCACgCACAAKAIAIAQoAgAQ6gQhACAEJAUgAAs0AQJ/IwUhACMFQRBqJAUgAEGg5QApAgA3AgAgAEGo5QAoAgA2AgggABDxBSEBIAAkBSABC30BAn8jBSEEIwVBEGokBSAEQQhqIgMgADYCACAEQQRqIgAgATYCACAEIAI2AgAgAygCAEEBNgIgIAMoAgBBADYCPCADKAIAQQA2AjggAygCAEEANgIsIAMoAgBBADYCWCADKAIAKAIAIAAoAgAgBCgCABC2BCEAIAQkBSAAC5wDAQV/IwUhBCMFQSBqJAUgACgCAEUEQCAAKAIERQRAIABBoOUAKQIANwIAIABBqOUAKAIANgIICwsgBEEIaiEFIARBBGohAiAEIQMgACgCAARAIAAoAgQEQCADIAAoAghB6AAgACgCAEE/cUHIAGoRBwA2AgAgAygCAEUEQCACQQA2AgAgAigCACEAIAQkBSAADwsgAygCACIBQgA3AwAgAUIANwMIIAFCADcDECABQgA3AxggAUIANwMgIAFCADcDKCABQgA3AzAgAUIANwM4IAFBQGtCADcDACABQgA3A0ggAUIANwNQIAFCADcDWCABQgA3A2AgAygCAEHcAGoiASAAKQIANwIAIAEgACgCCDYCCCAFIAApAgA3AgAgBSAAKAIINgIIIAUQ5wQhACADKAIAIAA2AgAgAygCACEAIAMoAgAoAgAEQCAAQQA2AiAgAiADKAIANgIAIAIoAgAhACAEJAUgAA8FIAAQ8AMaIAJBADYCACACKAIAIQAgBCQFIAAPCwALCyACQQA2AgAgAigCACEAIAQkBSAAC04B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AAAAAAAAAGIEfyAARAAAAAAAAPBDoiABEKkGIQAgASgCAEFAagVBAAsiAjYCAAwBCyABIASnQf8PcUGCeGo2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvyEACyAAC6UCAAJ/IAAEfyABQYABSQRAIAAgAToAAEEBDAILQZDpACgCACgCAEUEQCABQYB/cUGAvwNGBEAgACABOgAAQQEMAwVByLUBQdQANgIAQX8MAwsACyABQYAQSQRAIAAgAUEGdkHAAXI6AAAgACABQT9xQYABcjoAAUECDAILIAFBgLADSSABQYBAcUGAwANGcgRAIAAgAUEMdkHgAXI6AAAgACABQQZ2QT9xQYABcjoAASAAIAFBP3FBgAFyOgACQQMMAgsgAUGAgHxqQYCAwABJBH8gACABQRJ2QfABcjoAACAAIAFBDHZBP3FBgAFyOgABIAAgAUEGdkE/cUGAAXI6AAIgACABQT9xQYABcjoAA0EEBUHItQFB1AA2AgBBfwsFQQELCwuTAQECfwJAAkACQANAIAJB8MUAai0AACAARg0BIAJBAWoiAkHXAEcNAAtB1wAhAgwBCyACDQBB0MYAIQAMAQtB0MYAIQADQCAAIQMDQCADQQFqIQAgAywAAARAIAAhAwwBCwsgAkF/aiICDQALCyABKAIUIgEEfyABKAIAIAEoAgQgABCZBgVBAAsiAQR/IAEFIAALC/MBAQR/AkACQCACQRBqIgQoAgAiAw0AIAIQrQYEf0EABSAEKAIAIQMMAQshAgwBCyADIAJBFGoiBSgCACIEayABSQRAIAIgACABIAIoAiRBH3FBiAFqEQUAIQIMAQsCfyACLABLQQBIIAFFcgR/QQAFIAEhAwNAIAAgA0F/aiIGaiwAAEEKRwRAIAYEQCAGIQMMAgVBAAwECwALCyACIAAgAyACKAIkQR9xQYgBahEFACICIANJDQIgACADaiEAIAEgA2shASAFKAIAIQQgAwsLIQIgBCAAIAEQ9AcaIAUgBSgCACABajYCACACIAFqIQILIAILawECfyAAQcoAaiICLAAAIQEgAiABQf8BaiABcjoAACAAKAIAIgFBCHEEfyAAIAFBIHI2AgBBfwUgAEEANgIIIABBADYCBCAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQQQALIgALOwECfyAAKAIQIABBFGoiAygCACIEayIAIAJLBEAgAiEACyAEIAEgABD0BxogAyADKAIAIABqNgIAIAILLAEBfyMFIQIjBUEQaiQFIAIgATYCAEHQ5QAoAgAgACACEJ4GIQAgAiQFIAALqwEBBn8jBSEDIwVBEGokBSADIgQgAUH/AXEiBzoAAAJAAkAgAEEQaiICKAIAIgUNACAAEK0GBH9BfwUgAigCACEFDAELIQEMAQsgAEEUaiICKAIAIgYgBUkEQCABQf8BcSIBIAAsAEtHBEAgAiAGQQFqNgIAIAYgBzoAAAwCCwsgACAEQQEgACgCJEEfcUGIAWoRBQBBAUYEfyAELQAABUF/CyEBCyADJAUgAQvCAQEFfyMFIQMjBUEwaiQFIANBIGohBSADQRBqIQQgAyECQc6TASABLAAAEJQGBEAgARCyBiEGIAIgADYCACACIAZBgIACcjYCBCACQbYDNgIIQQUgAhAMEI8GIgJBAEgEQEEAIQAFIAZBgIAgcQRAIAQgAjYCACAEQQI2AgQgBEEBNgIIQd0BIAQQCxoLIAIgARCzBiIARQRAIAUgAjYCAEEGIAUQDhpBACEACwsFQci1AUEWNgIAQQAhAAsgAyQFIAALmAEBA38gAEErEJQGRSECIAAsAAAiA0HyAEchASACBH8gAQVBAiIBC0GAAXIhAiAAQfgAEJQGBH8gAiIBBSABC0GAgCByIQIgAEHlABCUBgR/IAIiAQUgAQtBwAByIQAgA0HyAEYEfyABBSAAIgELQYAEciEAIANB9wBGBH8gAAUgASIAC0GACHIhASADQeEARgR/IAEFIAALC6IDAQd/IwUhAyMFQUBrJAUgA0EoaiEFIANBGGohBiADQRBqIQcgAyEEIANBOGohCEHOkwEgASwAABCUBgRAQYQJEIYGIgIEQCACQQBB/AAQ9gcaIAFBKxCUBkUEQCACIAEsAABB8gBGBH9BCAVBBAs2AgALIAFB5QAQlAYEQCAEIAA2AgAgBEECNgIEIARBATYCCEHdASAEEAsaCyABLAAAQeEARgRAIAcgADYCACAHQQM2AgRB3QEgBxALIgFBgAhxRQRAIAYgADYCACAGQQQ2AgQgBiABQYAIcjYCCEHdASAGEAsaCyACIAIoAgBBgAFyIgE2AgAFIAIoAgAhAQsgAiAANgI8IAIgAkGEAWo2AiwgAkGACDYCMCACQcsAaiIEQX86AAAgAUEIcUUEQCAFIAA2AgAgBUGTqAE2AgQgBSAINgIIQTYgBRANRQRAIARBCjoAAAsLIAJBFjYCICACQQM2AiQgAkECNgIoIAJBHTYCDEGMtQEoAgBFBEAgAkF/NgJMCyACELQGGgVBACECCwVByLUBQRY2AgALIAMkBSACCzEBAn8gABC1BiIBKAIANgI4IAEoAgAiAgRAIAIgADYCNAsgASAANgIAQcy1ARAPIAALDABBzLUBEAZB1LUBC4YBAQJ/AkAgAARAIAAoAkxBf0wEQCAAELkGIQAMAgsgABC5BiEBIAEhAAVB0OYAKAIABH9B0OYAKAIAELYGBUEACyEAELUGKAIAIgEEQANAIAEoAkwaQQAhAiABKAIUIAEoAhxLBEAgARC5BiAAciEACyABKAI4IgENAAsLQcy1ARAPCwsgAAupAQEFfyAAKAJMGkEAIQUgABC4BiAAKAIAQQFxQQBHIgRFBEAQtQYhAyAAQThqIQEgACgCNCICBEAgAiABKAIANgI4CyABKAIAIgEEQCABIAI2AjQLIAEhAiADKAIAIABGBEAgAyACNgIAC0HMtQEQDwsgABC2BiEDIAAgACgCDEE/cUEIahEEACEBIAAoAlwiAgRAIAIQhwYLIARFBEAgABCHBgsgASADcgtCAQF/IAAoAkQEQCAAQfAAaiEBIAAoAnQiAARAIAAgASgCADYCcAsgASgCACIBBH8gAUH0AGoFQbzpAAsgADYCAAsLngEBBn8CfwJAIABBFGoiASgCACAAQRxqIgIoAgBNDQAgAEEAQQAgACgCJEEfcUGIAWoRBQAaIAEoAgANAEF/DAELIABBBGoiAygCACIEIABBCGoiBSgCACIGSQRAIAAgBCAGa0EBIAAoAihBH3FBiAFqEQUAGgsgAEEANgIQIAJBADYCACABQQA2AgAgBUEANgIAIANBADYCAEEACyIAC2IBBH8CfwJAIAEoAkxBAEgNAAwACyAAQf8BcSEDIABB/wFxIgQgASwAS0cEQCABQRRqIgUoAgAiAiABKAIQSQRAIAUgAkEBajYCACACIAM6AAAgBAwCCwsgASAAELAGCyIACwsAIABBv39qQRpJCxcAIABBIHJBn39qQQZJIAAQlQZBAEdyCwYAQdKTAQtIAQF/IABFBEBBASEACwN/An8gABCGBiIBBEAgAQwBC0HgtQFB4LUBKAIAIgE2AgAgAQR/IAFBA3FB4AFqEQYADAIFQQALCwsLmgICBn8BfiMFIQIjBUEwaiQFIAJBGGohASACQRBqIQQgAiEDIAJBJGohBRDABiIABEAgACgCACIABEAgACkDMCIGQoB+g0KA1qyZ9MiTpsMAUgRAIAFBjZUBNgIAQduUASABEMEGCyAAQdAAaiEBIAZCgdasmfTIk6bDAFEEQCAAKAIsIQELIAUgATYCACAAKAIAIgAoAgQhAUGw3AAgACAFQbDcACgCACgCEEEfcUGIAWoRBQAEQCAFKAIAIgAgACgCACgCCEE/cUEIahEEACEAIANBjZUBNgIAIAMgATYCBCADIAA2AghBhZQBIAMQwQYFIARBjZUBNgIAIAQgATYCBEGylAEgBBDBBgsLC0GBlQEgAkEgahDBBgs8AQJ/IwUhASMFQRBqJAUgASEAQdi1AUEDECwEQEGYlgEgABDBBgVB3LUBKAIAECohACABJAUgAA8LQQALMQEBfyMFIQIjBUEQaiQFIAIgATYCAEHU5gAoAgAiASAAIAIQngYaQQogARC6BhoQKAvSAQEDfyMFIQUjBUFAayQFIAUhAyAAIAFBABDGBgR/QQEFIAEEfyABQcjcAEG43ABBABDKBiIBBH8gA0EEaiIEQgA3AgAgBEIANwIIIARCADcCECAEQgA3AhggBEIANwIgIARCADcCKCAEQQA2AjAgAyABNgIAIAMgADYCCCADQX82AgwgA0EBNgIwIAEgAyACKAIAQQEgASgCACgCHEEHcUGMA2oRCwAgAygCGEEBRgR/IAIgAygCEDYCAEEBBUEACwVBAAsFQQALCyEAIAUkBSAACx4AIAAgASgCCCAFEMYGBEBBACABIAIgAyAEEMkGCwufAQACQCAAIAEoAgggBBDGBgRAQQAgASACIAMQyAYFIAAgASgCACAEEMYGBEAgASgCECACRwRAIAFBFGoiACgCACACRwRAIAEgAzYCICAAIAI2AgAgAUEoaiIAIAAoAgBBAWo2AgAgASgCJEEBRgRAIAEoAhhBAkYEQCABQQE6ADYLCyABQQQ2AiwMBAsLIANBAUYEQCABQQE2AiALCwsLCxwAIAAgASgCCEEAEMYGBEBBACABIAIgAxDHBgsLBwAgACABRgttAQF/AkAgAUEQaiIAKAIAIgQEQCAEIAJHBEAgAUEkaiIAIAAoAgBBAWo2AgAgAUECNgIYIAFBAToANgwCCyABQRhqIgAoAgBBAkYEQCAAIAM2AgALBSAAIAI2AgAgASADNgIYIAFBATYCJAsLCyYBAX8gASgCBCACRgRAIAFBHGoiBCgCAEEBRwRAIAQgAzYCAAsLC7YBACABQQE6ADUCQCABKAIEIANGBEAgAUEBOgA0IAFBEGoiACgCACIDRQRAIAAgAjYCACABIAQ2AhggAUEBNgIkIARBAUYgASgCMEEBRnFFDQIgAUEBOgA2DAILIAMgAkcEQCABQSRqIgAgACgCAEEBajYCACABQQE6ADYMAgsgAUEYaiICKAIAIgBBAkYEQCACIAQ2AgAFIAAhBAsgASgCMEEBRiAEQQFGcQRAIAFBAToANgsLCwuGAwEHfyMFIQgjBUFAayQFIAAgACgCACIEQXhqKAIAaiEHIARBfGooAgAhBiAIIgQgAjYCACAEIAA2AgQgBCABNgIIIAQgAzYCDCAEQRRqIQAgBEEYaiEJIARBHGohCiAEQSBqIQMgBEEoaiEBIARBEGoiBUIANwIAIAVCADcCCCAFQgA3AhAgBUIANwIYIAVBADYCICAFQQA7ASQgBUEAOgAmAkAgBiACQQAQxgYEfyAEQQE2AjAgBiAEIAcgB0EBQQAgBigCACgCFEEDcUGYA2oRDAAgCSgCAEEBRgR/IAcFQQALBSAGIAQgB0EBQQAgBigCACgCGEEDcUGUA2oRDQACQAJAAkACQCAEKAIkDgIAAQILIAAoAgAhACABKAIAQQFGIAooAgBBAUZxIAMoAgBBAUZxRQRAQQAhAAsMBAsMAQtBACEADAILIAkoAgBBAUcEQCABKAIARSAKKAIAQQFGcSADKAIAQQFGcUUEQEEAIQAMAwsLIAUoAgALIQALIAgkBSAAC0QBAX8gACABKAIIIAUQxgYEQEEAIAEgAiADIAQQyQYFIAAoAggiBiABIAIgAyAEIAUgBigCACgCFEEDcUGYA2oRDAALC70CAQN/AkAgACABKAIIIAQQxgYEQEEAIAEgAiADEMgGBSAAIAEoAgAgBBDGBkUEQCAAKAIIIgAgASACIAMgBCAAKAIAKAIYQQNxQZQDahENAAwCCyABKAIQIAJHBEAgAUEUaiIFKAIAIAJHBEAgASADNgIgIAFBLGoiAygCAEEERg0DIAFBNGoiBkEAOgAAIAFBNWoiB0EAOgAAIAAoAggiACABIAIgAkEBIAQgACgCACgCFEEDcUGYA2oRDAAgAwJ/AkAgBywAAAR/IAYsAAANAUEBBUEACyEAIAUgAjYCACABQShqIgIgAigCAEEBajYCACABKAIkQQFGBEAgASgCGEECRgRAIAFBAToANiAADQJBBAwDCwsgAA0AQQQMAQtBAwsiADYCAAwDCwsgA0EBRgRAIAFBATYCIAsLCws+AQF/IAAgASgCCEEAEMYGBEBBACABIAIgAxDHBgUgACgCCCIEIAEgAiADIAQoAgAoAhxBB3FBjANqEQsACwstAQJ/IwUhACMFQRBqJAUgACEBQdy1AUHIABArBEBByZYBIAEQwQYFIAAkBQsLNAECfyMFIQEjBUEQaiQFIAEhAiAAEIcGQdy1ASgCAEEAEC0EQEH7lgEgAhDBBgUgASQFCwsLACAAIAFBABDGBguBAwEDfyMFIQUjBUFAayQFIAUhAyACIAIoAgAoAgA2AgAgACABIgRBABDGBgR/QQEFIARBqN0AQQAQxgYLBH9BAQUgAQR/IAFByNwAQYDdAEEAEMoGIgEEfyABKAIIIAAoAghBf3NxBH9BAAUgAEEMaiIAKAIAIAFBDGoiASgCAEEAEMYGBH9BAQUgACgCAEGg3QBBABDGBgR/QQEFIAAoAgAiAAR/IABByNwAQbjcAEEAEMoGIgQEfyABKAIAIgAEfyAAQcjcAEG43ABBABDKBiIBBH8gA0EEaiIAQgA3AgAgAEIANwIIIABCADcCECAAQgA3AhggAEIANwIgIABCADcCKCAAQQA2AjAgAyABNgIAIAMgBDYCCCADQX82AgwgA0EBNgIwIAEgAyACKAIAQQEgASgCACgCHEEHcUGMA2oRCwAgAygCGEEBRgR/IAIgAygCEDYCAEEBBUEACwVBAAsFQQALBUEACwVBAAsLCwsFQQALBUEACwshACAFJAUgAAsEAEEAC4QCAQh/IAAgASgCCCAFEMYGBEBBACABIAIgAyAEEMkGBSABQTRqIgYsAAAhCSABQTVqIgcsAAAhCiAAQRBqIAAoAgwiCEEDdGohCyAGQQA6AAAgB0EAOgAAIABBEGogASACIAMgBCAFENcGAkAgCEEBSgRAIAFBGGohDCAAQQhqIQggAUE2aiENIABBGGohAANAIA0sAAANAiAGLAAABEAgDCgCAEEBRg0DIAgoAgBBAnFFDQMFIAcsAAAEQCAIKAIAQQFxRQ0ECwsgBkEAOgAAIAdBADoAACAAIAEgAiADIAQgBRDXBiAAQQhqIgAgC0kNAAsLCyAGIAk6AAAgByAKOgAACwubBQEJfwJAIAAgASgCCCAEEMYGBEBBACABIAIgAxDIBgUgACABKAIAIAQQxgZFBEAgACgCDCEFIABBEGogASACIAMgBBDYBiAFQQFMDQIgAEEQaiAFQQN0aiEHIABBGGohBSAAKAIIIgZBAnFFBEAgAUEkaiIAKAIAQQFHBEAgBkEBcUUEQCABQTZqIQYDQCAGLAAADQYgACgCAEEBRg0GIAUgASACIAMgBBDYBiAFQQhqIgUgB0kNAAsMBQsgAUEYaiEGIAFBNmohCANAIAgsAAANBSAAKAIAQQFGBEAgBigCAEEBRg0GCyAFIAEgAiADIAQQ2AYgBUEIaiIFIAdJDQALDAQLCyABQTZqIQADQCAALAAADQMgBSABIAIgAyAEENgGIAVBCGoiBSAHSQ0ACwwCCyABKAIQIAJHBEAgAUEUaiILKAIAIAJHBEAgASADNgIgIAFBLGoiDCgCAEEERg0DIABBEGogACgCDEEDdGohDSABQTRqIQcgAUE1aiEGIAFBNmohCCAAQQhqIQkgAUEYaiEKQQAhAyAAQRBqIQVBACEAAn8CQAJAA0AgBSANTw0BIAdBADoAACAGQQA6AAAgBSABIAIgAkEBIAQQ1wYgCCwAAA0BAkAgBiwAAARAIAcsAABFBEAgCSgCAEEBcQRAQQEhAwwDBUEBIQMMBQsACyAKKAIAQQFGDQQgCSgCAEECcUUNBEEBIQNBASEACwsgBUEIaiEFDAALAAsgAEUEQCALIAI2AgAgAUEoaiIAIAAoAgBBAWo2AgAgASgCJEEBRgRAIAooAgBBAkYEQCAIQQE6AAAgAw0DQQQMBAsLCyADDQBBBAwBC0EDCyEAIAwgADYCAAwDCwsgA0EBRgRAIAFBATYCIAsLCwt5AQJ/AkAgACABKAIIQQAQxgYEQEEAIAEgAiADEMcGBSAAQRBqIAAoAgwiBEEDdGohBSAAQRBqIAEgAiADENYGIARBAUoEQCABQTZqIQQgAEEYaiEAA0AgACABIAIgAxDWBiAELAAADQMgAEEIaiIAIAVJDQALCwsLC1YBA38gACgCBCIFQQh1IQQgBUEBcQRAIAIoAgAgBGooAgAhBAsgACgCACIAKAIAKAIcIQYgACABIAIgBGogBUECcQR/IAMFQQILIAZBB3FBjANqEQsAC1oBA38gACgCBCIHQQh1IQYgB0EBcQRAIAMoAgAgBmooAgAhBgsgACgCACIAKAIAKAIUIQggACABIAIgAyAGaiAHQQJxBH8gBAVBAgsgBSAIQQNxQZgDahEMAAtYAQN/IAAoAgQiBkEIdSEFIAZBAXEEQCACKAIAIAVqKAIAIQULIAAoAgAiACgCACgCGCEHIAAgASACIAVqIAZBAnEEfyADBUECCyAEIAdBA3FBlANqEQ0AC4sGAQx/IwUhCyMFQeAgaiQFIAtB0CBqIQcgCyIKQZAgaiEFAkACQCAARQ0AIAFBAEciBCACRSINcQ0AIAQEfyACKAIABUEACyEMIApBgCBqIAo2AgAgBSAKENoGIAVBMGoiBEIANwIAIARBADYCCCAEQQA6AAwgBUE9aiIOQQE6AAAgBUEgaiEIIAVBJGoiBigCACIEIAUoAihJBEAgByAKENsGIARBADYCACAEQQA2AgQgBEEANgIIIAQgBygCADYCDCAGIAYoAgBBEGo2AgAFIAggChDcBgsgBUE+aiIJQQA6AAAgBUEBOgA/IAdBADYCACAAIAAgABCWBmoiDyAFIAcQ3QYCQAJAAkAgBygCACIEIAksAABFcgR/IAQhAAwBBSAIKAIAIgQgBigCAEYNAiAEKAIAIAQoAgRGDQIgCUEAOgAAIA5BADoAACAFKAIAIQYgBUEEaiIIKAIAIQQDQCAEIAZHBEAgBEFoaiIEEN4GDAELCyAIIAY2AgAgBSgCECEGIAVBFGoiCCgCACEEA0AgBCAGRwRAIARBcGoiBBDfBgwBCwsgCCAGNgIAIAAgDyAFIAcQ3QYgCSwAAAR/IAdBfjYCAEEAIQFBfgUgBygCACEADAILCyEADAILIABFDQBBACEBDAELIAVBBGoiACgCAEFoahDgBiIEQQFqIgYgDEsEQCABIAYQiQYiAUUEQCAHQX82AgBBACEBQX8hAAwCCyANRQRAIAIgBjYCAAsFIAFFBEBBACEBQQAhAAwCCwsgACgCACICQXRqIgcsAAsiCUEASCEGIAcoAgAhDCACQXhqKAIAIQggCUH/AXEhCSACQWhqIAYEfyAMBSAHCyAGBH8gCAUgCQsQ4QYaIAAoAgBBaGoiACwAC0EASARAIAAoAgAhAAsgASAAIAQQ9AcaIAEgBGpBADoAAEEAIQALIAMEQCADIAA2AgALIAVBIGoQ4gYgBUEQahDjBiAFEN8GIApBgCBqQQA2AgAMAQsgAwR/IANBfTYCAEEABUEACyEBCyALJAUgAQuPAQECfyMFIQIjBUEQaiQFIAIgATYCACAAQQA2AgAgAEEANgIEIABBADYCCCAAIAIoAgA2AgwgAiABENsGIABBEGoiA0EANgIAIANBADYCBCADQQA2AgggAyACKAIANgIMIAIgATYCACAAQSBqIgBBADYCACAAQQA2AgQgAEEANgIIIAAgAigCADYCDCACJAULCQAgACABNgIAC9sBAQl/IwUhBSMFQSBqJAUgBUEUaiEGIAUhBEH/////ACIHIABBBGoiCCgCACAAKAIAa0EEdUEBaiIDSQRAECgFIAAoAgggACgCACIJayICQQR1IAdBAXZJIQogAkEDdSICIANPBEAgAiEDCyAAQQxqIQIgBCAKBH8gAwUgBwsgCCgCACAJa0EEdSACENwHIARBCGoiAygCACECIAYgARDbBiACQQA2AgAgAkEANgIEIAJBADYCCCACIAYoAgA2AgwgAyACQRBqNgIAIAAgBBDdByAEEN4HIAUkBQsLtgIBAX8CQCAAIAFJBEACQCAALAAAQd8ARgRAIAEgAGtBA0wEQCADQX42AgAMBAsCQAJAAkACQAJAIAAsAAFB2gBrDgYAAgICAgECCyAAQQJqIgQgASACEOwGIgAgBEYgACABRnJFBEAgACwAAEEuRgRAIAAgASACEO0GIQALCyAAIAFGDQUgA0F+NgIADAcLDAELDAELIAAsAAJB3wBGBEAgACwAA0HaAEYEQCAAQQRqIgQgASACEOwGIgAgBEYgACABRnIEQCADQX42AgAMBwsgACABIAIQ7gYgAUYNBCADQX42AgAMBgsLCyADQX42AgAMAwUgACABIAIQ7wYgAUcEQCADQX42AgAMBAsLCyADKAIARQRAIAIoAgAgAigCBEYEQCADQX42AgALCwUgA0F+NgIACwsLDwAgAEEMahDrBiAAEOsGC1IBA38gACgCACICBEAgAEEEaiIDKAIAIQED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aiEADAELCyADIAZBDGoiAEECEPwGQduZARCWBiECIAMoAgQhBSADLAALIg1B/wFxIQ4gAiANQQBIBH8gBQUgDgtGBEAgA0HbmQEgAhD9BkUhAiADEOsGIAIEQCAAEOQHCwUgAxDrBgsgBCAJEIAHIARBAEHbmQEQ8gYaIAogBCkCADcCACAKIAQoAgg2AghBACECA0AgAkEDRwRAIAQgAkECdGpBADYCACACQQFqIQIMAQsLIApBkpoBEPMGGiAIIAopAgA3AgAgCCAKKAIINgIIQQAhAgNAIAJBA0cEQCAKIAJBAnRqQQA2AgAgAkEBaiECDAELCyAALAALIgVBAEghAiAAKAIAIQ0gBigCECEOIAVB/wFxIQUgCCACBH8gDQUgAAsgAgR/IA4FIAULEOEGGiAMIAgpAgA3AgAgDCAIKAIINgIIQQAhAANAIABBA0cEQCAIIABBAnRqQQA2AgAgAEEBaiEADAELCyAHKAIAIgJBdGoiAEELaiIHLAAAQQBIBEAgACgCACEHIANBADoAACAHIAMQ6AYgAkF4akEANgIABSADQQA6AAAgACADEOgGIAdBADoAAAsgABCOByAAIAwpAgA3AgAgACAMKAIINgIIQQAhAANAIABBA0cEQCAMIABBAnRqQQA2AgAgAEEBaiEADAELCyAMEOsGIAgQ6wYgChDrBiAEEOsGIAkQ3gYgBhDeBiABIQALCwsLCwsLCyALJAUgAAtEAQF/IABBADYCACAAQQRqIgNBADYCACAAQQA2AgggACACKAIANgIMIAAQ4wcgAygCACABEPQGIAMgAygCAEEYajYCAAuSAgEIfyMFIQcjBUEgaiQFIAchBUH/////ACIIIABBBGoiCSgCACAAKAIAa0EEdUEBaiIDSQRAECgFIAAoAgggACgCACIEayICQQR1IAhBAXZJIQYgAkEDdSICIANPBEAgAiEDCyAAQQxqIQIgBSAGBH8gAwUgCAsgCSgCACAEa0EEdSACENwHIAVBCGoiBigCACIEQQA2AgAgBEEEaiICQQA2AgAgBEEIaiIDQQA2AgAgBCABKAIMNgIMIAQgASgCADYCACACIAFBBGoiAigCADYCACADIAFBCGoiAygCADYCACADQQA2AgAgAkEANgIAIAFBADYCACAGIARBEGo2AgAgACAFEN0HIAUQ4gcgByQFCwvr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QfeZARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBYLIANCADcCACADQQA2AgggA0GimgFBopoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMFQsgA0IANwIAIANBADYCCCADQaWaAUGlmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwUCyAAIAEgAhCVByEADBMLIAAgASACEJYHIQAMEgsMEQsCQAJAAkACQAJAAkAgBCwAAUHjAGsOFAAFBQUFBQUFBQECBQMFBQUFBQUEBQsgACABIAIQlwchAAwVCyAAIAEgAhCYByEADBQLIANCADcCACADQQA2AgggA0GnmgFBp5oBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEwsgA0IANwIAIANBADYCCCADQamaAUGpmgEQlgYQjAcgAEECaiIEIAEgAyACEJQHIQEgAxDrBiABIARHBEAgASEACwwSCyAAIAEgAhCZByEADBELDBALAkACQAJAAkACQAJAAkACQAJAAkAgBCwAAUHWAGsOIQgJCQkJCQkJCQkJAAkBCQIJCQkJCQkDCQQJCQkJBQYJBwkLIARBAmoiBCABIAIQjQciASAERg0YIAIoAgAgAkEEaiICKAIARg0YIAdCADcCACAHQQA2AggCQCAKBEAgB0GrmgFBq5oBEJYGEIwHBUEAIQADQCAAQQNGDQIgByAAQQJ0akEANgIAIABBAWohAAwACwALCyAHQa6aARDzBhogBiAHKQIANwIAIAYgBygCCDYCCEEAIQADQCAAQQNHBEAgByAAQQJ0akEANgIAIABBAWohAAwBCwsgCCACKAIAQWhqEIAHIAgsAAsiBEEASCEAIAgoAgAhCSAIKAIEIQogBEH/AXEhBCAGIAAEfyAJBSAICyAABH8gCgUgBAsQ4QYaIAUgBikCADcCACAFIAYoAgg2AghBACEAA0AgAEEDRwRAIAYgAEECdGpBADYCACAAQQFqIQAMAQsLIAIoAgAiAkFoaiIAQQtqIgQsAABBAEgEQCAAKAIAIQQgA0EAOgAAIAQgAxDoBiACQWxqQQA2AgAFIANBADoAACAAIAMQ6AYgBEEAOgAACyAAEI4HIAAgBSkCADcCACAAIAUoAgg2AghBACEAA0AgAEEDRwRAIAUgAEECdGpBADYCACAAQQFqIQAMAQsLIAUQ6wYgCBDrBiAGEOsGIAcQ6wYgASEADBgLIAAgASACEJoHIQAMFwsgA0IANwIAIANBADYCCCADQfWZAUH1mQEQlgYQjAcgAEECaiIEIAEgAyACEJQHIQEgAxDrBiABIARHBEAgASEACwwWCyAEQQJqIgQgASACEI0HIgEgBEYNFSACKAIAIAJBBGoiAigCAEYNFSAHQgA3AgAgB0EANgIIAkAgCgRAIAdBq5oBQauaARCWBhCMBwVBACEAA0AgAEEDRg0CIAcgAEECdGpBADYCACAAQQFqIQAMAAsACwsgB0G4mgEQ8wYaIAYgBykCADcCACAGIAcoAgg2AghBACEAA0AgAEEDRwRAIAcgAEECdGpBADYCACAAQQFqIQAMAQsLIAggAigCAEFoahCAByAILAALIgRBAEghACAIKAIAIQkgCCgCBCEKIARB/wFxIQQgBiAABH8gCQUgCAsgAAR/IAoFIAQLEOEGGiAFIAYpAgA3AgAgBSAGKAIINgIIQQAhAANAIABBA0cEQCAGIABBAnRqQQA2AgAgAEEBaiEADAELCyACKAIAIgJBaGoiAEELaiIELAAAQQBIBEAgACgCACEEIANBADoAACAEIAMQ6AYgAkFsakEANgIABSADQQA6AAAgACADEOgGIARBADoAAAsgABCOByAAIAUpAgA3AgAgACAFKAIINgIIQQAhAANAIABBA0cEQCAFIABBAnRqQQA2AgAgAEEBaiEADAELCyAFEOsGIAgQ6wYgBhDrBiAHEOsGIAEhAAwVCyAAIAEgAhCbByEADBQLIAAgASACEJwHIQAMEwsgACABIAIQnQchAAwSCyADQgA3AgAgA0EANgIIIANBwJoBQcCaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBELIANCADcCACADQQA2AgggA0HCmgFBwpoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEAsMDwsCQAJAAkACQCAELAABQc8Aaw4jAQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwIDCyADQgA3AgAgA0EANgIIIANBxZoBQcWaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDBELIANCADcCACADQQA2AgggA0HHmgFBx5oBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMEAsgA0IANwIAIANBADYCCCADQcqaAUHKmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwPCwwOCwJAAkACQCAELAABQeUAaw4QAAICAgICAgICAgICAgICAQILIANCADcCACADQQA2AgggA0HNmgFBzZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDwsgA0IANwIAIANBADYCCCADQYeaAUGHmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwOCwwNCyAELAABQfgARw0MIABBAmoiBCABIAIQjQciCSAERg0MIAJBBGohBCAJIAEgAhCNByIBIAlGBEAgBCgCACECQQAhAQNAIAFBf0cEQCACIAFBf2oiAUEYbGoQ3gYMAQsLIAQgAkFoajYCAAwNCyAEKAIAIgkgAigCAGtBGG1BAkkNDCADIAlBaGoQgAcgBCgCACECQQAhAANAIABBf0cEQCACIABBf2oiAEEYbGoQ3gYMAQsLIAQgAkFoajYCACAFIAJBUGoQgAcgDEHjmQEgBRCPByAMQdCaARDzBhogCCAMKQIANwIAIAggDCgCCDYCCEEAIQADQCAAQQNHBEAgDCAAQQJ0akEANgIAIABBAWohAAwBCwsgAywACyICQQBIIQAgAygCACEJIAMoAgQhCiACQf8BcSECIAggAAR/IAkFIAMLIAAEfyAKBSACCxDhBhogByAIKQIANwIAIAcgCCgCCDYCCEEAIQADQCAAQQNHBEAgCCAAQQJ0akEANgIAIABBAWohAAwBCwsgB0GSmgEQ8wYaIBAgBykCADcCACAQIAcoAgg2AghBACEAA0AgAEEDRwRAIAcgAEECdGpBADYCACAAQQFqIQAMAQsLIAYgEBCDByAEKAIAQWhqIAYQhAcgBhDeBiAQEOsGIAcQ6wYgCBDrBiAMEOsGIAUQ6wYgAxDrBiABIQAMDAsCQAJAAkACQAJAIAQsAAFB0wBrDiICBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAEDBAsgA0IANwIAIANBADYCCCADQdOaAUHTmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwPCyADQgA3AgAgA0EANgIIIANB1poBQdaaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA4LIANCADcCACADQQA2AgggA0HZmgFB2ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDQsgA0IANwIAIANBADYCCCADQYWaAUGFmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwMCwwLCwJAAkACQAJAAkACQCAELAABQckAaw4lAQUFAwUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUABQUCBAULIANCADcCACADQQA2AgggA0HdmgFB3ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDwsgA0IANwIAIANBADYCCCADQd+aAUHfmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwOCyADQgA3AgAgA0EANgIIIANB9ZkBQfWZARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA0LIANCADcCACADQQA2AgggA0HimgFB4poBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDAsgAEECaiIEIAFHBEAgBCwAAEHfAEYEQCADQgA3AgAgA0EANgIIIANB5ZoBQeWaARCWBhCMByAAQQNqIgQgASADIAIQlAchASADEOsGIAEgBEcEQCABIQALDA0LCyAEIAEgAhCNByIBIARGDQsgAigCACACQQRqIgIoAgAiBEYNCyAGIARBaGoQgAcgBkEAQeOZARDyBhogBSAGKQIANwIAIAUgBigCCDYCCEEAIQADQCAAQQNHBEAgBiAAQQJ0akEANgIAIABBAWohAAwBCwsgBUHomgEQ8wYaIBEgBSkCADcCACARIAUoAgg2AghBACEAA0AgAEEDRwRAIAUgAEECdGpBADYCACAAQQFqIQAMAQsLIAMgERCDByACKAIAQWhqIAMQhAcgAxDeBiAREOsGIAUQ6wYgBhDrBiABIQAMCwsMCgsCQAJAAkACQAJAAkAgBCwAAUHhAGsOGAAFBQUBBQIFBQUFBQUFBQUFBQUDBQUABAULIAAgASACEJ4HIQAMDgsgA0IANwIAIANBADYCCCADQeyaAUHsmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwNCyADQgA3AgAgA0EANgIIIANB3ZoBQd2aARCWBhCMByAAQQJqIgQgASADIAIQlAchASADEOsGIAEgBEcEQCABIQALDAwLIANCADcCACADQQA2AgggA0HvmgFB75oBEJYGEIwHIABBAmoiBCABIAMgAhCUByEBIAMQ6wYgASAERwRAIAEhAAsMCwsgAEECaiIEIAEgAhCfByIBIARHBEAgASEACwwKCwwJCwJAAkACQAJAAkAgBCwAAUHSAGsOIQMEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAQQEAgQLIAAgASACEJsHIQAMDAsgA0IANwIAIANBADYCCCADQfGaAUHxmgEQlgYQjAcgAEECaiIEIAEgAyACEJMHIQEgAxDrBiABIARHBEAgASEACwwLCyADQgA3AgAgA0EANgIIIANB9JoBQfSaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDAoLIANCADcCACADQQA2AgggA0H2mgFB9poBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMCQsMCAsCQAJAAkACQAJAAkACQCAELAABQcwAaw4pAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYBAAYGAwYGBAUGCyADQgA3AgAgA0EANgIIIANB+ZoBQfmaARCWBhCMByAAQQJqIgQgASADIAIQkwchASADEOsGIAEgBEcEQCABIQALDA0LIANCADcCACADQQA2AgggA0H9mgFB/ZoBEJYGEIwHIABBAmoiBCABIAMgAhCTByEBIAMQ6wYgASAERwRAIAEhAAsMDAsgA0IANwIAIANBADYCCCADQf+aAUH/mgEQlgYQjAcgAEECaiIEIAEg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BEAgACwAAEHMAEYEQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQQFqIgUsAABB1ABrDiYAFBQUFBQUFBQUFBMUBAIDERIQFAUICRQKCw4PFBQUBgcUFAEMDRQLDBYLIANCADcCACADQQA2AgggA0GLowFBi6MBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMFQsgACwAA0HFAEcNFAJAAkACQCAALAACQTBrDgIAAQILIANBk6MBEKkHIAJBBGoiBCgCACIBIAIoAghJBEAgASADEIUHIAQgBCgCAEEYajYCAAUgAiADEIYHCyADEN4GIABBBGohAAwWCyADQZmjARDOByACQQRqIgQoAgAiASACKAIISQRAIAEgAxCFByAEIAQoAgBBGGo2AgAFIAIgAxCGBwsgAxDeBiAAQQRqIQAMFQsMFAsgA0IANwIAIANBADYCCCADQZ6jAUGeowEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwTCyADQgA3AgAgA0EANgIIIANBo6MBQaOjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCABIQALDBILIANCADcCACADQQA2AgggA0GvowFBr6MBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMEQsgA0IANwIAIANBADYCCCADQb2jAUG9owEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwQCyADQgA3AgAgA0EANgIIIANBw6MBQcOjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCABIQALDA8LIANCADcCACADQQA2AgggA0HstQFB7LUBEJYGEIwHIABBAmoiBCABIAMgAhDNByEBIAMQ6wYgASAERwRAIAEhAAsMDgsgA0IANwIAIANBADYCCCADQdKjAUHSowEQlgYQjAcgAEECaiIEIAEgAyACEM0HIQEgAxDrBiABIARHBEAgASEACwwNCyADQgA3AgAgA0EANgIIIANB1KMBQdSjARCWBhCMByAAQQJqIgQgASADIAIQzQchASADEOsGIAEgBEcEQCAB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QQA6AAAgACALEOgGIARBADoAAAsgABCOByAAIAkpAgA3AgAgACAJKAIINgIIQQAhAANAIABBA0cEQCAJIABBAnRqQQA2AgAgAEEBaiEADAELCyAJEOsGIAMQ6wYgBRDrBiAHEOsGIAgQ6wYgASEADAILAkACQCAEIAEQ7QciAyAERgR/IAAhAUEDBSADIAEgAhDsBiIBIANGBH8gACEBQQAFIAIoAgAgAigCBCICRgR/IAAhAUEBBSACQWhqIQIgACwAAkH2AEYEfyACQQBB4acBEPIGGkEABSACQQBB86cBEPIGGkEACwsLCyICQQNxDgQAAQEAAQsgASEADAILIAJFBEAgASEACwsLIAYkBSAACw8AIAAoAgAgACwABDoAAAvHAQECfwJAIAAgAUcEQAJAAkACQAJAIAAsAABB6ABrDg8AAgICAgICAgICAgICAgECCyAAQQFqIgMgARCLByICIANGIAIgAUZyDQQgAkEBaiEBIAIsAABB3wBGBH8gAQUgAAsPCwwBCwwCCyAAQQFqIgMgARCLByICIANGIAIgAUZyRQRAIAIsAABB3wBGBEAgAkEBaiIDIAEQiwciAiADRiACIAFGckUEQCACQQFqIQEgAiwAAEHfAEYEQCABIQALCwsLCwsgAAsZACAALAAAQQFGBH9BAAUgAEEBOgAAQQELC0sBAn8jBSEDIwVBEGokBSADIgQgAigCADYCACAAIAEgAyAAKAIAKAIQQR9xQYgBahEFACIABEAgAiAEKAIANgIACyADJAUgAEEBcQscACAABH8gAEHI3ABBgN0AQQAQygZBAEcFQQALCwMAAQsrACAAQf8BcUEYdCAAQQh1Qf8BcUEQdHIgAEEQdUH/AXFBCHRyIABBGHZyCx0BAX8gAWciA0EgRgRAIAMgAGdqIQMLQQAkCSADC8MDAQN/IAJBgMAATgRAIAAgASACECkPCyAAIQQgACACaiEDIABBA3EgAUEDcUYEQANAIABBA3EEQCACRQRAIAQPCyAAIAEsAAA6AAAgAEEBaiEAIAFBAWohASACQQFrIQIMAQsLIANBfHEiAkFAaiEFA0AgACAFTARAIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAAgASgCDDYCDCAAIAEoAhA2AhAgACABKAIUNgIUIAAgASgCGDYCGCAAIAEoAhw2AhwgACABKAIgNgIgIAAgASgCJDYCJCAAIAEoAig2AiggACABKAIsNgIsIAAgASgCMDYCMCAAIAEoAjQ2AjQgACABKAI4NgI4IAAgASgCPDYCPCAAQUBrIQAgAUFAayEBDAELCwNAIAAgAkgEQCAAIAEoAgA2AgAgAEEEaiEAIAFBBGohAQwBCwsFIANBBGshAgNAIAAgAkgEQCAAIAEsAAA6AAAgACABLAABOgABIAAgASwAAjoAAiAAIAEsAAM6AAMgAEEEaiEAIAFBBGohAQwBCwsLA0AgACADSARAIAAgASwAADoAACAAQQFqIQAgAUEBaiEBDAELCyAEC2ABAX8gASAASCAAIAEgAmpIcQRAIAAhAyABIAJqIQEgACACaiEAA0AgAkEASgRAIAJBAWshAiAAQQFrIgAgAUEBayIBLAAAOgAADAELCyADIQAFIAAgASACEPQHGgsgAAuYAgEEfyAAIAJqIQQgAUH/AXEhASACQcMATgRAA0AgAEEDcQRAIAAgAToAACAAQQFqIQAMAQsLIARBfHEiBUFAaiEGIAEgAUEIdHIgAUEQdHIgAUEYdHIhAwNAIAAgBkwEQCAAIAM2AgAgACADNgIEIAAgAzYCCCAAIAM2AgwgACADNgIQIAAgAzYCFCAAIAM2AhggACADNgIcIAAgAzYCICAAIAM2AiQgACADNgIoIAAgAzYCLCAAIAM2AjAgACADNgI0IAAgAzYCOCAAIAM2AjwgAEFAayEADAELCwNAIAAgBUgEQCAAIAM2AgAgAEEEaiEADAELCwsDQCAAIARIBEAgACABOgAAIABBAWohAAwBCwsgBCACawtRAQF/IABBAEojBCgCACIBIABqIgAgAUhxIABBAEhyBEAQAxpBDBAHQX8PCyMEIAA2AgAgABACSgRAEAFFBEAjBCABNgIAQQwQB0F/DwsLIAELDwAgASAAQT9xQQhqEQQACxIAIAEgAiAAQT9xQcgAahEHAAsUACABIAIgAyAAQR9xQYgBahEFAAsWACABIAIgAyAEIABBD3FBqAFqEQgACxgAIAEgAiADIAQgBSAAQQdxQbgBahEJAAsaACABIAIgAyAEIAUgBiAAQR9xQcABahEKAAsRACABIABB/wBxQeQBahEAAAsSACABIAIgAEEfcUHkAmoRAgALFAAgASACIAMgAEEHcUGEA2oRAwALFgAgASACIAMgBCAAQQdxQYwDahELAAsYACABIAIgAyAEIAUgAEEDcUGUA2oRDQALGgAgASACIAMgBCAFIAYgAEEDcUGYA2oRDAALCABBABAAQQALCABBARAAQQALCABBAhAAQQALCABBAxAAQQALCABBBBAAQQALCABBBRAAQQALCABBBhAAQQALBgBBBxAACwYAQQgQAAsGAEEJEAALBgBBChAACwYAQQsQAAsGAEEMEAALBgBBDRAACwuWmQE0AEGACAsyoC4AADgrAAD4LgAAwC4AALAuAAAgKwAA+C4AAMAuAADgLgAA4CsAACArAAAgKwAA4C4AQcAICyLgLgAA4CsAACArAAAgKwAA4C4AAOArAAAgKwAAICsAAGArAEHwCAsS4C4AAOArAAAgKwAAICsAAJgrAEGQCQuVFrAuAAD4KwAAYCoAAGAqAACwLgAAICwAAGAqAABgKgAAAAAAAGs4BwANsgcAnPIHAHBkCABgrgoAsHELADCqDAATAAAADAAAAA0AAAABAAAABgAAAAEAAAABAAAAEwAAAA0AAAAOAAAAAQAAAAcAAAABAAAAAQAAABMAAAAPAAAAEAAAAAEAAAAGAAAAAQAAAAEAAAAUAAAAEAAAABEAAAABAAAABQAAAAgAAAACAAAAFAAAABEAAAASAAAAAQAAAAUAAAAIAAAAAgAAABQAAAARAAAAEgAAAAIAAAAFAAAAEAAAAAMAAAAVAAAAEQAAABMAAAACAAAABQAAABAAAAAEAAAAFQAAABIAAAATAAAAAwAAAAUAAAAQAAAABAAAABUAAAASAAAAFAAAAAMAAAAFAAAAEAAAAAUAAAAVAAAAEwAAABQAAAADAAAABQAAABAAAAAFAAAAFQAAABMAAAAVAAAABAAAAAUAAAAQAAAABQAAABYAAAAUAAAAFgAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABYAAAAFAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABAAAAAUAAAAgAAAABgAAABYAAAAVAAAAFgAAAAUAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAGAAAABQAAACAAAAAGAAAAFgAAABUAAAAWAAAABAAAAAUAAAAwAAAABwAAABcAAAAWAAAAFgAAAAQAAAAEAAAAMAAAAAcAAAAXAAAAFgAAABYAAAAFAAAAAwAAAEAAAAAHAAAAFwAAABcAAAAWAAAABwAAAAMAAACAAAAABwAAABkAAAAZAAAAFwAAAAcAAAADAAAAgAAAAAgAAAAaAAAAGgAAABgAAAAHAAAAAwAAAAABAAAIAAAAGwAAABsAAAAZAAAACQAAAAMAAAAAAgAACAAAABIAAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAASAAAADQAAAA4AAAABAAAABgAAAAEAAAABAAAAEgAAAA4AAAANAAAAAQAAAAUAAAAIAAAAAgAAABIAAAAQAAAADwAAAAEAAAAFAAAACAAAAAIAAAASAAAADwAAABEAAAABAAAABQAAAAgAAAADAAAAEgAAABAAAAARAAAABAAAAAUAAAAIAAAAAwAAABIAAAAQAAAAEQAAAAMAAAAFAAAACAAAAAQAAAASAAAAEQAAABEAAAAEAAAABAAAAAgAAAAEAAAAEgAAABEAAAARAAAABAAAAAQAAAAIAAAABQAAABIAAAARAAAAEQAAAAUAAAAEAAAACAAAAAUAAAASAAAAEQAAABEAAAAGAAAABAAAAAgAAAAFAAAAEgAAABIAAAARAAAABgAAAAQAAAAIAAAABQAAABIAAAASAAAAEQAAAAUAAAAEAAAACAAAAAYAAAASAAAAEwAAABEAAAAHAAAABAAAAAgAAAAGAAAAEgAAABIAAAASAAAABAAAAAQAAAAQAAAABwAAABIAAAASAAAAEgAAAAQAAAADAAAAEAAAAAcAAAASAAAAEwAAABIAAAAGAAAAAwAAACAAAAAHAAAAEgAAABMAAAASAAAACAAAAAMAAABAAAAABwAAABIAAAATAAAAEgAAAAkAAAADAAAAgAAAAAcAAAASAAAAEwAAABIAAAAKAAAAAwAAAAABAAAHAAAAEgAAABMAAAASAAAACwAAAAMAAAAAAgAACAAAABIAAAATAAAAEgAAAAwAAAADAAAAAAIAAAgAAAASAAAAEwAAABIAAAANAAAAAwAAAAACAAAIAAAAEQAAAAwAAAAMAAAAAQAAAAUAAAABAAAAAQAAABEAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAARAAAADQAAABAAAAABAAAABQAAAAEAAAABAAAAEQAAABAAAAAQAAAAAgAAAAUAAAAIAAAAAgAAABEAAAANAAAADwAAAAMAAAAEAAAACAAAAAMAAAARAAAADwAAABEAAAAEAAAABAAAAAgAAAADAAAAEQAAABAAAAARAAAAAwAAAAQAAAAIAAAABAAAABEAAAAPAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAEAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABQAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAYAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAHAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAACAAAAAQAAAAIAAAABQAAABEAAAASAAAAEQAAAAYAAAAEAAAACAAAAAYAAAARAAAAEQAAABEAAAAHAAAAAwAAAAgAAAAHAAAAEQAAABEAAAARAAAABwAAAAMAAAAQAAAABwAAABEAAAASAAAAEQAAAAcAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAHAAAAAwAAAEAAAAAHAAAAEQAAABIAAAARAAAABwAAAAMAAAAAAQAABwAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAcAAAARAAAAEgAAABEAAAAJAAAAAwAAAAABAAAIAAAAEQAAABIAAAARAAAACgAAAAMAAAAAAQAACAAAABEAAAASAAAAEQAAAAsAAAADAAAAAAIAAAgAAAAOAAAADAAAAA0AAAABAAAABQAAAAEAAAABAAAADgAAAA4AAAAOAAAAAQAAAAYAAAABAAAAAQAAAA4AAAAOAAAADgAAAAEAAAAEAAAAAQAAAAEAAAAOAAAADgAAAA4AAAABAAAABAAAAAYAAAACAAAADgAAAA4AAAAOAAAABAAAAAQAAAAGAAAAAwAAAA4AAAAOAAAADgAAAAMAAAAEAAAABgAAAAQAAAAOAAAADgAAAA4AAAAEAAAABAAAAAYAAAAFAAAADgAAAA4AAAAOAAAABQAAAAQAAAAGAAAABQAAAA4AAAAOAAAADgAAAAYAAAAEAAAABgAAAAUAAAAOAAAADwAAAA4AAAAGAAAABAAAAAYAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAMAAAAGAAAABwAAAA4AAAAPAAAADgAAAAYAAAADAAAACAAAAAcAAAAOAAAADwAAAA4AAAAGAAAAAwAAABAAAAAHAAAADgAAAA8AAAAOAAAABgAAAAMAAAAYAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAMAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAEAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAABgAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAgAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAAABAAAHAAAADgAAAA8AAAAPAAAABwAAAAMAAAAAAQAABwAAAA4AAAAPAAAADwAAAAgAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAJAAAAAwAAAAABAAAIAAAADgAAAA8AAAAPAAAACgAAAAMAAAAAAQAACAAAAAAAAAABAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AQAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAEGxHwuHAgECAwQFBgcICQoLDA0ODxAQERESEhMTFBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICAhISIiIyMkJCQkJSUlJSYmJiYmJiYmJycnJycnJycoKCgoKCgoKCgoKCgoKCgoKSkpKSkpKSkpKSkpKSkpKSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqBAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AEHAIQuqAQEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////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AAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQbAyC0gEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AQYAzC6oBAQABAAEAAQABAAEAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA/////////////wAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AQfA0C00BAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEABBwDYLUQEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEABBpDcLbQEAAAADAAAABwAAAA8AAAAfAAAAPwAAAH8AAAD/AAAA/wEAAP8DAAD/BwAA/w8AAP8fAAD/PwAA/38AAP//AAD//wEA//8DAP//BwD//w8A//8fAP//PwD//38A////AP///wH///8DAQAAAAEAQaQ4C88BAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAiAAAAJAAAACYAAAAoAAAALAAAADAAAAA4AAAAQAAAAFAAAABgAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAEGEOgvUAQEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAASAAAAFAAAABYAAAAYAAAAHAAAACAAAAAoAAAAMAAAAEAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEABAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AEHgOwvtAgEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AAAAAAAACAAAAAgAAAAIAAAABwAAAAgAAAAJAAAACgAAAAsAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAEAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAAABAAAAAgEAAAABAAAAAQAAAAEAAAABAEHYPgsNAQAAAAEAAAACAAAAAgBB8D4LlQMBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAQAAAAIAAAADAAAABAAAAAcAAAAIAAAADwAAABAAAAAfAAAAIAAAAD8AAABAAAAAfwAAAIAAQZDCAAsYEQAKABEREQAAAAAFAAAAAAAACQAAAAALAEGwwgALIREADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQBB4cIACwELAEHqwgALGBEACgoREREACgAAAgAJCwAAAAkACwAACwBBm8MACwEMAEGnwwALFQwAAAAADAAAAAAJDAAAAAAADAAADABB1cMACwEOAEHhwwALFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBj8QACwEQAEGbxAALHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBB0sQACw4SAAAAEhISAAAAAAAACQBBg8UACwELAEGPxQALFQoAAAAACgAAAAAJCwAAAAAACwAACwBBvcUACwEMAEHJxQALfgwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRlQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fABB0MYAC/0cSWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVk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AAAAAAAAAAMAAAAEAAAAAAAAAAUAAAAGAAAAAAAAANQyAAAFAEHg5QALAR0AQfjlAAsOAQAAAAIAAABIVAAAAAQAQZDmAAsBAQBBn+YACwUK/////wBB0OYACwnUMgAAWDMAAAUAQeTmAAsBHQBB/OYACwoDAAAAAgAAAOxaAEGU5wALAQIAQaPnAAsF//////8AQZDpAAsCsFoAQezpAAsBBABBk+oACwX//////wBByOoAC+09IC4AADIAAAAzAAAAHgAAAAEAAAAAAAAAOC4AADQAAAA1AAAANgAAADcAAAAFAAAAAQAAAAEAAAABAAAAAAAAAGAuAAA0AAAAOAAAADYAAAA3AAAABQAAAAIAAAACAAAAAgAAAAAAAACQLgAANAAAADkAAAA2AAAANwAAAAYAAAAAAAAAgC4AADQAAAA6AAAANgAAADcAAAAHAAAAAAAAABAvAAA0AAAAOwAAADYAAAA3AAAACAAAAAAAAAAgLwAANAAAADwAAAA2AAAANwAAAAUAAAADAAAAAwAAAAMAAABkdW1teQByYgBsZW5ndGgAYnVmZmVyAGNvbnN0cnVjdG9yAHNldABIRUFQVTgAVmVjdG9yVTgAY2xvbmVUb1ZlY3RvcgBjbG9uZUFzVHlwZWRBcnJheQB0b1R5cGVkQXJyYXlWaWV3AFpzdGRDb21wcmVzc2lvbkRpY3QAY3JlYXRlQ29tcHJlc3Npb25EaWN0AFpzdGREZWNvbXByZXNzaW9uRGljdABjcmVhdGVEZWNvbXByZXNzaW9uRGljdABac3RkQ29kZWMAY29tcHJlc3NCb3VuZABjb250ZW50U2l6ZQBjb21wcmVzcwBkZWNvbXByZXNzAGNvbXByZXNzVXNpbmdEaWN0AGRlY29tcHJlc3NVc2luZ0RpY3QAWnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBiZWdpbgBiZWdpblVzaW5nRGljdAB0cmFuc2Zvcm0AZmx1c2gAZW5kAFpzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8wTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UktOU182dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFRUVFAFpOMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nOVRyYW5zZm9ybUVOMTBlbXNjcmlwdGVuM3ZhbEVTMV9FMyRfMABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzNFbmRFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzJOU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmczRW5kRU4xMGVtc2NyaXB0ZW4zdmFsRUUzJF8yAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8zTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAFpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVMxX0UzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc1Rmx1c2hFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzROU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNQBwdXNoX2JhY2sAcmVzaXplAHNpemUAZ2V0AE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAE5TdDNfXzIxM19fdmVjdG9yX2Jhc2VJaE5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjIwX192ZWN0b3JfYmFzZV9jb21tb25JTGIxRUVFAFBOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQBQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAGlpAHYAdmkAdmlpaQB2aWlpaQBpaWkAaWlpaQBpaWlpaQAxOVpzdGRDb21wcmVzc2lvbkRpY3QAOFJlc291cmNlSTEyWlNURF9DRGljdF9zRQBQMTlac3RkQ29tcHJlc3Npb25EaWN0AFBLMTlac3RkQ29tcHJlc3Npb25EaWN0ADIxWnN0ZERlY29tcHJlc3Npb25EaWN0ADhSZXNvdXJjZUkxMlpTVERfRERpY3Rfc0UAUDIxWnN0ZERlY29tcHJlc3Npb25EaWN0AFBLMjFac3RkRGVjb21wcmVzc2lvbkRpY3QAOVpzdGRDb2RlYwBQOVpzdGRDb2RlYwBQSzlac3RkQ29kZWMAaWlpaWlpADI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBQMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nAFBLMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nADI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFAyN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBQSzI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFBGdlAxMVpTVERfQ0N0eF9zRQBGdlAxMVpTVERfQ0N0eF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTFaU1REX0NDdHhfc0VOU185YWxsb2NhdG9ySVM1X0VFUzRfRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRnZQMTFaU1REX0NDdHhfc0VFRQBQRnZQMTFaU1REX0RDdHhfc0UARnZQMTFaU1REX0RDdHhfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDExWlNURF9EQ3R4X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDExWlNURF9EQ3R4X3NFRUUAUEZ2UDEyWlNURF9DRGljdF9zRQBGdlAxMlpTVERfQ0RpY3Rfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDEyWlNURF9DRGljdF9zRU5TXzlhbGxvY2F0b3JJUzVfRUVTNF9FRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlAxMlpTVERfQ0RpY3Rfc0VFRQBQRnZQMTJaU1REX0REaWN0X3NFAEZ2UDEyWlNURF9ERGljdF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTJaU1REX0REaWN0X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDEyWlNURF9ERGljdF9zRUVFAFpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9DQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0NDdHhfc0VFRQBaTjE4WnN0ZENvbXByZXNzU3RyZWFtNUJlZ2luRVJLMTlac3RkQ29tcHJlc3Npb25EaWN0RTMkXzEATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4xOFpzdGRDb21wcmVzc1N0cmVhbTVCZWdpbkVSSzE5WnN0ZENvbXByZXNzaW9uRGljdEUzJF8xTlNfOWFsbG9jYXRvcklTNl9FRUZtUDExWlNURF9DQ3R4X3NFRUUAWk4yMFpzdGREZWNvbXByZXNzU3RyZWFtNUJlZ2luRXZFMyRfMgBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FdkUzJF8yTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9EQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0RDdHhfc0VFRQBaTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FUksyMVpzdGREZWNvbXByZXNzaW9uRGljdEUzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjBac3RkRGVjb21wcmVzc1N0cmVhbTVCZWdpbkVSSzIxWnN0ZERlY29tcHJlc3Npb25EaWN0RTMkXzNOU185YWxsb2NhdG9ySVM2X0VFRm1QMTFaU1REX0RDdHhfc0VFRQBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAHJ3YQBzdGQ6OmJhZF9mdW5jdGlvbl9jYWxsAE5TdDNfXzIxN2JhZF9mdW5jdGlvbl9jYWxsRQB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHB0aHJlYWRfb25jZSBmYWlsdXJlIGluIF9fY3hhX2dldF9nbG9iYWxzX2Zhc3QoKQBjYW5ub3QgY3JlYXRlIHB0aHJlYWQga2V5IGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAGNhbm5vdCB6ZXJvIG91dCB0aHJlYWQgdmFsdWUgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgBEbgBiAGMAaABhAHMAdABpAGoAbQBmAGQATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAIGNvbnN0ACB2b2xhdGlsZQAgcmVzdHJpY3QAIGNvbXBsZXgAIGltYWdpbmFyeQAgWwAgKAApACgAJiYAb2JqY19vYmplY3Q8ACoAJgBvYmpjcHJvdG8AIAA8AD4AIHZlY3RvclsAXQBwaXhlbCB2ZWN0b3JbACY9AD0ALAB+ADo6AGRlbGV0ZVtdIABkZWxldGUgAC8ALz0AXgBePQA9PQA+PQApWwA8PQA8PAA8PD0ALQAtPQAqPQAtLQApLS0AIT0AIQB8fAB8AHw9AC0+KgArACs9ACsrACkrKwApID8gKAApIDogKAAlACU9AD4+AD4+PQB0aHJvdwB0aHJvdyAAdHlwZWlkKABzaXplb2YuLi4oACwgAHNpemVvZiAoAHN0YXRpY19jYXN0PAA+KAByZWludGVycHJldF9jYXN0PAAtPgBub2V4Y2VwdCAoAFtdIAApIAAuAC4qAHN0ZDo6AG9wZXJhdG9yJiYAb3BlcmF0b3ImAG9wZXJhdG9yJj0Ab3BlcmF0b3I9AG9wZXJhdG9yKCkAb3BlcmF0b3IsAG9wZXJhdG9yfgBvcGVyYXRvciAAb3BlcmF0b3IgZGVsZXRlW10Ab3BlcmF0b3IqAG9wZXJhdG9yLwBvcGVyYXRvci89AG9wZXJhdG9yXgBvcGVyYXRvcl49AG9wZXJhdG9yPT0Ab3BlcmF0b3I+PQBvcGVyYXRvcj4Ab3BlcmF0b3JbXQBvcGVyYXRvcjw9AG9wZXJhdG9yIiIgAG9wZXJhdG9yPDwAb3BlcmF0b3I8PD0Ab3BlcmF0b3I8AG9wZXJhdG9yLQBvcGVyYXRvci09AG9wZXJhdG9yKj0Ab3BlcmF0b3ItLQBvcGVyYXRvciBuZXdbXQBvcGVyYXRvciE9AG9wZXJhdG9yIQBvcGVyYXRvciBuZXcAb3BlcmF0b3J8fABvcGVyYXRvcnwAb3BlcmF0b3J8PQBvcGVyYXRvci0+KgBvcGVyYXRvcisAb3BlcmF0b3IrPQBvcGVyYXRvcisrAG9wZXJhdG9yLT4Ab3BlcmF0b3I/AG9wZXJhdG9yJQBvcGVyYXRvciU9AG9wZXJhdG9yPj4Ab3BlcmF0b3I+Pj0Ab3BlcmF0b3IgZGVsZXRlACd1bm5hbWVkACdsYW1iZGEnKABzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+AGJhc2ljX3N0cmluZwBzdGQ6OmlzdHJlYW0Ac3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pc3RyZWFtAHN0ZDo6b3N0cmVhbQBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+AGJhc2ljX29zdHJlYW0Ac3RkOjppb3N0cmVhbQBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pb3N0cmVhbQBkeW5hbWljX2Nhc3Q8ACkoAGNvbnN0X2Nhc3Q8AGFsaWdub2YgKABmcAB3Y2hhcl90AGZhbHNlAHRydWUAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AHUAbAB1bABsbAB1bGwAX19pbnQxMjgAdW5zaWduZWQgX19pbnQxMjgAJUxhTAAlYQAlYWYAZGVjbHR5cGUoAHN0ZDo6YWxsb2NhdG9yAHN0ZDo6YmFzaWNfc3RyaW5nADo6c3RyaW5nIGxpdGVyYWwAc3RkAF9HTE9CQUxfX04AKGFub255bW91cyBuYW1lc3BhY2UpACA+AFRfAGlkADo6KgAgJgAgJiYAIFtdAHZvaWQAYm9vbABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBsb25nIGxvbmcAZmxvYXQAbG9uZyBkb3VibGUAX19mbG9hdDEyOAAuLi4AZGVjaW1hbDY0AGRlY2ltYWwxMjgAZGVjaW1hbDMyAGRlY2ltYWwxNgBjaGFyMzJfdABjaGFyMTZfdABhdXRvAHN0ZDo6bnVsbHB0cl90AGRvdWJsZQB1bnNpZ25lZCBsb25nIGxvbmcAX2Jsb2NrX2ludm9rZQBpbnZvY2F0aW9uIGZ1bmN0aW9uIGZvciBibG9jayBpbiAAdnRhYmxlIGZvciAAVlRUIGZvciAAdHlwZWluZm8gZm9yIAB0eXBlaW5mbyBuYW1lIGZvciAAY292YXJpYW50IHJldHVybiB0aHVuayB0byAAY29uc3RydWN0aW9uIHZ0YWJsZSBmb3IgAC1pbi0AdmlydHVhbCB0aHVuayB0byAAbm9uLXZpcnR1YWwgdGh1bmsgdG8gAGd1YXJkIHZhcmlhYmxlIGZvciAAcmVmZXJlbmNlIHRlbXBvcmFyeSBmb3Ig";var asmjsCodeFile="";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile);}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile);}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile);}var wasmPageSize=64*1024;var info={"global":null,"env":null,"asm2wasm":asm2wasmImports,"parent":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr);}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr);}},clearRef:function clearRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0;}};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--;}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr;}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr;}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0;}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0;}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0;}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0;}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1;}else{__ZSt18uncaught_exceptionv.uncaught_exception++;}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}function ___gxx_personality_v0(){}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 splitPath(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1);},normalizeArray:function normalizeArray(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 normalize(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 dirname(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 basename(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1);},extname:function extname(path){return PATH.splitPath(path)[3];},join:function join(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"));},join2:function join2(l,r){return PATH.normalize(l+"/"+r);},resolve:function resolve(){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 relative(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 put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[];}else{if(val!=0)tty.output.push(val);}},flush:function flush(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[];}}},default_tty1_ops:{put_char:function put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[];}else{if(val!=0)tty.output.push(val);}},flush:function flush(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[];}}}};var MEMFS={ops_table:null,mount:function mount(_mount){return MEMFS.createNode(null,"/",16384|511,0);},createNode:function createNode(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 getFileDataAsRegularArray(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 staticInit(){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 bufferFrom(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer);},mount:function mount(_mount3){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(_mount3.opts.root),0);},createNode:function createNode(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 getMode(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 realPath(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 flagsForNode(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 getattr(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 setattr(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 lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode);},mknod:function mknod(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 rename(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 unlink(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 rmdir(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 readdir(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 symlink(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 readlink(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 open(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 close(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 read(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 write(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 llseek(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(_mount4){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 write(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO);},llseek:function llseek(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 handleFSError(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno);},lookupPath:function lookupPath(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 getPath(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 hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length;},hashAddNode:function hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node;},hashRemoveNode:function hashRemoveNode(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 lookupNode(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 createNode(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 get(){return(this.mode&readMode)===readMode;},set:function set(val){val?this.mode|=readMode:this.mode&=~readMode;}},write:{get:function get(){return(this.mode&writeMode)===writeMode;},set:function set(val){val?this.mode|=writeMode:this.mode&=~writeMode;}},isFolder:{get:function get(){return FS.isDir(this.mode);}},isDevice:{get:function get(){return FS.isChrdev(this.mode);}}});}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node;},destroyNode:function destroyNode(node){FS.hashRemoveNode(node);},isRoot:function isRoot(node){return node===node.parent;},isMountpoint:function isMountpoint(node){return!!node.mounted;},isFile:function isFile(mode){return(mode&61440)===32768;},isDir:function isDir(mode){return(mode&61440)===16384;},isLink:function isLink(mode){return(mode&61440)===40960;},isChrdev:function isChrdev(mode){return(mode&61440)===8192;},isBlkdev:function isBlkdev(mode){return(mode&61440)===24576;},isFIFO:function isFIFO(mode){return(mode&61440)===4096;},isSocket:function isSocket(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 modeStringToFlags(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str);}return flags;},flagsToPermissionString:function flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w";}return perms;},nodePermissions:function nodePermissions(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 mayLookup(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0;},mayCreate:function mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST;}catch(e){}return FS.nodePermissions(dir,"wx");},mayDelete:function mayDelete(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 mayOpen(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 nextfd(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 getStream(fd){return FS.streams[fd];},createStream:function createStream(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function get(){return this.node;},set:function set(val){this.node=val;}},isRead:{get:function get(){return(this.flags&2097155)!==1;}},isWrite:{get:function get(){return(this.flags&2097155)!==0;}},isAppend:{get:function get(){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 closeStream(fd){FS.streams[fd]=null;},chrdev_stream_ops:{open:function open(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 llseek(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}},major:function major(dev){return dev>>8;},minor:function minor(dev){return dev&255;},makedev:function makedev(ma,mi){return ma<<8|mi;},registerDevice:function registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops};},getDevice:function getDevice(dev){return FS.devices[dev];},getMounts:function getMounts(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 syncfs(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 mount(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 unmount(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 lookup(parent,name){return parent.node_ops.lookup(parent,name);},mknod:function mknod(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 create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0);},mkdir:function mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0);},mkdirTree:function mkdirTree(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 doXHR(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 get(){if(!this.lengthKnown){this.cacheLength();}return this._length;}},chunkSize:{get:function get(){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 get(){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 doMsync(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags);},doMkdir:function doMkdir(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 doMknod(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 doReadlink(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 doAccess(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 doDup(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd;},doReadv:function doReadv(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 get(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret;},getStr:function getStr(){var ret=Pointer_stringify(SYSCALLS.get());return ret;},getStreamFromFD:function getStreamFromFD(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream;},getSocketFromFD:function getSocketFromFD(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket;},getSocketAddress:function getSocketAddress(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 get64(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low;},getZero:function getZero(){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 getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size);}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i);}embind_charCodes=codes;}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]];}return ret;}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown";}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name;}else{return name;}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body);}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"");}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name;}else{return this.name+": "+this.message;}};return errorClass;}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message);}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message);}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes;});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count");}for(var i=0;i>shift]);},destructorFunction:null});}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false;}if(!(other instanceof ClassHandle)){return false;}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass;}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass;}return leftClass===rightClass&&left===right;}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType};}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name;}throwBindingError(getInstanceTypeName(obj)+" instance already deleted");}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this;}else{var clone=Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}});clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone;}}function runDestructor(handle){var $$=handle.$$;if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr);}else{$$.ptrType.registeredClass.rawDestructor($$.ptr);}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}this.$$.count.value-=1;var toDelete=0===this.$$.count.value;if(toDelete){runDestructor(this);}if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined;}}function ClassHandle_isDeleted(){return!this.$$.ptr;}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]();}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes);}this.$$.deleteScheduled=true;return this;}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater;}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!");}return proto[methodName].overloadTable[arguments.length].apply(this,arguments);};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc;}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice");}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!");}Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments;}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[];}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name);}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass;}return ptr;}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0;}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr;}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr);}return ptr;}else{return 0;}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal");}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]();}));if(destructors!==null){destructors.push(this.rawDestructor,ptr);}}break;default:throwBindingError("Unsupporting sharing policy");}}return ptr;}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0;}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr;}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2]);}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr);}return ptr;}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr);}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]();}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr;}if(undefined===desiredClass.baseClass){return null;}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null;}return desiredClass.downcast(rv);}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length;}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k]);}}return rv;}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes);}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction;}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined");}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass;}return ptr;}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr];}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType");}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified");}record.count={value:1};return Object.create(prototype,{$$:{value:record}});}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null;}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]();}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv;}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr});}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr});}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this);}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType;}else{toType=registeredPointerRecord.pointerType;}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this);}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr});}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp});}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType;}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}}else{this["toWireType"]=genericPointerToWireType;}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol");}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;Module[name].argCount=numArguments;}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>2)+i]);}return array;}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[];}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes);};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1));}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i0?", ":"")+argsListWired;}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n";}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle);}}function count_emval_handles(){var count=0;for(var i=5;i>2]);};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3]);};default:throw new TypeError("Unknown float type: "+name);}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function fromWireType(value){return value;},"toWireType":function toWireType(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name);}return value;},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null});}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes);},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[];});}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer];}:function readU8FromPointer(pointer){return HEAPU8[pointer];};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1];}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1];};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2];}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2];};default:throw new TypeError("Unknown integer type: "+name);}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295;}var shift=getShiftFromSize(size);var fromWireType=function fromWireType(value){return value;};if(minRange===0){var bitshift=32-8*size;fromWireType=function fromWireType(value){return value<>>bitshift;};}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function toWireType(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name);}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!");}return isUnsignedType?value>>>0:value|0;},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null});}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size);}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true});}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function fromWireType(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0;}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+1;}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap;}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1);}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits");}HEAPU8[ptr+4+i]=charCode;}}else{for(var i=0;i>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i>2]=rd;return returnType["toWireType"](destructors,handle);}function __emval_lookupTypes(argCount,argTypes,argWireTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i);}return a;}function __emval_call(handle,argCount,argTypes,argv){handle=requireHandle(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i>2]=__emval_register(destructors);return destructors;}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address);}else{return symbol;}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args);}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id;}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name;}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1;}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n";}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","HEAP32","__emval_register",functionBody)(requireRegisteredType,HEAP32,__emval_register);}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer;}return newer(handle,argTypes,args);}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v));}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle);}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v);}function _abort(){Module["abort"]();}function _llvm_cttz_i32(x){x=x|0;return(x?31-(Math_clz32(x^x-1)|0)|0:32)|0;}function _llvm_cttz_i64(l,h){var ret=_llvm_cttz_i32(l);if(ret==32)ret+=_llvm_cttz_i32(h);return(setTempRet0(0),ret)|0;}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest;}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0;}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL;}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0;}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1;}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL;}PTHREAD_SPECIFIC[key]=value;return 0;}FS.staticInit();__ATINIT__.unshift(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();});__ATMAIN__.push(function(){FS.ignorePermissions=false;});__ATEXIT__.push(function(){FS.quit();});__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();}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();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(i0){return;}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("");},1);doRun();},1);}else{doRun();}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what);}if(what!==undefined){out(what);err(what);what=JSON.stringify(what);}else{what="";}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info.";}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()();}}Module["noExitRuntime"]=true;run();return Module;};}();if((typeof exports==='undefined'?'undefined':_typeof(exports))==='object'&&(typeof module==='undefined'?'undefined':_typeof(module))==='object')module.exports=Module;else if(typeof define==='function'&&define['amd'])define([],function(){return Module;});else if((typeof exports==='undefined'?'undefined':_typeof(exports))==='object')exports["Module"]=Module; }).call(this,require('_process'),require("buffer").Buffer,"/lib") },{"_process":126,"buffer":54,"crypto":63,"fs":9,"path":119}],6:[function(require,module,exports){ (function (process,Buffer,__dirname){ 'use strict';var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};var Module=function(){var _scriptDir=typeof document!=='undefined'&&document.currentScript?document.currentScript.src:undefined;return function(Module){Module=Module||{};var Module;if(!Module)Module=typeof Module!=='undefined'?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key];}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow;};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=(typeof window==='undefined'?'undefined':_typeof(window))==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=(typeof process==='undefined'?'undefined':_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",function(reason,p){process["exit"](1);});Module["quit"]=function(status){process["exit"](status);};Module["inspect"]=function(){return"[Emscripten Module object]";};}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data);}return read(f);};}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data;}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f));}data=read(f,"binary");assert((typeof data==='undefined'?'undefined':_typeof(data))==="object");return data;};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs;}else if(typeof arguments!="undefined"){Module["arguments"]=arguments;}if(typeof quit==="function"){Module["quit"]=function(status){quit(status);};}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src;}}else{scriptDirectory=self.location.href;}if(_scriptDir){scriptDirectory=_scriptDir;}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.split("/").slice(0,-1).join("/")+"/";}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=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text);}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func;}var JSfuncs={"stackSave":function stackSave(){_stackSave();},"stackRestore":function stackRestore(){_stackRestore();},"arrayToC":function arrayToC(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret;},"stringToC":function stringToC(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 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 demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];assert(__cxa_demangle_func);try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(HEAP32[status>>2]===0&&ret){return Pointer_stringify(ret);}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret);}return func;}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]";});}function jsStackTrace(){var err=new Error();if(!err.stack){try{throw new Error(0);}catch(e){err=e;}if(!err.stack){return"(no stack trace available)";}}return err.stack.toString();}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js);}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+22272;__ATINIT__.push({func:function func(){__GLOBAL__sub_I_zstd_binding_cc();}},{func:function func(){__GLOBAL__sub_I_bind_cpp();}});memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAACwKgAASCcAAAgrAADQKgAAwCoAADAnAAAIKwAA0CoAAPAqAADwJwAAMCcAADAnAADwKgAAAAAAAAAAAAAAAAAA8CoAAPAnAAAwJwAAMCcAAPAqAADwJwAAMCcAADAnAABwJwAAAAAAAAAAAAAAAAAA8CoAAPAnAAAwJwAAMCcAAKgnAAAAAAAAAAAAAAAAAADAKgAACCgAAHAmAABwJgAAwCoAADAoAABwJgAAcCYAAAAAAABrOAcADbIHAJzyBwBwZAgAYK4KALBxCwAwqgwAEwAAAAwAAAANAAAAAQAAAAYAAAABAAAAAQAAABMAAAANAAAADgAAAAEAAAAHAAAAAQAAAAEAAAATAAAADwAAABAAAAABAAAABgAAAAEAAAABAAAAFAAAABAAAAARAAAAAQAAAAUAAAAIAAAAAgAAABQAAAARAAAAEgAAAAEAAAAFAAAACAAAAAIAAAAUAAAAEQAAABIAAAACAAAABQAAABAAAAADAAAAFQAAABEAAAATAAAAAgAAAAUAAAAQAAAABAAAABUAAAASAAAAEwAAAAMAAAAFAAAAEAAAAAQAAAAVAAAAEgAAABQAAAADAAAABQAAABAAAAAFAAAAFQAAABMAAAAUAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFQAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABYAAAAEAAAABQAAABAAAAAFAAAAFgAAABQAAAAWAAAABQAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAQAAAAFAAAAIAAAAAYAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAWAAAABgAAAAUAAAAgAAAABgAAABYAAAAVAAAAFgAAAAQAAAAFAAAAMAAAAAcAAAAXAAAAFgAAABYAAAAEAAAABAAAADAAAAAHAAAAFwAAABYAAAAWAAAABQAAAAMAAABAAAAABwAAABcAAAAXAAAAFgAAAAcAAAADAAAAgAAAAAcAAAAZAAAAGQAAABcAAAAHAAAAAwAAAIAAAAAIAAAAGgAAABoAAAAYAAAABwAAAAMAAAAAAQAACAAAABsAAAAbAAAAGQAAAAkAAAADAAAAAAIAAAgAAAASAAAADAAAAA0AAAABAAAABQAAAAEAAAABAAAAEgAAAA0AAAAOAAAAAQAAAAYAAAABAAAAAQAAABIAAAAOAAAADQAAAAEAAAAFAAAACAAAAAIAAAASAAAAEAAAAA8AAAABAAAABQAAAAgAAAACAAAAEgAAAA8AAAARAAAAAQAAAAUAAAAIAAAAAwAAABIAAAAQAAAAEQAAAAQAAAAFAAAACAAAAAMAAAASAAAAEAAAABEAAAADAAAABQAAAAgAAAAEAAAAEgAAABEAAAARAAAABAAAAAQAAAAIAAAABAAAABIAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAASAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEgAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABIAAAASAAAAEQAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABEAAAAFAAAABAAAAAgAAAAGAAAAEgAAABMAAAARAAAABwAAAAQAAAAIAAAABgAAABIAAAASAAAAEgAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABIAAAAEAAAAAwAAABAAAAAHAAAAEgAAABMAAAASAAAABgAAAAMAAAAgAAAABwAAABIAAAATAAAAEgAAAAgAAAADAAAAQAAAAAcAAAASAAAAEwAAABIAAAAJAAAAAwAAAIAAAAAHAAAAEgAAABMAAAASAAAACgAAAAMAAAAAAQAABwAAABIAAAATAAAAEgAAAAsAAAADAAAAAAIAAAgAAAASAAAAEwAAABIAAAAMAAAAAwAAAAACAAAIAAAAEgAAABMAAAASAAAADQAAAAMAAAAAAgAACAAAABEAAAAMAAAADAAAAAEAAAAFAAAAAQAAAAEAAAARAAAADAAAAA0AAAABAAAABgAAAAEAAAABAAAAEQAAAA0AAAAQAAAAAQAAAAUAAAABAAAAAQAAABEAAAAQAAAAEAAAAAIAAAAFAAAACAAAAAIAAAARAAAADQAAAA8AAAADAAAABAAAAAgAAAADAAAAEQAAAA8AAAARAAAABAAAAAQAAAAIAAAAAwAAABEAAAAQAAAAEQAAAAMAAAAEAAAACAAAAAQAAAARAAAADwAAABEAAAAEAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABAAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAGAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAgAAAAEAAAACAAAAAUAAAARAAAAEgAAABEAAAAGAAAABAAAAAgAAAAGAAAAEQAAABEAAAARAAAABwAAAAMAAAAIAAAABwAAABEAAAARAAAAEQAAAAcAAAADAAAAEAAAAAcAAAARAAAAEgAAABEAAAAHAAAAAwAAACAAAAAHAAAAEQAAABIAAAARAAAABwAAAAMAAABAAAAABwAAABEAAAASAAAAEQAAAAcAAAADAAAAAAEAAAcAAAARAAAAEgAAABEAAAAIAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAACQAAAAMAAAAAAQAACAAAABEAAAASAAAAEQAAAAoAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAALAAAAAwAAAAACAAAIAAAADgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAAA4AAAAOAAAADgAAAAEAAAAGAAAAAQAAAAEAAAAOAAAADgAAAA4AAAABAAAABAAAAAEAAAABAAAADgAAAA4AAAAOAAAAAQAAAAQAAAAGAAAAAgAAAA4AAAAOAAAADgAAAAQAAAAEAAAABgAAAAMAAAAOAAAADgAAAA4AAAADAAAABAAAAAYAAAAEAAAADgAAAA4AAAAOAAAABAAAAAQAAAAGAAAABQAAAA4AAAAOAAAADgAAAAUAAAAEAAAABgAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAYAAAAFAAAADgAAAA8AAAAOAAAABgAAAAQAAAAGAAAABgAAAA4AAAAPAAAADgAAAAMAAAADAAAABgAAAAcAAAAOAAAADwAAAA4AAAAGAAAAAwAAAAgAAAAHAAAADgAAAA8AAAAOAAAABgAAAAMAAAAQAAAABwAAAA4AAAAPAAAADgAAAAYAAAADAAAAGAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAADAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAABwAAAA4AAAAPAAAADwAAAAYAAAADAAAAYAAAAAcAAAAOAAAADwAAAA8AAAAGAAAAAwAAAIAAAAAHAAAADgAAAA8AAAAPAAAABgAAAAMAAAAAAQAABwAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAcAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAIAAAADgAAAA8AAAAPAAAACQAAAAMAAAAAAQAACAAAAA4AAAAPAAAADwAAAAoAAAADAAAAAAEAAAgAAAAAAAAAAQAAAAMAAAAHAAAADwAAAB8AAAA/AAAAfwAAAP8AAAD/AQAA/wMAAP8HAAD/DwAA/x8AAP8/AAD/fwAA//8AAP//AQD//wMA//8HAP//DwD//x8A//8/AP//fwD///8A////Af///wP///8H////D////x////8/////fwEAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAAAAAAAAAAAAAECAwQFBgcICQoLDA0ODxAQERESEhMTFBQUFBUVFRUWFhYWFhYWFhcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICAhISIiIyMkJCQkJSUlJSYmJiYmJiYmJycnJycnJycoKCgoKCgoKCgoKCgoKCgoKSkpKSkpKSkpKSkpKSkpKSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqBAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AAAAAAAAAAABAAEAAQABAAEAAQACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD/////////////AAAAAAAAAQAEAAMAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD//////////////////wAAAAAAAAAAAAABAAAAAgAAAAQAAAAAAAAAAgAAAAQAAAAIAAAAAAAAAAEAAAACAAAACAAAAAEAAQEGAAAAAAAABAAAAAAQAAAEAAAAACAAAAUBAAAAAAAABQMAAAAAAAAFBAAAAAAAAAUGAAAAAAAABQcAAAAAAAAFCQAAAAAAAAUKAAAAAAAABQwAAAAAAAAGDgAAAAAAAQUQAAAA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AxAAAAMgAAADQAAAA4AAAAMAAQAAAAAAAAAAAAAAAAAEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAHAAAADwAAAB8AAAA/AAAAfwAAAP8AAAD/AQAA/wMAAP8HAAD/DwAA/x8AAP8/AAD/fwAA//8AAP//AQD//wMA//8HAP//DwD//x8A//8/AP//fwD///8A////Af///wMBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACIAAAAkAAAAJgAAACgAAAAsAAAAMAAAADgAAABAAAAAUAAAAGAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAASAAAAFAAAABYAAAAYAAAAHAAAACAAAAAoAAAAMAAAAEAAAACAAAAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAAEABAADAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQACAAIAAgACAAIAAgACAAIAAgADAAIAAQABAAEAAQABAP//////////AAAAAAAAAAABAAEAAQABAAEAAQACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD/////////////AAAAAAAAAQAEAAMAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD//////////////////wAAAAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAAAAAAAAAAEAAAACAAAAAQAAAAQAAAAEAAAABAAAAAQAAAABAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQAAAAIBAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAACYAAACCAAAAIQUAAEoAAABnCAAAJgAAAMABAACAAAAASQUAAEoAAAC+CAAAKQAAACwCAACAAAAASQUAAEoAAAC+CAAALwAAAMoCAACAAAAAigUAAEoAAACECQAANQAAAHMDAACAAAAAnQUAAEoAAACgCQAAPQAAAIEDAACAAAAA6wUAAEsAAAA+CgAARAAAAJ4DAACAAAAATQYAAEsAAACqCgAASwAAALMDAACAAAAAwQYAAE0AAAAfDQAATQAAAFMEAACAAAAAIwgAAFEAAACmDwAAVAAAAJkEAACAAAAASwkAAFcAAACxEgAAWAAAANoEAACAAAAAbwkAAF0AAAAjFAAAVAAAAEUFAACAAAAAVAoAAGoAAACMFAAAagAAAK8FAACAAAAAdgkAAHwAAABOEAAAfAAAANICAACAAAAAYwcAAJEAAACQBwAAkgAAAAEAAAACAAAAAwAAAAQAAAAHAAAACAAAAA8AAAAQAAAAHwAAACAAAAA/AAAAQAAAAH8AAACAAAAAAAAAAAAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUZUISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAHQxAAC1MwAAdDEAAFY0AACcMQAAyDMAAHgmAAAAAAAAdDEAAJg0AACcMQAA2zQAAHgmAAAAAAAAdDEAAGI1AACcMQAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCoAADIAAAAzAAAAHgAAAAEAAAAAAAAASCoAADQAAAA1AAAANgAAADcAAAAFAAAAAQAAAAEAAAABAAAAAAAAAHAqAAA0AAAAOAAAADYAAAA3AAAABQAAAAIAAAACAAAAAgAAAAAAAACgKgAANAAAADkAAAA2AAAANwAAAAYAAAAAAAAAkCoAADQAAAA6AAAANgAAADcAAAAHAAAAAAAAACArAAA0AAAAOwAAADYAAAA3AAAACAAAAAAAAAAwKwAANAAAADwAAAA2AAAANwAAAAUAAAADAAAAAwAAAAMAAABkdW1teQByYgBsZW5ndGgAYnVmZmVyAGNvbnN0cnVjdG9yAHNldABIRUFQVTgAVmVjdG9yVTgAY2xvbmVUb1ZlY3RvcgBjbG9uZUFzVHlwZWRBcnJheQB0b1R5cGVkQXJyYXlWaWV3AFpzdGRDb21wcmVzc2lvbkRpY3QAY3JlYXRlQ29tcHJlc3Npb25EaWN0AFpzdGREZWNvbXByZXNzaW9uRGljdABjcmVhdGVEZWNvbXByZXNzaW9uRGljdABac3RkQ29kZWMAY29tcHJlc3NCb3VuZABjb250ZW50U2l6ZQBjb21wcmVzcwBkZWNvbXByZXNzAGNvbXByZXNzVXNpbmdEaWN0AGRlY29tcHJlc3NVc2luZ0RpY3QAWnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBiZWdpbgBiZWdpblVzaW5nRGljdAB0cmFuc2Zvcm0AZmx1c2gAZW5kAFpzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8wTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UktOU182dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFRUVFAFpOMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nOVRyYW5zZm9ybUVOMTBlbXNjcmlwdGVuM3ZhbEVTMV9FMyRfMABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfMQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZzNFbmRFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzJOU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yNVpzdGRDb21wcmVzc1N0cmVhbUJpbmRpbmczRW5kRU4xMGVtc2NyaXB0ZW4zdmFsRUUzJF8yAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVM0X0UzJF8zTlNfOWFsbG9jYXRvcklTNV9FRUZ2UktOU182dmVjdG9ySWhOUzZfSWhFRUVFRUVFAFpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc5VHJhbnNmb3JtRU4xMGVtc2NyaXB0ZW4zdmFsRVMxX0UzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjdac3RkRGVjb21wcmVzc1N0cmVhbUJpbmRpbmc1Rmx1c2hFTjEwZW1zY3JpcHRlbjN2YWxFRTMkXzROU185YWxsb2NhdG9ySVM1X0VFRnZSS05TXzZ2ZWN0b3JJaE5TNl9JaEVFRUVFRUUAWk4yN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZzVGbHVzaEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNU5TXzlhbGxvY2F0b3JJUzVfRUVGdlJLTlNfNnZlY3RvckloTlM2X0loRUVFRUVFRQBaTjI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nM0VuZEVOMTBlbXNjcmlwdGVuM3ZhbEVFMyRfNQBwdXNoX2JhY2sAcmVzaXplAHNpemUAZ2V0AE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAE5TdDNfXzIxM19fdmVjdG9yX2Jhc2VJaE5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjIwX192ZWN0b3JfYmFzZV9jb21tb25JTGIxRUVFAFBOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQBQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAGlpAHYAdmkAdmlpaQB2aWlpaQBpaWkAaWlpaQBpaWlpaQAxOVpzdGRDb21wcmVzc2lvbkRpY3QAOFJlc291cmNlSTEyWlNURF9DRGljdF9zRQBQMTlac3RkQ29tcHJlc3Npb25EaWN0AFBLMTlac3RkQ29tcHJlc3Npb25EaWN0ADIxWnN0ZERlY29tcHJlc3Npb25EaWN0ADhSZXNvdXJjZUkxMlpTVERfRERpY3Rfc0UAUDIxWnN0ZERlY29tcHJlc3Npb25EaWN0AFBLMjFac3RkRGVjb21wcmVzc2lvbkRpY3QAOVpzdGRDb2RlYwBQOVpzdGRDb2RlYwBQSzlac3RkQ29kZWMAaWlpaWlpADI1WnN0ZENvbXByZXNzU3RyZWFtQmluZGluZwBQMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nAFBLMjVac3RkQ29tcHJlc3NTdHJlYW1CaW5kaW5nADI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFAyN1pzdGREZWNvbXByZXNzU3RyZWFtQmluZGluZwBQSzI3WnN0ZERlY29tcHJlc3NTdHJlYW1CaW5kaW5nAFBGdlAxMVpTVERfQ0N0eF9zRQBGdlAxMVpTVERfQ0N0eF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTFaU1REX0NDdHhfc0VOU185YWxsb2NhdG9ySVM1X0VFUzRfRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRnZQMTFaU1REX0NDdHhfc0VFRQBQRnZQMTFaU1REX0RDdHhfc0UARnZQMTFaU1REX0RDdHhfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDExWlNURF9EQ3R4X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDExWlNURF9EQ3R4X3NFRUUAUEZ2UDEyWlNURF9DRGljdF9zRQBGdlAxMlpTVERfQ0RpY3Rfc0UATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJUEZ2UDEyWlNURF9DRGljdF9zRU5TXzlhbGxvY2F0b3JJUzVfRUVTNF9FRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlAxMlpTVERfQ0RpY3Rfc0VFRQBQRnZQMTJaU1REX0REaWN0X3NFAEZ2UDEyWlNURF9ERGljdF9zRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0lQRnZQMTJaU1REX0REaWN0X3NFTlNfOWFsbG9jYXRvcklTNV9FRVM0X0VFAE5TdDNfXzIxMF9fZnVuY3Rpb242X19iYXNlSUZ2UDEyWlNURF9ERGljdF9zRUVFAFpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMThac3RkQ29tcHJlc3NTdHJlYW01QmVnaW5FaUUzJF8wTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9DQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0NDdHhfc0VFRQBaTjE4WnN0ZENvbXByZXNzU3RyZWFtNUJlZ2luRVJLMTlac3RkQ29tcHJlc3Npb25EaWN0RTMkXzEATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk4xOFpzdGRDb21wcmVzc1N0cmVhbTVCZWdpbkVSSzE5WnN0ZENvbXByZXNzaW9uRGljdEUzJF8xTlNfOWFsbG9jYXRvcklTNl9FRUZtUDExWlNURF9DQ3R4X3NFRUUAWk4yMFpzdGREZWNvbXByZXNzU3RyZWFtNUJlZ2luRXZFMyRfMgBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FdkUzJF8yTlNfOWFsbG9jYXRvcklTM19FRUZtUDExWlNURF9EQ3R4X3NFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRm1QMTFaU1REX0RDdHhfc0VFRQBaTjIwWnN0ZERlY29tcHJlc3NTdHJlYW01QmVnaW5FUksyMVpzdGREZWNvbXByZXNzaW9uRGljdEUzJF8zAE5TdDNfXzIxMF9fZnVuY3Rpb242X19mdW5jSVpOMjBac3RkRGVjb21wcmVzc1N0cmVhbTVCZWdpbkVSSzIxWnN0ZERlY29tcHJlc3Npb25EaWN0RTMkXzNOU185YWxsb2NhdG9ySVM2X0VFRm1QMTFaU1REX0RDdHhfc0VFRQBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAHJ3YQBzdGQ6OmJhZF9mdW5jdGlvbl9jYWxsAE5TdDNfXzIxN2JhZF9mdW5jdGlvbl9jYWxsRQB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHB0aHJlYWRfb25jZSBmYWlsdXJlIGluIF9fY3hhX2dldF9nbG9iYWxzX2Zhc3QoKQBjYW5ub3QgY3JlYXRlIHB0aHJlYWQga2V5IGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAGNhbm5vdCB6ZXJvIG91dCB0aHJlYWQgdmFsdWUgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgBEbgBiAGMAaABhAHMAdABpAGoAbQBmAGQATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAIGNvbnN0ACB2b2xhdGlsZQAgcmVzdHJpY3QAIGNvbXBsZXgAIGltYWdpbmFyeQAgWwAgKAApACgAJiYAb2JqY19vYmplY3Q8ACoAJgBvYmpjcHJvdG8AIAA8AD4AIHZlY3RvclsAXQBwaXhlbCB2ZWN0b3JbACY9AD0ALAB+ADo6AGRlbGV0ZVtdIABkZWxldGUgAC8ALz0AXgBePQA9PQA+PQApWwA8PQA8PAA8PD0ALQAtPQAqPQAtLQApLS0AIT0AIQB8fAB8AHw9AC0+KgArACs9ACsrACkrKwApID8gKAApIDogKAAlACU9AD4+AD4+PQB0aHJvdwB0aHJvdyAAdHlwZWlkKABzaXplb2YuLi4oACwgAHNpemVvZiAoAHN0YXRpY19jYXN0PAA+KAByZWludGVycHJldF9jYXN0PAAtPgBub2V4Y2VwdCAoAFtdIAApIAAuAC4qAHN0ZDo6AG9wZXJhdG9yJiYAb3BlcmF0b3ImAG9wZXJhdG9yJj0Ab3BlcmF0b3I9AG9wZXJhdG9yKCkAb3BlcmF0b3IsAG9wZXJhdG9yfgBvcGVyYXRvciAAb3BlcmF0b3IgZGVsZXRlW10Ab3BlcmF0b3IqAG9wZXJhdG9yLwBvcGVyYXRvci89AG9wZXJhdG9yXgBvcGVyYXRvcl49AG9wZXJhdG9yPT0Ab3BlcmF0b3I+PQBvcGVyYXRvcj4Ab3BlcmF0b3JbXQBvcGVyYXRvcjw9AG9wZXJhdG9yIiIgAG9wZXJhdG9yPDwAb3BlcmF0b3I8PD0Ab3BlcmF0b3I8AG9wZXJhdG9yLQBvcGVyYXRvci09AG9wZXJhdG9yKj0Ab3BlcmF0b3ItLQBvcGVyYXRvciBuZXdbXQBvcGVyYXRvciE9AG9wZXJhdG9yIQBvcGVyYXRvciBuZXcAb3BlcmF0b3J8fABvcGVyYXRvcnwAb3BlcmF0b3J8PQBvcGVyYXRvci0+KgBvcGVyYXRvcisAb3BlcmF0b3IrPQBvcGVyYXRvcisrAG9wZXJhdG9yLT4Ab3BlcmF0b3I/AG9wZXJhdG9yJQBvcGVyYXRvciU9AG9wZXJhdG9yPj4Ab3BlcmF0b3I+Pj0Ab3BlcmF0b3IgZGVsZXRlACd1bm5hbWVkACdsYW1iZGEnKABzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+AGJhc2ljX3N0cmluZwBzdGQ6OmlzdHJlYW0Ac3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pc3RyZWFtAHN0ZDo6b3N0cmVhbQBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+AGJhc2ljX29zdHJlYW0Ac3RkOjppb3N0cmVhbQBzdGQ6OmJhc2ljX2lvc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBiYXNpY19pb3N0cmVhbQBkeW5hbWljX2Nhc3Q8ACkoAGNvbnN0X2Nhc3Q8AGFsaWdub2YgKABmcAB3Y2hhcl90AGZhbHNlAHRydWUAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AHUAbAB1bABsbAB1bGwAX19pbnQxMjgAdW5zaWduZWQgX19pbnQxMjgAJUxhTAAlYQAlYWYAZGVjbHR5cGUoAHN0ZDo6YWxsb2NhdG9yAHN0ZDo6YmFzaWNfc3RyaW5nADo6c3RyaW5nIGxpdGVyYWwAc3RkAF9HTE9CQUxfX04AKGFub255bW91cyBuYW1lc3BhY2UpACA+AFRfAGlkADo6KgAgJgAgJiYAIFtdAHZvaWQAYm9vbABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBsb25nIGxvbmcAZmxvYXQAbG9uZyBkb3VibGUAX19mbG9hdDEyOAAuLi4AZGVjaW1hbDY0AGRlY2ltYWwxMjgAZGVjaW1hbDMyAGRlY2ltYWwxNgBjaGFyMzJfdABjaGFyMTZfdABhdXRvAHN0ZDo6bnVsbHB0cl90AGRvdWJsZQB1bnNpZ25lZCBsb25nIGxvbmcAX2Jsb2NrX2ludm9rZQBpbnZvY2F0aW9uIGZ1bmN0aW9uIGZvciBibG9jayBpbiAAdnRhYmxlIGZvciAAVlRUIGZvciAAdHlwZWluZm8gZm9yIAB0eXBlaW5mbyBuYW1lIGZvciAAY292YXJpYW50IHJldHVybiB0aHVuayB0byAAY29uc3RydWN0aW9uIHZ0YWJsZSBmb3IgAC1pbi0AdmlydHVhbCB0aHVuayB0byAAbm9uLXZpcnR1YWwgdGh1bmsgdG8gAGd1YXJkIHZhcmlhYmxlIGZvciAAcmVmZXJlbmNlIHRlbXBvcmFyeSBmb3Ig";var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___cxa_allocate_exception(size){return _malloc(size);}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception;}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function deAdjust(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var key in EXCEPTIONS.infos){var ptr=+key;var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr;}}return adjusted;},addRef:function addRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++;},decRef:function decRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr);}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr);}},clearRef:function clearRef(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0;}};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--;}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr;}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr;}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0;}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0;}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0;}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0;}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1;}else{__ZSt18uncaught_exceptionv.uncaught_exception++;}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}function ___gxx_personality_v0(){}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 splitPath(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1);},normalizeArray:function normalizeArray(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 normalize(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 dirname(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 basename(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1);},extname:function extname(path){return PATH.splitPath(path)[3];},join:function join(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"));},join2:function join2(l,r){return PATH.normalize(l+"/"+r);},resolve:function resolve(){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 relative(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 put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[];}else{if(val!=0)tty.output.push(val);}},flush:function flush(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[];}}},default_tty1_ops:{put_char:function put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[];}else{if(val!=0)tty.output.push(val);}},flush:function flush(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[];}}}};var MEMFS={ops_table:null,mount:function mount(_mount){return MEMFS.createNode(null,"/",16384|511,0);},createNode:function createNode(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 getFileDataAsRegularArray(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 staticInit(){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 bufferFrom(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer);},mount:function mount(_mount3){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(_mount3.opts.root),0);},createNode:function createNode(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 getMode(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 realPath(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 flagsForNode(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 getattr(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 setattr(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 lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode);},mknod:function mknod(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 rename(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 unlink(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 rmdir(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 readdir(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 symlink(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 readlink(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 open(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 close(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 read(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 write(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 llseek(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(_mount4){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 write(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO);},llseek:function llseek(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 handleFSError(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno);},lookupPath:function lookupPath(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 getPath(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 hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length;},hashAddNode:function hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node;},hashRemoveNode:function hashRemoveNode(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 lookupNode(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 createNode(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 get(){return(this.mode&readMode)===readMode;},set:function set(val){val?this.mode|=readMode:this.mode&=~readMode;}},write:{get:function get(){return(this.mode&writeMode)===writeMode;},set:function set(val){val?this.mode|=writeMode:this.mode&=~writeMode;}},isFolder:{get:function get(){return FS.isDir(this.mode);}},isDevice:{get:function get(){return FS.isChrdev(this.mode);}}});}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node;},destroyNode:function destroyNode(node){FS.hashRemoveNode(node);},isRoot:function isRoot(node){return node===node.parent;},isMountpoint:function isMountpoint(node){return!!node.mounted;},isFile:function isFile(mode){return(mode&61440)===32768;},isDir:function isDir(mode){return(mode&61440)===16384;},isLink:function isLink(mode){return(mode&61440)===40960;},isChrdev:function isChrdev(mode){return(mode&61440)===8192;},isBlkdev:function isBlkdev(mode){return(mode&61440)===24576;},isFIFO:function isFIFO(mode){return(mode&61440)===4096;},isSocket:function isSocket(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 modeStringToFlags(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str);}return flags;},flagsToPermissionString:function flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w";}return perms;},nodePermissions:function nodePermissions(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 mayLookup(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0;},mayCreate:function mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST;}catch(e){}return FS.nodePermissions(dir,"wx");},mayDelete:function mayDelete(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 mayOpen(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 nextfd(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 getStream(fd){return FS.streams[fd];},createStream:function createStream(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function get(){return this.node;},set:function set(val){this.node=val;}},isRead:{get:function get(){return(this.flags&2097155)!==1;}},isWrite:{get:function get(){return(this.flags&2097155)!==0;}},isAppend:{get:function get(){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 closeStream(fd){FS.streams[fd]=null;},chrdev_stream_ops:{open:function open(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 llseek(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}},major:function major(dev){return dev>>8;},minor:function minor(dev){return dev&255;},makedev:function makedev(ma,mi){return ma<<8|mi;},registerDevice:function registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops};},getDevice:function getDevice(dev){return FS.devices[dev];},getMounts:function getMounts(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 syncfs(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 mount(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 unmount(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 lookup(parent,name){return parent.node_ops.lookup(parent,name);},mknod:function mknod(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 create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0);},mkdir:function mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0);},mkdirTree:function mkdirTree(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 doXHR(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 get(){if(!this.lengthKnown){this.cacheLength();}return this._length;}},chunkSize:{get:function get(){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 get(){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 doMsync(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags);},doMkdir:function doMkdir(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 doMknod(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 doReadlink(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 doAccess(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 doDup(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd;},doReadv:function doReadv(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 get(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret;},getStr:function getStr(){var ret=Pointer_stringify(SYSCALLS.get());return ret;},getStreamFromFD:function getStreamFromFD(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream;},getSocketFromFD:function getSocketFromFD(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket;},getSocketAddress:function getSocketAddress(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 get64(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low;},getZero:function getZero(){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 getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size);}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i);}embind_charCodes=codes;}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]];}return ret;}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown";}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name;}else{return name;}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body);}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"");}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name;}else{return this.name+": "+this.message;}};return errorClass;}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message);}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message);}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes;});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count");}for(var i=0;i>shift]);},destructorFunction:null});}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false;}if(!(other instanceof ClassHandle)){return false;}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass;}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass;}return leftClass===rightClass&&left===right;}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType};}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name;}throwBindingError(getInstanceTypeName(obj)+" instance already deleted");}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this;}else{var clone=Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}});clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone;}}function runDestructor(handle){var $$=handle.$$;if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr);}else{$$.ptrType.registeredClass.rawDestructor($$.ptr);}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}this.$$.count.value-=1;var toDelete=0===this.$$.count.value;if(toDelete){runDestructor(this);}if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined;}}function ClassHandle_isDeleted(){return!this.$$.ptr;}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]();}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes);}this.$$.deleteScheduled=true;return this;}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater;}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!");}return proto[methodName].overloadTable[arguments.length].apply(this,arguments);};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc;}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice");}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!");}Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments;}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[];}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name);}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass;}return ptr;}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0;}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr;}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr);}return ptr;}else{return 0;}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal");}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name);}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]();}));if(destructors!==null){destructors.push(this.rawDestructor,ptr);}}break;default:throwBindingError("Unsupporting sharing policy");}}return ptr;}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name);}return 0;}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name);}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr;}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2]);}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr);}return ptr;}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr);}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]();}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr;}if(undefined===desiredClass.baseClass){return null;}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null;}return desiredClass.downcast(rv);}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length;}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k]);}}return rv;}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes);}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction;}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined");}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass;}return ptr;}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr];}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType");}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified");}record.count={value:1};return Object.create(prototype,{$$:{value:record}});}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null;}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]();}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv;}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr});}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr});}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this);}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType;}else{toType=registeredPointerRecord.pointerType;}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this);}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr});}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp});}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType;}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}}else{this["toWireType"]=genericPointerToWireType;}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol");}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;Module[name].argCount=numArguments;}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>2)+i]);}return array;}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[];}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes);};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1));}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i0?", ":"")+argsListWired;}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n";}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle);}}function count_emval_handles(){var count=0;for(var i=5;i>2]);};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3]);};default:throw new TypeError("Unknown float type: "+name);}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function fromWireType(value){return value;},"toWireType":function toWireType(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name);}return value;},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null});}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes);},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[];});}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer];}:function readU8FromPointer(pointer){return HEAPU8[pointer];};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1];}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1];};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2];}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2];};default:throw new TypeError("Unknown integer type: "+name);}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295;}var shift=getShiftFromSize(size);var fromWireType=function fromWireType(value){return value;};if(minRange===0){var bitshift=32-8*size;fromWireType=function fromWireType(value){return value<>>bitshift;};}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function toWireType(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name);}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!");}return isUnsignedType?value>>>0:value|0;},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null});}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size);}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true});}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function fromWireType(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0;}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+1;}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap;}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1);}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits");}HEAPU8[ptr+4+i]=charCode;}}else{for(var i=0;i>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i>2]=rd;return returnType["toWireType"](destructors,handle);}function __emval_lookupTypes(argCount,argTypes,argWireTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i);}return a;}function __emval_call(handle,argCount,argTypes,argv){handle=requireHandle(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i>2]=__emval_register(destructors);return destructors;}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address);}else{return symbol;}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args);}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id;}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name;}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1;}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n";}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","HEAP32","__emval_register",functionBody)(requireRegisteredType,HEAP32,__emval_register);}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer;}return newer(handle,argTypes,args);}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v));}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle);}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v);}function _abort(){Module["abort"]();}function _llvm_cttz_i64(l,h){var ret=_llvm_cttz_i32(l);if(ret==32)ret+=_llvm_cttz_i32(h);return(setTempRet0(0),ret)|0;}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest;}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0;}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL;}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0;}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1;}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL;}PTHREAD_SPECIFIC[key]=value;return 0;}FS.staticInit();__ATINIT__.unshift(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();});__ATMAIN__.push(function(){FS.ignorePermissions=false;});__ATEXIT__.push(function(){FS.quit();});__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();}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();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]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}f=(c[k>>2]|0)>>>0>=4;c[(c[i>>2]|0)+12>>2]=c[j>>2];do{if(f){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;e=Qs(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=e;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0)p=8-(Rs(d[m>>0]|0)|0)|0;else p=0;c[(c[i>>2]|0)+4>>2]=p;if(!(d[m>>0]|0)){c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);q=10;break;}case 6:{q=10;break;}case 5:{q=11;break;}case 4:{q=12;break;}case 3:{q=13;break;}case 2:{q=14;break;}default:{}}if((q|0)==10){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);q=11;}if((q|0)==11){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);q=12;}if((q|0)==12){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);q=13;}if((q|0)==13){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);q=14;}if((q|0)==14){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0)r=8-(Rs(d[n>>0]|0)|0)|0;else r=0;c[(c[i>>2]|0)+4>>2]=r;if(d[n>>0]|0|0){e=(c[i>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function Es(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[i>>2];c[k>>2]=c[j>>2];j=Ms(c[h>>2]|0,e[c[k>>2]>>1]|0)|0;c[c[g>>2]>>2]=j;Fs(c[h>>2]|0)|0;c[(c[g>>2]|0)+4>>2]=(c[i>>2]|0)+4;l=f;return;}function Fs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=((c[(c[e>>2]|0)+12>>2]|0)+4|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=Qs(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=Qs(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function Gs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=l;l=l+64|0;e=d+48|0;f=d+36|0;g=d+32|0;h=d+28|0;i=d+24|0;j=d+20|0;k=d+16|0;m=d+12|0;n=d+8|0;o=d+4|0;p=d;c[e>>2]=b;c[g>>2]=(Ls((c[e>>2]|0)+16|0)|0)&255;c[h>>2]=(Ls((c[e>>2]|0)+32|0)|0)&255;c[i>>2]=(Ls((c[e>>2]|0)+24|0)|0)&255;c[j>>2]=c[5696+(c[g>>2]<<2)>>2];c[k>>2]=c[5840+(c[h>>2]<<2)>>2];c[m>>2]=c[i>>2];c[n>>2]=(c[j>>2]|0)+(c[k>>2]|0)+(c[m>>2]|0);if(c[i>>2]|0){b=c[5088+(c[i>>2]<<2)>>2]|0;c[o>>2]=b+(Ms(c[e>>2]|0,c[m>>2]|0)|0);if(Dq()|0)Fs(c[e>>2]|0)|0;}else c[o>>2]=0;do{if((c[i>>2]|0)>>>0<=1){if((c[g>>2]|0)==0&(c[o>>2]|0)>>>0<=1|0)c[o>>2]=1-(c[o>>2]|0);m=(c[e>>2]|0)+40|0;if(!(c[o>>2]|0)){c[o>>2]=c[m>>2];break;}c[p>>2]=c[m+(c[o>>2]<<2)>>2];if((c[o>>2]|0)!=1)c[(c[e>>2]|0)+40+8>>2]=c[(c[e>>2]|0)+40+4>>2];c[(c[e>>2]|0)+40+4>>2]=c[(c[e>>2]|0)+40>>2];m=c[p>>2]|0;c[o>>2]=m;c[(c[e>>2]|0)+40>>2]=m;}else{c[(c[e>>2]|0)+40+8>>2]=c[(c[e>>2]|0)+40+4>>2];c[(c[e>>2]|0)+40+4>>2]=c[(c[e>>2]|0)+40>>2];c[(c[e>>2]|0)+40>>2]=c[o>>2];}}while(0);c[f+8>>2]=c[o>>2];o=c[5216+(c[h>>2]<<2)>>2]|0;if((c[h>>2]|0)>>>0>31)q=Ms(c[e>>2]|0,c[k>>2]|0)|0;else q=0;c[f+4>>2]=o+q;if(Dq()|0?((c[k>>2]|0)+(c[j>>2]|0)|0)>>>0>24:0)Fs(c[e>>2]|0)|0;k=c[6416+(c[g>>2]<<2)>>2]|0;if((c[g>>2]|0)>>>0>15)r=Ms(c[e>>2]|0,c[j>>2]|0)|0;else r=0;c[f>>2]=k+r;r=(Dq()|0)!=0;if(r|(c[n>>2]|0)>>>0>31)Fs(c[e>>2]|0)|0;Ns((c[e>>2]|0)+16|0,c[e>>2]|0);Ns((c[e>>2]|0)+32|0,c[e>>2]|0);if(!(Dq()|0)){s=c[e>>2]|0;t=s+24|0;u=c[e>>2]|0;Ns(t,u);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=d;return;}Fs(c[e>>2]|0)|0;s=c[e>>2]|0;t=s+24|0;u=c[e>>2]|0;Ns(t,u);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=d;return;}function Hs(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=l;l=l+64|0;m=k+60|0;n=k+56|0;o=k+52|0;p=k+48|0;q=k+44|0;r=k+40|0;s=k+36|0;t=k+32|0;u=k+28|0;v=k+24|0;w=k+20|0;x=k+16|0;y=k+12|0;z=k+8|0;A=k+4|0;B=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+4>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+8>>2]|0));if(((c[u>>2]|0)>>>0>(c[x>>2]|0)>>>0?1:(c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0)|0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}Is(c[n>>2]|0,c[c[p>>2]>>2]|0,c[e>>2]|0);c[n>>2]=c[u>>2];c[c[p>>2]>>2]=c[y>>2];do{if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+4>>2]|0)|0)>>>0<=(c[t>>2]|0)>>>0){nE(c[u>>2]|0,c[z>>2]|0,c[e+4>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);y=e+4|0;c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];if((c[n>>2]|0)>>>0<=(c[x>>2]|0)>>>0?(c[e+4>>2]|0)>>>0>=3:0)break;while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;y=c[z>>2]|0;c[z>>2]=y+1;p=a[y>>0]|0;y=c[n>>2]|0;c[n>>2]=y+1;a[y>>0]=p;}c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}}while(0);if((c[e+8>>2]|0)>>>0<8){c[B>>2]=c[6816+(c[e+8>>2]<<2)>>2];a[c[n>>2]>>0]=a[c[z>>2]>>0]|0;a[(c[n>>2]|0)+1>>0]=a[(c[z>>2]|0)+1>>0]|0;a[(c[n>>2]|0)+2>>0]=a[(c[z>>2]|0)+2>>0]|0;a[(c[n>>2]|0)+3>>0]=a[(c[z>>2]|0)+3>>0]|0;c[z>>2]=(c[z>>2]|0)+(c[6848+(c[e+8>>2]<<2)>>2]|0);Js((c[n>>2]|0)+4|0,c[z>>2]|0);c[z>>2]=(c[z>>2]|0)+(0-(c[B>>2]|0));}else Ks(c[n>>2]|0,c[z>>2]|0);c[n>>2]=(c[n>>2]|0)+8;c[z>>2]=(c[z>>2]|0)+8;B=c[n>>2]|0;a:do{if((c[w>>2]|0)>>>0>((c[o>>2]|0)+-13|0)>>>0){if(B>>>0<(c[x>>2]|0)>>>0){Is(c[n>>2]|0,c[z>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);c[z>>2]=(c[z>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;r=c[z>>2]|0;c[z>>2]=r+1;A=a[r>>0]|0;r=c[n>>2]|0;c[n>>2]=r+1;a[r>>0]=A;}}else Is(B,c[z>>2]|0,(c[e+4>>2]|0)-8|0);}while(0);c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}function Is(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Ks(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Js(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function Ks(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Ls(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=(c[(c[f>>2]|0)+4>>2]|0)+(c[c[f>>2]>>2]<<2)|0;b[g>>1]=b[d>>1]|0;b[g+2>>1]=b[d+2>>1]|0;l=e;return a[g+2>>0]|0;}function Ms(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Os(c[e>>2]|0,c[f>>2]|0)|0;Ps(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Ns(a,f){a=a|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+16|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=f;f=(c[(c[h>>2]|0)+4>>2]|0)+(c[c[h>>2]>>2]<<2)|0;b[j>>1]=b[f>>1]|0;b[j+2>>1]=b[f+2>>1]|0;c[k>>2]=d[j+3>>0];c[m>>2]=Ms(c[i>>2]|0,c[k>>2]|0)|0;c[c[h>>2]>>2]=(e[j>>1]|0)+(c[m>>2]|0);l=g;return;}function Os(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function Ps(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function Qs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Dq()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=Bq(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=Fq(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Rs(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Ss(b,e,f,g,h,i,j,k,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;n=l;l=l+160|0;o=n+152|0;p=n+148|0;q=n+144|0;r=n+140|0;s=n+136|0;t=n+132|0;u=n+128|0;v=n+124|0;w=n+120|0;x=n+116|0;y=n+112|0;z=n;A=n+108|0;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=k;c[x>>2]=m;a:do{switch(c[q>>2]|0){case 1:{if(!(c[u>>2]|0)){c[o>>2]=-72;break a;}if((d[c[t>>2]>>0]|0)>>>0>(c[r>>2]|0)>>>0){c[o>>2]=-20;break a;}else{Ts(c[p>>2]|0,a[c[t>>2]>>0]|0)|0;c[o>>2]=1;break a;}break;}case 0:{Us(c[p>>2]|0,c[v>>2]|0,c[r>>2]|0,c[w>>2]|0)|0;c[o>>2]=0;break;}case 2:{if(c[x>>2]|0){c[o>>2]=0;break a;}else{c[o>>2]=-20;break a;}break;}default:{c[A>>2]=Vs(z,r,y,c[t>>2]|0,c[u>>2]|0)|0;if(hr(c[A>>2]|0)|0){c[o>>2]=-20;break a;}if((c[y>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break a;}else{Us(c[p>>2]|0,z,c[r>>2]|0,c[y>>2]|0)|0;c[o>>2]=c[A>>2];break a;}}}}while(0);l=n;return c[o>>2]|0;}function Ts(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+20|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=d;a[h>>0]=e;c[i>>2]=c[g>>2];c[j>>2]=c[i>>2];c[k>>2]=(c[g>>2]|0)+4;c[m>>2]=c[k>>2];b[c[j>>2]>>1]=0;b[(c[j>>2]|0)+2>>1]=0;b[c[m>>2]>>1]=0;a[(c[m>>2]|0)+2>>0]=a[h>>0]|0;a[(c[m>>2]|0)+3>>0]=0;l=f;return 0;}function Us(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,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=l;l=l+592|0;k=j+576|0;m=j+572|0;n=j+568|0;o=j+564|0;p=j+560|0;q=j+556|0;r=j+552|0;s=j;t=j+548|0;u=j+544|0;v=j+540|0;w=j+584|0;x=j+582|0;y=j+536|0;z=j+532|0;A=j+528|0;B=j+524|0;C=j+520|0;D=j+516|0;E=j+512|0;F=j+588|0;G=j+580|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[q>>2]=(c[m>>2]|0)+4;c[r>>2]=c[q>>2];c[t>>2]=(c[o>>2]|0)+1;c[u>>2]=1<>2];c[v>>2]=(c[u>>2]|0)-1;if((c[o>>2]|0)>>>0>255){c[k>>2]=-46;H=c[k>>2]|0;l=j;return H|0;}if((c[p>>2]|0)>>>0>12){c[k>>2]=-44;H=c[k>>2]|0;l=j;return H|0;}b[w>>1]=c[p>>2];b[w+2>>1]=1;b[x>>1]=1<<(c[p>>2]|0)-1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0)==-1){o=c[y>>2]&255;q=c[r>>2]|0;i=c[v>>2]|0;c[v>>2]=i+-1;a[q+(i<<2)+2>>0]=o;b[s+(c[y>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0)>=(b[x>>1]|0))b[w+2>>1]=0;b[s+(c[y>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0;}c[y>>2]=(c[y>>2]|0)+1;}y=c[m>>2]|0;b[y>>1]=b[w>>1]|0;b[y+2>>1]=b[w+2>>1]|0;c[z>>2]=(c[u>>2]|0)-1;c[A>>2]=((c[u>>2]|0)>>>1)+((c[u>>2]|0)>>>3)+3;c[C>>2]=0;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[D>>2]=0;while(1){I=c[B>>2]|0;if((c[D>>2]|0)>=(b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0))break;a[(c[r>>2]|0)+(c[C>>2]<<2)+2>>0]=I;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0)&c[z>>2];while(1){if((c[C>>2]|0)>>>0<=(c[v>>2]|0)>>>0)break;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0)&c[z>>2];}c[D>>2]=(c[D>>2]|0)+1;}c[B>>2]=I+1;}if(c[C>>2]|0){c[k>>2]=-1;H=c[k>>2]|0;l=j;return H|0;}c[E>>2]=0;while(1){if((c[E>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;a[F>>0]=a[(c[r>>2]|0)+(c[E>>2]<<2)+2>>0]|0;C=s+(d[F>>0]<<1)|0;I=b[C>>1]|0;b[C>>1]=I+1<<16>>16;b[G>>1]=I;I=c[p>>2]|0;C=I-(Rs(e[G>>1]|0)|0)&255;a[(c[r>>2]|0)+(c[E>>2]<<2)+3>>0]=C;b[(c[r>>2]|0)+(c[E>>2]<<2)>>1]=(e[G>>1]<>2]|0)+(c[E>>2]<<2)+3>>0])-(c[u>>2]|0);c[E>>2]=(c[E>>2]|0)+1;}c[k>>2]=0;H=c[k>>2]|0;l=j;return H|0;}function Vs(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;A=h+70|0;B=h+68|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=Bq(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<>2])+1;c[u>>2]=1<>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if((c[t>>2]|0)<=1)break;if((c[x>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0)break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=Bq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=19;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[m+(n<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;n=Bq(c[r>>2]|0)|0;c[v>>2]=n>>>(c[w>>2]|0);}}while(0);b[A>>1]=(c[u>>2]<<1)-1-(c[t>>2]|0);n=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(b[A>>1]|0)>>>0){b[B>>1]=n&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{b[B>>1]=n&(m<<1)-1;if((b[B>>1]|0)>=(c[u>>2]|0))b[B>>1]=(b[B>>1]|0)-(b[A>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}b[B>>1]=(b[B>>1]|0)+-1<<16>>16;m=(Ws(b[B>>1]|0)|0)<<16>>16;c[t>>2]=(c[t>>2]|0)-m;m=b[B>>1]|0;n=c[j>>2]|0;g=c[x>>2]|0;c[x>>2]=g+1;b[n+(g<<1)>>1]=m;c[y>>2]=((b[B>>1]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=Bq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==19){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-1;C=c[i>>2]|0;l=h;return C|0;}c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);if(((c[r>>2]|0)-(c[p>>2]|0)|0)>>>0>(c[o>>2]|0)>>>0){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}else{c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function Ws(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=a;a=b[d>>1]|0;l=c;return((b[d>>1]|0)<0?0-a|0:a)&65535|0;}function Xs(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=kt(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(at(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[n>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=Bt(c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0,c[i>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Ys(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(!(c[k>>2]|0)){c[h>>2]=-70;p=c[h>>2]|0;l=g;return p|0;}if((c[n>>2]|0)>>>0<=1?1:(c[n>>2]|0)>>>0>=(c[k>>2]|0)>>>0){c[h>>2]=-20;p=c[h>>2]|0;l=g;return p|0;}c[o>>2]=ht(c[k>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;i=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;if(c[o>>2]|0)q=it(f,i,j,k,m)|0;else q=jt(f,i,j,k,m)|0;c[h>>2]=q;p=c[h>>2]|0;l=g;return p|0;}function Zs(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,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;p=h+24|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;_s(p,c[o>>2]|0);if((d[p+1>>0]|0|0)!=1){c[i>>2]=-1;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=$s(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function _s(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;a[g+2>>0]=a[d+2>>0]|0;a[g+3>>0]=a[d+3>>0]|0;a[b>>0]=a[g>>0]|0;a[b+1>>0]=a[g+1>>0]|0;a[b+2>>0]=a[g+2>>0]|0;a[b+3>>0]=a[g+3>>0]|0;l=e;return;}function $s(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+80|0;i=h+60|0;j=h+56|0;k=h+52|0;m=h+48|0;n=h+44|0;o=h+40|0;p=h+24|0;q=h+16|0;r=h+12|0;s=h+8|0;t=h+4|0;u=h;v=h+64|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[q>>2]=Ds(p,c[m>>2]|0,c[n>>2]|0)|0;if(at(c[q>>2]|0)|0){c[i>>2]=c[q>>2];w=c[i>>2]|0;l=h;return w|0;}c[r>>2]=c[j>>2];c[s>>2]=(c[r>>2]|0)+(c[k>>2]|0);c[t>>2]=(c[o>>2]|0)+4;c[u>>2]=c[t>>2];_s(v,c[o>>2]|0);bt(c[r>>2]|0,p,c[s>>2]|0,c[u>>2]|0,d[v+2>>0]|0)|0;if(ct(p)|0){c[i>>2]=c[k>>2];w=c[i>>2]|0;l=h;return w|0;}else{c[i>>2]=-20;w=c[i>>2]|0;l=h;return w|0;}return 0;}function at(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=hr(c[d>>2]|0)|0;l=b;return a|0;}function bt(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[h>>2];while(1){if(Fs(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>=((c[j>>2]|0)+-7|0)>>>0)break;if(dt()|0){f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}dt()|0;f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;if(dt()|0){f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){if(Fs(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=et(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){o=c[h>>2]|0;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=et(o,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}if(o>>>0>=(c[j>>2]|0)>>>0){p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}j=ft(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+j;p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}function ct(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function dt(){return 0;}function et(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=gt(c[j>>2]|0,c[m>>2]|0)|0;m=c[i>>2]|0;i=(c[k>>2]|0)+(c[n>>2]<<2)|0;a[m>>0]=a[i>>0]|0;a[m+1>>0]=a[i+1>>0]|0;Ps(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0;}function ft(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=gt(c[j>>2]|0,c[m>>2]|0)|0;a[c[i>>2]>>0]=a[(c[k>>2]|0)+(c[n>>2]<<2)>>0]|0;i=c[j>>2]|0;if((d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0)==1){Ps(i,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return 1;}if((c[i+4>>2]|0)>>>0>=32){l=h;return 1;}Ps(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);if((c[(c[j>>2]|0)+4>>2]|0)>>>0<=32){l=h;return 1;}c[(c[j>>2]|0)+4>>2]=32;l=h;return 1;}function gt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function ht(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(c[f>>2]<<4>>>0)/((c[e>>2]|0)>>>0)|0;c[h>>2]=(c[e>>2]|0)>>>8;c[i>>2]=(c[7008+((c[g>>2]|0)*24|0)>>2]|0)+(N(c[7008+((c[g>>2]|0)*24|0)+4>>2]|0,c[h>>2]|0)|0);c[j>>2]=(c[7008+((c[g>>2]|0)*24|0)+8>>2]|0)+(N(c[7008+((c[g>>2]|0)*24|0)+8+4>>2]|0,c[h>>2]|0)|0);c[j>>2]=(c[j>>2]|0)+((c[j>>2]|0)>>>3);l=d;return(c[j>>2]|0)>>>0<(c[i>>2]|0)>>>0|0;}function it(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=vt(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(at(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[n>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=wt(c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0,c[i>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function jt(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=kt(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(at(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[n>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=lt(c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0,c[i>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function kt(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;g=l;l=l+416|0;h=g+396|0;i=g+392|0;j=g+388|0;k=g+384|0;m=g+80|0;n=g;o=g+380|0;p=g+376|0;q=g+372|0;r=g+368|0;s=g+364|0;t=g+404|0;u=g+360|0;v=g+356|0;w=g+352|0;x=g+348|0;y=g+344|0;z=g+340|0;A=g+336|0;B=g+400|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[o>>2]=0;c[p>>2]=0;c[r>>2]=(c[i>>2]|0)+4;c[s>>2]=c[r>>2];c[q>>2]=ot(m,256,n,p,o,c[j>>2]|0,c[k>>2]|0)|0;if(at(c[q>>2]|0)|0){c[h>>2]=c[q>>2];C=c[h>>2]|0;l=g;return C|0;}_s(t,c[i>>2]|0);if((c[o>>2]|0)>>>0>((d[t>>0]|0)+1|0)>>>0){c[h>>2]=-44;C=c[h>>2]|0;l=g;return C|0;}a[t+1>>0]=0;a[t+2>>0]=c[o>>2];k=c[i>>2]|0;a[k>>0]=a[t>>0]|0;a[k+1>>0]=a[t+1>>0]|0;a[k+2>>0]=a[t+2>>0]|0;a[k+3>>0]=a[t+3>>0]|0;c[v>>2]=0;c[u>>2]=1;while(1){if((c[u>>2]|0)>>>0>=((c[o>>2]|0)+1|0)>>>0)break;c[w>>2]=c[v>>2];c[v>>2]=(c[v>>2]|0)+(c[n+(c[u>>2]<<2)>>2]<<(c[u>>2]|0)-1);c[n+(c[u>>2]<<2)>>2]=c[w>>2];c[u>>2]=(c[u>>2]|0)+1;}c[x>>2]=0;while(1){if((c[x>>2]|0)>>>0>=(c[p>>2]|0)>>>0)break;c[y>>2]=d[m+(c[x>>2]|0)>>0];c[z>>2]=1<>2]>>1;a[B>>0]=c[x>>2];a[B+1>>0]=(c[o>>2]|0)+1-(c[y>>2]|0);c[A>>2]=c[n+(c[y>>2]<<2)>>2];while(1){if((c[A>>2]|0)>>>0>=((c[n+(c[y>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0)break;u=(c[s>>2]|0)+(c[A>>2]<<1)|0;a[u>>0]=a[B>>0]|0;a[u+1>>0]=a[B+1>>0]|0;c[A>>2]=(c[A>>2]|0)+1;}u=n+(c[y>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[z>>2]|0);c[x>>2]=(c[x>>2]|0)+1;}c[h>>2]=c[q>>2];C=c[h>>2]|0;l=g;return C|0;}function lt(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+208|0;j=i+192|0;k=i+188|0;m=i+184|0;n=i+180|0;o=i+176|0;p=i+172|0;q=i+168|0;r=i+164|0;s=i+160|0;t=i+156|0;u=i+152|0;v=i+136|0;w=i+120|0;x=i+104|0;y=i+88|0;z=i+84|0;A=i+80|0;B=i+76|0;C=i+72|0;D=i+68|0;E=i+64|0;F=i+60|0;G=i+56|0;H=i+52|0;I=i+48|0;J=i+44|0;K=i+40|0;L=i+36|0;M=i+32|0;N=i+28|0;O=i+24|0;P=i+20|0;Q=i+196|0;R=i+16|0;S=i+12|0;T=i+8|0;U=i+4|0;V=i;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if((c[o>>2]|0)>>>0<10){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}c[q>>2]=c[n>>2];c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=(c[p>>2]|0)+4;c[u>>2]=c[t>>2];c[z>>2]=(Eq(c[q>>2]|0)|0)&65535;c[A>>2]=(Eq((c[q>>2]|0)+2|0)|0)&65535;c[B>>2]=(Eq((c[q>>2]|0)+4|0)|0)&65535;c[C>>2]=(c[o>>2]|0)-((c[z>>2]|0)+(c[A>>2]|0)+(c[B>>2]|0)+6);c[D>>2]=(c[q>>2]|0)+6;c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(((c[m>>2]|0)+3|0)>>>0)/4|0;c[I>>2]=(c[r>>2]|0)+(c[H>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[H>>2]|0);c[K>>2]=(c[J>>2]|0)+(c[H>>2]|0);c[L>>2]=c[r>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];c[O>>2]=c[K>>2];_s(Q,c[p>>2]|0);c[R>>2]=d[Q+2>>0];if((c[C>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}c[S>>2]=Ds(v,c[D>>2]|0,c[z>>2]|0)|0;if(at(c[S>>2]|0)|0){c[j>>2]=c[S>>2];W=c[j>>2]|0;l=i;return W|0;}c[T>>2]=Ds(w,c[E>>2]|0,c[A>>2]|0)|0;if(at(c[T>>2]|0)|0){c[j>>2]=c[T>>2];W=c[j>>2]|0;l=i;return W|0;}c[U>>2]=Ds(x,c[F>>2]|0,c[B>>2]|0)|0;if(at(c[U>>2]|0)|0){c[j>>2]=c[U>>2];W=c[j>>2]|0;l=i;return W|0;}c[V>>2]=Ds(y,c[G>>2]|0,c[C>>2]|0)|0;if(at(c[V>>2]|0)|0){c[j>>2]=c[V>>2];W=c[j>>2]|0;l=i;return W|0;}V=Fs(v)|0;C=V|(Fs(w)|0);V=C|(Fs(x)|0);c[P>>2]=V|(Fs(y)|0);while(1){if(c[P>>2]|0)break;if((c[O>>2]|0)>>>0>=((c[s>>2]|0)+-7|0)>>>0)break;if(dt()|0){V=mt(v,c[u>>2]|0,c[R>>2]|0)|0;C=c[L>>2]|0;c[L>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(w,c[u>>2]|0,c[R>>2]|0)|0;C=c[M>>2]|0;c[M>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(x,c[u>>2]|0,c[R>>2]|0)|0;C=c[N>>2]|0;c[N>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(y,c[u>>2]|0,c[R>>2]|0)|0;C=c[O>>2]|0;c[O>>2]=C+1;a[C>>0]=V;}dt()|0;V=mt(v,c[u>>2]|0,c[R>>2]|0)|0;C=c[L>>2]|0;c[L>>2]=C+1;a[C>>0]=V;dt()|0;V=mt(w,c[u>>2]|0,c[R>>2]|0)|0;C=c[M>>2]|0;c[M>>2]=C+1;a[C>>0]=V;dt()|0;V=mt(x,c[u>>2]|0,c[R>>2]|0)|0;C=c[N>>2]|0;c[N>>2]=C+1;a[C>>0]=V;dt()|0;V=mt(y,c[u>>2]|0,c[R>>2]|0)|0;C=c[O>>2]|0;c[O>>2]=C+1;a[C>>0]=V;if(dt()|0){V=mt(v,c[u>>2]|0,c[R>>2]|0)|0;C=c[L>>2]|0;c[L>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(w,c[u>>2]|0,c[R>>2]|0)|0;C=c[M>>2]|0;c[M>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(x,c[u>>2]|0,c[R>>2]|0)|0;C=c[N>>2]|0;c[N>>2]=C+1;a[C>>0]=V;}if(dt()|0){V=mt(y,c[u>>2]|0,c[R>>2]|0)|0;C=c[O>>2]|0;c[O>>2]=C+1;a[C>>0]=V;}V=mt(v,c[u>>2]|0,c[R>>2]|0)|0;C=c[L>>2]|0;c[L>>2]=C+1;a[C>>0]=V;V=mt(w,c[u>>2]|0,c[R>>2]|0)|0;C=c[M>>2]|0;c[M>>2]=C+1;a[C>>0]=V;V=mt(x,c[u>>2]|0,c[R>>2]|0)|0;C=c[N>>2]|0;c[N>>2]=C+1;a[C>>0]=V;V=mt(y,c[u>>2]|0,c[R>>2]|0)|0;C=c[O>>2]|0;c[O>>2]=C+1;a[C>>0]=V;V=Fs(v)|0;C=V|(Fs(w)|0);V=C|(Fs(x)|0);c[P>>2]=V|(Fs(y)|0);}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}nt(c[L>>2]|0,v,c[I>>2]|0,c[u>>2]|0,c[R>>2]|0)|0;nt(c[M>>2]|0,w,c[J>>2]|0,c[u>>2]|0,c[R>>2]|0)|0;nt(c[N>>2]|0,x,c[K>>2]|0,c[u>>2]|0,c[R>>2]|0)|0;nt(c[O>>2]|0,y,c[s>>2]|0,c[u>>2]|0,c[R>>2]|0)|0;R=ct(v)|0;v=R&(ct(w)|0);w=v&(ct(x)|0);c[P>>2]=w&(ct(y)|0);if(c[P>>2]|0){c[j>>2]=c[m>>2];W=c[j>>2]|0;l=i;return W|0;}else{c[j>>2]=-20;W=c[j>>2]|0;l=i;return W|0;}return 0;}function mt(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+16|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=gt(c[h>>2]|0,c[j>>2]|0)|0;a[m>>0]=a[(c[i>>2]|0)+(c[k>>2]<<1)>>0]|0;Ps(c[h>>2]|0,d[(c[i>>2]|0)+(c[k>>2]<<1)+1>>0]|0);l=g;return a[m>>0]|0;}function nt(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];while(1){if(Fs(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>((c[k>>2]|0)+-4|0)>>>0)break;if(dt()|0){g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}dt()|0;g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;if(dt()|0){g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if(Fs(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=mt(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}l=h;return(c[k>>2]|0)-(c[o>>2]|0)|0;}function ot(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;k=l;l=l+80|0;m=k+72|0;n=k+68|0;o=k+64|0;p=k+60|0;q=k+56|0;r=k+52|0;s=k+48|0;t=k+44|0;u=k+40|0;v=k+36|0;w=k+32|0;x=k+28|0;y=k+24|0;z=k+20|0;A=k+16|0;B=k+12|0;C=k+8|0;D=k+4|0;E=k;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[v>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}c[w>>2]=d[c[v>>2]>>0];s=c[w>>2]|0;a:do{if((c[w>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}c[x>>2]=pt(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[v>>2]|0)+1|0,c[w>>2]|0)|0;if(qt(c[x>>2]|0)|0){c[m>>2]=c[x>>2];F=c[m>>2]|0;l=k;return F|0;}}else{j=c[w>>2]|0;if(s>>>0>=242){c[x>>2]=c[7392+(j-242<<2)>>2];oE(c[n>>2]|0,1,c[o>>2]|0)|0;c[w>>2]=0;break;}c[x>>2]=j-127;c[w>>2]=(((c[x>>2]|0)+1|0)>>>0)/2|0;if(((c[w>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}if((c[x>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[v>>2]=(c[v>>2]|0)+1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[y>>2]|0)+1)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)&15;c[y>>2]=(c[y>>2]|0)+2;}}}while(0);y=c[p>>2]|0;v=y+68|0;do{c[y>>2]=0;y=y+4|0;}while((y|0)<(v|0));c[u>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0|0)>=16){G=20;break;}y=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)<<2)|0;c[y>>2]=(c[y>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)>>1);c[z>>2]=(c[z>>2]|0)+1;}if((G|0)==20){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[A>>2]=(Rs(c[u>>2]|0)|0)+1;if((c[A>>2]|0)>>>0>16){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[c[r>>2]>>2]=c[A>>2];c[B>>2]=1<>2];c[C>>2]=(c[B>>2]|0)-(c[u>>2]|0);c[D>>2]=1<<(Rs(c[C>>2]|0)|0);c[E>>2]=(Rs(c[C>>2]|0)|0)+1;if((c[D>>2]|0)!=(c[C>>2]|0)){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}a[(c[n>>2]|0)+(c[x>>2]|0)>>0]=c[E>>2];n=(c[p>>2]|0)+(c[E>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[x>>2]|0)+1;c[m>>2]=(c[w>>2]|0)+1;F=c[m>>2]|0;l=k;return F|0;}c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}function pt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+16960|0;g=f+16952|0;h=f+16948|0;i=f+16944|0;j=f+16940|0;k=f+16936|0;m=f+16932|0;n=f+16928|0;o=f+16400|0;p=f;q=f+16924|0;r=f+16920|0;s=f+16916|0;t=f+16912|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=c[m>>2];c[r>>2]=255;if((c[k>>2]|0)>>>0<2){c[g>>2]=-72;u=c[g>>2]|0;l=f;return u|0;}c[s>>2]=Vs(o,r,q,c[m>>2]|0,c[k>>2]|0)|0;m=(hr(c[s>>2]|0)|0)!=0;j=c[s>>2]|0;if(m){c[g>>2]=j;u=c[g>>2]|0;l=f;return u|0;}if(j>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;u=c[g>>2]|0;l=f;return u|0;}c[n>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0);c[t>>2]=Us(p,o,c[r>>2]|0,c[q>>2]|0)|0;if(hr(c[t>>2]|0)|0){c[g>>2]=c[t>>2];u=c[g>>2]|0;l=f;return u|0;}else{c[g>>2]=rt(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,p)|0;u=c[g>>2]|0;l=f;return u|0;}return 0;}function qt(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=hr(c[d>>2]|0)|0;l=b;return a|0;}function rt(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+208|0;j=i+192|0;k=i+188|0;m=i+184|0;n=i+180|0;o=i+176|0;p=i+172|0;q=i+168|0;r=i+164|0;s=i+160|0;t=i+156|0;u=i+152|0;v=i+136|0;w=i+128|0;x=i+120|0;y=i+116|0;z=i+112|0;A=i+108|0;B=i+104|0;C=i+100|0;D=i+96|0;E=i+92|0;F=i+88|0;G=i+84|0;H=i+80|0;I=i+76|0;J=i+72|0;K=i+56|0;L=i+48|0;M=i+40|0;N=i+36|0;O=i+32|0;P=i+28|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[P>>2]=b;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=c[T>>2];c[V>>2]=c[U>>2];c[W>>2]=e[(c[V>>2]|0)+2>>1];V=c[P>>2]|0;P=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;if(c[W>>2]|0){c[A>>2]=V;c[B>>2]=P;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=1;c[G>>2]=c[A>>2];c[H>>2]=c[G>>2];c[I>>2]=(c[H>>2]|0)+(c[B>>2]|0);c[J>>2]=(c[I>>2]|0)+-3;c[N>>2]=Ds(K,c[C>>2]|0,c[D>>2]|0)|0;do{if(hr(c[N>>2]|0)|0)c[z>>2]=c[N>>2];else{Es(L,K,c[E>>2]|0);Es(M,K,c[E>>2]|0);while(1){if(Fs(K)|0)break;if((c[H>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break;if(c[F>>2]|0)X=(st(L,K)|0)&255;else X=(tt(L,K)|0)&255;a[c[H>>2]>>0]=X;if(c[F>>2]|0)Y=(st(M,K)|0)&255;else Y=(tt(M,K)|0)&255;a[(c[H>>2]|0)+1>>0]=Y;if((Fs(K)|0)>>>0>0){Z=14;break;}if(c[F>>2]|0)_=(st(L,K)|0)&255;else _=(tt(L,K)|0)&255;a[(c[H>>2]|0)+2>>0]=_;if(c[F>>2]|0)$=(st(M,K)|0)&255;else $=(tt(M,K)|0)&255;a[(c[H>>2]|0)+3>>0]=$;c[H>>2]=(c[H>>2]|0)+4;}if((Z|0)==14)c[H>>2]=(c[H>>2]|0)+2;while(1){if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=24;break;}if(c[F>>2]|0)aa=(st(L,K)|0)&255;else aa=(tt(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=aa;if((Fs(K)|0)==3){Z=29;break;}if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=34;break;}if(c[F>>2]|0)ba=(st(M,K)|0)&255;else ba=(tt(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ba;if((Fs(K)|0)==3){Z=39;break;}}if((Z|0)==24){c[z>>2]=-70;break;}else if((Z|0)==29){if(c[F>>2]|0)ca=(st(M,K)|0)&255;else ca=(tt(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ca;}else if((Z|0)==34){c[z>>2]=-70;break;}else if((Z|0)==39){if(c[F>>2]|0)da=(st(L,K)|0)&255;else da=(tt(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=da;}c[z>>2]=(c[H>>2]|0)-(c[G>>2]|0);}}while(0);c[O>>2]=c[z>>2];ea=c[O>>2]|0;l=i;return ea|0;}else{c[k>>2]=V;c[m>>2]=P;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=0;c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[s>>2]|0)+(c[m>>2]|0);c[u>>2]=(c[t>>2]|0)+-3;c[y>>2]=Ds(v,c[n>>2]|0,c[o>>2]|0)|0;do{if(hr(c[y>>2]|0)|0)c[j>>2]=c[y>>2];else{Es(w,v,c[p>>2]|0);Es(x,v,c[p>>2]|0);while(1){if(Fs(v)|0)break;if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;if(c[q>>2]|0)fa=(st(w,v)|0)&255;else fa=(tt(w,v)|0)&255;a[c[s>>2]>>0]=fa;if(c[q>>2]|0)ga=(st(x,v)|0)&255;else ga=(tt(x,v)|0)&255;a[(c[s>>2]|0)+1>>0]=ga;if((Fs(v)|0)>>>0>0){Z=58;break;}if(c[q>>2]|0)ha=(st(w,v)|0)&255;else ha=(tt(w,v)|0)&255;a[(c[s>>2]|0)+2>>0]=ha;if(c[q>>2]|0)ia=(st(x,v)|0)&255;else ia=(tt(x,v)|0)&255;a[(c[s>>2]|0)+3>>0]=ia;c[s>>2]=(c[s>>2]|0)+4;}if((Z|0)==58)c[s>>2]=(c[s>>2]|0)+2;while(1){if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=68;break;}if(c[q>>2]|0)ja=(st(w,v)|0)&255;else ja=(tt(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ja;if((Fs(v)|0)==3){Z=73;break;}if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=78;break;}if(c[q>>2]|0)ka=(st(x,v)|0)&255;else ka=(tt(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ka;if((Fs(v)|0)==3){Z=83;break;}}if((Z|0)==68){c[j>>2]=-70;break;}else if((Z|0)==73){if(c[q>>2]|0)la=(st(x,v)|0)&255;else la=(tt(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=la;}else if((Z|0)==78){c[j>>2]=-70;break;}else if((Z|0)==83){if(c[q>>2]|0)ma=(st(w,v)|0)&255;else ma=(tt(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ma;}c[j>>2]=(c[s>>2]|0)-(c[r>>2]|0);}}while(0);c[O>>2]=c[j>>2];ea=c[O>>2]|0;l=i;return ea|0;}return 0;}function st(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=ut(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function tt(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=Ms(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function ut(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=gt(c[e>>2]|0,c[f>>2]|0)|0;Ps(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function vt(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,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;g=l;l=l+2144|0;h=g+2124|0;i=g+2120|0;j=g+2116|0;k=g+2112|0;m=g+1760|0;n=g+1248|0;o=g+1168|0;p=g+1088|0;q=g+2108|0;r=g;s=g+2104|0;t=g+2100|0;u=g+2096|0;v=g+2092|0;w=g+2128|0;x=g+2088|0;y=g+2084|0;z=g+2080|0;A=g+2076|0;B=g+2072|0;C=g+2068|0;D=g+2064|0;E=g+2060|0;F=g+2056|0;G=g+2052|0;H=g+2048|0;I=g+2044|0;J=g+2040|0;K=g+2036|0;L=g+2032|0;M=g+2028|0;N=g+2024|0;O=g+2020|0;P=g+2016|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=o;e=f+68|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));f=p;e=f+72|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));c[q>>2]=p+4;_s(w,c[i>>2]|0);c[x>>2]=d[w>>0];c[z>>2]=(c[i>>2]|0)+4;c[A>>2]=c[z>>2];if((c[x>>2]|0)>>>0>16){c[h>>2]=-44;Q=c[h>>2]|0;l=g;return Q|0;}c[y>>2]=ot(m,256,o,v,s,c[j>>2]|0,c[k>>2]|0)|0;if(at(c[y>>2]|0)|0){c[h>>2]=c[y>>2];Q=c[h>>2]|0;l=g;return Q|0;}if((c[s>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[h>>2]=-44;Q=c[h>>2]|0;l=g;return Q|0;}c[t>>2]=c[s>>2];while(1){if(c[o+(c[t>>2]<<2)>>2]|0)break;c[t>>2]=(c[t>>2]|0)+-1;}c[C>>2]=0;c[B>>2]=1;while(1){R=c[C>>2]|0;if((c[B>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[D>>2]=R;c[C>>2]=(c[C>>2]|0)+(c[o+(c[B>>2]<<2)>>2]|0);c[(c[q>>2]|0)+(c[B>>2]<<2)>>2]=c[D>>2];c[B>>2]=(c[B>>2]|0)+1;}c[c[q>>2]>>2]=R;c[u>>2]=c[C>>2];c[E>>2]=0;while(1){if((c[E>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[F>>2]=d[m+(c[E>>2]|0)>>0];C=(c[q>>2]|0)+(c[F>>2]<<2)|0;R=c[C>>2]|0;c[C>>2]=R+1;c[G>>2]=R;a[n+(c[G>>2]<<1)>>0]=c[E>>2];a[n+(c[G>>2]<<1)+1>>0]=c[F>>2];c[E>>2]=(c[E>>2]|0)+1;}c[c[q>>2]>>2]=0;c[H>>2]=r;c[I>>2]=(c[x>>2]|0)-(c[s>>2]|0)-1;c[J>>2]=0;c[K>>2]=1;while(1){if((c[K>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[L>>2]=c[J>>2];c[J>>2]=(c[J>>2]|0)+(c[o+(c[K>>2]<<2)>>2]<<(c[K>>2]|0)+(c[I>>2]|0));c[(c[H>>2]|0)+(c[K>>2]<<2)>>2]=c[L>>2];c[K>>2]=(c[K>>2]|0)+1;}c[M>>2]=(c[s>>2]|0)+1-(c[t>>2]|0);c[N>>2]=c[M>>2];while(1){if((c[N>>2]|0)>>>0>=((c[x>>2]|0)-(c[M>>2]|0)+1|0)>>>0)break;c[O>>2]=r+((c[N>>2]|0)*68|0);c[P>>2]=1;while(1){if((c[P>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[(c[O>>2]|0)+(c[P>>2]<<2)>>2]=(c[(c[H>>2]|0)+(c[P>>2]<<2)>>2]|0)>>>(c[N>>2]|0);c[P>>2]=(c[P>>2]|0)+1;}c[N>>2]=(c[N>>2]|0)+1;}xt(c[A>>2]|0,c[x>>2]|0,n,c[u>>2]|0,p,r,c[t>>2]|0,(c[s>>2]|0)+1|0);a[w+2>>0]=c[x>>2];a[w+1>>0]=1;x=c[i>>2]|0;a[x>>0]=a[w>>0]|0;a[x+1>>0]=a[w+1>>0]|0;a[x+2>>0]=a[w+2>>0]|0;a[x+3>>0]=a[w+3>>0]|0;c[h>>2]=c[y>>2];Q=c[h>>2]|0;l=g;return Q|0;}function wt(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,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;h=l;l=l+208|0;i=h+200|0;j=h+196|0;k=h+192|0;m=h+188|0;n=h+184|0;o=h+180|0;p=h+176|0;q=h+172|0;r=h+168|0;s=h+164|0;t=h+160|0;u=h+144|0;v=h+128|0;w=h+112|0;x=h+96|0;y=h+88|0;z=h+84|0;A=h+80|0;B=h+76|0;C=h+72|0;D=h+68|0;E=h+64|0;F=h+60|0;G=h+56|0;H=h+52|0;I=h+48|0;J=h+44|0;K=h+40|0;L=h+36|0;M=h+32|0;N=h+28|0;O=h+24|0;P=h+204|0;Q=h+20|0;R=h+16|0;S=h+12|0;T=h+8|0;U=h+4|0;V=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[n>>2]|0)>>>0<10){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}c[p>>2]=c[m>>2];c[q>>2]=c[j>>2];c[r>>2]=(c[q>>2]|0)+(c[k>>2]|0);c[s>>2]=(c[o>>2]|0)+4;c[t>>2]=c[s>>2];c[y>>2]=(Eq(c[p>>2]|0)|0)&65535;c[z>>2]=(Eq((c[p>>2]|0)+2|0)|0)&65535;c[A>>2]=(Eq((c[p>>2]|0)+4|0)|0)&65535;c[B>>2]=(c[n>>2]|0)-((c[y>>2]|0)+(c[z>>2]|0)+(c[A>>2]|0)+6);c[C>>2]=(c[p>>2]|0)+6;c[D>>2]=(c[C>>2]|0)+(c[y>>2]|0);c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(((c[k>>2]|0)+3|0)>>>0)/4|0;c[H>>2]=(c[q>>2]|0)+(c[G>>2]|0);c[I>>2]=(c[H>>2]|0)+(c[G>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[G>>2]|0);c[K>>2]=c[q>>2];c[L>>2]=c[H>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];_s(P,c[o>>2]|0);c[Q>>2]=d[P+2>>0];if((c[B>>2]|0)>>>0>(c[n>>2]|0)>>>0){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}c[R>>2]=Ds(u,c[C>>2]|0,c[y>>2]|0)|0;if(at(c[R>>2]|0)|0){c[i>>2]=c[R>>2];W=c[i>>2]|0;l=h;return W|0;}c[S>>2]=Ds(v,c[D>>2]|0,c[z>>2]|0)|0;if(at(c[S>>2]|0)|0){c[i>>2]=c[S>>2];W=c[i>>2]|0;l=h;return W|0;}c[T>>2]=Ds(w,c[E>>2]|0,c[A>>2]|0)|0;if(at(c[T>>2]|0)|0){c[i>>2]=c[T>>2];W=c[i>>2]|0;l=h;return W|0;}c[U>>2]=Ds(x,c[F>>2]|0,c[B>>2]|0)|0;if(at(c[U>>2]|0)|0){c[i>>2]=c[U>>2];W=c[i>>2]|0;l=h;return W|0;}U=Fs(u)|0;B=U|(Fs(v)|0);U=B|(Fs(w)|0);c[O>>2]=U|(Fs(x)|0);while(1){if(c[O>>2]|0)break;if((c[N>>2]|0)>>>0>=((c[r>>2]|0)+-7|0)>>>0)break;if(dt()|0){U=et(c[K>>2]|0,u,c[t>>2]|0,c[Q>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+U;}if(dt()|0){U=et(c[L>>2]|0,v,c[t>>2]|0,c[Q>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+U;}if(dt()|0){U=et(c[M>>2]|0,w,c[t>>2]|0,c[Q>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+U;}if(dt()|0){U=et(c[N>>2]|0,x,c[t>>2]|0,c[Q>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+U;}dt()|0;U=et(c[K>>2]|0,u,c[t>>2]|0,c[Q>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+U;dt()|0;U=et(c[L>>2]|0,v,c[t>>2]|0,c[Q>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+U;dt()|0;U=et(c[M>>2]|0,w,c[t>>2]|0,c[Q>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+U;dt()|0;U=et(c[N>>2]|0,x,c[t>>2]|0,c[Q>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+U;if(dt()|0){U=et(c[K>>2]|0,u,c[t>>2]|0,c[Q>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+U;}if(dt()|0){U=et(c[L>>2]|0,v,c[t>>2]|0,c[Q>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+U;}if(dt()|0){U=et(c[M>>2]|0,w,c[t>>2]|0,c[Q>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+U;}if(dt()|0){U=et(c[N>>2]|0,x,c[t>>2]|0,c[Q>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+U;}U=et(c[K>>2]|0,u,c[t>>2]|0,c[Q>>2]|0)|0;c[K>>2]=(c[K>>2]|0)+U;U=et(c[L>>2]|0,v,c[t>>2]|0,c[Q>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+U;U=et(c[M>>2]|0,w,c[t>>2]|0,c[Q>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+U;U=et(c[N>>2]|0,x,c[t>>2]|0,c[Q>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+U;U=Fs(u)|0;B=U|(Fs(v)|0);U=B|(Fs(w)|0);c[O>>2]=U|(Fs(x)|0);}if((c[K>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}bt(c[K>>2]|0,u,c[H>>2]|0,c[t>>2]|0,c[Q>>2]|0)|0;bt(c[L>>2]|0,v,c[I>>2]|0,c[t>>2]|0,c[Q>>2]|0)|0;bt(c[M>>2]|0,w,c[J>>2]|0,c[t>>2]|0,c[Q>>2]|0)|0;bt(c[N>>2]|0,x,c[r>>2]|0,c[t>>2]|0,c[Q>>2]|0)|0;Q=ct(u)|0;u=Q&(ct(v)|0);v=u&(ct(w)|0);c[V>>2]=v&(ct(x)|0);if(c[V>>2]|0){c[i>>2]=c[k>>2];W=c[i>>2]|0;l=h;return W|0;}else{c[i>>2]=-20;W=c[i>>2]|0;l=h;return W|0;}return 0;}function xt(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+160|0;o=n+140|0;p=n+136|0;q=n+132|0;r=n+128|0;s=n+124|0;t=n+120|0;u=n+116|0;v=n+112|0;w=n;x=n+108|0;y=n+104|0;z=n+100|0;A=n+148|0;B=n+96|0;C=n+92|0;D=n+88|0;E=n+84|0;F=n+80|0;G=n+76|0;H=n+144|0;I=n+72|0;J=n+68|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+68|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];yt((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*68|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{zt(H,b[A>>1]|0);a[H+2>>0]=c[C>>2];a[H+3>>0]=1;c[J>>2]=(c[D>>2]|0)+(c[E>>2]|0);c[I>>2]=c[D>>2];while(1){if((c[I>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[I>>2]<<2)|0;b[m>>1]=b[H>>1]|0;b[m+2>>1]=b[H+2>>1]|0;c[I>>2]=(c[I>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function yt(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+160|0;q=p+136|0;r=p+132|0;s=p+128|0;t=p+124|0;u=p+120|0;v=p+116|0;w=p+112|0;x=p+108|0;y=p+144|0;z=p+140|0;A=p;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+68|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[C>>2]=c[A+(c[u>>2]<<2)>>2];zt(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[C>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[B>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[B>>2]=(c[B>>2]|0)+1;}}}while(0);c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);zt(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{B=c[q>>2]|0;C=c[J>>2]|0;c[J>>2]=C+1;u=B+(C<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}l=p;return;}function zt(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Gq()|0)!=0;d=c[h>>2]|0;if(f){At(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function At(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=c[g>>2]|0;a[e>>0]=a[h>>0]|0;a[e+1>>0]=a[h+1>>0]|0;l=f;return;}function Bt(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+80|0;i=h+60|0;j=h+56|0;k=h+52|0;m=h+48|0;n=h+44|0;o=h+40|0;p=h+36|0;q=h+32|0;r=h+28|0;s=h+24|0;t=h+8|0;u=h+64|0;v=h+4|0;w=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[j>>2];c[q>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[r>>2]=(c[o>>2]|0)+4;c[s>>2]=c[r>>2];_s(u,c[o>>2]|0);c[v>>2]=d[u+2>>0];c[w>>2]=Ds(t,c[m>>2]|0,c[n>>2]|0)|0;if(at(c[w>>2]|0)|0){c[i>>2]=c[w>>2];x=c[i>>2]|0;l=h;return x|0;}nt(c[p>>2]|0,t,c[q>>2]|0,c[s>>2]|0,c[v>>2]|0)|0;if(ct(t)|0){c[i>>2]=c[k>>2];x=c[i>>2]|0;l=h;return x|0;}else{c[i>>2]=-20;x=c[i>>2]|0;l=h;return x|0;}return 0;}function Ct(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[(c[d>>2]|0)+21536>>2]=5;c[(c[d>>2]|0)+21580>>2]=0;c[(c[d>>2]|0)+21520>>2]=0;c[(c[d>>2]|0)+21524>>2]=0;c[(c[d>>2]|0)+21528>>2]=0;c[(c[d>>2]|0)+21532>>2]=0;c[(c[d>>2]|0)+5132>>2]=201326604;c[(c[d>>2]|0)+21588>>2]=0;c[(c[d>>2]|0)+21584>>2]=0;c[(c[d>>2]|0)+21684>>2]=0;c[e>>2]=0;while(1){if((c[e>>2]|0)>=3)break;c[(c[d>>2]|0)+21540+(c[e>>2]<<2)>>2]=c[11940+(c[e>>2]<<2)>>2];c[e>>2]=(c[e>>2]|0)+1;}l=b;return 0;}function Dt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)>>>0<8){c[f>>2]=Et(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}c[j>>2]=Bq(c[h>>2]|0)|0;if((c[j>>2]|0)!=-332356553){c[f>>2]=Et(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}j=Bq((c[h>>2]|0)+4|0)|0;c[(c[g>>2]|0)+21684>>2]=j;c[h>>2]=(c[h>>2]|0)+8;c[i>>2]=(c[i>>2]|0)-8;c[k>>2]=Ft(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if(hr(c[k>>2]|0)|0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}else{c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);c[f>>2]=Et(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}return 0;}function Et(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+21532>>2]=c[(c[f>>2]|0)+21520>>2];c[(c[f>>2]|0)+21528>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+21520>>2]|0)-(c[(c[f>>2]|0)+21524>>2]|0)));c[(c[f>>2]|0)+21524>>2]=c[g>>2];c[(c[f>>2]|0)+21520>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return 0;}function Ft(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;e=l;l=l+336|0;f=e+324|0;g=e+320|0;h=e+316|0;i=e+312|0;j=e+308|0;k=e+304|0;m=e+300|0;n=e+192|0;o=e+296|0;p=e+292|0;q=e+288|0;r=e+284|0;s=e+80|0;t=e+280|0;u=e+276|0;v=e+272|0;w=e+268|0;x=e;y=e+264|0;z=e+260|0;A=e+256|0;B=e+252|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[h>>2];c[k>>2]=(c[j>>2]|0)+(c[i>>2]|0);c[m>>2]=vt((c[g>>2]|0)+5132|0,c[h>>2]|0,c[i>>2]|0)|0;if(hr(c[m>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[m>>2]|0);c[o>>2]=28;c[q>>2]=Vs(n,o,p,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if(hr(c[q>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[p>>2]|0)>>>0>8){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[r>>2]=Us((c[g>>2]|0)+2052|0,n,c[o>>2]|0,c[p>>2]|0)|0;if(hr(c[r>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[q>>2]|0);c[t>>2]=52;c[v>>2]=Vs(s,t,u,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if(hr(c[v>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[u>>2]|0)>>>0>9){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[w>>2]=Us((c[g>>2]|0)+3080|0,s,c[t>>2]|0,c[u>>2]|0)|0;if(hr(c[w>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[v>>2]|0);c[y>>2]=35;c[A>>2]=Vs(x,y,z,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if(hr(c[A>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[z>>2]|0)>>>0>9){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[B>>2]=Us(c[g>>2]|0,x,c[y>>2]|0,c[z>>2]|0)|0;if(hr(c[B>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[A>>2]|0);if(((c[j>>2]|0)+12|0)>>>0>(c[k>>2]|0)>>>0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}k=Bq(c[j>>2]|0)|0;c[(c[g>>2]|0)+21540>>2]=k;if(c[(c[g>>2]|0)+21540>>2]|0?(c[(c[g>>2]|0)+21540>>2]|0)>>>0<(c[i>>2]|0)>>>0:0){k=Bq((c[j>>2]|0)+4|0)|0;c[(c[g>>2]|0)+21540+4>>2]=k;if(c[(c[g>>2]|0)+21540+4>>2]|0?(c[(c[g>>2]|0)+21540+4>>2]|0)>>>0<(c[i>>2]|0)>>>0:0){k=Bq((c[j>>2]|0)+8|0)|0;c[(c[g>>2]|0)+21540+8>>2]=k;if(c[(c[g>>2]|0)+21540+8>>2]|0?(c[(c[g>>2]|0)+21540+8>>2]|0)>>>0<(c[i>>2]|0)>>>0:0){c[j>>2]=(c[j>>2]|0)+12;c[(c[g>>2]|0)+21588>>2]=1;c[(c[g>>2]|0)+21584>>2]=1;c[f>>2]=(c[j>>2]|0)-(c[h>>2]|0);C=c[f>>2]|0;l=e;return C|0;}c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}function Gt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;if((c[a>>2]|0)==0?(c[a+4>>2]|0)==0:0){c[a>>2]=c[2988];c[a+4>>2]=c[2989];c[a+8>>2]=c[2990];}if(c[a>>2]|0?c[a+4>>2]|0:0){c[e>>2]=qc[c[a>>2]&63](c[a+8>>2]|0,152808)|0;if(c[e>>2]|0){f=(c[e>>2]|0)+21692|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];Ct(c[e>>2]|0)|0;c[d>>2]=c[e>>2];g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=0;g=c[d>>2]|0;l=b;return g|0;}}c[d>>2]=0;g=c[d>>2]|0;l=b;return g|0;}function Ht(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[d+8>>2]=a;c[e>>2]=b;c[f>>2]=Cy(c[e>>2]|0)|0;l=d;return c[f>>2]|0;}function It(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[d+4>>2]=a;c[e>>2]=b;Dy(c[e>>2]|0);l=d;return;}function Jt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=Ou(c[g>>2]|0)|0;if(jr(c[j>>2]|0)|0){c[f>>2]=c[j>>2];m=c[f>>2]|0;l=e;return m|0;}if((c[h>>2]|0)!=0&(c[i>>2]|0)!=0?(c[k>>2]=Pu(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0,jr(c[k>>2]|0)|0):0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}function Kt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+21520>>2]|0)){l=d;return;}c[(c[e>>2]|0)+21532>>2]=c[(c[e>>2]|0)+21520>>2];c[(c[e>>2]|0)+21528>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+21520>>2]|0)-(c[(c[e>>2]|0)+21524>>2]|0)));c[(c[e>>2]|0)+21524>>2]=c[f>>2];c[(c[e>>2]|0)+21520>>2]=c[f>>2];l=d;return;}function Lt(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,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;g=l;l=l+80|0;h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;m=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+16|0;v=g+8|0;w=g+4|0;x=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=(c[o>>2]|0)+(c[n>>2]|0);c[q>>2]=c[j>>2];c[r>>2]=c[q>>2];c[s>>2]=(c[q>>2]|0)+(c[k>>2]|0);c[t>>2]=c[n>>2];c[u>>2]=0;c[u+4>>2]=0;if((c[n>>2]|0)>>>0<8){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}c[v>>2]=Nq(c[m>>2]|0,5)|0;if(jr(c[v>>2]|0)|0){c[h>>2]=c[v>>2];y=c[h>>2]|0;l=g;return y|0;}if((c[n>>2]|0)>>>0<((c[v>>2]|0)+3|0)>>>0){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}if(Mt(c[i>>2]|0,c[m>>2]|0,c[v>>2]|0)|0){c[h>>2]=-20;y=c[h>>2]|0;l=g;return y|0;}c[o>>2]=(c[o>>2]|0)+(c[v>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[v>>2]|0);a:while(1){c[w>>2]=0;c[x>>2]=kr(c[o>>2]|0,(c[p>>2]|0)-(c[o>>2]|0)|0,u)|0;if(jr(c[x>>2]|0)|0){z=11;break;}c[o>>2]=(c[o>>2]|0)+3;c[t>>2]=(c[t>>2]|0)-3;if((c[x>>2]|0)>>>0>(c[t>>2]|0)>>>0){z=13;break;}switch(c[u>>2]|0){case 2:{z=17;break a;break;}case 0:{c[w>>2]=Nt(c[i>>2]|0,c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[x>>2]|0)|0;break;}case 1:{c[w>>2]=Ot(c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[x>>2]|0)|0;break;}case 3:{if(c[t>>2]|0){z=19;break a;}break;}default:{z=20;break a;}}if(!(c[x>>2]|0)){z=25;break;}v=(jr(c[w>>2]|0)|0)!=0;A=c[w>>2]|0;if(v){z=23;break;}c[r>>2]=(c[r>>2]|0)+A;c[o>>2]=(c[o>>2]|0)+(c[x>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[x>>2]|0);}if((z|0)==11){c[h>>2]=c[x>>2];y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==13){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==17){c[h>>2]=-1;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==19){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==20){c[h>>2]=-1;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==23){c[h>>2]=A;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==25){c[h>>2]=(c[r>>2]|0)-(c[q>>2]|0);y=c[h>>2]|0;l=g;return y|0;}return 0;}function Mt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=zq((c[g>>2]|0)+21544|0,c[h>>2]|0,c[i>>2]|0)|0;if(au()|0?(c[(c[g>>2]|0)+21544+8>>2]|0)>>>0>25:0){c[f>>2]=-14;k=c[f>>2]|0;l=e;return k|0;}c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}function Nt(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];if((c[n>>2]|0)>>>0>=131072){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}c[p>>2]=Pt(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(jr(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+f;c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=Qt(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Ot(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function Pt(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+28|0;s=g+24|0;t=g+20|0;u=g+16|0;v=g+12|0;w=g+8|0;x=g+4|0;y=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<3){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch((d[c[m>>2]>>0]|0)>>6|0){case 0:{c[p>>2]=0;c[q>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[k>>2]|0)>>>0<5){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch(c[q>>2]|0){case 3:{c[q>>2]=5;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<14)+((d[(c[m>>2]|0)+1>>0]|0)<<6)+((d[(c[m>>2]|0)+2>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&3)<<16)+((d[(c[m>>2]|0)+3>>0]|0)<<8)+(d[(c[m>>2]|0)+4>>0]|0);break;}case 2:{c[q>>2]=4;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<10)+((d[(c[m>>2]|0)+1>>0]|0)<<2)+((d[(c[m>>2]|0)+2>>0]|0)>>6);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&63)<<8)+(d[(c[m>>2]|0)+3>>0]|0);break;}default:{c[q>>2]=3;c[p>>2]=(d[c[m>>2]>>0]|0)&16;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);}}if((c[n>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(((c[o>>2]|0)+(c[q>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}j=(c[i>>2]|0)+21580|0;f=c[n>>2]|0;e=(c[m>>2]|0)+(c[q>>2]|0)|0;b=c[o>>2]|0;if(c[p>>2]|0)A=lu(j,f,e,b)|0;else A=mu(j,f,e,b)|0;if(jr(A)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+21572>>2]=(c[i>>2]|0)+21580;c[(c[i>>2]|0)+21576>>2]=c[n>>2];n=(c[i>>2]|0)+21580+(c[(c[i>>2]|0)+21576>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=(c[o>>2]|0)+(c[q>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 1:{c[t>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[t>>2]|0)!=1){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(!(c[(c[i>>2]|0)+21568>>2]|0)){c[h>>2]=-30;z=c[h>>2]|0;l=g;return z|0;}c[t>>2]=3;c[r>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[s>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if(((c[s>>2]|0)+(c[t>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}c[u>>2]=nu((c[i>>2]|0)+21580|0,c[r>>2]|0,(c[m>>2]|0)+(c[t>>2]|0)|0,c[s>>2]|0,(c[i>>2]|0)+5132|0)|0;if(jr(c[u>>2]|0)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+21572>>2]=(c[i>>2]|0)+21580;c[(c[i>>2]|0)+21576>>2]=c[r>>2];r=(c[i>>2]|0)+21580+(c[(c[i>>2]|0)+21576>>2]|0)|0;a[r>>0]=0;a[r+1>>0]=0;a[r+2>>0]=0;a[r+3>>0]=0;a[r+4>>0]=0;a[r+5>>0]=0;a[r+6>>0]=0;a[r+7>>0]=0;c[h>>2]=(c[s>>2]|0)+(c[t>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[w>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[w>>2]|0){case 3:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);break;}case 2:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[w>>2]=1;c[v>>2]=(d[c[m>>2]>>0]|0)&31;}}if(((c[w>>2]|0)+(c[v>>2]|0)+8|0)>>>0<=(c[k>>2]|0)>>>0){c[(c[i>>2]|0)+21572>>2]=(c[m>>2]|0)+(c[w>>2]|0);c[(c[i>>2]|0)+21576>>2]=c[v>>2];c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}if(((c[v>>2]|0)+(c[w>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{mE((c[i>>2]|0)+21580|0,(c[m>>2]|0)+(c[w>>2]|0)|0,c[v>>2]|0)|0;c[(c[i>>2]|0)+21572>>2]=(c[i>>2]|0)+21580;c[(c[i>>2]|0)+21576>>2]=c[v>>2];t=(c[i>>2]|0)+21580+(c[(c[i>>2]|0)+21576>>2]|0)|0;a[t>>0]=0;a[t+1>>0]=0;a[t+2>>0]=0;a[t+3>>0]=0;a[t+4>>0]=0;a[t+5>>0]=0;a[t+6>>0]=0;a[t+7>>0]=0;c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 3:{c[y>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[y>>2]|0){case 3:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if((c[k>>2]|0)>>>0<4){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[y>>2]=1;c[x>>2]=(d[c[m>>2]>>0]|0)&31;}}if((c[x>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{oE((c[i>>2]|0)+21580|0,(d[(c[m>>2]|0)+(c[y>>2]|0)>>0]|0)&255|0,(c[x>>2]|0)+8|0)|0;c[(c[i>>2]|0)+21572>>2]=(c[i>>2]|0)+21580;c[(c[i>>2]|0)+21576>>2]=c[x>>2];c[h>>2]=(c[y>>2]|0)+1;z=c[h>>2]|0;l=g;return z|0;}break;}default:{}}return 0;}function Qt(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,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;g=l;l=l+176|0;h=g+164|0;i=g+160|0;j=g+156|0;k=g+152|0;m=g+148|0;n=g+144|0;o=g+140|0;p=g+136|0;q=g+132|0;r=g+128|0;s=g+124|0;t=g+120|0;u=g+116|0;v=g+112|0;w=g+108|0;x=g+104|0;y=g+100|0;z=g+96|0;A=g+92|0;B=g+88|0;C=g+84|0;D=g+80|0;E=g+68|0;F=g+16|0;G=g+12|0;H=g+8|0;I=g+4|0;J=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=c[(c[j>>2]|0)+21572>>2];c[v>>2]=(c[u>>2]|0)+(c[(c[j>>2]|0)+21576>>2]|0);c[w>>2]=c[j>>2];c[x>>2]=(c[j>>2]|0)+3080;c[y>>2]=(c[j>>2]|0)+2052;c[z>>2]=c[(c[j>>2]|0)+21524>>2];c[A>>2]=c[(c[j>>2]|0)+21528>>2];c[B>>2]=c[(c[j>>2]|0)+21532>>2];c[D>>2]=Rt(C,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[(c[j>>2]|0)+21568>>2]|0,c[p>>2]|0,c[o>>2]|0)|0;o=(jr(c[D>>2]|0)|0)!=0;m=c[D>>2]|0;if(o){c[i>>2]=m;K=c[i>>2]|0;l=g;return K|0;}c[p>>2]=(c[p>>2]|0)+m;c[(c[j>>2]|0)+21568>>2]=0;if(c[C>>2]|0){c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+8>>2]=1;c[G>>2]=0;while(1){if((c[G>>2]|0)>>>0>=3)break;c[F+40+(c[G>>2]<<2)>>2]=1;c[G>>2]=(c[G>>2]|0)+1;}c[H>>2]=St(F,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;if(jr(c[H>>2]|0)|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}Tt(F+16|0,F,c[w>>2]|0);Tt(F+24|0,F,c[y>>2]|0);Tt(F+32|0,F,c[x>>2]|0);while(1){x=(Ut(F)|0)>>>0<=2;L=c[C>>2]|0;if(!(x?(c[C>>2]|0)!=0:0))break;c[C>>2]=L+-1;Vt(E,F);x=c[t>>2]|0;y=c[s>>2]|0;w=c[v>>2]|0;H=c[z>>2]|0;p=c[A>>2]|0;q=c[B>>2]|0;c[h>>2]=c[E>>2];c[h+4>>2]=c[E+4>>2];c[h+8>>2]=c[E+8>>2];c[I>>2]=Wt(x,y,h,u,w,H,p,q)|0;q=(jr(c[I>>2]|0)|0)!=0;M=c[I>>2]|0;if(q){N=12;break;}c[t>>2]=(c[t>>2]|0)+M;}if((N|0)==12){c[i>>2]=M;K=c[i>>2]|0;l=g;return K|0;}if(L|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}}c[J>>2]=(c[v>>2]|0)-(c[u>>2]|0);if((c[u>>2]|0)>>>0>(c[v>>2]|0)>>>0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}if(((c[t>>2]|0)+(c[J>>2]|0)|0)>>>0>(c[s>>2]|0)>>>0){c[i>>2]=-70;K=c[i>>2]|0;l=g;return K|0;}else{mE(c[t>>2]|0,c[u>>2]|0,c[J>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[J>>2]|0);c[i>>2]=(c[t>>2]|0)-(c[r>>2]|0);K=c[i>>2]|0;l=g;return K|0;}return 0;}function Rt(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,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;j=l;l=l+80|0;k=j+68|0;m=j+64|0;n=j+60|0;o=j+56|0;p=j+52|0;q=j+48|0;r=j+44|0;s=j+40|0;t=j+36|0;u=j+32|0;v=j+28|0;w=j+24|0;x=j+20|0;y=j+16|0;z=j+12|0;A=j+8|0;B=j+4|0;C=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=c[r>>2];c[u>>2]=(c[t>>2]|0)+(c[s>>2]|0);c[v>>2]=c[t>>2];if((c[s>>2]|0)>>>0<1){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}s=c[v>>2]|0;c[v>>2]=s+1;c[w>>2]=d[s>>0];if(!(c[w>>2]|0)){c[c[m>>2]>>2]=0;c[k>>2]=1;D=c[k>>2]|0;l=j;return D|0;}do{if((c[w>>2]|0)>127){s=c[v>>2]|0;if((c[w>>2]|0)==255){if((s+2|0)>>>0<=(c[u>>2]|0)>>>0){c[w>>2]=((Oq(c[v>>2]|0)|0)&65535)+32512;c[v>>2]=(c[v>>2]|0)+2;break;}c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else{if(s>>>0<(c[u>>2]|0)>>>0){s=(c[w>>2]|0)-128<<8;r=c[v>>2]|0;c[v>>2]=r+1;c[w>>2]=s+(d[r>>0]|0);break;}c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}}}while(0);c[c[m>>2]>>2]=c[w>>2];c[x>>2]=(d[c[v>>2]>>0]|0)>>6;c[y>>2]=(d[c[v>>2]>>0]|0)>>4&3;c[z>>2]=(d[c[v>>2]>>0]|0)>>2&3;c[v>>2]=(c[v>>2]|0)+1;if((c[v>>2]|0)>>>0>((c[u>>2]|0)+-3|0)>>>0){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}c[A>>2]=gu(c[n>>2]|0,c[x>>2]|0,35,9,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,6560,6,c[q>>2]|0)|0;if(jr(c[A>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}c[v>>2]=(c[v>>2]|0)+(c[A>>2]|0);c[B>>2]=gu(c[p>>2]|0,c[y>>2]|0,28,8,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,6640,5,c[q>>2]|0)|0;if(jr(c[B>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}c[v>>2]=(c[v>>2]|0)+(c[B>>2]|0);c[C>>2]=gu(c[o>>2]|0,c[z>>2]|0,52,9,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,6704,6,c[q>>2]|0)|0;if(jr(c[C>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}else{c[v>>2]=(c[v>>2]|0)+(c[C>>2]|0);c[k>>2]=(c[v>>2]|0)-(c[t>>2]|0);D=c[k>>2]|0;l=j;return D|0;}return 0;}function St(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}f=(c[k>>2]|0)>>>0>=4;c[(c[i>>2]|0)+12>>2]=c[j>>2];do{if(f){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;e=eu(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=e;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0){e=8-(fu(d[m>>0]|0)|0)|0;c[(c[i>>2]|0)+4>>2]=e;break;}c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);p=9;break;}case 6:{p=9;break;}case 5:{p=10;break;}case 4:{p=11;break;}case 3:{p=12;break;}case 2:{p=13;break;}default:{}}if((p|0)==9){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);p=10;}if((p|0)==10){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);p=11;}if((p|0)==11){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);p=12;}if((p|0)==12){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);p=13;}if((p|0)==13){e=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0){e=8-(fu(d[n>>0]|0)|0)|0;c[(c[i>>2]|0)+4>>2]=e;e=(c[i>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function Tt(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[i>>2];c[k>>2]=c[j>>2];j=$t(c[h>>2]|0,e[c[k>>2]>>1]|0)|0;c[c[g>>2]>>2]=j;Ut(c[h>>2]|0)|0;c[(c[g>>2]|0)+4>>2]=(c[i>>2]|0)+4;l=f;return;}function Ut(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=((c[(c[e>>2]|0)+12>>2]|0)+4|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=eu(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=eu(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function Vt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=l;l=l+48|0;e=d+40|0;f=d+36|0;g=d+32|0;h=d+28|0;i=d+24|0;j=d+20|0;k=d+16|0;m=d+12|0;n=d+8|0;o=d+4|0;p=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(_t((c[f>>2]|0)+16|0)|0)&255;c[h>>2]=(_t((c[f>>2]|0)+32|0)|0)&255;c[i>>2]=(_t((c[f>>2]|0)+24|0)|0)&255;c[j>>2]=c[5696+(c[g>>2]<<2)>>2];c[k>>2]=c[5840+(c[h>>2]<<2)>>2];c[m>>2]=c[i>>2];c[n>>2]=(c[j>>2]|0)+(c[k>>2]|0)+(c[m>>2]|0);if(c[i>>2]|0){b=c[6064+(c[i>>2]<<2)>>2]|0;c[o>>2]=b+($t(c[f>>2]|0,c[m>>2]|0)|0);if(au()|0)Ut(c[f>>2]|0)|0;}else c[o>>2]=0;do{if((c[o>>2]|0)>>>0<3){if((c[g>>2]|0)==0&(c[o>>2]|0)>>>0<=1)c[o>>2]=1-(c[o>>2]|0);m=(c[f>>2]|0)+40|0;if(!(c[o>>2]|0)){c[o>>2]=c[m>>2];break;}c[p>>2]=c[m+(c[o>>2]<<2)>>2];if((c[o>>2]|0)!=1)c[(c[f>>2]|0)+40+8>>2]=c[(c[f>>2]|0)+40+4>>2];c[(c[f>>2]|0)+40+4>>2]=c[(c[f>>2]|0)+40>>2];m=c[p>>2]|0;c[o>>2]=m;c[(c[f>>2]|0)+40>>2]=m;}else{c[o>>2]=(c[o>>2]|0)-2;c[(c[f>>2]|0)+40+8>>2]=c[(c[f>>2]|0)+40+4>>2];c[(c[f>>2]|0)+40+4>>2]=c[(c[f>>2]|0)+40>>2];c[(c[f>>2]|0)+40>>2]=c[o>>2];}}while(0);c[(c[e>>2]|0)+8>>2]=c[o>>2];o=(c[6192+(c[h>>2]<<2)>>2]|0)+3|0;if((c[h>>2]|0)>>>0>31)q=$t(c[f>>2]|0,c[k>>2]|0)|0;else q=0;c[(c[e>>2]|0)+4>>2]=o+q;if(au()|0?((c[k>>2]|0)+(c[j>>2]|0)|0)>>>0>24:0)Ut(c[f>>2]|0)|0;k=c[6416+(c[g>>2]<<2)>>2]|0;if((c[g>>2]|0)>>>0>15)r=$t(c[f>>2]|0,c[j>>2]|0)|0;else r=0;c[c[e>>2]>>2]=k+r;r=(au()|0)!=0;if(r|(c[n>>2]|0)>>>0>31)Ut(c[f>>2]|0)|0;bu((c[f>>2]|0)+16|0,c[f>>2]|0);bu((c[f>>2]|0)+32|0,c[f>>2]|0);if(!(au()|0)){s=c[f>>2]|0;t=s+24|0;u=c[f>>2]|0;bu(t,u);l=d;return;}Ut(c[f>>2]|0)|0;s=c[f>>2]|0;t=s+24|0;u=c[f>>2]|0;bu(t,u);l=d;return;}function Wt(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=l;l=l+64|0;m=k+60|0;n=k+56|0;o=k+52|0;p=k+48|0;q=k+44|0;r=k+40|0;s=k+36|0;t=k+32|0;u=k+28|0;v=k+24|0;w=k+20|0;x=k+16|0;y=k+12|0;z=k+8|0;A=k+4|0;B=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+4>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+8>>2]|0));if((c[u>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}Xt(c[n>>2]|0,c[c[p>>2]>>2]|0,c[e>>2]|0);c[n>>2]=c[u>>2];c[c[p>>2]>>2]=c[y>>2];do{if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+4>>2]|0)|0)>>>0<=(c[t>>2]|0)>>>0){nE(c[u>>2]|0,c[z>>2]|0,c[e+4>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);y=e+4|0;c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];if((c[n>>2]|0)>>>0<=(c[x>>2]|0)>>>0?(c[e+4>>2]|0)>>>0>=3:0)break;while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;y=c[z>>2]|0;c[z>>2]=y+1;p=a[y>>0]|0;y=c[n>>2]|0;c[n>>2]=y+1;a[y>>0]=p;}c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}}while(0);if((c[e+8>>2]|0)>>>0<8){c[B>>2]=c[6816+(c[e+8>>2]<<2)>>2];a[c[n>>2]>>0]=a[c[z>>2]>>0]|0;a[(c[n>>2]|0)+1>>0]=a[(c[z>>2]|0)+1>>0]|0;a[(c[n>>2]|0)+2>>0]=a[(c[z>>2]|0)+2>>0]|0;a[(c[n>>2]|0)+3>>0]=a[(c[z>>2]|0)+3>>0]|0;c[z>>2]=(c[z>>2]|0)+(c[6848+(c[e+8>>2]<<2)>>2]|0);Yt((c[n>>2]|0)+4|0,c[z>>2]|0);c[z>>2]=(c[z>>2]|0)+(0-(c[B>>2]|0));}else Zt(c[n>>2]|0,c[z>>2]|0);c[n>>2]=(c[n>>2]|0)+8;c[z>>2]=(c[z>>2]|0)+8;B=c[n>>2]|0;a:do{if((c[w>>2]|0)>>>0>((c[o>>2]|0)+-13|0)>>>0){if(B>>>0<(c[x>>2]|0)>>>0){Xt(c[n>>2]|0,c[z>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);c[z>>2]=(c[z>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;r=c[z>>2]|0;c[z>>2]=r+1;A=a[r>>0]|0;r=c[n>>2]|0;c[n>>2]=r+1;a[r>>0]=A;}}else Xt(B,c[z>>2]|0,(c[e+4>>2]|0)-8|0);}while(0);c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}function Xt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Zt(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Yt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function Zt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function _t(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=(c[(c[f>>2]|0)+4>>2]|0)+(c[c[f>>2]>>2]<<2)|0;b[g>>1]=b[d>>1]|0;b[g+2>>1]=b[d+2>>1]|0;l=e;return a[g+2>>0]|0;}function $t(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=cu(c[e>>2]|0,c[f>>2]|0)|0;du(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function au(){return 1;}function bu(a,f){a=a|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+16|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=f;f=(c[(c[h>>2]|0)+4>>2]|0)+(c[c[h>>2]>>2]<<2)|0;b[j>>1]=b[f>>1]|0;b[j+2>>1]=b[f+2>>1]|0;c[k>>2]=d[j+3>>0];c[m>>2]=$t(c[i>>2]|0,c[k>>2]|0)|0;c[c[h>>2]>>2]=(e[j>>1]|0)+(c[m>>2]|0);l=g;return;}function cu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function du(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function eu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(au()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=Mq(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=Pq(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function fu(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function gu(b,e,f,g,h,i,j,k,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;n=l;l=l+160|0;o=n+152|0;p=n+148|0;q=n+144|0;r=n+140|0;s=n+136|0;t=n+132|0;u=n+128|0;v=n+124|0;w=n+120|0;x=n+116|0;y=n+112|0;z=n;A=n+108|0;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=k;c[x>>2]=m;a:do{switch(c[q>>2]|0){case 1:{if(!(c[u>>2]|0)){c[o>>2]=-72;break a;}if((d[c[t>>2]>>0]|0)>>>0>(c[r>>2]|0)>>>0){c[o>>2]=-20;break a;}else{hu(c[p>>2]|0,a[c[t>>2]>>0]|0)|0;c[o>>2]=1;break a;}break;}case 0:{iu(c[p>>2]|0,c[v>>2]|0,c[r>>2]|0,c[w>>2]|0)|0;c[o>>2]=0;break;}case 2:{if(c[x>>2]|0){c[o>>2]=0;break a;}else{c[o>>2]=-20;break a;}break;}default:{c[A>>2]=ju(z,r,y,c[t>>2]|0,c[u>>2]|0)|0;if(jr(c[A>>2]|0)|0){c[o>>2]=-20;break a;}if((c[y>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break a;}else{iu(c[p>>2]|0,z,c[r>>2]|0,c[y>>2]|0)|0;c[o>>2]=c[A>>2];break a;}}}}while(0);l=n;return c[o>>2]|0;}function hu(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+20|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=d;a[h>>0]=e;c[i>>2]=c[g>>2];c[j>>2]=c[i>>2];c[k>>2]=(c[g>>2]|0)+4;c[m>>2]=c[k>>2];b[c[j>>2]>>1]=0;b[(c[j>>2]|0)+2>>1]=0;b[c[m>>2]>>1]=0;a[(c[m>>2]|0)+2>>0]=a[h>>0]|0;a[(c[m>>2]|0)+3>>0]=0;l=f;return 0;}function iu(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,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=l;l=l+592|0;k=j+576|0;m=j+572|0;n=j+568|0;o=j+564|0;p=j+560|0;q=j+556|0;r=j+552|0;s=j;t=j+548|0;u=j+544|0;v=j+540|0;w=j+584|0;x=j+582|0;y=j+536|0;z=j+532|0;A=j+528|0;B=j+524|0;C=j+520|0;D=j+516|0;E=j+512|0;F=j+588|0;G=j+580|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[q>>2]=(c[m>>2]|0)+4;c[r>>2]=c[q>>2];c[t>>2]=(c[o>>2]|0)+1;c[u>>2]=1<>2];c[v>>2]=(c[u>>2]|0)-1;if((c[o>>2]|0)>>>0>255){c[k>>2]=-46;H=c[k>>2]|0;l=j;return H|0;}if((c[p>>2]|0)>>>0>12){c[k>>2]=-44;H=c[k>>2]|0;l=j;return H|0;}b[w>>1]=c[p>>2];b[w+2>>1]=1;b[x>>1]=1<<(c[p>>2]|0)-1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0)==-1){o=c[y>>2]&255;q=c[r>>2]|0;i=c[v>>2]|0;c[v>>2]=i+-1;a[q+(i<<2)+2>>0]=o;b[s+(c[y>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0)>=(b[x>>1]|0))b[w+2>>1]=0;b[s+(c[y>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[y>>2]<<1)>>1]|0;}c[y>>2]=(c[y>>2]|0)+1;}y=c[m>>2]|0;b[y>>1]=b[w>>1]|0;b[y+2>>1]=b[w+2>>1]|0;c[z>>2]=(c[u>>2]|0)-1;c[A>>2]=((c[u>>2]|0)>>>1)+((c[u>>2]|0)>>>3)+3;c[C>>2]=0;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[D>>2]=0;while(1){I=c[B>>2]|0;if((c[D>>2]|0)>=(b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0))break;a[(c[r>>2]|0)+(c[C>>2]<<2)+2>>0]=I;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0)&c[z>>2];while(1){if((c[C>>2]|0)>>>0<=(c[v>>2]|0)>>>0)break;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0)&c[z>>2];}c[D>>2]=(c[D>>2]|0)+1;}c[B>>2]=I+1;}if(c[C>>2]|0){c[k>>2]=-1;H=c[k>>2]|0;l=j;return H|0;}c[E>>2]=0;while(1){if((c[E>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;a[F>>0]=a[(c[r>>2]|0)+(c[E>>2]<<2)+2>>0]|0;C=s+(d[F>>0]<<1)|0;I=b[C>>1]|0;b[C>>1]=I+1<<16>>16;b[G>>1]=I;I=c[p>>2]|0;C=I-(fu(e[G>>1]|0)|0)&255;a[(c[r>>2]|0)+(c[E>>2]<<2)+3>>0]=C;b[(c[r>>2]|0)+(c[E>>2]<<2)>>1]=(e[G>>1]<>2]|0)+(c[E>>2]<<2)+3>>0])-(c[u>>2]|0);c[E>>2]=(c[E>>2]|0)+1;}c[k>>2]=0;H=c[k>>2]|0;l=j;return H|0;}function ju(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;A=h+70|0;B=h+68|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=Mq(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<>2])+1;c[u>>2]=1<>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if((c[t>>2]|0)<=1)break;if((c[x>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0)break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=Mq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=19;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[m+(n<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;n=Mq(c[r>>2]|0)|0;c[v>>2]=n>>>(c[w>>2]|0);}}while(0);b[A>>1]=(c[u>>2]<<1)-1-(c[t>>2]|0);n=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(b[A>>1]|0)>>>0){b[B>>1]=n&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{b[B>>1]=n&(m<<1)-1;if((b[B>>1]|0)>=(c[u>>2]|0))b[B>>1]=(b[B>>1]|0)-(b[A>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}b[B>>1]=(b[B>>1]|0)+-1<<16>>16;m=(ku(b[B>>1]|0)|0)<<16>>16;c[t>>2]=(c[t>>2]|0)-m;m=b[B>>1]|0;n=c[j>>2]|0;g=c[x>>2]|0;c[x>>2]=g+1;b[n+(g<<1)>>1]=m;c[y>>2]=((b[B>>1]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=Mq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==19){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-1;C=c[i>>2]|0;l=h;return C|0;}c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);if(((c[r>>2]|0)-(c[p>>2]|0)|0)>>>0>(c[o>>2]|0)>>>0){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}else{c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function ku(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=a;a=b[d>>1]|0;l=c;return((b[d>>1]|0)<0?0-a|0:a)&65535|0;}function lu(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=Ju(n,c[k>>2]|0,c[m>>2]|0)|0;k=(ou(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=Nu(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function mu(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+44|0;i=g+40|0;j=g+36|0;k=g+32|0;m=g+28|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;if(!(c[j>>2]|0)){c[h>>2]=-70;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)>>>0>(c[j>>2]|0)>>>0){c[h>>2]=-20;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==(c[j>>2]|0)){mE(c[i>>2]|0,c[k>>2]|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==1){oE(c[i>>2]|0,(d[c[k>>2]>>0]|0)&255|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}c[o>>2]=(c[m>>2]<<4>>>0)/((c[j>>2]|0)>>>0)|0;c[p>>2]=(c[j>>2]|0)>>>8;c[q>>2]=0;while(1){if((c[q>>2]|0)>>>0>=3)break;f=(c[7008+((c[o>>2]|0)*24|0)+(c[q>>2]<<3)>>2]|0)+(N(c[7008+((c[o>>2]|0)*24|0)+(c[q>>2]<<3)+4>>2]|0,c[p>>2]|0)|0)|0;c[n+(c[q>>2]<<2)>>2]=f;c[q>>2]=(c[q>>2]|0)+1;}q=n+4|0;c[q>>2]=(c[q>>2]|0)+((c[n+4>>2]|0)>>>4);q=n+8|0;c[q>>2]=(c[q>>2]|0)+((c[n+8>>2]|0)>>>3);c[r>>2]=0;c[r>>2]=(c[n+4>>2]|0)>>>0<(c[n>>2]|0)>>>0?1:0;c[h>>2]=sc[c[11964+(c[r>>2]<<2)>>2]&15](c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;s=c[h>>2]|0;l=g;return s|0;}function nu(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=l;l=l+80|0;h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;m=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+8|0;v=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[c[n>>2]>>2];c[s>>2]=c[n>>2];c[t>>2]=(c[s>>2]|0)+4;c[v>>2]=St(u,c[o>>2]|0,c[m>>2]|0)|0;if(ou(c[v>>2]|0)|0){c[h>>2]=c[v>>2];w=c[h>>2]|0;l=g;return w|0;}pu(c[p>>2]|0,u,c[q>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;if(qu(u)|0){c[h>>2]=c[j>>2];w=c[h>>2]|0;l=g;return w|0;}else{c[h>>2]=-20;w=c[h>>2]|0;l=g;return w|0;}return 0;}function ou(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=jr(c[d>>2]|0)|0;l=b;return a|0;}function pu(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[h>>2];while(1){if(Ut(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>=((c[j>>2]|0)+-7|0)>>>0)break;if(ru()|0){f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}ru()|0;f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;if(ru()|0){f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){if(Ut(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=su(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){o=c[h>>2]|0;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=su(o,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}if(o>>>0>=(c[j>>2]|0)>>>0){p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}j=tu(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+j;p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}function qu(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function ru(){return 0;}function su(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=uu(c[j>>2]|0,c[m>>2]|0)|0;m=c[i>>2]|0;i=(c[k>>2]|0)+(c[n>>2]<<2)|0;a[m>>0]=a[i>>0]|0;a[m+1>>0]=a[i+1>>0]|0;du(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0;}function tu(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=uu(c[j>>2]|0,c[m>>2]|0)|0;a[c[i>>2]>>0]=a[(c[k>>2]|0)+(c[n>>2]<<2)>>0]|0;i=c[j>>2]|0;if((d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0)==1){du(i,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return 1;}if((c[i+4>>2]|0)>>>0>=32){l=h;return 1;}du(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);if((c[(c[j>>2]|0)+4>>2]|0)>>>0<=32){l=h;return 1;}c[(c[j>>2]|0)+4>>2]=32;l=h;return 1;}function uu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function vu(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=Ju(n,c[k>>2]|0,c[m>>2]|0)|0;k=(ou(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=Ku(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function wu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+16416|0;g=f+16412|0;h=f+16408|0;i=f+16404|0;j=f+16400|0;k=f+16396|0;m=f;n=f+16392|0;o=f+16388|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;oE(m|0,0,16388)|0;c[m>>2]=12;c[n>>2]=c[j>>2];c[o>>2]=xu(m,c[j>>2]|0,c[k>>2]|0)|0;j=(ou(c[o>>2]|0)|0)!=0;e=c[o>>2]|0;if(j){c[g>>2]=e;p=c[g>>2]|0;l=f;return p|0;}if(e>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;p=c[g>>2]|0;l=f;return p|0;}else{c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[g>>2]=yu(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,m)|0;p=c[g>>2]|0;l=f;return p|0;}return 0;}function xu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,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;g=l;l=l+2128|0;h=g+2124|0;i=g+2120|0;j=g+2116|0;k=g+2112|0;m=g+1760|0;n=g+1248|0;o=g+1168|0;p=g+1088|0;q=g+2108|0;r=g;s=g+2104|0;t=g+2100|0;u=g+2096|0;v=g+2092|0;w=g+2088|0;x=g+2084|0;y=g+2080|0;z=g+2076|0;A=g+2072|0;B=g+2068|0;C=g+2064|0;D=g+2060|0;E=g+2056|0;F=g+2052|0;G=g+2048|0;H=g+2044|0;I=g+2040|0;J=g+2036|0;K=g+2032|0;L=g+2028|0;M=g+2024|0;N=g+2020|0;O=g+2016|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=o;e=f+68|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));f=p;e=f+72|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));c[q>>2]=p+4;c[w>>2]=c[c[i>>2]>>2];c[y>>2]=c[i>>2];c[z>>2]=(c[y>>2]|0)+4;if((c[w>>2]|0)>>>0>16){c[h>>2]=-44;P=c[h>>2]|0;l=g;return P|0;}c[x>>2]=zu(m,256,o,v,s,c[j>>2]|0,c[k>>2]|0)|0;if(ou(c[x>>2]|0)|0){c[h>>2]=c[x>>2];P=c[h>>2]|0;l=g;return P|0;}if((c[s>>2]|0)>>>0>(c[w>>2]|0)>>>0){c[h>>2]=-44;P=c[h>>2]|0;l=g;return P|0;}c[t>>2]=c[s>>2];while(1){if(c[o+(c[t>>2]<<2)>>2]|0)break;c[t>>2]=(c[t>>2]|0)+-1;}c[B>>2]=0;c[A>>2]=1;while(1){Q=c[B>>2]|0;if((c[A>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[C>>2]=Q;c[B>>2]=(c[B>>2]|0)+(c[o+(c[A>>2]<<2)>>2]|0);c[(c[q>>2]|0)+(c[A>>2]<<2)>>2]=c[C>>2];c[A>>2]=(c[A>>2]|0)+1;}c[c[q>>2]>>2]=Q;c[u>>2]=c[B>>2];c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[E>>2]=d[m+(c[D>>2]|0)>>0];B=(c[q>>2]|0)+(c[E>>2]<<2)|0;Q=c[B>>2]|0;c[B>>2]=Q+1;c[F>>2]=Q;a[n+(c[F>>2]<<1)>>0]=c[D>>2];a[n+(c[F>>2]<<1)+1>>0]=c[E>>2];c[D>>2]=(c[D>>2]|0)+1;}c[c[q>>2]>>2]=0;c[G>>2]=r;c[H>>2]=(c[w>>2]|0)-(c[s>>2]|0)-1;c[I>>2]=0;c[J>>2]=1;while(1){if((c[J>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[K>>2]=c[I>>2];c[I>>2]=(c[I>>2]|0)+(c[o+(c[J>>2]<<2)>>2]<<(c[J>>2]|0)+(c[H>>2]|0));c[(c[G>>2]|0)+(c[J>>2]<<2)>>2]=c[K>>2];c[J>>2]=(c[J>>2]|0)+1;}c[L>>2]=(c[s>>2]|0)+1-(c[t>>2]|0);c[M>>2]=c[L>>2];while(1){if((c[M>>2]|0)>>>0>=((c[w>>2]|0)-(c[L>>2]|0)+1|0)>>>0)break;c[N>>2]=r+((c[M>>2]|0)*68|0);c[O>>2]=1;while(1){if((c[O>>2]|0)>>>0>=((c[t>>2]|0)+1|0)>>>0)break;c[(c[N>>2]|0)+(c[O>>2]<<2)>>2]=(c[(c[G>>2]|0)+(c[O>>2]<<2)>>2]|0)>>>(c[M>>2]|0);c[O>>2]=(c[O>>2]|0)+1;}c[M>>2]=(c[M>>2]|0)+1;}Au(c[z>>2]|0,c[w>>2]|0,n,c[u>>2]|0,p,r,c[t>>2]|0,(c[s>>2]|0)+1|0);c[h>>2]=c[x>>2];P=c[h>>2]|0;l=g;return P|0;}function yu(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,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;g=l;l=l+192|0;h=g+184|0;i=g+180|0;j=g+176|0;k=g+172|0;m=g+168|0;n=g+164|0;o=g+160|0;p=g+156|0;q=g+152|0;r=g+148|0;s=g+144|0;t=g+140|0;u=g+136|0;v=g+120|0;w=g+104|0;x=g+88|0;y=g+72|0;z=g+64|0;A=g+60|0;B=g+56|0;C=g+52|0;D=g+48|0;E=g+44|0;F=g+40|0;G=g+36|0;H=g+32|0;I=g+28|0;J=g+24|0;K=g+20|0;L=g+16|0;M=g+12|0;N=g+8|0;O=g+4|0;P=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[m>>2]|0)>>>0<10){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+4;c[t>>2]=c[c[n>>2]>>2];c[z>>2]=(Oq(c[o>>2]|0)|0)&65535;c[A>>2]=(Oq((c[o>>2]|0)+2|0)|0)&65535;c[B>>2]=(Oq((c[o>>2]|0)+4|0)|0)&65535;c[D>>2]=(c[o>>2]|0)+6;c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(((c[j>>2]|0)+3|0)>>>0)/4|0;c[I>>2]=(c[p>>2]|0)+(c[H>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[H>>2]|0);c[K>>2]=(c[J>>2]|0)+(c[H>>2]|0);c[L>>2]=c[p>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];c[O>>2]=c[K>>2];c[C>>2]=(c[m>>2]|0)-((c[z>>2]|0)+(c[A>>2]|0)+(c[B>>2]|0)+6);if((c[C>>2]|0)>>>0>(c[m>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=St(v,c[D>>2]|0,c[z>>2]|0)|0;if(ou(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=St(w,c[E>>2]|0,c[A>>2]|0)|0;if(ou(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=St(x,c[F>>2]|0,c[B>>2]|0)|0;if(ou(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=St(y,c[G>>2]|0,c[C>>2]|0)|0;if(ou(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}u=Ut(v)|0;C=u|(Ut(w)|0);u=C|(Ut(x)|0);c[P>>2]=u|(Ut(y)|0);while(1){if(c[P>>2]|0)break;if((c[O>>2]|0)>>>0>=((c[q>>2]|0)+-7|0)>>>0)break;if(ru()|0){u=su(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if(ru()|0){u=su(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if(ru()|0){u=su(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if(ru()|0){u=su(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}ru()|0;u=su(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;ru()|0;u=su(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;ru()|0;u=su(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;ru()|0;u=su(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;if(ru()|0){u=su(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if(ru()|0){u=su(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if(ru()|0){u=su(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if(ru()|0){u=su(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}u=su(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;u=su(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;u=su(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;u=su(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;u=Ut(v)|0;C=u|(Ut(w)|0);u=C|(Ut(x)|0);c[P>>2]=u|(Ut(y)|0);}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}pu(c[L>>2]|0,v,c[I>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;pu(c[M>>2]|0,w,c[J>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;pu(c[N>>2]|0,x,c[K>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;pu(c[O>>2]|0,y,c[q>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;t=qu(v)|0;v=t&(qu(w)|0);w=v&(qu(x)|0);c[P>>2]=w&(qu(y)|0);if(c[P>>2]|0){c[h>>2]=c[j>>2];Q=c[h>>2]|0;l=g;return Q|0;}else{c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}return 0;}function zu(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;k=l;l=l+80|0;m=k+72|0;n=k+68|0;o=k+64|0;p=k+60|0;q=k+56|0;r=k+52|0;s=k+48|0;t=k+44|0;u=k+40|0;v=k+36|0;w=k+32|0;x=k+28|0;y=k+24|0;z=k+20|0;A=k+16|0;B=k+12|0;C=k+8|0;D=k+4|0;E=k;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[v>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}c[w>>2]=d[c[v>>2]>>0];s=c[w>>2]|0;a:do{if((c[w>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}c[x>>2]=Eu(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[v>>2]|0)+1|0,c[w>>2]|0)|0;if(jr(c[x>>2]|0)|0){c[m>>2]=c[x>>2];F=c[m>>2]|0;l=k;return F|0;}}else{j=c[w>>2]|0;if(s>>>0>=242){c[x>>2]=c[7392+(j-242<<2)>>2];oE(c[n>>2]|0,1,c[o>>2]|0)|0;c[w>>2]=0;break;}c[x>>2]=j-127;c[w>>2]=(((c[x>>2]|0)+1|0)>>>0)/2|0;if(((c[w>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;F=c[m>>2]|0;l=k;return F|0;}if((c[x>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[v>>2]=(c[v>>2]|0)+1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[y>>2]|0)+1)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)&15;c[y>>2]=(c[y>>2]|0)+2;}}}while(0);y=c[p>>2]|0;v=y+68|0;do{c[y>>2]=0;y=y+4|0;}while((y|0)<(v|0));c[u>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0|0)>=16){G=20;break;}y=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)<<2)|0;c[y>>2]=(c[y>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)>>1);c[z>>2]=(c[z>>2]|0)+1;}if((G|0)==20){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[A>>2]=(fu(c[u>>2]|0)|0)+1;if((c[A>>2]|0)>>>0>16){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}c[c[r>>2]>>2]=c[A>>2];c[B>>2]=1<>2];c[C>>2]=(c[B>>2]|0)-(c[u>>2]|0);c[D>>2]=1<<(fu(c[C>>2]|0)|0);c[E>>2]=(fu(c[C>>2]|0)|0)+1;if((c[D>>2]|0)!=(c[C>>2]|0)){c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}a[(c[n>>2]|0)+(c[x>>2]|0)>>0]=c[E>>2];n=(c[p>>2]|0)+(c[E>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[x>>2]|0)+1;c[m>>2]=(c[w>>2]|0)+1;F=c[m>>2]|0;l=k;return F|0;}c[m>>2]=-20;F=c[m>>2]|0;l=k;return F|0;}function Au(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+160|0;o=n+140|0;p=n+136|0;q=n+132|0;r=n+128|0;s=n+124|0;t=n+120|0;u=n+116|0;v=n+112|0;w=n;x=n+108|0;y=n+104|0;z=n+100|0;A=n+148|0;B=n+96|0;C=n+92|0;D=n+88|0;E=n+84|0;F=n+80|0;G=n+76|0;H=n+144|0;I=n+72|0;J=n+68|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+68|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];Bu((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*68|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{Cu(H,b[A>>1]|0);a[H+2>>0]=c[C>>2];a[H+3>>0]=1;c[J>>2]=(c[D>>2]|0)+(c[E>>2]|0);c[I>>2]=c[D>>2];while(1){if((c[I>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[I>>2]<<2)|0;b[m>>1]=b[H>>1]|0;b[m+2>>1]=b[H+2>>1]|0;c[I>>2]=(c[I>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function Bu(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+160|0;q=p+136|0;r=p+132|0;s=p+128|0;t=p+124|0;u=p+120|0;v=p+116|0;w=p+112|0;x=p+108|0;y=p+144|0;z=p+140|0;A=p;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+68|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[C>>2]=c[A+(c[u>>2]<<2)>>2];Cu(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[C>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[B>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[B>>2]=(c[B>>2]|0)+1;}}}while(0);c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);Cu(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{B=c[q>>2]|0;C=c[J>>2]|0;c[J>>2]=C+1;u=B+(C<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}l=p;return;}function Cu(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Qq()|0)!=0;d=c[h>>2]|0;if(f){Du(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function Du(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=c[g>>2]|0;a[e>>0]=a[h>>0]|0;a[e+1>>0]=a[h+1>>0]|0;l=f;return;}function Eu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+16960|0;g=f+16952|0;h=f+16948|0;i=f+16944|0;j=f+16940|0;k=f+16936|0;m=f+16932|0;n=f+16928|0;o=f+16400|0;p=f;q=f+16924|0;r=f+16920|0;s=f+16916|0;t=f+16912|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=c[m>>2];c[r>>2]=255;if((c[k>>2]|0)>>>0<2){c[g>>2]=-72;u=c[g>>2]|0;l=f;return u|0;}c[s>>2]=ju(o,r,q,c[m>>2]|0,c[k>>2]|0)|0;m=(jr(c[s>>2]|0)|0)!=0;j=c[s>>2]|0;if(m){c[g>>2]=j;u=c[g>>2]|0;l=f;return u|0;}if(j>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;u=c[g>>2]|0;l=f;return u|0;}c[n>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0);c[t>>2]=iu(p,o,c[r>>2]|0,c[q>>2]|0)|0;if(jr(c[t>>2]|0)|0){c[g>>2]=c[t>>2];u=c[g>>2]|0;l=f;return u|0;}else{c[g>>2]=Fu(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,p)|0;u=c[g>>2]|0;l=f;return u|0;}return 0;}function Fu(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+208|0;j=i+192|0;k=i+188|0;m=i+184|0;n=i+180|0;o=i+176|0;p=i+172|0;q=i+168|0;r=i+164|0;s=i+160|0;t=i+156|0;u=i+152|0;v=i+136|0;w=i+128|0;x=i+120|0;y=i+116|0;z=i+112|0;A=i+108|0;B=i+104|0;C=i+100|0;D=i+96|0;E=i+92|0;F=i+88|0;G=i+84|0;H=i+80|0;I=i+76|0;J=i+72|0;K=i+56|0;L=i+48|0;M=i+40|0;N=i+36|0;O=i+32|0;P=i+28|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[P>>2]=b;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=c[T>>2];c[V>>2]=c[U>>2];c[W>>2]=e[(c[V>>2]|0)+2>>1];V=c[P>>2]|0;P=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;if(c[W>>2]|0){c[A>>2]=V;c[B>>2]=P;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=1;c[G>>2]=c[A>>2];c[H>>2]=c[G>>2];c[I>>2]=(c[H>>2]|0)+(c[B>>2]|0);c[J>>2]=(c[I>>2]|0)+-3;c[N>>2]=St(K,c[C>>2]|0,c[D>>2]|0)|0;do{if(jr(c[N>>2]|0)|0)c[z>>2]=c[N>>2];else{Tt(L,K,c[E>>2]|0);Tt(M,K,c[E>>2]|0);while(1){if(Ut(K)|0)break;if((c[H>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break;if(c[F>>2]|0)X=(Gu(L,K)|0)&255;else X=(Hu(L,K)|0)&255;a[c[H>>2]>>0]=X;if(c[F>>2]|0)Y=(Gu(M,K)|0)&255;else Y=(Hu(M,K)|0)&255;a[(c[H>>2]|0)+1>>0]=Y;if((Ut(K)|0)>>>0>0){Z=14;break;}if(c[F>>2]|0)_=(Gu(L,K)|0)&255;else _=(Hu(L,K)|0)&255;a[(c[H>>2]|0)+2>>0]=_;if(c[F>>2]|0)$=(Gu(M,K)|0)&255;else $=(Hu(M,K)|0)&255;a[(c[H>>2]|0)+3>>0]=$;c[H>>2]=(c[H>>2]|0)+4;}if((Z|0)==14)c[H>>2]=(c[H>>2]|0)+2;while(1){if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=24;break;}if(c[F>>2]|0)aa=(Gu(L,K)|0)&255;else aa=(Hu(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=aa;if((Ut(K)|0)==3){Z=29;break;}if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=34;break;}if(c[F>>2]|0)ba=(Gu(M,K)|0)&255;else ba=(Hu(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ba;if((Ut(K)|0)==3){Z=39;break;}}if((Z|0)==24){c[z>>2]=-70;break;}else if((Z|0)==29){if(c[F>>2]|0)ca=(Gu(M,K)|0)&255;else ca=(Hu(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ca;}else if((Z|0)==34){c[z>>2]=-70;break;}else if((Z|0)==39){if(c[F>>2]|0)da=(Gu(L,K)|0)&255;else da=(Hu(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=da;}c[z>>2]=(c[H>>2]|0)-(c[G>>2]|0);}}while(0);c[O>>2]=c[z>>2];ea=c[O>>2]|0;l=i;return ea|0;}else{c[k>>2]=V;c[m>>2]=P;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=0;c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[s>>2]|0)+(c[m>>2]|0);c[u>>2]=(c[t>>2]|0)+-3;c[y>>2]=St(v,c[n>>2]|0,c[o>>2]|0)|0;do{if(jr(c[y>>2]|0)|0)c[j>>2]=c[y>>2];else{Tt(w,v,c[p>>2]|0);Tt(x,v,c[p>>2]|0);while(1){if(Ut(v)|0)break;if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;if(c[q>>2]|0)fa=(Gu(w,v)|0)&255;else fa=(Hu(w,v)|0)&255;a[c[s>>2]>>0]=fa;if(c[q>>2]|0)ga=(Gu(x,v)|0)&255;else ga=(Hu(x,v)|0)&255;a[(c[s>>2]|0)+1>>0]=ga;if((Ut(v)|0)>>>0>0){Z=58;break;}if(c[q>>2]|0)ha=(Gu(w,v)|0)&255;else ha=(Hu(w,v)|0)&255;a[(c[s>>2]|0)+2>>0]=ha;if(c[q>>2]|0)ia=(Gu(x,v)|0)&255;else ia=(Hu(x,v)|0)&255;a[(c[s>>2]|0)+3>>0]=ia;c[s>>2]=(c[s>>2]|0)+4;}if((Z|0)==58)c[s>>2]=(c[s>>2]|0)+2;while(1){if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=68;break;}if(c[q>>2]|0)ja=(Gu(w,v)|0)&255;else ja=(Hu(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ja;if((Ut(v)|0)==3){Z=73;break;}if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=78;break;}if(c[q>>2]|0)ka=(Gu(x,v)|0)&255;else ka=(Hu(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ka;if((Ut(v)|0)==3){Z=83;break;}}if((Z|0)==68){c[j>>2]=-70;break;}else if((Z|0)==73){if(c[q>>2]|0)la=(Gu(x,v)|0)&255;else la=(Hu(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=la;}else if((Z|0)==78){c[j>>2]=-70;break;}else if((Z|0)==83){if(c[q>>2]|0)ma=(Gu(w,v)|0)&255;else ma=(Hu(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ma;}c[j>>2]=(c[s>>2]|0)-(c[r>>2]|0);}}while(0);c[O>>2]=c[j>>2];ea=c[O>>2]|0;l=i;return ea|0;}return 0;}function Gu(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=Iu(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function Hu(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=$t(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function Iu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=uu(c[e>>2]|0,c[f>>2]|0)|0;du(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Ju(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;i=l;l=l+400|0;j=i+392|0;k=i+388|0;m=i+384|0;n=i+380|0;o=i+80|0;p=i;q=i+376|0;r=i+372|0;s=i+368|0;t=i+364|0;u=i+360|0;v=i+356|0;w=i+352|0;x=i+348|0;y=i+344|0;z=i+340|0;A=i+336|0;B=i+396|0;c[k>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=0;c[s>>2]=0;c[v>>2]=(c[k>>2]|0)+2;c[w>>2]=c[v>>2];c[r>>2]=zu(o,256,p,s,q,c[m>>2]|0,c[n>>2]|0)|0;if(ou(c[r>>2]|0)|0){c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}if((c[q>>2]|0)>>>0>(e[c[k>>2]>>1]|0)>>>0){c[j>>2]=-44;C=c[j>>2]|0;l=i;return C|0;}b[c[k>>2]>>1]=c[q>>2];c[u>>2]=0;c[t>>2]=1;while(1){if((c[t>>2]|0)>>>0>=((c[q>>2]|0)+1|0)>>>0)break;c[x>>2]=c[u>>2];c[u>>2]=(c[u>>2]|0)+(c[p+(c[t>>2]<<2)>>2]<<(c[t>>2]|0)-1);c[p+(c[t>>2]<<2)>>2]=c[x>>2];c[t>>2]=(c[t>>2]|0)+1;}c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[y>>2]=d[o+(c[t>>2]|0)>>0];c[z>>2]=1<>2]>>1;a[B>>0]=c[t>>2];a[B+1>>0]=(c[q>>2]|0)+1-(c[y>>2]|0);c[A>>2]=c[p+(c[y>>2]<<2)>>2];while(1){if((c[A>>2]|0)>>>0>=((c[p+(c[y>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0)break;x=(c[w>>2]|0)+(c[A>>2]<<1)|0;a[x>>0]=a[B>>0]|0;a[x+1>>0]=a[B+1>>0]|0;c[A>>2]=(c[A>>2]|0)+1;}x=p+(c[y>>2]<<2)|0;c[x>>2]=(c[x>>2]|0)+(c[z>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}function Ku(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+192|0;j=i+184|0;k=i+180|0;m=i+176|0;n=i+172|0;o=i+168|0;p=i+164|0;q=i+160|0;r=i+156|0;s=i+152|0;t=i+148|0;u=i+144|0;v=i+140|0;w=i+136|0;x=i+120|0;y=i+104|0;z=i+88|0;A=i+72|0;B=i+64|0;C=i+60|0;D=i+56|0;E=i+52|0;F=i+48|0;G=i+44|0;H=i+40|0;I=i+36|0;J=i+32|0;K=i+28|0;L=i+24|0;M=i+20|0;N=i+16|0;O=i+12|0;P=i+8|0;Q=i+4|0;R=i;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if((c[o>>2]|0)>>>0<10){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[q>>2]=c[n>>2];c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[p>>2];c[u>>2]=(c[t>>2]|0)+2;c[v>>2]=e[c[p>>2]>>1];c[B>>2]=(Oq(c[q>>2]|0)|0)&65535;c[C>>2]=(Oq((c[q>>2]|0)+2|0)|0)&65535;c[D>>2]=(Oq((c[q>>2]|0)+4|0)|0)&65535;c[F>>2]=(c[q>>2]|0)+6;c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(c[G>>2]|0)+(c[C>>2]|0);c[I>>2]=(c[H>>2]|0)+(c[D>>2]|0);c[J>>2]=(((c[m>>2]|0)+3|0)>>>0)/4|0;c[K>>2]=(c[r>>2]|0)+(c[J>>2]|0);c[L>>2]=(c[K>>2]|0)+(c[J>>2]|0);c[M>>2]=(c[L>>2]|0)+(c[J>>2]|0);c[N>>2]=c[r>>2];c[O>>2]=c[K>>2];c[P>>2]=c[L>>2];c[Q>>2]=c[M>>2];c[E>>2]=(c[o>>2]|0)-((c[B>>2]|0)+(c[C>>2]|0)+(c[D>>2]|0)+6);if((c[E>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=St(x,c[F>>2]|0,c[B>>2]|0)|0;if(ou(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=St(y,c[G>>2]|0,c[C>>2]|0)|0;if(ou(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=St(z,c[H>>2]|0,c[D>>2]|0)|0;if(ou(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=St(A,c[I>>2]|0,c[E>>2]|0)|0;if(ou(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}w=Ut(x)|0;E=w|(Ut(y)|0);w=E|(Ut(z)|0);c[R>>2]=w|(Ut(A)|0);while(1){if(c[R>>2]|0)break;if((c[Q>>2]|0)>>>0>=((c[s>>2]|0)+-7|0)>>>0)break;if(ru()|0){w=Lu(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}ru()|0;w=Lu(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;ru()|0;w=Lu(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;ru()|0;w=Lu(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;ru()|0;w=Lu(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;if(ru()|0){w=Lu(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if(ru()|0){w=Lu(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}w=Lu(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;w=Lu(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;w=Lu(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;w=Lu(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;w=Ut(x)|0;E=w|(Ut(y)|0);w=E|(Ut(z)|0);c[R>>2]=w|(Ut(A)|0);}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[O>>2]|0)>>>0>(c[L>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[P>>2]|0)>>>0>(c[M>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}Mu(c[N>>2]|0,x,c[K>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;Mu(c[O>>2]|0,y,c[L>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;Mu(c[P>>2]|0,z,c[M>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;Mu(c[Q>>2]|0,A,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;v=qu(x)|0;x=v&(qu(y)|0);y=x&(qu(z)|0);c[R>>2]=y&(qu(A)|0);if(c[R>>2]|0){c[j>>2]=c[m>>2];S=c[j>>2]|0;l=i;return S|0;}else{c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}return 0;}function Lu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+16|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=uu(c[h>>2]|0,c[j>>2]|0)|0;a[m>>0]=a[(c[i>>2]|0)+(c[k>>2]<<1)>>0]|0;du(c[h>>2]|0,d[(c[i>>2]|0)+(c[k>>2]<<1)+1>>0]|0);l=g;return a[m>>0]|0;}function Mu(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];while(1){if(Ut(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>((c[k>>2]|0)+-4|0)>>>0)break;if(ru()|0){g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}ru()|0;g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;if(ru()|0){g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if(Ut(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=Lu(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}l=h;return(c[k>>2]|0)-(c[o>>2]|0)|0;}function Nu(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+8|0;v=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[j>>2];c[q>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[r>>2]=e[c[o>>2]>>1];c[s>>2]=c[o>>2];c[t>>2]=(c[s>>2]|0)+2;c[v>>2]=St(u,c[m>>2]|0,c[n>>2]|0)|0;if(ou(c[v>>2]|0)|0){c[i>>2]=c[v>>2];w=c[i>>2]|0;l=h;return w|0;}Mu(c[p>>2]|0,u,c[q>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;if(qu(u)|0){c[i>>2]=c[k>>2];w=c[i>>2]|0;l=h;return w|0;}else{c[i>>2]=-20;w=c[i>>2]|0;l=h;return w|0;}return 0;}function Ou(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+21536>>2]=5;c[(c[d>>2]|0)+21564>>2]=0;c[(c[d>>2]|0)+21520>>2]=0;c[(c[d>>2]|0)+21524>>2]=0;c[(c[d>>2]|0)+21528>>2]=0;c[(c[d>>2]|0)+21532>>2]=0;c[(c[d>>2]|0)+5132>>2]=12;c[(c[d>>2]|0)+21568>>2]=0;l=b;return 0;}function Pu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=Mq(c[h>>2]|0)|0;if((c[k>>2]|0)!=-332356554){Qu(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)-4;c[j>>2]=Ru(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[j>>2]|0)|0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}else{c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);Qu(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}return 0;}function Qu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+21532>>2]=c[(c[f>>2]|0)+21520>>2];c[(c[f>>2]|0)+21528>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+21520>>2]|0)-(c[(c[f>>2]|0)+21524>>2]|0)));c[(c[f>>2]|0)+21524>>2]=c[g>>2];c[(c[f>>2]|0)+21520>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Ru(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;e=l;l=l+320|0;f=e+316|0;g=e+312|0;h=e+308|0;i=e+304|0;j=e+300|0;k=e+296|0;m=e+292|0;n=e+288|0;o=e+192|0;p=e+284|0;q=e+280|0;r=e+276|0;s=e+80|0;t=e+272|0;u=e+268|0;v=e+264|0;w=e;x=e+260|0;y=e+256|0;z=e+252|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=xu((c[g>>2]|0)+5132|0,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[j>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);c[p>>2]=28;c[k>>2]=ju(o,p,q,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[k>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}if((c[q>>2]|0)>>>0>8){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[r>>2]=iu((c[g>>2]|0)+2052|0,o,c[p>>2]|0,c[q>>2]|0)|0;if(jr(c[r>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);c[t>>2]=52;c[m>>2]=ju(s,t,u,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[m>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}if((c[u>>2]|0)>>>0>9){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[v>>2]=iu((c[g>>2]|0)+3080|0,s,c[t>>2]|0,c[u>>2]|0)|0;if(jr(c[v>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[m>>2]|0);c[x>>2]=35;c[n>>2]=ju(w,x,y,c[h>>2]|0,c[i>>2]|0)|0;if(jr(c[n>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}if((c[y>>2]|0)>>>0>9){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}c[z>>2]=iu(c[g>>2]|0,w,c[x>>2]|0,c[y>>2]|0)|0;if(jr(c[z>>2]|0)|0){c[f>>2]=-30;A=c[f>>2]|0;l=e;return A|0;}else{c[(c[g>>2]|0)+21568>>2]=1;c[f>>2]=(c[j>>2]|0)+(c[k>>2]|0)+(c[m>>2]|0)+(c[n>>2]|0);A=c[f>>2]|0;l=e;return A|0;}return 0;}function Su(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=dw(c[g>>2]|0)|0;if(mr(c[j>>2]|0)|0){c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}if((c[h>>2]|0)!=0&(c[i>>2]|0)!=0?(c[j>>2]=ew(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0,mr(c[j>>2]|0)|0):0){c[f>>2]=-30;k=c[f>>2]|0;l=e;return k|0;}c[f>>2]=0;k=c[f>>2]|0;l=e;return k|0;}function Tu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+26640>>2]|0)){l=d;return;}c[(c[e>>2]|0)+26652>>2]=c[(c[e>>2]|0)+26640>>2];c[(c[e>>2]|0)+26648>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+26640>>2]|0)-(c[(c[e>>2]|0)+26644>>2]|0)));c[(c[e>>2]|0)+26644>>2]=c[f>>2];c[(c[e>>2]|0)+26640>>2]=c[f>>2];l=d;return;}function Uu(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,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;g=l;l=l+80|0;h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;m=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+16|0;v=g+8|0;w=g+4|0;x=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=(c[o>>2]|0)+(c[n>>2]|0);c[q>>2]=c[j>>2];c[r>>2]=c[q>>2];c[s>>2]=(c[q>>2]|0)+(c[k>>2]|0);c[t>>2]=c[n>>2];if((c[n>>2]|0)>>>0<8){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}c[v>>2]=Vu(c[i>>2]|0,c[m>>2]|0,5)|0;if(mr(c[v>>2]|0)|0){c[h>>2]=c[v>>2];y=c[h>>2]|0;l=g;return y|0;}if((c[n>>2]|0)>>>0<((c[v>>2]|0)+3|0)>>>0){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}c[o>>2]=(c[o>>2]|0)+(c[v>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[v>>2]|0);c[v>>2]=Wu(c[i>>2]|0,c[m>>2]|0,c[v>>2]|0)|0;if(mr(c[v>>2]|0)|0){c[h>>2]=c[v>>2];y=c[h>>2]|0;l=g;return y|0;}a:while(1){c[w>>2]=0;c[x>>2]=lr(c[o>>2]|0,(c[p>>2]|0)-(c[o>>2]|0)|0,u)|0;if(mr(c[x>>2]|0)|0){z=11;break;}c[o>>2]=(c[o>>2]|0)+3;c[t>>2]=(c[t>>2]|0)-3;if((c[x>>2]|0)>>>0>(c[t>>2]|0)>>>0){z=13;break;}switch(c[u>>2]|0){case 2:{z=17;break a;break;}case 0:{c[w>>2]=Xu(c[i>>2]|0,c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[x>>2]|0)|0;break;}case 1:{c[w>>2]=Yu(c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[x>>2]|0)|0;break;}case 3:{if(c[t>>2]|0){z=19;break a;}break;}default:{z=20;break a;}}if(!(c[x>>2]|0)){z=25;break;}v=(mr(c[w>>2]|0)|0)!=0;A=c[w>>2]|0;if(v){z=23;break;}c[r>>2]=(c[r>>2]|0)+A;c[o>>2]=(c[o>>2]|0)+(c[x>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[x>>2]|0);}if((z|0)==11){c[h>>2]=c[x>>2];y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==13){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==17){c[h>>2]=-1;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==19){c[h>>2]=-72;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==20){c[h>>2]=-1;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==23){c[h>>2]=A;y=c[h>>2]|0;l=g;return y|0;}else if((z|0)==25){c[h>>2]=(c[r>>2]|0)-(c[q>>2]|0);y=c[h>>2]|0;l=g;return y|0;}return 0;}function Vu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)!=5){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}c[j>>2]=Wq(c[h>>2]|0)|0;if((c[j>>2]|0)!=-47205083){c[f>>2]=-10;k=c[f>>2]|0;l=e;return k|0;}else{c[(c[g>>2]|0)+26660>>2]=5;c[f>>2]=c[(c[g>>2]|0)+26660>>2];k=c[f>>2]|0;l=e;return k|0;}return 0;}function Wu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)!=(c[(c[g>>2]|0)+26660>>2]|0)){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}c[j>>2]=yq((c[g>>2]|0)+26664|0,c[h>>2]|0,c[i>>2]|0)|0;if(kv()|0?(c[(c[g>>2]|0)+26664+8>>2]|0)>>>0>25:0){c[f>>2]=-14;k=c[f>>2]|0;l=e;return k|0;}c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}function Xu(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];if((c[n>>2]|0)>>>0>=131072){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}c[p>>2]=Zu(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(mr(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+f;c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=_u(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Yu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function Zu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+28|0;s=g+24|0;t=g+20|0;u=g+16|0;v=g+12|0;w=g+8|0;x=g+4|0;y=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<3){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch((d[c[m>>2]>>0]|0)>>6|0){case 0:{c[p>>2]=0;c[q>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[k>>2]|0)>>>0<5){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch(c[q>>2]|0){case 3:{c[q>>2]=5;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<14)+((d[(c[m>>2]|0)+1>>0]|0)<<6)+((d[(c[m>>2]|0)+2>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&3)<<16)+((d[(c[m>>2]|0)+3>>0]|0)<<8)+(d[(c[m>>2]|0)+4>>0]|0);break;}case 2:{c[q>>2]=4;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<10)+((d[(c[m>>2]|0)+1>>0]|0)<<2)+((d[(c[m>>2]|0)+2>>0]|0)>>6);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&63)<<8)+(d[(c[m>>2]|0)+3>>0]|0);break;}default:{c[q>>2]=3;c[p>>2]=(d[c[m>>2]>>0]|0)&16;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);}}if((c[n>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(((c[o>>2]|0)+(c[q>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}j=(c[i>>2]|0)+26724|0;f=c[n>>2]|0;e=(c[m>>2]|0)+(c[q>>2]|0)|0;b=c[o>>2]|0;if(c[p>>2]|0)A=Av(j,f,e,b)|0;else A=Bv(j,f,e,b)|0;if(Cv(A)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+26716>>2]=(c[i>>2]|0)+26724;c[(c[i>>2]|0)+26720>>2]=c[n>>2];n=(c[i>>2]|0)+26724+(c[(c[i>>2]|0)+26720>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=(c[o>>2]|0)+(c[q>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 1:{c[u>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[u>>2]|0)!=1){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(!(c[(c[i>>2]|0)+26712>>2]|0)){c[h>>2]=-30;z=c[h>>2]|0;l=g;return z|0;}c[u>>2]=3;c[s>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[t>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if(((c[t>>2]|0)+(c[u>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}c[r>>2]=Dv((c[i>>2]|0)+26724|0,c[s>>2]|0,(c[m>>2]|0)+(c[u>>2]|0)|0,c[t>>2]|0,(c[i>>2]|0)+10252|0)|0;if(Cv(c[r>>2]|0)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+26716>>2]=(c[i>>2]|0)+26724;c[(c[i>>2]|0)+26720>>2]=c[s>>2];s=(c[i>>2]|0)+26724+(c[(c[i>>2]|0)+26720>>2]|0)|0;a[s>>0]=0;a[s+1>>0]=0;a[s+2>>0]=0;a[s+3>>0]=0;a[s+4>>0]=0;a[s+5>>0]=0;a[s+6>>0]=0;a[s+7>>0]=0;c[h>>2]=(c[t>>2]|0)+(c[u>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[w>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[w>>2]|0){case 3:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);break;}case 2:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[w>>2]=1;c[v>>2]=(d[c[m>>2]>>0]|0)&31;}}if(((c[w>>2]|0)+(c[v>>2]|0)+8|0)>>>0<=(c[k>>2]|0)>>>0){c[(c[i>>2]|0)+26716>>2]=(c[m>>2]|0)+(c[w>>2]|0);c[(c[i>>2]|0)+26720>>2]=c[v>>2];c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}if(((c[v>>2]|0)+(c[w>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{mE((c[i>>2]|0)+26724|0,(c[m>>2]|0)+(c[w>>2]|0)|0,c[v>>2]|0)|0;c[(c[i>>2]|0)+26716>>2]=(c[i>>2]|0)+26724;c[(c[i>>2]|0)+26720>>2]=c[v>>2];u=(c[i>>2]|0)+26724+(c[(c[i>>2]|0)+26720>>2]|0)|0;a[u>>0]=0;a[u+1>>0]=0;a[u+2>>0]=0;a[u+3>>0]=0;a[u+4>>0]=0;a[u+5>>0]=0;a[u+6>>0]=0;a[u+7>>0]=0;c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 3:{c[y>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[y>>2]|0){case 3:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if((c[k>>2]|0)>>>0<4){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[y>>2]=1;c[x>>2]=(d[c[m>>2]>>0]|0)&31;}}if((c[x>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{oE((c[i>>2]|0)+26724|0,(d[(c[m>>2]|0)+(c[y>>2]|0)>>0]|0)&255|0,(c[x>>2]|0)+8|0)|0;c[(c[i>>2]|0)+26716>>2]=(c[i>>2]|0)+26724;c[(c[i>>2]|0)+26720>>2]=c[x>>2];c[h>>2]=(c[y>>2]|0)+1;z=c[h>>2]|0;l=g;return z|0;}break;}default:{}}return 0;}function _u(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,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;g=l;l=l+176|0;h=g+164|0;i=g+160|0;j=g+156|0;k=g+152|0;m=g+148|0;n=g+144|0;o=g+140|0;p=g+136|0;q=g+132|0;r=g+128|0;s=g+124|0;t=g+120|0;u=g+116|0;v=g+112|0;w=g+108|0;x=g+104|0;y=g+100|0;z=g+96|0;A=g+92|0;B=g+88|0;C=g+84|0;D=g+80|0;E=g+76|0;F=g+72|0;G=g+60|0;H=g+8|0;I=g+4|0;J=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[w>>2]=c[(c[j>>2]|0)+26716>>2];c[x>>2]=(c[w>>2]|0)+(c[(c[j>>2]|0)+26720>>2]|0);c[A>>2]=c[j>>2];c[B>>2]=(c[j>>2]|0)+6152;c[C>>2]=(c[j>>2]|0)+4100;c[D>>2]=c[(c[j>>2]|0)+26644>>2];c[E>>2]=c[(c[j>>2]|0)+26648>>2];c[F>>2]=c[(c[j>>2]|0)+26652>>2];c[u>>2]=$u(y,z,v,c[A>>2]|0,c[B>>2]|0,c[C>>2]|0,c[p>>2]|0,c[o>>2]|0,c[(c[j>>2]|0)+26712>>2]|0)|0;j=(mr(c[u>>2]|0)|0)!=0;o=c[u>>2]|0;if(j){c[i>>2]=o;K=c[i>>2]|0;l=g;return K|0;}c[p>>2]=(c[p>>2]|0)+o;if(c[y>>2]|0){c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+8>>2]=1;c[H+44>>2]=c[z>>2];c[H+48>>2]=(c[z>>2]|0)+(c[v>>2]|0);c[H+40>>2]=1;c[u>>2]=av(H,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;if(nr(c[u>>2]|0)|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}bv(H+16|0,H,c[A>>2]|0);bv(H+24|0,H,c[C>>2]|0);bv(H+32|0,H,c[B>>2]|0);while(1){B=(cv(H)|0)>>>0<=2;L=c[y>>2]|0;if(!(B?(c[y>>2]|0)!=0:0))break;c[y>>2]=L+-1;dv(G,H);B=c[s>>2]|0;C=c[t>>2]|0;A=c[x>>2]|0;u=c[D>>2]|0;p=c[E>>2]|0;q=c[F>>2]|0;c[h>>2]=c[G>>2];c[h+4>>2]=c[G+4>>2];c[h+8>>2]=c[G+8>>2];c[I>>2]=ev(B,C,h,w,A,u,p,q)|0;q=(mr(c[I>>2]|0)|0)!=0;M=c[I>>2]|0;if(q){N=9;break;}c[s>>2]=(c[s>>2]|0)+M;}if((N|0)==9){c[i>>2]=M;K=c[i>>2]|0;l=g;return K|0;}if(L|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}}c[J>>2]=(c[x>>2]|0)-(c[w>>2]|0);if((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}if(((c[s>>2]|0)+(c[J>>2]|0)|0)>>>0>(c[t>>2]|0)>>>0){c[i>>2]=-70;K=c[i>>2]|0;l=g;return K|0;}else{mE(c[s>>2]|0,c[w>>2]|0,c[J>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[J>>2]|0);c[i>>2]=(c[s>>2]|0)-(c[r>>2]|0);K=c[i>>2]|0;l=g;return K|0;}return 0;}function $u(b,e,f,g,h,i,j,k,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,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;n=l;l=l+352|0;o=n+348|0;p=n+344|0;q=n+340|0;r=n+336|0;s=n+332|0;t=n+328|0;u=n+324|0;v=n+320|0;w=n+316|0;x=n+312|0;y=n+308|0;z=n+304|0;A=n+300|0;B=n+296|0;C=n+292|0;D=n+288|0;E=n+284|0;F=n+280|0;G=n+276|0;H=n+272|0;I=n;J=n+268|0;K=n+264|0;L=n+260|0;M=n+256|0;c[p>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=k;c[x>>2]=m;c[y>>2]=c[v>>2];c[z>>2]=c[y>>2];c[A>>2]=(c[y>>2]|0)+(c[w>>2]|0);if((c[w>>2]|0)>>>0<1){c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}w=c[z>>2]|0;c[z>>2]=w+1;c[c[p>>2]>>2]=d[w>>0];if(!(c[c[p>>2]>>2]|0)){c[o>>2]=1;N=c[o>>2]|0;l=n;return N|0;}do{if((c[c[p>>2]>>2]|0)>=128){if((c[z>>2]|0)>>>0<(c[A>>2]|0)>>>0){w=(c[c[p>>2]>>2]|0)-128<<8;v=c[z>>2]|0;c[z>>2]=v+1;c[c[p>>2]>>2]=w+(d[v>>0]|0);break;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}}while(0);if((c[z>>2]|0)>>>0>=(c[A>>2]|0)>>>0){c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}c[B>>2]=(d[c[z>>2]>>0]|0)>>6;c[C>>2]=(d[c[z>>2]>>0]|0)>>4&3;c[D>>2]=(d[c[z>>2]>>0]|0)>>2&3;p=c[z>>2]|0;do{if((d[c[z>>2]>>0]|0)&2|0){if((p+3|0)>>>0<=(c[A>>2]|0)>>>0){c[H>>2]=d[(c[z>>2]|0)+2>>0];c[H>>2]=(c[H>>2]|0)+((d[(c[z>>2]|0)+1>>0]|0)<<8);c[z>>2]=(c[z>>2]|0)+3;break;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}else{if((p+2|0)>>>0<=(c[A>>2]|0)>>>0){c[H>>2]=d[(c[z>>2]|0)+1>>0];c[H>>2]=(c[H>>2]|0)+(((d[c[z>>2]>>0]|0)&1)<<8);c[z>>2]=(c[z>>2]|0)+2;break;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}}while(0);c[c[q>>2]>>2]=c[z>>2];c[z>>2]=(c[z>>2]|0)+(c[H>>2]|0);c[c[r>>2]>>2]=c[H>>2];if((c[z>>2]|0)>>>0>((c[A>>2]|0)+-3|0)>>>0){c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}a:do{switch(c[B>>2]|0){case 1:{c[E>>2]=0;H=c[s>>2]|0;r=c[z>>2]|0;c[z>>2]=r+1;tv(H,a[r>>0]|0)|0;break;}case 0:{c[E>>2]=6;uv(c[s>>2]|0,6)|0;break;}case 2:{if(!(c[x>>2]|0)){c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}break;}default:{c[K>>2]=63;c[J>>2]=vv(I,K,E,c[z>>2]|0,(c[A>>2]|0)-(c[z>>2]|0)|0)|0;if(wv(c[J>>2]|0)|0){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0;}if((c[E>>2]|0)>>>0<=10){c[z>>2]=(c[z>>2]|0)+(c[J>>2]|0);xv(c[s>>2]|0,I,c[K>>2]|0,c[E>>2]|0)|0;break a;}c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}}}while(0);b:do{switch(c[C>>2]|0){case 1:{c[F>>2]=0;if((c[z>>2]|0)>>>0<=((c[A>>2]|0)+-2|0)>>>0){E=c[u>>2]|0;K=c[z>>2]|0;c[z>>2]=K+1;tv(E,(d[K>>0]|0)&31)|0;break b;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}case 0:{c[F>>2]=5;uv(c[u>>2]|0,5)|0;break;}case 2:{if(!(c[x>>2]|0)){c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}break;}default:{c[L>>2]=31;c[J>>2]=vv(I,L,F,c[z>>2]|0,(c[A>>2]|0)-(c[z>>2]|0)|0)|0;if(wv(c[J>>2]|0)|0){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0;}if((c[F>>2]|0)>>>0<=9){c[z>>2]=(c[z>>2]|0)+(c[J>>2]|0);xv(c[u>>2]|0,I,c[L>>2]|0,c[F>>2]|0)|0;break b;}c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}}}while(0);c:do{switch(c[D>>2]|0){case 1:{c[G>>2]=0;if((c[z>>2]|0)>>>0<=((c[A>>2]|0)+-2|0)>>>0){F=c[t>>2]|0;L=c[z>>2]|0;c[z>>2]=L+1;tv(F,a[L>>0]|0)|0;break c;}c[o>>2]=-72;N=c[o>>2]|0;l=n;return N|0;}case 0:{c[G>>2]=7;uv(c[t>>2]|0,7)|0;break;}case 2:{if(!(c[x>>2]|0)){c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}break;}default:{c[M>>2]=127;c[J>>2]=vv(I,M,G,c[z>>2]|0,(c[A>>2]|0)-(c[z>>2]|0)|0)|0;if(wv(c[J>>2]|0)|0){c[o>>2]=-1;N=c[o>>2]|0;l=n;return N|0;}if((c[G>>2]|0)>>>0<=10){c[z>>2]=(c[z>>2]|0)+(c[J>>2]|0);xv(c[t>>2]|0,I,c[M>>2]|0,c[G>>2]|0)|0;break c;}c[o>>2]=-20;N=c[o>>2]|0;l=n;return N|0;}}}while(0);c[o>>2]=(c[z>>2]|0)-(c[y>>2]|0);N=c[o>>2]|0;l=n;return N|0;}function av(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if((c[j>>2]|0)>>>0<1){e=c[h>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[g>>2]=-72;n=c[g>>2]|0;l=f;return n|0;}e=(c[j>>2]|0)>>>0>=4;c[(c[h>>2]|0)+12>>2]=c[i>>2];do{if(e){c[(c[h>>2]|0)+8>>2]=(c[i>>2]|0)+(c[j>>2]|0)+-4;b=ov(c[(c[h>>2]|0)+8>>2]|0)|0;c[c[h>>2]>>2]=b;c[k>>2]=d[(c[i>>2]|0)+((c[j>>2]|0)-1)>>0];if(c[k>>2]|0){b=8-(sv(c[k>>2]|0)|0)|0;c[(c[h>>2]|0)+4>>2]=b;break;}c[g>>2]=-1;n=c[g>>2]|0;l=f;return n|0;}else{c[(c[h>>2]|0)+8>>2]=c[(c[h>>2]|0)+12>>2];c[c[h>>2]>>2]=d[c[(c[h>>2]|0)+12>>2]>>0];switch(c[j>>2]|0){case 7:{b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+6>>0]|0)<<16);o=9;break;}case 6:{o=9;break;}case 5:{o=10;break;}case 4:{o=11;break;}case 3:{o=12;break;}case 2:{o=13;break;}default:{}}if((o|0)==9){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+5>>0]|0)<<8);o=10;}if((o|0)==10){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+4>>0]|0)<<0);o=11;}if((o|0)==11){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+3>>0]|0)<<24);o=12;}if((o|0)==12){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+2>>0]|0)<<16);o=13;}if((o|0)==13){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+1>>0]|0)<<8);}c[m>>2]=d[(c[i>>2]|0)+((c[j>>2]|0)-1)>>0];if(c[m>>2]|0){b=8-(sv(c[m>>2]|0)|0)|0;c[(c[h>>2]|0)+4>>2]=b;b=(c[h>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(4-(c[j>>2]|0)<<3);break;}c[g>>2]=-1;n=c[g>>2]|0;l=f;return n|0;}}while(0);c[g>>2]=c[j>>2];n=c[g>>2]|0;l=f;return n|0;}function bv(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[i>>2];c[k>>2]=c[j>>2];j=jv(c[h>>2]|0,e[c[k>>2]>>1]|0)|0;c[c[g>>2]>>2]=j;cv(c[h>>2]|0)|0;c[(c[g>>2]|0)+4>>2]=(c[i>>2]|0)+4;l=f;return;}function cv(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=((c[(c[e>>2]|0)+12>>2]|0)+4|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=ov(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=ov(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function dv(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;e=l;l=l+48|0;f=e+44|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[f>>2]=a;c[g>>2]=b;c[m>>2]=c[(c[g>>2]|0)+44>>2];c[n>>2]=c[(c[g>>2]|0)+48>>2];c[h>>2]=(iv((c[g>>2]|0)+16|0)|0)&255;if(c[h>>2]|0)s=c[(c[f>>2]|0)+8>>2]|0;else s=c[(c[g>>2]|0)+40>>2]|0;c[i>>2]=s;if((c[h>>2]|0)==63){s=c[m>>2]|0;c[m>>2]=s+1;c[o>>2]=d[s>>0];do{if((c[o>>2]|0)>>>0>=255){c[h>>2]=(Wq(c[m>>2]|0)|0)&16777215;s=c[h>>2]|0;if(c[h>>2]&1|0){c[h>>2]=s>>>1;c[m>>2]=(c[m>>2]|0)+3;break;}else{c[h>>2]=(s&65535)>>1;c[m>>2]=(c[m>>2]|0)+2;break;}}else c[h>>2]=(c[h>>2]|0)+(c[o>>2]|0);}while(0);if((c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0)c[h>>2]=318;if((c[m>>2]|0)>>>0>=(c[n>>2]|0)>>>0)c[m>>2]=(c[n>>2]|0)+-1;}c[p>>2]=(iv((c[g>>2]|0)+24|0)|0)&255;o=(c[p>>2]|0)-1|0;c[q>>2]=o;c[q>>2]=(c[p>>2]|0)==0?0:o;o=c[6880+(c[p>>2]<<2)>>2]|0;c[j>>2]=o+(jv(c[g>>2]|0,c[q>>2]|0)|0);if(kv()|0)cv(c[g>>2]|0)|0;if(!(c[p>>2]|0))c[j>>2]=c[i>>2];if(c[p>>2]|((c[h>>2]|0)!=0^1)&1|0)c[(c[g>>2]|0)+40>>2]=c[(c[f>>2]|0)+8>>2];lv((c[g>>2]|0)+24|0,c[g>>2]|0)|0;lv((c[g>>2]|0)+16|0,c[g>>2]|0)|0;if(kv()|0)cv(c[g>>2]|0)|0;c[k>>2]=(lv((c[g>>2]|0)+32|0,c[g>>2]|0)|0)&255;if((c[k>>2]|0)!=127){t=c[k>>2]|0;u=t+4|0;c[k>>2]=u;v=c[h>>2]|0;w=c[f>>2]|0;c[w>>2]=v;x=c[j>>2]|0;y=c[f>>2]|0;z=y+8|0;c[z>>2]=x;A=c[k>>2]|0;B=c[f>>2]|0;C=B+4|0;c[C>>2]=A;D=c[m>>2]|0;E=c[g>>2]|0;F=E+44|0;c[F>>2]=D;l=e;return;}p=c[m>>2]|0;c[m>>2]=p+1;c[r>>2]=d[p>>0];do{if((c[r>>2]|0)>>>0>=255){c[k>>2]=(Wq(c[m>>2]|0)|0)&16777215;p=c[k>>2]|0;if(c[k>>2]&1|0){c[k>>2]=p>>>1;c[m>>2]=(c[m>>2]|0)+3;break;}else{c[k>>2]=(p&65535)>>1;c[m>>2]=(c[m>>2]|0)+2;break;}}else c[k>>2]=(c[k>>2]|0)+(c[r>>2]|0);}while(0);if((c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0)c[k>>2]=382;if((c[m>>2]|0)>>>0<(c[n>>2]|0)>>>0){t=c[k>>2]|0;u=t+4|0;c[k>>2]=u;v=c[h>>2]|0;w=c[f>>2]|0;c[w>>2]=v;x=c[j>>2]|0;y=c[f>>2]|0;z=y+8|0;c[z>>2]=x;A=c[k>>2]|0;B=c[f>>2]|0;C=B+4|0;c[C>>2]=A;D=c[m>>2]|0;E=c[g>>2]|0;F=E+44|0;c[F>>2]=D;l=e;return;}c[m>>2]=(c[n>>2]|0)+-1;t=c[k>>2]|0;u=t+4|0;c[k>>2]=u;v=c[h>>2]|0;w=c[f>>2]|0;c[w>>2]=v;x=c[j>>2]|0;y=c[f>>2]|0;z=y+8|0;c[z>>2]=x;A=c[k>>2]|0;B=c[f>>2]|0;C=B+4|0;c[C>>2]=A;D=c[m>>2]|0;E=c[g>>2]|0;F=E+44|0;c[F>>2]=D;l=e;return;}function ev(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=l;l=l+64|0;m=k+60|0;n=k+56|0;o=k+52|0;p=k+48|0;q=k+44|0;r=k+40|0;s=k+36|0;t=k+32|0;u=k+28|0;v=k+24|0;w=k+20|0;x=k+16|0;y=k+12|0;z=k+8|0;A=k+4|0;B=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+4>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+8>>2]|0));if((c[u>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}fv(c[n>>2]|0,c[c[p>>2]>>2]|0,c[e>>2]|0);c[n>>2]=c[u>>2];c[c[p>>2]>>2]=c[y>>2];do{if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+4>>2]|0)|0)>>>0<=(c[t>>2]|0)>>>0){nE(c[u>>2]|0,c[z>>2]|0,c[e+4>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);y=e+4|0;c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];if((c[n>>2]|0)>>>0<=(c[x>>2]|0)>>>0?(c[e+4>>2]|0)>>>0>=4:0)break;while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;y=c[z>>2]|0;c[z>>2]=y+1;p=a[y>>0]|0;y=c[n>>2]|0;c[n>>2]=y+1;a[y>>0]=p;}c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}}while(0);if((c[e+8>>2]|0)>>>0<8){c[B>>2]=c[6816+(c[e+8>>2]<<2)>>2];a[c[n>>2]>>0]=a[c[z>>2]>>0]|0;a[(c[n>>2]|0)+1>>0]=a[(c[z>>2]|0)+1>>0]|0;a[(c[n>>2]|0)+2>>0]=a[(c[z>>2]|0)+2>>0]|0;a[(c[n>>2]|0)+3>>0]=a[(c[z>>2]|0)+3>>0]|0;c[z>>2]=(c[z>>2]|0)+(c[6848+(c[e+8>>2]<<2)>>2]|0);gv((c[n>>2]|0)+4|0,c[z>>2]|0);c[z>>2]=(c[z>>2]|0)+(0-(c[B>>2]|0));}else hv(c[n>>2]|0,c[z>>2]|0);c[n>>2]=(c[n>>2]|0)+8;c[z>>2]=(c[z>>2]|0)+8;B=c[n>>2]|0;a:do{if((c[w>>2]|0)>>>0>((c[o>>2]|0)+-12|0)>>>0){if(B>>>0<(c[x>>2]|0)>>>0){fv(c[n>>2]|0,c[z>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);c[z>>2]=(c[z>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;r=c[z>>2]|0;c[z>>2]=r+1;A=a[r>>0]|0;r=c[n>>2]|0;c[n>>2]=r+1;a[r>>0]=A;}}else fv(B,c[z>>2]|0,(c[e+4>>2]|0)-8|0);}while(0);c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}function fv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{hv(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function gv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function hv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function iv(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=(c[(c[f>>2]|0)+4>>2]|0)+(c[c[f>>2]>>2]<<2)|0;b[g>>1]=b[d>>1]|0;b[g+2>>1]=b[d+2>>1]|0;l=e;return a[g+2>>0]|0;}function jv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=mv(c[e>>2]|0,c[f>>2]|0)|0;nv(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function kv(){return 1;}function lv(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=jv(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function mv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function nv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function ov(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(kv()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=Wq(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=pv(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function pv(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(Xq()|0)!=0;f=qv(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=rv(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function qv(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function rv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function sv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function tv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+20|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=d;a[h>>0]=e;c[i>>2]=c[g>>2];c[j>>2]=c[i>>2];c[k>>2]=(c[g>>2]|0)+4;c[m>>2]=c[k>>2];b[c[j>>2]>>1]=0;b[(c[j>>2]|0)+2>>1]=0;b[c[m>>2]>>1]=0;a[(c[m>>2]|0)+2>>0]=a[h>>0]|0;a[(c[m>>2]|0)+3>>0]=0;l=f;return 0;}function uv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;g=f+40|0;h=f+36|0;i=f+32|0;j=f+28|0;k=f+24|0;m=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[h>>2];c[k>>2]=c[j>>2];c[m>>2]=(c[h>>2]|0)+4;c[n>>2]=c[m>>2];c[o>>2]=1<>2];c[p>>2]=(c[o>>2]|0)-1;c[q>>2]=c[p>>2];if((c[i>>2]|0)>>>0<1){c[g>>2]=-1;s=c[g>>2]|0;l=f;return s|0;}b[c[k>>2]>>1]=c[i>>2];b[(c[k>>2]|0)+2>>1]=1;c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;b[(c[n>>2]|0)+(c[r>>2]<<2)>>1]=0;a[(c[n>>2]|0)+(c[r>>2]<<2)+2>>0]=c[r>>2];a[(c[n>>2]|0)+(c[r>>2]<<2)+3>>0]=c[i>>2];c[r>>2]=(c[r>>2]|0)+1;}c[g>>2]=0;s=c[g>>2]|0;l=f;return s|0;}function vv(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;A=h+70|0;B=h+68|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=Wq(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<>2])+1;c[u>>2]=1<>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if((c[t>>2]|0)<=1)break;if((c[x>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0)break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=Wq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=19;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[m+(n<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;n=Wq(c[r>>2]|0)|0;c[v>>2]=n>>>(c[w>>2]|0);}}while(0);b[A>>1]=(c[u>>2]<<1)-1-(c[t>>2]|0);n=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(b[A>>1]|0)>>>0){b[B>>1]=n&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{b[B>>1]=n&(m<<1)-1;if((b[B>>1]|0)>=(c[u>>2]|0))b[B>>1]=(b[B>>1]|0)-(b[A>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}b[B>>1]=(b[B>>1]|0)+-1<<16>>16;m=(zv(b[B>>1]|0)|0)<<16>>16;c[t>>2]=(c[t>>2]|0)-m;m=b[B>>1]|0;n=c[j>>2]|0;g=c[x>>2]|0;c[x>>2]=g+1;b[n+(g<<1)>>1]=m;c[y>>2]=((b[B>>1]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=Wq(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==19){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-1;C=c[i>>2]|0;l=h;return C|0;}c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);if(((c[r>>2]|0)-(c[p>>2]|0)|0)>>>0>(c[o>>2]|0)>>>0){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}else{c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function wv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=nr(c[d>>2]|0)|0;l=b;return a|0;}function xv(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,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;j=l;l=l+592|0;k=j+572|0;m=j+568|0;n=j+564|0;o=j+560|0;p=j+556|0;q=j+580|0;r=j+552|0;s=j+548|0;t=j+544|0;u=j+540|0;v=j+536|0;w=j;x=j+532|0;y=j+528|0;z=j+578|0;A=j+524|0;B=j+520|0;C=j+516|0;D=j+512|0;E=j+584|0;F=j+576|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[r>>2]=(c[m>>2]|0)+4;c[s>>2]=c[r>>2];c[t>>2]=1<>2];c[u>>2]=(c[t>>2]|0)-1;c[v>>2]=yv(c[t>>2]|0)|0;c[x>>2]=0;c[y>>2]=(c[t>>2]|0)-1;b[z>>1]=1<<(c[p>>2]|0)-1;c[A>>2]=1;if((c[o>>2]|0)>>>0>255){c[k>>2]=-46;G=c[k>>2]|0;l=j;return G|0;}if((c[p>>2]|0)>>>0>12){c[k>>2]=-44;G=c[k>>2]|0;l=j;return G|0;}b[q>>1]=c[p>>2];c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0)==-1){r=c[B>>2]&255;i=c[s>>2]|0;h=c[y>>2]|0;c[y>>2]=h+-1;a[i+(h<<2)+2>>0]=r;b[w+(c[B>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0)>=(b[z>>1]|0))c[A>>2]=0;b[w+(c[B>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0;}c[B>>2]=(c[B>>2]|0)+1;}c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;c[C>>2]=0;while(1){H=c[B>>2]|0;if((c[C>>2]|0)>=(b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0))break;a[(c[s>>2]|0)+(c[x>>2]<<2)+2>>0]=H;c[x>>2]=(c[x>>2]|0)+(c[v>>2]|0)&c[u>>2];while(1){if((c[x>>2]|0)>>>0<=(c[y>>2]|0)>>>0)break;c[x>>2]=(c[x>>2]|0)+(c[v>>2]|0)&c[u>>2];}c[C>>2]=(c[C>>2]|0)+1;}c[B>>2]=H+1;}if(c[x>>2]|0){c[k>>2]=-1;G=c[k>>2]|0;l=j;return G|0;}c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;a[E>>0]=a[(c[s>>2]|0)+(c[D>>2]<<2)+2>>0]|0;x=w+(d[E>>0]<<1)|0;H=b[x>>1]|0;b[x>>1]=H+1<<16>>16;b[F>>1]=H;H=c[p>>2]|0;x=H-(sv(e[F>>1]|0)|0)&255;a[(c[s>>2]|0)+(c[D>>2]<<2)+3>>0]=x;b[(c[s>>2]|0)+(c[D>>2]<<2)>>1]=(e[F>>1]<>2]|0)+(c[D>>2]<<2)+3>>0])-(c[t>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}b[q+2>>1]=c[A>>2];A=c[m>>2]|0;b[A>>1]=b[q>>1]|0;b[A+2>>1]=b[q+2>>1]|0;c[k>>2]=0;G=c[k>>2]|0;l=j;return G|0;}function yv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return((c[d>>2]|0)>>>1)+((c[d>>2]|0)>>>3)+3|0;}function zv(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=a;a=b[d>>1]|0;l=c;return((b[d>>1]|0)<0?0-a|0:a)&65535|0;}function Av(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=_v(n,c[k>>2]|0,c[m>>2]|0)|0;k=(Cv(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=cw(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Bv(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+44|0;i=g+40|0;j=g+36|0;k=g+32|0;m=g+28|0;n=g+24|0;o=g+20|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[o>>2]=(c[j>>2]|0)>>>8;c[q>>2]=0;if(!(c[j>>2]|0)){c[h>>2]=-70;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)>>>0>=(c[j>>2]|0)>>>0){c[h>>2]=-20;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==1){oE(c[i>>2]|0,(d[c[k>>2]>>0]|0)&255|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}c[n>>2]=(c[m>>2]<<4>>>0)/((c[j>>2]|0)>>>0)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=3)break;f=(c[7008+((c[n>>2]|0)*24|0)+(c[r>>2]<<3)>>2]|0)+(N(c[7008+((c[n>>2]|0)*24|0)+(c[r>>2]<<3)+4>>2]|0,c[o>>2]|0)|0)|0;c[p+(c[r>>2]<<2)>>2]=f;c[r>>2]=(c[r>>2]|0)+1;}r=p+4|0;c[r>>2]=(c[r>>2]|0)+((c[p+4>>2]|0)>>>4);r=p+8|0;c[r>>2]=(c[r>>2]|0)+((c[p+8>>2]|0)>>>3);if((c[p+4>>2]|0)>>>0<(c[p>>2]|0)>>>0)c[q>>2]=1;c[h>>2]=sc[c[11976+(c[q>>2]<<2)>>2]&15](c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;s=c[h>>2]|0;l=g;return s|0;}function Cv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=nr(c[d>>2]|0)|0;l=b;return a|0;}function Dv(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+28|0;s=g+24|0;t=g+20|0;u=g+16|0;v=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[c[n>>2]>>2];c[s>>2]=c[n>>2];c[t>>2]=(c[s>>2]|0)+4;c[u>>2]=av(v,c[o>>2]|0,c[m>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];w=c[h>>2]|0;l=g;return w|0;}Ev(c[p>>2]|0,v,c[q>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;if(Fv(v)|0){c[h>>2]=c[j>>2];w=c[h>>2]|0;l=g;return w|0;}else{c[h>>2]=-20;w=c[h>>2]|0;l=g;return w|0;}return 0;}function Ev(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[h>>2];while(1){if(cv(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>=((c[j>>2]|0)+-7|0)>>>0)break;if(Gv()|0){f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}Gv()|0;f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;if(Gv()|0){f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){if(cv(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=Hv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){o=c[h>>2]|0;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=Hv(o,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}if(o>>>0>=(c[j>>2]|0)>>>0){p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}j=Iv(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+j;p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}function Fv(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function Gv(){return 0;}function Hv(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=Jv(c[j>>2]|0,c[m>>2]|0)|0;m=c[i>>2]|0;i=(c[k>>2]|0)+(c[n>>2]<<2)|0;a[m>>0]=a[i>>0]|0;a[m+1>>0]=a[i+1>>0]|0;nv(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0;}function Iv(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=Jv(c[j>>2]|0,c[m>>2]|0)|0;a[c[i>>2]>>0]=a[(c[k>>2]|0)+(c[n>>2]<<2)>>0]|0;i=c[j>>2]|0;if((d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0)==1){nv(i,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return 1;}if((c[i+4>>2]|0)>>>0>=32){l=h;return 1;}nv(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);if((c[(c[j>>2]|0)+4>>2]|0)>>>0<=32){l=h;return 1;}c[(c[j>>2]|0)+4>>2]=32;l=h;return 1;}function Jv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function Kv(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=_v(n,c[k>>2]|0,c[m>>2]|0)|0;k=(Cv(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=$v(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Lv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+16416|0;g=f+16412|0;h=f+16408|0;i=f+16404|0;j=f+16400|0;k=f+16396|0;m=f;n=f+16392|0;o=f+16388|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;oE(m|0,0,16388)|0;c[m>>2]=12;c[n>>2]=c[j>>2];c[o>>2]=Mv(m,c[j>>2]|0,c[k>>2]|0)|0;j=(Cv(c[o>>2]|0)|0)!=0;e=c[o>>2]|0;if(j){c[g>>2]=e;p=c[g>>2]|0;l=f;return p|0;}if(e>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;p=c[g>>2]|0;l=f;return p|0;}else{c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[g>>2]=Nv(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,m)|0;p=c[g>>2]|0;l=f;return p|0;}return 0;}function Mv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,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;g=l;l=l+2128|0;h=g+2120|0;i=g+2116|0;j=g+2112|0;k=g+2108|0;m=g+1760|0;n=g+1248|0;o=g+1168|0;p=g+1088|0;q=g+2104|0;r=g;s=g+2100|0;t=g+2096|0;u=g+2092|0;v=g+2088|0;w=g+2084|0;x=g+2080|0;y=g+2076|0;z=g+2072|0;A=g+2068|0;B=g+2064|0;C=g+2060|0;D=g+2056|0;E=g+2052|0;F=g+2048|0;G=g+2044|0;H=g+2040|0;I=g+2036|0;J=g+2032|0;K=g+2028|0;L=g+2024|0;M=g+2020|0;N=g+2016|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=o;e=f+68|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));f=p;e=f+72|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));c[q>>2]=p+4;c[w>>2]=c[c[i>>2]>>2];c[y>>2]=c[i>>2];c[z>>2]=(c[y>>2]|0)+4;if((c[w>>2]|0)>>>0>16){c[h>>2]=-44;O=c[h>>2]|0;l=g;return O|0;}c[x>>2]=Qv(m,256,o,v,s,c[j>>2]|0,c[k>>2]|0)|0;if(Cv(c[x>>2]|0)|0){c[h>>2]=c[x>>2];O=c[h>>2]|0;l=g;return O|0;}if((c[s>>2]|0)>>>0>(c[w>>2]|0)>>>0){c[h>>2]=-44;O=c[h>>2]|0;l=g;return O|0;}c[t>>2]=c[s>>2];while(1){if(c[o+(c[t>>2]<<2)>>2]|0)break;c[t>>2]=(c[t>>2]|0)+-1;}c[B>>2]=0;c[A>>2]=1;while(1){P=c[B>>2]|0;if((c[A>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[C>>2]=P;c[B>>2]=(c[B>>2]|0)+(c[o+(c[A>>2]<<2)>>2]|0);c[(c[q>>2]|0)+(c[A>>2]<<2)>>2]=c[C>>2];c[A>>2]=(c[A>>2]|0)+1;}c[c[q>>2]>>2]=P;c[u>>2]=c[B>>2];c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[E>>2]=d[m+(c[D>>2]|0)>>0];B=(c[q>>2]|0)+(c[E>>2]<<2)|0;P=c[B>>2]|0;c[B>>2]=P+1;c[F>>2]=P;a[n+(c[F>>2]<<1)>>0]=c[D>>2];a[n+(c[F>>2]<<1)+1>>0]=c[E>>2];c[D>>2]=(c[D>>2]|0)+1;}c[c[q>>2]>>2]=0;c[G>>2]=(c[s>>2]|0)+1-(c[t>>2]|0);c[H>>2]=0;c[K>>2]=(c[w>>2]|0)-(c[s>>2]|0)-1;c[L>>2]=r;c[I>>2]=1;while(1){if((c[I>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[M>>2]=c[H>>2];c[H>>2]=(c[H>>2]|0)+(c[o+(c[I>>2]<<2)>>2]<<(c[I>>2]|0)+(c[K>>2]|0));c[(c[L>>2]|0)+(c[I>>2]<<2)>>2]=c[M>>2];c[I>>2]=(c[I>>2]|0)+1;}c[J>>2]=c[G>>2];while(1){if((c[J>>2]|0)>>>0>((c[w>>2]|0)-(c[G>>2]|0)|0)>>>0)break;c[N>>2]=r+((c[J>>2]|0)*68|0);c[I>>2]=1;while(1){if((c[I>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[(c[N>>2]|0)+(c[I>>2]<<2)>>2]=(c[(c[L>>2]|0)+(c[I>>2]<<2)>>2]|0)>>>(c[J>>2]|0);c[I>>2]=(c[I>>2]|0)+1;}c[J>>2]=(c[J>>2]|0)+1;}Rv(c[z>>2]|0,c[w>>2]|0,n,c[u>>2]|0,p,r,c[t>>2]|0,(c[s>>2]|0)+1|0);c[h>>2]=c[x>>2];O=c[h>>2]|0;l=g;return O|0;}function Nv(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,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;g=l;l=l+192|0;h=g+184|0;i=g+180|0;j=g+176|0;k=g+172|0;m=g+168|0;n=g+164|0;o=g+160|0;p=g+156|0;q=g+152|0;r=g+148|0;s=g+144|0;t=g+140|0;u=g+136|0;v=g+120|0;w=g+104|0;x=g+88|0;y=g+72|0;z=g+64|0;A=g+60|0;B=g+56|0;C=g+52|0;D=g+48|0;E=g+44|0;F=g+40|0;G=g+36|0;H=g+32|0;I=g+28|0;J=g+24|0;K=g+20|0;L=g+16|0;M=g+12|0;N=g+8|0;O=g+4|0;P=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[m>>2]|0)>>>0<10){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+4;c[t>>2]=c[c[n>>2]>>2];c[z>>2]=(Ov(c[o>>2]|0)|0)&65535;c[A>>2]=(Ov((c[o>>2]|0)+2|0)|0)&65535;c[B>>2]=(Ov((c[o>>2]|0)+4|0)|0)&65535;c[D>>2]=(c[o>>2]|0)+6;c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(((c[j>>2]|0)+3|0)>>>0)/4|0;c[I>>2]=(c[p>>2]|0)+(c[H>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[H>>2]|0);c[K>>2]=(c[J>>2]|0)+(c[H>>2]|0);c[L>>2]=c[p>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];c[O>>2]=c[K>>2];c[C>>2]=(c[m>>2]|0)-((c[z>>2]|0)+(c[A>>2]|0)+(c[B>>2]|0)+6);if((c[C>>2]|0)>>>0>(c[m>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=av(v,c[D>>2]|0,c[z>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=av(w,c[E>>2]|0,c[A>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=av(x,c[F>>2]|0,c[B>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=av(y,c[G>>2]|0,c[C>>2]|0)|0;if(Cv(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}u=cv(v)|0;C=u|(cv(w)|0);u=C|(cv(x)|0);c[P>>2]=u|(cv(y)|0);while(1){if(c[P>>2]|0)break;if((c[O>>2]|0)>>>0>=((c[q>>2]|0)+-7|0)>>>0)break;if(Gv()|0){u=Hv(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if(Gv()|0){u=Hv(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if(Gv()|0){u=Hv(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if(Gv()|0){u=Hv(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}Gv()|0;u=Hv(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;Gv()|0;u=Hv(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;Gv()|0;u=Hv(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;Gv()|0;u=Hv(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;if(Gv()|0){u=Hv(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if(Gv()|0){u=Hv(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if(Gv()|0){u=Hv(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if(Gv()|0){u=Hv(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}u=Hv(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;u=Hv(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;u=Hv(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;u=Hv(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;u=cv(v)|0;C=u|(cv(w)|0);u=C|(cv(x)|0);c[P>>2]=u|(cv(y)|0);}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}Ev(c[L>>2]|0,v,c[I>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;Ev(c[M>>2]|0,w,c[J>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;Ev(c[N>>2]|0,x,c[K>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;Ev(c[O>>2]|0,y,c[q>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;t=Fv(v)|0;v=t&(Fv(w)|0);w=v&(Fv(x)|0);c[P>>2]=w&(Fv(y)|0);if(c[P>>2]|0){c[h>>2]=c[j>>2];Q=c[h>>2]|0;l=g;return Q|0;}else{c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}return 0;}function Ov(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(Xq()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=Pv(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function Pv(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Qv(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;k=l;l=l+80|0;m=k+68|0;n=k+64|0;o=k+60|0;p=k+56|0;q=k+52|0;r=k+48|0;s=k+44|0;t=k+40|0;u=k+36|0;v=k+32|0;w=k+28|0;x=k+24|0;y=k+20|0;z=k+16|0;A=k+12|0;B=k+8|0;C=k+4|0;D=k;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[w>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}c[x>>2]=d[c[w>>2]>>0];s=c[x>>2]|0;a:do{if((c[x>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}c[y>>2]=Vv(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[w>>2]|0)+1|0,c[x>>2]|0)|0;if(wv(c[y>>2]|0)|0){c[m>>2]=c[y>>2];E=c[m>>2]|0;l=k;return E|0;}}else{j=c[x>>2]|0;if(s>>>0>=242){c[y>>2]=c[7392+(j-242<<2)>>2];oE(c[n>>2]|0,1,c[o>>2]|0)|0;c[x>>2]=0;break;}c[y>>2]=j-127;c[x>>2]=(((c[y>>2]|0)+1|0)>>>0)/2|0;if(((c[x>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}if((c[y>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[w>>2]=(c[w>>2]|0)+1;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[z>>2]|0)>>0]=(d[(c[w>>2]|0)+(((c[z>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[z>>2]|0)+1)>>0]=(d[(c[w>>2]|0)+(((c[z>>2]|0)>>>0)/2|0)>>0]|0)&15;c[z>>2]=(c[z>>2]|0)+2;}}}while(0);w=c[p>>2]|0;o=w+68|0;do{c[w>>2]=0;w=w+4|0;}while((w|0)<(o|0));c[u>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0|0)>=16){F=20;break;}w=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)<<2)|0;c[w>>2]=(c[w>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)>>1);c[z>>2]=(c[z>>2]|0)+1;}if((F|0)==20){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[v>>2]=(sv(c[u>>2]|0)|0)+1;if((c[v>>2]|0)>>>0>16){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[A>>2]=1<>2];c[B>>2]=(c[A>>2]|0)-(c[u>>2]|0);c[C>>2]=1<<(sv(c[B>>2]|0)|0);c[D>>2]=(sv(c[B>>2]|0)|0)+1;if((c[C>>2]|0)!=(c[B>>2]|0)){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=c[D>>2];n=(c[p>>2]|0)+(c[D>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[y>>2]|0)+1;c[c[r>>2]>>2]=c[v>>2];c[m>>2]=(c[x>>2]|0)+1;E=c[m>>2]|0;l=k;return E|0;}c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}function Rv(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+160|0;o=n+140|0;p=n+136|0;q=n+132|0;r=n+128|0;s=n+124|0;t=n+120|0;u=n+116|0;v=n+112|0;w=n;x=n+108|0;y=n+104|0;z=n+100|0;A=n+148|0;B=n+96|0;C=n+92|0;D=n+88|0;E=n+84|0;F=n+80|0;G=n+76|0;H=n+72|0;I=n+68|0;J=n+144|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+68|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];Sv((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*68|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{c[I>>2]=(c[D>>2]|0)+(c[E>>2]|0);Tv(J,b[A>>1]|0);a[J+2>>0]=c[C>>2];a[J+3>>0]=1;c[H>>2]=c[D>>2];while(1){if((c[H>>2]|0)>>>0>=(c[I>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[H>>2]<<2)|0;b[m>>1]=b[J>>1]|0;b[m+2>>1]=b[J+2>>1]|0;c[H>>2]=(c[H>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function Sv(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+160|0;q=p+136|0;r=p+132|0;s=p+128|0;t=p+124|0;u=p+120|0;v=p+116|0;w=p+112|0;x=p+108|0;y=p+144|0;z=p+140|0;A=p;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+68|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[D>>2]=c[A+(c[u>>2]<<2)>>2];Tv(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[C>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[C>>2]=(c[C>>2]|0)+1;}}}while(0);c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[B>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[B>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);Tv(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{C=c[q>>2]|0;D=c[J>>2]|0;c[J>>2]=D+1;u=C+(D<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[B>>2]=(c[B>>2]|0)+1;}l=p;return;}function Tv(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Xq()|0)!=0;d=c[h>>2]|0;if(f){Uv(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function Uv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=b[h>>1]|0;h=c[g>>2]|0;a[h>>0]=e;a[h+1>>0]=e>>8;l=f;return;}function Vv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+16960|0;g=f+16948|0;h=f+16944|0;i=f+16940|0;j=f+16936|0;k=f+16932|0;m=f+16928|0;n=f+16924|0;o=f+16400|0;p=f;q=f+16920|0;r=f+16916|0;s=f+16912|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=c[m>>2];c[r>>2]=255;if((c[k>>2]|0)>>>0<2){c[g>>2]=-72;t=c[g>>2]|0;l=f;return t|0;}c[s>>2]=vv(o,r,q,c[m>>2]|0,c[k>>2]|0)|0;m=(wv(c[s>>2]|0)|0)!=0;j=c[s>>2]|0;if(m){c[g>>2]=j;t=c[g>>2]|0;l=f;return t|0;}if(j>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;t=c[g>>2]|0;l=f;return t|0;}c[n>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0);c[s>>2]=xv(p,o,c[r>>2]|0,c[q>>2]|0)|0;if(wv(c[s>>2]|0)|0){c[g>>2]=c[s>>2];t=c[g>>2]|0;l=f;return t|0;}else{c[g>>2]=Wv(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,p)|0;t=c[g>>2]|0;l=f;return t|0;}return 0;}function Wv(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+208|0;j=i+192|0;k=i+188|0;m=i+184|0;n=i+180|0;o=i+176|0;p=i+172|0;q=i+168|0;r=i+164|0;s=i+160|0;t=i+156|0;u=i+152|0;v=i+136|0;w=i+128|0;x=i+120|0;y=i+116|0;z=i+112|0;A=i+108|0;B=i+104|0;C=i+100|0;D=i+96|0;E=i+92|0;F=i+88|0;G=i+84|0;H=i+80|0;I=i+76|0;J=i+72|0;K=i+56|0;L=i+48|0;M=i+40|0;N=i+36|0;O=i+32|0;P=i+28|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[P>>2]=b;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=c[T>>2];c[V>>2]=c[U>>2];c[W>>2]=e[(c[V>>2]|0)+2>>1];V=c[P>>2]|0;P=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;if(c[W>>2]|0){c[A>>2]=V;c[B>>2]=P;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=1;c[G>>2]=c[A>>2];c[H>>2]=c[G>>2];c[I>>2]=(c[H>>2]|0)+(c[B>>2]|0);c[J>>2]=(c[I>>2]|0)+-3;c[N>>2]=av(K,c[C>>2]|0,c[D>>2]|0)|0;do{if(!(wv(c[N>>2]|0)|0)){bv(L,K,c[E>>2]|0);bv(M,K,c[E>>2]|0);while(1){if(cv(K)|0)break;if((c[H>>2]|0)>>>0>=(c[J>>2]|0)>>>0)break;if(c[F>>2]|0)X=(Xv(L,K)|0)&255;else X=(lv(L,K)|0)&255;a[c[H>>2]>>0]=X;if(c[F>>2]|0)Y=(Xv(M,K)|0)&255;else Y=(lv(M,K)|0)&255;a[(c[H>>2]|0)+1>>0]=Y;if((cv(K)|0)>>>0>0){Z=14;break;}if(c[F>>2]|0)_=(Xv(L,K)|0)&255;else _=(lv(L,K)|0)&255;a[(c[H>>2]|0)+2>>0]=_;if(c[F>>2]|0)$=(Xv(M,K)|0)&255;else $=(lv(M,K)|0)&255;a[(c[H>>2]|0)+3>>0]=$;c[H>>2]=(c[H>>2]|0)+4;}if((Z|0)==14)c[H>>2]=(c[H>>2]|0)+2;while(1){if((cv(K)|0)>>>0>2)break;if((c[H>>2]|0)==(c[I>>2]|0))break;if(Fv(K)|0){if(c[F>>2]|0)break;if(Yv(L)|0)break;}if(c[F>>2]|0)aa=(Xv(L,K)|0)&255;else aa=(lv(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=aa;if((cv(K)|0)>>>0>2)break;if((c[H>>2]|0)==(c[I>>2]|0))break;if(Fv(K)|0){if(c[F>>2]|0)break;if(Yv(M)|0)break;}if(c[F>>2]|0)ba=(Xv(M,K)|0)&255;else ba=(lv(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ba;}if((Fv(K)|0?Yv(L)|0:0)?Yv(M)|0:0){c[z>>2]=(c[H>>2]|0)-(c[G>>2]|0);break;}if((c[H>>2]|0)==(c[I>>2]|0)){c[z>>2]=-70;break;}else{c[z>>2]=-20;break;}}else c[z>>2]=c[N>>2];}while(0);c[O>>2]=c[z>>2];ca=c[O>>2]|0;l=i;return ca|0;}else{c[k>>2]=V;c[m>>2]=P;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=0;c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[s>>2]|0)+(c[m>>2]|0);c[u>>2]=(c[t>>2]|0)+-3;c[y>>2]=av(v,c[n>>2]|0,c[o>>2]|0)|0;do{if(!(wv(c[y>>2]|0)|0)){bv(w,v,c[p>>2]|0);bv(x,v,c[p>>2]|0);while(1){if(cv(v)|0)break;if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;if(c[q>>2]|0)da=(Xv(w,v)|0)&255;else da=(lv(w,v)|0)&255;a[c[s>>2]>>0]=da;if(c[q>>2]|0)ea=(Xv(x,v)|0)&255;else ea=(lv(x,v)|0)&255;a[(c[s>>2]|0)+1>>0]=ea;if((cv(v)|0)>>>0>0){Z=60;break;}if(c[q>>2]|0)fa=(Xv(w,v)|0)&255;else fa=(lv(w,v)|0)&255;a[(c[s>>2]|0)+2>>0]=fa;if(c[q>>2]|0)ga=(Xv(x,v)|0)&255;else ga=(lv(x,v)|0)&255;a[(c[s>>2]|0)+3>>0]=ga;c[s>>2]=(c[s>>2]|0)+4;}if((Z|0)==60)c[s>>2]=(c[s>>2]|0)+2;while(1){if((cv(v)|0)>>>0>2)break;if((c[s>>2]|0)==(c[t>>2]|0))break;if(Fv(v)|0){if(c[q>>2]|0)break;if(Yv(w)|0)break;}if(c[q>>2]|0)ha=(Xv(w,v)|0)&255;else ha=(lv(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ha;if((cv(v)|0)>>>0>2)break;if((c[s>>2]|0)==(c[t>>2]|0))break;if(Fv(v)|0){if(c[q>>2]|0)break;if(Yv(x)|0)break;}if(c[q>>2]|0)ia=(Xv(x,v)|0)&255;else ia=(lv(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ia;}if((Fv(v)|0?Yv(w)|0:0)?Yv(x)|0:0){c[j>>2]=(c[s>>2]|0)-(c[r>>2]|0);break;}if((c[s>>2]|0)==(c[t>>2]|0)){c[j>>2]=-70;break;}else{c[j>>2]=-20;break;}}else c[j>>2]=c[y>>2];}while(0);c[O>>2]=c[j>>2];ca=c[O>>2]|0;l=i;return ca|0;}return 0;}function Xv(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=Zv(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function Yv(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[c[d>>2]>>2]|0)==0|0;}function Zv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Jv(c[e>>2]|0,c[f>>2]|0)|0;nv(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function _v(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;i=l;l=l+400|0;j=i+392|0;k=i+388|0;m=i+384|0;n=i+380|0;o=i+80|0;p=i;q=i+376|0;r=i+372|0;s=i+368|0;t=i+364|0;u=i+360|0;v=i+356|0;w=i+352|0;x=i+348|0;y=i+344|0;z=i+340|0;A=i+336|0;B=i+396|0;c[k>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=0;c[s>>2]=0;c[v>>2]=(c[k>>2]|0)+2;c[w>>2]=c[v>>2];c[r>>2]=Qv(o,256,p,s,q,c[m>>2]|0,c[n>>2]|0)|0;if(Cv(c[r>>2]|0)|0){c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}if((c[q>>2]|0)>>>0>(e[c[k>>2]>>1]|0)>>>0){c[j>>2]=-44;C=c[j>>2]|0;l=i;return C|0;}b[c[k>>2]>>1]=c[q>>2];c[u>>2]=0;c[t>>2]=1;while(1){if((c[t>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;c[x>>2]=c[u>>2];c[u>>2]=(c[u>>2]|0)+(c[p+(c[t>>2]<<2)>>2]<<(c[t>>2]|0)-1);c[p+(c[t>>2]<<2)>>2]=c[x>>2];c[t>>2]=(c[t>>2]|0)+1;}c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[y>>2]=d[o+(c[t>>2]|0)>>0];c[z>>2]=1<>2]>>1;a[B>>0]=c[t>>2];a[B+1>>0]=(c[q>>2]|0)+1-(c[y>>2]|0);c[A>>2]=c[p+(c[y>>2]<<2)>>2];while(1){if((c[A>>2]|0)>>>0>=((c[p+(c[y>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0)break;x=(c[w>>2]|0)+(c[A>>2]<<1)|0;a[x>>0]=a[B>>0]|0;a[x+1>>0]=a[B+1>>0]|0;c[A>>2]=(c[A>>2]|0)+1;}x=p+(c[y>>2]<<2)|0;c[x>>2]=(c[x>>2]|0)+(c[z>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}function $v(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+192|0;j=i+184|0;k=i+180|0;m=i+176|0;n=i+172|0;o=i+168|0;p=i+164|0;q=i+160|0;r=i+156|0;s=i+152|0;t=i+148|0;u=i+144|0;v=i+140|0;w=i+136|0;x=i+120|0;y=i+104|0;z=i+88|0;A=i+72|0;B=i+64|0;C=i+60|0;D=i+56|0;E=i+52|0;F=i+48|0;G=i+44|0;H=i+40|0;I=i+36|0;J=i+32|0;K=i+28|0;L=i+24|0;M=i+20|0;N=i+16|0;O=i+12|0;P=i+8|0;Q=i+4|0;R=i;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=c[n>>2];c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[p>>2];c[u>>2]=(c[t>>2]|0)+2;c[v>>2]=e[c[p>>2]>>1];c[B>>2]=(Ov(c[q>>2]|0)|0)&65535;c[C>>2]=(Ov((c[q>>2]|0)+2|0)|0)&65535;c[D>>2]=(Ov((c[q>>2]|0)+4|0)|0)&65535;c[F>>2]=(c[q>>2]|0)+6;c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(c[G>>2]|0)+(c[C>>2]|0);c[I>>2]=(c[H>>2]|0)+(c[D>>2]|0);c[J>>2]=(((c[m>>2]|0)+3|0)>>>0)/4|0;c[K>>2]=(c[r>>2]|0)+(c[J>>2]|0);c[L>>2]=(c[K>>2]|0)+(c[J>>2]|0);c[M>>2]=(c[L>>2]|0)+(c[J>>2]|0);c[N>>2]=c[r>>2];c[O>>2]=c[K>>2];c[P>>2]=c[L>>2];c[Q>>2]=c[M>>2];if((c[o>>2]|0)>>>0<10){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[E>>2]=(c[o>>2]|0)-((c[B>>2]|0)+(c[C>>2]|0)+(c[D>>2]|0)+6);if((c[E>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=av(x,c[F>>2]|0,c[B>>2]|0)|0;if(Cv(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=av(y,c[G>>2]|0,c[C>>2]|0)|0;if(Cv(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=av(z,c[H>>2]|0,c[D>>2]|0)|0;if(Cv(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=av(A,c[I>>2]|0,c[E>>2]|0)|0;if(Cv(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}w=cv(x)|0;E=w|(cv(y)|0);w=E|(cv(z)|0);c[R>>2]=w|(cv(A)|0);while(1){if(c[R>>2]|0)break;if((c[Q>>2]|0)>>>0>=((c[s>>2]|0)+-7|0)>>>0)break;if(Gv()|0){w=aw(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}Gv()|0;w=aw(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;Gv()|0;w=aw(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;Gv()|0;w=aw(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;Gv()|0;w=aw(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;if(Gv()|0){w=aw(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if(Gv()|0){w=aw(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}w=aw(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;w=aw(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;w=aw(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;w=aw(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;w=cv(x)|0;E=w|(cv(y)|0);w=E|(cv(z)|0);c[R>>2]=w|(cv(A)|0);}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[O>>2]|0)>>>0>(c[L>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[P>>2]|0)>>>0>(c[M>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}bw(c[N>>2]|0,x,c[K>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;bw(c[O>>2]|0,y,c[L>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;bw(c[P>>2]|0,z,c[M>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;bw(c[Q>>2]|0,A,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;v=Fv(x)|0;x=v&(Fv(y)|0);y=x&(Fv(z)|0);c[R>>2]=y&(Fv(A)|0);if(c[R>>2]|0){c[j>>2]=c[m>>2];S=c[j>>2]|0;l=i;return S|0;}else{c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}return 0;}function aw(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+16|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=Jv(c[h>>2]|0,c[j>>2]|0)|0;a[m>>0]=a[(c[i>>2]|0)+(c[k>>2]<<1)>>0]|0;nv(c[h>>2]|0,d[(c[i>>2]|0)+(c[k>>2]<<1)+1>>0]|0);l=g;return a[m>>0]|0;}function bw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];while(1){if(cv(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>((c[k>>2]|0)+-4|0)>>>0)break;if(Gv()|0){g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}Gv()|0;g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;if(Gv()|0){g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if(cv(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=aw(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}l=h;return(c[k>>2]|0)-(c[o>>2]|0)|0;}function cw(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+8|0;v=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[j>>2];c[q>>2]=(c[p>>2]|0)+(c[k>>2]|0);c[r>>2]=e[c[o>>2]>>1];c[s>>2]=c[o>>2];c[t>>2]=(c[s>>2]|0)+2;if((c[k>>2]|0)>>>0<=(c[n>>2]|0)>>>0){c[i>>2]=-70;w=c[i>>2]|0;l=h;return w|0;}c[v>>2]=av(u,c[m>>2]|0,c[n>>2]|0)|0;if(Cv(c[v>>2]|0)|0){c[i>>2]=c[v>>2];w=c[i>>2]|0;l=h;return w|0;}bw(c[p>>2]|0,u,c[q>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;if(Fv(u)|0){c[i>>2]=c[k>>2];w=c[i>>2]|0;l=h;return w|0;}else{c[i>>2]=-20;w=c[i>>2]|0;l=h;return w|0;}return 0;}function dw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+26656>>2]=5;c[(c[d>>2]|0)+26708>>2]=0;c[(c[d>>2]|0)+26640>>2]=0;c[(c[d>>2]|0)+26644>>2]=0;c[(c[d>>2]|0)+26648>>2]=0;c[(c[d>>2]|0)+26652>>2]=0;c[(c[d>>2]|0)+10252>>2]=12;c[(c[d>>2]|0)+26712>>2]=0;l=b;return 0;}function ew(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[k>>2]=Wq(c[h>>2]|0)|0;if((c[k>>2]|0)!=-332356555){fw(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)-4;c[j>>2]=gw(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if(mr(c[j>>2]|0)|0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}else{c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);fw(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}return 0;}function fw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+26652>>2]=c[(c[f>>2]|0)+26640>>2];c[(c[f>>2]|0)+26648>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+26640>>2]|0)-(c[(c[f>>2]|0)+26644>>2]|0)));c[(c[f>>2]|0)+26644>>2]=c[g>>2];c[(c[f>>2]|0)+26640>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function gw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=l;l=l+512|0;f=e+504|0;g=e+500|0;h=e+496|0;i=e+492|0;j=e+488|0;k=e+484|0;m=e+480|0;n=e+476|0;o=e+472|0;p=e+384|0;q=e+468|0;r=e+464|0;s=e+128|0;t=e+460|0;u=e+456|0;v=e;w=e+452|0;x=e+448|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[q>>2]=31;c[t>>2]=127;c[w>>2]=63;c[j>>2]=Mv((c[g>>2]|0)+10252|0,c[h>>2]|0,c[i>>2]|0)|0;if(Cv(c[j>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);c[k>>2]=vv(p,q,r,c[h>>2]|0,c[i>>2]|0)|0;if(wv(c[k>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}if((c[r>>2]|0)>>>0>9){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[n>>2]=xv((c[g>>2]|0)+4100|0,p,c[q>>2]|0,c[r>>2]|0)|0;if(wv(c[n>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);c[m>>2]=vv(s,t,u,c[h>>2]|0,c[i>>2]|0)|0;if(wv(c[m>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}if((c[u>>2]|0)>>>0>10){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[n>>2]=xv((c[g>>2]|0)+6152|0,s,c[t>>2]|0,c[u>>2]|0)|0;if(wv(c[n>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[m>>2]|0);c[o>>2]=vv(v,w,x,c[h>>2]|0,c[i>>2]|0)|0;if((c[x>>2]|0)>>>0>10){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}if(wv(c[o>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}c[n>>2]=xv(c[g>>2]|0,v,c[w>>2]|0,c[x>>2]|0)|0;if(wv(c[n>>2]|0)|0){c[f>>2]=-30;y=c[f>>2]|0;l=e;return y|0;}else{c[(c[g>>2]|0)+26712>>2]=1;c[f>>2]=(c[j>>2]|0)+(c[k>>2]|0)+(c[m>>2]|0)+(c[o>>2]|0);y=c[f>>2]|0;l=e;return y|0;}return 0;}function hw(){var a=0,b=0,d=0,e=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(141416)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{kw(c[d>>2]|0)|0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function iw(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,m=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;f=jw(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,0,0)|0;l=g;return f|0;}function jw(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;i=l;l=l+80|0;j=i+76|0;k=i+72|0;m=i+68|0;n=i+64|0;o=i+60|0;p=i+56|0;q=i+52|0;r=i+48|0;s=i+44|0;t=i+40|0;u=i+36|0;v=i+32|0;w=i+28|0;x=i+24|0;y=i+16|0;z=i+8|0;A=i+4|0;B=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=c[o>>2];c[t>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[u>>2]=c[m>>2];c[v>>2]=c[u>>2];c[w>>2]=(c[u>>2]|0)+(c[n>>2]|0);c[x>>2]=c[p>>2];kw(c[k>>2]|0)|0;if(c[q>>2]|0){lw(c[k>>2]|0,c[q>>2]|0,c[r>>2]|0);c[(c[k>>2]|0)+10264>>2]=c[(c[k>>2]|0)+10252>>2];c[(c[k>>2]|0)+10260>>2]=(c[m>>2]|0)+(0-((c[(c[k>>2]|0)+10252>>2]|0)-(c[(c[k>>2]|0)+10256>>2]|0)));c[(c[k>>2]|0)+10256>>2]=c[m>>2];}else{r=c[m>>2]|0;c[(c[k>>2]|0)+10264>>2]=r;c[(c[k>>2]|0)+10256>>2]=r;c[(c[k>>2]|0)+10260>>2]=r;}if((c[p>>2]|0)>>>0<8){c[j>>2]=-72;C=c[j>>2]|0;l=i;return C|0;}c[z>>2]=mw(c[k>>2]|0,c[o>>2]|0,5)|0;if(rr(c[z>>2]|0)|0){c[j>>2]=c[z>>2];C=c[j>>2]|0;l=i;return C|0;}if((c[p>>2]|0)>>>0<((c[z>>2]|0)+3|0)>>>0){c[j>>2]=-72;C=c[j>>2]|0;l=i;return C|0;}c[s>>2]=(c[s>>2]|0)+(c[z>>2]|0);c[x>>2]=(c[x>>2]|0)-(c[z>>2]|0);c[z>>2]=nw(c[k>>2]|0,c[o>>2]|0,c[z>>2]|0)|0;if(rr(c[z>>2]|0)|0){c[j>>2]=c[z>>2];C=c[j>>2]|0;l=i;return C|0;}a:while(1){c[A>>2]=0;c[B>>2]=qr(c[s>>2]|0,(c[t>>2]|0)-(c[s>>2]|0)|0,y)|0;if(rr(c[B>>2]|0)|0){D=14;break;}c[s>>2]=(c[s>>2]|0)+3;c[x>>2]=(c[x>>2]|0)-3;if((c[B>>2]|0)>>>0>(c[x>>2]|0)>>>0){D=16;break;}switch(c[y>>2]|0){case 2:{D=20;break a;break;}case 0:{c[A>>2]=ow(c[k>>2]|0,c[v>>2]|0,(c[w>>2]|0)-(c[v>>2]|0)|0,c[s>>2]|0,c[B>>2]|0)|0;break;}case 1:{c[A>>2]=pw(c[v>>2]|0,(c[w>>2]|0)-(c[v>>2]|0)|0,c[s>>2]|0,c[B>>2]|0)|0;break;}case 3:{if(c[x>>2]|0){D=22;break a;}break;}default:{D=23;break a;}}if(!(c[B>>2]|0)){D=28;break;}z=(rr(c[A>>2]|0)|0)!=0;E=c[A>>2]|0;if(z){D=26;break;}c[v>>2]=(c[v>>2]|0)+E;c[s>>2]=(c[s>>2]|0)+(c[B>>2]|0);c[x>>2]=(c[x>>2]|0)-(c[B>>2]|0);}if((D|0)==14){c[j>>2]=c[B>>2];C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==16){c[j>>2]=-72;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==20){c[j>>2]=-1;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==22){c[j>>2]=-72;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==23){c[j>>2]=-1;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==26){c[j>>2]=E;C=c[j>>2]|0;l=i;return C|0;}else if((D|0)==28){c[j>>2]=(c[v>>2]|0)-(c[u>>2]|0);C=c[j>>2]|0;l=i;return C|0;}return 0;}function kw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+10268>>2]=5;c[(c[d>>2]|0)+10316>>2]=0;c[(c[d>>2]|0)+10252>>2]=0;c[(c[d>>2]|0)+10256>>2]=0;c[(c[d>>2]|0)+10260>>2]=0;c[(c[d>>2]|0)+10264>>2]=0;l=b;return 0;}function lw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+10264>>2]=c[(c[f>>2]|0)+10252>>2];c[(c[f>>2]|0)+10260>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+10252>>2]|0)-(c[(c[f>>2]|0)+10256>>2]|0)));c[(c[f>>2]|0)+10256>>2]=c[g>>2];c[(c[f>>2]|0)+10252>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function mw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)!=5){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}c[j>>2]=pr(c[h>>2]|0)|0;if((c[j>>2]|0)!=-47205084){c[f>>2]=-10;k=c[f>>2]|0;l=e;return k|0;}else{c[(c[g>>2]|0)+10272>>2]=5;c[f>>2]=c[(c[g>>2]|0)+10272>>2];k=c[f>>2]|0;l=e;return k|0;}return 0;}function nw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)!=(c[(c[g>>2]|0)+10272>>2]|0)){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}c[j>>2]=sx((c[g>>2]|0)+10280|0,c[h>>2]|0,c[i>>2]|0)|0;if(Dw()|0?(c[(c[g>>2]|0)+10280+8>>2]|0)>>>0>25:0){c[f>>2]=-14;k=c[f>>2]|0;l=e;return k|0;}c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}function ow(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=qw(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(rr(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+f;c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=rw(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function pw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function qw(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+48|0;h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;m=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;q=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<11){c[h>>2]=-20;r=c[h>>2]|0;l=g;return r|0;}switch((d[c[m>>2]>>0]|0)&3|0){case 0:{c[n>>2]=131072;c[o>>2]=Uw((c[i>>2]|0)+10328|0,n,c[j>>2]|0,c[k>>2]|0)|0;c[(c[i>>2]|0)+10320>>2]=(c[i>>2]|0)+10328;c[(c[i>>2]|0)+10324>>2]=c[n>>2];n=(c[i>>2]|0)+10328+(c[(c[i>>2]|0)+10324>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=c[o>>2];r=c[h>>2]|0;l=g;return r|0;}case 1:{c[p>>2]=((pr(c[m>>2]|0)|0)&16777215)>>>2;if((c[p>>2]|0)>>>0<=((c[k>>2]|0)-11|0)>>>0){c[(c[i>>2]|0)+10320>>2]=(c[m>>2]|0)+3;c[(c[i>>2]|0)+10324>>2]=c[p>>2];c[h>>2]=(c[p>>2]|0)+3;r=c[h>>2]|0;l=g;return r|0;}if((c[p>>2]|0)>>>0>((c[k>>2]|0)-3|0)>>>0){c[h>>2]=-20;r=c[h>>2]|0;l=g;return r|0;}else{mE((c[i>>2]|0)+10328|0,c[m>>2]|0,c[p>>2]|0)|0;c[(c[i>>2]|0)+10320>>2]=(c[i>>2]|0)+10328;c[(c[i>>2]|0)+10324>>2]=c[p>>2];k=(c[i>>2]|0)+10328+(c[(c[i>>2]|0)+10324>>2]|0)|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;a[k+4>>0]=0;a[k+5>>0]=0;a[k+6>>0]=0;a[k+7>>0]=0;c[h>>2]=(c[p>>2]|0)+3;r=c[h>>2]|0;l=g;return r|0;}break;}case 2:{c[q>>2]=((pr(c[m>>2]|0)|0)&16777215)>>>2;if((c[q>>2]|0)>>>0>131072){c[h>>2]=-20;r=c[h>>2]|0;l=g;return r|0;}else{oE((c[i>>2]|0)+10328|0,(d[(c[m>>2]|0)+3>>0]|0)&255|0,(c[q>>2]|0)+8|0)|0;c[(c[i>>2]|0)+10320>>2]=(c[i>>2]|0)+10328;c[(c[i>>2]|0)+10324>>2]=c[q>>2];c[h>>2]=4;r=c[h>>2]|0;l=g;return r|0;}break;}default:{c[h>>2]=-20;r=c[h>>2]|0;l=g;return r|0;}}return 0;}function rw(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,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;g=l;l=l+176|0;h=g+164|0;i=g+160|0;j=g+156|0;k=g+152|0;m=g+148|0;n=g+144|0;o=g+140|0;p=g+136|0;q=g+132|0;r=g+128|0;s=g+124|0;t=g+120|0;u=g+116|0;v=g+112|0;w=g+108|0;x=g+104|0;y=g+100|0;z=g+96|0;A=g+92|0;B=g+88|0;C=g+84|0;D=g+80|0;E=g+76|0;F=g+72|0;G=g+60|0;H=g+8|0;I=g+4|0;J=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[w>>2]=c[(c[j>>2]|0)+10320>>2];c[x>>2]=(c[w>>2]|0)+(c[(c[j>>2]|0)+10324>>2]|0);c[A>>2]=c[j>>2];c[B>>2]=(c[j>>2]|0)+6152;c[C>>2]=(c[j>>2]|0)+4100;c[D>>2]=c[(c[j>>2]|0)+10256>>2];c[E>>2]=c[(c[j>>2]|0)+10260>>2];c[F>>2]=c[(c[j>>2]|0)+10264>>2];c[u>>2]=sw(y,z,v,c[A>>2]|0,c[B>>2]|0,c[C>>2]|0,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;j=(rr(c[u>>2]|0)|0)!=0;m=c[u>>2]|0;if(j){c[i>>2]=m;K=c[i>>2]|0;l=g;return K|0;}c[p>>2]=(c[p>>2]|0)+m;c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+4>>2]=4;c[H+44>>2]=c[z>>2];c[H+48>>2]=(c[z>>2]|0)+(c[v>>2]|0);c[H+40>>2]=4;c[u>>2]=tw(H,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;if(sr(c[u>>2]|0)|0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}uw(H+16|0,H,c[A>>2]|0);uw(H+24|0,H,c[C>>2]|0);uw(H+32|0,H,c[B>>2]|0);while(1){B=(vw(H)|0)>>>0<=2;if(!(B?(c[y>>2]|0)!=0:0))break;c[y>>2]=(c[y>>2]|0)+-1;ww(G,H);B=c[s>>2]|0;C=c[t>>2]|0;A=c[x>>2]|0;u=c[D>>2]|0;p=c[E>>2]|0;q=c[F>>2]|0;c[h>>2]=c[G>>2];c[h+4>>2]=c[G+4>>2];c[h+8>>2]=c[G+8>>2];c[I>>2]=xw(B,C,h,w,A,u,p,q)|0;q=(rr(c[I>>2]|0)|0)!=0;L=c[I>>2]|0;if(q){M=8;break;}c[s>>2]=(c[s>>2]|0)+L;}if((M|0)==8){c[i>>2]=L;K=c[i>>2]|0;l=g;return K|0;}if(!(yw(H)|0)){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}c[J>>2]=(c[x>>2]|0)-(c[w>>2]|0);if((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[i>>2]=-20;K=c[i>>2]|0;l=g;return K|0;}if(((c[s>>2]|0)+(c[J>>2]|0)|0)>>>0>(c[t>>2]|0)>>>0){c[i>>2]=-70;K=c[i>>2]|0;l=g;return K|0;}if((c[s>>2]|0)!=(c[w>>2]|0))mE(c[s>>2]|0,c[w>>2]|0,c[J>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[J>>2]|0);c[i>>2]=(c[s>>2]|0)-(c[r>>2]|0);K=c[i>>2]|0;l=g;return K|0;}function sw(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;m=l;l=l+352|0;n=m+344|0;o=m+340|0;p=m+336|0;q=m+332|0;r=m+328|0;s=m+324|0;t=m+320|0;u=m+316|0;v=m+312|0;w=m+308|0;x=m+304|0;y=m+300|0;z=m+296|0;A=m+292|0;B=m+288|0;C=m+284|0;D=m+280|0;E=m+276|0;F=m+272|0;G=m;H=m+268|0;I=m+264|0;J=m+260|0;K=m+256|0;c[o>>2]=b;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=c[u>>2];c[x>>2]=c[w>>2];c[y>>2]=(c[w>>2]|0)+(c[v>>2]|0);if((c[v>>2]|0)>>>0<5){c[n>>2]=-72;L=c[n>>2]|0;l=m;return L|0;}v=(Lw(c[x>>2]|0)|0)&65535;c[c[o>>2]>>2]=v;c[x>>2]=(c[x>>2]|0)+2;c[z>>2]=(d[c[x>>2]>>0]|0)>>6;c[A>>2]=(d[c[x>>2]>>0]|0)>>4&3;c[B>>2]=(d[c[x>>2]>>0]|0)>>2&3;v=c[x>>2]|0;if((d[c[x>>2]>>0]|0)&2|0){c[F>>2]=d[v+2>>0];c[F>>2]=(c[F>>2]|0)+((d[(c[x>>2]|0)+1>>0]|0)<<8);c[x>>2]=(c[x>>2]|0)+3;}else{c[F>>2]=d[v+1>>0];c[F>>2]=(c[F>>2]|0)+(((d[c[x>>2]>>0]|0)&1)<<8);c[x>>2]=(c[x>>2]|0)+2;}c[c[p>>2]>>2]=c[x>>2];c[x>>2]=(c[x>>2]|0)+(c[F>>2]|0);c[c[q>>2]>>2]=c[F>>2];if((c[x>>2]|0)>>>0>((c[y>>2]|0)+-3|0)>>>0){c[n>>2]=-72;L=c[n>>2]|0;l=m;return L|0;}a:do{switch(c[z>>2]|0){case 2:{c[C>>2]=0;F=c[r>>2]|0;q=c[x>>2]|0;c[x>>2]=q+1;Mw(F,a[q>>0]|0)|0;break;}case 1:{c[C>>2]=6;Nw(c[r>>2]|0,6)|0;break;}default:{c[I>>2]=63;c[H>>2]=Ow(G,I,C,c[x>>2]|0,(c[y>>2]|0)-(c[x>>2]|0)|0)|0;if(Pw(c[H>>2]|0)|0){c[n>>2]=-1;L=c[n>>2]|0;l=m;return L|0;}if((c[C>>2]|0)>>>0<=10){c[x>>2]=(c[x>>2]|0)+(c[H>>2]|0);Qw(c[r>>2]|0,G,c[I>>2]|0,c[C>>2]|0)|0;break a;}c[n>>2]=-20;L=c[n>>2]|0;l=m;return L|0;}}}while(0);b:do{switch(c[A>>2]|0){case 2:{c[D>>2]=0;if((c[x>>2]|0)>>>0<=((c[y>>2]|0)+-2|0)>>>0){C=c[t>>2]|0;I=c[x>>2]|0;c[x>>2]=I+1;Mw(C,(d[I>>0]|0)&31)|0;break b;}c[n>>2]=-72;L=c[n>>2]|0;l=m;return L|0;}case 1:{c[D>>2]=5;Nw(c[t>>2]|0,5)|0;break;}default:{c[J>>2]=31;c[H>>2]=Ow(G,J,D,c[x>>2]|0,(c[y>>2]|0)-(c[x>>2]|0)|0)|0;if(Pw(c[H>>2]|0)|0){c[n>>2]=-1;L=c[n>>2]|0;l=m;return L|0;}if((c[D>>2]|0)>>>0<=9){c[x>>2]=(c[x>>2]|0)+(c[H>>2]|0);Qw(c[t>>2]|0,G,c[J>>2]|0,c[D>>2]|0)|0;break b;}c[n>>2]=-20;L=c[n>>2]|0;l=m;return L|0;}}}while(0);c:do{switch(c[B>>2]|0){case 2:{c[E>>2]=0;if((c[x>>2]|0)>>>0<=((c[y>>2]|0)+-2|0)>>>0){D=c[s>>2]|0;J=c[x>>2]|0;c[x>>2]=J+1;Mw(D,a[J>>0]|0)|0;break c;}c[n>>2]=-72;L=c[n>>2]|0;l=m;return L|0;}case 1:{c[E>>2]=7;Nw(c[s>>2]|0,7)|0;break;}default:{c[K>>2]=127;c[H>>2]=Ow(G,K,E,c[x>>2]|0,(c[y>>2]|0)-(c[x>>2]|0)|0)|0;if(Pw(c[H>>2]|0)|0){c[n>>2]=-1;L=c[n>>2]|0;l=m;return L|0;}if((c[E>>2]|0)>>>0<=10){c[x>>2]=(c[x>>2]|0)+(c[H>>2]|0);Qw(c[s>>2]|0,G,c[K>>2]|0,c[E>>2]|0)|0;break c;}c[n>>2]=-20;L=c[n>>2]|0;l=m;return L|0;}}}while(0);c[n>>2]=(c[x>>2]|0)-(c[w>>2]|0);L=c[n>>2]|0;l=m;return L|0;}function tw(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if((c[j>>2]|0)>>>0<1){e=c[h>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[g>>2]=-72;n=c[g>>2]|0;l=f;return n|0;}e=(c[j>>2]|0)>>>0>=4;c[(c[h>>2]|0)+12>>2]=c[i>>2];do{if(e){c[(c[h>>2]|0)+8>>2]=(c[i>>2]|0)+(c[j>>2]|0)+-4;b=Hw(c[(c[h>>2]|0)+8>>2]|0)|0;c[c[h>>2]>>2]=b;c[k>>2]=d[(c[i>>2]|0)+((c[j>>2]|0)-1)>>0];if(c[k>>2]|0){b=8-(Kw(c[k>>2]|0)|0)|0;c[(c[h>>2]|0)+4>>2]=b;break;}c[g>>2]=-1;n=c[g>>2]|0;l=f;return n|0;}else{c[(c[h>>2]|0)+8>>2]=c[(c[h>>2]|0)+12>>2];c[c[h>>2]>>2]=d[c[(c[h>>2]|0)+12>>2]>>0];switch(c[j>>2]|0){case 7:{b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+6>>0]|0)<<16);o=9;break;}case 6:{o=9;break;}case 5:{o=10;break;}case 4:{o=11;break;}case 3:{o=12;break;}case 2:{o=13;break;}default:{}}if((o|0)==9){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+5>>0]|0)<<8);o=10;}if((o|0)==10){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+4>>0]|0)<<0);o=11;}if((o|0)==11){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+3>>0]|0)<<24);o=12;}if((o|0)==12){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+2>>0]|0)<<16);o=13;}if((o|0)==13){b=c[h>>2]|0;c[b>>2]=(c[b>>2]|0)+((d[(c[(c[h>>2]|0)+12>>2]|0)+1>>0]|0)<<8);}c[m>>2]=d[(c[i>>2]|0)+((c[j>>2]|0)-1)>>0];if(c[m>>2]|0){b=8-(Kw(c[m>>2]|0)|0)|0;c[(c[h>>2]|0)+4>>2]=b;b=(c[h>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(4-(c[j>>2]|0)<<3);break;}c[g>>2]=-1;n=c[g>>2]|0;l=f;return n|0;}}while(0);c[g>>2]=c[j>>2];n=c[g>>2]|0;l=f;return n|0;}function uw(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;h=g+8|0;i=g+4|0;j=g;k=g+12|0;c[h>>2]=a;c[i>>2]=d;c[j>>2]=f;f=c[j>>2]|0;b[k>>1]=b[f>>1]|0;b[k+2>>1]=b[f+2>>1]|0;f=Ew(c[i>>2]|0,e[k>>1]|0)|0;c[c[h>>2]>>2]=f;vw(c[i>>2]|0)|0;c[(c[h>>2]|0)+4>>2]=(c[j>>2]|0)+4;l=g;return;}function vw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=((c[(c[e>>2]|0)+12>>2]|0)+4|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=Hw(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=Hw(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function ww(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+48|0;f=e+44|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[f>>2]=a;c[g>>2]=b;c[m>>2]=c[(c[g>>2]|0)+44>>2];c[n>>2]=c[(c[g>>2]|0)+48>>2];c[h>>2]=(Cw((c[g>>2]|0)+16|0,c[g>>2]|0)|0)&255;if(c[h>>2]|0)s=c[(c[f>>2]|0)+4>>2]|0;else s=c[(c[g>>2]|0)+40>>2]|0;c[i>>2]=s;if((c[h>>2]|0)==63){s=c[m>>2]|0;c[m>>2]=s+1;c[o>>2]=d[s>>0];if((c[o>>2]|0)>>>0<255)c[h>>2]=(c[h>>2]|0)+(c[o>>2]|0);else{c[h>>2]=(d[c[m>>2]>>0]|0)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+((d[(c[m>>2]|0)+2>>0]|0)<<16);c[m>>2]=(c[m>>2]|0)+3;}if((c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0)c[h>>2]=318;if((c[m>>2]|0)>>>0>=(c[n>>2]|0)>>>0)c[m>>2]=(c[n>>2]|0)+-1;}c[p>>2]=(Cw((c[g>>2]|0)+24|0,c[g>>2]|0)|0)&255;if(Dw()|0)vw(c[g>>2]|0)|0;o=(c[p>>2]|0)-1|0;c[q>>2]=o;c[q>>2]=(c[p>>2]|0)==0?0:o;o=c[6880+(c[p>>2]<<2)>>2]|0;c[j>>2]=o+(Ew(c[g>>2]|0,c[q>>2]|0)|0);if(Dw()|0)vw(c[g>>2]|0)|0;if(!(c[p>>2]|0))c[j>>2]=c[i>>2];if(c[p>>2]|((c[h>>2]|0)!=0^1)&1|0)c[(c[g>>2]|0)+40>>2]=c[(c[f>>2]|0)+4>>2];c[k>>2]=(Cw((c[g>>2]|0)+32|0,c[g>>2]|0)|0)&255;if((c[k>>2]|0)==127){p=c[m>>2]|0;c[m>>2]=p+1;c[r>>2]=d[p>>0];if((c[r>>2]|0)>>>0<255)c[k>>2]=(c[k>>2]|0)+(c[r>>2]|0);else{c[k>>2]=(d[c[m>>2]>>0]|0)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+((d[(c[m>>2]|0)+2>>0]|0)<<16);c[m>>2]=(c[m>>2]|0)+3;}if((c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0)c[k>>2]=382;if((c[m>>2]|0)>>>0>=(c[n>>2]|0)>>>0)c[m>>2]=(c[n>>2]|0)+-1;}c[k>>2]=(c[k>>2]|0)+4;c[c[f>>2]>>2]=c[h>>2];c[(c[f>>2]|0)+4>>2]=c[j>>2];c[(c[f>>2]|0)+8>>2]=c[k>>2];c[(c[g>>2]|0)+44>>2]=c[m>>2];l=e;return;}function xw(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=l;l=l+64|0;m=k+60|0;n=k+56|0;o=k+52|0;p=k+48|0;q=k+44|0;r=k+40|0;s=k+36|0;t=k+32|0;u=k+28|0;v=k+24|0;w=k+20|0;x=k+16|0;y=k+12|0;z=k+8|0;A=k+4|0;B=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+8>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+4>>2]|0));if((c[u>>2]|0)>>>0>(c[x>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[m>>2]=-70;C=c[m>>2]|0;l=k;return C|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}zw(c[n>>2]|0,c[c[p>>2]>>2]|0,c[e>>2]|0);c[n>>2]=c[u>>2];c[c[p>>2]>>2]=c[y>>2];do{if((c[e+4>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+4>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;C=c[m>>2]|0;l=k;return C|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+8>>2]|0)|0)>>>0<=(c[t>>2]|0)>>>0){nE(c[u>>2]|0,c[z>>2]|0,c[e+8>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);y=e+8|0;c[y>>2]=(c[y>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];if((c[n>>2]|0)>>>0<=(c[x>>2]|0)>>>0?(c[e+8>>2]|0)>>>0>=4:0)break;while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;y=c[z>>2]|0;c[z>>2]=y+1;p=a[y>>0]|0;y=c[n>>2]|0;c[n>>2]=y+1;a[y>>0]=p;}c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}}while(0);if((c[e+4>>2]|0)>>>0<8){c[B>>2]=c[6816+(c[e+4>>2]<<2)>>2];a[c[n>>2]>>0]=a[c[z>>2]>>0]|0;a[(c[n>>2]|0)+1>>0]=a[(c[z>>2]|0)+1>>0]|0;a[(c[n>>2]|0)+2>>0]=a[(c[z>>2]|0)+2>>0]|0;a[(c[n>>2]|0)+3>>0]=a[(c[z>>2]|0)+3>>0]|0;c[z>>2]=(c[z>>2]|0)+(c[6848+(c[e+4>>2]<<2)>>2]|0);Aw((c[n>>2]|0)+4|0,c[z>>2]|0);c[z>>2]=(c[z>>2]|0)+(0-(c[B>>2]|0));}else Bw(c[n>>2]|0,c[z>>2]|0);c[n>>2]=(c[n>>2]|0)+8;c[z>>2]=(c[z>>2]|0)+8;B=c[n>>2]|0;a:do{if((c[w>>2]|0)>>>0>((c[o>>2]|0)+-12|0)>>>0){if(B>>>0<(c[x>>2]|0)>>>0){zw(c[n>>2]|0,c[z>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);c[z>>2]=(c[z>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;r=c[z>>2]|0;c[z>>2]=r+1;A=a[r>>0]|0;r=c[n>>2]|0;c[n>>2]=r+1;a[r>>0]=A;}}else zw(B,c[z>>2]|0,(c[e+8>>2]|0)-8|0);}while(0);c[m>>2]=c[v>>2];C=c[m>>2]|0;l=k;return C|0;}function yw(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function zw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Bw(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Aw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function Bw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Cw(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=Ew(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function Dw(){return 1;}function Ew(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Fw(c[e>>2]|0,c[f>>2]|0)|0;Gw(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Fw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function Gw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function Hw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Dw()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=pr(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=Iw(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Iw(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;b=l;l=l+16|0;e=b;f=b+12|0;g=b+8|0;c[f>>2]=a;a=(tr()|0)!=0;h=c[f>>2]|0;if(a){a=Jw(h)|0;f=e;c[f>>2]=a;c[f+4>>2]=y;i=e;j=i;k=c[j>>2]|0;m=i+4|0;n=m;o=c[n>>2]|0;y=o;l=b;return k|0;}else{c[g>>2]=h;h=d[c[g>>2]>>0]|0;f=jE(d[(c[g>>2]|0)+1>>0]|0|0,0,8)|0;a=dE(h|0,0,f|0,y|0)|0;f=y;h=jE(d[(c[g>>2]|0)+2>>0]|0|0,0,16)|0;p=dE(a|0,f|0,h|0,y|0)|0;h=y;f=jE(d[(c[g>>2]|0)+3>>0]|0|0,0,24)|0;a=dE(p|0,h|0,f|0,y|0)|0;f=dE(a|0,y|0,0,d[(c[g>>2]|0)+4>>0]|0|0)|0;a=y;h=jE(d[(c[g>>2]|0)+5>>0]|0|0,0,40)|0;p=dE(f|0,a|0,h|0,y|0)|0;h=y;a=jE(d[(c[g>>2]|0)+6>>0]|0|0,0,48)|0;f=dE(p|0,h|0,a|0,y|0)|0;a=y;h=jE(d[(c[g>>2]|0)+7>>0]|0|0,0,56)|0;g=dE(f|0,a|0,h|0,y|0)|0;h=e;c[h>>2]=g;c[h+4>>2]=y;i=e;j=i;k=c[j>>2]|0;m=i+4|0;n=m;o=c[n>>2]|0;y=o;l=b;return k|0;}return 0;}function Jw(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;a[f+4>>0]=a[b+4>>0]|0;a[f+5>>0]=a[b+5>>0]|0;a[f+6>>0]=a[b+6>>0]|0;a[f+7>>0]=a[b+7>>0]|0;b=f;y=c[b+4>>2]|0;l=d;return c[b>>2]|0;}function Kw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Lw(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(tr()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=Tw(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function Mw(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+20|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=d;a[h>>0]=e;c[i>>2]=c[g>>2];c[j>>2]=c[i>>2];c[k>>2]=(c[g>>2]|0)+4;c[m>>2]=c[k>>2];b[c[j>>2]>>1]=0;b[(c[j>>2]|0)+2>>1]=0;b[c[m>>2]>>1]=0;a[(c[m>>2]|0)+2>>0]=a[h>>0]|0;a[(c[m>>2]|0)+3>>0]=0;l=f;return 0;}function Nw(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;g=f+40|0;h=f+36|0;i=f+32|0;j=f+28|0;k=f+24|0;m=f+20|0;n=f+16|0;o=f+12|0;p=f+8|0;q=f+4|0;r=f;c[h>>2]=d;c[i>>2]=e;c[j>>2]=c[h>>2];c[k>>2]=c[j>>2];c[m>>2]=(c[h>>2]|0)+4;c[n>>2]=c[m>>2];c[o>>2]=1<>2];c[p>>2]=(c[o>>2]|0)-1;c[q>>2]=c[p>>2];if((c[i>>2]|0)>>>0<1){c[g>>2]=-1;s=c[g>>2]|0;l=f;return s|0;}b[c[k>>2]>>1]=c[i>>2];b[(c[k>>2]|0)+2>>1]=1;c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;b[(c[n>>2]|0)+(c[r>>2]<<2)>>1]=0;a[(c[n>>2]|0)+(c[r>>2]<<2)+2>>0]=c[r>>2];a[(c[n>>2]|0)+(c[r>>2]<<2)+3>>0]=c[i>>2];c[r>>2]=(c[r>>2]|0)+1;}c[g>>2]=0;s=c[g>>2]|0;l=f;return s|0;}function Ow(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;A=h+70|0;B=h+68|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=pr(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<>2])+1;c[u>>2]=1<>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if((c[t>>2]|0)<=1)break;if((c[x>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0)break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=pr(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=19;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[m+(n<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;n=pr(c[r>>2]|0)|0;c[v>>2]=n>>>(c[w>>2]|0);}}while(0);b[A>>1]=(c[u>>2]<<1)-1-(c[t>>2]|0);n=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(b[A>>1]|0)>>>0){b[B>>1]=n&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{b[B>>1]=n&(m<<1)-1;if((b[B>>1]|0)>=(c[u>>2]|0))b[B>>1]=(b[B>>1]|0)-(b[A>>1]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}b[B>>1]=(b[B>>1]|0)+-1<<16>>16;m=(Sw(b[B>>1]|0)|0)<<16>>16;c[t>>2]=(c[t>>2]|0)-m;m=b[B>>1]|0;n=c[j>>2]|0;g=c[x>>2]|0;c[x>>2]=g+1;b[n+(g<<1)>>1]=m;c[y>>2]=((b[B>>1]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=pr(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==19){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-1;C=c[i>>2]|0;l=h;return C|0;}c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);if(((c[r>>2]|0)-(c[p>>2]|0)|0)>>>0>(c[o>>2]|0)>>>0){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}else{c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function Pw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=sr(c[d>>2]|0)|0;l=b;return a|0;}function Qw(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,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;j=l;l=l+592|0;k=j+572|0;m=j+568|0;n=j+564|0;o=j+560|0;p=j+556|0;q=j+580|0;r=j+552|0;s=j+548|0;t=j+544|0;u=j+540|0;v=j+536|0;w=j;x=j+532|0;y=j+528|0;z=j+578|0;A=j+524|0;B=j+520|0;C=j+516|0;D=j+512|0;E=j+584|0;F=j+576|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[r>>2]=(c[m>>2]|0)+4;c[s>>2]=c[r>>2];c[t>>2]=1<>2];c[u>>2]=(c[t>>2]|0)-1;c[v>>2]=Rw(c[t>>2]|0)|0;c[x>>2]=0;c[y>>2]=(c[t>>2]|0)-1;b[z>>1]=1<<(c[p>>2]|0)-1;c[A>>2]=1;if((c[o>>2]|0)>>>0>255){c[k>>2]=-46;G=c[k>>2]|0;l=j;return G|0;}if((c[p>>2]|0)>>>0>12){c[k>>2]=-44;G=c[k>>2]|0;l=j;return G|0;}b[q>>1]=c[p>>2];c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0)==-1){r=c[B>>2]&255;i=c[s>>2]|0;h=c[y>>2]|0;c[y>>2]=h+-1;a[i+(h<<2)+2>>0]=r;b[w+(c[B>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0)>=(b[z>>1]|0))c[A>>2]=0;b[w+(c[B>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0;}c[B>>2]=(c[B>>2]|0)+1;}c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;c[C>>2]=0;while(1){H=c[B>>2]|0;if((c[C>>2]|0)>=(b[(c[n>>2]|0)+(c[B>>2]<<1)>>1]|0))break;a[(c[s>>2]|0)+(c[x>>2]<<2)+2>>0]=H;c[x>>2]=(c[x>>2]|0)+(c[v>>2]|0)&c[u>>2];while(1){if((c[x>>2]|0)>>>0<=(c[y>>2]|0)>>>0)break;c[x>>2]=(c[x>>2]|0)+(c[v>>2]|0)&c[u>>2];}c[C>>2]=(c[C>>2]|0)+1;}c[B>>2]=H+1;}if(c[x>>2]|0){c[k>>2]=-1;G=c[k>>2]|0;l=j;return G|0;}c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;a[E>>0]=a[(c[s>>2]|0)+(c[D>>2]<<2)+2>>0]|0;x=w+(d[E>>0]<<1)|0;H=b[x>>1]|0;b[x>>1]=H+1<<16>>16;b[F>>1]=H;H=c[p>>2]|0;x=H-(Kw(e[F>>1]|0)|0)&255;a[(c[s>>2]|0)+(c[D>>2]<<2)+3>>0]=x;b[(c[s>>2]|0)+(c[D>>2]<<2)>>1]=(e[F>>1]<>2]|0)+(c[D>>2]<<2)+3>>0])-(c[t>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}b[q+2>>1]=c[A>>2];A=c[m>>2]|0;b[A>>1]=b[q>>1]|0;b[A+2>>1]=b[q+2>>1]|0;c[k>>2]=0;G=c[k>>2]|0;l=j;return G|0;}function Rw(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return((c[d>>2]|0)>>>1)+((c[d>>2]|0)>>>3)+3|0;}function Sw(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=a;a=b[d>>1]|0;l=c;return((b[d>>1]|0)<0?0-a|0:a)&65535|0;}function Tw(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;l=e;return b[g>>1]|0;}function Uw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=((pr(c[j>>2]|0)|0)&2097151)>>>2;c[o>>2]=((pr((c[m>>2]|0)+2|0)|0)&16777215)>>>5;if((c[n>>2]|0)>>>0>(c[c[i>>2]>>2]|0)>>>0){c[g>>2]=-20;p=c[g>>2]|0;l=f;return p|0;}if(((c[o>>2]|0)+5|0)>>>0>(c[k>>2]|0)>>>0){c[g>>2]=-20;p=c[g>>2]|0;l=f;return p|0;}if(Ww(Vw(c[h>>2]|0,c[n>>2]|0,(c[m>>2]|0)+5|0,c[o>>2]|0)|0)|0){c[g>>2]=-20;p=c[g>>2]|0;l=f;return p|0;}else{c[c[i>>2]>>2]=c[n>>2];c[g>>2]=(c[o>>2]|0)+5;p=c[g>>2]|0;l=f;return p|0;}return 0;}function Vw(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+44|0;i=g+40|0;j=g+36|0;k=g+32|0;m=g+28|0;n=g+24|0;o=g+20|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[o>>2]=(c[j>>2]|0)>>>8;c[q>>2]=0;if(!(c[j>>2]|0)){c[h>>2]=-70;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)>>>0>(c[j>>2]|0)>>>0){c[h>>2]=-20;s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==(c[j>>2]|0)){mE(c[i>>2]|0,c[k>>2]|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}if((c[m>>2]|0)==1){oE(c[i>>2]|0,(d[c[k>>2]>>0]|0)&255|0,c[j>>2]|0)|0;c[h>>2]=c[j>>2];s=c[h>>2]|0;l=g;return s|0;}c[n>>2]=(c[m>>2]<<4>>>0)/((c[j>>2]|0)>>>0)|0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=3)break;f=(c[7008+((c[n>>2]|0)*24|0)+(c[r>>2]<<3)>>2]|0)+(N(c[7008+((c[n>>2]|0)*24|0)+(c[r>>2]<<3)+4>>2]|0,c[o>>2]|0)|0)|0;c[p+(c[r>>2]<<2)>>2]=f;c[r>>2]=(c[r>>2]|0)+1;}r=p+4|0;c[r>>2]=(c[r>>2]|0)+((c[p+4>>2]|0)>>>4);r=p+8|0;c[r>>2]=(c[r>>2]|0)+((c[p+8>>2]|0)>>>3);if((c[p+4>>2]|0)>>>0<(c[p>>2]|0)>>>0)c[q>>2]=1;c[h>>2]=sc[c[11988+(c[q>>2]<<2)>>2]&15](c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;s=c[h>>2]|0;l=g;return s|0;}function Ww(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=sr(c[d>>2]|0)|0;l=b;return a|0;}function Xw(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+8224|0;h=g+8220|0;i=g+8216|0;j=g+8212|0;k=g+8208|0;m=g+8204|0;n=g;o=g+8200|0;p=g+8196|0;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;oE(n|0,0,8194)|0;b[n>>1]=12;c[o>>2]=c[k>>2];c[p>>2]=ox(n,c[k>>2]|0,c[m>>2]|0)|0;k=(Ww(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(k){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}if(f>>>0>=(c[m>>2]|0)>>>0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[m>>2]=(c[m>>2]|0)-(c[p>>2]|0);c[h>>2]=px(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,n)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function Yw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+16416|0;g=f+16412|0;h=f+16408|0;i=f+16404|0;j=f+16400|0;k=f+16396|0;m=f;n=f+16392|0;o=f+16388|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;oE(m|0,0,16388)|0;c[m>>2]=12;c[n>>2]=c[j>>2];c[o>>2]=Zw(m,c[j>>2]|0,c[k>>2]|0)|0;j=(Ww(c[o>>2]|0)|0)!=0;e=c[o>>2]|0;if(j){c[g>>2]=e;p=c[g>>2]|0;l=f;return p|0;}if(e>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;p=c[g>>2]|0;l=f;return p|0;}else{c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[o>>2]|0);c[g>>2]=_w(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,m)|0;p=c[g>>2]|0;l=f;return p|0;}return 0;}function Zw(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,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;g=l;l=l+2128|0;h=g+2120|0;i=g+2116|0;j=g+2112|0;k=g+2108|0;m=g+1760|0;n=g+1248|0;o=g+1168|0;p=g+1088|0;q=g+2104|0;r=g;s=g+2100|0;t=g+2096|0;u=g+2092|0;v=g+2088|0;w=g+2084|0;x=g+2080|0;y=g+2076|0;z=g+2072|0;A=g+2068|0;B=g+2064|0;C=g+2060|0;D=g+2056|0;E=g+2052|0;F=g+2048|0;G=g+2044|0;H=g+2040|0;I=g+2036|0;J=g+2032|0;K=g+2028|0;L=g+2024|0;M=g+2020|0;N=g+2016|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;f=o;e=f+68|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));f=p;e=f+72|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(e|0));c[q>>2]=p+4;c[w>>2]=c[c[i>>2]>>2];c[y>>2]=c[i>>2];c[z>>2]=(c[y>>2]|0)+4;if((c[w>>2]|0)>>>0>16){c[h>>2]=-44;O=c[h>>2]|0;l=g;return O|0;}c[x>>2]=ex(m,256,o,v,s,c[j>>2]|0,c[k>>2]|0)|0;if(Ww(c[x>>2]|0)|0){c[h>>2]=c[x>>2];O=c[h>>2]|0;l=g;return O|0;}if((c[s>>2]|0)>>>0>(c[w>>2]|0)>>>0){c[h>>2]=-44;O=c[h>>2]|0;l=g;return O|0;}c[t>>2]=c[s>>2];while(1){if(c[o+(c[t>>2]<<2)>>2]|0)break;if(!(c[t>>2]|0)){P=10;break;}c[t>>2]=(c[t>>2]|0)+-1;}if((P|0)==10){c[h>>2]=-1;O=c[h>>2]|0;l=g;return O|0;}c[B>>2]=0;c[A>>2]=1;while(1){Q=c[B>>2]|0;if((c[A>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[C>>2]=Q;c[B>>2]=(c[B>>2]|0)+(c[o+(c[A>>2]<<2)>>2]|0);c[(c[q>>2]|0)+(c[A>>2]<<2)>>2]=c[C>>2];c[A>>2]=(c[A>>2]|0)+1;}c[c[q>>2]>>2]=Q;c[u>>2]=c[B>>2];c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[E>>2]=d[m+(c[D>>2]|0)>>0];B=(c[q>>2]|0)+(c[E>>2]<<2)|0;Q=c[B>>2]|0;c[B>>2]=Q+1;c[F>>2]=Q;a[n+(c[F>>2]<<1)>>0]=c[D>>2];a[n+(c[F>>2]<<1)+1>>0]=c[E>>2];c[D>>2]=(c[D>>2]|0)+1;}c[c[q>>2]>>2]=0;c[G>>2]=(c[s>>2]|0)+1-(c[t>>2]|0);c[H>>2]=0;c[K>>2]=(c[w>>2]|0)-(c[s>>2]|0)-1;c[L>>2]=r;c[I>>2]=1;while(1){if((c[I>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[M>>2]=c[H>>2];c[H>>2]=(c[H>>2]|0)+(c[o+(c[I>>2]<<2)>>2]<<(c[I>>2]|0)+(c[K>>2]|0));c[(c[L>>2]|0)+(c[I>>2]<<2)>>2]=c[M>>2];c[I>>2]=(c[I>>2]|0)+1;}c[J>>2]=c[G>>2];while(1){if((c[J>>2]|0)>>>0>((c[w>>2]|0)-(c[G>>2]|0)|0)>>>0)break;c[N>>2]=r+((c[J>>2]|0)*68|0);c[I>>2]=1;while(1){if((c[I>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[(c[N>>2]|0)+(c[I>>2]<<2)>>2]=(c[(c[L>>2]|0)+(c[I>>2]<<2)>>2]|0)>>>(c[J>>2]|0);c[I>>2]=(c[I>>2]|0)+1;}c[J>>2]=(c[J>>2]|0)+1;}fx(c[z>>2]|0,c[w>>2]|0,n,c[u>>2]|0,p,r,c[t>>2]|0,(c[s>>2]|0)+1|0);c[h>>2]=c[x>>2];O=c[h>>2]|0;l=g;return O|0;}function _w(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,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;g=l;l=l+192|0;h=g+184|0;i=g+180|0;j=g+176|0;k=g+172|0;m=g+168|0;n=g+164|0;o=g+160|0;p=g+156|0;q=g+152|0;r=g+148|0;s=g+144|0;t=g+140|0;u=g+136|0;v=g+120|0;w=g+104|0;x=g+88|0;y=g+72|0;z=g+64|0;A=g+60|0;B=g+56|0;C=g+52|0;D=g+48|0;E=g+44|0;F=g+40|0;G=g+36|0;H=g+32|0;I=g+28|0;J=g+24|0;K=g+20|0;L=g+16|0;M=g+12|0;N=g+8|0;O=g+4|0;P=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[m>>2]|0)>>>0<10){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[o>>2]=c[k>>2];c[p>>2]=c[i>>2];c[q>>2]=(c[p>>2]|0)+(c[j>>2]|0);c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+4;c[t>>2]=c[c[n>>2]>>2];c[z>>2]=(Lw(c[o>>2]|0)|0)&65535;c[A>>2]=(Lw((c[o>>2]|0)+2|0)|0)&65535;c[B>>2]=(Lw((c[o>>2]|0)+4|0)|0)&65535;c[D>>2]=(c[o>>2]|0)+6;c[E>>2]=(c[D>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[E>>2]|0)+(c[A>>2]|0);c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(((c[j>>2]|0)+3|0)>>>0)/4|0;c[I>>2]=(c[p>>2]|0)+(c[H>>2]|0);c[J>>2]=(c[I>>2]|0)+(c[H>>2]|0);c[K>>2]=(c[J>>2]|0)+(c[H>>2]|0);c[L>>2]=c[p>>2];c[M>>2]=c[I>>2];c[N>>2]=c[J>>2];c[O>>2]=c[K>>2];c[C>>2]=(c[m>>2]|0)-((c[z>>2]|0)+(c[A>>2]|0)+(c[B>>2]|0)+6);if((c[C>>2]|0)>>>0>(c[m>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=tw(v,c[D>>2]|0,c[z>>2]|0)|0;if(Ww(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=tw(w,c[E>>2]|0,c[A>>2]|0)|0;if(Ww(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=tw(x,c[F>>2]|0,c[B>>2]|0)|0;if(Ww(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}c[u>>2]=tw(y,c[G>>2]|0,c[C>>2]|0)|0;if(Ww(c[u>>2]|0)|0){c[h>>2]=c[u>>2];Q=c[h>>2]|0;l=g;return Q|0;}u=vw(v)|0;C=u|(vw(w)|0);u=C|(vw(x)|0);c[P>>2]=u|(vw(y)|0);while(1){if(c[P>>2]|0)break;if((c[O>>2]|0)>>>0>=((c[q>>2]|0)+-7|0)>>>0)break;if($w()|0){u=ax(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if($w()|0){u=ax(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if($w()|0){u=ax(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if($w()|0){u=ax(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}$w()|0;u=ax(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;$w()|0;u=ax(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;$w()|0;u=ax(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;$w()|0;u=ax(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;if($w()|0){u=ax(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;}if($w()|0){u=ax(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;}if($w()|0){u=ax(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;}if($w()|0){u=ax(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;}u=ax(c[L>>2]|0,v,c[s>>2]|0,c[t>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+u;u=ax(c[M>>2]|0,w,c[s>>2]|0,c[t>>2]|0)|0;c[M>>2]=(c[M>>2]|0)+u;u=ax(c[N>>2]|0,x,c[s>>2]|0,c[t>>2]|0)|0;c[N>>2]=(c[N>>2]|0)+u;u=ax(c[O>>2]|0,y,c[s>>2]|0,c[t>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+u;u=vw(v)|0;C=u|(vw(w)|0);u=C|(vw(x)|0);c[P>>2]=u|(vw(y)|0);}if((c[L>>2]|0)>>>0>(c[I>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[M>>2]|0)>>>0>(c[J>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}bx(c[L>>2]|0,v,c[I>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;bx(c[M>>2]|0,w,c[J>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;bx(c[N>>2]|0,x,c[K>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;bx(c[O>>2]|0,y,c[q>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;t=yw(v)|0;v=t&(yw(w)|0);w=v&(yw(x)|0);c[P>>2]=w&(yw(y)|0);if(c[P>>2]|0){c[h>>2]=c[j>>2];Q=c[h>>2]|0;l=g;return Q|0;}else{c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}return 0;}function $w(){return 0;}function ax(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=dx(c[j>>2]|0,c[m>>2]|0)|0;m=c[i>>2]|0;i=(c[k>>2]|0)+(c[n>>2]<<2)|0;a[m>>0]=a[i>>0]|0;a[m+1>>0]=a[i+1>>0]|0;Gw(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0;}function bx(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[h>>2];while(1){if(vw(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>=((c[j>>2]|0)+-7|0)>>>0)break;if($w()|0){f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}$w()|0;f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;if($w()|0){f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){if(vw(c[i>>2]|0)|0)break;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=ax(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}while(1){o=c[h>>2]|0;if((c[h>>2]|0)>>>0>((c[j>>2]|0)+-2|0)>>>0)break;f=ax(o,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+f;}if(o>>>0>=(c[j>>2]|0)>>>0){p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}j=cx(c[h>>2]|0,c[i>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+j;p=c[h>>2]|0;q=c[n>>2]|0;r=p;s=q;t=r-s|0;l=g;return t|0;}function cx(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=g;c[n>>2]=dx(c[j>>2]|0,c[m>>2]|0)|0;a[c[i>>2]>>0]=a[(c[k>>2]|0)+(c[n>>2]<<2)>>0]|0;i=c[j>>2]|0;if((d[(c[k>>2]|0)+(c[n>>2]<<2)+3>>0]|0|0)==1){Gw(i,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);l=h;return 1;}if((c[i+4>>2]|0)>>>0>=32){l=h;return 1;}Gw(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<2)+2>>0]|0);if((c[(c[j>>2]|0)+4>>2]|0)>>>0<=32){l=h;return 1;}c[(c[j>>2]|0)+4>>2]=32;l=h;return 1;}function dx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function ex(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;k=l;l=l+80|0;m=k+68|0;n=k+64|0;o=k+60|0;p=k+56|0;q=k+52|0;r=k+48|0;s=k+44|0;t=k+40|0;u=k+36|0;v=k+32|0;w=k+28|0;x=k+24|0;y=k+20|0;z=k+16|0;A=k+12|0;B=k+8|0;C=k+4|0;D=k;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[w>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}c[x>>2]=d[c[w>>2]>>0];s=c[x>>2]|0;a:do{if((c[x>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}c[y>>2]=jx(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[w>>2]|0)+1|0,c[x>>2]|0)|0;if(Pw(c[y>>2]|0)|0){c[m>>2]=c[y>>2];E=c[m>>2]|0;l=k;return E|0;}}else{j=c[x>>2]|0;if(s>>>0>=242){c[y>>2]=c[7392+(j-242<<2)>>2];oE(c[n>>2]|0,1,c[o>>2]|0)|0;c[x>>2]=0;break;}c[y>>2]=j-127;c[x>>2]=(((c[y>>2]|0)+1|0)>>>0)/2|0;if(((c[x>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;E=c[m>>2]|0;l=k;return E|0;}if((c[y>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[w>>2]=(c[w>>2]|0)+1;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[z>>2]|0)>>0]=(d[(c[w>>2]|0)+(((c[z>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[z>>2]|0)+1)>>0]=(d[(c[w>>2]|0)+(((c[z>>2]|0)>>>0)/2|0)>>0]|0)&15;c[z>>2]=(c[z>>2]|0)+2;}}}while(0);w=c[p>>2]|0;o=w+68|0;do{c[w>>2]=0;w=w+4|0;}while((w|0)<(o|0));c[u>>2]=0;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0|0)>=16){F=20;break;}w=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)<<2)|0;c[w>>2]=(c[w>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[z>>2]|0)>>0]|0)>>1);c[z>>2]=(c[z>>2]|0)+1;}if((F|0)==20){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[v>>2]=(Kw(c[u>>2]|0)|0)+1;if((c[v>>2]|0)>>>0>16){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}c[A>>2]=1<>2];c[B>>2]=(c[A>>2]|0)-(c[u>>2]|0);c[C>>2]=1<<(Kw(c[B>>2]|0)|0);c[D>>2]=(Kw(c[B>>2]|0)|0)+1;if((c[C>>2]|0)!=(c[B>>2]|0)){c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=c[D>>2];n=(c[p>>2]|0)+(c[D>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[y>>2]|0)+1;c[c[r>>2]>>2]=c[v>>2];c[m>>2]=(c[x>>2]|0)+1;E=c[m>>2]|0;l=k;return E|0;}c[m>>2]=-20;E=c[m>>2]|0;l=k;return E|0;}function fx(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+160|0;o=n+140|0;p=n+136|0;q=n+132|0;r=n+128|0;s=n+124|0;t=n+120|0;u=n+116|0;v=n+112|0;w=n;x=n+108|0;y=n+104|0;z=n+100|0;A=n+148|0;B=n+96|0;C=n+92|0;D=n+88|0;E=n+84|0;F=n+80|0;G=n+76|0;H=n+72|0;I=n+68|0;J=n+144|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+68|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];gx((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*68|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{c[I>>2]=(c[D>>2]|0)+(c[E>>2]|0);hx(J,b[A>>1]|0);a[J+2>>0]=c[C>>2];a[J+3>>0]=1;c[H>>2]=c[D>>2];while(1){if((c[H>>2]|0)>>>0>=(c[I>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[H>>2]<<2)|0;b[m>>1]=b[J>>1]|0;b[m+2>>1]=b[J+2>>1]|0;c[H>>2]=(c[H>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function gx(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+160|0;q=p+136|0;r=p+132|0;s=p+128|0;t=p+124|0;u=p+120|0;v=p+116|0;w=p+112|0;x=p+108|0;y=p+144|0;z=p+140|0;A=p;B=p+104|0;C=p+100|0;D=p+96|0;E=p+92|0;F=p+88|0;G=p+84|0;H=p+80|0;I=p+76|0;J=p+72|0;K=p+68|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+68|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[D>>2]=c[A+(c[u>>2]<<2)>>2];hx(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[C>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[C>>2]=(c[C>>2]|0)+1;}}}while(0);c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[B>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[B>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);hx(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{C=c[q>>2]|0;D=c[J>>2]|0;c[J>>2]=D+1;u=C+(D<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[B>>2]=(c[B>>2]|0)+1;}l=p;return;}function hx(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(tr()|0)!=0;d=c[h>>2]|0;if(f){ix(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function ix(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=c[g>>2]|0;a[e>>0]=a[h>>0]|0;a[e+1>>0]=a[h+1>>0]|0;l=f;return;}function jx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+16960|0;g=f+16948|0;h=f+16944|0;i=f+16940|0;j=f+16936|0;k=f+16932|0;m=f+16928|0;n=f+16924|0;o=f+16400|0;p=f;q=f+16920|0;r=f+16916|0;s=f+16912|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=c[m>>2];c[r>>2]=255;if((c[k>>2]|0)>>>0<2){c[g>>2]=-72;t=c[g>>2]|0;l=f;return t|0;}c[s>>2]=Ow(o,r,q,c[m>>2]|0,c[k>>2]|0)|0;m=(Pw(c[s>>2]|0)|0)!=0;j=c[s>>2]|0;if(m){c[g>>2]=j;t=c[g>>2]|0;l=f;return t|0;}if(j>>>0>=(c[k>>2]|0)>>>0){c[g>>2]=-72;t=c[g>>2]|0;l=f;return t|0;}c[n>>2]=(c[n>>2]|0)+(c[s>>2]|0);c[k>>2]=(c[k>>2]|0)-(c[s>>2]|0);c[s>>2]=Qw(p,o,c[r>>2]|0,c[q>>2]|0)|0;if(Pw(c[s>>2]|0)|0){c[g>>2]=c[s>>2];t=c[g>>2]|0;l=f;return t|0;}else{c[g>>2]=kx(c[h>>2]|0,c[i>>2]|0,c[n>>2]|0,c[k>>2]|0,p)|0;t=c[g>>2]|0;l=f;return t|0;}return 0;}function kx(d,f,g,h,i){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,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;j=l;l=l+192|0;k=j+184|0;m=j+180|0;n=j+176|0;o=j+172|0;p=j+168|0;q=j+164|0;r=j+160|0;s=j+156|0;t=j+152|0;u=j+148|0;v=j+144|0;w=j+128|0;x=j+120|0;y=j+112|0;z=j+108|0;A=j+104|0;B=j+100|0;C=j+96|0;D=j+92|0;E=j+88|0;F=j+84|0;G=j+80|0;H=j+76|0;I=j+72|0;J=j+68|0;K=j+64|0;L=j+48|0;M=j+40|0;N=j+32|0;O=j+28|0;P=j+24|0;Q=j+20|0;R=j+16|0;S=j+12|0;T=j+8|0;U=j+4|0;V=j+188|0;W=j;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=i;i=c[U>>2]|0;b[V>>1]=b[i>>1]|0;b[V+2>>1]=b[i+2>>1]|0;c[W>>2]=e[V+2>>1];V=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;T=c[U>>2]|0;if(c[W>>2]|0){c[B>>2]=V;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=T;c[G>>2]=1;c[H>>2]=c[B>>2];c[I>>2]=c[H>>2];c[J>>2]=(c[I>>2]|0)+(c[C>>2]|0);c[K>>2]=(c[J>>2]|0)+-3;c[O>>2]=tw(L,c[D>>2]|0,c[E>>2]|0)|0;do{if(!(Pw(c[O>>2]|0)|0)){uw(M,L,c[F>>2]|0);uw(N,L,c[F>>2]|0);while(1){if(vw(L)|0)break;if((c[I>>2]|0)>>>0>=(c[K>>2]|0)>>>0)break;if(c[G>>2]|0)X=(lx(M,L)|0)&255;else X=(Cw(M,L)|0)&255;a[c[I>>2]>>0]=X;if(c[G>>2]|0)Y=(lx(N,L)|0)&255;else Y=(Cw(N,L)|0)&255;a[(c[I>>2]|0)+1>>0]=Y;if((vw(L)|0)>>>0>0){Z=14;break;}if(c[G>>2]|0)_=(lx(M,L)|0)&255;else _=(Cw(M,L)|0)&255;a[(c[I>>2]|0)+2>>0]=_;if(c[G>>2]|0)$=(lx(N,L)|0)&255;else $=(Cw(N,L)|0)&255;a[(c[I>>2]|0)+3>>0]=$;c[I>>2]=(c[I>>2]|0)+4;}if((Z|0)==14)c[I>>2]=(c[I>>2]|0)+2;while(1){if((vw(L)|0)>>>0>2)break;if((c[I>>2]|0)==(c[J>>2]|0))break;if(yw(L)|0){if(c[G>>2]|0)break;if(mx(M)|0)break;}if(c[G>>2]|0)aa=(lx(M,L)|0)&255;else aa=(Cw(M,L)|0)&255;E=c[I>>2]|0;c[I>>2]=E+1;a[E>>0]=aa;if((vw(L)|0)>>>0>2)break;if((c[I>>2]|0)==(c[J>>2]|0))break;if(yw(L)|0){if(c[G>>2]|0)break;if(mx(N)|0)break;}if(c[G>>2]|0)ba=(lx(N,L)|0)&255;else ba=(Cw(N,L)|0)&255;E=c[I>>2]|0;c[I>>2]=E+1;a[E>>0]=ba;}if((yw(L)|0?mx(M)|0:0)?mx(N)|0:0){c[A>>2]=(c[I>>2]|0)-(c[H>>2]|0);break;}if((c[I>>2]|0)==(c[J>>2]|0)){c[A>>2]=-70;break;}else{c[A>>2]=-20;break;}}else c[A>>2]=c[O>>2];}while(0);c[P>>2]=c[A>>2];ca=c[P>>2]|0;l=j;return ca|0;}else{c[m>>2]=V;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=T;c[r>>2]=0;c[s>>2]=c[m>>2];c[t>>2]=c[s>>2];c[u>>2]=(c[t>>2]|0)+(c[n>>2]|0);c[v>>2]=(c[u>>2]|0)+-3;c[z>>2]=tw(w,c[o>>2]|0,c[p>>2]|0)|0;do{if(!(Pw(c[z>>2]|0)|0)){uw(x,w,c[q>>2]|0);uw(y,w,c[q>>2]|0);while(1){if(vw(w)|0)break;if((c[t>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;if(c[r>>2]|0)da=(lx(x,w)|0)&255;else da=(Cw(x,w)|0)&255;a[c[t>>2]>>0]=da;if(c[r>>2]|0)ea=(lx(y,w)|0)&255;else ea=(Cw(y,w)|0)&255;a[(c[t>>2]|0)+1>>0]=ea;if((vw(w)|0)>>>0>0){Z=60;break;}if(c[r>>2]|0)fa=(lx(x,w)|0)&255;else fa=(Cw(x,w)|0)&255;a[(c[t>>2]|0)+2>>0]=fa;if(c[r>>2]|0)ga=(lx(y,w)|0)&255;else ga=(Cw(y,w)|0)&255;a[(c[t>>2]|0)+3>>0]=ga;c[t>>2]=(c[t>>2]|0)+4;}if((Z|0)==60)c[t>>2]=(c[t>>2]|0)+2;while(1){if((vw(w)|0)>>>0>2)break;if((c[t>>2]|0)==(c[u>>2]|0))break;if(yw(w)|0){if(c[r>>2]|0)break;if(mx(x)|0)break;}if(c[r>>2]|0)ha=(lx(x,w)|0)&255;else ha=(Cw(x,w)|0)&255;p=c[t>>2]|0;c[t>>2]=p+1;a[p>>0]=ha;if((vw(w)|0)>>>0>2)break;if((c[t>>2]|0)==(c[u>>2]|0))break;if(yw(w)|0){if(c[r>>2]|0)break;if(mx(y)|0)break;}if(c[r>>2]|0)ia=(lx(y,w)|0)&255;else ia=(Cw(y,w)|0)&255;p=c[t>>2]|0;c[t>>2]=p+1;a[p>>0]=ia;}if((yw(w)|0?mx(x)|0:0)?mx(y)|0:0){c[k>>2]=(c[t>>2]|0)-(c[s>>2]|0);break;}if((c[t>>2]|0)==(c[u>>2]|0)){c[k>>2]=-70;break;}else{c[k>>2]=-20;break;}}else c[k>>2]=c[z>>2];}while(0);c[P>>2]=c[k>>2];ca=c[P>>2]|0;l=j;return ca|0;}return 0;}function lx(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=nx(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function mx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[c[d>>2]>>2]|0)==0|0;}function nx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=dx(c[e>>2]|0,c[f>>2]|0)|0;Gw(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function ox(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;i=l;l=l+400|0;j=i+392|0;k=i+388|0;m=i+384|0;n=i+380|0;o=i+80|0;p=i;q=i+376|0;r=i+372|0;s=i+368|0;t=i+364|0;u=i+360|0;v=i+356|0;w=i+352|0;x=i+348|0;y=i+344|0;z=i+340|0;A=i+336|0;B=i+396|0;c[k>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=0;c[s>>2]=0;c[v>>2]=(c[k>>2]|0)+2;c[w>>2]=c[v>>2];c[r>>2]=ex(o,256,p,s,q,c[m>>2]|0,c[n>>2]|0)|0;if(Ww(c[r>>2]|0)|0){c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}if((c[q>>2]|0)>>>0>(e[c[k>>2]>>1]|0)>>>0){c[j>>2]=-44;C=c[j>>2]|0;l=i;return C|0;}b[c[k>>2]>>1]=c[q>>2];c[u>>2]=0;c[t>>2]=1;while(1){if((c[t>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;c[x>>2]=c[u>>2];c[u>>2]=(c[u>>2]|0)+(c[p+(c[t>>2]<<2)>>2]<<(c[t>>2]|0)-1);c[p+(c[t>>2]<<2)>>2]=c[x>>2];c[t>>2]=(c[t>>2]|0)+1;}c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[y>>2]=d[o+(c[t>>2]|0)>>0];c[z>>2]=1<>2]>>1;a[B>>0]=c[t>>2];a[B+1>>0]=(c[q>>2]|0)+1-(c[y>>2]|0);c[A>>2]=c[p+(c[y>>2]<<2)>>2];while(1){if((c[A>>2]|0)>>>0>=((c[p+(c[y>>2]<<2)>>2]|0)+(c[z>>2]|0)|0)>>>0)break;x=(c[w>>2]|0)+(c[A>>2]<<1)|0;a[x>>0]=a[B>>0]|0;a[x+1>>0]=a[B+1>>0]|0;c[A>>2]=(c[A>>2]|0)+1;}x=p+(c[y>>2]<<2)|0;c[x>>2]=(c[x>>2]|0)+(c[z>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}c[j>>2]=c[r>>2];C=c[j>>2]|0;l=i;return C|0;}function px(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+192|0;j=i+184|0;k=i+180|0;m=i+176|0;n=i+172|0;o=i+168|0;p=i+164|0;q=i+160|0;r=i+156|0;s=i+152|0;t=i+148|0;u=i+144|0;v=i+140|0;w=i+136|0;x=i+120|0;y=i+104|0;z=i+88|0;A=i+72|0;B=i+64|0;C=i+60|0;D=i+56|0;E=i+52|0;F=i+48|0;G=i+44|0;H=i+40|0;I=i+36|0;J=i+32|0;K=i+28|0;L=i+24|0;M=i+20|0;N=i+16|0;O=i+12|0;P=i+8|0;Q=i+4|0;R=i;c[k>>2]=b;c[m>>2]=d;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if((c[o>>2]|0)>>>0<10){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[q>>2]=c[n>>2];c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[p>>2];c[u>>2]=(c[t>>2]|0)+2;c[v>>2]=e[c[p>>2]>>1];c[B>>2]=(Lw(c[q>>2]|0)|0)&65535;c[C>>2]=(Lw((c[q>>2]|0)+2|0)|0)&65535;c[D>>2]=(Lw((c[q>>2]|0)+4|0)|0)&65535;c[F>>2]=(c[q>>2]|0)+6;c[G>>2]=(c[F>>2]|0)+(c[B>>2]|0);c[H>>2]=(c[G>>2]|0)+(c[C>>2]|0);c[I>>2]=(c[H>>2]|0)+(c[D>>2]|0);c[J>>2]=(((c[m>>2]|0)+3|0)>>>0)/4|0;c[K>>2]=(c[r>>2]|0)+(c[J>>2]|0);c[L>>2]=(c[K>>2]|0)+(c[J>>2]|0);c[M>>2]=(c[L>>2]|0)+(c[J>>2]|0);c[N>>2]=c[r>>2];c[O>>2]=c[K>>2];c[P>>2]=c[L>>2];c[Q>>2]=c[M>>2];c[E>>2]=(c[o>>2]|0)-((c[B>>2]|0)+(c[C>>2]|0)+(c[D>>2]|0)+6);if((c[E>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=tw(x,c[F>>2]|0,c[B>>2]|0)|0;if(Ww(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=tw(y,c[G>>2]|0,c[C>>2]|0)|0;if(Ww(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=tw(z,c[H>>2]|0,c[D>>2]|0)|0;if(Ww(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}c[w>>2]=tw(A,c[I>>2]|0,c[E>>2]|0)|0;if(Ww(c[w>>2]|0)|0){c[j>>2]=c[w>>2];S=c[j>>2]|0;l=i;return S|0;}w=vw(x)|0;E=w|(vw(y)|0);w=E|(vw(z)|0);c[R>>2]=w|(vw(A)|0);while(1){if(c[R>>2]|0)break;if((c[Q>>2]|0)>>>0>=((c[s>>2]|0)+-7|0)>>>0)break;if($w()|0){w=qx(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}$w()|0;w=qx(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;$w()|0;w=qx(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;$w()|0;w=qx(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;$w()|0;w=qx(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;if($w()|0){w=qx(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;}if($w()|0){w=qx(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;}w=qx(x,c[u>>2]|0,c[v>>2]|0)|0;E=c[N>>2]|0;c[N>>2]=E+1;a[E>>0]=w;w=qx(y,c[u>>2]|0,c[v>>2]|0)|0;E=c[O>>2]|0;c[O>>2]=E+1;a[E>>0]=w;w=qx(z,c[u>>2]|0,c[v>>2]|0)|0;E=c[P>>2]|0;c[P>>2]=E+1;a[E>>0]=w;w=qx(A,c[u>>2]|0,c[v>>2]|0)|0;E=c[Q>>2]|0;c[Q>>2]=E+1;a[E>>0]=w;w=vw(x)|0;E=w|(vw(y)|0);w=E|(vw(z)|0);c[R>>2]=w|(vw(A)|0);}if((c[N>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[O>>2]|0)>>>0>(c[L>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}if((c[P>>2]|0)>>>0>(c[M>>2]|0)>>>0){c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}rx(c[N>>2]|0,x,c[K>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;rx(c[O>>2]|0,y,c[L>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;rx(c[P>>2]|0,z,c[M>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;rx(c[Q>>2]|0,A,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;v=yw(x)|0;x=v&(yw(y)|0);y=x&(yw(z)|0);c[R>>2]=y&(yw(A)|0);if(c[R>>2]|0){c[j>>2]=c[m>>2];S=c[j>>2]|0;l=i;return S|0;}else{c[j>>2]=-20;S=c[j>>2]|0;l=i;return S|0;}return 0;}function qx(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+16|0;c[h>>2]=b;c[i>>2]=e;c[j>>2]=f;c[k>>2]=dx(c[h>>2]|0,c[j>>2]|0)|0;a[m>>0]=a[(c[i>>2]|0)+(c[k>>2]<<1)>>0]|0;Gw(c[h>>2]|0,d[(c[i>>2]|0)+(c[k>>2]<<1)+1>>0]|0);l=g;return a[m>>0]|0;}function rx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[i>>2];while(1){if(vw(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>((c[k>>2]|0)+-4|0)>>>0)break;if($w()|0){g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}$w()|0;g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;if($w()|0){g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if(vw(c[j>>2]|0)|0)break;if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}while(1){if((c[i>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;g=qx(c[j>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;f=c[i>>2]|0;c[i>>2]=f+1;a[f>>0]=g;}l=h;return(c[k>>2]|0)-(c[o>>2]|0)|0;}function sx(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if((c[j>>2]|0)>>>0<5){c[g>>2]=5;m=c[g>>2]|0;l=f;return m|0;}c[k>>2]=pr(c[i>>2]|0)|0;if((c[k>>2]|0)!=-47205084){c[g>>2]=-10;m=c[g>>2]|0;l=f;return m|0;}k=c[h>>2]|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=0;c[(c[h>>2]|0)+8>>2]=((d[(c[i>>2]|0)+4>>0]|0)&15)+11;if((d[(c[i>>2]|0)+4>>0]|0)>>4|0){c[g>>2]=-14;m=c[g>>2]|0;l=f;return m|0;}else{c[g>>2]=0;m=c[g>>2]|0;l=f;return m|0;}return 0;}function tx(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,m=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;f=Zr(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,0,0)|0;l=g;return f|0;}function ux(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=Wp()|0;if(!(c[n>>2]|0)){c[g>>2]=-64;o=c[g>>2]|0;l=f;return o|0;}else{c[m>>2]=tx(c[n>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;Xp(c[n>>2]|0)|0;c[g>>2]=c[m>>2];o=c[g>>2]|0;l=f;return o|0;}return 0;}function vx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+28744>>2]|0;}function wx(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;switch(c[(c[e>>2]|0)+28804>>2]|0){case 6:case 7:{c[d>>2]=5;break;}case 2:{c[d>>2]=1;break;}case 3:{c[d>>2]=2;break;}case 4:{c[d>>2]=3;break;}case 5:{c[d>>2]=4;break;}default:c[d>>2]=0;}l=b;return c[d>>2]|0;}function xx(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=l;l=l+64|0;h=g+52|0;i=g+48|0;j=g+44|0;k=g+40|0;m=g+36|0;n=g+32|0;o=g+28|0;p=g+16|0;q=g+12|0;r=g+8|0;s=g+4|0;t=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[n>>2]|0)!=(c[(c[i>>2]|0)+28744>>2]|0)){c[h>>2]=-72;u=c[h>>2]|0;l=g;return u|0;}if(c[k>>2]|0)Br(c[i>>2]|0,c[j>>2]|0);switch(c[(c[i>>2]|0)+28804>>2]|0){case 0:{if((c[(c[i>>2]|0)+28912>>2]|0)==0?((hq(c[m>>2]|0)|0)&-16|0)==407710288:0){mE((c[i>>2]|0)+160092|0,c[m>>2]|0,c[n>>2]|0)|0;c[(c[i>>2]|0)+28744>>2]=8-(c[n>>2]|0);c[(c[i>>2]|0)+28804>>2]=6;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}f=nq(c[m>>2]|0,c[n>>2]|0,c[(c[i>>2]|0)+28912>>2]|0)|0;c[(c[i>>2]|0)+28904>>2]=f;f=($q(c[(c[i>>2]|0)+28904>>2]|0)|0)!=0;e=c[i>>2]|0;if(f){c[h>>2]=c[e+28904>>2];u=c[h>>2]|0;l=g;return u|0;}else{mE(e+160092|0,c[m>>2]|0,c[n>>2]|0)|0;c[(c[i>>2]|0)+28744>>2]=(c[(c[i>>2]|0)+28904>>2]|0)-(c[n>>2]|0);c[(c[i>>2]|0)+28804>>2]=1;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}break;}case 1:{mE((c[i>>2]|0)+160092+((c[(c[i>>2]|0)+28904>>2]|0)-(c[n>>2]|0))|0,c[m>>2]|0,c[n>>2]|0)|0;c[o>>2]=fs(c[i>>2]|0,(c[i>>2]|0)+160092|0,c[(c[i>>2]|0)+28904>>2]|0)|0;if($q(c[o>>2]|0)|0){c[h>>2]=c[o>>2];u=c[h>>2]|0;l=g;return u|0;}else{c[(c[i>>2]|0)+28744>>2]=3;c[(c[i>>2]|0)+28804>>2]=2;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}break;}case 2:{c[q>>2]=br(c[m>>2]|0,3,p)|0;o=($q(c[q>>2]|0)|0)!=0;e=c[q>>2]|0;if(o){c[h>>2]=e;u=c[h>>2]|0;l=g;return u|0;}c[(c[i>>2]|0)+28744>>2]=e;c[(c[i>>2]|0)+28800>>2]=c[p>>2];c[(c[i>>2]|0)+28936>>2]=c[p+8>>2];e=(c[p+4>>2]|0)!=0;if(c[q>>2]|0){c[(c[i>>2]|0)+28804>>2]=e?4:3;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}q=c[i>>2]|0;do{if(e){p=(c[i>>2]|0)+28744|0;if(c[q+28752+32>>2]|0){c[p>>2]=4;c[(c[i>>2]|0)+28804>>2]=5;break;}else{c[p>>2]=0;c[(c[i>>2]|0)+28804>>2]=0;break;}}else{c[q+28744>>2]=3;c[(c[i>>2]|0)+28804>>2]=2;}}while(0);c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}case 3:case 4:{switch(c[(c[i>>2]|0)+28800>>2]|0){case 2:{c[r>>2]=Cr(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,1)|0;break;}case 0:{c[r>>2]=gs(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;break;}case 1:{c[r>>2]=yx(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[(c[i>>2]|0)+28936>>2]|0)|0;break;}default:{c[h>>2]=-20;u=c[h>>2]|0;l=g;return u|0;}}k=($q(c[r>>2]|0)|0)!=0;q=c[r>>2]|0;if(k){c[h>>2]=q;u=c[h>>2]|0;l=g;return u|0;}k=(c[i>>2]|0)+28792|0;e=k;p=k;c[p>>2]=dE(c[e>>2]|0,c[e+4>>2]|0,q|0,0)|0;c[p+4>>2]=y;if(c[(c[i>>2]|0)+28752+32>>2]|0)Nh((c[i>>2]|0)+28816|0,c[j>>2]|0,c[r>>2]|0)|0;p=c[i>>2]|0;do{if((c[(c[i>>2]|0)+28804>>2]|0)==4){q=p+28752|0;if(((c[q>>2]|0)!=-1?1:(c[q+4>>2]|0)!=-1)?(q=(c[i>>2]|0)+28792|0,e=(c[i>>2]|0)+28752|0,(c[q>>2]|0)!=(c[e>>2]|0)?1:(c[q+4>>2]|0)!=(c[e+4>>2]|0)):0){c[h>>2]=-20;u=c[h>>2]|0;l=g;return u|0;}e=(c[i>>2]|0)+28744|0;if(c[(c[i>>2]|0)+28752+32>>2]|0){c[e>>2]=4;c[(c[i>>2]|0)+28804>>2]=5;break;}else{c[e>>2]=0;c[(c[i>>2]|0)+28804>>2]=0;break;}}else{c[p+28804>>2]=2;c[(c[i>>2]|0)+28744>>2]=3;c[(c[i>>2]|0)+28728>>2]=(c[j>>2]|0)+(c[r>>2]|0);}}while(0);c[h>>2]=c[r>>2];u=c[h>>2]|0;l=g;return u|0;}case 5:{c[s>>2]=Oh((c[i>>2]|0)+28816|0)|0;c[t>>2]=hq(c[m>>2]|0)|0;if((c[t>>2]|0)!=(c[s>>2]|0)){c[h>>2]=-22;u=c[h>>2]|0;l=g;return u|0;}else{c[(c[i>>2]|0)+28744>>2]=0;c[(c[i>>2]|0)+28804>>2]=0;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}break;}case 6:{mE((c[i>>2]|0)+160092+(8-(c[n>>2]|0))|0,c[m>>2]|0,c[n>>2]|0)|0;n=hq((c[i>>2]|0)+160092+4|0)|0;c[(c[i>>2]|0)+28744>>2]=n;c[(c[i>>2]|0)+28804>>2]=7;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}case 7:{c[(c[i>>2]|0)+28744>>2]=0;c[(c[i>>2]|0)+28804>>2]=0;c[h>>2]=0;u=c[h>>2]|0;l=g;return u|0;}default:{c[h>>2]=-1;u=c[h>>2]|0;l=g;return u|0;}}return 0;}function yx(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,m=0,n=0,o=0,p=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[n>>2]|0)!=1){c[i>>2]=-72;p=c[i>>2]|0;l=h;return p|0;}if((c[o>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[i>>2]=-70;p=c[i>>2]|0;l=h;return p|0;}else{oE(c[j>>2]|0,(d[c[m>>2]>>0]|0)&255|0,c[o>>2]|0)|0;c[i>>2]=c[o>>2];p=c[i>>2]|0;l=h;return p|0;}return 0;}function zx(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,m=0,n=0,o=0,p=0;g=l;l=l+48|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;if(((c[f>>2]|0)!=0^1)&1^((c[f+4>>2]|0)!=0^1)&1|0){c[i>>2]=0;p=c[i>>2]|0;l=g;return p|0;};c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[o>>2]=Rh(28744,h)|0;if(!(c[o>>2]|0)){c[i>>2]=0;p=c[i>>2]|0;l=g;return p|0;}h=(c[o>>2]|0)+28732|0;c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];f=($q(Ax(c[o>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0)|0)!=0;n=c[o>>2]|0;if(f){Yp(n)|0;c[i>>2]=0;p=c[i>>2]|0;l=g;return p|0;}else{c[i>>2]=n;p=c[i>>2]|0;l=g;return p|0;}return 0;}function Ax(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,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+48|0;h=g+32|0;i=g+28|0;j=g+24|0;k=g+20|0;m=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;q=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;do{if((c[n>>2]|0)!=1&(c[k>>2]|0)!=0&(c[m>>2]|0)!=0){f=c[m>>2]|0;e=(c[j>>2]|0)+28732|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[p>>2]=Rh(f,h)|0;c[c[j>>2]>>2]=c[p>>2];c[(c[j>>2]|0)+4>>2]=c[p>>2];if(c[p>>2]|0){mE(c[p>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;break;}c[i>>2]=-64;r=c[i>>2]|0;l=g;return r|0;}else{c[c[j>>2]>>2]=0;c[(c[j>>2]|0)+4>>2]=c[k>>2];}}while(0);c[(c[j>>2]|0)+8>>2]=c[m>>2];c[(c[j>>2]|0)+12+10264>>2]=201326604;c[q>>2]=Bx(c[j>>2]|0,c[o>>2]|0)|0;if($q(c[q>>2]|0)|0){c[i>>2]=c[q>>2];r=c[i>>2]|0;l=g;return r|0;}else{c[i>>2]=0;r=c[i>>2]|0;l=g;return r|0;}return 0;}function Bx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;c[(c[f>>2]|0)+28724>>2]=0;c[(c[f>>2]|0)+28728>>2]=0;do{if((c[g>>2]|0)!=1){if((c[(c[f>>2]|0)+8>>2]|0)>>>0<8)if((c[g>>2]|0)==2){c[e>>2]=-30;break;}else{c[e>>2]=0;break;}c[h>>2]=hq(c[(c[f>>2]|0)+4>>2]|0)|0;if((c[h>>2]|0)!=-332356553){if((c[g>>2]|0)==2){c[e>>2]=-30;break;}else{c[e>>2]=0;break;}}else{b=hq((c[(c[f>>2]|0)+4>>2]|0)+4|0)|0;c[(c[f>>2]|0)+28724>>2]=b;c[i>>2]=ls((c[f>>2]|0)+12|0,c[(c[f>>2]|0)+4>>2]|0,c[(c[f>>2]|0)+8>>2]|0)|0;if($q(c[i>>2]|0)|0){c[e>>2]=-30;break;}else{c[(c[f>>2]|0)+28728>>2]=1;c[e>>2]=0;break;}}}else c[e>>2]=0;}while(0);l=d;return c[e>>2]|0;}function Cx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;f=c[g>>2]|0;c[e>>2]=c[5415];c[e+4>>2]=c[5416];c[e+8>>2]=c[5417];g=zx(b,f,0,0,e)|0;l=d;return g|0;}function Dx(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;g=_r(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,0,0,c[o>>2]|0)|0;l=h;return g|0;}function Ex(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[5412];c[b+4>>2]=c[5413];c[b+8>>2]=c[5414];d=Fx(b)|0;l=a;return d|0;}function Fx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];a=Vp(d)|0;l=b;return a|0;}function Gx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Xp(c[d>>2]|0)|0;l=b;return a|0;}function Hx(){return 131075;}function Ix(){return 131072;}function Jx(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,m=0,n=0,o=0,p=0;g=l;l=l+48|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;if(c[(c[j>>2]|0)+28956>>2]|0){c[i>>2]=-60;p=c[i>>2]|0;l=g;return p|0;}Yp(c[(c[j>>2]|0)+28948>>2]|0)|0;if((c[k>>2]|0)!=0&(c[m>>2]|0)>>>0>=8){f=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=(c[j>>2]|0)+28920|0;c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];o=zx(f,k,m,n,h)|0;c[(c[j>>2]|0)+28948>>2]=o;if(!(c[(c[j>>2]|0)+28948>>2]|0)){c[i>>2]=-64;p=c[i>>2]|0;l=g;return p|0;}}else c[(c[j>>2]|0)+28948>>2]=0;c[(c[j>>2]|0)+28952>>2]=c[(c[j>>2]|0)+28948>>2];c[i>>2]=0;p=c[i>>2]|0;l=g;return p|0;}function Kx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Jx(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,0,0)|0;l=e;return d|0;}function Lx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[(c[g>>2]|0)+28956>>2]=0;c[j>>2]=Kx(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;if($q(c[j>>2]|0)|0){c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}else{c[f>>2]=5;k=c[f>>2]|0;l=e;return k|0;}return 0;}function Mx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Lx(c[d>>2]|0,0,0)|0;l=b;return a|0;}function Nx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Mx(c[e>>2]|0)|0;c[(c[e>>2]|0)+28952>>2]=c[f>>2];l=d;return c[g>>2]|0;}function Ox(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+28956>>2]=1;c[(c[d>>2]|0)+28988>>2]=0;c[(c[d>>2]|0)+28984>>2]=0;c[(c[d>>2]|0)+28968>>2]=0;c[(c[d>>2]|0)+28992>>2]=0;c[(c[d>>2]|0)+29004>>2]=0;c[(c[d>>2]|0)+29008>>2]=0;l=b;return 5;}function Px(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+48|0;g=f+40|0;h=f+24|0;i=f+16|0;j=f+36|0;k=f+8|0;m=f;n=f+32|0;o=h;c[o>>2]=a;c[o+4>>2]=b;b=i;c[b>>2]=d;c[b+4>>2]=e;e=h;b=c[e+4>>2]|0;d=b>>>0<0|(b|0)==0&(c[e>>2]|0)>>>0<131072;e=h;b=c[e+4>>2]|0;b=d?c[e>>2]|0:131072;c[j>>2]=b;b=h;h=dE(c[b>>2]|0,c[b+4>>2]|0,c[j>>2]|0,0)|0;j=dE(h|0,y|0,16,0)|0;h=k;c[h>>2]=j;c[h+4>>2]=y;h=i;j=c[h+4>>2]|0;b=k;e=c[b+4>>2]|0;d=j>>>0>>0|((j|0)==(e|0)?(c[h>>2]|0)>>>0<(c[b>>2]|0)>>>0:0);b=i;i=k;k=d?c[b+4>>2]|0:c[i+4>>2]|0;h=m;c[h>>2]=d?c[b>>2]|0:c[i>>2]|0;c[h+4>>2]=k;c[n>>2]=c[m>>2];k=m;if(0!=(c[k+4>>2]|0)?1:(c[n>>2]|0)!=(c[k>>2]|0)){c[g>>2]=-16;p=c[g>>2]|0;l=f;return p|0;}else{c[g>>2]=c[n>>2];p=c[g>>2]|0;l=f;return p|0;}return 0;}function Qx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,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;e=l;l=l+176|0;f=e+152|0;g=e+148|0;h=e+144|0;i=e+140|0;j=e+136|0;k=e+132|0;m=e+128|0;n=e+124|0;o=e+120|0;p=e+116|0;q=e+112|0;r=e+108|0;s=e+104|0;t=e+100|0;u=e+96|0;v=e+92|0;w=e+88|0;x=e+84|0;y=e+80|0;z=e+76|0;A=e+72|0;B=e+68|0;C=e+64|0;D=e+60|0;E=e+56|0;F=e+52|0;G=e+48|0;H=e+44|0;I=e+40|0;J=e+36|0;K=e+32|0;L=e+28|0;M=e+24|0;N=e+20|0;O=e+16|0;P=e+12|0;Q=e+8|0;R=e+4|0;S=e;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[m>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0);c[n>>2]=c[k>>2];c[o>>2]=(c[c[i>>2]>>2]|0)+(c[(c[i>>2]|0)+8>>2]|0);c[p>>2]=(c[c[i>>2]>>2]|0)+(c[(c[i>>2]|0)+4>>2]|0);c[q>>2]=c[o>>2];c[r>>2]=1;if((c[(c[j>>2]|0)+8>>2]|0)>>>0>(c[(c[j>>2]|0)+4>>2]|0)>>>0){c[g>>2]=-72;T=c[g>>2]|0;l=e;return T|0;}if((c[(c[i>>2]|0)+8>>2]|0)>>>0>(c[(c[i>>2]|0)+4>>2]|0)>>>0){c[g>>2]=-70;T=c[g>>2]|0;l=e;return T|0;}a:while(1){if(!(c[r>>2]|0)){U=98;break;}switch(c[(c[h>>2]|0)+28956>>2]|0){case 0:{Ox(c[h>>2]|0)|0;U=9;break;}case 1:{U=9;break;}case 2:{U=64;break;}case 3:{U=76;break;}case 4:{U=91;break;}default:{U=96;break a;}}do{if((U|0)==9){U=0;V=c[h>>2]|0;if(c[(c[h>>2]|0)+29004>>2]|0){U=10;break a;}c[t>>2]=qq(V+28752|0,(c[h>>2]|0)+160092|0,c[(c[h>>2]|0)+28992>>2]|0,c[(c[h>>2]|0)+28912>>2]|0)|0;if($q(c[t>>2]|0)|0){U=16;break a;}if(c[t>>2]|0){c[z>>2]=(c[t>>2]|0)-(c[(c[h>>2]|0)+28992>>2]|0);c[A>>2]=(c[m>>2]|0)-(c[n>>2]|0);if((c[z>>2]|0)>>>0>(c[A>>2]|0)>>>0){U=31;break a;}mE((c[h>>2]|0)+160092+(c[(c[h>>2]|0)+28992>>2]|0)|0,c[n>>2]|0,c[z>>2]|0)|0;c[(c[h>>2]|0)+28992>>2]=c[t>>2];c[n>>2]=(c[n>>2]|0)+(c[z>>2]|0);break;}d=(c[h>>2]|0)+28752|0;if((((c[d>>2]|0)!=0|(c[d+4>>2]|0)!=0?(d=(c[h>>2]|0)+28752+8|0,(c[d>>2]|0)!=0|(c[d+4>>2]|0)!=0):0)?(d=(c[h>>2]|0)+28752|0,b=c[d+4>>2]|0,0>b>>>0|(0==(b|0)?((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0>=(c[d>>2]|0)>>>0:0)):0)?(c[B>>2]=_q(c[k>>2]|0,(c[m>>2]|0)-(c[k>>2]|0)|0)|0,(c[B>>2]|0)>>>0<=((c[m>>2]|0)-(c[k>>2]|0)|0)>>>0):0){c[C>>2]=Dx(c[h>>2]|0,c[q>>2]|0,(c[p>>2]|0)-(c[q>>2]|0)|0,c[k>>2]|0,c[B>>2]|0,c[(c[h>>2]|0)+28952>>2]|0)|0;if($q(c[C>>2]|0)|0){U=40;break a;}c[n>>2]=(c[k>>2]|0)+(c[B>>2]|0);c[q>>2]=(c[q>>2]|0)+(c[C>>2]|0);c[(c[h>>2]|0)+28744>>2]=0;c[(c[h>>2]|0)+28956>>2]=0;c[r>>2]=0;break;}c[D>>2]=cs(c[h>>2]|0,c[(c[h>>2]|0)+28952>>2]|0)|0;if($q(c[D>>2]|0)|0){U=43;break a;}d=((hq((c[h>>2]|0)+160092|0)|0)&-16|0)==407710288;b=c[h>>2]|0;if(d){d=hq(b+160092+4|0)|0;c[(c[h>>2]|0)+28744>>2]=d;c[(c[h>>2]|0)+28804>>2]=7;}else{c[E>>2]=fs(b,(c[h>>2]|0)+160092|0,c[(c[h>>2]|0)+28992>>2]|0)|0;if($q(c[E>>2]|0)|0){U=47;break a;}c[(c[h>>2]|0)+28744>>2]=3;c[(c[h>>2]|0)+28804>>2]=2;}b=(c[h>>2]|0)+28752+8|0;d=c[b+4>>2]|0;if(d>>>0>0|(d|0)==0&(c[b>>2]|0)>>>0>1024){b=(c[h>>2]|0)+28752+8|0;W=c[b>>2]|0;X=c[b+4>>2]|0;}else{W=1024;X=0;}b=(c[h>>2]|0)+28752+8|0;c[b>>2]=W;c[b+4>>2]=X;b=(c[h>>2]|0)+28752+8|0;d=c[b+4>>2]|0;if(d>>>0>0|((d|0)==0?(c[b>>2]|0)>>>0>(c[(c[h>>2]|0)+28972>>2]|0)>>>0:0)){U=52;break a;}if((c[(c[h>>2]|0)+28752+16>>2]|0)>>>0>4)Y=c[(c[h>>2]|0)+28752+16>>2]|0;else Y=4;c[F>>2]=Y;b=(c[h>>2]|0)+28752+8|0;d=(c[h>>2]|0)+28752|0;c[G>>2]=Px(c[b>>2]|0,c[b+4>>2]|0,c[d>>2]|0,c[d+4>>2]|0)|0;if(!((c[(c[h>>2]|0)+28964>>2]|0)>>>0>=(c[F>>2]|0)>>>0?(c[(c[h>>2]|0)+28980>>2]|0)>>>0>=(c[G>>2]|0)>>>0:0)){c[H>>2]=(c[F>>2]|0)+(c[G>>2]|0);if(c[(c[h>>2]|0)+28940>>2]|0){if((c[H>>2]|0)>>>0>((c[(c[h>>2]|0)+28940>>2]|0)-160112|0)>>>0){U=59;break a;}}else{d=c[(c[h>>2]|0)+28960>>2]|0;b=(c[h>>2]|0)+28920|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];Th(d,f);c[(c[h>>2]|0)+28964>>2]=0;c[(c[h>>2]|0)+28980>>2]=0;d=c[H>>2]|0;b=(c[h>>2]|0)+28920|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];b=Rh(d,f)|0;c[(c[h>>2]|0)+28960>>2]=b;if(!(c[(c[h>>2]|0)+28960>>2]|0)){U=61;break a;}}c[(c[h>>2]|0)+28964>>2]=c[F>>2];c[(c[h>>2]|0)+28976>>2]=(c[(c[h>>2]|0)+28960>>2]|0)+(c[(c[h>>2]|0)+28964>>2]|0);c[(c[h>>2]|0)+28980>>2]=c[G>>2];}c[(c[h>>2]|0)+28956>>2]=2;U=64;}}while(0);do{if((U|0)==64){U=0;c[I>>2]=vx(c[h>>2]|0)|0;if(!(c[I>>2]|0)){c[(c[h>>2]|0)+28956>>2]=0;c[r>>2]=0;break;}if(((c[m>>2]|0)-(c[n>>2]|0)|0)>>>0<(c[I>>2]|0)>>>0)if((c[n>>2]|0)==(c[m>>2]|0)){c[r>>2]=0;break;}else{c[(c[h>>2]|0)+28956>>2]=3;U=76;break;}c[J>>2]=Tx(c[h>>2]|0)|0;if(c[J>>2]|0)Z=0;else Z=(c[(c[h>>2]|0)+28980>>2]|0)-(c[(c[h>>2]|0)+28984>>2]|0)|0;c[K>>2]=xx(c[h>>2]|0,(c[(c[h>>2]|0)+28976>>2]|0)+(c[(c[h>>2]|0)+28984>>2]|0)|0,Z,c[n>>2]|0,c[I>>2]|0)|0;if($q(c[K>>2]|0)|0){U=70;break a;}c[n>>2]=(c[n>>2]|0)+(c[I>>2]|0);if((c[K>>2]|0)!=0|(c[J>>2]|0)!=0){c[(c[h>>2]|0)+28988>>2]=(c[(c[h>>2]|0)+28984>>2]|0)+(c[K>>2]|0);c[(c[h>>2]|0)+28956>>2]=4;}}}while(0);do{if((U|0)==76){U=0;c[L>>2]=vx(c[h>>2]|0)|0;c[M>>2]=(c[L>>2]|0)-(c[(c[h>>2]|0)+28968>>2]|0);c[N>>2]=Tx(c[h>>2]|0)|0;b=c[M>>2]|0;if(c[N>>2]|0){if(b>>>0<((c[m>>2]|0)-(c[n>>2]|0)|0)>>>0)_=c[M>>2]|0;else _=(c[m>>2]|0)-(c[n>>2]|0)|0;c[O>>2]=_;}else{if(b>>>0>((c[(c[h>>2]|0)+28964>>2]|0)-(c[(c[h>>2]|0)+28968>>2]|0)|0)>>>0){U=82;break a;}c[O>>2]=Ux((c[(c[h>>2]|0)+28960>>2]|0)+(c[(c[h>>2]|0)+28968>>2]|0)|0,c[M>>2]|0,c[n>>2]|0,(c[m>>2]|0)-(c[n>>2]|0)|0)|0;}c[n>>2]=(c[n>>2]|0)+(c[O>>2]|0);b=(c[h>>2]|0)+28968|0;c[b>>2]=(c[b>>2]|0)+(c[O>>2]|0);if((c[O>>2]|0)>>>0<(c[M>>2]|0)>>>0){c[r>>2]=0;break;}c[P>>2]=xx(c[h>>2]|0,(c[(c[h>>2]|0)+28976>>2]|0)+(c[(c[h>>2]|0)+28984>>2]|0)|0,(c[(c[h>>2]|0)+28980>>2]|0)-(c[(c[h>>2]|0)+28984>>2]|0)|0,c[(c[h>>2]|0)+28960>>2]|0,c[L>>2]|0)|0;if($q(c[P>>2]|0)|0){U=87;break a;}c[(c[h>>2]|0)+28968>>2]=0;b=c[h>>2]|0;if((c[P>>2]|0)!=0|(c[N>>2]|0)!=0){c[(c[h>>2]|0)+28988>>2]=(c[b+28984>>2]|0)+(c[P>>2]|0);c[(c[h>>2]|0)+28956>>2]=4;U=91;break;}else{c[b+28956>>2]=2;break;}}}while(0);do{if((U|0)==91){U=0;c[Q>>2]=(c[(c[h>>2]|0)+28988>>2]|0)-(c[(c[h>>2]|0)+28984>>2]|0);c[R>>2]=Ux(c[q>>2]|0,(c[p>>2]|0)-(c[q>>2]|0)|0,(c[(c[h>>2]|0)+28976>>2]|0)+(c[(c[h>>2]|0)+28984>>2]|0)|0,c[Q>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+(c[R>>2]|0);b=(c[h>>2]|0)+28984|0;c[b>>2]=(c[b>>2]|0)+(c[R>>2]|0);if((c[R>>2]|0)!=(c[Q>>2]|0)){c[r>>2]=0;break;}c[(c[h>>2]|0)+28956>>2]=2;b=(c[h>>2]|0)+28752|0;d=c[b+4>>2]|0;if(0>>0|(0==(d|0)?(c[(c[h>>2]|0)+28980>>2]|0)>>>0<(c[b>>2]|0)>>>0:0)?((c[(c[h>>2]|0)+28984>>2]|0)+(c[(c[h>>2]|0)+28752+16>>2]|0)|0)>>>0>(c[(c[h>>2]|0)+28980>>2]|0)>>>0:0){c[(c[h>>2]|0)+28988>>2]=0;c[(c[h>>2]|0)+28984>>2]=0;}}}while(0);}switch(U|0){case 10:{if(c[V+28940>>2]|0){c[g>>2]=-64;T=c[g>>2]|0;l=e;return T|0;}c[s>>2]=Rx(c[(c[h>>2]|0)+28996>>2]|0,c[(c[h>>2]|0)+29004>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;if(!(c[s>>2]|0))c[(c[h>>2]|0)+28956>>2]=0;c[g>>2]=c[s>>2];T=c[g>>2]|0;l=e;return T|0;}case 16:{c[u>>2]=iq(c[k>>2]|0,(c[m>>2]|0)-(c[k>>2]|0)|0)|0;if(!(c[u>>2]|0)){c[g>>2]=c[t>>2];T=c[g>>2]|0;l=e;return T|0;}if(c[(c[h>>2]|0)+28952>>2]|0)$=c[(c[(c[h>>2]|0)+28952>>2]|0)+4>>2]|0;else $=0;c[v>>2]=$;if(c[(c[h>>2]|0)+28952>>2]|0)aa=c[(c[(c[h>>2]|0)+28952>>2]|0)+8>>2]|0;else aa=0;c[w>>2]=aa;if(c[(c[h>>2]|0)+28940>>2]|0){c[g>>2]=-64;T=c[g>>2]|0;l=e;return T|0;}c[x>>2]=Sx((c[h>>2]|0)+28996|0,c[(c[h>>2]|0)+29e3>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;if($q(c[x>>2]|0)|0){c[g>>2]=c[x>>2];T=c[g>>2]|0;l=e;return T|0;}x=c[u>>2]|0;c[(c[h>>2]|0)+29e3>>2]=x;c[(c[h>>2]|0)+29004>>2]=x;c[y>>2]=Rx(c[(c[h>>2]|0)+28996>>2]|0,c[u>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;if(!(c[y>>2]|0))c[(c[h>>2]|0)+28956>>2]=0;c[g>>2]=c[y>>2];T=c[g>>2]|0;l=e;return T|0;}case 31:{if((c[A>>2]|0)>>>0>0){mE((c[h>>2]|0)+160092+(c[(c[h>>2]|0)+28992>>2]|0)|0,c[n>>2]|0,c[A>>2]|0)|0;y=(c[h>>2]|0)+28992|0;c[y>>2]=(c[y>>2]|0)+(c[A>>2]|0);}c[(c[j>>2]|0)+8>>2]=c[(c[j>>2]|0)+4>>2];c[g>>2]=(6>(c[t>>2]|0)>>>0?6:c[t>>2]|0)-(c[(c[h>>2]|0)+28992>>2]|0)+3;T=c[g>>2]|0;l=e;return T|0;}case 40:{c[g>>2]=c[C>>2];T=c[g>>2]|0;l=e;return T|0;}case 43:{c[g>>2]=c[D>>2];T=c[g>>2]|0;l=e;return T|0;}case 47:{c[g>>2]=c[E>>2];T=c[g>>2]|0;l=e;return T|0;}case 52:{c[g>>2]=-16;T=c[g>>2]|0;l=e;return T|0;}case 59:{c[g>>2]=-64;T=c[g>>2]|0;l=e;return T|0;}case 61:{c[g>>2]=-64;T=c[g>>2]|0;l=e;return T|0;}case 70:{c[g>>2]=c[K>>2];T=c[g>>2]|0;l=e;return T|0;}case 82:{c[g>>2]=-20;T=c[g>>2]|0;l=e;return T|0;}case 87:{c[g>>2]=c[P>>2];T=c[g>>2]|0;l=e;return T|0;}case 96:{c[g>>2]=-1;T=c[g>>2]|0;l=e;return T|0;}case 98:{P=(c[j>>2]|0)+8|0;c[P>>2]=(c[P>>2]|0)+((c[n>>2]|0)-(c[k>>2]|0));k=(c[i>>2]|0)+8|0;c[k>>2]=(c[k>>2]|0)+((c[q>>2]|0)-(c[o>>2]|0));c[S>>2]=vx(c[h>>2]|0)|0;o=c[h>>2]|0;if(c[S>>2]|0){q=((wx(o)|0)==2&1)*3|0;c[S>>2]=(c[S>>2]|0)+q;c[S>>2]=(c[S>>2]|0)-(c[(c[h>>2]|0)+28968>>2]|0);c[g>>2]=c[S>>2];T=c[g>>2]|0;l=e;return T|0;}S=(c[(c[h>>2]|0)+29008>>2]|0)!=0;if((c[o+28988>>2]|0)!=(c[(c[h>>2]|0)+28984>>2]|0)){if(!S){o=(c[j>>2]|0)+8|0;c[o>>2]=(c[o>>2]|0)+-1;c[(c[h>>2]|0)+29008>>2]=1;}c[g>>2]=1;T=c[g>>2]|0;l=e;return T|0;}do{if(S){if((c[(c[j>>2]|0)+8>>2]|0)>>>0<(c[(c[j>>2]|0)+4>>2]|0)>>>0){o=(c[j>>2]|0)+8|0;c[o>>2]=(c[o>>2]|0)+1;break;}c[(c[h>>2]|0)+28956>>2]=2;c[g>>2]=1;T=c[g>>2]|0;l=e;return T|0;}}while(0);c[g>>2]=0;T=c[g>>2]|0;l=e;return T|0;}}return 0;}function Rx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,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;f=l;l=l+128|0;g=f+112|0;h=f+108|0;i=f+104|0;j=f+100|0;k=f+96|0;m=f+92|0;n=f+88|0;o=f+84|0;p=f+80|0;q=f+76|0;r=f+72|0;s=f+68|0;t=f+64|0;u=f+60|0;v=f+56|0;w=f+52|0;x=f+48|0;y=f+44|0;z=f+40|0;A=f+36|0;B=f+32|0;C=f+28|0;D=f+24|0;E=f+20|0;F=f+16|0;G=f+12|0;H=f+8|0;I=f+4|0;J=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;switch(c[i>>2]|0){case 7:{c[E>>2]=c[h>>2];c[F>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0);c[G>>2]=(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[k>>2]|0)+8>>2]|0);c[H>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[I>>2]=(c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+8>>2]|0);c[J>>2]=jy(c[E>>2]|0,c[H>>2]|0,I,c[F>>2]|0,G)|0;F=(c[j>>2]|0)+8|0;c[F>>2]=(c[F>>2]|0)+(c[I>>2]|0);I=(c[k>>2]|0)+8|0;c[I>>2]=(c[I>>2]|0)+(c[G>>2]|0);c[g>>2]=c[J>>2];K=c[g>>2]|0;l=f;return K|0;}case 6:{c[y>>2]=c[h>>2];c[z>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0);c[A>>2]=(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[k>>2]|0)+8>>2]|0);c[B>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[C>>2]=(c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+8>>2]|0);c[D>>2]=iy(c[y>>2]|0,c[B>>2]|0,C,c[z>>2]|0,A)|0;z=(c[j>>2]|0)+8|0;c[z>>2]=(c[z>>2]|0)+(c[C>>2]|0);C=(c[k>>2]|0)+8|0;c[C>>2]=(c[C>>2]|0)+(c[A>>2]|0);c[g>>2]=c[D>>2];K=c[g>>2]|0;l=f;return K|0;}case 5:{c[s>>2]=c[h>>2];c[t>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0);c[u>>2]=(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[k>>2]|0)+8>>2]|0);c[v>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[w>>2]=(c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+8>>2]|0);c[x>>2]=hy(c[s>>2]|0,c[v>>2]|0,w,c[t>>2]|0,u)|0;t=(c[j>>2]|0)+8|0;c[t>>2]=(c[t>>2]|0)+(c[w>>2]|0);w=(c[k>>2]|0)+8|0;c[w>>2]=(c[w>>2]|0)+(c[u>>2]|0);c[g>>2]=c[x>>2];K=c[g>>2]|0;l=f;return K|0;}case 4:{c[m>>2]=c[h>>2];c[n>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0);c[o>>2]=(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[k>>2]|0)+8>>2]|0);c[p>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[q>>2]=(c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+8>>2]|0);c[r>>2]=gy(c[m>>2]|0,c[p>>2]|0,q,c[n>>2]|0,o)|0;n=(c[j>>2]|0)+8|0;c[n>>2]=(c[n>>2]|0)+(c[q>>2]|0);q=(c[k>>2]|0)+8|0;c[q>>2]=(c[q>>2]|0)+(c[o>>2]|0);c[g>>2]=c[r>>2];K=c[g>>2]|0;l=f;return K|0;}default:{c[g>>2]=-12;K=c[g>>2]|0;l=f;return K|0;}}return 0;}function Sx(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=l;l=l+48|0;h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;m=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[j>>2]|0)!=(c[k>>2]|0))Zp(c[c[i>>2]>>2]|0,c[j>>2]|0)|0;switch(c[k>>2]|0){case 7:{if((c[j>>2]|0)!=(c[k>>2]|0))s=ay()|0;else s=c[c[i>>2]>>2]|0;c[r>>2]=s;if(!(c[r>>2]|0)){c[h>>2]=-64;t=c[h>>2]|0;l=g;return t|0;}else{by(c[r>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;c[c[i>>2]>>2]=c[r>>2];c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}break;}case 6:{if((c[j>>2]|0)!=(c[k>>2]|0))u=_x()|0;else u=c[c[i>>2]>>2]|0;c[q>>2]=u;if(!(c[q>>2]|0)){c[h>>2]=-64;t=c[h>>2]|0;l=g;return t|0;}else{$x(c[q>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;c[c[i>>2]>>2]=c[q>>2];c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}break;}case 5:{if((c[j>>2]|0)!=(c[k>>2]|0))v=Yx()|0;else v=c[c[i>>2]>>2]|0;c[p>>2]=v;if(!(c[p>>2]|0)){c[h>>2]=-64;t=c[h>>2]|0;l=g;return t|0;}else{Zx(c[p>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;c[c[i>>2]>>2]=c[p>>2];c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}break;}case 4:{if((c[j>>2]|0)!=(c[k>>2]|0))w=Vx()|0;else w=c[c[i>>2]>>2]|0;c[o>>2]=w;if(!(c[o>>2]|0)){c[h>>2]=-64;t=c[h>>2]|0;l=g;return t|0;}else{Wx(c[o>>2]|0)|0;Xx(c[o>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;c[c[i>>2]>>2]=c[o>>2];c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}break;}default:{c[h>>2]=0;t=c[h>>2]|0;l=g;return t|0;}}return 0;}function Tx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[(c[d>>2]|0)+28804>>2]|0)==7|0;}function Ux(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function Vx(){return fy()|0;}function Wx(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=ey(c[d>>2]|0)|0;l=b;return a|0;}function Xx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=dy(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function Yx(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(96)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{f=c[d>>2]|0;g=f+96|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(g|0));f=ns()|0;c[c[d>>2]>>2]=f;c[(c[d>>2]|0)+80>>2]=0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function Zx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+80>>2]=1;c[(c[f>>2]|0)+72>>2]=0;c[(c[f>>2]|0)+68>>2]=0;c[(c[f>>2]|0)+56>>2]=0;c[(c[f>>2]|0)+76>>2]=0;d=Su(c[c[f>>2]>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function _x(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(80)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{f=c[d>>2]|0;g=f+80|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(g|0));f=ps()|0;c[c[d>>2]>>2]=f;c[(c[d>>2]|0)+24>>2]=0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function $x(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+24>>2]=1;c[(c[f>>2]|0)+52>>2]=0;c[(c[f>>2]|0)+48>>2]=0;c[(c[f>>2]|0)+36>>2]=0;c[(c[f>>2]|0)+76>>2]=0;d=Jt(c[c[f>>2]>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function ay(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[2988];c[b+4>>2]=c[2989];c[b+8>>2]=c[2990];d=cy(b)|0;l=a;return d|0;}function by(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+32>>2]=1;c[(c[f>>2]|0)+60>>2]=0;c[(c[f>>2]|0)+56>>2]=0;c[(c[f>>2]|0)+44>>2]=0;c[(c[f>>2]|0)+88>>2]=0;d=ts(c[c[f>>2]>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function cy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+32|0;d=b+8|0;e=b+4|0;f=b;if((c[a>>2]|0)==0?(c[a+4>>2]|0)==0:0){c[a>>2]=c[2988];c[a+4>>2]=c[2989];c[a+8>>2]=c[2990];}if(c[a>>2]|0?c[a+4>>2]|0:0){c[f>>2]=qc[c[a>>2]&63](c[a+8>>2]|0,104)|0;if(!(c[f>>2]|0)){c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}h=c[f>>2]|0;i=h+104|0;do{c[h>>2]=0;h=h+4|0;}while((h|0)<(i|0));h=(c[f>>2]|0)+92|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];a=Gt(d)|0;c[c[f>>2]>>2]=a;a=c[f>>2]|0;if(!(c[c[f>>2]>>2]|0)){bq(a)|0;c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}else{c[a+32>>2]=0;c[e>>2]=c[f>>2];g=c[e>>2]|0;l=b;return g|0;}}c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}function dy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+72>>2]=c[g>>2];c[(c[f>>2]|0)+76>>2]=c[h>>2];l=e;return 0;}function ey(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+80>>2]=1;c[(c[d>>2]|0)+76>>2]=0;c[(c[d>>2]|0)+64>>2]=0;c[(c[d>>2]|0)+60>>2]=0;c[(c[d>>2]|0)+48>>2]=0;c[(c[d>>2]|0)+68>>2]=0;a=kw(c[c[d>>2]>>2]|0)|0;l=b;return a|0;}function fy(){var a=0,b=0,d=0,e=0,f=0,g=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(96)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{f=c[d>>2]|0;g=f+96|0;do{c[f>>2]=0;f=f+4|0;}while((f|0)<(g|0));f=hw()|0;c[c[d>>2]>>2]=f;c[(c[d>>2]|0)+80>>2]=0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function gy(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,m=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;f=uy(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;l=g;return f|0;}function Ko(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=l;l=l+48|0;j=i+32|0;k=i+28|0;m=i+24|0;n=i+20|0;o=i+16|0;p=i+12|0;q=i+8|0;r=i+4|0;s=i;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;g=c[m>>2]|0;f=c[r>>2]|0;r=c[q>>2]|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[s>>2]=Jo(g,f,j,r,0)|0;if(wj(c[s>>2]|0)|0){c[k>>2]=c[s>>2];t=c[k>>2]|0;l=i;return t|0;}else{c[k>>2]=Bo(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;t=c[k>>2]|0;l=i;return t|0;}return 0;}function Lo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;h=l;l=l+48|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;c[i>>2]=c[2981];c[i+4>>2]=c[2982];c[i+8>>2]=c[2983];p=Ko(g,j,k,m,n,o,i)|0;l=h;return p|0;}function Mo(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[5406];c[b+4>>2]=c[5407];c[b+8>>2]=c[5408];d=No(b)|0;l=a;return d|0;}function No(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];a=nj(d)|0;l=b;return a|0;}function Oo(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=qj(c[d>>2]|0)|0;l=b;return a|0;}function Po(){return 131072;}function Qo(){return(lj(131072)|0)+3+4|0;}function Ro(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=l;l=l+144|0;k=j+40|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j;t=j+8|0;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;f=s;c[f>>2]=h;c[f+4>>2]=i;i=c[n>>2]|0;f=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;r=s;h=c[r>>2]|0;e=c[r+4>>2]|0;r=k;d=g;g=r+104|0;do{c[r>>2]=c[d>>2];r=r+4|0;d=d+4|0;}while((r|0)<(g|0));c[t>>2]=xo(i,f,o,p,q,k,h,e,1)|0;if(wj(c[t>>2]|0)|0){c[m>>2]=c[t>>2];u=c[m>>2]|0;l=j;return u|0;}else{c[(c[n>>2]|0)+600>>2]=0;c[(c[n>>2]|0)+604>>2]=0;t=s;c[(c[n>>2]|0)+608>>2]=(c[(c[n>>2]|0)+232>>2]|0)+((0==(c[t+4>>2]|0)?(c[(c[n>>2]|0)+232>>2]|0)==(c[t>>2]|0):0)&1);c[(c[n>>2]|0)+624>>2]=0;c[(c[n>>2]|0)+620>>2]=0;c[(c[n>>2]|0)+628>>2]=1;c[(c[n>>2]|0)+632>>2]=0;c[m>>2]=0;u=c[m>>2]|0;l=j;return u|0;}return 0;}function So(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=l;l=l+192|0;j=i+88|0;k=i+52|0;m=i+80|0;n=i+48|0;o=i+44|0;p=i+40|0;q=i+36|0;r=i;s=i+8|0;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;e=r;c[e>>2]=g;c[e+4>>2]=h;if((c[o>>2]|0)!=0&(c[p>>2]|0)>>>0>=8){if(c[(c[n>>2]|0)+364>>2]|0){c[m>>2]=-64;t=c[m>>2]|0;l=i;return t|0;}rj(c[(c[n>>2]|0)+636>>2]|0)|0;h=c[o>>2]|0;o=c[p>>2]|0;p=f+4|0;e=(c[n>>2]|0)+352|0;c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];c[k+16>>2]=c[p+16>>2];c[k+20>>2]=c[p+20>>2];c[k+24>>2]=c[p+24>>2];c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];e=zj(h,o,0,0,k,j)|0;c[(c[n>>2]|0)+636>>2]=e;c[(c[n>>2]|0)+640>>2]=c[(c[n>>2]|0)+636>>2];if(!(c[(c[n>>2]|0)+636>>2]|0)){c[m>>2]=-64;t=c[m>>2]|0;l=i;return t|0;}}else{if(c[q>>2]|0){e=f+4|0;Io(s,c[q>>2]|0);c[e>>2]=c[s>>2];c[e+4>>2]=c[s+4>>2];c[e+8>>2]=c[s+8>>2];c[e+12>>2]=c[s+12>>2];c[e+16>>2]=c[s+16>>2];c[e+20>>2]=c[s+20>>2];c[e+24>>2]=c[s+24>>2];}rj(c[(c[n>>2]|0)+636>>2]|0)|0;c[(c[n>>2]|0)+636>>2]=0;c[(c[n>>2]|0)+640>>2]=c[q>>2];}q=c[n>>2]|0;s=c[(c[n>>2]|0)+640>>2]|0;n=r;r=c[n>>2]|0;e=c[n+4>>2]|0;n=j;k=f;f=n+104|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0;}while((n|0)<(f|0));c[m>>2]=Ro(q,0,0,0,s,j,r,e)|0;t=c[m>>2]|0;l=i;return t|0;}function To(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,m=0,n=0,o=0,p=0;g=l;l=l+272|0;h=g+160|0;i=g+152|0;j=g+148|0;k=g+144|0;m=g;n=g+40|0;o=g+8|0;c[j>>2]=a;c[k>>2]=b;b=m;c[b>>2]=e;c[b+4>>2]=f;if(c[k>>2]|0){f=n;b=(c[j>>2]|0)+12|0;e=f+104|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0;}while((f|0)<(e|0));a=n+4|0;Io(o,c[k>>2]|0);c[a>>2]=c[o>>2];c[a+4>>2]=c[o+4>>2];c[a+8>>2]=c[o+8>>2];c[a+12>>2]=c[o+12>>2];c[a+16>>2]=c[o+16>>2];c[a+20>>2]=c[o+20>>2];c[a+24>>2]=c[o+24>>2];o=n+32|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];d=c[j>>2]|0;j=c[k>>2]|0;k=m;m=c[k>>2]|0;o=c[k+4>>2]|0;f=h;b=n;e=f+104|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0;}while((f|0)<(e|0));c[i>>2]=So(d,0,0,j,h,m,o)|0;p=c[i>>2]|0;l=g;return p|0;}else{c[i>>2]=-32;p=c[i>>2]|0;l=g;return p|0;}return 0;}function Uo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;f=c[g>>2]|0;c[e>>2]=c[5409];c[e+4>>2]=c[5410];c[e+8>>2]=c[5411];g=To(b,f,e,-1,-1)|0;l=d;return g|0;}function Vo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+384|0;g=f+280|0;h=f+168|0;i=f+272|0;j=f+160|0;k=f+8|0;m=f;n=f+120|0;o=f+16|0;c[i>>2]=a;c[j>>2]=b;b=k;c[b>>2]=d;c[b+4>>2]=e;e=k;b=(c[e>>2]|0)==0&(c[e+4>>2]|0)==0;e=k;k=b?-1:c[e+4>>2]|0;d=m;c[d>>2]=b?-1:c[e>>2]|0;c[d+4>>2]=k;k=m;Ao(n,c[j>>2]|0,c[k>>2]|0,c[k+4>>2]|0,0);k=h;j=(c[i>>2]|0)+12|0;d=k+104|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0;}while((k|0)<(d|0));k=g;j=n;d=k+40|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0;}while((k|0)<(d|0));zo(o,h,g);h=c[i>>2]|0;i=m;m=c[i>>2]|0;n=c[i+4>>2]|0;k=g;j=o;d=k+104|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0;}while((k|0)<(d|0));j=So(h,0,0,0,g,m,n)|0;l=f;return j|0;}function Wo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Vo(c[e>>2]|0,c[f>>2]|0,-1,-1)|0;l=d;return b|0;}function Xo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,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;f=l;l=l+96|0;g=f+88|0;h=f+84|0;i=f+80|0;j=f+76|0;k=f+72|0;m=f+68|0;n=f+64|0;o=f+60|0;p=f+56|0;q=f+52|0;r=f+48|0;s=f+44|0;t=f+40|0;u=f+36|0;v=f+32|0;w=f+28|0;x=f+24|0;y=f+20|0;z=f+16|0;A=f+12|0;B=f+8|0;C=f+4|0;D=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[c[j>>2]>>2];c[n>>2]=(c[m>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0);c[o>>2]=(c[m>>2]|0)+(c[(c[j>>2]|0)+8>>2]|0);c[p>>2]=c[c[i>>2]>>2];c[q>>2]=(c[p>>2]|0)+(c[(c[i>>2]|0)+4>>2]|0);c[r>>2]=(c[p>>2]|0)+(c[(c[i>>2]|0)+8>>2]|0);c[s>>2]=1;a:while(1){if(!(c[s>>2]|0)){E=39;break;}b:do{switch(c[(c[h>>2]|0)+628>>2]|0){case 0:{E=4;break a;break;}case 1:{if(((c[k>>2]|0)==2?(e=(c[q>>2]|0)-(c[r>>2]|0)|0,e>>>0>=(lj((c[n>>2]|0)-(c[o>>2]|0)|0)|0)>>>0):0)?(c[(c[h>>2]|0)+604>>2]|0)==0:0){c[t>>2]=Bo(c[h>>2]|0,c[r>>2]|0,(c[q>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,(c[n>>2]|0)-(c[o>>2]|0)|0)|0;if(Ph(c[t>>2]|0)|0){E=9;break a;}c[o>>2]=c[n>>2];c[r>>2]=(c[r>>2]|0)+(c[t>>2]|0);c[(c[h>>2]|0)+632>>2]=1;jl(c[h>>2]|0);c[s>>2]=0;break b;}c[u>>2]=(c[(c[h>>2]|0)+608>>2]|0)-(c[(c[h>>2]|0)+604>>2]|0);c[v>>2]=Yo((c[(c[h>>2]|0)+592>>2]|0)+(c[(c[h>>2]|0)+604>>2]|0)|0,c[u>>2]|0,c[o>>2]|0,(c[n>>2]|0)-(c[o>>2]|0)|0)|0;e=(c[h>>2]|0)+604|0;c[e>>2]=(c[e>>2]|0)+(c[v>>2]|0);c[o>>2]=(c[o>>2]|0)+(c[v>>2]|0);if((c[k>>2]|0)==0?(c[(c[h>>2]|0)+604>>2]|0)>>>0<(c[(c[h>>2]|0)+608>>2]|0)>>>0:0){c[s>>2]=0;break b;}if((c[k>>2]|0)==1?(c[(c[h>>2]|0)+604>>2]|0)==(c[(c[h>>2]|0)+600>>2]|0):0){c[s>>2]=0;break b;}c[y>>2]=(c[(c[h>>2]|0)+604>>2]|0)-(c[(c[h>>2]|0)+600>>2]|0);c[z>>2]=(c[q>>2]|0)-(c[r>>2]|0);if((c[k>>2]|0)==2)F=(c[o>>2]|0)==(c[n>>2]|0);else F=0;c[A>>2]=F&1;if((c[z>>2]|0)>>>0>=(lj(c[y>>2]|0)|0)>>>0)c[w>>2]=c[r>>2];else{c[w>>2]=c[(c[h>>2]|0)+612>>2];c[z>>2]=c[(c[h>>2]|0)+616>>2];}e=c[h>>2]|0;d=c[w>>2]|0;b=c[z>>2]|0;a=(c[(c[h>>2]|0)+592>>2]|0)+(c[(c[h>>2]|0)+600>>2]|0)|0;G=c[y>>2]|0;if(c[A>>2]|0)H=Bo(e,d,b,a,G)|0;else H=vn(e,d,b,a,G)|0;c[x>>2]=H;if(Ph(c[x>>2]|0)|0){E=26;break a;}c[(c[h>>2]|0)+632>>2]=c[A>>2];c[(c[h>>2]|0)+608>>2]=(c[(c[h>>2]|0)+604>>2]|0)+(c[(c[h>>2]|0)+232>>2]|0);if((c[(c[h>>2]|0)+608>>2]|0)>>>0>(c[(c[h>>2]|0)+596>>2]|0)>>>0){c[(c[h>>2]|0)+604>>2]=0;c[(c[h>>2]|0)+608>>2]=c[(c[h>>2]|0)+232>>2];}c[(c[h>>2]|0)+600>>2]=c[(c[h>>2]|0)+604>>2];G=c[x>>2]|0;if((c[w>>2]|0)!=(c[r>>2]|0)){c[(c[h>>2]|0)+620>>2]=G;c[(c[h>>2]|0)+624>>2]=0;c[(c[h>>2]|0)+628>>2]=2;E=33;break b;}c[r>>2]=(c[r>>2]|0)+G;if(c[(c[h>>2]|0)+632>>2]|0){c[s>>2]=0;jl(c[h>>2]|0);}break;}case 2:{E=33;break;}default:{}}}while(0);do{if((E|0)==33){E=0;c[B>>2]=(c[(c[h>>2]|0)+620>>2]|0)-(c[(c[h>>2]|0)+624>>2]|0);c[C>>2]=Yo(c[r>>2]|0,(c[q>>2]|0)-(c[r>>2]|0)|0,(c[(c[h>>2]|0)+612>>2]|0)+(c[(c[h>>2]|0)+624>>2]|0)|0,c[B>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+(c[C>>2]|0);G=(c[h>>2]|0)+624|0;c[G>>2]=(c[G>>2]|0)+(c[C>>2]|0);if((c[B>>2]|0)!=(c[C>>2]|0)){c[s>>2]=0;break;}c[(c[h>>2]|0)+624>>2]=0;c[(c[h>>2]|0)+620>>2]=0;if(c[(c[h>>2]|0)+632>>2]|0){c[s>>2]=0;jl(c[h>>2]|0);break;}else{c[(c[h>>2]|0)+628>>2]=1;break;}}}while(0);}if((E|0)==4){c[g>>2]=-62;I=c[g>>2]|0;l=f;return I|0;}else if((E|0)==9){c[g>>2]=c[t>>2];I=c[g>>2]|0;l=f;return I|0;}else if((E|0)==26){c[g>>2]=c[x>>2];I=c[g>>2]|0;l=f;return I|0;}else if((E|0)==39){c[(c[j>>2]|0)+8>>2]=(c[o>>2]|0)-(c[m>>2]|0);c[(c[i>>2]|0)+8>>2]=(c[r>>2]|0)-(c[p>>2]|0);if(c[(c[h>>2]|0)+632>>2]|0){c[g>>2]=0;I=c[g>>2]|0;l=f;return I|0;}c[D>>2]=(c[(c[h>>2]|0)+608>>2]|0)-(c[(c[h>>2]|0)+604>>2]|0);if(!(c[D>>2]|0))c[D>>2]=c[(c[h>>2]|0)+232>>2];c[g>>2]=c[D>>2];I=c[g>>2]|0;l=f;return I|0;}return 0;}function Yo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;if(!(c[k>>2]|0)){m=c[k>>2]|0;l=f;return m|0;}mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;m=c[k>>2]|0;l=f;return m|0;}function Zo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[(c[h>>2]|0)+8>>2]|0)>>>0>(c[(c[h>>2]|0)+4>>2]|0)>>>0){c[f>>2]=-1;j=c[f>>2]|0;l=e;return j|0;}if((c[(c[i>>2]|0)+8>>2]|0)>>>0>(c[(c[i>>2]|0)+4>>2]|0)>>>0){c[f>>2]=-1;j=c[f>>2]|0;l=e;return j|0;}else{c[f>>2]=Xo(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,0)|0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function _o(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;d=l;l=l+48|0;e=d+36|0;f=d+32|0;g=d+28|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;m=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;if((c[(c[g>>2]|0)+8>>2]|0)>>>0>(c[(c[g>>2]|0)+4>>2]|0)>>>0){c[e>>2]=-1;n=c[e>>2]|0;l=d;return n|0;}c[i>>2]=Xo(c[f>>2]|0,c[g>>2]|0,h,2)|0;if(wj(c[i>>2]|0)|0){c[e>>2]=c[i>>2];n=c[e>>2]|0;l=d;return n|0;}c[j>>2]=c[(c[f>>2]|0)+632>>2]|0?0:3;if(c[(c[f>>2]|0)+632>>2]|0)o=0;else o=c[(c[f>>2]|0)+116+32+4>>2]<<2;c[k>>2]=o;c[m>>2]=(c[(c[f>>2]|0)+620>>2]|0)-(c[(c[f>>2]|0)+624>>2]|0)+(c[j>>2]|0)+(c[k>>2]|0);c[e>>2]=c[m>>2];n=c[e>>2]|0;l=d;return n|0;}function $o(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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=l;l=l+96|0;j=i+80|0;k=i+76|0;m=i+72|0;n=i+68|0;o=i+64|0;p=i+60|0;q=i+56|0;r=i+52|0;s=i+48|0;t=i+44|0;u=i+40|0;v=i+36|0;w=i+32|0;x=i+28|0;y=i+88|0;z=i+24|0;A=i+20|0;B=i+16|0;C=i+12|0;D=i+8|0;E=i+4|0;F=i;G=i+84|0;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=0;c[r>>2]=0;c[t>>2]=(c[k>>2]|0)+4;c[u>>2]=c[t>>2];c[x>>2]=0;c[v>>2]=(c[o>>2]|0)+(c[x>>2]<<2);c[x>>2]=(c[x>>2]|0)+16;c[w>>2]=(c[o>>2]|0)+(c[x>>2]<<2);c[x>>2]=(c[x>>2]|0)+64;if(c[x>>2]<<2>>>0>(c[p>>2]|0)>>>0){c[j>>2]=-44;H=c[j>>2]|0;l=i;return H|0;}c[s>>2]=fh(c[w>>2]|0,256,c[v>>2]|0,r,q,c[m>>2]|0,c[n>>2]|0)|0;if(ap(c[s>>2]|0)|0){c[j>>2]=c[s>>2];H=c[j>>2]|0;l=i;return H|0;}bp(y,c[k>>2]|0);if((c[q>>2]|0)>>>0>((d[y>>0]|0)+1|0)>>>0){c[j>>2]=-44;H=c[j>>2]|0;l=i;return H|0;}a[y+1>>0]=0;a[y+2>>0]=c[q>>2];n=c[k>>2]|0;a[n>>0]=a[y>>0]|0;a[n+1>>0]=a[y+1>>0]|0;a[n+2>>0]=a[y+2>>0]|0;a[n+3>>0]=a[y+3>>0]|0;c[A>>2]=0;c[z>>2]=1;while(1){if((c[z>>2]|0)>>>0>=((c[q>>2]|0)+1|0)>>>0)break;c[B>>2]=c[A>>2];c[A>>2]=(c[A>>2]|0)+(c[(c[v>>2]|0)+(c[z>>2]<<2)>>2]<<(c[z>>2]|0)-1);c[(c[v>>2]|0)+(c[z>>2]<<2)>>2]=c[B>>2];c[z>>2]=(c[z>>2]|0)+1;}c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;c[D>>2]=d[(c[w>>2]|0)+(c[C>>2]|0)>>0];c[E>>2]=1<>2]>>1;a[G>>0]=c[C>>2];a[G+1>>0]=(c[q>>2]|0)+1-(c[D>>2]|0);c[F>>2]=c[(c[v>>2]|0)+(c[D>>2]<<2)>>2];while(1){if((c[F>>2]|0)>>>0>=((c[(c[v>>2]|0)+(c[D>>2]<<2)>>2]|0)+(c[E>>2]|0)|0)>>>0)break;z=(c[u>>2]|0)+(c[F>>2]<<1)|0;a[z>>0]=a[G>>0]|0;a[z+1>>0]=a[G+1>>0]|0;c[F>>2]=(c[F>>2]|0)+1;}z=(c[v>>2]|0)+(c[D>>2]<<2)|0;c[z>>2]=(c[z>>2]|0)+(c[E>>2]|0);c[C>>2]=(c[C>>2]|0)+1;}c[j>>2]=c[s>>2];H=c[j>>2]|0;l=i;return H|0;}function ap(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function bp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;a[g+2>>0]=a[d+2>>0]|0;a[g+3>>0]=a[d+3>>0]|0;a[b>>0]=a[g>>0]|0;a[b+1>>0]=a[g+1>>0]|0;a[b+2>>0]=a[g+2>>0]|0;a[b+3>>0]=a[g+3>>0]|0;l=e;return;}function cp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=dp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=ep(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function dp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+224|0;j=i+204|0;k=i+200|0;m=i+196|0;n=i+192|0;o=i+217|0;p=i+188|0;q=i+184|0;r=i+180|0;s=i+176|0;t=i+216|0;u=i+172|0;v=i+168|0;w=i+164|0;x=i+160|0;y=i+215|0;z=i+156|0;A=i+152|0;B=i+148|0;C=i+144|0;D=i+214|0;E=i+140|0;F=i+136|0;G=i+132|0;H=i+128|0;I=i+213|0;J=i+124|0;K=i+120|0;L=i+116|0;M=i+112|0;N=i+212|0;O=i+108|0;P=i+104|0;Q=i+100|0;R=i+96|0;S=i+92|0;T=i+84|0;U=i+80|0;V=i+76|0;W=i+72|0;X=i+68|0;Y=i+64|0;Z=i+60|0;_=i+56|0;$=i+52|0;aa=i+48|0;ba=i+28|0;ca=i+208|0;da=i+24|0;ea=i+20|0;fa=i+16|0;ga=i+12|0;ha=i+8|0;ia=i+4|0;ja=i;c[fa>>2]=b;c[ga>>2]=e;c[ha>>2]=f;c[ia>>2]=g;c[ja>>2]=h;h=c[ga>>2]|0;ga=c[ha>>2]|0;ha=c[ia>>2]|0;ia=c[ja>>2]|0;c[U>>2]=c[fa>>2];c[V>>2]=h;c[W>>2]=ga;c[X>>2]=ha;c[Y>>2]=ia;c[Z>>2]=c[U>>2];c[_>>2]=(c[Z>>2]|0)+(c[V>>2]|0);c[$>>2]=(c[Y>>2]|0)+4;c[aa>>2]=c[$>>2];bp(ca,c[Y>>2]|0);c[da>>2]=d[ca+2>>0];c[ea>>2]=fp(ba,c[W>>2]|0,c[X>>2]|0)|0;if(ap(c[ea>>2]|0)|0){c[T>>2]=c[ea>>2];ka=c[T>>2]|0;l=i;return ka|0;}ea=c[_>>2]|0;_=c[aa>>2]|0;aa=c[da>>2]|0;c[O>>2]=c[Z>>2];c[P>>2]=ba;c[Q>>2]=ea;c[R>>2]=_;c[S>>2]=aa;c[i+88>>2]=c[O>>2];while(1){aa=(gp(c[P>>2]|0)|0)==0&1;if(!(aa&(c[O>>2]|0)>>>0<((c[Q>>2]|0)+-3|0)>>>0))break;if(hp()|0){aa=c[R>>2]|0;_=c[S>>2]|0;c[J>>2]=c[P>>2];c[K>>2]=aa;c[L>>2]=_;c[M>>2]=ip(c[J>>2]|0,c[L>>2]|0)|0;a[N>>0]=a[(c[K>>2]|0)+(c[M>>2]<<1)>>0]|0;jp(c[J>>2]|0,d[(c[K>>2]|0)+(c[M>>2]<<1)+1>>0]|0);_=a[N>>0]|0;aa=c[O>>2]|0;c[O>>2]=aa+1;a[aa>>0]=_;}hp()|0;_=c[R>>2]|0;aa=c[S>>2]|0;c[E>>2]=c[P>>2];c[F>>2]=_;c[G>>2]=aa;c[H>>2]=ip(c[E>>2]|0,c[G>>2]|0)|0;a[I>>0]=a[(c[F>>2]|0)+(c[H>>2]<<1)>>0]|0;jp(c[E>>2]|0,d[(c[F>>2]|0)+(c[H>>2]<<1)+1>>0]|0);aa=a[I>>0]|0;_=c[O>>2]|0;c[O>>2]=_+1;a[_>>0]=aa;if(hp()|0){aa=c[R>>2]|0;_=c[S>>2]|0;c[z>>2]=c[P>>2];c[A>>2]=aa;c[B>>2]=_;c[C>>2]=ip(c[z>>2]|0,c[B>>2]|0)|0;a[D>>0]=a[(c[A>>2]|0)+(c[C>>2]<<1)>>0]|0;jp(c[z>>2]|0,d[(c[A>>2]|0)+(c[C>>2]<<1)+1>>0]|0);_=a[D>>0]|0;aa=c[O>>2]|0;c[O>>2]=aa+1;a[aa>>0]=_;}_=c[R>>2]|0;aa=c[S>>2]|0;c[u>>2]=c[P>>2];c[v>>2]=_;c[w>>2]=aa;c[x>>2]=ip(c[u>>2]|0,c[w>>2]|0)|0;a[y>>0]=a[(c[v>>2]|0)+(c[x>>2]<<1)>>0]|0;jp(c[u>>2]|0,d[(c[v>>2]|0)+(c[x>>2]<<1)+1>>0]|0);aa=a[y>>0]|0;_=c[O>>2]|0;c[O>>2]=_+1;a[_>>0]=aa;}a:do{if(kp()|0)while(1){y=(gp(c[P>>2]|0)|0)==0&1;if(!(y&(c[O>>2]|0)>>>0<(c[Q>>2]|0)>>>0))break a;y=c[R>>2]|0;x=c[S>>2]|0;c[p>>2]=c[P>>2];c[q>>2]=y;c[r>>2]=x;c[s>>2]=ip(c[p>>2]|0,c[r>>2]|0)|0;a[t>>0]=a[(c[q>>2]|0)+(c[s>>2]<<1)>>0]|0;jp(c[p>>2]|0,d[(c[q>>2]|0)+(c[s>>2]<<1)+1>>0]|0);x=a[t>>0]|0;y=c[O>>2]|0;c[O>>2]=y+1;a[y>>0]=x;}}while(0);while(1){if((c[O>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break;t=c[R>>2]|0;s=c[S>>2]|0;c[j>>2]=c[P>>2];c[k>>2]=t;c[m>>2]=s;c[n>>2]=ip(c[j>>2]|0,c[m>>2]|0)|0;a[o>>0]=a[(c[k>>2]|0)+(c[n>>2]<<1)>>0]|0;jp(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<1)+1>>0]|0);s=a[o>>0]|0;t=c[O>>2]|0;c[O>>2]=t+1;a[t>>0]=s;}if(lp(ba)|0){c[T>>2]=c[V>>2];ka=c[T>>2]|0;l=i;return ka|0;}else{c[T>>2]=-20;ka=c[T>>2]|0;l=i;return ka|0;}return 0;}function ep(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+224|0;j=i+204|0;k=i+200|0;m=i+196|0;n=i+192|0;o=i+217|0;p=i+188|0;q=i+184|0;r=i+180|0;s=i+176|0;t=i+216|0;u=i+172|0;v=i+168|0;w=i+164|0;x=i+160|0;y=i+215|0;z=i+156|0;A=i+152|0;B=i+148|0;C=i+144|0;D=i+214|0;E=i+140|0;F=i+136|0;G=i+132|0;H=i+128|0;I=i+213|0;J=i+124|0;K=i+120|0;L=i+116|0;M=i+112|0;N=i+212|0;O=i+108|0;P=i+104|0;Q=i+100|0;R=i+96|0;S=i+92|0;T=i+84|0;U=i+80|0;V=i+76|0;W=i+72|0;X=i+68|0;Y=i+64|0;Z=i+60|0;_=i+56|0;$=i+52|0;aa=i+48|0;ba=i+28|0;ca=i+208|0;da=i+24|0;ea=i+20|0;fa=i+16|0;ga=i+12|0;ha=i+8|0;ia=i+4|0;ja=i;c[fa>>2]=b;c[ga>>2]=e;c[ha>>2]=f;c[ia>>2]=g;c[ja>>2]=h;h=c[ga>>2]|0;ga=c[ha>>2]|0;ha=c[ia>>2]|0;ia=c[ja>>2]|0;c[U>>2]=c[fa>>2];c[V>>2]=h;c[W>>2]=ga;c[X>>2]=ha;c[Y>>2]=ia;c[Z>>2]=c[U>>2];c[_>>2]=(c[Z>>2]|0)+(c[V>>2]|0);c[$>>2]=(c[Y>>2]|0)+4;c[aa>>2]=c[$>>2];bp(ca,c[Y>>2]|0);c[da>>2]=d[ca+2>>0];c[ea>>2]=fp(ba,c[W>>2]|0,c[X>>2]|0)|0;if(ap(c[ea>>2]|0)|0){c[T>>2]=c[ea>>2];ka=c[T>>2]|0;l=i;return ka|0;}ea=c[_>>2]|0;_=c[aa>>2]|0;aa=c[da>>2]|0;c[O>>2]=c[Z>>2];c[P>>2]=ba;c[Q>>2]=ea;c[R>>2]=_;c[S>>2]=aa;c[i+88>>2]=c[O>>2];while(1){aa=(gp(c[P>>2]|0)|0)==0&1;if(!(aa&(c[O>>2]|0)>>>0<((c[Q>>2]|0)+-3|0)>>>0))break;if(hp()|0){aa=c[R>>2]|0;_=c[S>>2]|0;c[J>>2]=c[P>>2];c[K>>2]=aa;c[L>>2]=_;c[M>>2]=ip(c[J>>2]|0,c[L>>2]|0)|0;a[N>>0]=a[(c[K>>2]|0)+(c[M>>2]<<1)>>0]|0;jp(c[J>>2]|0,d[(c[K>>2]|0)+(c[M>>2]<<1)+1>>0]|0);_=a[N>>0]|0;aa=c[O>>2]|0;c[O>>2]=aa+1;a[aa>>0]=_;}hp()|0;_=c[R>>2]|0;aa=c[S>>2]|0;c[E>>2]=c[P>>2];c[F>>2]=_;c[G>>2]=aa;c[H>>2]=ip(c[E>>2]|0,c[G>>2]|0)|0;a[I>>0]=a[(c[F>>2]|0)+(c[H>>2]<<1)>>0]|0;jp(c[E>>2]|0,d[(c[F>>2]|0)+(c[H>>2]<<1)+1>>0]|0);aa=a[I>>0]|0;_=c[O>>2]|0;c[O>>2]=_+1;a[_>>0]=aa;if(hp()|0){aa=c[R>>2]|0;_=c[S>>2]|0;c[z>>2]=c[P>>2];c[A>>2]=aa;c[B>>2]=_;c[C>>2]=ip(c[z>>2]|0,c[B>>2]|0)|0;a[D>>0]=a[(c[A>>2]|0)+(c[C>>2]<<1)>>0]|0;jp(c[z>>2]|0,d[(c[A>>2]|0)+(c[C>>2]<<1)+1>>0]|0);_=a[D>>0]|0;aa=c[O>>2]|0;c[O>>2]=aa+1;a[aa>>0]=_;}_=c[R>>2]|0;aa=c[S>>2]|0;c[u>>2]=c[P>>2];c[v>>2]=_;c[w>>2]=aa;c[x>>2]=ip(c[u>>2]|0,c[w>>2]|0)|0;a[y>>0]=a[(c[v>>2]|0)+(c[x>>2]<<1)>>0]|0;jp(c[u>>2]|0,d[(c[v>>2]|0)+(c[x>>2]<<1)+1>>0]|0);aa=a[y>>0]|0;_=c[O>>2]|0;c[O>>2]=_+1;a[_>>0]=aa;}a:do{if(kp()|0)while(1){y=(gp(c[P>>2]|0)|0)==0&1;if(!(y&(c[O>>2]|0)>>>0<(c[Q>>2]|0)>>>0))break a;y=c[R>>2]|0;x=c[S>>2]|0;c[p>>2]=c[P>>2];c[q>>2]=y;c[r>>2]=x;c[s>>2]=ip(c[p>>2]|0,c[r>>2]|0)|0;a[t>>0]=a[(c[q>>2]|0)+(c[s>>2]<<1)>>0]|0;jp(c[p>>2]|0,d[(c[q>>2]|0)+(c[s>>2]<<1)+1>>0]|0);x=a[t>>0]|0;y=c[O>>2]|0;c[O>>2]=y+1;a[y>>0]=x;}}while(0);while(1){if((c[O>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break;t=c[R>>2]|0;s=c[S>>2]|0;c[j>>2]=c[P>>2];c[k>>2]=t;c[m>>2]=s;c[n>>2]=ip(c[j>>2]|0,c[m>>2]|0)|0;a[o>>0]=a[(c[k>>2]|0)+(c[n>>2]<<1)>>0]|0;jp(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<1)+1>>0]|0);s=a[o>>0]|0;t=c[O>>2]|0;c[O>>2]=t+1;a[t>>0]=s;}if(lp(ba)|0){c[T>>2]=c[V>>2];ka=c[T>>2]|0;l=i;return ka|0;}else{c[T>>2]=-20;ka=c[T>>2]|0;l=i;return ka|0;}return 0;}function fp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;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[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}c[(c[i>>2]|0)+12>>2]=c[j>>2];c[(c[i>>2]|0)+16>>2]=(c[(c[i>>2]|0)+12>>2]|0)+4;do{if((c[k>>2]|0)>>>0>=4){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;f=mp(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=f;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0)p=8-(up(d[m>>0]|0)|0)|0;else p=0;c[(c[i>>2]|0)+4>>2]=p;if(!(d[m>>0]|0)){c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);q=10;break;}case 6:{q=10;break;}case 5:{q=11;break;}case 4:{q=12;break;}case 3:{q=13;break;}case 2:{q=14;break;}default:{}}if((q|0)==10){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);q=11;}if((q|0)==11){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);q=12;}if((q|0)==12){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);q=13;}if((q|0)==13){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);q=14;}if((q|0)==14){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0)r=8-(up(d[n>>0]|0)|0)|0;else r=0;c[(c[i>>2]|0)+4>>2]=r;if(d[n>>0]|0|0){f=(c[i>>2]|0)+4|0;c[f>>2]=(c[f>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-20;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function gp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=mp(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=mp(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function hp(){return 0;}function ip(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function jp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function kp(){return 1;}function lp(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;if((c[(c[d>>2]|0)+8>>2]|0)!=(c[(c[d>>2]|0)+12>>2]|0)){e=0;f=e&1;l=b;return f|0;}e=(c[(c[d>>2]|0)+4>>2]|0)==32;f=e&1;l=b;return f|0;}function mp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(kp()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=np(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=op(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function np(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(pp()|0)!=0;f=sp(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=tp(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function op(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(pp()|0)!=0;f=qp(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=rp(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function pp(){return d[11936]|0|0;}function qp(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function rp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function sp(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function tp(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function up(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function vp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=wp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=xp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function wp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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,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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,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,Zc=0,_c=0,$c=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,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,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,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0;i=l;l=l+1024|0;j=i+968|0;k=i+964|0;m=i+960|0;n=i+956|0;o=i+1015|0;p=i+952|0;q=i+948|0;r=i+944|0;s=i+940|0;t=i+1014|0;u=i+936|0;v=i+932|0;w=i+928|0;x=i+924|0;y=i+1013|0;z=i+920|0;A=i+916|0;B=i+912|0;C=i+908|0;D=i+1012|0;E=i+904|0;F=i+900|0;G=i+896|0;H=i+892|0;I=i+1011|0;J=i+888|0;K=i+884|0;L=i+880|0;M=i+876|0;N=i+1010|0;O=i+872|0;P=i+868|0;Q=i+864|0;R=i+860|0;S=i+856|0;T=i+852|0;U=i+848|0;V=i+844|0;W=i+840|0;X=i+836|0;Y=i+1009|0;Z=i+832|0;_=i+828|0;$=i+824|0;aa=i+820|0;ba=i+1008|0;ca=i+816|0;da=i+812|0;ea=i+808|0;fa=i+804|0;ga=i+1007|0;ha=i+800|0;ia=i+796|0;ja=i+792|0;ka=i+788|0;la=i+1006|0;ma=i+784|0;na=i+780|0;oa=i+776|0;pa=i+772|0;qa=i+1005|0;ra=i+768|0;sa=i+764|0;ta=i+760|0;ua=i+756|0;va=i+1004|0;wa=i+752|0;xa=i+748|0;ya=i+744|0;za=i+740|0;Aa=i+736|0;Ba=i+732|0;Ca=i+728|0;Da=i+724|0;Ea=i+720|0;Fa=i+716|0;Ga=i+1003|0;Ha=i+712|0;Ia=i+708|0;Ja=i+704|0;Ka=i+700|0;La=i+1002|0;Ma=i+696|0;Na=i+692|0;Oa=i+688|0;Pa=i+684|0;Qa=i+1001|0;Ra=i+680|0;Sa=i+676|0;Ta=i+672|0;Ua=i+668|0;Va=i+1e3|0;Wa=i+664|0;Xa=i+660|0;Ya=i+656|0;Za=i+652|0;_a=i+999|0;$a=i+648|0;ab=i+644|0;bb=i+640|0;cb=i+636|0;db=i+998|0;eb=i+632|0;fb=i+628|0;gb=i+624|0;hb=i+620|0;ib=i+616|0;jb=i+612|0;kb=i+608|0;lb=i+604|0;mb=i+600|0;nb=i+596|0;ob=i+997|0;pb=i+592|0;qb=i+588|0;rb=i+584|0;sb=i+580|0;tb=i+996|0;ub=i+576|0;vb=i+572|0;wb=i+568|0;xb=i+564|0;yb=i+995|0;zb=i+560|0;Ab=i+556|0;Bb=i+552|0;Cb=i+548|0;Db=i+994|0;Eb=i+544|0;Fb=i+540|0;Gb=i+536|0;Hb=i+532|0;Ib=i+993|0;Jb=i+528|0;Kb=i+524|0;Lb=i+520|0;Mb=i+516|0;Nb=i+992|0;Ob=i+512|0;Pb=i+508|0;Qb=i+504|0;Rb=i+500|0;Sb=i+496|0;Tb=i+492|0;Ub=i+488|0;Vb=i+484|0;Wb=i+480|0;Xb=i+476|0;Yb=i+991|0;Zb=i+472|0;_b=i+468|0;$b=i+464|0;ac=i+460|0;bc=i+990|0;cc=i+456|0;dc=i+452|0;ec=i+448|0;fc=i+444|0;gc=i+989|0;hc=i+440|0;ic=i+436|0;jc=i+432|0;kc=i+428|0;lc=i+988|0;mc=i+424|0;nc=i+420|0;oc=i+416|0;pc=i+412|0;qc=i+987|0;rc=i+408|0;sc=i+404|0;tc=i+400|0;uc=i+396|0;vc=i+986|0;wc=i+392|0;xc=i+388|0;yc=i+384|0;zc=i+380|0;Ac=i+985|0;Bc=i+376|0;Cc=i+372|0;Dc=i+368|0;Ec=i+364|0;Fc=i+984|0;Gc=i+360|0;Hc=i+356|0;Ic=i+352|0;Jc=i+348|0;Kc=i+983|0;Lc=i+344|0;Mc=i+340|0;Nc=i+336|0;Oc=i+332|0;Pc=i+982|0;Qc=i+328|0;Rc=i+324|0;Sc=i+320|0;Tc=i+316|0;Uc=i+981|0;Vc=i+312|0;Wc=i+308|0;Xc=i+304|0;Yc=i+300|0;Zc=i+980|0;_c=i+296|0;$c=i+292|0;ad=i+288|0;bd=i+284|0;cd=i+979|0;dd=i+280|0;ed=i+276|0;fd=i+272|0;gd=i+268|0;hd=i+978|0;id=i+264|0;jd=i+260|0;kd=i+256|0;ld=i+252|0;md=i+977|0;nd=i+248|0;od=i+244|0;pd=i+240|0;qd=i+236|0;rd=i+976|0;sd=i+232|0;td=i+228|0;ud=i+224|0;vd=i+220|0;wd=i+216|0;xd=i+212|0;yd=i+208|0;zd=i+204|0;Ad=i+200|0;Bd=i+196|0;Cd=i+192|0;Dd=i+172|0;Ed=i+152|0;Fd=i+132|0;Gd=i+112|0;Hd=i+108|0;Id=i+104|0;Jd=i+100|0;Kd=i+96|0;Ld=i+92|0;Md=i+88|0;Nd=i+84|0;Od=i+80|0;Pd=i+76|0;Qd=i+72|0;Rd=i+68|0;Sd=i+64|0;Td=i+60|0;Ud=i+56|0;Vd=i+52|0;Wd=i+48|0;Xd=i+44|0;Yd=i+972|0;Zd=i+40|0;_d=i+36|0;$d=i+32|0;ae=i+28|0;be=i+24|0;ce=i+20|0;de=i+16|0;ee=i+12|0;fe=i+8|0;ge=i+4|0;he=i;c[de>>2]=b;c[ee>>2]=e;c[fe>>2]=f;c[ge>>2]=g;c[he>>2]=h;h=c[ee>>2]|0;ee=c[fe>>2]|0;fe=c[ge>>2]|0;ge=c[he>>2]|0;c[td>>2]=c[de>>2];c[ud>>2]=h;c[vd>>2]=ee;c[wd>>2]=fe;c[xd>>2]=ge;if((c[wd>>2]|0)>>>0<10){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}c[yd>>2]=c[vd>>2];c[zd>>2]=c[td>>2];c[Ad>>2]=(c[zd>>2]|0)+(c[ud>>2]|0);c[Bd>>2]=(c[xd>>2]|0)+4;c[Cd>>2]=c[Bd>>2];c[Hd>>2]=(yp(c[yd>>2]|0)|0)&65535;c[Id>>2]=(yp((c[yd>>2]|0)+2|0)|0)&65535;c[Jd>>2]=(yp((c[yd>>2]|0)+4|0)|0)&65535;c[Kd>>2]=(c[wd>>2]|0)-((c[Hd>>2]|0)+(c[Id>>2]|0)+(c[Jd>>2]|0)+6);c[Ld>>2]=(c[yd>>2]|0)+6;c[Md>>2]=(c[Ld>>2]|0)+(c[Hd>>2]|0);c[Nd>>2]=(c[Md>>2]|0)+(c[Id>>2]|0);c[Od>>2]=(c[Nd>>2]|0)+(c[Jd>>2]|0);c[Pd>>2]=(((c[ud>>2]|0)+3|0)>>>0)/4|0;c[Qd>>2]=(c[zd>>2]|0)+(c[Pd>>2]|0);c[Rd>>2]=(c[Qd>>2]|0)+(c[Pd>>2]|0);c[Sd>>2]=(c[Rd>>2]|0)+(c[Pd>>2]|0);c[Td>>2]=c[zd>>2];c[Ud>>2]=c[Qd>>2];c[Vd>>2]=c[Rd>>2];c[Wd>>2]=c[Sd>>2];c[Xd>>2]=0;bp(Yd,c[xd>>2]|0);c[Zd>>2]=d[Yd+2>>0];if((c[Kd>>2]|0)>>>0>(c[wd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}c[_d>>2]=fp(Dd,c[Ld>>2]|0,c[Hd>>2]|0)|0;if(ap(c[_d>>2]|0)|0){c[sd>>2]=c[_d>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[$d>>2]=fp(Ed,c[Md>>2]|0,c[Id>>2]|0)|0;if(ap(c[$d>>2]|0)|0){c[sd>>2]=c[$d>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[ae>>2]=fp(Fd,c[Nd>>2]|0,c[Jd>>2]|0)|0;if(ap(c[ae>>2]|0)|0){c[sd>>2]=c[ae>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[be>>2]=fp(Gd,c[Od>>2]|0,c[Kd>>2]|0)|0;if(ap(c[be>>2]|0)|0){c[sd>>2]=c[be>>2];ie=c[sd>>2]|0;l=i;return ie|0;}be=gp(Dd)|0;Kd=be|(gp(Ed)|0);be=Kd|(gp(Fd)|0);c[Xd>>2]=be|(gp(Gd)|0);while(1){if(c[Xd>>2]|0)break;if((c[Wd>>2]|0)>>>0>=((c[Ad>>2]|0)+-3|0)>>>0)break;if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[nd>>2]=Dd;c[od>>2]=be;c[pd>>2]=Kd;c[qd>>2]=ip(c[nd>>2]|0,c[pd>>2]|0)|0;a[rd>>0]=a[(c[od>>2]|0)+(c[qd>>2]<<1)>>0]|0;jp(c[nd>>2]|0,d[(c[od>>2]|0)+(c[qd>>2]<<1)+1>>0]|0);Kd=a[rd>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[id>>2]=Ed;c[jd>>2]=Kd;c[kd>>2]=be;c[ld>>2]=ip(c[id>>2]|0,c[kd>>2]|0)|0;a[md>>0]=a[(c[jd>>2]|0)+(c[ld>>2]<<1)>>0]|0;jp(c[id>>2]|0,d[(c[jd>>2]|0)+(c[ld>>2]<<1)+1>>0]|0);be=a[md>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;}if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[dd>>2]=Fd;c[ed>>2]=be;c[fd>>2]=Kd;c[gd>>2]=ip(c[dd>>2]|0,c[fd>>2]|0)|0;a[hd>>0]=a[(c[ed>>2]|0)+(c[gd>>2]<<1)>>0]|0;jp(c[dd>>2]|0,d[(c[ed>>2]|0)+(c[gd>>2]<<1)+1>>0]|0);Kd=a[hd>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[_c>>2]=Gd;c[$c>>2]=Kd;c[ad>>2]=be;c[bd>>2]=ip(c[_c>>2]|0,c[ad>>2]|0)|0;a[cd>>0]=a[(c[$c>>2]|0)+(c[bd>>2]<<1)>>0]|0;jp(c[_c>>2]|0,d[(c[$c>>2]|0)+(c[bd>>2]<<1)+1>>0]|0);be=a[cd>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;}hp()|0;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Vc>>2]=Dd;c[Wc>>2]=be;c[Xc>>2]=Kd;c[Yc>>2]=ip(c[Vc>>2]|0,c[Xc>>2]|0)|0;a[Zc>>0]=a[(c[Wc>>2]|0)+(c[Yc>>2]<<1)>>0]|0;jp(c[Vc>>2]|0,d[(c[Wc>>2]|0)+(c[Yc>>2]<<1)+1>>0]|0);Kd=a[Zc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;hp()|0;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Qc>>2]=Ed;c[Rc>>2]=Kd;c[Sc>>2]=be;c[Tc>>2]=ip(c[Qc>>2]|0,c[Sc>>2]|0)|0;a[Uc>>0]=a[(c[Rc>>2]|0)+(c[Tc>>2]<<1)>>0]|0;jp(c[Qc>>2]|0,d[(c[Rc>>2]|0)+(c[Tc>>2]<<1)+1>>0]|0);be=a[Uc>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;hp()|0;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Lc>>2]=Fd;c[Mc>>2]=be;c[Nc>>2]=Kd;c[Oc>>2]=ip(c[Lc>>2]|0,c[Nc>>2]|0)|0;a[Pc>>0]=a[(c[Mc>>2]|0)+(c[Oc>>2]<<1)>>0]|0;jp(c[Lc>>2]|0,d[(c[Mc>>2]|0)+(c[Oc>>2]<<1)+1>>0]|0);Kd=a[Pc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;hp()|0;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Gc>>2]=Gd;c[Hc>>2]=Kd;c[Ic>>2]=be;c[Jc>>2]=ip(c[Gc>>2]|0,c[Ic>>2]|0)|0;a[Kc>>0]=a[(c[Hc>>2]|0)+(c[Jc>>2]<<1)>>0]|0;jp(c[Gc>>2]|0,d[(c[Hc>>2]|0)+(c[Jc>>2]<<1)+1>>0]|0);be=a[Kc>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Bc>>2]=Dd;c[Cc>>2]=be;c[Dc>>2]=Kd;c[Ec>>2]=ip(c[Bc>>2]|0,c[Dc>>2]|0)|0;a[Fc>>0]=a[(c[Cc>>2]|0)+(c[Ec>>2]<<1)>>0]|0;jp(c[Bc>>2]|0,d[(c[Cc>>2]|0)+(c[Ec>>2]<<1)+1>>0]|0);Kd=a[Fc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[wc>>2]=Ed;c[xc>>2]=Kd;c[yc>>2]=be;c[zc>>2]=ip(c[wc>>2]|0,c[yc>>2]|0)|0;a[Ac>>0]=a[(c[xc>>2]|0)+(c[zc>>2]<<1)>>0]|0;jp(c[wc>>2]|0,d[(c[xc>>2]|0)+(c[zc>>2]<<1)+1>>0]|0);be=a[Ac>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;}if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[rc>>2]=Fd;c[sc>>2]=be;c[tc>>2]=Kd;c[uc>>2]=ip(c[rc>>2]|0,c[tc>>2]|0)|0;a[vc>>0]=a[(c[sc>>2]|0)+(c[uc>>2]<<1)>>0]|0;jp(c[rc>>2]|0,d[(c[sc>>2]|0)+(c[uc>>2]<<1)+1>>0]|0);Kd=a[vc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[mc>>2]=Gd;c[nc>>2]=Kd;c[oc>>2]=be;c[pc>>2]=ip(c[mc>>2]|0,c[oc>>2]|0)|0;a[qc>>0]=a[(c[nc>>2]|0)+(c[pc>>2]<<1)>>0]|0;jp(c[mc>>2]|0,d[(c[nc>>2]|0)+(c[pc>>2]<<1)+1>>0]|0);be=a[qc>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;}be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[hc>>2]=Dd;c[ic>>2]=be;c[jc>>2]=Kd;c[kc>>2]=ip(c[hc>>2]|0,c[jc>>2]|0)|0;a[lc>>0]=a[(c[ic>>2]|0)+(c[kc>>2]<<1)>>0]|0;jp(c[hc>>2]|0,d[(c[ic>>2]|0)+(c[kc>>2]<<1)+1>>0]|0);Kd=a[lc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[cc>>2]=Ed;c[dc>>2]=Kd;c[ec>>2]=be;c[fc>>2]=ip(c[cc>>2]|0,c[ec>>2]|0)|0;a[gc>>0]=a[(c[dc>>2]|0)+(c[fc>>2]<<1)>>0]|0;jp(c[cc>>2]|0,d[(c[dc>>2]|0)+(c[fc>>2]<<1)+1>>0]|0);be=a[gc>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Zb>>2]=Fd;c[_b>>2]=be;c[$b>>2]=Kd;c[ac>>2]=ip(c[Zb>>2]|0,c[$b>>2]|0)|0;a[bc>>0]=a[(c[_b>>2]|0)+(c[ac>>2]<<1)>>0]|0;jp(c[Zb>>2]|0,d[(c[_b>>2]|0)+(c[ac>>2]<<1)+1>>0]|0);Kd=a[bc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Ub>>2]=Gd;c[Vb>>2]=Kd;c[Wb>>2]=be;c[Xb>>2]=ip(c[Ub>>2]|0,c[Wb>>2]|0)|0;a[Yb>>0]=a[(c[Vb>>2]|0)+(c[Xb>>2]<<1)>>0]|0;jp(c[Ub>>2]|0,d[(c[Vb>>2]|0)+(c[Xb>>2]<<1)+1>>0]|0);be=a[Yb>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;gp(Dd)|0;gp(Ed)|0;gp(Fd)|0;gp(Gd)|0;}if((c[Td>>2]|0)>>>0>(c[Qd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}if((c[Ud>>2]|0)>>>0>(c[Rd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}if((c[Vd>>2]|0)>>>0>(c[Sd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}Yb=c[Qd>>2]|0;Qd=c[Cd>>2]|0;Xb=c[Zd>>2]|0;c[Ob>>2]=c[Td>>2];c[Pb>>2]=Dd;c[Qb>>2]=Yb;c[Rb>>2]=Qd;c[Sb>>2]=Xb;c[Tb>>2]=c[Ob>>2];while(1){Tb=(gp(c[Pb>>2]|0)|0)==0&1;if(!(Tb&(c[Ob>>2]|0)>>>0<((c[Qb>>2]|0)+-3|0)>>>0))break;if(hp()|0){Tb=c[Rb>>2]|0;Xb=c[Sb>>2]|0;c[Jb>>2]=c[Pb>>2];c[Kb>>2]=Tb;c[Lb>>2]=Xb;c[Mb>>2]=ip(c[Jb>>2]|0,c[Lb>>2]|0)|0;a[Nb>>0]=a[(c[Kb>>2]|0)+(c[Mb>>2]<<1)>>0]|0;jp(c[Jb>>2]|0,d[(c[Kb>>2]|0)+(c[Mb>>2]<<1)+1>>0]|0);Xb=a[Nb>>0]|0;Tb=c[Ob>>2]|0;c[Ob>>2]=Tb+1;a[Tb>>0]=Xb;}hp()|0;Xb=c[Rb>>2]|0;Tb=c[Sb>>2]|0;c[Eb>>2]=c[Pb>>2];c[Fb>>2]=Xb;c[Gb>>2]=Tb;c[Hb>>2]=ip(c[Eb>>2]|0,c[Gb>>2]|0)|0;a[Ib>>0]=a[(c[Fb>>2]|0)+(c[Hb>>2]<<1)>>0]|0;jp(c[Eb>>2]|0,d[(c[Fb>>2]|0)+(c[Hb>>2]<<1)+1>>0]|0);Tb=a[Ib>>0]|0;Xb=c[Ob>>2]|0;c[Ob>>2]=Xb+1;a[Xb>>0]=Tb;if(hp()|0){Tb=c[Rb>>2]|0;Xb=c[Sb>>2]|0;c[zb>>2]=c[Pb>>2];c[Ab>>2]=Tb;c[Bb>>2]=Xb;c[Cb>>2]=ip(c[zb>>2]|0,c[Bb>>2]|0)|0;a[Db>>0]=a[(c[Ab>>2]|0)+(c[Cb>>2]<<1)>>0]|0;jp(c[zb>>2]|0,d[(c[Ab>>2]|0)+(c[Cb>>2]<<1)+1>>0]|0);Xb=a[Db>>0]|0;Tb=c[Ob>>2]|0;c[Ob>>2]=Tb+1;a[Tb>>0]=Xb;}Xb=c[Rb>>2]|0;Tb=c[Sb>>2]|0;c[ub>>2]=c[Pb>>2];c[vb>>2]=Xb;c[wb>>2]=Tb;c[xb>>2]=ip(c[ub>>2]|0,c[wb>>2]|0)|0;a[yb>>0]=a[(c[vb>>2]|0)+(c[xb>>2]<<1)>>0]|0;jp(c[ub>>2]|0,d[(c[vb>>2]|0)+(c[xb>>2]<<1)+1>>0]|0);Tb=a[yb>>0]|0;Xb=c[Ob>>2]|0;c[Ob>>2]=Xb+1;a[Xb>>0]=Tb;}a:do{if(kp()|0)while(1){yb=(gp(c[Pb>>2]|0)|0)==0&1;if(!(yb&(c[Ob>>2]|0)>>>0<(c[Qb>>2]|0)>>>0))break a;yb=c[Rb>>2]|0;xb=c[Sb>>2]|0;c[pb>>2]=c[Pb>>2];c[qb>>2]=yb;c[rb>>2]=xb;c[sb>>2]=ip(c[pb>>2]|0,c[rb>>2]|0)|0;a[tb>>0]=a[(c[qb>>2]|0)+(c[sb>>2]<<1)>>0]|0;jp(c[pb>>2]|0,d[(c[qb>>2]|0)+(c[sb>>2]<<1)+1>>0]|0);xb=a[tb>>0]|0;yb=c[Ob>>2]|0;c[Ob>>2]=yb+1;a[yb>>0]=xb;}}while(0);while(1){if((c[Ob>>2]|0)>>>0>=(c[Qb>>2]|0)>>>0)break;tb=c[Rb>>2]|0;sb=c[Sb>>2]|0;c[kb>>2]=c[Pb>>2];c[lb>>2]=tb;c[mb>>2]=sb;c[nb>>2]=ip(c[kb>>2]|0,c[mb>>2]|0)|0;a[ob>>0]=a[(c[lb>>2]|0)+(c[nb>>2]<<1)>>0]|0;jp(c[kb>>2]|0,d[(c[lb>>2]|0)+(c[nb>>2]<<1)+1>>0]|0);sb=a[ob>>0]|0;tb=c[Ob>>2]|0;c[Ob>>2]=tb+1;a[tb>>0]=sb;}Ob=c[Rd>>2]|0;Rd=c[Cd>>2]|0;ob=c[Zd>>2]|0;c[eb>>2]=c[Ud>>2];c[fb>>2]=Ed;c[gb>>2]=Ob;c[hb>>2]=Rd;c[ib>>2]=ob;c[jb>>2]=c[eb>>2];while(1){jb=(gp(c[fb>>2]|0)|0)==0&1;if(!(jb&(c[eb>>2]|0)>>>0<((c[gb>>2]|0)+-3|0)>>>0))break;if(hp()|0){jb=c[hb>>2]|0;ob=c[ib>>2]|0;c[$a>>2]=c[fb>>2];c[ab>>2]=jb;c[bb>>2]=ob;c[cb>>2]=ip(c[$a>>2]|0,c[bb>>2]|0)|0;a[db>>0]=a[(c[ab>>2]|0)+(c[cb>>2]<<1)>>0]|0;jp(c[$a>>2]|0,d[(c[ab>>2]|0)+(c[cb>>2]<<1)+1>>0]|0);ob=a[db>>0]|0;jb=c[eb>>2]|0;c[eb>>2]=jb+1;a[jb>>0]=ob;}hp()|0;ob=c[hb>>2]|0;jb=c[ib>>2]|0;c[Wa>>2]=c[fb>>2];c[Xa>>2]=ob;c[Ya>>2]=jb;c[Za>>2]=ip(c[Wa>>2]|0,c[Ya>>2]|0)|0;a[_a>>0]=a[(c[Xa>>2]|0)+(c[Za>>2]<<1)>>0]|0;jp(c[Wa>>2]|0,d[(c[Xa>>2]|0)+(c[Za>>2]<<1)+1>>0]|0);jb=a[_a>>0]|0;ob=c[eb>>2]|0;c[eb>>2]=ob+1;a[ob>>0]=jb;if(hp()|0){jb=c[hb>>2]|0;ob=c[ib>>2]|0;c[Ra>>2]=c[fb>>2];c[Sa>>2]=jb;c[Ta>>2]=ob;c[Ua>>2]=ip(c[Ra>>2]|0,c[Ta>>2]|0)|0;a[Va>>0]=a[(c[Sa>>2]|0)+(c[Ua>>2]<<1)>>0]|0;jp(c[Ra>>2]|0,d[(c[Sa>>2]|0)+(c[Ua>>2]<<1)+1>>0]|0);ob=a[Va>>0]|0;jb=c[eb>>2]|0;c[eb>>2]=jb+1;a[jb>>0]=ob;}ob=c[hb>>2]|0;jb=c[ib>>2]|0;c[Ma>>2]=c[fb>>2];c[Na>>2]=ob;c[Oa>>2]=jb;c[Pa>>2]=ip(c[Ma>>2]|0,c[Oa>>2]|0)|0;a[Qa>>0]=a[(c[Na>>2]|0)+(c[Pa>>2]<<1)>>0]|0;jp(c[Ma>>2]|0,d[(c[Na>>2]|0)+(c[Pa>>2]<<1)+1>>0]|0);jb=a[Qa>>0]|0;ob=c[eb>>2]|0;c[eb>>2]=ob+1;a[ob>>0]=jb;}b:do{if(kp()|0)while(1){Qa=(gp(c[fb>>2]|0)|0)==0&1;if(!(Qa&(c[eb>>2]|0)>>>0<(c[gb>>2]|0)>>>0))break b;Qa=c[hb>>2]|0;Pa=c[ib>>2]|0;c[Ha>>2]=c[fb>>2];c[Ia>>2]=Qa;c[Ja>>2]=Pa;c[Ka>>2]=ip(c[Ha>>2]|0,c[Ja>>2]|0)|0;a[La>>0]=a[(c[Ia>>2]|0)+(c[Ka>>2]<<1)>>0]|0;jp(c[Ha>>2]|0,d[(c[Ia>>2]|0)+(c[Ka>>2]<<1)+1>>0]|0);Pa=a[La>>0]|0;Qa=c[eb>>2]|0;c[eb>>2]=Qa+1;a[Qa>>0]=Pa;}}while(0);while(1){if((c[eb>>2]|0)>>>0>=(c[gb>>2]|0)>>>0)break;La=c[hb>>2]|0;Ka=c[ib>>2]|0;c[Ca>>2]=c[fb>>2];c[Da>>2]=La;c[Ea>>2]=Ka;c[Fa>>2]=ip(c[Ca>>2]|0,c[Ea>>2]|0)|0;a[Ga>>0]=a[(c[Da>>2]|0)+(c[Fa>>2]<<1)>>0]|0;jp(c[Ca>>2]|0,d[(c[Da>>2]|0)+(c[Fa>>2]<<1)+1>>0]|0);Ka=a[Ga>>0]|0;La=c[eb>>2]|0;c[eb>>2]=La+1;a[La>>0]=Ka;}eb=c[Sd>>2]|0;Sd=c[Cd>>2]|0;Ga=c[Zd>>2]|0;c[wa>>2]=c[Vd>>2];c[xa>>2]=Fd;c[ya>>2]=eb;c[za>>2]=Sd;c[Aa>>2]=Ga;c[Ba>>2]=c[wa>>2];while(1){Ba=(gp(c[xa>>2]|0)|0)==0&1;if(!(Ba&(c[wa>>2]|0)>>>0<((c[ya>>2]|0)+-3|0)>>>0))break;if(hp()|0){Ba=c[za>>2]|0;Ga=c[Aa>>2]|0;c[ra>>2]=c[xa>>2];c[sa>>2]=Ba;c[ta>>2]=Ga;c[ua>>2]=ip(c[ra>>2]|0,c[ta>>2]|0)|0;a[va>>0]=a[(c[sa>>2]|0)+(c[ua>>2]<<1)>>0]|0;jp(c[ra>>2]|0,d[(c[sa>>2]|0)+(c[ua>>2]<<1)+1>>0]|0);Ga=a[va>>0]|0;Ba=c[wa>>2]|0;c[wa>>2]=Ba+1;a[Ba>>0]=Ga;}hp()|0;Ga=c[za>>2]|0;Ba=c[Aa>>2]|0;c[ma>>2]=c[xa>>2];c[na>>2]=Ga;c[oa>>2]=Ba;c[pa>>2]=ip(c[ma>>2]|0,c[oa>>2]|0)|0;a[qa>>0]=a[(c[na>>2]|0)+(c[pa>>2]<<1)>>0]|0;jp(c[ma>>2]|0,d[(c[na>>2]|0)+(c[pa>>2]<<1)+1>>0]|0);Ba=a[qa>>0]|0;Ga=c[wa>>2]|0;c[wa>>2]=Ga+1;a[Ga>>0]=Ba;if(hp()|0){Ba=c[za>>2]|0;Ga=c[Aa>>2]|0;c[ha>>2]=c[xa>>2];c[ia>>2]=Ba;c[ja>>2]=Ga;c[ka>>2]=ip(c[ha>>2]|0,c[ja>>2]|0)|0;a[la>>0]=a[(c[ia>>2]|0)+(c[ka>>2]<<1)>>0]|0;jp(c[ha>>2]|0,d[(c[ia>>2]|0)+(c[ka>>2]<<1)+1>>0]|0);Ga=a[la>>0]|0;Ba=c[wa>>2]|0;c[wa>>2]=Ba+1;a[Ba>>0]=Ga;}Ga=c[za>>2]|0;Ba=c[Aa>>2]|0;c[ca>>2]=c[xa>>2];c[da>>2]=Ga;c[ea>>2]=Ba;c[fa>>2]=ip(c[ca>>2]|0,c[ea>>2]|0)|0;a[ga>>0]=a[(c[da>>2]|0)+(c[fa>>2]<<1)>>0]|0;jp(c[ca>>2]|0,d[(c[da>>2]|0)+(c[fa>>2]<<1)+1>>0]|0);Ba=a[ga>>0]|0;Ga=c[wa>>2]|0;c[wa>>2]=Ga+1;a[Ga>>0]=Ba;}c:do{if(kp()|0)while(1){ga=(gp(c[xa>>2]|0)|0)==0&1;if(!(ga&(c[wa>>2]|0)>>>0<(c[ya>>2]|0)>>>0))break c;ga=c[za>>2]|0;fa=c[Aa>>2]|0;c[Z>>2]=c[xa>>2];c[_>>2]=ga;c[$>>2]=fa;c[aa>>2]=ip(c[Z>>2]|0,c[$>>2]|0)|0;a[ba>>0]=a[(c[_>>2]|0)+(c[aa>>2]<<1)>>0]|0;jp(c[Z>>2]|0,d[(c[_>>2]|0)+(c[aa>>2]<<1)+1>>0]|0);fa=a[ba>>0]|0;ga=c[wa>>2]|0;c[wa>>2]=ga+1;a[ga>>0]=fa;}}while(0);while(1){if((c[wa>>2]|0)>>>0>=(c[ya>>2]|0)>>>0)break;ba=c[za>>2]|0;aa=c[Aa>>2]|0;c[U>>2]=c[xa>>2];c[V>>2]=ba;c[W>>2]=aa;c[X>>2]=ip(c[U>>2]|0,c[W>>2]|0)|0;a[Y>>0]=a[(c[V>>2]|0)+(c[X>>2]<<1)>>0]|0;jp(c[U>>2]|0,d[(c[V>>2]|0)+(c[X>>2]<<1)+1>>0]|0);aa=a[Y>>0]|0;ba=c[wa>>2]|0;c[wa>>2]=ba+1;a[ba>>0]=aa;}wa=c[Ad>>2]|0;Ad=c[Cd>>2]|0;Cd=c[Zd>>2]|0;c[O>>2]=c[Wd>>2];c[P>>2]=Gd;c[Q>>2]=wa;c[R>>2]=Ad;c[S>>2]=Cd;c[T>>2]=c[O>>2];while(1){T=(gp(c[P>>2]|0)|0)==0&1;if(!(T&(c[O>>2]|0)>>>0<((c[Q>>2]|0)+-3|0)>>>0))break;if(hp()|0){T=c[R>>2]|0;Cd=c[S>>2]|0;c[J>>2]=c[P>>2];c[K>>2]=T;c[L>>2]=Cd;c[M>>2]=ip(c[J>>2]|0,c[L>>2]|0)|0;a[N>>0]=a[(c[K>>2]|0)+(c[M>>2]<<1)>>0]|0;jp(c[J>>2]|0,d[(c[K>>2]|0)+(c[M>>2]<<1)+1>>0]|0);Cd=a[N>>0]|0;T=c[O>>2]|0;c[O>>2]=T+1;a[T>>0]=Cd;}hp()|0;Cd=c[R>>2]|0;T=c[S>>2]|0;c[E>>2]=c[P>>2];c[F>>2]=Cd;c[G>>2]=T;c[H>>2]=ip(c[E>>2]|0,c[G>>2]|0)|0;a[I>>0]=a[(c[F>>2]|0)+(c[H>>2]<<1)>>0]|0;jp(c[E>>2]|0,d[(c[F>>2]|0)+(c[H>>2]<<1)+1>>0]|0);T=a[I>>0]|0;Cd=c[O>>2]|0;c[O>>2]=Cd+1;a[Cd>>0]=T;if(hp()|0){T=c[R>>2]|0;Cd=c[S>>2]|0;c[z>>2]=c[P>>2];c[A>>2]=T;c[B>>2]=Cd;c[C>>2]=ip(c[z>>2]|0,c[B>>2]|0)|0;a[D>>0]=a[(c[A>>2]|0)+(c[C>>2]<<1)>>0]|0;jp(c[z>>2]|0,d[(c[A>>2]|0)+(c[C>>2]<<1)+1>>0]|0);Cd=a[D>>0]|0;T=c[O>>2]|0;c[O>>2]=T+1;a[T>>0]=Cd;}Cd=c[R>>2]|0;T=c[S>>2]|0;c[u>>2]=c[P>>2];c[v>>2]=Cd;c[w>>2]=T;c[x>>2]=ip(c[u>>2]|0,c[w>>2]|0)|0;a[y>>0]=a[(c[v>>2]|0)+(c[x>>2]<<1)>>0]|0;jp(c[u>>2]|0,d[(c[v>>2]|0)+(c[x>>2]<<1)+1>>0]|0);T=a[y>>0]|0;Cd=c[O>>2]|0;c[O>>2]=Cd+1;a[Cd>>0]=T;}d:do{if(kp()|0)while(1){y=(gp(c[P>>2]|0)|0)==0&1;if(!(y&(c[O>>2]|0)>>>0<(c[Q>>2]|0)>>>0))break d;y=c[R>>2]|0;x=c[S>>2]|0;c[p>>2]=c[P>>2];c[q>>2]=y;c[r>>2]=x;c[s>>2]=ip(c[p>>2]|0,c[r>>2]|0)|0;a[t>>0]=a[(c[q>>2]|0)+(c[s>>2]<<1)>>0]|0;jp(c[p>>2]|0,d[(c[q>>2]|0)+(c[s>>2]<<1)+1>>0]|0);x=a[t>>0]|0;y=c[O>>2]|0;c[O>>2]=y+1;a[y>>0]=x;}}while(0);while(1){if((c[O>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break;t=c[R>>2]|0;s=c[S>>2]|0;c[j>>2]=c[P>>2];c[k>>2]=t;c[m>>2]=s;c[n>>2]=ip(c[j>>2]|0,c[m>>2]|0)|0;a[o>>0]=a[(c[k>>2]|0)+(c[n>>2]<<1)>>0]|0;jp(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<1)+1>>0]|0);s=a[o>>0]|0;t=c[O>>2]|0;c[O>>2]=t+1;a[t>>0]=s;}O=lp(Dd)|0;Dd=O&(lp(Ed)|0);Ed=Dd&(lp(Fd)|0);c[ce>>2]=Ed&(lp(Gd)|0);if(c[ce>>2]|0){c[sd>>2]=c[ud>>2];ie=c[sd>>2]|0;l=i;return ie|0;}else{c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}return 0;}function xp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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,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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,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,Zc=0,_c=0,$c=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,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,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,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0;i=l;l=l+1024|0;j=i+968|0;k=i+964|0;m=i+960|0;n=i+956|0;o=i+1015|0;p=i+952|0;q=i+948|0;r=i+944|0;s=i+940|0;t=i+1014|0;u=i+936|0;v=i+932|0;w=i+928|0;x=i+924|0;y=i+1013|0;z=i+920|0;A=i+916|0;B=i+912|0;C=i+908|0;D=i+1012|0;E=i+904|0;F=i+900|0;G=i+896|0;H=i+892|0;I=i+1011|0;J=i+888|0;K=i+884|0;L=i+880|0;M=i+876|0;N=i+1010|0;O=i+872|0;P=i+868|0;Q=i+864|0;R=i+860|0;S=i+856|0;T=i+852|0;U=i+848|0;V=i+844|0;W=i+840|0;X=i+836|0;Y=i+1009|0;Z=i+832|0;_=i+828|0;$=i+824|0;aa=i+820|0;ba=i+1008|0;ca=i+816|0;da=i+812|0;ea=i+808|0;fa=i+804|0;ga=i+1007|0;ha=i+800|0;ia=i+796|0;ja=i+792|0;ka=i+788|0;la=i+1006|0;ma=i+784|0;na=i+780|0;oa=i+776|0;pa=i+772|0;qa=i+1005|0;ra=i+768|0;sa=i+764|0;ta=i+760|0;ua=i+756|0;va=i+1004|0;wa=i+752|0;xa=i+748|0;ya=i+744|0;za=i+740|0;Aa=i+736|0;Ba=i+732|0;Ca=i+728|0;Da=i+724|0;Ea=i+720|0;Fa=i+716|0;Ga=i+1003|0;Ha=i+712|0;Ia=i+708|0;Ja=i+704|0;Ka=i+700|0;La=i+1002|0;Ma=i+696|0;Na=i+692|0;Oa=i+688|0;Pa=i+684|0;Qa=i+1001|0;Ra=i+680|0;Sa=i+676|0;Ta=i+672|0;Ua=i+668|0;Va=i+1e3|0;Wa=i+664|0;Xa=i+660|0;Ya=i+656|0;Za=i+652|0;_a=i+999|0;$a=i+648|0;ab=i+644|0;bb=i+640|0;cb=i+636|0;db=i+998|0;eb=i+632|0;fb=i+628|0;gb=i+624|0;hb=i+620|0;ib=i+616|0;jb=i+612|0;kb=i+608|0;lb=i+604|0;mb=i+600|0;nb=i+596|0;ob=i+997|0;pb=i+592|0;qb=i+588|0;rb=i+584|0;sb=i+580|0;tb=i+996|0;ub=i+576|0;vb=i+572|0;wb=i+568|0;xb=i+564|0;yb=i+995|0;zb=i+560|0;Ab=i+556|0;Bb=i+552|0;Cb=i+548|0;Db=i+994|0;Eb=i+544|0;Fb=i+540|0;Gb=i+536|0;Hb=i+532|0;Ib=i+993|0;Jb=i+528|0;Kb=i+524|0;Lb=i+520|0;Mb=i+516|0;Nb=i+992|0;Ob=i+512|0;Pb=i+508|0;Qb=i+504|0;Rb=i+500|0;Sb=i+496|0;Tb=i+492|0;Ub=i+488|0;Vb=i+484|0;Wb=i+480|0;Xb=i+476|0;Yb=i+991|0;Zb=i+472|0;_b=i+468|0;$b=i+464|0;ac=i+460|0;bc=i+990|0;cc=i+456|0;dc=i+452|0;ec=i+448|0;fc=i+444|0;gc=i+989|0;hc=i+440|0;ic=i+436|0;jc=i+432|0;kc=i+428|0;lc=i+988|0;mc=i+424|0;nc=i+420|0;oc=i+416|0;pc=i+412|0;qc=i+987|0;rc=i+408|0;sc=i+404|0;tc=i+400|0;uc=i+396|0;vc=i+986|0;wc=i+392|0;xc=i+388|0;yc=i+384|0;zc=i+380|0;Ac=i+985|0;Bc=i+376|0;Cc=i+372|0;Dc=i+368|0;Ec=i+364|0;Fc=i+984|0;Gc=i+360|0;Hc=i+356|0;Ic=i+352|0;Jc=i+348|0;Kc=i+983|0;Lc=i+344|0;Mc=i+340|0;Nc=i+336|0;Oc=i+332|0;Pc=i+982|0;Qc=i+328|0;Rc=i+324|0;Sc=i+320|0;Tc=i+316|0;Uc=i+981|0;Vc=i+312|0;Wc=i+308|0;Xc=i+304|0;Yc=i+300|0;Zc=i+980|0;_c=i+296|0;$c=i+292|0;ad=i+288|0;bd=i+284|0;cd=i+979|0;dd=i+280|0;ed=i+276|0;fd=i+272|0;gd=i+268|0;hd=i+978|0;id=i+264|0;jd=i+260|0;kd=i+256|0;ld=i+252|0;md=i+977|0;nd=i+248|0;od=i+244|0;pd=i+240|0;qd=i+236|0;rd=i+976|0;sd=i+232|0;td=i+228|0;ud=i+224|0;vd=i+220|0;wd=i+216|0;xd=i+212|0;yd=i+208|0;zd=i+204|0;Ad=i+200|0;Bd=i+196|0;Cd=i+192|0;Dd=i+172|0;Ed=i+152|0;Fd=i+132|0;Gd=i+112|0;Hd=i+108|0;Id=i+104|0;Jd=i+100|0;Kd=i+96|0;Ld=i+92|0;Md=i+88|0;Nd=i+84|0;Od=i+80|0;Pd=i+76|0;Qd=i+72|0;Rd=i+68|0;Sd=i+64|0;Td=i+60|0;Ud=i+56|0;Vd=i+52|0;Wd=i+48|0;Xd=i+44|0;Yd=i+972|0;Zd=i+40|0;_d=i+36|0;$d=i+32|0;ae=i+28|0;be=i+24|0;ce=i+20|0;de=i+16|0;ee=i+12|0;fe=i+8|0;ge=i+4|0;he=i;c[de>>2]=b;c[ee>>2]=e;c[fe>>2]=f;c[ge>>2]=g;c[he>>2]=h;h=c[ee>>2]|0;ee=c[fe>>2]|0;fe=c[ge>>2]|0;ge=c[he>>2]|0;c[td>>2]=c[de>>2];c[ud>>2]=h;c[vd>>2]=ee;c[wd>>2]=fe;c[xd>>2]=ge;if((c[wd>>2]|0)>>>0<10){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}c[yd>>2]=c[vd>>2];c[zd>>2]=c[td>>2];c[Ad>>2]=(c[zd>>2]|0)+(c[ud>>2]|0);c[Bd>>2]=(c[xd>>2]|0)+4;c[Cd>>2]=c[Bd>>2];c[Hd>>2]=(yp(c[yd>>2]|0)|0)&65535;c[Id>>2]=(yp((c[yd>>2]|0)+2|0)|0)&65535;c[Jd>>2]=(yp((c[yd>>2]|0)+4|0)|0)&65535;c[Kd>>2]=(c[wd>>2]|0)-((c[Hd>>2]|0)+(c[Id>>2]|0)+(c[Jd>>2]|0)+6);c[Ld>>2]=(c[yd>>2]|0)+6;c[Md>>2]=(c[Ld>>2]|0)+(c[Hd>>2]|0);c[Nd>>2]=(c[Md>>2]|0)+(c[Id>>2]|0);c[Od>>2]=(c[Nd>>2]|0)+(c[Jd>>2]|0);c[Pd>>2]=(((c[ud>>2]|0)+3|0)>>>0)/4|0;c[Qd>>2]=(c[zd>>2]|0)+(c[Pd>>2]|0);c[Rd>>2]=(c[Qd>>2]|0)+(c[Pd>>2]|0);c[Sd>>2]=(c[Rd>>2]|0)+(c[Pd>>2]|0);c[Td>>2]=c[zd>>2];c[Ud>>2]=c[Qd>>2];c[Vd>>2]=c[Rd>>2];c[Wd>>2]=c[Sd>>2];c[Xd>>2]=0;bp(Yd,c[xd>>2]|0);c[Zd>>2]=d[Yd+2>>0];if((c[Kd>>2]|0)>>>0>(c[wd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}c[_d>>2]=fp(Dd,c[Ld>>2]|0,c[Hd>>2]|0)|0;if(ap(c[_d>>2]|0)|0){c[sd>>2]=c[_d>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[$d>>2]=fp(Ed,c[Md>>2]|0,c[Id>>2]|0)|0;if(ap(c[$d>>2]|0)|0){c[sd>>2]=c[$d>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[ae>>2]=fp(Fd,c[Nd>>2]|0,c[Jd>>2]|0)|0;if(ap(c[ae>>2]|0)|0){c[sd>>2]=c[ae>>2];ie=c[sd>>2]|0;l=i;return ie|0;}c[be>>2]=fp(Gd,c[Od>>2]|0,c[Kd>>2]|0)|0;if(ap(c[be>>2]|0)|0){c[sd>>2]=c[be>>2];ie=c[sd>>2]|0;l=i;return ie|0;}be=gp(Dd)|0;Kd=be|(gp(Ed)|0);be=Kd|(gp(Fd)|0);c[Xd>>2]=be|(gp(Gd)|0);while(1){if(c[Xd>>2]|0)break;if((c[Wd>>2]|0)>>>0>=((c[Ad>>2]|0)+-3|0)>>>0)break;if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[nd>>2]=Dd;c[od>>2]=be;c[pd>>2]=Kd;c[qd>>2]=ip(c[nd>>2]|0,c[pd>>2]|0)|0;a[rd>>0]=a[(c[od>>2]|0)+(c[qd>>2]<<1)>>0]|0;jp(c[nd>>2]|0,d[(c[od>>2]|0)+(c[qd>>2]<<1)+1>>0]|0);Kd=a[rd>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[id>>2]=Ed;c[jd>>2]=Kd;c[kd>>2]=be;c[ld>>2]=ip(c[id>>2]|0,c[kd>>2]|0)|0;a[md>>0]=a[(c[jd>>2]|0)+(c[ld>>2]<<1)>>0]|0;jp(c[id>>2]|0,d[(c[jd>>2]|0)+(c[ld>>2]<<1)+1>>0]|0);be=a[md>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;}if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[dd>>2]=Fd;c[ed>>2]=be;c[fd>>2]=Kd;c[gd>>2]=ip(c[dd>>2]|0,c[fd>>2]|0)|0;a[hd>>0]=a[(c[ed>>2]|0)+(c[gd>>2]<<1)>>0]|0;jp(c[dd>>2]|0,d[(c[ed>>2]|0)+(c[gd>>2]<<1)+1>>0]|0);Kd=a[hd>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[_c>>2]=Gd;c[$c>>2]=Kd;c[ad>>2]=be;c[bd>>2]=ip(c[_c>>2]|0,c[ad>>2]|0)|0;a[cd>>0]=a[(c[$c>>2]|0)+(c[bd>>2]<<1)>>0]|0;jp(c[_c>>2]|0,d[(c[$c>>2]|0)+(c[bd>>2]<<1)+1>>0]|0);be=a[cd>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;}hp()|0;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Vc>>2]=Dd;c[Wc>>2]=be;c[Xc>>2]=Kd;c[Yc>>2]=ip(c[Vc>>2]|0,c[Xc>>2]|0)|0;a[Zc>>0]=a[(c[Wc>>2]|0)+(c[Yc>>2]<<1)>>0]|0;jp(c[Vc>>2]|0,d[(c[Wc>>2]|0)+(c[Yc>>2]<<1)+1>>0]|0);Kd=a[Zc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;hp()|0;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Qc>>2]=Ed;c[Rc>>2]=Kd;c[Sc>>2]=be;c[Tc>>2]=ip(c[Qc>>2]|0,c[Sc>>2]|0)|0;a[Uc>>0]=a[(c[Rc>>2]|0)+(c[Tc>>2]<<1)>>0]|0;jp(c[Qc>>2]|0,d[(c[Rc>>2]|0)+(c[Tc>>2]<<1)+1>>0]|0);be=a[Uc>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;hp()|0;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Lc>>2]=Fd;c[Mc>>2]=be;c[Nc>>2]=Kd;c[Oc>>2]=ip(c[Lc>>2]|0,c[Nc>>2]|0)|0;a[Pc>>0]=a[(c[Mc>>2]|0)+(c[Oc>>2]<<1)>>0]|0;jp(c[Lc>>2]|0,d[(c[Mc>>2]|0)+(c[Oc>>2]<<1)+1>>0]|0);Kd=a[Pc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;hp()|0;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Gc>>2]=Gd;c[Hc>>2]=Kd;c[Ic>>2]=be;c[Jc>>2]=ip(c[Gc>>2]|0,c[Ic>>2]|0)|0;a[Kc>>0]=a[(c[Hc>>2]|0)+(c[Jc>>2]<<1)>>0]|0;jp(c[Gc>>2]|0,d[(c[Hc>>2]|0)+(c[Jc>>2]<<1)+1>>0]|0);be=a[Kc>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Bc>>2]=Dd;c[Cc>>2]=be;c[Dc>>2]=Kd;c[Ec>>2]=ip(c[Bc>>2]|0,c[Dc>>2]|0)|0;a[Fc>>0]=a[(c[Cc>>2]|0)+(c[Ec>>2]<<1)>>0]|0;jp(c[Bc>>2]|0,d[(c[Cc>>2]|0)+(c[Ec>>2]<<1)+1>>0]|0);Kd=a[Fc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[wc>>2]=Ed;c[xc>>2]=Kd;c[yc>>2]=be;c[zc>>2]=ip(c[wc>>2]|0,c[yc>>2]|0)|0;a[Ac>>0]=a[(c[xc>>2]|0)+(c[zc>>2]<<1)>>0]|0;jp(c[wc>>2]|0,d[(c[xc>>2]|0)+(c[zc>>2]<<1)+1>>0]|0);be=a[Ac>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;}if(hp()|0){be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[rc>>2]=Fd;c[sc>>2]=be;c[tc>>2]=Kd;c[uc>>2]=ip(c[rc>>2]|0,c[tc>>2]|0)|0;a[vc>>0]=a[(c[sc>>2]|0)+(c[uc>>2]<<1)>>0]|0;jp(c[rc>>2]|0,d[(c[sc>>2]|0)+(c[uc>>2]<<1)+1>>0]|0);Kd=a[vc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;}if(hp()|0){Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[mc>>2]=Gd;c[nc>>2]=Kd;c[oc>>2]=be;c[pc>>2]=ip(c[mc>>2]|0,c[oc>>2]|0)|0;a[qc>>0]=a[(c[nc>>2]|0)+(c[pc>>2]<<1)>>0]|0;jp(c[mc>>2]|0,d[(c[nc>>2]|0)+(c[pc>>2]<<1)+1>>0]|0);be=a[qc>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;}be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[hc>>2]=Dd;c[ic>>2]=be;c[jc>>2]=Kd;c[kc>>2]=ip(c[hc>>2]|0,c[jc>>2]|0)|0;a[lc>>0]=a[(c[ic>>2]|0)+(c[kc>>2]<<1)>>0]|0;jp(c[hc>>2]|0,d[(c[ic>>2]|0)+(c[kc>>2]<<1)+1>>0]|0);Kd=a[lc>>0]|0;be=c[Td>>2]|0;c[Td>>2]=be+1;a[be>>0]=Kd;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[cc>>2]=Ed;c[dc>>2]=Kd;c[ec>>2]=be;c[fc>>2]=ip(c[cc>>2]|0,c[ec>>2]|0)|0;a[gc>>0]=a[(c[dc>>2]|0)+(c[fc>>2]<<1)>>0]|0;jp(c[cc>>2]|0,d[(c[dc>>2]|0)+(c[fc>>2]<<1)+1>>0]|0);be=a[gc>>0]|0;Kd=c[Ud>>2]|0;c[Ud>>2]=Kd+1;a[Kd>>0]=be;be=c[Cd>>2]|0;Kd=c[Zd>>2]|0;c[Zb>>2]=Fd;c[_b>>2]=be;c[$b>>2]=Kd;c[ac>>2]=ip(c[Zb>>2]|0,c[$b>>2]|0)|0;a[bc>>0]=a[(c[_b>>2]|0)+(c[ac>>2]<<1)>>0]|0;jp(c[Zb>>2]|0,d[(c[_b>>2]|0)+(c[ac>>2]<<1)+1>>0]|0);Kd=a[bc>>0]|0;be=c[Vd>>2]|0;c[Vd>>2]=be+1;a[be>>0]=Kd;Kd=c[Cd>>2]|0;be=c[Zd>>2]|0;c[Ub>>2]=Gd;c[Vb>>2]=Kd;c[Wb>>2]=be;c[Xb>>2]=ip(c[Ub>>2]|0,c[Wb>>2]|0)|0;a[Yb>>0]=a[(c[Vb>>2]|0)+(c[Xb>>2]<<1)>>0]|0;jp(c[Ub>>2]|0,d[(c[Vb>>2]|0)+(c[Xb>>2]<<1)+1>>0]|0);be=a[Yb>>0]|0;Kd=c[Wd>>2]|0;c[Wd>>2]=Kd+1;a[Kd>>0]=be;gp(Dd)|0;gp(Ed)|0;gp(Fd)|0;gp(Gd)|0;}if((c[Td>>2]|0)>>>0>(c[Qd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}if((c[Ud>>2]|0)>>>0>(c[Rd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}if((c[Vd>>2]|0)>>>0>(c[Sd>>2]|0)>>>0){c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}Yb=c[Qd>>2]|0;Qd=c[Cd>>2]|0;Xb=c[Zd>>2]|0;c[Ob>>2]=c[Td>>2];c[Pb>>2]=Dd;c[Qb>>2]=Yb;c[Rb>>2]=Qd;c[Sb>>2]=Xb;c[Tb>>2]=c[Ob>>2];while(1){Tb=(gp(c[Pb>>2]|0)|0)==0&1;if(!(Tb&(c[Ob>>2]|0)>>>0<((c[Qb>>2]|0)+-3|0)>>>0))break;if(hp()|0){Tb=c[Rb>>2]|0;Xb=c[Sb>>2]|0;c[Jb>>2]=c[Pb>>2];c[Kb>>2]=Tb;c[Lb>>2]=Xb;c[Mb>>2]=ip(c[Jb>>2]|0,c[Lb>>2]|0)|0;a[Nb>>0]=a[(c[Kb>>2]|0)+(c[Mb>>2]<<1)>>0]|0;jp(c[Jb>>2]|0,d[(c[Kb>>2]|0)+(c[Mb>>2]<<1)+1>>0]|0);Xb=a[Nb>>0]|0;Tb=c[Ob>>2]|0;c[Ob>>2]=Tb+1;a[Tb>>0]=Xb;}hp()|0;Xb=c[Rb>>2]|0;Tb=c[Sb>>2]|0;c[Eb>>2]=c[Pb>>2];c[Fb>>2]=Xb;c[Gb>>2]=Tb;c[Hb>>2]=ip(c[Eb>>2]|0,c[Gb>>2]|0)|0;a[Ib>>0]=a[(c[Fb>>2]|0)+(c[Hb>>2]<<1)>>0]|0;jp(c[Eb>>2]|0,d[(c[Fb>>2]|0)+(c[Hb>>2]<<1)+1>>0]|0);Tb=a[Ib>>0]|0;Xb=c[Ob>>2]|0;c[Ob>>2]=Xb+1;a[Xb>>0]=Tb;if(hp()|0){Tb=c[Rb>>2]|0;Xb=c[Sb>>2]|0;c[zb>>2]=c[Pb>>2];c[Ab>>2]=Tb;c[Bb>>2]=Xb;c[Cb>>2]=ip(c[zb>>2]|0,c[Bb>>2]|0)|0;a[Db>>0]=a[(c[Ab>>2]|0)+(c[Cb>>2]<<1)>>0]|0;jp(c[zb>>2]|0,d[(c[Ab>>2]|0)+(c[Cb>>2]<<1)+1>>0]|0);Xb=a[Db>>0]|0;Tb=c[Ob>>2]|0;c[Ob>>2]=Tb+1;a[Tb>>0]=Xb;}Xb=c[Rb>>2]|0;Tb=c[Sb>>2]|0;c[ub>>2]=c[Pb>>2];c[vb>>2]=Xb;c[wb>>2]=Tb;c[xb>>2]=ip(c[ub>>2]|0,c[wb>>2]|0)|0;a[yb>>0]=a[(c[vb>>2]|0)+(c[xb>>2]<<1)>>0]|0;jp(c[ub>>2]|0,d[(c[vb>>2]|0)+(c[xb>>2]<<1)+1>>0]|0);Tb=a[yb>>0]|0;Xb=c[Ob>>2]|0;c[Ob>>2]=Xb+1;a[Xb>>0]=Tb;}a:do{if(kp()|0)while(1){yb=(gp(c[Pb>>2]|0)|0)==0&1;if(!(yb&(c[Ob>>2]|0)>>>0<(c[Qb>>2]|0)>>>0))break a;yb=c[Rb>>2]|0;xb=c[Sb>>2]|0;c[pb>>2]=c[Pb>>2];c[qb>>2]=yb;c[rb>>2]=xb;c[sb>>2]=ip(c[pb>>2]|0,c[rb>>2]|0)|0;a[tb>>0]=a[(c[qb>>2]|0)+(c[sb>>2]<<1)>>0]|0;jp(c[pb>>2]|0,d[(c[qb>>2]|0)+(c[sb>>2]<<1)+1>>0]|0);xb=a[tb>>0]|0;yb=c[Ob>>2]|0;c[Ob>>2]=yb+1;a[yb>>0]=xb;}}while(0);while(1){if((c[Ob>>2]|0)>>>0>=(c[Qb>>2]|0)>>>0)break;tb=c[Rb>>2]|0;sb=c[Sb>>2]|0;c[kb>>2]=c[Pb>>2];c[lb>>2]=tb;c[mb>>2]=sb;c[nb>>2]=ip(c[kb>>2]|0,c[mb>>2]|0)|0;a[ob>>0]=a[(c[lb>>2]|0)+(c[nb>>2]<<1)>>0]|0;jp(c[kb>>2]|0,d[(c[lb>>2]|0)+(c[nb>>2]<<1)+1>>0]|0);sb=a[ob>>0]|0;tb=c[Ob>>2]|0;c[Ob>>2]=tb+1;a[tb>>0]=sb;}Ob=c[Rd>>2]|0;Rd=c[Cd>>2]|0;ob=c[Zd>>2]|0;c[eb>>2]=c[Ud>>2];c[fb>>2]=Ed;c[gb>>2]=Ob;c[hb>>2]=Rd;c[ib>>2]=ob;c[jb>>2]=c[eb>>2];while(1){jb=(gp(c[fb>>2]|0)|0)==0&1;if(!(jb&(c[eb>>2]|0)>>>0<((c[gb>>2]|0)+-3|0)>>>0))break;if(hp()|0){jb=c[hb>>2]|0;ob=c[ib>>2]|0;c[$a>>2]=c[fb>>2];c[ab>>2]=jb;c[bb>>2]=ob;c[cb>>2]=ip(c[$a>>2]|0,c[bb>>2]|0)|0;a[db>>0]=a[(c[ab>>2]|0)+(c[cb>>2]<<1)>>0]|0;jp(c[$a>>2]|0,d[(c[ab>>2]|0)+(c[cb>>2]<<1)+1>>0]|0);ob=a[db>>0]|0;jb=c[eb>>2]|0;c[eb>>2]=jb+1;a[jb>>0]=ob;}hp()|0;ob=c[hb>>2]|0;jb=c[ib>>2]|0;c[Wa>>2]=c[fb>>2];c[Xa>>2]=ob;c[Ya>>2]=jb;c[Za>>2]=ip(c[Wa>>2]|0,c[Ya>>2]|0)|0;a[_a>>0]=a[(c[Xa>>2]|0)+(c[Za>>2]<<1)>>0]|0;jp(c[Wa>>2]|0,d[(c[Xa>>2]|0)+(c[Za>>2]<<1)+1>>0]|0);jb=a[_a>>0]|0;ob=c[eb>>2]|0;c[eb>>2]=ob+1;a[ob>>0]=jb;if(hp()|0){jb=c[hb>>2]|0;ob=c[ib>>2]|0;c[Ra>>2]=c[fb>>2];c[Sa>>2]=jb;c[Ta>>2]=ob;c[Ua>>2]=ip(c[Ra>>2]|0,c[Ta>>2]|0)|0;a[Va>>0]=a[(c[Sa>>2]|0)+(c[Ua>>2]<<1)>>0]|0;jp(c[Ra>>2]|0,d[(c[Sa>>2]|0)+(c[Ua>>2]<<1)+1>>0]|0);ob=a[Va>>0]|0;jb=c[eb>>2]|0;c[eb>>2]=jb+1;a[jb>>0]=ob;}ob=c[hb>>2]|0;jb=c[ib>>2]|0;c[Ma>>2]=c[fb>>2];c[Na>>2]=ob;c[Oa>>2]=jb;c[Pa>>2]=ip(c[Ma>>2]|0,c[Oa>>2]|0)|0;a[Qa>>0]=a[(c[Na>>2]|0)+(c[Pa>>2]<<1)>>0]|0;jp(c[Ma>>2]|0,d[(c[Na>>2]|0)+(c[Pa>>2]<<1)+1>>0]|0);jb=a[Qa>>0]|0;ob=c[eb>>2]|0;c[eb>>2]=ob+1;a[ob>>0]=jb;}b:do{if(kp()|0)while(1){Qa=(gp(c[fb>>2]|0)|0)==0&1;if(!(Qa&(c[eb>>2]|0)>>>0<(c[gb>>2]|0)>>>0))break b;Qa=c[hb>>2]|0;Pa=c[ib>>2]|0;c[Ha>>2]=c[fb>>2];c[Ia>>2]=Qa;c[Ja>>2]=Pa;c[Ka>>2]=ip(c[Ha>>2]|0,c[Ja>>2]|0)|0;a[La>>0]=a[(c[Ia>>2]|0)+(c[Ka>>2]<<1)>>0]|0;jp(c[Ha>>2]|0,d[(c[Ia>>2]|0)+(c[Ka>>2]<<1)+1>>0]|0);Pa=a[La>>0]|0;Qa=c[eb>>2]|0;c[eb>>2]=Qa+1;a[Qa>>0]=Pa;}}while(0);while(1){if((c[eb>>2]|0)>>>0>=(c[gb>>2]|0)>>>0)break;La=c[hb>>2]|0;Ka=c[ib>>2]|0;c[Ca>>2]=c[fb>>2];c[Da>>2]=La;c[Ea>>2]=Ka;c[Fa>>2]=ip(c[Ca>>2]|0,c[Ea>>2]|0)|0;a[Ga>>0]=a[(c[Da>>2]|0)+(c[Fa>>2]<<1)>>0]|0;jp(c[Ca>>2]|0,d[(c[Da>>2]|0)+(c[Fa>>2]<<1)+1>>0]|0);Ka=a[Ga>>0]|0;La=c[eb>>2]|0;c[eb>>2]=La+1;a[La>>0]=Ka;}eb=c[Sd>>2]|0;Sd=c[Cd>>2]|0;Ga=c[Zd>>2]|0;c[wa>>2]=c[Vd>>2];c[xa>>2]=Fd;c[ya>>2]=eb;c[za>>2]=Sd;c[Aa>>2]=Ga;c[Ba>>2]=c[wa>>2];while(1){Ba=(gp(c[xa>>2]|0)|0)==0&1;if(!(Ba&(c[wa>>2]|0)>>>0<((c[ya>>2]|0)+-3|0)>>>0))break;if(hp()|0){Ba=c[za>>2]|0;Ga=c[Aa>>2]|0;c[ra>>2]=c[xa>>2];c[sa>>2]=Ba;c[ta>>2]=Ga;c[ua>>2]=ip(c[ra>>2]|0,c[ta>>2]|0)|0;a[va>>0]=a[(c[sa>>2]|0)+(c[ua>>2]<<1)>>0]|0;jp(c[ra>>2]|0,d[(c[sa>>2]|0)+(c[ua>>2]<<1)+1>>0]|0);Ga=a[va>>0]|0;Ba=c[wa>>2]|0;c[wa>>2]=Ba+1;a[Ba>>0]=Ga;}hp()|0;Ga=c[za>>2]|0;Ba=c[Aa>>2]|0;c[ma>>2]=c[xa>>2];c[na>>2]=Ga;c[oa>>2]=Ba;c[pa>>2]=ip(c[ma>>2]|0,c[oa>>2]|0)|0;a[qa>>0]=a[(c[na>>2]|0)+(c[pa>>2]<<1)>>0]|0;jp(c[ma>>2]|0,d[(c[na>>2]|0)+(c[pa>>2]<<1)+1>>0]|0);Ba=a[qa>>0]|0;Ga=c[wa>>2]|0;c[wa>>2]=Ga+1;a[Ga>>0]=Ba;if(hp()|0){Ba=c[za>>2]|0;Ga=c[Aa>>2]|0;c[ha>>2]=c[xa>>2];c[ia>>2]=Ba;c[ja>>2]=Ga;c[ka>>2]=ip(c[ha>>2]|0,c[ja>>2]|0)|0;a[la>>0]=a[(c[ia>>2]|0)+(c[ka>>2]<<1)>>0]|0;jp(c[ha>>2]|0,d[(c[ia>>2]|0)+(c[ka>>2]<<1)+1>>0]|0);Ga=a[la>>0]|0;Ba=c[wa>>2]|0;c[wa>>2]=Ba+1;a[Ba>>0]=Ga;}Ga=c[za>>2]|0;Ba=c[Aa>>2]|0;c[ca>>2]=c[xa>>2];c[da>>2]=Ga;c[ea>>2]=Ba;c[fa>>2]=ip(c[ca>>2]|0,c[ea>>2]|0)|0;a[ga>>0]=a[(c[da>>2]|0)+(c[fa>>2]<<1)>>0]|0;jp(c[ca>>2]|0,d[(c[da>>2]|0)+(c[fa>>2]<<1)+1>>0]|0);Ba=a[ga>>0]|0;Ga=c[wa>>2]|0;c[wa>>2]=Ga+1;a[Ga>>0]=Ba;}c:do{if(kp()|0)while(1){ga=(gp(c[xa>>2]|0)|0)==0&1;if(!(ga&(c[wa>>2]|0)>>>0<(c[ya>>2]|0)>>>0))break c;ga=c[za>>2]|0;fa=c[Aa>>2]|0;c[Z>>2]=c[xa>>2];c[_>>2]=ga;c[$>>2]=fa;c[aa>>2]=ip(c[Z>>2]|0,c[$>>2]|0)|0;a[ba>>0]=a[(c[_>>2]|0)+(c[aa>>2]<<1)>>0]|0;jp(c[Z>>2]|0,d[(c[_>>2]|0)+(c[aa>>2]<<1)+1>>0]|0);fa=a[ba>>0]|0;ga=c[wa>>2]|0;c[wa>>2]=ga+1;a[ga>>0]=fa;}}while(0);while(1){if((c[wa>>2]|0)>>>0>=(c[ya>>2]|0)>>>0)break;ba=c[za>>2]|0;aa=c[Aa>>2]|0;c[U>>2]=c[xa>>2];c[V>>2]=ba;c[W>>2]=aa;c[X>>2]=ip(c[U>>2]|0,c[W>>2]|0)|0;a[Y>>0]=a[(c[V>>2]|0)+(c[X>>2]<<1)>>0]|0;jp(c[U>>2]|0,d[(c[V>>2]|0)+(c[X>>2]<<1)+1>>0]|0);aa=a[Y>>0]|0;ba=c[wa>>2]|0;c[wa>>2]=ba+1;a[ba>>0]=aa;}wa=c[Ad>>2]|0;Ad=c[Cd>>2]|0;Cd=c[Zd>>2]|0;c[O>>2]=c[Wd>>2];c[P>>2]=Gd;c[Q>>2]=wa;c[R>>2]=Ad;c[S>>2]=Cd;c[T>>2]=c[O>>2];while(1){T=(gp(c[P>>2]|0)|0)==0&1;if(!(T&(c[O>>2]|0)>>>0<((c[Q>>2]|0)+-3|0)>>>0))break;if(hp()|0){T=c[R>>2]|0;Cd=c[S>>2]|0;c[J>>2]=c[P>>2];c[K>>2]=T;c[L>>2]=Cd;c[M>>2]=ip(c[J>>2]|0,c[L>>2]|0)|0;a[N>>0]=a[(c[K>>2]|0)+(c[M>>2]<<1)>>0]|0;jp(c[J>>2]|0,d[(c[K>>2]|0)+(c[M>>2]<<1)+1>>0]|0);Cd=a[N>>0]|0;T=c[O>>2]|0;c[O>>2]=T+1;a[T>>0]=Cd;}hp()|0;Cd=c[R>>2]|0;T=c[S>>2]|0;c[E>>2]=c[P>>2];c[F>>2]=Cd;c[G>>2]=T;c[H>>2]=ip(c[E>>2]|0,c[G>>2]|0)|0;a[I>>0]=a[(c[F>>2]|0)+(c[H>>2]<<1)>>0]|0;jp(c[E>>2]|0,d[(c[F>>2]|0)+(c[H>>2]<<1)+1>>0]|0);T=a[I>>0]|0;Cd=c[O>>2]|0;c[O>>2]=Cd+1;a[Cd>>0]=T;if(hp()|0){T=c[R>>2]|0;Cd=c[S>>2]|0;c[z>>2]=c[P>>2];c[A>>2]=T;c[B>>2]=Cd;c[C>>2]=ip(c[z>>2]|0,c[B>>2]|0)|0;a[D>>0]=a[(c[A>>2]|0)+(c[C>>2]<<1)>>0]|0;jp(c[z>>2]|0,d[(c[A>>2]|0)+(c[C>>2]<<1)+1>>0]|0);Cd=a[D>>0]|0;T=c[O>>2]|0;c[O>>2]=T+1;a[T>>0]=Cd;}Cd=c[R>>2]|0;T=c[S>>2]|0;c[u>>2]=c[P>>2];c[v>>2]=Cd;c[w>>2]=T;c[x>>2]=ip(c[u>>2]|0,c[w>>2]|0)|0;a[y>>0]=a[(c[v>>2]|0)+(c[x>>2]<<1)>>0]|0;jp(c[u>>2]|0,d[(c[v>>2]|0)+(c[x>>2]<<1)+1>>0]|0);T=a[y>>0]|0;Cd=c[O>>2]|0;c[O>>2]=Cd+1;a[Cd>>0]=T;}d:do{if(kp()|0)while(1){y=(gp(c[P>>2]|0)|0)==0&1;if(!(y&(c[O>>2]|0)>>>0<(c[Q>>2]|0)>>>0))break d;y=c[R>>2]|0;x=c[S>>2]|0;c[p>>2]=c[P>>2];c[q>>2]=y;c[r>>2]=x;c[s>>2]=ip(c[p>>2]|0,c[r>>2]|0)|0;a[t>>0]=a[(c[q>>2]|0)+(c[s>>2]<<1)>>0]|0;jp(c[p>>2]|0,d[(c[q>>2]|0)+(c[s>>2]<<1)+1>>0]|0);x=a[t>>0]|0;y=c[O>>2]|0;c[O>>2]=y+1;a[y>>0]=x;}}while(0);while(1){if((c[O>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break;t=c[R>>2]|0;s=c[S>>2]|0;c[j>>2]=c[P>>2];c[k>>2]=t;c[m>>2]=s;c[n>>2]=ip(c[j>>2]|0,c[m>>2]|0)|0;a[o>>0]=a[(c[k>>2]|0)+(c[n>>2]<<1)>>0]|0;jp(c[j>>2]|0,d[(c[k>>2]|0)+(c[n>>2]<<1)+1>>0]|0);s=a[o>>0]|0;t=c[O>>2]|0;c[O>>2]=t+1;a[t>>0]=s;}O=lp(Dd)|0;Dd=O&(lp(Ed)|0);Ed=Dd&(lp(Fd)|0);c[ce>>2]=Ed&(lp(Gd)|0);if(c[ce>>2]|0){c[sd>>2]=c[ud>>2];ie=c[sd>>2]|0;l=i;return ie|0;}else{c[sd>>2]=-20;ie=c[sd>>2]|0;l=i;return ie|0;}return 0;}function yp(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(pp()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=zp(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function zp(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Ap(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=c[p>>2];c[v>>2]=$o(c[m>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;s=(ap(c[v>>2]|0)|0)!=0;r=c[v>>2]|0;if(s){c[k>>2]=r;w=c[k>>2]|0;l=j;return w|0;}if(r>>>0>=(c[q>>2]|0)>>>0){c[k>>2]=-72;w=c[k>>2]|0;l=j;return w|0;}else{c[u>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[v>>2]|0);c[k>>2]=vp(c[n>>2]|0,c[o>>2]|0,c[u>>2]|0,c[q>>2]|0,c[m>>2]|0,c[t>>2]|0)|0;w=c[k>>2]|0;l=j;return w|0;}return 0;}function Bp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+160|0;j=i+140|0;k=i+136|0;m=i+132|0;n=i+128|0;o=i+124|0;p=i+120|0;q=i+116|0;r=i+112|0;s=i+108|0;t=i+104|0;u=i+144|0;v=i+100|0;w=i+96|0;x=i+92|0;y=i+88|0;z=i+84|0;A=i+80|0;B=i+76|0;C=i+72|0;D=i+68|0;E=i+64|0;F=i+60|0;G=i+56|0;H=i+52|0;I=i+48|0;J=i+44|0;K=i+40|0;L=i+36|0;M=i+32|0;N=i+28|0;O=i+24|0;P=i+20|0;Q=i+16|0;R=i+12|0;S=i+8|0;T=i+4|0;U=i;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;bp(u,c[k>>2]|0);c[v>>2]=d[u>>0];c[x>>2]=(c[k>>2]|0)+4;c[y>>2]=c[x>>2];c[F>>2]=0;c[A>>2]=(c[o>>2]|0)+(c[F>>2]<<2);c[F>>2]=(c[F>>2]|0)+156;c[B>>2]=(c[o>>2]|0)+(c[F>>2]<<2);c[F>>2]=(c[F>>2]|0)+13;c[C>>2]=(c[o>>2]|0)+(c[F>>2]<<2);c[F>>2]=(c[F>>2]|0)+14;c[D>>2]=(c[o>>2]|0)+(((c[F>>2]<<2>>>0)/2|0)<<1);c[F>>2]=(c[F>>2]|0)+128;c[E>>2]=(c[o>>2]|0)+(c[F>>2]<<2);c[F>>2]=(c[F>>2]|0)+64;if(c[F>>2]<<2>>>0>(c[p>>2]|0)>>>0){c[j>>2]=-44;V=c[j>>2]|0;l=i;return V|0;}c[z>>2]=(c[C>>2]|0)+4;p=c[B>>2]|0;F=p+108|0;do{c[p>>2]=0;p=p+4|0;}while((p|0)<(F|0));if((c[v>>2]|0)>>>0>12){c[j>>2]=-44;V=c[j>>2]|0;l=i;return V|0;}c[w>>2]=fh(c[E>>2]|0,256,c[B>>2]|0,t,q,c[m>>2]|0,c[n>>2]|0)|0;if(ap(c[w>>2]|0)|0){c[j>>2]=c[w>>2];V=c[j>>2]|0;l=i;return V|0;}if((c[q>>2]|0)>>>0>(c[v>>2]|0)>>>0){c[j>>2]=-44;V=c[j>>2]|0;l=i;return V|0;}c[r>>2]=c[q>>2];while(1){if(c[(c[B>>2]|0)+(c[r>>2]<<2)>>2]|0)break;c[r>>2]=(c[r>>2]|0)+-1;}c[H>>2]=0;c[G>>2]=1;while(1){W=c[H>>2]|0;if((c[G>>2]|0)>>>0>=((c[r>>2]|0)+1|0)>>>0)break;c[I>>2]=W;c[H>>2]=(c[H>>2]|0)+(c[(c[B>>2]|0)+(c[G>>2]<<2)>>2]|0);c[(c[z>>2]|0)+(c[G>>2]<<2)>>2]=c[I>>2];c[G>>2]=(c[G>>2]|0)+1;}c[c[z>>2]>>2]=W;c[s>>2]=c[H>>2];c[J>>2]=0;while(1){if((c[J>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[K>>2]=d[(c[E>>2]|0)+(c[J>>2]|0)>>0];H=(c[z>>2]|0)+(c[K>>2]<<2)|0;W=c[H>>2]|0;c[H>>2]=W+1;c[L>>2]=W;a[(c[D>>2]|0)+(c[L>>2]<<1)>>0]=c[J>>2];a[(c[D>>2]|0)+(c[L>>2]<<1)+1>>0]=c[K>>2];c[J>>2]=(c[J>>2]|0)+1;}c[c[z>>2]>>2]=0;c[M>>2]=c[A>>2];c[N>>2]=(c[v>>2]|0)-(c[q>>2]|0)-1;c[O>>2]=0;c[P>>2]=1;while(1){if((c[P>>2]|0)>>>0>=((c[r>>2]|0)+1|0)>>>0)break;c[Q>>2]=c[O>>2];c[O>>2]=(c[O>>2]|0)+(c[(c[B>>2]|0)+(c[P>>2]<<2)>>2]<<(c[P>>2]|0)+(c[N>>2]|0));c[(c[M>>2]|0)+(c[P>>2]<<2)>>2]=c[Q>>2];c[P>>2]=(c[P>>2]|0)+1;}c[R>>2]=(c[q>>2]|0)+1-(c[r>>2]|0);c[S>>2]=c[R>>2];while(1){if((c[S>>2]|0)>>>0>=((c[v>>2]|0)-(c[R>>2]|0)+1|0)>>>0)break;c[T>>2]=(c[A>>2]|0)+((c[S>>2]|0)*52|0);c[U>>2]=1;while(1){if((c[U>>2]|0)>>>0>=((c[r>>2]|0)+1|0)>>>0)break;c[(c[T>>2]|0)+(c[U>>2]<<2)>>2]=(c[(c[M>>2]|0)+(c[U>>2]<<2)>>2]|0)>>>(c[S>>2]|0);c[U>>2]=(c[U>>2]|0)+1;}c[S>>2]=(c[S>>2]|0)+1;}Cp(c[y>>2]|0,c[v>>2]|0,c[D>>2]|0,c[s>>2]|0,c[C>>2]|0,c[A>>2]|0,c[r>>2]|0,(c[q>>2]|0)+1|0);a[u+2>>0]=c[v>>2];a[u+1>>0]=1;v=c[k>>2]|0;a[v>>0]=a[u>>0]|0;a[v+1>>0]=a[u+1>>0]|0;a[v+2>>0]=a[u+2>>0]|0;a[v+3>>0]=a[u+3>>0]|0;c[j>>2]=c[w>>2];V=c[j>>2]|0;l=i;return V|0;}function Cp(e,f,g,h,i,j,k,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=l;l=l+144|0;o=n+124|0;p=n+120|0;q=n+116|0;r=n+112|0;s=n+108|0;t=n+104|0;u=n+100|0;v=n+96|0;w=n;x=n+92|0;y=n+88|0;z=n+84|0;A=n+132|0;B=n+80|0;C=n+76|0;D=n+72|0;E=n+68|0;F=n+64|0;G=n+60|0;H=n+128|0;I=n+56|0;J=n+52|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=k;c[v>>2]=m;c[x>>2]=(c[v>>2]|0)-(c[p>>2]|0);c[y>>2]=(c[v>>2]|0)-(c[u>>2]|0);u=w;m=c[t>>2]|0;k=u+52|0;do{c[u>>2]=c[m>>2];u=u+4|0;m=m+4|0;}while((u|0)<(k|0));c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;b[A>>1]=d[(c[q>>2]|0)+(c[z>>2]<<1)>>0]|0;c[B>>2]=d[(c[q>>2]|0)+(c[z>>2]<<1)+1>>0];c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);c[D>>2]=c[w+(c[B>>2]<<2)>>2];c[E>>2]=1<<(c[p>>2]|0)-(c[C>>2]|0);a:do{if(((c[p>>2]|0)-(c[C>>2]|0)|0)>>>0>=(c[y>>2]|0)>>>0){m=(c[C>>2]|0)+(c[x>>2]|0)|0;c[G>>2]=m;c[G>>2]=(c[G>>2]|0)<1?1:m;c[F>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];Dp((c[o>>2]|0)+(c[D>>2]<<2)|0,(c[p>>2]|0)-(c[C>>2]|0)|0,c[C>>2]|0,(c[t>>2]|0)+((c[C>>2]|0)*52|0)|0,c[G>>2]|0,(c[q>>2]|0)+(c[F>>2]<<1)|0,(c[r>>2]|0)-(c[F>>2]|0)|0,c[v>>2]|0,b[A>>1]|0);}else{Ep(H,b[A>>1]|0);a[H+2>>0]=c[C>>2];a[H+3>>0]=1;c[I>>2]=(c[D>>2]|0)+(c[E>>2]|0);c[J>>2]=c[D>>2];while(1){if((c[J>>2]|0)>>>0>=(c[I>>2]|0)>>>0)break a;m=(c[o>>2]|0)+(c[J>>2]<<2)|0;b[m>>1]=b[H>>1]|0;b[m+2>>1]=b[H+2>>1]|0;c[J>>2]=(c[J>>2]|0)+1;}}}while(0);m=w+(c[B>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+(c[E>>2]|0);c[z>>2]=(c[z>>2]|0)+1;}l=n;return;}function Dp(f,g,h,i,j,k,m,n,o){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;p=l;l=l+144|0;q=p+120|0;r=p+116|0;s=p+112|0;t=p+108|0;u=p+104|0;v=p+100|0;w=p+96|0;x=p+92|0;y=p+128|0;z=p+124|0;A=p;B=p+88|0;C=p+84|0;D=p+80|0;E=p+76|0;F=p+72|0;G=p+68|0;H=p+64|0;I=p+60|0;J=p+56|0;K=p+52|0;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;c[v>>2]=k;c[w>>2]=m;c[x>>2]=n;b[y>>1]=o;o=A;n=c[t>>2]|0;t=o+52|0;do{c[o>>2]=c[n>>2];o=o+4|0;n=n+4|0;}while((o|0)<(t|0));a:do{if((c[u>>2]|0)>1){c[C>>2]=c[A+(c[u>>2]<<2)>>2];Ep(z,b[y>>1]|0);a[z+2>>0]=c[s>>2];a[z+3>>0]=1;c[B>>2]=0;while(1){if((c[B>>2]|0)>>>0>=(c[C>>2]|0)>>>0)break a;n=(c[q>>2]|0)+(c[B>>2]<<2)|0;b[n>>1]=b[z>>1]|0;b[n+2>>1]=b[z+2>>1]|0;c[B>>2]=(c[B>>2]|0)+1;}}}while(0);c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[E>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)>>0];c[F>>2]=d[(c[v>>2]|0)+(c[D>>2]<<1)+1>>0];c[G>>2]=(c[x>>2]|0)-(c[F>>2]|0);c[H>>2]=1<<(c[r>>2]|0)-(c[G>>2]|0);c[I>>2]=c[A+(c[F>>2]<<2)>>2];c[J>>2]=c[I>>2];c[K>>2]=(c[I>>2]|0)+(c[H>>2]|0);Ep(z,(e[y>>1]|0)+(c[E>>2]<<8)&65535);a[z+2>>0]=(c[G>>2]|0)+(c[s>>2]|0);a[z+3>>0]=2;do{B=c[q>>2]|0;C=c[J>>2]|0;c[J>>2]=C+1;u=B+(C<<2)|0;b[u>>1]=b[z>>1]|0;b[u+2>>1]=b[z+2>>1]|0;}while((c[J>>2]|0)>>>0<(c[K>>2]|0)>>>0);u=A+(c[F>>2]<<2)|0;c[u>>2]=(c[u>>2]|0)+(c[H>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}l=p;return;}function Ep(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(pp()|0)!=0;d=c[h>>2]|0;if(f){Fp(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function Fp(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=b[h>>1]|0;h=c[g>>2]|0;a[h>>0]=e;a[h+1>>0]=e>>8;l=f;return;}function Gp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=Hp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=Ip(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function Hp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+256|0;j=i+244|0;k=i+240|0;m=i+236|0;n=i+232|0;o=i+228|0;p=i+224|0;q=i+220|0;r=i+216|0;s=i+212|0;t=i+208|0;u=i+204|0;v=i+200|0;w=i+196|0;x=i+192|0;y=i+188|0;z=i+184|0;A=i+180|0;B=i+176|0;C=i+172|0;D=i+168|0;E=i+164|0;F=i+160|0;G=i+156|0;H=i+152|0;I=i+148|0;J=i+144|0;K=i+140|0;L=i+136|0;M=i+132|0;N=i+128|0;O=i+124|0;P=i+120|0;Q=i+116|0;R=i+112|0;S=i+108|0;T=i+104|0;U=i+100|0;V=i+96|0;W=i+92|0;X=i+88|0;Y=i+80|0;Z=i+76|0;_=i+72|0;$=i+68|0;aa=i+64|0;ba=i+60|0;ca=i+40|0;da=i+36|0;ea=i+32|0;fa=i+28|0;ga=i+24|0;ha=i+20|0;ia=i+248|0;ja=i+16|0;ka=i+12|0;la=i+8|0;ma=i+4|0;na=i;c[ja>>2]=b;c[ka>>2]=e;c[la>>2]=f;c[ma>>2]=g;c[na>>2]=h;h=c[ka>>2]|0;ka=c[la>>2]|0;la=c[ma>>2]|0;ma=c[na>>2]|0;c[Z>>2]=c[ja>>2];c[_>>2]=h;c[$>>2]=ka;c[aa>>2]=la;c[ba>>2]=ma;c[da>>2]=fp(ca,c[$>>2]|0,c[aa>>2]|0)|0;if(ap(c[da>>2]|0)|0){c[Y>>2]=c[da>>2];oa=c[Y>>2]|0;l=i;return oa|0;}c[ea>>2]=c[Z>>2];c[fa>>2]=(c[ea>>2]|0)+(c[_>>2]|0);c[ga>>2]=(c[ba>>2]|0)+4;c[ha>>2]=c[ga>>2];bp(ia,c[ba>>2]|0);ba=c[fa>>2]|0;fa=c[ha>>2]|0;ha=d[ia+2>>0]|0;c[T>>2]=c[ea>>2];c[U>>2]=ca;c[V>>2]=ba;c[W>>2]=fa;c[X>>2]=ha;c[i+84>>2]=c[T>>2];while(1){ha=(gp(c[U>>2]|0)|0)==0&1;if(!(ha&(c[T>>2]|0)>>>0<((c[V>>2]|0)+-3|0)>>>0))break;if(hp()|0){ha=c[U>>2]|0;fa=c[W>>2]|0;ba=c[X>>2]|0;c[O>>2]=c[T>>2];c[P>>2]=ha;c[Q>>2]=fa;c[R>>2]=ba;c[S>>2]=ip(c[P>>2]|0,c[R>>2]|0)|0;ba=c[O>>2]|0;fa=(c[Q>>2]|0)+(c[S>>2]<<2)|0;a[ba>>0]=a[fa>>0]|0;a[ba+1>>0]=a[fa+1>>0]|0;jp(c[P>>2]|0,d[(c[Q>>2]|0)+(c[S>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[Q>>2]|0)+(c[S>>2]<<2)+3>>0]|0);}hp()|0;fa=c[U>>2]|0;ba=c[W>>2]|0;ha=c[X>>2]|0;c[J>>2]=c[T>>2];c[K>>2]=fa;c[L>>2]=ba;c[M>>2]=ha;c[N>>2]=ip(c[K>>2]|0,c[M>>2]|0)|0;ha=c[J>>2]|0;ba=(c[L>>2]|0)+(c[N>>2]<<2)|0;a[ha>>0]=a[ba>>0]|0;a[ha+1>>0]=a[ba+1>>0]|0;jp(c[K>>2]|0,d[(c[L>>2]|0)+(c[N>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[L>>2]|0)+(c[N>>2]<<2)+3>>0]|0);if(hp()|0){ba=c[U>>2]|0;ha=c[W>>2]|0;fa=c[X>>2]|0;c[E>>2]=c[T>>2];c[F>>2]=ba;c[G>>2]=ha;c[H>>2]=fa;c[I>>2]=ip(c[F>>2]|0,c[H>>2]|0)|0;fa=c[E>>2]|0;ha=(c[G>>2]|0)+(c[I>>2]<<2)|0;a[fa>>0]=a[ha>>0]|0;a[fa+1>>0]=a[ha+1>>0]|0;jp(c[F>>2]|0,d[(c[G>>2]|0)+(c[I>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[G>>2]|0)+(c[I>>2]<<2)+3>>0]|0);}ha=c[U>>2]|0;fa=c[W>>2]|0;ba=c[X>>2]|0;c[z>>2]=c[T>>2];c[A>>2]=ha;c[B>>2]=fa;c[C>>2]=ba;c[D>>2]=ip(c[A>>2]|0,c[C>>2]|0)|0;ba=c[z>>2]|0;fa=(c[B>>2]|0)+(c[D>>2]<<2)|0;a[ba>>0]=a[fa>>0]|0;a[ba+1>>0]=a[fa+1>>0]|0;jp(c[A>>2]|0,d[(c[B>>2]|0)+(c[D>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[B>>2]|0)+(c[D>>2]<<2)+3>>0]|0);}while(1){D=(gp(c[U>>2]|0)|0)==0&1;if(!(D&(c[T>>2]|0)>>>0<=((c[V>>2]|0)+-2|0)>>>0))break;D=c[U>>2]|0;B=c[W>>2]|0;A=c[X>>2]|0;c[u>>2]=c[T>>2];c[v>>2]=D;c[w>>2]=B;c[x>>2]=A;c[y>>2]=ip(c[v>>2]|0,c[x>>2]|0)|0;A=c[u>>2]|0;B=(c[w>>2]|0)+(c[y>>2]<<2)|0;a[A>>0]=a[B>>0]|0;a[A+1>>0]=a[B+1>>0]|0;jp(c[v>>2]|0,d[(c[w>>2]|0)+(c[y>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[w>>2]|0)+(c[y>>2]<<2)+3>>0]|0);}while(1){pa=c[T>>2]|0;if((c[T>>2]|0)>>>0>((c[V>>2]|0)+-2|0)>>>0)break;y=c[U>>2]|0;w=c[W>>2]|0;v=c[X>>2]|0;c[p>>2]=pa;c[q>>2]=y;c[r>>2]=w;c[s>>2]=v;c[t>>2]=ip(c[q>>2]|0,c[s>>2]|0)|0;v=c[p>>2]|0;w=(c[r>>2]|0)+(c[t>>2]<<2)|0;a[v>>0]=a[w>>0]|0;a[v+1>>0]=a[w+1>>0]|0;jp(c[q>>2]|0,d[(c[r>>2]|0)+(c[t>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[r>>2]|0)+(c[t>>2]<<2)+3>>0]|0);}if(pa>>>0<(c[V>>2]|0)>>>0){V=c[U>>2]|0;U=c[W>>2]|0;W=c[X>>2]|0;c[j>>2]=c[T>>2];c[k>>2]=V;c[m>>2]=U;c[n>>2]=W;c[o>>2]=ip(c[k>>2]|0,c[n>>2]|0)|0;a[c[j>>2]>>0]=a[(c[m>>2]|0)+(c[o>>2]<<2)>>0]|0;j=c[k>>2]|0;if((d[(c[m>>2]|0)+(c[o>>2]<<2)+3>>0]|0|0)!=1){if((c[j+4>>2]|0)>>>0<32?(jp(c[k>>2]|0,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0),(c[(c[k>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[k>>2]|0)+4>>2]=32;}else jp(j,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+1;}if(lp(ca)|0){c[Y>>2]=c[_>>2];oa=c[Y>>2]|0;l=i;return oa|0;}else{c[Y>>2]=-20;oa=c[Y>>2]|0;l=i;return oa|0;}return 0;}function Ip(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+256|0;j=i+244|0;k=i+240|0;m=i+236|0;n=i+232|0;o=i+228|0;p=i+224|0;q=i+220|0;r=i+216|0;s=i+212|0;t=i+208|0;u=i+204|0;v=i+200|0;w=i+196|0;x=i+192|0;y=i+188|0;z=i+184|0;A=i+180|0;B=i+176|0;C=i+172|0;D=i+168|0;E=i+164|0;F=i+160|0;G=i+156|0;H=i+152|0;I=i+148|0;J=i+144|0;K=i+140|0;L=i+136|0;M=i+132|0;N=i+128|0;O=i+124|0;P=i+120|0;Q=i+116|0;R=i+112|0;S=i+108|0;T=i+104|0;U=i+100|0;V=i+96|0;W=i+92|0;X=i+88|0;Y=i+80|0;Z=i+76|0;_=i+72|0;$=i+68|0;aa=i+64|0;ba=i+60|0;ca=i+40|0;da=i+36|0;ea=i+32|0;fa=i+28|0;ga=i+24|0;ha=i+20|0;ia=i+248|0;ja=i+16|0;ka=i+12|0;la=i+8|0;ma=i+4|0;na=i;c[ja>>2]=b;c[ka>>2]=e;c[la>>2]=f;c[ma>>2]=g;c[na>>2]=h;h=c[ka>>2]|0;ka=c[la>>2]|0;la=c[ma>>2]|0;ma=c[na>>2]|0;c[Z>>2]=c[ja>>2];c[_>>2]=h;c[$>>2]=ka;c[aa>>2]=la;c[ba>>2]=ma;c[da>>2]=fp(ca,c[$>>2]|0,c[aa>>2]|0)|0;if(ap(c[da>>2]|0)|0){c[Y>>2]=c[da>>2];oa=c[Y>>2]|0;l=i;return oa|0;}c[ea>>2]=c[Z>>2];c[fa>>2]=(c[ea>>2]|0)+(c[_>>2]|0);c[ga>>2]=(c[ba>>2]|0)+4;c[ha>>2]=c[ga>>2];bp(ia,c[ba>>2]|0);ba=c[fa>>2]|0;fa=c[ha>>2]|0;ha=d[ia+2>>0]|0;c[T>>2]=c[ea>>2];c[U>>2]=ca;c[V>>2]=ba;c[W>>2]=fa;c[X>>2]=ha;c[i+84>>2]=c[T>>2];while(1){ha=(gp(c[U>>2]|0)|0)==0&1;if(!(ha&(c[T>>2]|0)>>>0<((c[V>>2]|0)+-3|0)>>>0))break;if(hp()|0){ha=c[U>>2]|0;fa=c[W>>2]|0;ba=c[X>>2]|0;c[O>>2]=c[T>>2];c[P>>2]=ha;c[Q>>2]=fa;c[R>>2]=ba;c[S>>2]=ip(c[P>>2]|0,c[R>>2]|0)|0;ba=c[O>>2]|0;fa=(c[Q>>2]|0)+(c[S>>2]<<2)|0;a[ba>>0]=a[fa>>0]|0;a[ba+1>>0]=a[fa+1>>0]|0;jp(c[P>>2]|0,d[(c[Q>>2]|0)+(c[S>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[Q>>2]|0)+(c[S>>2]<<2)+3>>0]|0);}hp()|0;fa=c[U>>2]|0;ba=c[W>>2]|0;ha=c[X>>2]|0;c[J>>2]=c[T>>2];c[K>>2]=fa;c[L>>2]=ba;c[M>>2]=ha;c[N>>2]=ip(c[K>>2]|0,c[M>>2]|0)|0;ha=c[J>>2]|0;ba=(c[L>>2]|0)+(c[N>>2]<<2)|0;a[ha>>0]=a[ba>>0]|0;a[ha+1>>0]=a[ba+1>>0]|0;jp(c[K>>2]|0,d[(c[L>>2]|0)+(c[N>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[L>>2]|0)+(c[N>>2]<<2)+3>>0]|0);if(hp()|0){ba=c[U>>2]|0;ha=c[W>>2]|0;fa=c[X>>2]|0;c[E>>2]=c[T>>2];c[F>>2]=ba;c[G>>2]=ha;c[H>>2]=fa;c[I>>2]=ip(c[F>>2]|0,c[H>>2]|0)|0;fa=c[E>>2]|0;ha=(c[G>>2]|0)+(c[I>>2]<<2)|0;a[fa>>0]=a[ha>>0]|0;a[fa+1>>0]=a[ha+1>>0]|0;jp(c[F>>2]|0,d[(c[G>>2]|0)+(c[I>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[G>>2]|0)+(c[I>>2]<<2)+3>>0]|0);}ha=c[U>>2]|0;fa=c[W>>2]|0;ba=c[X>>2]|0;c[z>>2]=c[T>>2];c[A>>2]=ha;c[B>>2]=fa;c[C>>2]=ba;c[D>>2]=ip(c[A>>2]|0,c[C>>2]|0)|0;ba=c[z>>2]|0;fa=(c[B>>2]|0)+(c[D>>2]<<2)|0;a[ba>>0]=a[fa>>0]|0;a[ba+1>>0]=a[fa+1>>0]|0;jp(c[A>>2]|0,d[(c[B>>2]|0)+(c[D>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[B>>2]|0)+(c[D>>2]<<2)+3>>0]|0);}while(1){D=(gp(c[U>>2]|0)|0)==0&1;if(!(D&(c[T>>2]|0)>>>0<=((c[V>>2]|0)+-2|0)>>>0))break;D=c[U>>2]|0;B=c[W>>2]|0;A=c[X>>2]|0;c[u>>2]=c[T>>2];c[v>>2]=D;c[w>>2]=B;c[x>>2]=A;c[y>>2]=ip(c[v>>2]|0,c[x>>2]|0)|0;A=c[u>>2]|0;B=(c[w>>2]|0)+(c[y>>2]<<2)|0;a[A>>0]=a[B>>0]|0;a[A+1>>0]=a[B+1>>0]|0;jp(c[v>>2]|0,d[(c[w>>2]|0)+(c[y>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[w>>2]|0)+(c[y>>2]<<2)+3>>0]|0);}while(1){pa=c[T>>2]|0;if((c[T>>2]|0)>>>0>((c[V>>2]|0)+-2|0)>>>0)break;y=c[U>>2]|0;w=c[W>>2]|0;v=c[X>>2]|0;c[p>>2]=pa;c[q>>2]=y;c[r>>2]=w;c[s>>2]=v;c[t>>2]=ip(c[q>>2]|0,c[s>>2]|0)|0;v=c[p>>2]|0;w=(c[r>>2]|0)+(c[t>>2]<<2)|0;a[v>>0]=a[w>>0]|0;a[v+1>>0]=a[w+1>>0]|0;jp(c[q>>2]|0,d[(c[r>>2]|0)+(c[t>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[r>>2]|0)+(c[t>>2]<<2)+3>>0]|0);}if(pa>>>0<(c[V>>2]|0)>>>0){V=c[U>>2]|0;U=c[W>>2]|0;W=c[X>>2]|0;c[j>>2]=c[T>>2];c[k>>2]=V;c[m>>2]=U;c[n>>2]=W;c[o>>2]=ip(c[k>>2]|0,c[n>>2]|0)|0;a[c[j>>2]>>0]=a[(c[m>>2]|0)+(c[o>>2]<<2)>>0]|0;j=c[k>>2]|0;if((d[(c[m>>2]|0)+(c[o>>2]<<2)+3>>0]|0|0)!=1){if((c[j+4>>2]|0)>>>0<32?(jp(c[k>>2]|0,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0),(c[(c[k>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[k>>2]|0)+4>>2]=32;}else jp(j,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+1;}if(lp(ca)|0){c[Y>>2]=c[_>>2];oa=c[Y>>2]|0;l=i;return oa|0;}else{c[Y>>2]=-20;oa=c[Y>>2]|0;l=i;return oa|0;}return 0;}function Jp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=Kp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=Lp(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function Kp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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,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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,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,Zc=0,_c=0,$c=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,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,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,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0;i=l;l=l+1216|0;j=i+1208|0;k=i+1204|0;m=i+1200|0;n=i+1196|0;o=i+1192|0;p=i+1188|0;q=i+1184|0;r=i+1180|0;s=i+1176|0;t=i+1172|0;u=i+1168|0;v=i+1164|0;w=i+1160|0;x=i+1156|0;y=i+1152|0;z=i+1148|0;A=i+1144|0;B=i+1140|0;C=i+1136|0;D=i+1132|0;E=i+1128|0;F=i+1124|0;G=i+1120|0;H=i+1116|0;I=i+1112|0;J=i+1108|0;K=i+1104|0;L=i+1100|0;M=i+1096|0;N=i+1092|0;O=i+1088|0;P=i+1084|0;Q=i+1080|0;R=i+1076|0;S=i+1072|0;T=i+1068|0;U=i+1064|0;V=i+1060|0;W=i+1056|0;X=i+1052|0;Y=i+1048|0;Z=i+1044|0;_=i+1040|0;$=i+1036|0;aa=i+1032|0;ba=i+1028|0;ca=i+1024|0;da=i+1020|0;ea=i+1016|0;fa=i+1012|0;ga=i+1008|0;ha=i+1004|0;ia=i+1e3|0;ja=i+996|0;ka=i+992|0;la=i+988|0;ma=i+984|0;na=i+980|0;oa=i+976|0;pa=i+972|0;qa=i+968|0;ra=i+964|0;sa=i+960|0;ta=i+956|0;ua=i+952|0;va=i+948|0;wa=i+944|0;xa=i+940|0;ya=i+936|0;za=i+932|0;Aa=i+928|0;Ba=i+924|0;Ca=i+920|0;Da=i+916|0;Ea=i+912|0;Fa=i+908|0;Ga=i+904|0;Ha=i+900|0;Ia=i+896|0;Ja=i+892|0;Ka=i+888|0;La=i+884|0;Ma=i+880|0;Na=i+876|0;Oa=i+872|0;Pa=i+868|0;Qa=i+864|0;Ra=i+860|0;Sa=i+856|0;Ta=i+852|0;Ua=i+848|0;Va=i+844|0;Wa=i+840|0;Xa=i+836|0;Ya=i+832|0;Za=i+828|0;_a=i+824|0;$a=i+820|0;ab=i+816|0;bb=i+812|0;cb=i+808|0;db=i+804|0;eb=i+800|0;fb=i+796|0;gb=i+792|0;hb=i+788|0;ib=i+784|0;jb=i+780|0;kb=i+776|0;lb=i+772|0;mb=i+768|0;nb=i+764|0;ob=i+760|0;pb=i+756|0;qb=i+752|0;rb=i+748|0;sb=i+744|0;tb=i+740|0;ub=i+736|0;vb=i+732|0;wb=i+728|0;xb=i+724|0;yb=i+720|0;zb=i+716|0;Ab=i+712|0;Bb=i+708|0;Cb=i+704|0;Db=i+700|0;Eb=i+696|0;Fb=i+692|0;Gb=i+688|0;Hb=i+684|0;Ib=i+680|0;Jb=i+676|0;Kb=i+672|0;Lb=i+668|0;Mb=i+664|0;Nb=i+660|0;Ob=i+656|0;Pb=i+652|0;Qb=i+648|0;Rb=i+644|0;Sb=i+640|0;Tb=i+636|0;Ub=i+632|0;Vb=i+628|0;Wb=i+624|0;Xb=i+620|0;Yb=i+616|0;Zb=i+612|0;_b=i+608|0;$b=i+604|0;ac=i+600|0;bc=i+596|0;cc=i+592|0;dc=i+588|0;ec=i+584|0;fc=i+580|0;gc=i+576|0;hc=i+572|0;ic=i+568|0;jc=i+564|0;kc=i+560|0;lc=i+556|0;mc=i+552|0;nc=i+548|0;oc=i+544|0;pc=i+540|0;qc=i+536|0;rc=i+532|0;sc=i+528|0;tc=i+524|0;uc=i+520|0;vc=i+516|0;wc=i+512|0;xc=i+508|0;yc=i+504|0;zc=i+500|0;Ac=i+496|0;Bc=i+492|0;Cc=i+488|0;Dc=i+484|0;Ec=i+480|0;Fc=i+476|0;Gc=i+472|0;Hc=i+468|0;Ic=i+464|0;Jc=i+460|0;Kc=i+456|0;Lc=i+452|0;Mc=i+448|0;Nc=i+444|0;Oc=i+440|0;Pc=i+436|0;Qc=i+432|0;Rc=i+428|0;Sc=i+424|0;Tc=i+420|0;Uc=i+416|0;Vc=i+412|0;Wc=i+408|0;Xc=i+404|0;Yc=i+400|0;Zc=i+396|0;_c=i+392|0;$c=i+388|0;ad=i+384|0;bd=i+380|0;cd=i+376|0;dd=i+372|0;ed=i+368|0;fd=i+364|0;gd=i+360|0;hd=i+356|0;id=i+352|0;jd=i+348|0;kd=i+344|0;ld=i+340|0;md=i+336|0;nd=i+332|0;od=i+328|0;pd=i+324|0;qd=i+320|0;rd=i+316|0;sd=i+312|0;td=i+308|0;ud=i+304|0;vd=i+300|0;wd=i+296|0;xd=i+292|0;yd=i+288|0;zd=i+284|0;Ad=i+280|0;Bd=i+276|0;Cd=i+272|0;Dd=i+268|0;Ed=i+264|0;Fd=i+260|0;Gd=i+256|0;Hd=i+252|0;Id=i+248|0;Jd=i+244|0;Kd=i+240|0;Ld=i+236|0;Md=i+232|0;Nd=i+228|0;Od=i+224|0;Pd=i+220|0;Qd=i+216|0;Rd=i+212|0;Sd=i+208|0;Td=i+204|0;Ud=i+200|0;Vd=i+196|0;Wd=i+192|0;Xd=i+172|0;Yd=i+152|0;Zd=i+132|0;_d=i+112|0;$d=i+108|0;ae=i+104|0;be=i+100|0;ce=i+96|0;de=i+92|0;ee=i+88|0;fe=i+84|0;ge=i+80|0;he=i+76|0;ie=i+72|0;je=i+68|0;ke=i+64|0;le=i+60|0;me=i+56|0;ne=i+52|0;oe=i+48|0;pe=i+44|0;qe=i+1212|0;re=i+40|0;se=i+36|0;te=i+32|0;ue=i+28|0;ve=i+24|0;we=i+20|0;xe=i+16|0;ye=i+12|0;ze=i+8|0;Ae=i+4|0;Be=i;c[xe>>2]=b;c[ye>>2]=e;c[ze>>2]=f;c[Ae>>2]=g;c[Be>>2]=h;h=c[ye>>2]|0;ye=c[ze>>2]|0;ze=c[Ae>>2]|0;Ae=c[Be>>2]|0;c[Nd>>2]=c[xe>>2];c[Od>>2]=h;c[Pd>>2]=ye;c[Qd>>2]=ze;c[Rd>>2]=Ae;if((c[Qd>>2]|0)>>>0<10){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}c[Sd>>2]=c[Pd>>2];c[Td>>2]=c[Nd>>2];c[Ud>>2]=(c[Td>>2]|0)+(c[Od>>2]|0);c[Vd>>2]=(c[Rd>>2]|0)+4;c[Wd>>2]=c[Vd>>2];c[$d>>2]=(yp(c[Sd>>2]|0)|0)&65535;c[ae>>2]=(yp((c[Sd>>2]|0)+2|0)|0)&65535;c[be>>2]=(yp((c[Sd>>2]|0)+4|0)|0)&65535;c[ce>>2]=(c[Qd>>2]|0)-((c[$d>>2]|0)+(c[ae>>2]|0)+(c[be>>2]|0)+6);c[de>>2]=(c[Sd>>2]|0)+6;c[ee>>2]=(c[de>>2]|0)+(c[$d>>2]|0);c[fe>>2]=(c[ee>>2]|0)+(c[ae>>2]|0);c[ge>>2]=(c[fe>>2]|0)+(c[be>>2]|0);c[he>>2]=(((c[Od>>2]|0)+3|0)>>>0)/4|0;c[ie>>2]=(c[Td>>2]|0)+(c[he>>2]|0);c[je>>2]=(c[ie>>2]|0)+(c[he>>2]|0);c[ke>>2]=(c[je>>2]|0)+(c[he>>2]|0);c[le>>2]=c[Td>>2];c[me>>2]=c[ie>>2];c[ne>>2]=c[je>>2];c[oe>>2]=c[ke>>2];bp(qe,c[Rd>>2]|0);c[re>>2]=d[qe+2>>0];if((c[ce>>2]|0)>>>0>(c[Qd>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}c[se>>2]=fp(Xd,c[de>>2]|0,c[$d>>2]|0)|0;if(ap(c[se>>2]|0)|0){c[Md>>2]=c[se>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[te>>2]=fp(Yd,c[ee>>2]|0,c[ae>>2]|0)|0;if(ap(c[te>>2]|0)|0){c[Md>>2]=c[te>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[ue>>2]=fp(Zd,c[fe>>2]|0,c[be>>2]|0)|0;if(ap(c[ue>>2]|0)|0){c[Md>>2]=c[ue>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[ve>>2]=fp(_d,c[ge>>2]|0,c[ce>>2]|0)|0;if(ap(c[ve>>2]|0)|0){c[Md>>2]=c[ve>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}ve=gp(Xd)|0;ce=ve|(gp(Yd)|0);ve=ce|(gp(Zd)|0);c[pe>>2]=ve|(gp(_d)|0);while(1){if(!(((c[pe>>2]|0)==0?(c[oe>>2]|0)>>>0<((c[Ud>>2]|0)+-3|0)>>>0:0)|0))break;if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Hd>>2]=c[le>>2];c[Id>>2]=Xd;c[Jd>>2]=ve;c[Kd>>2]=ce;c[Ld>>2]=ip(c[Id>>2]|0,c[Kd>>2]|0)|0;ce=c[Hd>>2]|0;ve=(c[Jd>>2]|0)+(c[Ld>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Id>>2]|0,d[(c[Jd>>2]|0)+(c[Ld>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Jd>>2]|0)+(c[Ld>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Cd>>2]=c[me>>2];c[Dd>>2]=Yd;c[Ed>>2]=ve;c[Fd>>2]=ce;c[Gd>>2]=ip(c[Dd>>2]|0,c[Fd>>2]|0)|0;ce=c[Cd>>2]|0;ve=(c[Ed>>2]|0)+(c[Gd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Dd>>2]|0,d[(c[Ed>>2]|0)+(c[Gd>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[Ed>>2]|0)+(c[Gd>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[xd>>2]=c[ne>>2];c[yd>>2]=Zd;c[zd>>2]=ve;c[Ad>>2]=ce;c[Bd>>2]=ip(c[yd>>2]|0,c[Ad>>2]|0)|0;ce=c[xd>>2]|0;ve=(c[zd>>2]|0)+(c[Bd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[yd>>2]|0,d[(c[zd>>2]|0)+(c[Bd>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[zd>>2]|0)+(c[Bd>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[sd>>2]=c[oe>>2];c[td>>2]=_d;c[ud>>2]=ve;c[vd>>2]=ce;c[wd>>2]=ip(c[td>>2]|0,c[vd>>2]|0)|0;ce=c[sd>>2]|0;ve=(c[ud>>2]|0)+(c[wd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[td>>2]|0,d[(c[ud>>2]|0)+(c[wd>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[ud>>2]|0)+(c[wd>>2]<<2)+3>>0]|0);}hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[nd>>2]=c[le>>2];c[od>>2]=Xd;c[pd>>2]=ve;c[qd>>2]=ce;c[rd>>2]=ip(c[od>>2]|0,c[qd>>2]|0)|0;ce=c[nd>>2]|0;ve=(c[pd>>2]|0)+(c[rd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[od>>2]|0,d[(c[pd>>2]|0)+(c[rd>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[pd>>2]|0)+(c[rd>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[id>>2]=c[me>>2];c[jd>>2]=Yd;c[kd>>2]=ve;c[ld>>2]=ce;c[md>>2]=ip(c[jd>>2]|0,c[ld>>2]|0)|0;ce=c[id>>2]|0;ve=(c[kd>>2]|0)+(c[md>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[jd>>2]|0,d[(c[kd>>2]|0)+(c[md>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[kd>>2]|0)+(c[md>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[dd>>2]=c[ne>>2];c[ed>>2]=Zd;c[fd>>2]=ve;c[gd>>2]=ce;c[hd>>2]=ip(c[ed>>2]|0,c[gd>>2]|0)|0;ce=c[dd>>2]|0;ve=(c[fd>>2]|0)+(c[hd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[ed>>2]|0,d[(c[fd>>2]|0)+(c[hd>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[fd>>2]|0)+(c[hd>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[_c>>2]=c[oe>>2];c[$c>>2]=_d;c[ad>>2]=ve;c[bd>>2]=ce;c[cd>>2]=ip(c[$c>>2]|0,c[bd>>2]|0)|0;ce=c[_c>>2]|0;ve=(c[ad>>2]|0)+(c[cd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[$c>>2]|0,d[(c[ad>>2]|0)+(c[cd>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[ad>>2]|0)+(c[cd>>2]<<2)+3>>0]|0);if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Vc>>2]=c[le>>2];c[Wc>>2]=Xd;c[Xc>>2]=ve;c[Yc>>2]=ce;c[Zc>>2]=ip(c[Wc>>2]|0,c[Yc>>2]|0)|0;ce=c[Vc>>2]|0;ve=(c[Xc>>2]|0)+(c[Zc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Wc>>2]|0,d[(c[Xc>>2]|0)+(c[Zc>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Xc>>2]|0)+(c[Zc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Qc>>2]=c[me>>2];c[Rc>>2]=Yd;c[Sc>>2]=ve;c[Tc>>2]=ce;c[Uc>>2]=ip(c[Rc>>2]|0,c[Tc>>2]|0)|0;ce=c[Qc>>2]|0;ve=(c[Sc>>2]|0)+(c[Uc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Rc>>2]|0,d[(c[Sc>>2]|0)+(c[Uc>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[Sc>>2]|0)+(c[Uc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Lc>>2]=c[ne>>2];c[Mc>>2]=Zd;c[Nc>>2]=ve;c[Oc>>2]=ce;c[Pc>>2]=ip(c[Mc>>2]|0,c[Oc>>2]|0)|0;ce=c[Lc>>2]|0;ve=(c[Nc>>2]|0)+(c[Pc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Mc>>2]|0,d[(c[Nc>>2]|0)+(c[Pc>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[Nc>>2]|0)+(c[Pc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Gc>>2]=c[oe>>2];c[Hc>>2]=_d;c[Ic>>2]=ve;c[Jc>>2]=ce;c[Kc>>2]=ip(c[Hc>>2]|0,c[Jc>>2]|0)|0;ce=c[Gc>>2]|0;ve=(c[Ic>>2]|0)+(c[Kc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Hc>>2]|0,d[(c[Ic>>2]|0)+(c[Kc>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[Ic>>2]|0)+(c[Kc>>2]<<2)+3>>0]|0);}ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Bc>>2]=c[le>>2];c[Cc>>2]=Xd;c[Dc>>2]=ve;c[Ec>>2]=ce;c[Fc>>2]=ip(c[Cc>>2]|0,c[Ec>>2]|0)|0;ce=c[Bc>>2]|0;ve=(c[Dc>>2]|0)+(c[Fc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Cc>>2]|0,d[(c[Dc>>2]|0)+(c[Fc>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Dc>>2]|0)+(c[Fc>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[wc>>2]=c[me>>2];c[xc>>2]=Yd;c[yc>>2]=ve;c[zc>>2]=ce;c[Ac>>2]=ip(c[xc>>2]|0,c[zc>>2]|0)|0;ce=c[wc>>2]|0;ve=(c[yc>>2]|0)+(c[Ac>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[xc>>2]|0,d[(c[yc>>2]|0)+(c[Ac>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[yc>>2]|0)+(c[Ac>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[rc>>2]=c[ne>>2];c[sc>>2]=Zd;c[tc>>2]=ve;c[uc>>2]=ce;c[vc>>2]=ip(c[sc>>2]|0,c[uc>>2]|0)|0;ce=c[rc>>2]|0;ve=(c[tc>>2]|0)+(c[vc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[sc>>2]|0,d[(c[tc>>2]|0)+(c[vc>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[tc>>2]|0)+(c[vc>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[mc>>2]=c[oe>>2];c[nc>>2]=_d;c[oc>>2]=ve;c[pc>>2]=ce;c[qc>>2]=ip(c[nc>>2]|0,c[pc>>2]|0)|0;ce=c[mc>>2]|0;ve=(c[oc>>2]|0)+(c[qc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[nc>>2]|0,d[(c[oc>>2]|0)+(c[qc>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[oc>>2]|0)+(c[qc>>2]<<2)+3>>0]|0);ve=gp(Xd)|0;ce=ve|(gp(Yd)|0);ve=ce|(gp(Zd)|0);c[pe>>2]=ve|(gp(_d)|0);}if((c[le>>2]|0)>>>0>(c[ie>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}if((c[me>>2]|0)>>>0>(c[je>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}if((c[ne>>2]|0)>>>0>(c[ke>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}pe=c[ie>>2]|0;ie=c[Wd>>2]|0;qc=c[re>>2]|0;c[gc>>2]=c[le>>2];c[hc>>2]=Xd;c[ic>>2]=pe;c[jc>>2]=ie;c[kc>>2]=qc;c[lc>>2]=c[gc>>2];while(1){lc=(gp(c[hc>>2]|0)|0)==0&1;if(!(lc&(c[gc>>2]|0)>>>0<((c[ic>>2]|0)+-3|0)>>>0))break;if(hp()|0){lc=c[hc>>2]|0;qc=c[jc>>2]|0;ie=c[kc>>2]|0;c[bc>>2]=c[gc>>2];c[cc>>2]=lc;c[dc>>2]=qc;c[ec>>2]=ie;c[fc>>2]=ip(c[cc>>2]|0,c[ec>>2]|0)|0;ie=c[bc>>2]|0;qc=(c[dc>>2]|0)+(c[fc>>2]<<2)|0;a[ie>>0]=a[qc>>0]|0;a[ie+1>>0]=a[qc+1>>0]|0;jp(c[cc>>2]|0,d[(c[dc>>2]|0)+(c[fc>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[dc>>2]|0)+(c[fc>>2]<<2)+3>>0]|0);}hp()|0;qc=c[hc>>2]|0;ie=c[jc>>2]|0;lc=c[kc>>2]|0;c[Yb>>2]=c[gc>>2];c[Zb>>2]=qc;c[_b>>2]=ie;c[$b>>2]=lc;c[ac>>2]=ip(c[Zb>>2]|0,c[$b>>2]|0)|0;lc=c[Yb>>2]|0;ie=(c[_b>>2]|0)+(c[ac>>2]<<2)|0;a[lc>>0]=a[ie>>0]|0;a[lc+1>>0]=a[ie+1>>0]|0;jp(c[Zb>>2]|0,d[(c[_b>>2]|0)+(c[ac>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[_b>>2]|0)+(c[ac>>2]<<2)+3>>0]|0);if(hp()|0){ie=c[hc>>2]|0;lc=c[jc>>2]|0;qc=c[kc>>2]|0;c[Tb>>2]=c[gc>>2];c[Ub>>2]=ie;c[Vb>>2]=lc;c[Wb>>2]=qc;c[Xb>>2]=ip(c[Ub>>2]|0,c[Wb>>2]|0)|0;qc=c[Tb>>2]|0;lc=(c[Vb>>2]|0)+(c[Xb>>2]<<2)|0;a[qc>>0]=a[lc>>0]|0;a[qc+1>>0]=a[lc+1>>0]|0;jp(c[Ub>>2]|0,d[(c[Vb>>2]|0)+(c[Xb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Vb>>2]|0)+(c[Xb>>2]<<2)+3>>0]|0);}lc=c[hc>>2]|0;qc=c[jc>>2]|0;ie=c[kc>>2]|0;c[Ob>>2]=c[gc>>2];c[Pb>>2]=lc;c[Qb>>2]=qc;c[Rb>>2]=ie;c[Sb>>2]=ip(c[Pb>>2]|0,c[Rb>>2]|0)|0;ie=c[Ob>>2]|0;qc=(c[Qb>>2]|0)+(c[Sb>>2]<<2)|0;a[ie>>0]=a[qc>>0]|0;a[ie+1>>0]=a[qc+1>>0]|0;jp(c[Pb>>2]|0,d[(c[Qb>>2]|0)+(c[Sb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Qb>>2]|0)+(c[Sb>>2]<<2)+3>>0]|0);}while(1){Sb=(gp(c[hc>>2]|0)|0)==0&1;if(!(Sb&(c[gc>>2]|0)>>>0<=((c[ic>>2]|0)+-2|0)>>>0))break;Sb=c[hc>>2]|0;Qb=c[jc>>2]|0;Pb=c[kc>>2]|0;c[Jb>>2]=c[gc>>2];c[Kb>>2]=Sb;c[Lb>>2]=Qb;c[Mb>>2]=Pb;c[Nb>>2]=ip(c[Kb>>2]|0,c[Mb>>2]|0)|0;Pb=c[Jb>>2]|0;Qb=(c[Lb>>2]|0)+(c[Nb>>2]<<2)|0;a[Pb>>0]=a[Qb>>0]|0;a[Pb+1>>0]=a[Qb+1>>0]|0;jp(c[Kb>>2]|0,d[(c[Lb>>2]|0)+(c[Nb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Lb>>2]|0)+(c[Nb>>2]<<2)+3>>0]|0);}while(1){De=c[gc>>2]|0;if((c[gc>>2]|0)>>>0>((c[ic>>2]|0)+-2|0)>>>0)break;Nb=c[hc>>2]|0;Lb=c[jc>>2]|0;Kb=c[kc>>2]|0;c[Eb>>2]=De;c[Fb>>2]=Nb;c[Gb>>2]=Lb;c[Hb>>2]=Kb;c[Ib>>2]=ip(c[Fb>>2]|0,c[Hb>>2]|0)|0;Kb=c[Eb>>2]|0;Lb=(c[Gb>>2]|0)+(c[Ib>>2]<<2)|0;a[Kb>>0]=a[Lb>>0]|0;a[Kb+1>>0]=a[Lb+1>>0]|0;jp(c[Fb>>2]|0,d[(c[Gb>>2]|0)+(c[Ib>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Gb>>2]|0)+(c[Ib>>2]<<2)+3>>0]|0);}if(De>>>0<(c[ic>>2]|0)>>>0){ic=c[hc>>2]|0;hc=c[jc>>2]|0;jc=c[kc>>2]|0;c[zb>>2]=c[gc>>2];c[Ab>>2]=ic;c[Bb>>2]=hc;c[Cb>>2]=jc;c[Db>>2]=ip(c[Ab>>2]|0,c[Cb>>2]|0)|0;a[c[zb>>2]>>0]=a[(c[Bb>>2]|0)+(c[Db>>2]<<2)>>0]|0;zb=c[Ab>>2]|0;if((d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+3>>0]|0|0)!=1){if((c[zb+4>>2]|0)>>>0<32?(jp(c[Ab>>2]|0,d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+2>>0]|0),(c[(c[Ab>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[Ab>>2]|0)+4>>2]=32;}else jp(zb,d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+1;}gc=c[je>>2]|0;je=c[Wd>>2]|0;Db=c[re>>2]|0;c[tb>>2]=c[me>>2];c[ub>>2]=Yd;c[vb>>2]=gc;c[wb>>2]=je;c[xb>>2]=Db;c[yb>>2]=c[tb>>2];while(1){yb=(gp(c[ub>>2]|0)|0)==0&1;if(!(yb&(c[tb>>2]|0)>>>0<((c[vb>>2]|0)+-3|0)>>>0))break;if(hp()|0){yb=c[ub>>2]|0;Db=c[wb>>2]|0;je=c[xb>>2]|0;c[ob>>2]=c[tb>>2];c[pb>>2]=yb;c[qb>>2]=Db;c[rb>>2]=je;c[sb>>2]=ip(c[pb>>2]|0,c[rb>>2]|0)|0;je=c[ob>>2]|0;Db=(c[qb>>2]|0)+(c[sb>>2]<<2)|0;a[je>>0]=a[Db>>0]|0;a[je+1>>0]=a[Db+1>>0]|0;jp(c[pb>>2]|0,d[(c[qb>>2]|0)+(c[sb>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[qb>>2]|0)+(c[sb>>2]<<2)+3>>0]|0);}hp()|0;Db=c[ub>>2]|0;je=c[wb>>2]|0;yb=c[xb>>2]|0;c[jb>>2]=c[tb>>2];c[kb>>2]=Db;c[lb>>2]=je;c[mb>>2]=yb;c[nb>>2]=ip(c[kb>>2]|0,c[mb>>2]|0)|0;yb=c[jb>>2]|0;je=(c[lb>>2]|0)+(c[nb>>2]<<2)|0;a[yb>>0]=a[je>>0]|0;a[yb+1>>0]=a[je+1>>0]|0;jp(c[kb>>2]|0,d[(c[lb>>2]|0)+(c[nb>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[lb>>2]|0)+(c[nb>>2]<<2)+3>>0]|0);if(hp()|0){je=c[ub>>2]|0;yb=c[wb>>2]|0;Db=c[xb>>2]|0;c[eb>>2]=c[tb>>2];c[fb>>2]=je;c[gb>>2]=yb;c[hb>>2]=Db;c[ib>>2]=ip(c[fb>>2]|0,c[hb>>2]|0)|0;Db=c[eb>>2]|0;yb=(c[gb>>2]|0)+(c[ib>>2]<<2)|0;a[Db>>0]=a[yb>>0]|0;a[Db+1>>0]=a[yb+1>>0]|0;jp(c[fb>>2]|0,d[(c[gb>>2]|0)+(c[ib>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[gb>>2]|0)+(c[ib>>2]<<2)+3>>0]|0);}yb=c[ub>>2]|0;Db=c[wb>>2]|0;je=c[xb>>2]|0;c[$a>>2]=c[tb>>2];c[ab>>2]=yb;c[bb>>2]=Db;c[cb>>2]=je;c[db>>2]=ip(c[ab>>2]|0,c[cb>>2]|0)|0;je=c[$a>>2]|0;Db=(c[bb>>2]|0)+(c[db>>2]<<2)|0;a[je>>0]=a[Db>>0]|0;a[je+1>>0]=a[Db+1>>0]|0;jp(c[ab>>2]|0,d[(c[bb>>2]|0)+(c[db>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[bb>>2]|0)+(c[db>>2]<<2)+3>>0]|0);}while(1){db=(gp(c[ub>>2]|0)|0)==0&1;if(!(db&(c[tb>>2]|0)>>>0<=((c[vb>>2]|0)+-2|0)>>>0))break;db=c[ub>>2]|0;bb=c[wb>>2]|0;ab=c[xb>>2]|0;c[Wa>>2]=c[tb>>2];c[Xa>>2]=db;c[Ya>>2]=bb;c[Za>>2]=ab;c[_a>>2]=ip(c[Xa>>2]|0,c[Za>>2]|0)|0;ab=c[Wa>>2]|0;bb=(c[Ya>>2]|0)+(c[_a>>2]<<2)|0;a[ab>>0]=a[bb>>0]|0;a[ab+1>>0]=a[bb+1>>0]|0;jp(c[Xa>>2]|0,d[(c[Ya>>2]|0)+(c[_a>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[Ya>>2]|0)+(c[_a>>2]<<2)+3>>0]|0);}while(1){Ee=c[tb>>2]|0;if((c[tb>>2]|0)>>>0>((c[vb>>2]|0)+-2|0)>>>0)break;_a=c[ub>>2]|0;Ya=c[wb>>2]|0;Xa=c[xb>>2]|0;c[Ra>>2]=Ee;c[Sa>>2]=_a;c[Ta>>2]=Ya;c[Ua>>2]=Xa;c[Va>>2]=ip(c[Sa>>2]|0,c[Ua>>2]|0)|0;Xa=c[Ra>>2]|0;Ya=(c[Ta>>2]|0)+(c[Va>>2]<<2)|0;a[Xa>>0]=a[Ya>>0]|0;a[Xa+1>>0]=a[Ya+1>>0]|0;jp(c[Sa>>2]|0,d[(c[Ta>>2]|0)+(c[Va>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[Ta>>2]|0)+(c[Va>>2]<<2)+3>>0]|0);}if(Ee>>>0<(c[vb>>2]|0)>>>0){vb=c[ub>>2]|0;ub=c[wb>>2]|0;wb=c[xb>>2]|0;c[Ma>>2]=c[tb>>2];c[Na>>2]=vb;c[Oa>>2]=ub;c[Pa>>2]=wb;c[Qa>>2]=ip(c[Na>>2]|0,c[Pa>>2]|0)|0;a[c[Ma>>2]>>0]=a[(c[Oa>>2]|0)+(c[Qa>>2]<<2)>>0]|0;Ma=c[Na>>2]|0;if((d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+3>>0]|0|0)!=1){if((c[Ma+4>>2]|0)>>>0<32?(jp(c[Na>>2]|0,d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+2>>0]|0),(c[(c[Na>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[Na>>2]|0)+4>>2]=32;}else jp(Ma,d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+1;}tb=c[ke>>2]|0;ke=c[Wd>>2]|0;Qa=c[re>>2]|0;c[Ga>>2]=c[ne>>2];c[Ha>>2]=Zd;c[Ia>>2]=tb;c[Ja>>2]=ke;c[Ka>>2]=Qa;c[La>>2]=c[Ga>>2];while(1){La=(gp(c[Ha>>2]|0)|0)==0&1;if(!(La&(c[Ga>>2]|0)>>>0<((c[Ia>>2]|0)+-3|0)>>>0))break;if(hp()|0){La=c[Ha>>2]|0;Qa=c[Ja>>2]|0;ke=c[Ka>>2]|0;c[Ba>>2]=c[Ga>>2];c[Ca>>2]=La;c[Da>>2]=Qa;c[Ea>>2]=ke;c[Fa>>2]=ip(c[Ca>>2]|0,c[Ea>>2]|0)|0;ke=c[Ba>>2]|0;Qa=(c[Da>>2]|0)+(c[Fa>>2]<<2)|0;a[ke>>0]=a[Qa>>0]|0;a[ke+1>>0]=a[Qa+1>>0]|0;jp(c[Ca>>2]|0,d[(c[Da>>2]|0)+(c[Fa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[Da>>2]|0)+(c[Fa>>2]<<2)+3>>0]|0);}hp()|0;Qa=c[Ha>>2]|0;ke=c[Ja>>2]|0;La=c[Ka>>2]|0;c[wa>>2]=c[Ga>>2];c[xa>>2]=Qa;c[ya>>2]=ke;c[za>>2]=La;c[Aa>>2]=ip(c[xa>>2]|0,c[za>>2]|0)|0;La=c[wa>>2]|0;ke=(c[ya>>2]|0)+(c[Aa>>2]<<2)|0;a[La>>0]=a[ke>>0]|0;a[La+1>>0]=a[ke+1>>0]|0;jp(c[xa>>2]|0,d[(c[ya>>2]|0)+(c[Aa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ya>>2]|0)+(c[Aa>>2]<<2)+3>>0]|0);if(hp()|0){ke=c[Ha>>2]|0;La=c[Ja>>2]|0;Qa=c[Ka>>2]|0;c[ra>>2]=c[Ga>>2];c[sa>>2]=ke;c[ta>>2]=La;c[ua>>2]=Qa;c[va>>2]=ip(c[sa>>2]|0,c[ua>>2]|0)|0;Qa=c[ra>>2]|0;La=(c[ta>>2]|0)+(c[va>>2]<<2)|0;a[Qa>>0]=a[La>>0]|0;a[Qa+1>>0]=a[La+1>>0]|0;jp(c[sa>>2]|0,d[(c[ta>>2]|0)+(c[va>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ta>>2]|0)+(c[va>>2]<<2)+3>>0]|0);}La=c[Ha>>2]|0;Qa=c[Ja>>2]|0;ke=c[Ka>>2]|0;c[ma>>2]=c[Ga>>2];c[na>>2]=La;c[oa>>2]=Qa;c[pa>>2]=ke;c[qa>>2]=ip(c[na>>2]|0,c[pa>>2]|0)|0;ke=c[ma>>2]|0;Qa=(c[oa>>2]|0)+(c[qa>>2]<<2)|0;a[ke>>0]=a[Qa>>0]|0;a[ke+1>>0]=a[Qa+1>>0]|0;jp(c[na>>2]|0,d[(c[oa>>2]|0)+(c[qa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[oa>>2]|0)+(c[qa>>2]<<2)+3>>0]|0);}while(1){qa=(gp(c[Ha>>2]|0)|0)==0&1;if(!(qa&(c[Ga>>2]|0)>>>0<=((c[Ia>>2]|0)+-2|0)>>>0))break;qa=c[Ha>>2]|0;oa=c[Ja>>2]|0;na=c[Ka>>2]|0;c[ha>>2]=c[Ga>>2];c[ia>>2]=qa;c[ja>>2]=oa;c[ka>>2]=na;c[la>>2]=ip(c[ia>>2]|0,c[ka>>2]|0)|0;na=c[ha>>2]|0;oa=(c[ja>>2]|0)+(c[la>>2]<<2)|0;a[na>>0]=a[oa>>0]|0;a[na+1>>0]=a[oa+1>>0]|0;jp(c[ia>>2]|0,d[(c[ja>>2]|0)+(c[la>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ja>>2]|0)+(c[la>>2]<<2)+3>>0]|0);}while(1){Fe=c[Ga>>2]|0;if((c[Ga>>2]|0)>>>0>((c[Ia>>2]|0)+-2|0)>>>0)break;la=c[Ha>>2]|0;ja=c[Ja>>2]|0;ia=c[Ka>>2]|0;c[ca>>2]=Fe;c[da>>2]=la;c[ea>>2]=ja;c[fa>>2]=ia;c[ga>>2]=ip(c[da>>2]|0,c[fa>>2]|0)|0;ia=c[ca>>2]|0;ja=(c[ea>>2]|0)+(c[ga>>2]<<2)|0;a[ia>>0]=a[ja>>0]|0;a[ia+1>>0]=a[ja+1>>0]|0;jp(c[da>>2]|0,d[(c[ea>>2]|0)+(c[ga>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ea>>2]|0)+(c[ga>>2]<<2)+3>>0]|0);}if(Fe>>>0<(c[Ia>>2]|0)>>>0){Ia=c[Ha>>2]|0;Ha=c[Ja>>2]|0;Ja=c[Ka>>2]|0;c[Z>>2]=c[Ga>>2];c[_>>2]=Ia;c[$>>2]=Ha;c[aa>>2]=Ja;c[ba>>2]=ip(c[_>>2]|0,c[aa>>2]|0)|0;a[c[Z>>2]>>0]=a[(c[$>>2]|0)+(c[ba>>2]<<2)>>0]|0;Z=c[_>>2]|0;if((d[(c[$>>2]|0)+(c[ba>>2]<<2)+3>>0]|0|0)!=1){if((c[Z+4>>2]|0)>>>0<32?(jp(c[_>>2]|0,d[(c[$>>2]|0)+(c[ba>>2]<<2)+2>>0]|0),(c[(c[_>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[_>>2]|0)+4>>2]=32;}else jp(Z,d[(c[$>>2]|0)+(c[ba>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+1;}Ga=c[Ud>>2]|0;Ud=c[Wd>>2]|0;Wd=c[re>>2]|0;c[T>>2]=c[oe>>2];c[U>>2]=_d;c[V>>2]=Ga;c[W>>2]=Ud;c[X>>2]=Wd;c[Y>>2]=c[T>>2];while(1){Y=(gp(c[U>>2]|0)|0)==0&1;if(!(Y&(c[T>>2]|0)>>>0<((c[V>>2]|0)+-3|0)>>>0))break;if(hp()|0){Y=c[U>>2]|0;Wd=c[W>>2]|0;Ud=c[X>>2]|0;c[O>>2]=c[T>>2];c[P>>2]=Y;c[Q>>2]=Wd;c[R>>2]=Ud;c[S>>2]=ip(c[P>>2]|0,c[R>>2]|0)|0;Ud=c[O>>2]|0;Wd=(c[Q>>2]|0)+(c[S>>2]<<2)|0;a[Ud>>0]=a[Wd>>0]|0;a[Ud+1>>0]=a[Wd+1>>0]|0;jp(c[P>>2]|0,d[(c[Q>>2]|0)+(c[S>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[Q>>2]|0)+(c[S>>2]<<2)+3>>0]|0);}hp()|0;Wd=c[U>>2]|0;Ud=c[W>>2]|0;Y=c[X>>2]|0;c[J>>2]=c[T>>2];c[K>>2]=Wd;c[L>>2]=Ud;c[M>>2]=Y;c[N>>2]=ip(c[K>>2]|0,c[M>>2]|0)|0;Y=c[J>>2]|0;Ud=(c[L>>2]|0)+(c[N>>2]<<2)|0;a[Y>>0]=a[Ud>>0]|0;a[Y+1>>0]=a[Ud+1>>0]|0;jp(c[K>>2]|0,d[(c[L>>2]|0)+(c[N>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[L>>2]|0)+(c[N>>2]<<2)+3>>0]|0);if(hp()|0){Ud=c[U>>2]|0;Y=c[W>>2]|0;Wd=c[X>>2]|0;c[E>>2]=c[T>>2];c[F>>2]=Ud;c[G>>2]=Y;c[H>>2]=Wd;c[I>>2]=ip(c[F>>2]|0,c[H>>2]|0)|0;Wd=c[E>>2]|0;Y=(c[G>>2]|0)+(c[I>>2]<<2)|0;a[Wd>>0]=a[Y>>0]|0;a[Wd+1>>0]=a[Y+1>>0]|0;jp(c[F>>2]|0,d[(c[G>>2]|0)+(c[I>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[G>>2]|0)+(c[I>>2]<<2)+3>>0]|0);}Y=c[U>>2]|0;Wd=c[W>>2]|0;Ud=c[X>>2]|0;c[z>>2]=c[T>>2];c[A>>2]=Y;c[B>>2]=Wd;c[C>>2]=Ud;c[D>>2]=ip(c[A>>2]|0,c[C>>2]|0)|0;Ud=c[z>>2]|0;Wd=(c[B>>2]|0)+(c[D>>2]<<2)|0;a[Ud>>0]=a[Wd>>0]|0;a[Ud+1>>0]=a[Wd+1>>0]|0;jp(c[A>>2]|0,d[(c[B>>2]|0)+(c[D>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[B>>2]|0)+(c[D>>2]<<2)+3>>0]|0);}while(1){D=(gp(c[U>>2]|0)|0)==0&1;if(!(D&(c[T>>2]|0)>>>0<=((c[V>>2]|0)+-2|0)>>>0))break;D=c[U>>2]|0;B=c[W>>2]|0;A=c[X>>2]|0;c[u>>2]=c[T>>2];c[v>>2]=D;c[w>>2]=B;c[x>>2]=A;c[y>>2]=ip(c[v>>2]|0,c[x>>2]|0)|0;A=c[u>>2]|0;B=(c[w>>2]|0)+(c[y>>2]<<2)|0;a[A>>0]=a[B>>0]|0;a[A+1>>0]=a[B+1>>0]|0;jp(c[v>>2]|0,d[(c[w>>2]|0)+(c[y>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[w>>2]|0)+(c[y>>2]<<2)+3>>0]|0);}while(1){Ge=c[T>>2]|0;if((c[T>>2]|0)>>>0>((c[V>>2]|0)+-2|0)>>>0)break;y=c[U>>2]|0;w=c[W>>2]|0;v=c[X>>2]|0;c[p>>2]=Ge;c[q>>2]=y;c[r>>2]=w;c[s>>2]=v;c[t>>2]=ip(c[q>>2]|0,c[s>>2]|0)|0;v=c[p>>2]|0;w=(c[r>>2]|0)+(c[t>>2]<<2)|0;a[v>>0]=a[w>>0]|0;a[v+1>>0]=a[w+1>>0]|0;jp(c[q>>2]|0,d[(c[r>>2]|0)+(c[t>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[r>>2]|0)+(c[t>>2]<<2)+3>>0]|0);}if(Ge>>>0<(c[V>>2]|0)>>>0){V=c[U>>2]|0;U=c[W>>2]|0;W=c[X>>2]|0;c[j>>2]=c[T>>2];c[k>>2]=V;c[m>>2]=U;c[n>>2]=W;c[o>>2]=ip(c[k>>2]|0,c[n>>2]|0)|0;a[c[j>>2]>>0]=a[(c[m>>2]|0)+(c[o>>2]<<2)>>0]|0;j=c[k>>2]|0;if((d[(c[m>>2]|0)+(c[o>>2]<<2)+3>>0]|0|0)!=1){if((c[j+4>>2]|0)>>>0<32?(jp(c[k>>2]|0,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0),(c[(c[k>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[k>>2]|0)+4>>2]=32;}else jp(j,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+1;}T=lp(Xd)|0;Xd=T&(lp(Yd)|0);Yd=Xd&(lp(Zd)|0);c[we>>2]=Yd&(lp(_d)|0);if(c[we>>2]|0){c[Md>>2]=c[Od>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}else{c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}return 0;}function Lp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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,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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,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,Zc=0,_c=0,$c=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,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,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,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0;i=l;l=l+1216|0;j=i+1208|0;k=i+1204|0;m=i+1200|0;n=i+1196|0;o=i+1192|0;p=i+1188|0;q=i+1184|0;r=i+1180|0;s=i+1176|0;t=i+1172|0;u=i+1168|0;v=i+1164|0;w=i+1160|0;x=i+1156|0;y=i+1152|0;z=i+1148|0;A=i+1144|0;B=i+1140|0;C=i+1136|0;D=i+1132|0;E=i+1128|0;F=i+1124|0;G=i+1120|0;H=i+1116|0;I=i+1112|0;J=i+1108|0;K=i+1104|0;L=i+1100|0;M=i+1096|0;N=i+1092|0;O=i+1088|0;P=i+1084|0;Q=i+1080|0;R=i+1076|0;S=i+1072|0;T=i+1068|0;U=i+1064|0;V=i+1060|0;W=i+1056|0;X=i+1052|0;Y=i+1048|0;Z=i+1044|0;_=i+1040|0;$=i+1036|0;aa=i+1032|0;ba=i+1028|0;ca=i+1024|0;da=i+1020|0;ea=i+1016|0;fa=i+1012|0;ga=i+1008|0;ha=i+1004|0;ia=i+1e3|0;ja=i+996|0;ka=i+992|0;la=i+988|0;ma=i+984|0;na=i+980|0;oa=i+976|0;pa=i+972|0;qa=i+968|0;ra=i+964|0;sa=i+960|0;ta=i+956|0;ua=i+952|0;va=i+948|0;wa=i+944|0;xa=i+940|0;ya=i+936|0;za=i+932|0;Aa=i+928|0;Ba=i+924|0;Ca=i+920|0;Da=i+916|0;Ea=i+912|0;Fa=i+908|0;Ga=i+904|0;Ha=i+900|0;Ia=i+896|0;Ja=i+892|0;Ka=i+888|0;La=i+884|0;Ma=i+880|0;Na=i+876|0;Oa=i+872|0;Pa=i+868|0;Qa=i+864|0;Ra=i+860|0;Sa=i+856|0;Ta=i+852|0;Ua=i+848|0;Va=i+844|0;Wa=i+840|0;Xa=i+836|0;Ya=i+832|0;Za=i+828|0;_a=i+824|0;$a=i+820|0;ab=i+816|0;bb=i+812|0;cb=i+808|0;db=i+804|0;eb=i+800|0;fb=i+796|0;gb=i+792|0;hb=i+788|0;ib=i+784|0;jb=i+780|0;kb=i+776|0;lb=i+772|0;mb=i+768|0;nb=i+764|0;ob=i+760|0;pb=i+756|0;qb=i+752|0;rb=i+748|0;sb=i+744|0;tb=i+740|0;ub=i+736|0;vb=i+732|0;wb=i+728|0;xb=i+724|0;yb=i+720|0;zb=i+716|0;Ab=i+712|0;Bb=i+708|0;Cb=i+704|0;Db=i+700|0;Eb=i+696|0;Fb=i+692|0;Gb=i+688|0;Hb=i+684|0;Ib=i+680|0;Jb=i+676|0;Kb=i+672|0;Lb=i+668|0;Mb=i+664|0;Nb=i+660|0;Ob=i+656|0;Pb=i+652|0;Qb=i+648|0;Rb=i+644|0;Sb=i+640|0;Tb=i+636|0;Ub=i+632|0;Vb=i+628|0;Wb=i+624|0;Xb=i+620|0;Yb=i+616|0;Zb=i+612|0;_b=i+608|0;$b=i+604|0;ac=i+600|0;bc=i+596|0;cc=i+592|0;dc=i+588|0;ec=i+584|0;fc=i+580|0;gc=i+576|0;hc=i+572|0;ic=i+568|0;jc=i+564|0;kc=i+560|0;lc=i+556|0;mc=i+552|0;nc=i+548|0;oc=i+544|0;pc=i+540|0;qc=i+536|0;rc=i+532|0;sc=i+528|0;tc=i+524|0;uc=i+520|0;vc=i+516|0;wc=i+512|0;xc=i+508|0;yc=i+504|0;zc=i+500|0;Ac=i+496|0;Bc=i+492|0;Cc=i+488|0;Dc=i+484|0;Ec=i+480|0;Fc=i+476|0;Gc=i+472|0;Hc=i+468|0;Ic=i+464|0;Jc=i+460|0;Kc=i+456|0;Lc=i+452|0;Mc=i+448|0;Nc=i+444|0;Oc=i+440|0;Pc=i+436|0;Qc=i+432|0;Rc=i+428|0;Sc=i+424|0;Tc=i+420|0;Uc=i+416|0;Vc=i+412|0;Wc=i+408|0;Xc=i+404|0;Yc=i+400|0;Zc=i+396|0;_c=i+392|0;$c=i+388|0;ad=i+384|0;bd=i+380|0;cd=i+376|0;dd=i+372|0;ed=i+368|0;fd=i+364|0;gd=i+360|0;hd=i+356|0;id=i+352|0;jd=i+348|0;kd=i+344|0;ld=i+340|0;md=i+336|0;nd=i+332|0;od=i+328|0;pd=i+324|0;qd=i+320|0;rd=i+316|0;sd=i+312|0;td=i+308|0;ud=i+304|0;vd=i+300|0;wd=i+296|0;xd=i+292|0;yd=i+288|0;zd=i+284|0;Ad=i+280|0;Bd=i+276|0;Cd=i+272|0;Dd=i+268|0;Ed=i+264|0;Fd=i+260|0;Gd=i+256|0;Hd=i+252|0;Id=i+248|0;Jd=i+244|0;Kd=i+240|0;Ld=i+236|0;Md=i+232|0;Nd=i+228|0;Od=i+224|0;Pd=i+220|0;Qd=i+216|0;Rd=i+212|0;Sd=i+208|0;Td=i+204|0;Ud=i+200|0;Vd=i+196|0;Wd=i+192|0;Xd=i+172|0;Yd=i+152|0;Zd=i+132|0;_d=i+112|0;$d=i+108|0;ae=i+104|0;be=i+100|0;ce=i+96|0;de=i+92|0;ee=i+88|0;fe=i+84|0;ge=i+80|0;he=i+76|0;ie=i+72|0;je=i+68|0;ke=i+64|0;le=i+60|0;me=i+56|0;ne=i+52|0;oe=i+48|0;pe=i+44|0;qe=i+1212|0;re=i+40|0;se=i+36|0;te=i+32|0;ue=i+28|0;ve=i+24|0;we=i+20|0;xe=i+16|0;ye=i+12|0;ze=i+8|0;Ae=i+4|0;Be=i;c[xe>>2]=b;c[ye>>2]=e;c[ze>>2]=f;c[Ae>>2]=g;c[Be>>2]=h;h=c[ye>>2]|0;ye=c[ze>>2]|0;ze=c[Ae>>2]|0;Ae=c[Be>>2]|0;c[Nd>>2]=c[xe>>2];c[Od>>2]=h;c[Pd>>2]=ye;c[Qd>>2]=ze;c[Rd>>2]=Ae;if((c[Qd>>2]|0)>>>0<10){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}c[Sd>>2]=c[Pd>>2];c[Td>>2]=c[Nd>>2];c[Ud>>2]=(c[Td>>2]|0)+(c[Od>>2]|0);c[Vd>>2]=(c[Rd>>2]|0)+4;c[Wd>>2]=c[Vd>>2];c[$d>>2]=(yp(c[Sd>>2]|0)|0)&65535;c[ae>>2]=(yp((c[Sd>>2]|0)+2|0)|0)&65535;c[be>>2]=(yp((c[Sd>>2]|0)+4|0)|0)&65535;c[ce>>2]=(c[Qd>>2]|0)-((c[$d>>2]|0)+(c[ae>>2]|0)+(c[be>>2]|0)+6);c[de>>2]=(c[Sd>>2]|0)+6;c[ee>>2]=(c[de>>2]|0)+(c[$d>>2]|0);c[fe>>2]=(c[ee>>2]|0)+(c[ae>>2]|0);c[ge>>2]=(c[fe>>2]|0)+(c[be>>2]|0);c[he>>2]=(((c[Od>>2]|0)+3|0)>>>0)/4|0;c[ie>>2]=(c[Td>>2]|0)+(c[he>>2]|0);c[je>>2]=(c[ie>>2]|0)+(c[he>>2]|0);c[ke>>2]=(c[je>>2]|0)+(c[he>>2]|0);c[le>>2]=c[Td>>2];c[me>>2]=c[ie>>2];c[ne>>2]=c[je>>2];c[oe>>2]=c[ke>>2];bp(qe,c[Rd>>2]|0);c[re>>2]=d[qe+2>>0];if((c[ce>>2]|0)>>>0>(c[Qd>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}c[se>>2]=fp(Xd,c[de>>2]|0,c[$d>>2]|0)|0;if(ap(c[se>>2]|0)|0){c[Md>>2]=c[se>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[te>>2]=fp(Yd,c[ee>>2]|0,c[ae>>2]|0)|0;if(ap(c[te>>2]|0)|0){c[Md>>2]=c[te>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[ue>>2]=fp(Zd,c[fe>>2]|0,c[be>>2]|0)|0;if(ap(c[ue>>2]|0)|0){c[Md>>2]=c[ue>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}c[ve>>2]=fp(_d,c[ge>>2]|0,c[ce>>2]|0)|0;if(ap(c[ve>>2]|0)|0){c[Md>>2]=c[ve>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}ve=gp(Xd)|0;ce=ve|(gp(Yd)|0);ve=ce|(gp(Zd)|0);c[pe>>2]=ve|(gp(_d)|0);while(1){if(!(((c[pe>>2]|0)==0?(c[oe>>2]|0)>>>0<((c[Ud>>2]|0)+-3|0)>>>0:0)|0))break;if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Hd>>2]=c[le>>2];c[Id>>2]=Xd;c[Jd>>2]=ve;c[Kd>>2]=ce;c[Ld>>2]=ip(c[Id>>2]|0,c[Kd>>2]|0)|0;ce=c[Hd>>2]|0;ve=(c[Jd>>2]|0)+(c[Ld>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Id>>2]|0,d[(c[Jd>>2]|0)+(c[Ld>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Jd>>2]|0)+(c[Ld>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Cd>>2]=c[me>>2];c[Dd>>2]=Yd;c[Ed>>2]=ve;c[Fd>>2]=ce;c[Gd>>2]=ip(c[Dd>>2]|0,c[Fd>>2]|0)|0;ce=c[Cd>>2]|0;ve=(c[Ed>>2]|0)+(c[Gd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Dd>>2]|0,d[(c[Ed>>2]|0)+(c[Gd>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[Ed>>2]|0)+(c[Gd>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[xd>>2]=c[ne>>2];c[yd>>2]=Zd;c[zd>>2]=ve;c[Ad>>2]=ce;c[Bd>>2]=ip(c[yd>>2]|0,c[Ad>>2]|0)|0;ce=c[xd>>2]|0;ve=(c[zd>>2]|0)+(c[Bd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[yd>>2]|0,d[(c[zd>>2]|0)+(c[Bd>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[zd>>2]|0)+(c[Bd>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[sd>>2]=c[oe>>2];c[td>>2]=_d;c[ud>>2]=ve;c[vd>>2]=ce;c[wd>>2]=ip(c[td>>2]|0,c[vd>>2]|0)|0;ce=c[sd>>2]|0;ve=(c[ud>>2]|0)+(c[wd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[td>>2]|0,d[(c[ud>>2]|0)+(c[wd>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[ud>>2]|0)+(c[wd>>2]<<2)+3>>0]|0);}hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[nd>>2]=c[le>>2];c[od>>2]=Xd;c[pd>>2]=ve;c[qd>>2]=ce;c[rd>>2]=ip(c[od>>2]|0,c[qd>>2]|0)|0;ce=c[nd>>2]|0;ve=(c[pd>>2]|0)+(c[rd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[od>>2]|0,d[(c[pd>>2]|0)+(c[rd>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[pd>>2]|0)+(c[rd>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[id>>2]=c[me>>2];c[jd>>2]=Yd;c[kd>>2]=ve;c[ld>>2]=ce;c[md>>2]=ip(c[jd>>2]|0,c[ld>>2]|0)|0;ce=c[id>>2]|0;ve=(c[kd>>2]|0)+(c[md>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[jd>>2]|0,d[(c[kd>>2]|0)+(c[md>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[kd>>2]|0)+(c[md>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[dd>>2]=c[ne>>2];c[ed>>2]=Zd;c[fd>>2]=ve;c[gd>>2]=ce;c[hd>>2]=ip(c[ed>>2]|0,c[gd>>2]|0)|0;ce=c[dd>>2]|0;ve=(c[fd>>2]|0)+(c[hd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[ed>>2]|0,d[(c[fd>>2]|0)+(c[hd>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[fd>>2]|0)+(c[hd>>2]<<2)+3>>0]|0);hp()|0;ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[_c>>2]=c[oe>>2];c[$c>>2]=_d;c[ad>>2]=ve;c[bd>>2]=ce;c[cd>>2]=ip(c[$c>>2]|0,c[bd>>2]|0)|0;ce=c[_c>>2]|0;ve=(c[ad>>2]|0)+(c[cd>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[$c>>2]|0,d[(c[ad>>2]|0)+(c[cd>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[ad>>2]|0)+(c[cd>>2]<<2)+3>>0]|0);if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Vc>>2]=c[le>>2];c[Wc>>2]=Xd;c[Xc>>2]=ve;c[Yc>>2]=ce;c[Zc>>2]=ip(c[Wc>>2]|0,c[Yc>>2]|0)|0;ce=c[Vc>>2]|0;ve=(c[Xc>>2]|0)+(c[Zc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Wc>>2]|0,d[(c[Xc>>2]|0)+(c[Zc>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Xc>>2]|0)+(c[Zc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Qc>>2]=c[me>>2];c[Rc>>2]=Yd;c[Sc>>2]=ve;c[Tc>>2]=ce;c[Uc>>2]=ip(c[Rc>>2]|0,c[Tc>>2]|0)|0;ce=c[Qc>>2]|0;ve=(c[Sc>>2]|0)+(c[Uc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Rc>>2]|0,d[(c[Sc>>2]|0)+(c[Uc>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[Sc>>2]|0)+(c[Uc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Lc>>2]=c[ne>>2];c[Mc>>2]=Zd;c[Nc>>2]=ve;c[Oc>>2]=ce;c[Pc>>2]=ip(c[Mc>>2]|0,c[Oc>>2]|0)|0;ce=c[Lc>>2]|0;ve=(c[Nc>>2]|0)+(c[Pc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Mc>>2]|0,d[(c[Nc>>2]|0)+(c[Pc>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[Nc>>2]|0)+(c[Pc>>2]<<2)+3>>0]|0);}if(hp()|0){ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Gc>>2]=c[oe>>2];c[Hc>>2]=_d;c[Ic>>2]=ve;c[Jc>>2]=ce;c[Kc>>2]=ip(c[Hc>>2]|0,c[Jc>>2]|0)|0;ce=c[Gc>>2]|0;ve=(c[Ic>>2]|0)+(c[Kc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Hc>>2]|0,d[(c[Ic>>2]|0)+(c[Kc>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[Ic>>2]|0)+(c[Kc>>2]<<2)+3>>0]|0);}ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[Bc>>2]=c[le>>2];c[Cc>>2]=Xd;c[Dc>>2]=ve;c[Ec>>2]=ce;c[Fc>>2]=ip(c[Cc>>2]|0,c[Ec>>2]|0)|0;ce=c[Bc>>2]|0;ve=(c[Dc>>2]|0)+(c[Fc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[Cc>>2]|0,d[(c[Dc>>2]|0)+(c[Fc>>2]<<2)+2>>0]|0);c[le>>2]=(c[le>>2]|0)+(d[(c[Dc>>2]|0)+(c[Fc>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[wc>>2]=c[me>>2];c[xc>>2]=Yd;c[yc>>2]=ve;c[zc>>2]=ce;c[Ac>>2]=ip(c[xc>>2]|0,c[zc>>2]|0)|0;ce=c[wc>>2]|0;ve=(c[yc>>2]|0)+(c[Ac>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[xc>>2]|0,d[(c[yc>>2]|0)+(c[Ac>>2]<<2)+2>>0]|0);c[me>>2]=(c[me>>2]|0)+(d[(c[yc>>2]|0)+(c[Ac>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[rc>>2]=c[ne>>2];c[sc>>2]=Zd;c[tc>>2]=ve;c[uc>>2]=ce;c[vc>>2]=ip(c[sc>>2]|0,c[uc>>2]|0)|0;ce=c[rc>>2]|0;ve=(c[tc>>2]|0)+(c[vc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[sc>>2]|0,d[(c[tc>>2]|0)+(c[vc>>2]<<2)+2>>0]|0);c[ne>>2]=(c[ne>>2]|0)+(d[(c[tc>>2]|0)+(c[vc>>2]<<2)+3>>0]|0);ve=c[Wd>>2]|0;ce=c[re>>2]|0;c[mc>>2]=c[oe>>2];c[nc>>2]=_d;c[oc>>2]=ve;c[pc>>2]=ce;c[qc>>2]=ip(c[nc>>2]|0,c[pc>>2]|0)|0;ce=c[mc>>2]|0;ve=(c[oc>>2]|0)+(c[qc>>2]<<2)|0;a[ce>>0]=a[ve>>0]|0;a[ce+1>>0]=a[ve+1>>0]|0;jp(c[nc>>2]|0,d[(c[oc>>2]|0)+(c[qc>>2]<<2)+2>>0]|0);c[oe>>2]=(c[oe>>2]|0)+(d[(c[oc>>2]|0)+(c[qc>>2]<<2)+3>>0]|0);ve=gp(Xd)|0;ce=ve|(gp(Yd)|0);ve=ce|(gp(Zd)|0);c[pe>>2]=ve|(gp(_d)|0);}if((c[le>>2]|0)>>>0>(c[ie>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}if((c[me>>2]|0)>>>0>(c[je>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}if((c[ne>>2]|0)>>>0>(c[ke>>2]|0)>>>0){c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}pe=c[ie>>2]|0;ie=c[Wd>>2]|0;qc=c[re>>2]|0;c[gc>>2]=c[le>>2];c[hc>>2]=Xd;c[ic>>2]=pe;c[jc>>2]=ie;c[kc>>2]=qc;c[lc>>2]=c[gc>>2];while(1){lc=(gp(c[hc>>2]|0)|0)==0&1;if(!(lc&(c[gc>>2]|0)>>>0<((c[ic>>2]|0)+-3|0)>>>0))break;if(hp()|0){lc=c[hc>>2]|0;qc=c[jc>>2]|0;ie=c[kc>>2]|0;c[bc>>2]=c[gc>>2];c[cc>>2]=lc;c[dc>>2]=qc;c[ec>>2]=ie;c[fc>>2]=ip(c[cc>>2]|0,c[ec>>2]|0)|0;ie=c[bc>>2]|0;qc=(c[dc>>2]|0)+(c[fc>>2]<<2)|0;a[ie>>0]=a[qc>>0]|0;a[ie+1>>0]=a[qc+1>>0]|0;jp(c[cc>>2]|0,d[(c[dc>>2]|0)+(c[fc>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[dc>>2]|0)+(c[fc>>2]<<2)+3>>0]|0);}hp()|0;qc=c[hc>>2]|0;ie=c[jc>>2]|0;lc=c[kc>>2]|0;c[Yb>>2]=c[gc>>2];c[Zb>>2]=qc;c[_b>>2]=ie;c[$b>>2]=lc;c[ac>>2]=ip(c[Zb>>2]|0,c[$b>>2]|0)|0;lc=c[Yb>>2]|0;ie=(c[_b>>2]|0)+(c[ac>>2]<<2)|0;a[lc>>0]=a[ie>>0]|0;a[lc+1>>0]=a[ie+1>>0]|0;jp(c[Zb>>2]|0,d[(c[_b>>2]|0)+(c[ac>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[_b>>2]|0)+(c[ac>>2]<<2)+3>>0]|0);if(hp()|0){ie=c[hc>>2]|0;lc=c[jc>>2]|0;qc=c[kc>>2]|0;c[Tb>>2]=c[gc>>2];c[Ub>>2]=ie;c[Vb>>2]=lc;c[Wb>>2]=qc;c[Xb>>2]=ip(c[Ub>>2]|0,c[Wb>>2]|0)|0;qc=c[Tb>>2]|0;lc=(c[Vb>>2]|0)+(c[Xb>>2]<<2)|0;a[qc>>0]=a[lc>>0]|0;a[qc+1>>0]=a[lc+1>>0]|0;jp(c[Ub>>2]|0,d[(c[Vb>>2]|0)+(c[Xb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Vb>>2]|0)+(c[Xb>>2]<<2)+3>>0]|0);}lc=c[hc>>2]|0;qc=c[jc>>2]|0;ie=c[kc>>2]|0;c[Ob>>2]=c[gc>>2];c[Pb>>2]=lc;c[Qb>>2]=qc;c[Rb>>2]=ie;c[Sb>>2]=ip(c[Pb>>2]|0,c[Rb>>2]|0)|0;ie=c[Ob>>2]|0;qc=(c[Qb>>2]|0)+(c[Sb>>2]<<2)|0;a[ie>>0]=a[qc>>0]|0;a[ie+1>>0]=a[qc+1>>0]|0;jp(c[Pb>>2]|0,d[(c[Qb>>2]|0)+(c[Sb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Qb>>2]|0)+(c[Sb>>2]<<2)+3>>0]|0);}while(1){Sb=(gp(c[hc>>2]|0)|0)==0&1;if(!(Sb&(c[gc>>2]|0)>>>0<=((c[ic>>2]|0)+-2|0)>>>0))break;Sb=c[hc>>2]|0;Qb=c[jc>>2]|0;Pb=c[kc>>2]|0;c[Jb>>2]=c[gc>>2];c[Kb>>2]=Sb;c[Lb>>2]=Qb;c[Mb>>2]=Pb;c[Nb>>2]=ip(c[Kb>>2]|0,c[Mb>>2]|0)|0;Pb=c[Jb>>2]|0;Qb=(c[Lb>>2]|0)+(c[Nb>>2]<<2)|0;a[Pb>>0]=a[Qb>>0]|0;a[Pb+1>>0]=a[Qb+1>>0]|0;jp(c[Kb>>2]|0,d[(c[Lb>>2]|0)+(c[Nb>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Lb>>2]|0)+(c[Nb>>2]<<2)+3>>0]|0);}while(1){De=c[gc>>2]|0;if((c[gc>>2]|0)>>>0>((c[ic>>2]|0)+-2|0)>>>0)break;Nb=c[hc>>2]|0;Lb=c[jc>>2]|0;Kb=c[kc>>2]|0;c[Eb>>2]=De;c[Fb>>2]=Nb;c[Gb>>2]=Lb;c[Hb>>2]=Kb;c[Ib>>2]=ip(c[Fb>>2]|0,c[Hb>>2]|0)|0;Kb=c[Eb>>2]|0;Lb=(c[Gb>>2]|0)+(c[Ib>>2]<<2)|0;a[Kb>>0]=a[Lb>>0]|0;a[Kb+1>>0]=a[Lb+1>>0]|0;jp(c[Fb>>2]|0,d[(c[Gb>>2]|0)+(c[Ib>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+(d[(c[Gb>>2]|0)+(c[Ib>>2]<<2)+3>>0]|0);}if(De>>>0<(c[ic>>2]|0)>>>0){ic=c[hc>>2]|0;hc=c[jc>>2]|0;jc=c[kc>>2]|0;c[zb>>2]=c[gc>>2];c[Ab>>2]=ic;c[Bb>>2]=hc;c[Cb>>2]=jc;c[Db>>2]=ip(c[Ab>>2]|0,c[Cb>>2]|0)|0;a[c[zb>>2]>>0]=a[(c[Bb>>2]|0)+(c[Db>>2]<<2)>>0]|0;zb=c[Ab>>2]|0;if((d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+3>>0]|0|0)!=1){if((c[zb+4>>2]|0)>>>0<32?(jp(c[Ab>>2]|0,d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+2>>0]|0),(c[(c[Ab>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[Ab>>2]|0)+4>>2]=32;}else jp(zb,d[(c[Bb>>2]|0)+(c[Db>>2]<<2)+2>>0]|0);c[gc>>2]=(c[gc>>2]|0)+1;}gc=c[je>>2]|0;je=c[Wd>>2]|0;Db=c[re>>2]|0;c[tb>>2]=c[me>>2];c[ub>>2]=Yd;c[vb>>2]=gc;c[wb>>2]=je;c[xb>>2]=Db;c[yb>>2]=c[tb>>2];while(1){yb=(gp(c[ub>>2]|0)|0)==0&1;if(!(yb&(c[tb>>2]|0)>>>0<((c[vb>>2]|0)+-3|0)>>>0))break;if(hp()|0){yb=c[ub>>2]|0;Db=c[wb>>2]|0;je=c[xb>>2]|0;c[ob>>2]=c[tb>>2];c[pb>>2]=yb;c[qb>>2]=Db;c[rb>>2]=je;c[sb>>2]=ip(c[pb>>2]|0,c[rb>>2]|0)|0;je=c[ob>>2]|0;Db=(c[qb>>2]|0)+(c[sb>>2]<<2)|0;a[je>>0]=a[Db>>0]|0;a[je+1>>0]=a[Db+1>>0]|0;jp(c[pb>>2]|0,d[(c[qb>>2]|0)+(c[sb>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[qb>>2]|0)+(c[sb>>2]<<2)+3>>0]|0);}hp()|0;Db=c[ub>>2]|0;je=c[wb>>2]|0;yb=c[xb>>2]|0;c[jb>>2]=c[tb>>2];c[kb>>2]=Db;c[lb>>2]=je;c[mb>>2]=yb;c[nb>>2]=ip(c[kb>>2]|0,c[mb>>2]|0)|0;yb=c[jb>>2]|0;je=(c[lb>>2]|0)+(c[nb>>2]<<2)|0;a[yb>>0]=a[je>>0]|0;a[yb+1>>0]=a[je+1>>0]|0;jp(c[kb>>2]|0,d[(c[lb>>2]|0)+(c[nb>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[lb>>2]|0)+(c[nb>>2]<<2)+3>>0]|0);if(hp()|0){je=c[ub>>2]|0;yb=c[wb>>2]|0;Db=c[xb>>2]|0;c[eb>>2]=c[tb>>2];c[fb>>2]=je;c[gb>>2]=yb;c[hb>>2]=Db;c[ib>>2]=ip(c[fb>>2]|0,c[hb>>2]|0)|0;Db=c[eb>>2]|0;yb=(c[gb>>2]|0)+(c[ib>>2]<<2)|0;a[Db>>0]=a[yb>>0]|0;a[Db+1>>0]=a[yb+1>>0]|0;jp(c[fb>>2]|0,d[(c[gb>>2]|0)+(c[ib>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[gb>>2]|0)+(c[ib>>2]<<2)+3>>0]|0);}yb=c[ub>>2]|0;Db=c[wb>>2]|0;je=c[xb>>2]|0;c[$a>>2]=c[tb>>2];c[ab>>2]=yb;c[bb>>2]=Db;c[cb>>2]=je;c[db>>2]=ip(c[ab>>2]|0,c[cb>>2]|0)|0;je=c[$a>>2]|0;Db=(c[bb>>2]|0)+(c[db>>2]<<2)|0;a[je>>0]=a[Db>>0]|0;a[je+1>>0]=a[Db+1>>0]|0;jp(c[ab>>2]|0,d[(c[bb>>2]|0)+(c[db>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[bb>>2]|0)+(c[db>>2]<<2)+3>>0]|0);}while(1){db=(gp(c[ub>>2]|0)|0)==0&1;if(!(db&(c[tb>>2]|0)>>>0<=((c[vb>>2]|0)+-2|0)>>>0))break;db=c[ub>>2]|0;bb=c[wb>>2]|0;ab=c[xb>>2]|0;c[Wa>>2]=c[tb>>2];c[Xa>>2]=db;c[Ya>>2]=bb;c[Za>>2]=ab;c[_a>>2]=ip(c[Xa>>2]|0,c[Za>>2]|0)|0;ab=c[Wa>>2]|0;bb=(c[Ya>>2]|0)+(c[_a>>2]<<2)|0;a[ab>>0]=a[bb>>0]|0;a[ab+1>>0]=a[bb+1>>0]|0;jp(c[Xa>>2]|0,d[(c[Ya>>2]|0)+(c[_a>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[Ya>>2]|0)+(c[_a>>2]<<2)+3>>0]|0);}while(1){Ee=c[tb>>2]|0;if((c[tb>>2]|0)>>>0>((c[vb>>2]|0)+-2|0)>>>0)break;_a=c[ub>>2]|0;Ya=c[wb>>2]|0;Xa=c[xb>>2]|0;c[Ra>>2]=Ee;c[Sa>>2]=_a;c[Ta>>2]=Ya;c[Ua>>2]=Xa;c[Va>>2]=ip(c[Sa>>2]|0,c[Ua>>2]|0)|0;Xa=c[Ra>>2]|0;Ya=(c[Ta>>2]|0)+(c[Va>>2]<<2)|0;a[Xa>>0]=a[Ya>>0]|0;a[Xa+1>>0]=a[Ya+1>>0]|0;jp(c[Sa>>2]|0,d[(c[Ta>>2]|0)+(c[Va>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+(d[(c[Ta>>2]|0)+(c[Va>>2]<<2)+3>>0]|0);}if(Ee>>>0<(c[vb>>2]|0)>>>0){vb=c[ub>>2]|0;ub=c[wb>>2]|0;wb=c[xb>>2]|0;c[Ma>>2]=c[tb>>2];c[Na>>2]=vb;c[Oa>>2]=ub;c[Pa>>2]=wb;c[Qa>>2]=ip(c[Na>>2]|0,c[Pa>>2]|0)|0;a[c[Ma>>2]>>0]=a[(c[Oa>>2]|0)+(c[Qa>>2]<<2)>>0]|0;Ma=c[Na>>2]|0;if((d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+3>>0]|0|0)!=1){if((c[Ma+4>>2]|0)>>>0<32?(jp(c[Na>>2]|0,d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+2>>0]|0),(c[(c[Na>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[Na>>2]|0)+4>>2]=32;}else jp(Ma,d[(c[Oa>>2]|0)+(c[Qa>>2]<<2)+2>>0]|0);c[tb>>2]=(c[tb>>2]|0)+1;}tb=c[ke>>2]|0;ke=c[Wd>>2]|0;Qa=c[re>>2]|0;c[Ga>>2]=c[ne>>2];c[Ha>>2]=Zd;c[Ia>>2]=tb;c[Ja>>2]=ke;c[Ka>>2]=Qa;c[La>>2]=c[Ga>>2];while(1){La=(gp(c[Ha>>2]|0)|0)==0&1;if(!(La&(c[Ga>>2]|0)>>>0<((c[Ia>>2]|0)+-3|0)>>>0))break;if(hp()|0){La=c[Ha>>2]|0;Qa=c[Ja>>2]|0;ke=c[Ka>>2]|0;c[Ba>>2]=c[Ga>>2];c[Ca>>2]=La;c[Da>>2]=Qa;c[Ea>>2]=ke;c[Fa>>2]=ip(c[Ca>>2]|0,c[Ea>>2]|0)|0;ke=c[Ba>>2]|0;Qa=(c[Da>>2]|0)+(c[Fa>>2]<<2)|0;a[ke>>0]=a[Qa>>0]|0;a[ke+1>>0]=a[Qa+1>>0]|0;jp(c[Ca>>2]|0,d[(c[Da>>2]|0)+(c[Fa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[Da>>2]|0)+(c[Fa>>2]<<2)+3>>0]|0);}hp()|0;Qa=c[Ha>>2]|0;ke=c[Ja>>2]|0;La=c[Ka>>2]|0;c[wa>>2]=c[Ga>>2];c[xa>>2]=Qa;c[ya>>2]=ke;c[za>>2]=La;c[Aa>>2]=ip(c[xa>>2]|0,c[za>>2]|0)|0;La=c[wa>>2]|0;ke=(c[ya>>2]|0)+(c[Aa>>2]<<2)|0;a[La>>0]=a[ke>>0]|0;a[La+1>>0]=a[ke+1>>0]|0;jp(c[xa>>2]|0,d[(c[ya>>2]|0)+(c[Aa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ya>>2]|0)+(c[Aa>>2]<<2)+3>>0]|0);if(hp()|0){ke=c[Ha>>2]|0;La=c[Ja>>2]|0;Qa=c[Ka>>2]|0;c[ra>>2]=c[Ga>>2];c[sa>>2]=ke;c[ta>>2]=La;c[ua>>2]=Qa;c[va>>2]=ip(c[sa>>2]|0,c[ua>>2]|0)|0;Qa=c[ra>>2]|0;La=(c[ta>>2]|0)+(c[va>>2]<<2)|0;a[Qa>>0]=a[La>>0]|0;a[Qa+1>>0]=a[La+1>>0]|0;jp(c[sa>>2]|0,d[(c[ta>>2]|0)+(c[va>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ta>>2]|0)+(c[va>>2]<<2)+3>>0]|0);}La=c[Ha>>2]|0;Qa=c[Ja>>2]|0;ke=c[Ka>>2]|0;c[ma>>2]=c[Ga>>2];c[na>>2]=La;c[oa>>2]=Qa;c[pa>>2]=ke;c[qa>>2]=ip(c[na>>2]|0,c[pa>>2]|0)|0;ke=c[ma>>2]|0;Qa=(c[oa>>2]|0)+(c[qa>>2]<<2)|0;a[ke>>0]=a[Qa>>0]|0;a[ke+1>>0]=a[Qa+1>>0]|0;jp(c[na>>2]|0,d[(c[oa>>2]|0)+(c[qa>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[oa>>2]|0)+(c[qa>>2]<<2)+3>>0]|0);}while(1){qa=(gp(c[Ha>>2]|0)|0)==0&1;if(!(qa&(c[Ga>>2]|0)>>>0<=((c[Ia>>2]|0)+-2|0)>>>0))break;qa=c[Ha>>2]|0;oa=c[Ja>>2]|0;na=c[Ka>>2]|0;c[ha>>2]=c[Ga>>2];c[ia>>2]=qa;c[ja>>2]=oa;c[ka>>2]=na;c[la>>2]=ip(c[ia>>2]|0,c[ka>>2]|0)|0;na=c[ha>>2]|0;oa=(c[ja>>2]|0)+(c[la>>2]<<2)|0;a[na>>0]=a[oa>>0]|0;a[na+1>>0]=a[oa+1>>0]|0;jp(c[ia>>2]|0,d[(c[ja>>2]|0)+(c[la>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ja>>2]|0)+(c[la>>2]<<2)+3>>0]|0);}while(1){Fe=c[Ga>>2]|0;if((c[Ga>>2]|0)>>>0>((c[Ia>>2]|0)+-2|0)>>>0)break;la=c[Ha>>2]|0;ja=c[Ja>>2]|0;ia=c[Ka>>2]|0;c[ca>>2]=Fe;c[da>>2]=la;c[ea>>2]=ja;c[fa>>2]=ia;c[ga>>2]=ip(c[da>>2]|0,c[fa>>2]|0)|0;ia=c[ca>>2]|0;ja=(c[ea>>2]|0)+(c[ga>>2]<<2)|0;a[ia>>0]=a[ja>>0]|0;a[ia+1>>0]=a[ja+1>>0]|0;jp(c[da>>2]|0,d[(c[ea>>2]|0)+(c[ga>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+(d[(c[ea>>2]|0)+(c[ga>>2]<<2)+3>>0]|0);}if(Fe>>>0<(c[Ia>>2]|0)>>>0){Ia=c[Ha>>2]|0;Ha=c[Ja>>2]|0;Ja=c[Ka>>2]|0;c[Z>>2]=c[Ga>>2];c[_>>2]=Ia;c[$>>2]=Ha;c[aa>>2]=Ja;c[ba>>2]=ip(c[_>>2]|0,c[aa>>2]|0)|0;a[c[Z>>2]>>0]=a[(c[$>>2]|0)+(c[ba>>2]<<2)>>0]|0;Z=c[_>>2]|0;if((d[(c[$>>2]|0)+(c[ba>>2]<<2)+3>>0]|0|0)!=1){if((c[Z+4>>2]|0)>>>0<32?(jp(c[_>>2]|0,d[(c[$>>2]|0)+(c[ba>>2]<<2)+2>>0]|0),(c[(c[_>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[_>>2]|0)+4>>2]=32;}else jp(Z,d[(c[$>>2]|0)+(c[ba>>2]<<2)+2>>0]|0);c[Ga>>2]=(c[Ga>>2]|0)+1;}Ga=c[Ud>>2]|0;Ud=c[Wd>>2]|0;Wd=c[re>>2]|0;c[T>>2]=c[oe>>2];c[U>>2]=_d;c[V>>2]=Ga;c[W>>2]=Ud;c[X>>2]=Wd;c[Y>>2]=c[T>>2];while(1){Y=(gp(c[U>>2]|0)|0)==0&1;if(!(Y&(c[T>>2]|0)>>>0<((c[V>>2]|0)+-3|0)>>>0))break;if(hp()|0){Y=c[U>>2]|0;Wd=c[W>>2]|0;Ud=c[X>>2]|0;c[O>>2]=c[T>>2];c[P>>2]=Y;c[Q>>2]=Wd;c[R>>2]=Ud;c[S>>2]=ip(c[P>>2]|0,c[R>>2]|0)|0;Ud=c[O>>2]|0;Wd=(c[Q>>2]|0)+(c[S>>2]<<2)|0;a[Ud>>0]=a[Wd>>0]|0;a[Ud+1>>0]=a[Wd+1>>0]|0;jp(c[P>>2]|0,d[(c[Q>>2]|0)+(c[S>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[Q>>2]|0)+(c[S>>2]<<2)+3>>0]|0);}hp()|0;Wd=c[U>>2]|0;Ud=c[W>>2]|0;Y=c[X>>2]|0;c[J>>2]=c[T>>2];c[K>>2]=Wd;c[L>>2]=Ud;c[M>>2]=Y;c[N>>2]=ip(c[K>>2]|0,c[M>>2]|0)|0;Y=c[J>>2]|0;Ud=(c[L>>2]|0)+(c[N>>2]<<2)|0;a[Y>>0]=a[Ud>>0]|0;a[Y+1>>0]=a[Ud+1>>0]|0;jp(c[K>>2]|0,d[(c[L>>2]|0)+(c[N>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[L>>2]|0)+(c[N>>2]<<2)+3>>0]|0);if(hp()|0){Ud=c[U>>2]|0;Y=c[W>>2]|0;Wd=c[X>>2]|0;c[E>>2]=c[T>>2];c[F>>2]=Ud;c[G>>2]=Y;c[H>>2]=Wd;c[I>>2]=ip(c[F>>2]|0,c[H>>2]|0)|0;Wd=c[E>>2]|0;Y=(c[G>>2]|0)+(c[I>>2]<<2)|0;a[Wd>>0]=a[Y>>0]|0;a[Wd+1>>0]=a[Y+1>>0]|0;jp(c[F>>2]|0,d[(c[G>>2]|0)+(c[I>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[G>>2]|0)+(c[I>>2]<<2)+3>>0]|0);}Y=c[U>>2]|0;Wd=c[W>>2]|0;Ud=c[X>>2]|0;c[z>>2]=c[T>>2];c[A>>2]=Y;c[B>>2]=Wd;c[C>>2]=Ud;c[D>>2]=ip(c[A>>2]|0,c[C>>2]|0)|0;Ud=c[z>>2]|0;Wd=(c[B>>2]|0)+(c[D>>2]<<2)|0;a[Ud>>0]=a[Wd>>0]|0;a[Ud+1>>0]=a[Wd+1>>0]|0;jp(c[A>>2]|0,d[(c[B>>2]|0)+(c[D>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[B>>2]|0)+(c[D>>2]<<2)+3>>0]|0);}while(1){D=(gp(c[U>>2]|0)|0)==0&1;if(!(D&(c[T>>2]|0)>>>0<=((c[V>>2]|0)+-2|0)>>>0))break;D=c[U>>2]|0;B=c[W>>2]|0;A=c[X>>2]|0;c[u>>2]=c[T>>2];c[v>>2]=D;c[w>>2]=B;c[x>>2]=A;c[y>>2]=ip(c[v>>2]|0,c[x>>2]|0)|0;A=c[u>>2]|0;B=(c[w>>2]|0)+(c[y>>2]<<2)|0;a[A>>0]=a[B>>0]|0;a[A+1>>0]=a[B+1>>0]|0;jp(c[v>>2]|0,d[(c[w>>2]|0)+(c[y>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[w>>2]|0)+(c[y>>2]<<2)+3>>0]|0);}while(1){Ge=c[T>>2]|0;if((c[T>>2]|0)>>>0>((c[V>>2]|0)+-2|0)>>>0)break;y=c[U>>2]|0;w=c[W>>2]|0;v=c[X>>2]|0;c[p>>2]=Ge;c[q>>2]=y;c[r>>2]=w;c[s>>2]=v;c[t>>2]=ip(c[q>>2]|0,c[s>>2]|0)|0;v=c[p>>2]|0;w=(c[r>>2]|0)+(c[t>>2]<<2)|0;a[v>>0]=a[w>>0]|0;a[v+1>>0]=a[w+1>>0]|0;jp(c[q>>2]|0,d[(c[r>>2]|0)+(c[t>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+(d[(c[r>>2]|0)+(c[t>>2]<<2)+3>>0]|0);}if(Ge>>>0<(c[V>>2]|0)>>>0){V=c[U>>2]|0;U=c[W>>2]|0;W=c[X>>2]|0;c[j>>2]=c[T>>2];c[k>>2]=V;c[m>>2]=U;c[n>>2]=W;c[o>>2]=ip(c[k>>2]|0,c[n>>2]|0)|0;a[c[j>>2]>>0]=a[(c[m>>2]|0)+(c[o>>2]<<2)>>0]|0;j=c[k>>2]|0;if((d[(c[m>>2]|0)+(c[o>>2]<<2)+3>>0]|0|0)!=1){if((c[j+4>>2]|0)>>>0<32?(jp(c[k>>2]|0,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0),(c[(c[k>>2]|0)+4>>2]|0)>>>0>32):0)c[(c[k>>2]|0)+4>>2]=32;}else jp(j,d[(c[m>>2]|0)+(c[o>>2]<<2)+2>>0]|0);c[T>>2]=(c[T>>2]|0)+1;}T=lp(Xd)|0;Xd=T&(lp(Yd)|0);Yd=Xd&(lp(Zd)|0);c[we>>2]=Yd&(lp(_d)|0);if(c[we>>2]|0){c[Md>>2]=c[Od>>2];Ce=c[Md>>2]|0;l=i;return Ce|0;}else{c[Md>>2]=-20;Ce=c[Md>>2]|0;l=i;return Ce|0;}return 0;}function Mp(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=c[p>>2];c[v>>2]=Bp(c[m>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;s=(ap(c[v>>2]|0)|0)!=0;r=c[v>>2]|0;if(s){c[k>>2]=r;w=c[k>>2]|0;l=j;return w|0;}if(r>>>0>=(c[q>>2]|0)>>>0){c[k>>2]=-72;w=c[k>>2]|0;l=j;return w|0;}else{c[u>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[v>>2]|0);c[k>>2]=Jp(c[n>>2]|0,c[o>>2]|0,c[u>>2]|0,c[q>>2]|0,c[m>>2]|0,c[t>>2]|0)|0;w=c[k>>2]|0;l=j;return w|0;}return 0;}function Np(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;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)>>>0>=(c[e>>2]|0)>>>0)k=15;else k=(c[f>>2]<<4>>>0)/((c[e>>2]|0)>>>0)|0;c[g>>2]=k;c[h>>2]=(c[e>>2]|0)>>>8;c[i>>2]=(c[7008+((c[g>>2]|0)*24|0)>>2]|0)+(N(c[7008+((c[g>>2]|0)*24|0)+4>>2]|0,c[h>>2]|0)|0);c[j>>2]=(c[7008+((c[g>>2]|0)*24|0)+8>>2]|0)+(N(c[7008+((c[g>>2]|0)*24|0)+8+4>>2]|0,c[h>>2]|0)|0);c[j>>2]=(c[j>>2]|0)+((c[j>>2]|0)>>>3);l=d;return(c[j>>2]|0)>>>0<(c[i>>2]|0)>>>0|0;}function Op(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+32|0;j=i+20|0;k=i+16|0;m=i+12|0;n=i+8|0;o=i+4|0;p=i;q=i+24|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;bp(q,c[o>>2]|0);h=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;if(d[q+1>>0]|0|0){r=Gp(h,j,k,m,n,o)|0;l=i;return r|0;}else{r=cp(h,j,k,m,n,o)|0;l=i;return r|0;}return 0;}function Pp(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+40|0;m=j+36|0;n=j+32|0;o=j+28|0;p=j+24|0;q=j+20|0;r=j+16|0;s=j+12|0;t=j+8|0;u=j+4|0;v=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=c[p>>2];c[v>>2]=$o(c[m>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;s=(ap(c[v>>2]|0)|0)!=0;r=c[v>>2]|0;if(s){c[k>>2]=r;w=c[k>>2]|0;l=j;return w|0;}if(r>>>0>=(c[q>>2]|0)>>>0){c[k>>2]=-72;w=c[k>>2]|0;l=j;return w|0;}else{c[u>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[v>>2]|0);c[k>>2]=cp(c[n>>2]|0,c[o>>2]|0,c[u>>2]|0,c[q>>2]|0,c[m>>2]|0,c[t>>2]|0)|0;w=c[k>>2]|0;l=j;return w|0;}return 0;}function Qp(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+32|0;j=i+20|0;k=i+16|0;m=i+12|0;n=i+8|0;o=i+4|0;p=i;q=i+24|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;bp(q,c[o>>2]|0);h=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;if(d[q+1>>0]|0|0){r=Jp(h,j,k,m,n,o)|0;l=i;return r|0;}else{r=vp(h,j,k,m,n,o)|0;l=i;return r|0;}return 0;}function Rp(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+36|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j+8|0;t=j+4|0;u=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;if(!(c[o>>2]|0)){c[k>>2]=-70;v=c[k>>2]|0;l=j;return v|0;}if(!(c[q>>2]|0)){c[k>>2]=-20;v=c[k>>2]|0;l=j;return v|0;}c[u>>2]=Np(c[o>>2]|0,c[q>>2]|0)|0;i=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;r=c[s>>2]|0;s=c[t>>2]|0;if(c[u>>2]|0)w=Mp(i,m,n,o,p,q,r,s)|0;else w=Ap(i,m,n,o,p,q,r,s)|0;c[k>>2]=w;v=c[k>>2]|0;l=j;return v|0;}function Sp(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+48|0;d=b+24|0;e=b+16|0;f=b;c[e>>2]=a;c[(c[e>>2]|0)+28912>>2]=0;c[(c[e>>2]|0)+28940>>2]=0;c[(c[e>>2]|0)+28972>>2]=134217729;c[(c[e>>2]|0)+28952>>2]=0;c[(c[e>>2]|0)+28948>>2]=0;c[(c[e>>2]|0)+28960>>2]=0;c[(c[e>>2]|0)+28964>>2]=0;c[(c[e>>2]|0)+28980>>2]=0;c[(c[e>>2]|0)+28956>>2]=0;Tp(f);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];f=Up(d)|0;c[(c[e>>2]|0)+28944>>2]=f;l=b;return;}function Tp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+28|0;e=b+24|0;f=b+20|0;g=b+16|0;h=b;c[d>>2]=0;c[e>>2]=0;c[f>>2]=0;c[g>>2]=0;c[h>>2]=c[d>>2];c[h+4>>2]=c[e>>2];c[h+8>>2]=c[f>>2];c[h+12>>2]=c[g>>2];c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];l=b;return;}function Up(a){a=a|0;return(c[a+8>>2]&256|0)!=0|0;}function Vp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+32|0;d=b+8|0;e=b+4|0;f=b;if(((c[a>>2]|0)!=0^1)&1^((c[a+4>>2]|0)!=0^1)&1|0){c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;};c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[f>>2]=Rh(160112,d)|0;if(c[f>>2]|0){d=(c[f>>2]|0)+28920|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[(c[f>>2]|0)+28996>>2]=0;c[(c[f>>2]|0)+29e3>>2]=0;Sp(c[f>>2]|0);c[e>>2]=c[f>>2];g=c[e>>2]|0;l=b;return g|0;}else{c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}return 0;}function Wp(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[5412];c[b+4>>2]=c[5413];c[b+8>>2]=c[5414];d=Vp(b)|0;l=a;return d|0;}function Xp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+20|0;e=b+16|0;f=b+12|0;g=b;c[f>>2]=a;if(!(c[f>>2]|0)){c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}if(c[(c[f>>2]|0)+28940>>2]|0){c[e>>2]=-64;h=c[e>>2]|0;l=b;return h|0;}a=(c[f>>2]|0)+28920|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];Yp(c[(c[f>>2]|0)+28948>>2]|0)|0;c[(c[f>>2]|0)+28948>>2]=0;a=c[(c[f>>2]|0)+28960>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);c[(c[f>>2]|0)+28960>>2]=0;if(c[(c[f>>2]|0)+28996>>2]|0)Zp(c[(c[f>>2]|0)+28996>>2]|0,c[(c[f>>2]|0)+29e3>>2]|0)|0;a=c[f>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}function Yp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+20|0;e=b+16|0;f=b+12|0;g=b;c[f>>2]=a;if(!(c[f>>2]|0)){c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}else{a=(c[f>>2]|0)+28732|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];a=c[c[f>>2]>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);a=c[f>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}return 0;}function Zp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;switch(c[g>>2]|0){case 7:{c[e>>2]=bq(c[f>>2]|0)|0;break;}case 6:{c[e>>2]=aq(c[f>>2]|0)|0;break;}case 5:{c[e>>2]=$p(c[f>>2]|0)|0;break;}case 4:{c[e>>2]=_p(c[f>>2]|0)|0;break;}default:c[e>>2]=-12;}l=d;return c[e>>2]|0;}function _p(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=fq(c[d>>2]|0)|0;l=b;return a|0;}function $p(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{eq(c[c[e>>2]>>2]|0)|0;Dy(c[(c[e>>2]|0)+48>>2]|0);Dy(c[(c[e>>2]|0)+60>>2]|0);Dy(c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}return 0;}function aq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{dq(c[c[e>>2]>>2]|0)|0;Dy(c[(c[e>>2]|0)+28>>2]|0);Dy(c[(c[e>>2]|0)+40>>2]|0);Dy(c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}return 0;}function bq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}cq(c[c[e>>2]>>2]|0)|0;if(c[(c[e>>2]|0)+36>>2]|0)xc[c[(c[e>>2]|0)+92+4>>2]&31](c[(c[e>>2]|0)+92+8>>2]|0,c[(c[e>>2]|0)+36>>2]|0);if(c[(c[e>>2]|0)+48>>2]|0)xc[c[(c[e>>2]|0)+92+4>>2]&31](c[(c[e>>2]|0)+92+8>>2]|0,c[(c[e>>2]|0)+48>>2]|0);xc[c[(c[e>>2]|0)+92+4>>2]&31](c[(c[e>>2]|0)+92+8>>2]|0,c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}function cq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{xc[c[(c[e>>2]|0)+21692+4>>2]&31](c[(c[e>>2]|0)+21692+8>>2]|0,c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}return 0;}function dq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Dy(c[d>>2]|0);l=b;return 0;}function eq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Dy(c[d>>2]|0);l=b;return 0;}function fq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{gq(c[c[e>>2]>>2]|0)|0;Dy(c[(c[e>>2]|0)+40>>2]|0);Dy(c[(c[e>>2]|0)+52>>2]|0);Dy(c[e>>2]|0);c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}return 0;}function gq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;Dy(c[d>>2]|0);l=b;return 0;}function hq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(jq()|0)!=0;f=kq(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=lq(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function iq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;a:do{if((c[g>>2]|0)>>>0<4)c[e>>2]=0;else{c[h>>2]=hq(c[f>>2]|0)|0;switch(c[h>>2]|0){case-47205084:{c[e>>2]=4;break a;break;}case-47205083:{c[e>>2]=5;break a;break;}case-47205082:{c[e>>2]=6;break a;break;}case-47205081:{c[e>>2]=7;break a;break;}default:{c[e>>2]=0;break a;}}}}while(0);l=d;return c[e>>2]|0;}function jq(){return d[11936]|0|0;}function kq(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function lq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function mq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=nq(c[e>>2]|0,c[f>>2]|0,0)|0;l=d;return b|0;}function nq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=l;l=l+48|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+32|0;o=g+8|0;p=g+4|0;q=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=oq(c[k>>2]|0)|0;if((c[j>>2]|0)>>>0<(c[m>>2]|0)>>>0){c[h>>2]=-72;r=c[h>>2]|0;l=g;return r|0;}a[n>>0]=a[(c[i>>2]|0)+((c[m>>2]|0)-1)>>0]|0;c[o>>2]=(d[n>>0]|0)&3;c[p>>2]=(d[n>>0]|0)>>5&1;c[q>>2]=(d[n>>0]|0)>>6;if(c[p>>2]|0)s=(c[q>>2]|0)!=0^1;else s=0;c[h>>2]=(c[m>>2]|0)+(((c[p>>2]|0)!=0^1)&1)+(c[3456+(c[o>>2]<<2)>>2]|0)+(c[3472+(c[q>>2]<<2)>>2]|0)+(s&1);r=c[h>>2]|0;l=g;return r|0;}function oq(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[d>>2]|0)==1?1:5;l=b;return c[e>>2]|0;}function pq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=qq(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,0)|0;l=e;return d|0;}function qq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+72|0;j=h+68|0;k=h+64|0;m=h+60|0;n=h+56|0;o=h+52|0;p=h+48|0;q=h+44|0;r=h+77|0;s=h+40|0;t=h+36|0;u=h+32|0;v=h+28|0;w=h+24|0;x=h+8|0;z=h+20|0;A=h;B=h+76|0;C=h+16|0;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[k>>2];c[p>>2]=oq(c[n>>2]|0)|0;if((c[m>>2]|0)>>>0<(c[p>>2]|0)>>>0){c[i>>2]=c[p>>2];D=c[i>>2]|0;l=h;return D|0;}if((c[n>>2]|0)!=1?(hq(c[k>>2]|0)|0)!=-47205080:0){if(((hq(c[k>>2]|0)|0)&-16|0)!=407710288){c[i>>2]=-10;D=c[i>>2]|0;l=h;return D|0;}if((c[m>>2]|0)>>>0<8){c[i>>2]=8;D=c[i>>2]|0;l=h;return D|0;}else{g=c[j>>2]|0;f=g+40|0;do{c[g>>2]=0;g=g+4|0;}while((g|0)<(f|0));g=hq((c[k>>2]|0)+4|0)|0;f=c[j>>2]|0;c[f>>2]=g;c[f+4>>2]=0;c[(c[j>>2]|0)+20>>2]=1;c[i>>2]=0;D=c[i>>2]|0;l=h;return D|0;}}c[q>>2]=nq(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;n=c[q>>2]|0;if((c[m>>2]|0)>>>0<(c[q>>2]|0)>>>0){c[i>>2]=n;D=c[i>>2]|0;l=h;return D|0;}c[(c[j>>2]|0)+24>>2]=n;a[r>>0]=a[(c[o>>2]|0)+((c[p>>2]|0)-1)>>0]|0;c[s>>2]=c[p>>2];c[t>>2]=(d[r>>0]|0)&3;c[u>>2]=(d[r>>0]|0)>>2&1;c[v>>2]=(d[r>>0]|0)>>5&1;c[w>>2]=(d[r>>0]|0)>>6;p=x;c[p>>2]=0;c[p+4>>2]=0;c[z>>2]=0;p=A;c[p>>2]=-1;c[p+4>>2]=-1;if((d[r>>0]|0)&8|0){c[i>>2]=-14;D=c[i>>2]|0;l=h;return D|0;}do{if(!(c[v>>2]|0)){r=c[o>>2]|0;p=c[s>>2]|0;c[s>>2]=p+1;a[B>>0]=a[r+p>>0]|0;c[C>>2]=((d[B>>0]|0)>>3)+10;if((c[C>>2]|0)>>>0<=30){p=jE(1,0,c[C>>2]|0)|0;r=x;c[r>>2]=p;c[r+4>>2]=y;r=x;p=iE(c[r>>2]|0,c[r+4>>2]|0,3)|0;r=(d[B>>0]|0)&7;n=cE(p|0,y|0,r|0,((r|0)<0)<<31>>31|0)|0;r=x;p=dE(c[r>>2]|0,c[r+4>>2]|0,n|0,y|0)|0;n=x;c[n>>2]=p;c[n+4>>2]=y;break;}c[i>>2]=-16;D=c[i>>2]|0;l=h;return D|0;}}while(0);switch(c[t>>2]|0){case 3:{c[z>>2]=hq((c[o>>2]|0)+(c[s>>2]|0)|0)|0;c[s>>2]=(c[s>>2]|0)+4;break;}case 1:{c[z>>2]=d[(c[o>>2]|0)+(c[s>>2]|0)>>0];c[s>>2]=(c[s>>2]|0)+1;break;}case 2:{c[z>>2]=(rq((c[o>>2]|0)+(c[s>>2]|0)|0)|0)&65535;c[s>>2]=(c[s>>2]|0)+2;break;}default:{}}switch(c[w>>2]|0){case 3:{w=A;c[w>>2]=sq((c[o>>2]|0)+(c[s>>2]|0)|0)|0;c[w+4>>2]=y;break;}case 1:{w=((rq((c[o>>2]|0)+(c[s>>2]|0)|0)|0)&65535)+256|0;t=A;c[t>>2]=w;c[t+4>>2]=((w|0)<0)<<31>>31;break;}case 2:{w=A;c[w>>2]=hq((c[o>>2]|0)+(c[s>>2]|0)|0)|0;c[w+4>>2]=0;break;}default:if(c[v>>2]|0){w=A;c[w>>2]=d[(c[o>>2]|0)+(c[s>>2]|0)>>0];c[w+4>>2]=0;}}if(c[v>>2]|0){v=A;w=c[v+4>>2]|0;s=x;c[s>>2]=c[v>>2];c[s+4>>2]=w;}c[(c[j>>2]|0)+20>>2]=0;w=A;A=c[w+4>>2]|0;s=c[j>>2]|0;c[s>>2]=c[w>>2];c[s+4>>2]=A;A=x;s=c[A+4>>2]|0;w=(c[j>>2]|0)+8|0;c[w>>2]=c[A>>2];c[w+4>>2]=s;s=x;w=c[s+4>>2]|0;A=w>>>0<0|(w|0)==0&(c[s>>2]|0)>>>0<131072;s=x;x=c[s+4>>2]|0;x=A?c[s>>2]|0:131072;c[(c[j>>2]|0)+16>>2]=x;c[(c[j>>2]|0)+28>>2]=c[z>>2];c[(c[j>>2]|0)+32>>2]=c[u>>2];c[i>>2]=0;D=c[i>>2]|0;l=h;return D|0;}function rq(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(jq()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=vq(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function sq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(jq()|0)!=0;f=tq(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=uq(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function tq(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function uq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function vq(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function wq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+64|0;e=d+48|0;f=d+60|0;g=d+56|0;h=d+40|0;i=d;c[f>>2]=a;c[g>>2]=b;b=(iq(c[f>>2]|0,c[g>>2]|0)|0)!=0;a=c[f>>2]|0;f=c[g>>2]|0;do{if(!b){if(pq(i,a,f)|0){g=e;c[g>>2]=-2;c[g+4>>2]=-1;break;}if((c[i+20>>2]|0)==1){g=e;c[g>>2]=0;c[g+4>>2]=0;break;}else{g=i;j=c[g+4>>2]|0;k=e;c[k>>2]=c[g>>2];c[k+4>>2]=j;break;}}else{j=xq(a,f)|0;k=h;c[k>>2]=j;c[k+4>>2]=y;k=h;j=(c[k>>2]|0)==0&(c[k+4>>2]|0)==0;k=h;g=j?-1:c[k+4>>2]|0;m=e;c[m>>2]=j?-1:c[k>>2]|0;c[m+4>>2]=g;}}while(0);h=e;y=c[h+4>>2]|0;l=d;return c[h>>2]|0;}function xq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;d=l;l=l+112|0;e=d+80|0;f=d+108|0;g=d+104|0;h=d+100|0;i=d+40|0;j=d+96|0;k=d+24|0;m=d+92|0;n=d;o=d+88|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=iq(c[f>>2]|0,c[g>>2]|0)|0;do{if((c[h>>2]|0)>>>0>=5){if((c[h>>2]|0)==5){c[j>>2]=yq(i,c[f>>2]|0,c[g>>2]|0)|0;if(c[j>>2]|0){b=e;c[b>>2]=0;c[b+4>>2]=0;break;}else{b=i;a=c[b+4>>2]|0;p=e;c[p>>2]=c[b>>2];c[p+4>>2]=a;break;}}if((c[h>>2]|0)==6){c[m>>2]=zq(k,c[f>>2]|0,c[g>>2]|0)|0;if(c[m>>2]|0){a=e;c[a>>2]=0;c[a+4>>2]=0;break;}else{a=k;p=c[a+4>>2]|0;b=e;c[b>>2]=c[a>>2];c[b+4>>2]=p;break;}}if((c[h>>2]|0)!=7){p=e;c[p>>2]=0;c[p+4>>2]=0;break;}c[o>>2]=Aq(n,c[f>>2]|0,c[g>>2]|0)|0;if(c[o>>2]|0){p=e;c[p>>2]=0;c[p+4>>2]=0;break;}else{p=n;b=c[p+4>>2]|0;a=e;c[a>>2]=c[p>>2];c[a+4>>2]=b;break;}}else{b=e;c[b>>2]=0;c[b+4>>2]=0;}}while(0);n=e;y=c[n+4>>2]|0;l=d;return c[n>>2]|0;}function yq(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;if((c[j>>2]|0)>>>0<5){c[g>>2]=5;m=c[g>>2]|0;l=f;return m|0;}c[k>>2]=Wq(c[i>>2]|0)|0;if((c[k>>2]|0)!=-47205083){c[g>>2]=-10;m=c[g>>2]|0;l=f;return m|0;}k=c[h>>2]|0;j=k+40|0;do{c[k>>2]=0;k=k+4|0;}while((k|0)<(j|0));c[(c[h>>2]|0)+8>>2]=((d[(c[i>>2]|0)+4>>0]|0)&15)+11;if((d[(c[i>>2]|0)+4>>0]|0)>>4|0){c[g>>2]=-14;m=c[g>>2]|0;l=f;return m|0;}else{c[g>>2]=0;m=c[g>>2]|0;l=f;return m|0;}return 0;}function zq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;o=g+24|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<5){c[h>>2]=5;p=c[h>>2]|0;l=g;return p|0;}if((Mq(c[j>>2]|0)|0)!=-47205082){c[h>>2]=-10;p=c[h>>2]|0;l=g;return p|0;}c[n>>2]=Nq(c[j>>2]|0,c[k>>2]|0)|0;if((c[k>>2]|0)>>>0<(c[n>>2]|0)>>>0){c[h>>2]=c[n>>2];p=c[h>>2]|0;l=g;return p|0;}n=c[i>>2]|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;a[o>>0]=a[(c[m>>2]|0)+4>>0]|0;c[(c[i>>2]|0)+8>>2]=((d[o>>0]|0)&15)+12;if((d[o>>0]|0)&32|0){c[h>>2]=-14;p=c[h>>2]|0;l=g;return p|0;}switch((d[o>>0]|0)>>6|0){case 0:{o=c[i>>2]|0;c[o>>2]=0;c[o+4>>2]=0;break;}case 1:{o=c[i>>2]|0;c[o>>2]=d[(c[m>>2]|0)+5>>0];c[o+4>>2]=0;break;}case 2:{o=((Oq((c[m>>2]|0)+5|0)|0)&65535)+256|0;n=c[i>>2]|0;c[n>>2]=o;c[n+4>>2]=((o|0)<0)<<31>>31;break;}case 3:{o=Pq((c[m>>2]|0)+5|0)|0;m=c[i>>2]|0;c[m>>2]=o;c[m+4>>2]=y;break;}default:{}}c[h>>2]=0;p=c[h>>2]|0;l=g;return p|0;}function Aq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+69|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+20|0;v=g+16|0;w=g+12|0;x=g;z=g+68|0;A=g+8|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<5){c[h>>2]=5;B=c[h>>2]|0;l=g;return B|0;}f=(Bq(c[j>>2]|0)|0)!=-47205081;e=c[j>>2]|0;if(f){if(((Bq(e)|0)&-16|0)!=407710288){c[h>>2]=-10;B=c[h>>2]|0;l=g;return B|0;}if((c[k>>2]|0)>>>0<8){c[h>>2]=8;B=c[h>>2]|0;l=g;return B|0;}else{f=c[i>>2]|0;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;f=Bq((c[j>>2]|0)+4|0)|0;j=c[i>>2]|0;c[j>>2]=f;c[j+4>>2]=0;c[(c[i>>2]|0)+8>>2]=0;c[h>>2]=0;B=c[h>>2]|0;l=g;return B|0;}}c[n>>2]=Cq(e,c[k>>2]|0)|0;if((c[k>>2]|0)>>>0<(c[n>>2]|0)>>>0){c[h>>2]=c[n>>2];B=c[h>>2]|0;l=g;return B|0;}a[o>>0]=a[(c[m>>2]|0)+4>>0]|0;c[p>>2]=5;c[q>>2]=(d[o>>0]|0)&3;c[r>>2]=(d[o>>0]|0)>>2&1;c[s>>2]=(d[o>>0]|0)>>5&1;c[t>>2]=(d[o>>0]|0)>>6;n=(Dq()|0)!=0;c[u>>2]=1<<(n?25:27);c[v>>2]=0;c[w>>2]=0;n=x;c[n>>2]=0;c[n+4>>2]=0;if((d[o>>0]|0)&8|0){c[h>>2]=-14;B=c[h>>2]|0;l=g;return B|0;}do{if(!(c[s>>2]|0)){o=c[m>>2]|0;n=c[p>>2]|0;c[p>>2]=n+1;a[z>>0]=a[o+n>>0]|0;c[A>>2]=((d[z>>0]|0)>>3)+10;n=c[A>>2]|0;o=(Dq()|0)!=0;if(n>>>0<=(o?25:27)>>>0){c[v>>2]=1<>2];o=N((c[v>>2]|0)>>>3,(d[z>>0]|0)&7)|0;c[v>>2]=(c[v>>2]|0)+o;break;}c[h>>2]=-14;B=c[h>>2]|0;l=g;return B|0;}}while(0);switch(c[q>>2]|0){case 3:{c[w>>2]=Bq((c[m>>2]|0)+(c[p>>2]|0)|0)|0;c[p>>2]=(c[p>>2]|0)+4;break;}case 1:{c[w>>2]=d[(c[m>>2]|0)+(c[p>>2]|0)>>0];c[p>>2]=(c[p>>2]|0)+1;break;}case 2:{c[w>>2]=(Eq((c[m>>2]|0)+(c[p>>2]|0)|0)|0)&65535;c[p>>2]=(c[p>>2]|0)+2;break;}default:{}}switch(c[t>>2]|0){case 3:{t=x;c[t>>2]=Fq((c[m>>2]|0)+(c[p>>2]|0)|0)|0;c[t+4>>2]=y;break;}case 1:{t=((Eq((c[m>>2]|0)+(c[p>>2]|0)|0)|0)&65535)+256|0;q=x;c[q>>2]=t;c[q+4>>2]=((t|0)<0)<<31>>31;break;}case 2:{t=x;c[t>>2]=Bq((c[m>>2]|0)+(c[p>>2]|0)|0)|0;c[t+4>>2]=0;break;}default:if(c[s>>2]|0){s=x;c[s>>2]=d[(c[m>>2]|0)+(c[p>>2]|0)>>0];c[s+4>>2]=0;}}if(!(c[v>>2]|0))c[v>>2]=c[x>>2];if((c[v>>2]|0)>>>0>(c[u>>2]|0)>>>0){c[h>>2]=-14;B=c[h>>2]|0;l=g;return B|0;}else{u=x;x=c[u+4>>2]|0;s=c[i>>2]|0;c[s>>2]=c[u>>2];c[s+4>>2]=x;c[(c[i>>2]|0)+8>>2]=c[v>>2];c[(c[i>>2]|0)+12>>2]=c[w>>2];c[(c[i>>2]|0)+16>>2]=c[r>>2];c[h>>2]=0;B=c[h>>2]|0;l=g;return B|0;}return 0;}function Bq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Gq()|0)!=0;f=Kq(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Lq(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Cq(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+24|0;k=f+8|0;m=f+4|0;n=f;c[h>>2]=b;c[i>>2]=e;if((c[i>>2]|0)>>>0<5){c[g>>2]=-72;o=c[g>>2]|0;l=f;return o|0;}a[j>>0]=a[(c[h>>2]|0)+4>>0]|0;c[k>>2]=(d[j>>0]|0)&3;c[m>>2]=(d[j>>0]|0)>>5&1;c[n>>2]=(d[j>>0]|0)>>6;if(c[m>>2]|0)p=(c[3472+(c[n>>2]<<2)>>2]|0)!=0^1;else p=0;c[g>>2]=5+(((c[m>>2]|0)!=0^1)&1)+(c[3456+(c[k>>2]<<2)>>2]|0)+(c[3472+(c[n>>2]<<2)>>2]|0)+(p&1);o=c[g>>2]|0;l=f;return o|0;}function Dq(){return 1;}function Eq(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(Gq()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=Jq(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function Fq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(Gq()|0)!=0;f=Hq(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=Iq(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function Gq(){return d[11936]|0|0;}function Hq(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;a[f+4>>0]=a[b+4>>0]|0;a[f+5>>0]=a[b+5>>0]|0;a[f+6>>0]=a[b+6>>0]|0;a[f+7>>0]=a[b+7>>0]|0;b=f;y=c[b+4>>2]|0;l=d;return c[b>>2]|0;}function Iq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Jq(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;l=e;return b[g>>1]|0;}function Kq(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;l=d;return c[f>>2]|0;}function Lq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Mq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Qq()|0)!=0;f=Uq(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Vq(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Nq(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;if((c[h>>2]|0)>>>0<5){c[f>>2]=-72;j=c[f>>2]|0;l=e;return j|0;}else{c[i>>2]=(d[(c[g>>2]|0)+4>>0]|0)>>6;c[f>>2]=5+(c[3488+(c[i>>2]<<2)>>2]|0);j=c[f>>2]|0;l=e;return j|0;}return 0;}function Oq(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=a;a=(Qq()|0)!=0;i=c[g>>2]|0;if(a){b[f>>1]=Tq(i)|0;j=b[f>>1]|0;l=e;return j|0;}else{c[h>>2]=i;b[f>>1]=(d[c[h>>2]>>0]|0)+((d[(c[h>>2]|0)+1>>0]|0)<<8);j=b[f>>1]|0;l=e;return j|0;}return 0;}function Pq(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(Qq()|0)!=0;f=Rq(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=Sq(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function Qq(){return d[11936]|0|0;}function Rq(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;a[f+4>>0]=a[b+4>>0]|0;a[f+5>>0]=a[b+5>>0]|0;a[f+6>>0]=a[b+6>>0]|0;a[f+7>>0]=a[b+7>>0]|0;b=f;y=c[b+4>>2]|0;l=d;return c[b>>2]|0;}function Sq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Tq(d){d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=d;d=c[f>>2]|0;a[g>>0]=a[d>>0]|0;a[g+1>>0]=a[d+1>>0]|0;l=e;return b[g>>1]|0;}function Uq(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;l=d;return c[f>>2]|0;}function Vq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Wq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Xq()|0)!=0;f=Yq(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Zq(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Xq(){return d[11936]|0|0;}function Yq(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Zq(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function _q(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;d=l;l=l+96|0;e=d+80|0;f=d+76|0;g=d+72|0;h=d+68|0;i=d+64|0;j=d+60|0;k=d;m=d+56|0;n=d+44|0;o=d+40|0;c[f>>2]=a;c[g>>2]=b;if(iq(c[f>>2]|0,c[g>>2]|0)|0){c[e>>2]=ar(c[f>>2]|0,c[g>>2]|0)|0;p=c[e>>2]|0;l=d;return p|0;}if((c[g>>2]|0)>>>0>=8?((hq(c[f>>2]|0)|0)&-16|0)==407710288:0){c[e>>2]=8+(hq((c[f>>2]|0)+4|0)|0);p=c[e>>2]|0;l=d;return p|0;}c[h>>2]=c[f>>2];c[i>>2]=c[h>>2];c[j>>2]=c[g>>2];c[m>>2]=pq(k,c[f>>2]|0,c[g>>2]|0)|0;g=($q(c[m>>2]|0)|0)!=0;f=c[m>>2]|0;if(g){c[e>>2]=f;p=c[e>>2]|0;l=d;return p|0;}if(f>>>0>0){c[e>>2]=-72;p=c[e>>2]|0;l=d;return p|0;}c[h>>2]=(c[h>>2]|0)+(c[k+24>>2]|0);c[j>>2]=(c[j>>2]|0)-(c[k+24>>2]|0);while(1){c[o>>2]=br(c[h>>2]|0,c[j>>2]|0,n)|0;f=($q(c[o>>2]|0)|0)!=0;q=c[o>>2]|0;if(f){r=12;break;}if((3+q|0)>>>0>(c[j>>2]|0)>>>0){r=14;break;}c[h>>2]=(c[h>>2]|0)+(3+(c[o>>2]|0));c[j>>2]=(c[j>>2]|0)-(3+(c[o>>2]|0));if(c[n+4>>2]|0){r=17;break;}}if((r|0)==12){c[e>>2]=q;p=c[e>>2]|0;l=d;return p|0;}else if((r|0)==14){c[e>>2]=-72;p=c[e>>2]|0;l=d;return p|0;}else if((r|0)==17){do{if(c[k+32>>2]|0){if((c[j>>2]|0)>>>0>=4){c[h>>2]=(c[h>>2]|0)+4;c[j>>2]=(c[j>>2]|0)-4;break;}c[e>>2]=-72;p=c[e>>2]|0;l=d;return p|0;}}while(0);c[e>>2]=(c[h>>2]|0)-(c[i>>2]|0);p=c[e>>2]|0;l=d;return p|0;}return 0;}function $q(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function ar(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=iq(c[f>>2]|0,c[g>>2]|0)|0;switch(c[h>>2]|0){case 4:{c[e>>2]=dr(c[f>>2]|0,c[g>>2]|0)|0;break;}case 5:{c[e>>2]=er(c[f>>2]|0,c[g>>2]|0)|0;break;}case 6:{c[e>>2]=fr(c[f>>2]|0,c[g>>2]|0)|0;break;}case 7:{c[e>>2]=gr(c[f>>2]|0,c[g>>2]|0)|0;break;}default:c[e>>2]=-10;}l=d;return c[e>>2]|0;}function br(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[h>>2]|0)>>>0<3){c[f>>2]=-72;m=c[f>>2]|0;l=e;return m|0;}c[j>>2]=cr(c[g>>2]|0)|0;c[k>>2]=(c[j>>2]|0)>>>3;c[(c[i>>2]|0)+4>>2]=c[j>>2]&1;c[c[i>>2]>>2]=(c[j>>2]|0)>>>1&3;c[(c[i>>2]|0)+8>>2]=c[k>>2];if((c[c[i>>2]>>2]|0)==1){c[f>>2]=1;m=c[f>>2]|0;l=e;return m|0;}if((c[c[i>>2]>>2]|0)==3){c[f>>2]=-20;m=c[f>>2]|0;l=e;return m|0;}else{c[f>>2]=c[k>>2];m=c[f>>2]|0;l=e;return m|0;}return 0;}function cr(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=(rq(c[e>>2]|0)|0)&65535;l=b;return a+((d[(c[e>>2]|0)+2>>0]|0)<<16)|0;}function dr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=or(c[e>>2]|0,c[f>>2]|0)|0;l=d;return b|0;}function er(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+8|0;k=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];if((c[g>>2]|0)>>>0<5){c[e>>2]=-72;m=c[e>>2]|0;l=d;return m|0;}if((Wq(c[f>>2]|0)|0)!=-47205083){c[e>>2]=-10;m=c[e>>2]|0;l=d;return m|0;}c[h>>2]=(c[h>>2]|0)+5;c[i>>2]=(c[i>>2]|0)-5;while(1){c[k>>2]=lr(c[h>>2]|0,c[i>>2]|0,j)|0;if(mr(c[k>>2]|0)|0){n=7;break;}c[h>>2]=(c[h>>2]|0)+3;c[i>>2]=(c[i>>2]|0)-3;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){n=9;break;}if(!(c[k>>2]|0)){n=12;break;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);}if((n|0)==7){c[e>>2]=c[k>>2];m=c[e>>2]|0;l=d;return m|0;}else if((n|0)==9){c[e>>2]=-72;m=c[e>>2]|0;l=d;return m|0;}else if((n|0)==12){c[e>>2]=(c[h>>2]|0)-(c[f>>2]|0);m=c[e>>2]|0;l=d;return m|0;}return 0;}function fr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+8|0;k=d+4|0;m=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];c[j>>2]=0;c[j+4>>2]=0;c[k>>2]=Nq(c[f>>2]|0,5)|0;if(jr(c[k>>2]|0)|0){c[e>>2]=c[k>>2];n=c[e>>2]|0;l=d;return n|0;}if((Mq(c[f>>2]|0)|0)!=-47205082){c[e>>2]=-10;n=c[e>>2]|0;l=d;return n|0;}if((c[g>>2]|0)>>>0<((c[k>>2]|0)+3|0)>>>0){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);while(1){c[m>>2]=kr(c[h>>2]|0,c[i>>2]|0,j)|0;if(jr(c[m>>2]|0)|0){o=9;break;}c[h>>2]=(c[h>>2]|0)+3;c[i>>2]=(c[i>>2]|0)-3;if((c[m>>2]|0)>>>0>(c[i>>2]|0)>>>0){o=11;break;}if(!(c[m>>2]|0)){o=14;break;}c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[m>>2]|0);}if((o|0)==9){c[e>>2]=c[m>>2];n=c[e>>2]|0;l=d;return n|0;}else if((o|0)==11){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}else if((o|0)==14){c[e>>2]=(c[h>>2]|0)-(c[f>>2]|0);n=c[e>>2]|0;l=d;return n|0;}return 0;}function gr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;d=l;l=l+48|0;e=d+36|0;f=d+32|0;g=d+28|0;h=d+24|0;i=d+20|0;j=d+16|0;k=d+8|0;m=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];if((c[g>>2]|0)>>>0<8){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}c[j>>2]=Cq(c[f>>2]|0,5)|0;if(hr(c[j>>2]|0)|0){c[e>>2]=c[j>>2];n=c[e>>2]|0;l=d;return n|0;}if((Bq(c[f>>2]|0)|0)!=-47205081){c[e>>2]=-10;n=c[e>>2]|0;l=d;return n|0;}if((c[g>>2]|0)>>>0<((c[j>>2]|0)+3|0)>>>0){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}c[h>>2]=(c[h>>2]|0)+(c[j>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[j>>2]|0);while(1){c[m>>2]=ir(c[h>>2]|0,c[i>>2]|0,k)|0;if(hr(c[m>>2]|0)|0){o=11;break;}c[h>>2]=(c[h>>2]|0)+3;c[i>>2]=(c[i>>2]|0)-3;if((c[k>>2]|0)==3){o=16;break;}if((c[m>>2]|0)>>>0>(c[i>>2]|0)>>>0){o=14;break;}c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[m>>2]|0);}if((o|0)==11){c[e>>2]=c[m>>2];n=c[e>>2]|0;l=d;return n|0;}else if((o|0)==14){c[e>>2]=-72;n=c[e>>2]|0;l=d;return n|0;}else if((o|0)==16){c[e>>2]=(c[h>>2]|0)-(c[f>>2]|0);n=c[e>>2]|0;l=d;return n|0;}return 0;}function hr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function ir(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];if((c[i>>2]|0)>>>0<3){c[g>>2]=-72;n=c[g>>2]|0;l=f;return n|0;}c[c[j>>2]>>2]=(d[c[k>>2]>>0]|0)>>6;c[m>>2]=(d[(c[k>>2]|0)+2>>0]|0)+((d[(c[k>>2]|0)+1>>0]|0)<<8)+(((d[c[k>>2]>>0]|0)&7)<<16);c[(c[j>>2]|0)+4>>2]=(c[c[j>>2]>>2]|0)==2?c[m>>2]|0:0;if((c[c[j>>2]>>2]|0)==3){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0;}if((c[c[j>>2]>>2]|0)==2){c[g>>2]=1;n=c[g>>2]|0;l=f;return n|0;}else{c[g>>2]=c[m>>2];n=c[g>>2]|0;l=f;return n|0;}return 0;}function jr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function kr(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];if((c[i>>2]|0)>>>0<3){c[g>>2]=-72;n=c[g>>2]|0;l=f;return n|0;}c[c[j>>2]>>2]=(d[c[k>>2]>>0]|0)>>6;c[m>>2]=(d[(c[k>>2]|0)+2>>0]|0)+((d[(c[k>>2]|0)+1>>0]|0)<<8)+(((d[c[k>>2]>>0]|0)&7)<<16);c[(c[j>>2]|0)+4>>2]=(c[c[j>>2]>>2]|0)==2?c[m>>2]|0:0;if((c[c[j>>2]>>2]|0)==3){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0;}if((c[c[j>>2]>>2]|0)==2){c[g>>2]=1;n=c[g>>2]|0;l=f;return n|0;}else{c[g>>2]=c[m>>2];n=c[g>>2]|0;l=f;return n|0;}return 0;}function lr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g+24|0;o=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[i>>2];if((c[j>>2]|0)>>>0<3){c[h>>2]=-72;p=c[h>>2]|0;l=g;return p|0;}a[n>>0]=a[c[m>>2]>>0]|0;c[o>>2]=(d[(c[m>>2]|0)+2>>0]|0)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(((d[c[m>>2]>>0]|0)&7)<<16);c[c[k>>2]>>2]=(d[n>>0]|0)>>6;c[(c[k>>2]|0)+4>>2]=(c[c[k>>2]>>2]|0)==2?c[o>>2]|0:0;if((c[c[k>>2]>>2]|0)==3){c[h>>2]=0;p=c[h>>2]|0;l=g;return p|0;}if((c[c[k>>2]>>2]|0)==2){c[h>>2]=1;p=c[h>>2]|0;l=g;return p|0;}else{c[h>>2]=c[o>>2];p=c[h>>2]|0;l=g;return p|0;}return 0;}function mr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=nr(c[d>>2]|0)|0;l=b;return a|0;}function nr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function or(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+8|0;k=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[f>>2];c[i>>2]=c[g>>2];if((c[g>>2]|0)>>>0<5){c[e>>2]=-72;m=c[e>>2]|0;l=d;return m|0;}if((pr(c[f>>2]|0)|0)!=-47205084){c[e>>2]=-10;m=c[e>>2]|0;l=d;return m|0;}c[h>>2]=(c[h>>2]|0)+5;c[i>>2]=(c[i>>2]|0)-5;while(1){c[k>>2]=qr(c[h>>2]|0,c[i>>2]|0,j)|0;if(rr(c[k>>2]|0)|0){n=7;break;}c[h>>2]=(c[h>>2]|0)+3;c[i>>2]=(c[i>>2]|0)-3;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){n=9;break;}if(!(c[k>>2]|0)){n=12;break;}c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);}if((n|0)==7){c[e>>2]=c[k>>2];m=c[e>>2]|0;l=d;return m|0;}else if((n|0)==9){c[e>>2]=-72;m=c[e>>2]|0;l=d;return m|0;}else if((n|0)==12){c[e>>2]=(c[h>>2]|0)-(c[f>>2]|0);m=c[e>>2]|0;l=d;return m|0;}return 0;}function pr(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;e=b+8|0;f=b+4|0;g=b;c[f>>2]=a;a=(tr()|0)!=0;h=c[f>>2]|0;if(a){c[e>>2]=ur(h)|0;i=c[e>>2]|0;l=b;return i|0;}else{c[g>>2]=h;c[e>>2]=(d[c[g>>2]>>0]|0)+((d[(c[g>>2]|0)+1>>0]|0)<<8)+((d[(c[g>>2]|0)+2>>0]|0)<<16)+((d[(c[g>>2]|0)+3>>0]|0)<<24);i=c[e>>2]|0;l=b;return i|0;}return 0;}function qr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g+24|0;o=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[i>>2];if((c[j>>2]|0)>>>0<3){c[h>>2]=-72;p=c[h>>2]|0;l=g;return p|0;}a[n>>0]=a[c[m>>2]>>0]|0;c[o>>2]=(d[(c[m>>2]|0)+2>>0]|0)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(((d[c[m>>2]>>0]|0)&7)<<16);c[c[k>>2]>>2]=(d[n>>0]|0)>>6;c[(c[k>>2]|0)+4>>2]=(c[c[k>>2]>>2]|0)==2?c[o>>2]|0:0;if((c[c[k>>2]>>2]|0)==3){c[h>>2]=0;p=c[h>>2]|0;l=g;return p|0;}if((c[c[k>>2]>>2]|0)==2){c[h>>2]=1;p=c[h>>2]|0;l=g;return p|0;}else{c[h>>2]=c[o>>2];p=c[h>>2]|0;l=g;return p|0;}return 0;}function rr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=sr(c[d>>2]|0)|0;l=b;return a|0;}function sr(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function tr(){return d[11936]|0|0;}function ur(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;l=d;return c[f>>2]|0;}function vr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=l;l=l+80|0;h=g+68|0;i=g+64|0;j=g+60|0;k=g+56|0;m=g+52|0;n=g+48|0;o=g+44|0;p=g+40|0;q=g+36|0;r=g+32|0;s=g+28|0;t=g+24|0;u=g+20|0;v=g+16|0;w=g+12|0;x=g+8|0;y=g+4|0;z=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<3){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}c[m>>2]=c[j>>2];c[n>>2]=(d[c[m>>2]>>0]|0)&3;switch(c[n>>2]|0){case 3:{if(!(c[(c[i>>2]|0)+28808>>2]|0)){c[h>>2]=-30;A=c[h>>2]|0;l=g;return A|0;}break;}case 2:break;case 0:{c[w>>2]=(d[c[m>>2]>>0]|0)>>2&3;switch(c[w>>2]|0){case 3:{c[v>>2]=3;c[u>>2]=(cr(c[m>>2]|0)|0)>>>4;break;}case 1:{c[v>>2]=2;c[u>>2]=((rq(c[m>>2]|0)|0)&65535)>>4;break;}default:{c[v>>2]=1;c[u>>2]=(d[c[m>>2]>>0]|0)>>3;}}if(((c[v>>2]|0)+(c[u>>2]|0)+8|0)>>>0<=(c[k>>2]|0)>>>0){c[(c[i>>2]|0)+28916>>2]=(c[m>>2]|0)+(c[v>>2]|0);c[(c[i>>2]|0)+28932>>2]=c[u>>2];c[h>>2]=(c[v>>2]|0)+(c[u>>2]|0);A=c[h>>2]|0;l=g;return A|0;}if(((c[u>>2]|0)+(c[v>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}else{mE((c[i>>2]|0)+29012|0,(c[m>>2]|0)+(c[v>>2]|0)|0,c[u>>2]|0)|0;c[(c[i>>2]|0)+28916>>2]=(c[i>>2]|0)+29012;c[(c[i>>2]|0)+28932>>2]=c[u>>2];w=(c[i>>2]|0)+29012+(c[(c[i>>2]|0)+28932>>2]|0)|0;a[w>>0]=0;a[w+1>>0]=0;a[w+2>>0]=0;a[w+3>>0]=0;a[w+4>>0]=0;a[w+5>>0]=0;a[w+6>>0]=0;a[w+7>>0]=0;c[h>>2]=(c[v>>2]|0)+(c[u>>2]|0);A=c[h>>2]|0;l=g;return A|0;}break;}case 1:{c[x>>2]=(d[c[m>>2]>>0]|0)>>2&3;switch(c[x>>2]|0){case 3:{c[z>>2]=3;c[y>>2]=(cr(c[m>>2]|0)|0)>>>4;if((c[k>>2]|0)>>>0<4){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}break;}case 1:{c[z>>2]=2;c[y>>2]=((rq(c[m>>2]|0)|0)&65535)>>4;break;}default:{c[z>>2]=1;c[y>>2]=(d[c[m>>2]>>0]|0)>>3;}}if((c[y>>2]|0)>>>0>131072){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}else{oE((c[i>>2]|0)+29012|0,(d[(c[m>>2]|0)+(c[z>>2]|0)>>0]|0)&255|0,(c[y>>2]|0)+8|0)|0;c[(c[i>>2]|0)+28916>>2]=(c[i>>2]|0)+29012;c[(c[i>>2]|0)+28932>>2]=c[y>>2];c[h>>2]=(c[z>>2]|0)+1;A=c[h>>2]|0;l=g;return A|0;}break;}default:{c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}}if((c[k>>2]|0)>>>0<5){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}c[r>>2]=0;c[s>>2]=(d[c[m>>2]>>0]|0)>>2&3;c[t>>2]=hq(c[m>>2]|0)|0;switch(c[s>>2]|0){case 3:{c[o>>2]=5;c[p>>2]=(c[t>>2]|0)>>>4&262143;c[q>>2]=((c[t>>2]|0)>>>22)+((d[(c[m>>2]|0)+4>>0]|0)<<10);break;}case 2:{c[o>>2]=4;c[p>>2]=(c[t>>2]|0)>>>4&16383;c[q>>2]=(c[t>>2]|0)>>>18;break;}default:{c[r>>2]=((c[s>>2]|0)!=0^1)&1;c[o>>2]=3;c[p>>2]=(c[t>>2]|0)>>>4&1023;c[q>>2]=(c[t>>2]|0)>>>14&1023;}}if((c[p>>2]|0)>>>0>131072){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}if(((c[q>>2]|0)+(c[o>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}k=(c[r>>2]|0)!=0;r=c[i>>2]|0;do{if((c[n>>2]|0)==3){t=r+29012|0;s=c[p>>2]|0;z=(c[m>>2]|0)+(c[o>>2]|0)|0;y=c[q>>2]|0;x=c[(c[i>>2]|0)+12>>2]|0;u=c[(c[i>>2]|0)+28944>>2]|0;if(k){B=Op(t,s,z,y,x,u)|0;break;}else{B=Qp(t,s,z,y,x,u)|0;break;}}else{u=r+16+10264|0;x=(c[i>>2]|0)+29012|0;y=c[p>>2]|0;z=(c[m>>2]|0)+(c[o>>2]|0)|0;s=c[q>>2]|0;t=(c[i>>2]|0)+16+26652|0;v=c[(c[i>>2]|0)+28944>>2]|0;if(k){B=Pp(u,x,y,z,s,t,2048,v)|0;break;}else{B=Rp(u,x,y,z,s,t,2048,v)|0;break;}}}while(0);if($q(B)|0){c[h>>2]=-20;A=c[h>>2]|0;l=g;return A|0;}c[(c[i>>2]|0)+28916>>2]=(c[i>>2]|0)+29012;c[(c[i>>2]|0)+28932>>2]=c[p>>2];c[(c[i>>2]|0)+28808>>2]=1;if((c[n>>2]|0)==2)c[(c[i>>2]|0)+12>>2]=(c[i>>2]|0)+16+10264;n=(c[i>>2]|0)+29012+(c[(c[i>>2]|0)+28932>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=(c[q>>2]|0)+(c[o>>2]|0);A=c[h>>2]|0;l=g;return A|0;}function wr(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=l;l=l+64|0;h=g+56|0;i=g+52|0;j=g+48|0;k=g+44|0;m=g+40|0;n=g+36|0;o=g+32|0;p=g+28|0;q=g+24|0;r=g+20|0;s=g+16|0;t=g+12|0;u=g+8|0;v=g+4|0;w=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[k>>2];c[o>>2]=(c[n>>2]|0)+(c[m>>2]|0);c[p>>2]=c[n>>2];if((c[m>>2]|0)>>>0<1){c[h>>2]=-72;x=c[h>>2]|0;l=g;return x|0;}m=c[p>>2]|0;c[p>>2]=m+1;c[q>>2]=d[m>>0];if(!(c[q>>2]|0)){c[c[j>>2]>>2]=0;c[h>>2]=1;x=c[h>>2]|0;l=g;return x|0;}do{if((c[q>>2]|0)>127){m=c[p>>2]|0;if((c[q>>2]|0)==255){if((m+2|0)>>>0<=(c[o>>2]|0)>>>0){c[q>>2]=((rq(c[p>>2]|0)|0)&65535)+32512;c[p>>2]=(c[p>>2]|0)+2;break;}c[h>>2]=-72;x=c[h>>2]|0;l=g;return x|0;}else{if(m>>>0<(c[o>>2]|0)>>>0){m=(c[q>>2]|0)-128<<8;k=c[p>>2]|0;c[p>>2]=k+1;c[q>>2]=m+(d[k>>0]|0);break;}c[h>>2]=-72;x=c[h>>2]|0;l=g;return x|0;}}}while(0);c[c[j>>2]>>2]=c[q>>2];if(((c[p>>2]|0)+4|0)>>>0>(c[o>>2]|0)>>>0){c[h>>2]=-72;x=c[h>>2]|0;l=g;return x|0;}c[r>>2]=(d[c[p>>2]>>0]|0)>>6;c[s>>2]=(d[c[p>>2]>>0]|0)>>4&3;c[t>>2]=(d[c[p>>2]>>0]|0)>>2&3;c[p>>2]=(c[p>>2]|0)+1;c[u>>2]=xr((c[i>>2]|0)+16|0,c[i>>2]|0,c[r>>2]|0,35,9,c[p>>2]|0,(c[o>>2]|0)-(c[p>>2]|0)|0,6416,5696,3504,c[(c[i>>2]|0)+28812>>2]|0)|0;if($q(c[u>>2]|0)|0){c[h>>2]=-20;x=c[h>>2]|0;l=g;return x|0;}c[p>>2]=(c[p>>2]|0)+(c[u>>2]|0);c[v>>2]=xr((c[i>>2]|0)+16+4104|0,(c[i>>2]|0)+8|0,c[s>>2]|0,31,8,c[p>>2]|0,(c[o>>2]|0)-(c[p>>2]|0)|0,4032,4160,4288,c[(c[i>>2]|0)+28812>>2]|0)|0;if($q(c[v>>2]|0)|0){c[h>>2]=-20;x=c[h>>2]|0;l=g;return x|0;}c[p>>2]=(c[p>>2]|0)+(c[v>>2]|0);c[w>>2]=xr((c[i>>2]|0)+16+6160|0,(c[i>>2]|0)+4|0,c[t>>2]|0,52,9,c[p>>2]|0,(c[o>>2]|0)-(c[p>>2]|0)|0,5216,5840,4560,c[(c[i>>2]|0)+28812>>2]|0)|0;if($q(c[w>>2]|0)|0){c[h>>2]=-20;x=c[h>>2]|0;l=g;return x|0;}else{c[p>>2]=(c[p>>2]|0)+(c[w>>2]|0);c[h>>2]=(c[p>>2]|0)-(c[n>>2]|0);x=c[h>>2]|0;l=g;return x|0;}return 0;}function xr(a,b,e,f,g,h,i,j,k,m,n){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;o=l;l=l+176|0;p=o+172|0;q=o+168|0;r=o+164|0;s=o+160|0;t=o+156|0;u=o+152|0;v=o+148|0;w=o+144|0;x=o+140|0;y=o+136|0;z=o+132|0;A=o+128|0;B=o+124|0;C=o+120|0;D=o+116|0;E=o+112|0;F=o;G=o+108|0;c[q>>2]=a;c[r>>2]=b;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;c[z>>2]=m;c[A>>2]=n;a:do{switch(c[s>>2]|0){case 1:{if(!(c[w>>2]|0)){c[p>>2]=-72;break a;}if((d[c[v>>2]>>0]|0)>>>0>(c[t>>2]|0)>>>0){c[p>>2]=-20;break a;}else{c[B>>2]=d[c[v>>2]>>0];c[C>>2]=c[(c[x>>2]|0)+(c[B>>2]<<2)>>2];c[D>>2]=c[(c[y>>2]|0)+(c[B>>2]<<2)>>2];yr(c[q>>2]|0,c[C>>2]|0,c[D>>2]|0);c[c[r>>2]>>2]=c[q>>2];c[p>>2]=1;break a;}break;}case 0:{c[c[r>>2]>>2]=c[z>>2];c[p>>2]=0;break;}case 3:{if(c[A>>2]|0){c[p>>2]=0;break a;}else{c[p>>2]=-20;break a;}break;}case 2:{c[G>>2]=ah(F,t,E,c[v>>2]|0,c[w>>2]|0)|0;if($q(c[G>>2]|0)|0){c[p>>2]=-20;break a;}if((c[E>>2]|0)>>>0>(c[u>>2]|0)>>>0){c[p>>2]=-20;break a;}else{zr(c[q>>2]|0,F,c[t>>2]|0,c[x>>2]|0,c[y>>2]|0,c[E>>2]|0);c[c[r>>2]>>2]=c[q>>2];c[p>>2]=c[G>>2];break a;}break;}default:c[p>>2]=-1;}}while(0);l=o;return c[p>>2]|0;}function yr(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=d;c[i>>2]=e;c[j>>2]=f;c[k>>2]=c[h>>2];c[m>>2]=c[k>>2];c[n>>2]=(c[h>>2]|0)+8;c[(c[m>>2]|0)+4>>2]=0;c[c[m>>2]>>2]=0;a[(c[n>>2]|0)+3>>0]=0;b[c[n>>2]>>1]=0;a[(c[n>>2]|0)+2>>0]=c[j>>2];c[(c[n>>2]|0)+4>>2]=c[i>>2];l=g;return;}function zr(e,f,g,h,i,j){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;k=l;l=l+208|0;m=k+188|0;n=k+184|0;o=k+180|0;p=k+176|0;q=k+172|0;r=k+168|0;s=k+164|0;t=k;u=k+160|0;v=k+156|0;w=k+152|0;x=k+144|0;y=k+192|0;z=k+140|0;A=k+136|0;B=k+132|0;C=k+128|0;D=k+124|0;E=k+120|0;F=k+116|0;G=k+112|0;H=k+108|0;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=i;c[r>>2]=j;c[s>>2]=(c[m>>2]|0)+8;c[u>>2]=(c[o>>2]|0)+1;c[v>>2]=1<>2];c[w>>2]=(c[v>>2]|0)-1;c[x+4>>2]=c[r>>2];c[x>>2]=1;b[y>>1]=1<<(c[r>>2]|0)-1;c[z>>2]=0;while(1){if((c[z>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;if((b[(c[n>>2]|0)+(c[z>>2]<<1)>>1]|0)==-1){o=c[z>>2]|0;j=c[s>>2]|0;i=c[w>>2]|0;c[w>>2]=i+-1;c[j+(i<<3)+4>>2]=o;b[t+(c[z>>2]<<1)>>1]=1;}else{if((b[(c[n>>2]|0)+(c[z>>2]<<1)>>1]|0)>=(b[y>>1]|0))c[x>>2]=0;b[t+(c[z>>2]<<1)>>1]=b[(c[n>>2]|0)+(c[z>>2]<<1)>>1]|0;}c[z>>2]=(c[z>>2]|0)+1;}z=c[m>>2]|0;c[z>>2]=c[x>>2];c[z+4>>2]=c[x+4>>2];c[A>>2]=(c[v>>2]|0)-1;c[B>>2]=((c[v>>2]|0)>>>1)+((c[v>>2]|0)>>>3)+3;c[D>>2]=0;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;c[E>>2]=0;while(1){I=c[C>>2]|0;if((c[E>>2]|0)>=(b[(c[n>>2]|0)+(c[C>>2]<<1)>>1]|0))break;c[(c[s>>2]|0)+(c[D>>2]<<3)+4>>2]=I;c[D>>2]=(c[D>>2]|0)+(c[B>>2]|0)&c[A>>2];while(1){if((c[D>>2]|0)>>>0<=(c[w>>2]|0)>>>0)break;c[D>>2]=(c[D>>2]|0)+(c[B>>2]|0)&c[A>>2];}c[E>>2]=(c[E>>2]|0)+1;}c[C>>2]=I+1;}c[F>>2]=0;while(1){if((c[F>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;c[G>>2]=c[(c[s>>2]|0)+(c[F>>2]<<3)+4>>2];I=t+(c[G>>2]<<1)|0;C=b[I>>1]|0;b[I>>1]=C+1<<16>>16;c[H>>2]=C&65535;C=c[r>>2]|0;I=C-(Ar(c[H>>2]|0)|0)&255;a[(c[s>>2]|0)+(c[F>>2]<<3)+3>>0]=I;b[(c[s>>2]|0)+(c[F>>2]<<3)>>1]=(c[H>>2]<>2]|0)+(c[F>>2]<<3)+3>>0])-(c[v>>2]|0);a[(c[s>>2]|0)+(c[F>>2]<<3)+2>>0]=c[(c[q>>2]|0)+(c[G>>2]<<2)>>2];c[(c[s>>2]|0)+(c[F>>2]<<3)+4>>2]=c[(c[p>>2]|0)+(c[G>>2]<<2)>>2];c[F>>2]=(c[F>>2]|0)+1;}l=k;return;}function Ar(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Br(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+28728>>2]|0)){l=d;return;}c[(c[e>>2]|0)+28740>>2]=c[(c[e>>2]|0)+28728>>2];c[(c[e>>2]|0)+28736>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+28728>>2]|0)-(c[(c[e>>2]|0)+28732>>2]|0)));c[(c[e>>2]|0)+28732>>2]=c[f>>2];c[(c[e>>2]|0)+28728>>2]=c[f>>2];l=d;return;}function Cr(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0;h=l;l=l+64|0;i=h+52|0;j=h+48|0;k=h+44|0;m=h+40|0;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+20|0;s=h+16|0;t=h+12|0;u=h+8|0;v=h+4|0;w=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[n>>2];if(Dr()|0){if(c[p>>2]|0){g=(c[j>>2]|0)+28752+8|0;f=c[g>>2]|0;e=c[g+4>>2]|0;g=(Dr()|0)!=0;d=jE(1,0,(g?25:57)|0)|0;g=y;x=e>>>0>g>>>0|(e|0)==(g|0)&f>>>0>d>>>0;}else x=1;}else x=0;c[r>>2]=x&1;if((c[o>>2]|0)>>>0>=131072){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}c[s>>2]=vr(c[j>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;n=($q(c[s>>2]|0)|0)!=0;x=c[s>>2]|0;if(n){c[i>>2]=x;z=c[i>>2]|0;l=h;return z|0;}c[q>>2]=(c[q>>2]|0)+x;c[o>>2]=(c[o>>2]|0)-(c[s>>2]|0);c[u>>2]=wr(c[j>>2]|0,t,c[q>>2]|0,c[o>>2]|0)|0;s=($q(c[u>>2]|0)|0)!=0;x=c[u>>2]|0;if(s){c[i>>2]=x;z=c[i>>2]|0;l=h;return z|0;}c[q>>2]=(c[q>>2]|0)+x;c[o>>2]=(c[o>>2]|0)-(c[u>>2]|0);if(c[p>>2]|0){p=(c[j>>2]|0)+28752+8|0;u=c[p+4>>2]|0;if((u>>>0>0|(u|0)==0&(c[p>>2]|0)>>>0>16777216)&(c[t>>2]|0)>0)A=13;}else if((c[t>>2]|0)>0)A=13;if((A|0)==13?(c[v>>2]=Er(c[(c[j>>2]|0)+8>>2]|0)|0,A=(Fr()|0)!=0,c[w>>2]=A?7:20,(c[v>>2]|0)>>>0>=(c[w>>2]|0)>>>0):0){c[i>>2]=Gr(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[q>>2]|0,c[o>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;z=c[i>>2]|0;l=h;return z|0;}c[i>>2]=Hr(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[q>>2]|0,c[o>>2]|0,c[t>>2]|0,c[r>>2]|0)|0;z=c[i>>2]|0;l=h;return z|0;}function Dr(){return 1;}function Er(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=l;l=l+32|0;e=b+24|0;f=b+20|0;g=b+16|0;h=b+12|0;i=b+8|0;j=b+4|0;k=b;c[e>>2]=a;c[f>>2]=c[e>>2];c[g>>2]=c[(c[f>>2]|0)+4>>2];c[h>>2]=(c[e>>2]|0)+8;c[i>>2]=1<>2];c[k>>2]=0;c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>=(c[i>>2]|0)>>>0)break;if((d[(c[h>>2]|0)+(c[j>>2]<<3)+2>>0]|0|0)>22)c[k>>2]=(c[k>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1;}c[k>>2]=c[k>>2]<<8-(c[g>>2]|0);l=b;return c[k>>2]|0;}function Fr(){return 0;}function Gr(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;j=i+28|0;k=i+24|0;m=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;h=c[k>>2]|0;g=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;if(c[(c[k>>2]|0)+28944>>2]|0){c[j>>2]=Xr(h,g,m,n,o,p,q)|0;s=c[j>>2]|0;l=i;return s|0;}else{c[j>>2]=Yr(h,g,m,n,o,p,q)|0;s=c[j>>2]|0;l=i;return s|0;}return 0;}function Hr(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;j=i+28|0;k=i+24|0;m=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;h=c[k>>2]|0;g=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;if(c[(c[k>>2]|0)+28944>>2]|0){c[j>>2]=Ir(h,g,m,n,o,p,q)|0;s=c[j>>2]|0;l=i;return s|0;}else{c[j>>2]=Jr(h,g,m,n,o,p,q)|0;s=c[j>>2]|0;l=i;return s|0;}return 0;}function Ir(b,f,g,h,i,j,k){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,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,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0;m=l;l=l+448|0;n=m+432|0;o=m+424|0;p=m+420|0;q=m+416|0;r=m+412|0;s=m+408|0;t=m+404|0;u=m+400|0;v=m+396|0;w=m+392|0;x=m+388|0;y=m+384|0;z=m+380|0;A=m+376|0;B=m+372|0;C=m+368|0;D=m+364|0;E=m+360|0;F=m;G=m+356|0;H=m+352|0;I=m+344|0;J=m+340|0;K=m+336|0;L=m+332|0;M=m+328|0;N=m+320|0;O=m+316|0;P=m+312|0;Q=m+308|0;R=m+304|0;S=m+296|0;T=m+292|0;U=m+288|0;V=m+284|0;W=m+280|0;X=m+264|0;Y=m+256|0;Z=m+252|0;_=m+248|0;$=m+244|0;aa=m+240|0;ba=m+236|0;ca=m+232|0;da=m+228|0;ea=m+224|0;fa=m+220|0;ga=m+216|0;ha=m+212|0;ia=m+208|0;ja=m+204|0;ka=m+200|0;la=m+196|0;ma=m+192|0;na=m+188|0;oa=m+184|0;pa=m+180|0;qa=m+176|0;ra=m+172|0;sa=m+168|0;ta=m+164|0;ua=m+160|0;va=m+156|0;wa=m+152|0;xa=m+148|0;ya=m+80|0;za=m+76|0;Aa=m+72|0;Ba=m+56|0;Ca=m+52|0;Da=m+48|0;Ea=m+44|0;Fa=m+40|0;Ga=m+36|0;Ha=m+32|0;Ia=m+28|0;Ja=m+24|0;Ka=m+20|0;La=m+16|0;c[Fa>>2]=b;c[Ga>>2]=f;c[Ha>>2]=g;c[Ia>>2]=h;c[Ja>>2]=i;c[Ka>>2]=j;c[La>>2]=k;k=c[Ga>>2]|0;Ga=c[Ha>>2]|0;Ha=c[Ia>>2]|0;Ia=c[Ja>>2]|0;Ja=c[Ka>>2]|0;Ka=c[La>>2]|0;c[ha>>2]=c[Fa>>2];c[ia>>2]=k;c[ja>>2]=Ga;c[ka>>2]=Ha;c[la>>2]=Ia;c[ma>>2]=Ja;c[na>>2]=Ka;c[oa>>2]=c[ka>>2];c[pa>>2]=(c[oa>>2]|0)+(c[la>>2]|0);c[qa>>2]=c[ia>>2];c[ra>>2]=(c[qa>>2]|0)+(c[ja>>2]|0);c[sa>>2]=c[qa>>2];c[ta>>2]=c[(c[ha>>2]|0)+28916>>2];c[ua>>2]=(c[ta>>2]|0)+(c[(c[ha>>2]|0)+28932>>2]|0);c[va>>2]=c[(c[ha>>2]|0)+28732>>2];c[wa>>2]=c[(c[ha>>2]|0)+28736>>2];c[xa>>2]=c[(c[ha>>2]|0)+28740>>2];a:do{if(c[ma>>2]|0){c[(c[ha>>2]|0)+28812>>2]=1;c[za>>2]=0;while(1){if((c[za>>2]|0)>>>0>=3)break;c[ya+44+(c[za>>2]<<2)>>2]=c[(c[ha>>2]|0)+16+28700+(c[za>>2]<<2)>>2];c[za>>2]=(c[za>>2]|0)+1;}c[Aa>>2]=Kr(ya,c[oa>>2]|0,(c[pa>>2]|0)-(c[oa>>2]|0)|0)|0;if($q(c[Aa>>2]|0)|0){c[ga>>2]=-20;Ma=c[ga>>2]|0;l=m;return Ma|0;}Lr(ya+20|0,ya,c[c[ha>>2]>>2]|0);Lr(ya+28|0,ya,c[(c[ha>>2]|0)+8>>2]|0);Lr(ya+36|0,ya,c[(c[ha>>2]|0)+4>>2]|0);while(1){ja=(Mr(ya)|0)>>>0<=2;Na=c[ma>>2]|0;if(!(ja?(c[ma>>2]|0)!=0:0))break;c[ma>>2]=Na+-1;ja=c[na>>2]|0;c[V>>2]=ya;c[W>>2]=ja;c[Y>>2]=d[(c[(c[V>>2]|0)+20+4>>2]|0)+(c[(c[V>>2]|0)+20>>2]<<3)+2>>0];c[Z>>2]=d[(c[(c[V>>2]|0)+36+4>>2]|0)+(c[(c[V>>2]|0)+36>>2]<<3)+2>>0];c[_>>2]=d[(c[(c[V>>2]|0)+28+4>>2]|0)+(c[(c[V>>2]|0)+28>>2]<<3)+2>>0];c[$>>2]=(c[Y>>2]|0)+(c[Z>>2]|0)+(c[_>>2]|0);c[aa>>2]=c[(c[(c[V>>2]|0)+20+4>>2]|0)+(c[(c[V>>2]|0)+20>>2]<<3)+4>>2];c[ba>>2]=c[(c[(c[V>>2]|0)+36+4>>2]|0)+(c[(c[V>>2]|0)+36>>2]<<3)+4>>2];c[ca>>2]=c[(c[(c[V>>2]|0)+28+4>>2]|0)+(c[(c[V>>2]|0)+28>>2]<<3)+4>>2];do{if(c[_>>2]|0){ja=(Dr()|0)!=0;if(!(ja&(c[W>>2]|0)!=0&(c[_>>2]|0)>>>0>=25)){ja=c[ca>>2]|0;c[da>>2]=ja+(Nr(c[V>>2]|0,c[_>>2]|0)|0);if(!(Dr()|0))break;Mr(c[V>>2]|0)|0;break;}if((c[_>>2]|0)>>>0<(32-(c[(c[V>>2]|0)+4>>2]|0)|0)>>>0)Oa=c[_>>2]|0;else Oa=32-(c[(c[V>>2]|0)+4>>2]|0)|0;c[ea>>2]=(c[_>>2]|0)-Oa;ja=c[ca>>2]|0;ia=Nr(c[V>>2]|0,(c[_>>2]|0)-(c[ea>>2]|0)|0)|0;c[da>>2]=ja+(ia<>2]);Mr(c[V>>2]|0)|0;if(c[ea>>2]|0){ia=Nr(c[V>>2]|0,c[ea>>2]|0)|0;c[da>>2]=(c[da>>2]|0)+ia;}}else c[da>>2]=0;}while(0);do{if((c[_>>2]|0)>>>0<=1){c[da>>2]=(c[da>>2]|0)+((c[aa>>2]|0)==0&1);if(!(c[da>>2]|0)){c[da>>2]=c[(c[V>>2]|0)+44>>2];break;}ia=(c[V>>2]|0)+44|0;if((c[da>>2]|0)==3)Pa=(c[ia>>2]|0)-1|0;else Pa=c[ia+(c[da>>2]<<2)>>2]|0;c[fa>>2]=Pa;c[fa>>2]=(c[fa>>2]|0)+(((c[fa>>2]|0)!=0^1)&1);if((c[da>>2]|0)!=1)c[(c[V>>2]|0)+44+8>>2]=c[(c[V>>2]|0)+44+4>>2];c[(c[V>>2]|0)+44+4>>2]=c[(c[V>>2]|0)+44>>2];ia=c[fa>>2]|0;c[da>>2]=ia;c[(c[V>>2]|0)+44>>2]=ia;}else{c[(c[V>>2]|0)+44+8>>2]=c[(c[V>>2]|0)+44+4>>2];c[(c[V>>2]|0)+44+4>>2]=c[(c[V>>2]|0)+44>>2];c[(c[V>>2]|0)+44>>2]=c[da>>2];}}while(0);c[X+8>>2]=c[da>>2];ia=c[ba>>2]|0;if((c[Z>>2]|0)>>>0>0)Qa=Nr(c[V>>2]|0,c[Z>>2]|0)|0;else Qa=0;c[X+4>>2]=ia+Qa;if(Dr()|0?((c[Z>>2]|0)+(c[Y>>2]|0)|0)>>>0>=20:0)Mr(c[V>>2]|0)|0;ia=(Fr()|0)!=0;if(ia&(c[$>>2]|0)>>>0>=31)Mr(c[V>>2]|0)|0;ia=c[aa>>2]|0;if((c[Y>>2]|0)>>>0>0)Ra=Nr(c[V>>2]|0,c[Y>>2]|0)|0;else Ra=0;c[X>>2]=ia+Ra;if(Dr()|0)Mr(c[V>>2]|0)|0;ia=c[V>>2]|0;c[Q>>2]=(c[V>>2]|0)+20;c[R>>2]=ia;ia=(c[(c[Q>>2]|0)+4>>2]|0)+(c[c[Q>>2]>>2]<<3)|0;c[S>>2]=c[ia>>2];c[S+4>>2]=c[ia+4>>2];c[T>>2]=d[S+3>>0];c[U>>2]=Or(c[R>>2]|0,c[T>>2]|0)|0;c[c[Q>>2]>>2]=(e[S>>1]|0)+(c[U>>2]|0);ia=c[V>>2]|0;c[L>>2]=(c[V>>2]|0)+36;c[M>>2]=ia;ia=(c[(c[L>>2]|0)+4>>2]|0)+(c[c[L>>2]>>2]<<3)|0;c[N>>2]=c[ia>>2];c[N+4>>2]=c[ia+4>>2];c[O>>2]=d[N+3>>0];c[P>>2]=Or(c[M>>2]|0,c[O>>2]|0)|0;c[c[L>>2]>>2]=(e[N>>1]|0)+(c[P>>2]|0);if(Dr()|0)Mr(c[V>>2]|0)|0;ia=c[V>>2]|0;c[G>>2]=(c[V>>2]|0)+28;c[H>>2]=ia;ia=(c[(c[G>>2]|0)+4>>2]|0)+(c[c[G>>2]>>2]<<3)|0;c[I>>2]=c[ia>>2];c[I+4>>2]=c[ia+4>>2];c[J>>2]=d[I+3>>0];c[K>>2]=Or(c[H>>2]|0,c[J>>2]|0)|0;c[c[G>>2]>>2]=(e[I>>1]|0)+(c[K>>2]|0);c[Ba>>2]=c[X>>2];c[Ba+4>>2]=c[X+4>>2];c[Ba+8>>2]=c[X+8>>2];c[Ba+12>>2]=c[X+12>>2];ia=c[sa>>2]|0;ja=c[ra>>2]|0;la=c[ua>>2]|0;ka=c[va>>2]|0;Ka=c[wa>>2]|0;Ja=c[xa>>2]|0;Ia=F;Ha=Ba;Ga=Ia+16|0;do{a[Ia>>0]=a[Ha>>0]|0;Ia=Ia+1|0;Ha=Ha+1|0;}while((Ia|0)<(Ga|0));c[p>>2]=ia;c[q>>2]=ja;c[r>>2]=ta;c[s>>2]=la;c[t>>2]=ka;c[u>>2]=Ka;c[v>>2]=Ja;c[w>>2]=(c[p>>2]|0)+(c[F>>2]|0);c[x>>2]=(c[F>>2]|0)+(c[F+4>>2]|0);c[y>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[q>>2]|0)+-8;c[A>>2]=(c[c[r>>2]>>2]|0)+(c[F>>2]|0);c[B>>2]=(c[w>>2]|0)+(0-(c[F+8>>2]|0));b:do{if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[o>>2]=-70;else{if((c[A>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break;}Ha=c[p>>2]|0;if((c[w>>2]|0)>>>0>(c[z>>2]|0)>>>0){Ia=c[q>>2]|0;Ga=c[r>>2]|0;k=c[s>>2]|0;Fa=c[t>>2]|0;La=c[u>>2]|0;j=c[v>>2]|0;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];c[o>>2]=Pr(Ha,Ia,n,Ga,k,Fa,La,j)|0;break;}Qr(Ha,c[c[r>>2]>>2]|0);if((c[F>>2]|0)>>>0>8)Rr((c[p>>2]|0)+8|0,(c[c[r>>2]>>2]|0)+8|0,(c[F>>2]|0)-8|0);c[p>>2]=c[w>>2];c[c[r>>2]>>2]=c[A>>2];do{if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[t>>2]|0)|0)>>>0){if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[u>>2]|0)|0)>>>0){c[o>>2]=-20;break b;}c[B>>2]=(c[v>>2]|0)+((c[B>>2]|0)-(c[t>>2]|0));if(((c[B>>2]|0)+(c[F+4>>2]|0)|0)>>>0<=(c[v>>2]|0)>>>0){nE(c[w>>2]|0,c[B>>2]|0,c[F+4>>2]|0)|0;c[o>>2]=c[x>>2];break b;}c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);nE(c[w>>2]|0,c[B>>2]|0,c[C>>2]|0)|0;c[p>>2]=(c[w>>2]|0)+(c[C>>2]|0);Ha=F+4|0;c[Ha>>2]=(c[Ha>>2]|0)-(c[C>>2]|0);c[B>>2]=c[t>>2];if((c[p>>2]|0)>>>0<=(c[z>>2]|0)>>>0?(c[F+4>>2]|0)>>>0>=3:0)break;c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[F+4>>2]|0)>>>0)break;a[(c[p>>2]|0)+(c[D>>2]|0)>>0]=a[(c[B>>2]|0)+(c[D>>2]|0)>>0]|0;c[D>>2]=(c[D>>2]|0)+1;}c[o>>2]=c[x>>2];break b;}}while(0);if((c[F+8>>2]|0)>>>0<8){c[E>>2]=c[6816+(c[F+8>>2]<<2)>>2];a[c[p>>2]>>0]=a[c[B>>2]>>0]|0;a[(c[p>>2]|0)+1>>0]=a[(c[B>>2]|0)+1>>0]|0;a[(c[p>>2]|0)+2>>0]=a[(c[B>>2]|0)+2>>0]|0;a[(c[p>>2]|0)+3>>0]=a[(c[B>>2]|0)+3>>0]|0;c[B>>2]=(c[B>>2]|0)+(c[6848+(c[F+8>>2]<<2)>>2]|0);Sr((c[p>>2]|0)+4|0,c[B>>2]|0);c[B>>2]=(c[B>>2]|0)+(0-(c[E>>2]|0));}else Qr(c[p>>2]|0,c[B>>2]|0);c[p>>2]=(c[p>>2]|0)+8;c[B>>2]=(c[B>>2]|0)+8;Ha=c[p>>2]|0;c:do{if((c[y>>2]|0)>>>0>((c[q>>2]|0)+-13|0)>>>0){if(Ha>>>0<(c[z>>2]|0)>>>0){Rr(c[p>>2]|0,c[B>>2]|0,(c[z>>2]|0)-(c[p>>2]|0)|0);c[B>>2]=(c[B>>2]|0)+((c[z>>2]|0)-(c[p>>2]|0));c[p>>2]=c[z>>2];}while(1){if((c[p>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break c;j=c[B>>2]|0;c[B>>2]=j+1;La=a[j>>0]|0;j=c[p>>2]|0;c[p>>2]=j+1;a[j>>0]=La;}}else Rr(Ha,c[B>>2]|0,(c[F+4>>2]|0)-8|0);}while(0);c[o>>2]=c[x>>2];}}while(0);c[Ca>>2]=c[o>>2];Ja=($q(c[Ca>>2]|0)|0)!=0;Sa=c[Ca>>2]|0;if(Ja){Ta=73;break;}c[sa>>2]=(c[sa>>2]|0)+Sa;}if((Ta|0)==73){c[ga>>2]=Sa;Ma=c[ga>>2]|0;l=m;return Ma|0;}if(Na|0){c[ga>>2]=-20;Ma=c[ga>>2]|0;l=m;return Ma|0;}c[Da>>2]=0;while(1){if((c[Da>>2]|0)>>>0>=3)break a;c[(c[ha>>2]|0)+16+28700+(c[Da>>2]<<2)>>2]=c[ya+44+(c[Da>>2]<<2)>>2];c[Da>>2]=(c[Da>>2]|0)+1;}}}while(0);c[Ea>>2]=(c[ua>>2]|0)-(c[ta>>2]|0);if((c[Ea>>2]|0)>>>0>((c[ra>>2]|0)-(c[sa>>2]|0)|0)>>>0){c[ga>>2]=-70;Ma=c[ga>>2]|0;l=m;return Ma|0;}else{mE(c[sa>>2]|0,c[ta>>2]|0,c[Ea>>2]|0)|0;c[sa>>2]=(c[sa>>2]|0)+(c[Ea>>2]|0);c[ga>>2]=(c[sa>>2]|0)-(c[qa>>2]|0);Ma=c[ga>>2]|0;l=m;return Ma|0;}return 0;}function Jr(b,f,g,h,i,j,k){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,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,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0;m=l;l=l+448|0;n=m+432|0;o=m+424|0;p=m+420|0;q=m+416|0;r=m+412|0;s=m+408|0;t=m+404|0;u=m+400|0;v=m+396|0;w=m+392|0;x=m+388|0;y=m+384|0;z=m+380|0;A=m+376|0;B=m+372|0;C=m+368|0;D=m+364|0;E=m+360|0;F=m;G=m+356|0;H=m+352|0;I=m+344|0;J=m+340|0;K=m+336|0;L=m+332|0;M=m+328|0;N=m+320|0;O=m+316|0;P=m+312|0;Q=m+308|0;R=m+304|0;S=m+296|0;T=m+292|0;U=m+288|0;V=m+284|0;W=m+280|0;X=m+264|0;Y=m+256|0;Z=m+252|0;_=m+248|0;$=m+244|0;aa=m+240|0;ba=m+236|0;ca=m+232|0;da=m+228|0;ea=m+224|0;fa=m+220|0;ga=m+216|0;ha=m+212|0;ia=m+208|0;ja=m+204|0;ka=m+200|0;la=m+196|0;ma=m+192|0;na=m+188|0;oa=m+184|0;pa=m+180|0;qa=m+176|0;ra=m+172|0;sa=m+168|0;ta=m+164|0;ua=m+160|0;va=m+156|0;wa=m+152|0;xa=m+148|0;ya=m+80|0;za=m+76|0;Aa=m+72|0;Ba=m+56|0;Ca=m+52|0;Da=m+48|0;Ea=m+44|0;Fa=m+40|0;Ga=m+36|0;Ha=m+32|0;Ia=m+28|0;Ja=m+24|0;Ka=m+20|0;La=m+16|0;c[Fa>>2]=b;c[Ga>>2]=f;c[Ha>>2]=g;c[Ia>>2]=h;c[Ja>>2]=i;c[Ka>>2]=j;c[La>>2]=k;k=c[Ga>>2]|0;Ga=c[Ha>>2]|0;Ha=c[Ia>>2]|0;Ia=c[Ja>>2]|0;Ja=c[Ka>>2]|0;Ka=c[La>>2]|0;c[ha>>2]=c[Fa>>2];c[ia>>2]=k;c[ja>>2]=Ga;c[ka>>2]=Ha;c[la>>2]=Ia;c[ma>>2]=Ja;c[na>>2]=Ka;c[oa>>2]=c[ka>>2];c[pa>>2]=(c[oa>>2]|0)+(c[la>>2]|0);c[qa>>2]=c[ia>>2];c[ra>>2]=(c[qa>>2]|0)+(c[ja>>2]|0);c[sa>>2]=c[qa>>2];c[ta>>2]=c[(c[ha>>2]|0)+28916>>2];c[ua>>2]=(c[ta>>2]|0)+(c[(c[ha>>2]|0)+28932>>2]|0);c[va>>2]=c[(c[ha>>2]|0)+28732>>2];c[wa>>2]=c[(c[ha>>2]|0)+28736>>2];c[xa>>2]=c[(c[ha>>2]|0)+28740>>2];a:do{if(c[ma>>2]|0){c[(c[ha>>2]|0)+28812>>2]=1;c[za>>2]=0;while(1){if((c[za>>2]|0)>>>0>=3)break;c[ya+44+(c[za>>2]<<2)>>2]=c[(c[ha>>2]|0)+16+28700+(c[za>>2]<<2)>>2];c[za>>2]=(c[za>>2]|0)+1;}c[Aa>>2]=Kr(ya,c[oa>>2]|0,(c[pa>>2]|0)-(c[oa>>2]|0)|0)|0;if($q(c[Aa>>2]|0)|0){c[ga>>2]=-20;Ma=c[ga>>2]|0;l=m;return Ma|0;}Lr(ya+20|0,ya,c[c[ha>>2]>>2]|0);Lr(ya+28|0,ya,c[(c[ha>>2]|0)+8>>2]|0);Lr(ya+36|0,ya,c[(c[ha>>2]|0)+4>>2]|0);while(1){ja=(Mr(ya)|0)>>>0<=2;Na=c[ma>>2]|0;if(!(ja?(c[ma>>2]|0)!=0:0))break;c[ma>>2]=Na+-1;ja=c[na>>2]|0;c[V>>2]=ya;c[W>>2]=ja;c[Y>>2]=d[(c[(c[V>>2]|0)+20+4>>2]|0)+(c[(c[V>>2]|0)+20>>2]<<3)+2>>0];c[Z>>2]=d[(c[(c[V>>2]|0)+36+4>>2]|0)+(c[(c[V>>2]|0)+36>>2]<<3)+2>>0];c[_>>2]=d[(c[(c[V>>2]|0)+28+4>>2]|0)+(c[(c[V>>2]|0)+28>>2]<<3)+2>>0];c[$>>2]=(c[Y>>2]|0)+(c[Z>>2]|0)+(c[_>>2]|0);c[aa>>2]=c[(c[(c[V>>2]|0)+20+4>>2]|0)+(c[(c[V>>2]|0)+20>>2]<<3)+4>>2];c[ba>>2]=c[(c[(c[V>>2]|0)+36+4>>2]|0)+(c[(c[V>>2]|0)+36>>2]<<3)+4>>2];c[ca>>2]=c[(c[(c[V>>2]|0)+28+4>>2]|0)+(c[(c[V>>2]|0)+28>>2]<<3)+4>>2];do{if(c[_>>2]|0){ja=(Dr()|0)!=0;if(!(ja&(c[W>>2]|0)!=0&(c[_>>2]|0)>>>0>=25)){ja=c[ca>>2]|0;c[da>>2]=ja+(Nr(c[V>>2]|0,c[_>>2]|0)|0);if(!(Dr()|0))break;Mr(c[V>>2]|0)|0;break;}if((c[_>>2]|0)>>>0<(32-(c[(c[V>>2]|0)+4>>2]|0)|0)>>>0)Oa=c[_>>2]|0;else Oa=32-(c[(c[V>>2]|0)+4>>2]|0)|0;c[ea>>2]=(c[_>>2]|0)-Oa;ja=c[ca>>2]|0;ia=Nr(c[V>>2]|0,(c[_>>2]|0)-(c[ea>>2]|0)|0)|0;c[da>>2]=ja+(ia<>2]);Mr(c[V>>2]|0)|0;if(c[ea>>2]|0){ia=Nr(c[V>>2]|0,c[ea>>2]|0)|0;c[da>>2]=(c[da>>2]|0)+ia;}}else c[da>>2]=0;}while(0);do{if((c[_>>2]|0)>>>0<=1){c[da>>2]=(c[da>>2]|0)+((c[aa>>2]|0)==0&1);if(!(c[da>>2]|0)){c[da>>2]=c[(c[V>>2]|0)+44>>2];break;}ia=(c[V>>2]|0)+44|0;if((c[da>>2]|0)==3)Pa=(c[ia>>2]|0)-1|0;else Pa=c[ia+(c[da>>2]<<2)>>2]|0;c[fa>>2]=Pa;c[fa>>2]=(c[fa>>2]|0)+(((c[fa>>2]|0)!=0^1)&1);if((c[da>>2]|0)!=1)c[(c[V>>2]|0)+44+8>>2]=c[(c[V>>2]|0)+44+4>>2];c[(c[V>>2]|0)+44+4>>2]=c[(c[V>>2]|0)+44>>2];ia=c[fa>>2]|0;c[da>>2]=ia;c[(c[V>>2]|0)+44>>2]=ia;}else{c[(c[V>>2]|0)+44+8>>2]=c[(c[V>>2]|0)+44+4>>2];c[(c[V>>2]|0)+44+4>>2]=c[(c[V>>2]|0)+44>>2];c[(c[V>>2]|0)+44>>2]=c[da>>2];}}while(0);c[X+8>>2]=c[da>>2];ia=c[ba>>2]|0;if((c[Z>>2]|0)>>>0>0)Qa=Nr(c[V>>2]|0,c[Z>>2]|0)|0;else Qa=0;c[X+4>>2]=ia+Qa;if(Dr()|0?((c[Z>>2]|0)+(c[Y>>2]|0)|0)>>>0>=20:0)Mr(c[V>>2]|0)|0;ia=(Fr()|0)!=0;if(ia&(c[$>>2]|0)>>>0>=31)Mr(c[V>>2]|0)|0;ia=c[aa>>2]|0;if((c[Y>>2]|0)>>>0>0)Ra=Nr(c[V>>2]|0,c[Y>>2]|0)|0;else Ra=0;c[X>>2]=ia+Ra;if(Dr()|0)Mr(c[V>>2]|0)|0;ia=c[V>>2]|0;c[Q>>2]=(c[V>>2]|0)+20;c[R>>2]=ia;ia=(c[(c[Q>>2]|0)+4>>2]|0)+(c[c[Q>>2]>>2]<<3)|0;c[S>>2]=c[ia>>2];c[S+4>>2]=c[ia+4>>2];c[T>>2]=d[S+3>>0];c[U>>2]=Or(c[R>>2]|0,c[T>>2]|0)|0;c[c[Q>>2]>>2]=(e[S>>1]|0)+(c[U>>2]|0);ia=c[V>>2]|0;c[L>>2]=(c[V>>2]|0)+36;c[M>>2]=ia;ia=(c[(c[L>>2]|0)+4>>2]|0)+(c[c[L>>2]>>2]<<3)|0;c[N>>2]=c[ia>>2];c[N+4>>2]=c[ia+4>>2];c[O>>2]=d[N+3>>0];c[P>>2]=Or(c[M>>2]|0,c[O>>2]|0)|0;c[c[L>>2]>>2]=(e[N>>1]|0)+(c[P>>2]|0);if(Dr()|0)Mr(c[V>>2]|0)|0;ia=c[V>>2]|0;c[G>>2]=(c[V>>2]|0)+28;c[H>>2]=ia;ia=(c[(c[G>>2]|0)+4>>2]|0)+(c[c[G>>2]>>2]<<3)|0;c[I>>2]=c[ia>>2];c[I+4>>2]=c[ia+4>>2];c[J>>2]=d[I+3>>0];c[K>>2]=Or(c[H>>2]|0,c[J>>2]|0)|0;c[c[G>>2]>>2]=(e[I>>1]|0)+(c[K>>2]|0);c[Ba>>2]=c[X>>2];c[Ba+4>>2]=c[X+4>>2];c[Ba+8>>2]=c[X+8>>2];c[Ba+12>>2]=c[X+12>>2];ia=c[sa>>2]|0;ja=c[ra>>2]|0;la=c[ua>>2]|0;ka=c[va>>2]|0;Ka=c[wa>>2]|0;Ja=c[xa>>2]|0;Ia=F;Ha=Ba;Ga=Ia+16|0;do{a[Ia>>0]=a[Ha>>0]|0;Ia=Ia+1|0;Ha=Ha+1|0;}while((Ia|0)<(Ga|0));c[p>>2]=ia;c[q>>2]=ja;c[r>>2]=ta;c[s>>2]=la;c[t>>2]=ka;c[u>>2]=Ka;c[v>>2]=Ja;c[w>>2]=(c[p>>2]|0)+(c[F>>2]|0);c[x>>2]=(c[F>>2]|0)+(c[F+4>>2]|0);c[y>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[q>>2]|0)+-8;c[A>>2]=(c[c[r>>2]>>2]|0)+(c[F>>2]|0);c[B>>2]=(c[w>>2]|0)+(0-(c[F+8>>2]|0));b:do{if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[o>>2]=-70;else{if((c[A>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break;}Ha=c[p>>2]|0;if((c[w>>2]|0)>>>0>(c[z>>2]|0)>>>0){Ia=c[q>>2]|0;Ga=c[r>>2]|0;k=c[s>>2]|0;Fa=c[t>>2]|0;La=c[u>>2]|0;j=c[v>>2]|0;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];c[o>>2]=Pr(Ha,Ia,n,Ga,k,Fa,La,j)|0;break;}Qr(Ha,c[c[r>>2]>>2]|0);if((c[F>>2]|0)>>>0>8)Rr((c[p>>2]|0)+8|0,(c[c[r>>2]>>2]|0)+8|0,(c[F>>2]|0)-8|0);c[p>>2]=c[w>>2];c[c[r>>2]>>2]=c[A>>2];do{if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[t>>2]|0)|0)>>>0){if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[u>>2]|0)|0)>>>0){c[o>>2]=-20;break b;}c[B>>2]=(c[v>>2]|0)+((c[B>>2]|0)-(c[t>>2]|0));if(((c[B>>2]|0)+(c[F+4>>2]|0)|0)>>>0<=(c[v>>2]|0)>>>0){nE(c[w>>2]|0,c[B>>2]|0,c[F+4>>2]|0)|0;c[o>>2]=c[x>>2];break b;}c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);nE(c[w>>2]|0,c[B>>2]|0,c[C>>2]|0)|0;c[p>>2]=(c[w>>2]|0)+(c[C>>2]|0);Ha=F+4|0;c[Ha>>2]=(c[Ha>>2]|0)-(c[C>>2]|0);c[B>>2]=c[t>>2];if((c[p>>2]|0)>>>0<=(c[z>>2]|0)>>>0?(c[F+4>>2]|0)>>>0>=3:0)break;c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[F+4>>2]|0)>>>0)break;a[(c[p>>2]|0)+(c[D>>2]|0)>>0]=a[(c[B>>2]|0)+(c[D>>2]|0)>>0]|0;c[D>>2]=(c[D>>2]|0)+1;}c[o>>2]=c[x>>2];break b;}}while(0);if((c[F+8>>2]|0)>>>0<8){c[E>>2]=c[6816+(c[F+8>>2]<<2)>>2];a[c[p>>2]>>0]=a[c[B>>2]>>0]|0;a[(c[p>>2]|0)+1>>0]=a[(c[B>>2]|0)+1>>0]|0;a[(c[p>>2]|0)+2>>0]=a[(c[B>>2]|0)+2>>0]|0;a[(c[p>>2]|0)+3>>0]=a[(c[B>>2]|0)+3>>0]|0;c[B>>2]=(c[B>>2]|0)+(c[6848+(c[F+8>>2]<<2)>>2]|0);Sr((c[p>>2]|0)+4|0,c[B>>2]|0);c[B>>2]=(c[B>>2]|0)+(0-(c[E>>2]|0));}else Qr(c[p>>2]|0,c[B>>2]|0);c[p>>2]=(c[p>>2]|0)+8;c[B>>2]=(c[B>>2]|0)+8;Ha=c[p>>2]|0;c:do{if((c[y>>2]|0)>>>0>((c[q>>2]|0)+-13|0)>>>0){if(Ha>>>0<(c[z>>2]|0)>>>0){Rr(c[p>>2]|0,c[B>>2]|0,(c[z>>2]|0)-(c[p>>2]|0)|0);c[B>>2]=(c[B>>2]|0)+((c[z>>2]|0)-(c[p>>2]|0));c[p>>2]=c[z>>2];}while(1){if((c[p>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break c;j=c[B>>2]|0;c[B>>2]=j+1;La=a[j>>0]|0;j=c[p>>2]|0;c[p>>2]=j+1;a[j>>0]=La;}}else Rr(Ha,c[B>>2]|0,(c[F+4>>2]|0)-8|0);}while(0);c[o>>2]=c[x>>2];}}while(0);c[Ca>>2]=c[o>>2];Ja=($q(c[Ca>>2]|0)|0)!=0;Sa=c[Ca>>2]|0;if(Ja){Ta=73;break;}c[sa>>2]=(c[sa>>2]|0)+Sa;}if((Ta|0)==73){c[ga>>2]=Sa;Ma=c[ga>>2]|0;l=m;return Ma|0;}if(Na|0){c[ga>>2]=-20;Ma=c[ga>>2]|0;l=m;return Ma|0;}c[Da>>2]=0;while(1){if((c[Da>>2]|0)>>>0>=3)break a;c[(c[ha>>2]|0)+16+28700+(c[Da>>2]<<2)>>2]=c[ya+44+(c[Da>>2]<<2)>>2];c[Da>>2]=(c[Da>>2]|0)+1;}}}while(0);c[Ea>>2]=(c[ua>>2]|0)-(c[ta>>2]|0);if((c[Ea>>2]|0)>>>0>((c[ra>>2]|0)-(c[sa>>2]|0)|0)>>>0){c[ga>>2]=-70;Ma=c[ga>>2]|0;l=m;return Ma|0;}else{mE(c[sa>>2]|0,c[ta>>2]|0,c[Ea>>2]|0)|0;c[sa>>2]=(c[sa>>2]|0)+(c[Ea>>2]|0);c[ga>>2]=(c[sa>>2]|0)-(c[qa>>2]|0);Ma=c[ga>>2]|0;l=m;return Ma|0;}return 0;}function Kr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;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[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}c[(c[i>>2]|0)+12>>2]=c[j>>2];c[(c[i>>2]|0)+16>>2]=(c[(c[i>>2]|0)+12>>2]|0)+4;do{if((c[k>>2]|0)>>>0>=4){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;f=Wr(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=f;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0)p=8-(Ar(d[m>>0]|0)|0)|0;else p=0;c[(c[i>>2]|0)+4>>2]=p;if(!(d[m>>0]|0)){c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);q=10;break;}case 6:{q=10;break;}case 5:{q=11;break;}case 4:{q=12;break;}case 3:{q=13;break;}case 2:{q=14;break;}default:{}}if((q|0)==10){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);q=11;}if((q|0)==11){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);q=12;}if((q|0)==12){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);q=13;}if((q|0)==13){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);q=14;}if((q|0)==14){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0)r=8-(Ar(d[n>>0]|0)|0)|0;else r=0;c[(c[i>>2]|0)+4>>2]=r;if(d[n>>0]|0|0){f=(c[i>>2]|0)+4|0;c[f>>2]=(c[f>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-20;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function Lr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[h>>2];c[j>>2]=c[i>>2];i=Or(c[g>>2]|0,c[(c[j>>2]|0)+4>>2]|0)|0;c[c[f>>2]>>2]=i;Mr(c[g>>2]|0)|0;c[(c[f>>2]|0)+4>>2]=(c[h>>2]|0)+8;l=e;return;}function Mr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=Wr(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=Wr(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function Nr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Vr(c[e>>2]|0,c[f>>2]|0)|0;Ur(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Or(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Tr(c[e>>2]|0,c[f>>2]|0)|0;Ur(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function Pr(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;k=l;l=l+64|0;m=k+56|0;n=k+52|0;o=k+48|0;p=k+44|0;q=k+40|0;r=k+36|0;s=k+32|0;t=k+28|0;u=k+24|0;v=k+20|0;w=k+16|0;x=k+12|0;y=k+8|0;z=k+4|0;A=k;c[n>>2]=b;c[o>>2]=d;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=(c[n>>2]|0)+(c[e>>2]|0);c[v>>2]=(c[e>>2]|0)+(c[e+4>>2]|0);c[w>>2]=(c[n>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[o>>2]|0)+-8;c[y>>2]=(c[c[p>>2]>>2]|0)+(c[e>>2]|0);c[z>>2]=(c[u>>2]|0)+(0-(c[e+8>>2]|0));if((c[w>>2]|0)>>>0>(c[o>>2]|0)>>>0){c[m>>2]=-70;B=c[m>>2]|0;l=k;return B|0;}if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0){c[m>>2]=-20;B=c[m>>2]|0;l=k;return B|0;}if((c[u>>2]|0)>>>0<=(c[x>>2]|0)>>>0){c[m>>2]=-1;B=c[m>>2]|0;l=k;return B|0;}if((c[n>>2]|0)>>>0<(c[x>>2]|0)>>>0){Rr(c[n>>2]|0,c[c[p>>2]>>2]|0,(c[x>>2]|0)-(c[n>>2]|0)|0);q=c[p>>2]|0;c[q>>2]=(c[q>>2]|0)+((c[x>>2]|0)-(c[n>>2]|0));c[n>>2]=c[x>>2];}while(1){if((c[n>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;x=c[p>>2]|0;q=c[x>>2]|0;c[x>>2]=q+1;x=a[q>>0]|0;q=c[n>>2]|0;c[n>>2]=q+1;a[q>>0]=x;}do{if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[r>>2]|0)|0)>>>0){if((c[e+8>>2]|0)>>>0>((c[u>>2]|0)-(c[s>>2]|0)|0)>>>0){c[m>>2]=-20;B=c[m>>2]|0;l=k;return B|0;}c[z>>2]=(c[t>>2]|0)+(0-((c[r>>2]|0)-(c[z>>2]|0)));if(((c[z>>2]|0)+(c[e+4>>2]|0)|0)>>>0>(c[t>>2]|0)>>>0){c[A>>2]=(c[t>>2]|0)-(c[z>>2]|0);nE(c[u>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;c[n>>2]=(c[u>>2]|0)+(c[A>>2]|0);p=e+4|0;c[p>>2]=(c[p>>2]|0)-(c[A>>2]|0);c[z>>2]=c[r>>2];break;}nE(c[u>>2]|0,c[z>>2]|0,c[e+4>>2]|0)|0;c[m>>2]=c[v>>2];B=c[m>>2]|0;l=k;return B|0;}}while(0);while(1){if((c[n>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;e=c[z>>2]|0;c[z>>2]=e+1;u=a[e>>0]|0;e=c[n>>2]|0;c[n>>2]=e+1;a[e>>0]=u;}c[m>>2]=c[v>>2];B=c[m>>2]|0;l=k;return B|0;}function Qr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Rr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Qr(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Sr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;l=e;return;}function Tr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function Ur(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function Vr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function Wr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Dr()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=hq(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=sq(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Xr(b,f,g,h,i,j,k){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,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,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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=0,ac=0;m=l;l=l+784|0;n=m+760|0;o=m+756|0;p=m+752|0;q=m+748|0;r=m+744|0;s=m+740|0;t=m+736|0;u=m+732|0;v=m+728|0;w=m+724|0;x=m+720|0;y=m+716|0;z=m+712|0;A=m+708|0;B=m+704|0;C=m+700|0;D=m+696|0;E=m+692|0;F=m+80|0;G=m+688|0;H=m+684|0;I=m+680|0;J=m+676|0;K=m+672|0;L=m+668|0;M=m+664|0;N=m+660|0;O=m+656|0;P=m+652|0;Q=m+648|0;R=m+644|0;S=m+640|0;T=m+636|0;U=m+632|0;V=m+628|0;W=m+624|0;X=m+64|0;Y=m+620|0;Z=m+616|0;_=m+608|0;$=m+604|0;aa=m+600|0;ba=m+596|0;ca=m+592|0;da=m+584|0;ea=m+580|0;fa=m+576|0;ga=m+572|0;ha=m+568|0;ia=m+560|0;ja=m+556|0;ka=m+552|0;la=m+548|0;ma=m+544|0;na=m+528|0;oa=m+524|0;pa=m+520|0;qa=m+516|0;ra=m+512|0;sa=m+508|0;ta=m+504|0;ua=m+500|0;va=m+496|0;wa=m+492|0;xa=m+488|0;ya=m+484|0;za=m+480|0;Aa=m+476|0;Ba=m+472|0;Ca=m+464|0;Da=m+460|0;Ea=m+456|0;Fa=m+452|0;Ga=m+448|0;Ha=m+440|0;Ia=m+436|0;Ja=m+432|0;Ka=m+428|0;La=m+424|0;Ma=m+416|0;Na=m+412|0;Oa=m+408|0;Pa=m+404|0;Qa=m+400|0;Ra=m+384|0;Sa=m+376|0;Ta=m+372|0;Ua=m+368|0;Va=m+364|0;Wa=m+360|0;Xa=m+356|0;Ya=m+352|0;Za=m+348|0;_a=m+344|0;$a=m+340|0;ab=m+336|0;bb=m+332|0;cb=m+328|0;db=m+324|0;eb=m+320|0;fb=m+316|0;gb=m+312|0;hb=m+308|0;ib=m+304|0;jb=m+300|0;kb=m+296|0;lb=m+292|0;mb=m+288|0;nb=m+284|0;ob=m+280|0;pb=m+276|0;qb=m+272|0;rb=m+268|0;sb=m+264|0;tb=m+260|0;ub=m;vb=m+256|0;wb=m+188|0;xb=m+184|0;yb=m+180|0;zb=m+176|0;Ab=m+160|0;Bb=m+144|0;Cb=m+136|0;Db=m+132|0;Eb=m+128|0;Fb=m+124|0;Gb=m+120|0;Hb=m+116|0;Ib=m+112|0;Jb=m+108|0;Kb=m+104|0;Lb=m+100|0;Mb=m+96|0;c[Gb>>2]=b;c[Hb>>2]=f;c[Ib>>2]=g;c[Jb>>2]=h;c[Kb>>2]=i;c[Lb>>2]=j;c[Mb>>2]=k;k=c[Hb>>2]|0;Hb=c[Ib>>2]|0;Ib=c[Jb>>2]|0;Jb=c[Kb>>2]|0;Kb=c[Lb>>2]|0;Lb=c[Mb>>2]|0;c[db>>2]=c[Gb>>2];c[eb>>2]=k;c[fb>>2]=Hb;c[gb>>2]=Ib;c[hb>>2]=Jb;c[ib>>2]=Kb;c[jb>>2]=Lb;c[kb>>2]=c[gb>>2];c[lb>>2]=(c[kb>>2]|0)+(c[hb>>2]|0);c[mb>>2]=c[eb>>2];c[nb>>2]=(c[mb>>2]|0)+(c[fb>>2]|0);c[ob>>2]=c[mb>>2];c[pb>>2]=c[(c[db>>2]|0)+28916>>2];c[qb>>2]=(c[pb>>2]|0)+(c[(c[db>>2]|0)+28932>>2]|0);c[rb>>2]=c[(c[db>>2]|0)+28732>>2];c[sb>>2]=c[(c[db>>2]|0)+28736>>2];c[tb>>2]=c[(c[db>>2]|0)+28740>>2];a:do{if(c[ib>>2]|0){c[vb>>2]=(c[ib>>2]|0)<4?c[ib>>2]|0:4;c[(c[db>>2]|0)+28812>>2]=1;c[yb>>2]=0;while(1){if((c[yb>>2]|0)>>>0>=3)break;c[wb+44+(c[yb>>2]<<2)>>2]=c[(c[db>>2]|0)+16+28700+(c[yb>>2]<<2)>>2];c[yb>>2]=(c[yb>>2]|0)+1;}c[wb+56>>2]=c[rb>>2];c[wb+64>>2]=(c[ob>>2]|0)-(c[rb>>2]|0);c[wb+60>>2]=c[tb>>2];c[zb>>2]=Kr(wb,c[kb>>2]|0,(c[lb>>2]|0)-(c[kb>>2]|0)|0)|0;if($q(c[zb>>2]|0)|0){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}Lr(wb+20|0,wb,c[c[db>>2]>>2]|0);Lr(wb+28|0,wb,c[(c[db>>2]|0)+8>>2]|0);Lr(wb+36|0,wb,c[(c[db>>2]|0)+4>>2]|0);c[xb>>2]=0;while(1){if((Mr(wb)|0)>>>0<=2)Ob=(c[xb>>2]|0)<(c[vb>>2]|0);else Ob=0;Pb=c[xb>>2]|0;if(!Ob)break;fb=ub+(Pb<<4)|0;eb=c[jb>>2]|0;c[Pa>>2]=wb;c[Qa>>2]=eb;c[Sa>>2]=d[(c[(c[Pa>>2]|0)+20+4>>2]|0)+(c[(c[Pa>>2]|0)+20>>2]<<3)+2>>0];c[Ta>>2]=d[(c[(c[Pa>>2]|0)+36+4>>2]|0)+(c[(c[Pa>>2]|0)+36>>2]<<3)+2>>0];c[Ua>>2]=d[(c[(c[Pa>>2]|0)+28+4>>2]|0)+(c[(c[Pa>>2]|0)+28>>2]<<3)+2>>0];c[Va>>2]=(c[Sa>>2]|0)+(c[Ta>>2]|0)+(c[Ua>>2]|0);c[Wa>>2]=c[(c[(c[Pa>>2]|0)+20+4>>2]|0)+(c[(c[Pa>>2]|0)+20>>2]<<3)+4>>2];c[Xa>>2]=c[(c[(c[Pa>>2]|0)+36+4>>2]|0)+(c[(c[Pa>>2]|0)+36>>2]<<3)+4>>2];c[Ya>>2]=c[(c[(c[Pa>>2]|0)+28+4>>2]|0)+(c[(c[Pa>>2]|0)+28>>2]<<3)+4>>2];do{if(c[Ua>>2]|0){eb=(Dr()|0)!=0;if(!(eb&(c[Qa>>2]|0)!=0)){eb=c[Ya>>2]|0;c[Za>>2]=eb+(Nr(c[Pa>>2]|0,c[Ua>>2]|0)|0);if(!(Dr()|0))break;Mr(c[Pa>>2]|0)|0;break;}c[_a>>2]=(c[Ua>>2]|0)-((c[Ua>>2]|0)>>>0<24?c[Ua>>2]|0:24);eb=c[Ya>>2]|0;hb=Nr(c[Pa>>2]|0,(c[Ua>>2]|0)-(c[_a>>2]|0)|0)|0;c[Za>>2]=eb+(hb<>2]);hb=(Dr()|0)!=0;if(hb|(c[_a>>2]|0)!=0)Mr(c[Pa>>2]|0)|0;if(c[_a>>2]|0){hb=Nr(c[Pa>>2]|0,c[_a>>2]|0)|0;c[Za>>2]=(c[Za>>2]|0)+hb;}}else c[Za>>2]=0;}while(0);do{if((c[Ua>>2]|0)>>>0<=1){c[Za>>2]=(c[Za>>2]|0)+((c[Wa>>2]|0)==0&1);if(!(c[Za>>2]|0)){c[Za>>2]=c[(c[Pa>>2]|0)+44>>2];break;}hb=(c[Pa>>2]|0)+44|0;if((c[Za>>2]|0)==3)Qb=(c[hb>>2]|0)-1|0;else Qb=c[hb+(c[Za>>2]<<2)>>2]|0;c[$a>>2]=Qb;c[$a>>2]=(c[$a>>2]|0)+(((c[$a>>2]|0)!=0^1)&1);if((c[Za>>2]|0)!=1)c[(c[Pa>>2]|0)+44+8>>2]=c[(c[Pa>>2]|0)+44+4>>2];c[(c[Pa>>2]|0)+44+4>>2]=c[(c[Pa>>2]|0)+44>>2];hb=c[$a>>2]|0;c[Za>>2]=hb;c[(c[Pa>>2]|0)+44>>2]=hb;}else{c[(c[Pa>>2]|0)+44+8>>2]=c[(c[Pa>>2]|0)+44+4>>2];c[(c[Pa>>2]|0)+44+4>>2]=c[(c[Pa>>2]|0)+44>>2];c[(c[Pa>>2]|0)+44>>2]=c[Za>>2];}}while(0);c[Ra+8>>2]=c[Za>>2];hb=c[Xa>>2]|0;if((c[Ta>>2]|0)>>>0>0)Rb=Nr(c[Pa>>2]|0,c[Ta>>2]|0)|0;else Rb=0;c[Ra+4>>2]=hb+Rb;if(Dr()|0?((c[Ta>>2]|0)+(c[Sa>>2]|0)|0)>>>0>=20:0)Mr(c[Pa>>2]|0)|0;hb=(Fr()|0)!=0;if(hb&(c[Va>>2]|0)>>>0>=31)Mr(c[Pa>>2]|0)|0;hb=c[Wa>>2]|0;if((c[Sa>>2]|0)>>>0>0)Sb=Nr(c[Pa>>2]|0,c[Sa>>2]|0)|0;else Sb=0;c[Ra>>2]=hb+Sb;if(Dr()|0)Mr(c[Pa>>2]|0)|0;c[ab>>2]=(c[(c[Pa>>2]|0)+64>>2]|0)+(c[Ra>>2]|0);hb=c[Pa>>2]|0;if((c[Ra+8>>2]|0)>>>0>(c[ab>>2]|0)>>>0)Tb=c[hb+60>>2]|0;else Tb=c[hb+56>>2]|0;c[bb>>2]=Tb;c[Ra+12>>2]=(c[bb>>2]|0)+(c[ab>>2]|0)+(0-(c[Ra+8>>2]|0));c[(c[Pa>>2]|0)+64>>2]=(c[ab>>2]|0)+(c[Ra+4>>2]|0);hb=c[Pa>>2]|0;c[Ka>>2]=(c[Pa>>2]|0)+20;c[La>>2]=hb;hb=(c[(c[Ka>>2]|0)+4>>2]|0)+(c[c[Ka>>2]>>2]<<3)|0;c[Ma>>2]=c[hb>>2];c[Ma+4>>2]=c[hb+4>>2];c[Na>>2]=d[Ma+3>>0];c[Oa>>2]=Or(c[La>>2]|0,c[Na>>2]|0)|0;c[c[Ka>>2]>>2]=(e[Ma>>1]|0)+(c[Oa>>2]|0);hb=c[Pa>>2]|0;c[Fa>>2]=(c[Pa>>2]|0)+36;c[Ga>>2]=hb;hb=(c[(c[Fa>>2]|0)+4>>2]|0)+(c[c[Fa>>2]>>2]<<3)|0;c[Ha>>2]=c[hb>>2];c[Ha+4>>2]=c[hb+4>>2];c[Ia>>2]=d[Ha+3>>0];c[Ja>>2]=Or(c[Ga>>2]|0,c[Ia>>2]|0)|0;c[c[Fa>>2]>>2]=(e[Ha>>1]|0)+(c[Ja>>2]|0);if(Dr()|0)Mr(c[Pa>>2]|0)|0;hb=c[Pa>>2]|0;c[Aa>>2]=(c[Pa>>2]|0)+28;c[Ba>>2]=hb;hb=(c[(c[Aa>>2]|0)+4>>2]|0)+(c[c[Aa>>2]>>2]<<3)|0;c[Ca>>2]=c[hb>>2];c[Ca+4>>2]=c[hb+4>>2];c[Da>>2]=d[Ca+3>>0];c[Ea>>2]=Or(c[Ba>>2]|0,c[Da>>2]|0)|0;c[c[Aa>>2]>>2]=(e[Ca>>1]|0)+(c[Ea>>2]|0);c[Ab>>2]=c[Ra>>2];c[Ab+4>>2]=c[Ra+4>>2];c[Ab+8>>2]=c[Ra+8>>2];c[Ab+12>>2]=c[Ra+12>>2];c[fb>>2]=c[Ab>>2];c[fb+4>>2]=c[Ab+4>>2];c[fb+8>>2]=c[Ab+8>>2];c[fb+12>>2]=c[Ab+12>>2];c[xb>>2]=(c[xb>>2]|0)+1;}if((Pb|0)<(c[vb>>2]|0)){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}while(1){if((Mr(wb)|0)>>>0>2)break;if((c[xb>>2]|0)>=(c[ib>>2]|0))break;hb=c[jb>>2]|0;c[la>>2]=wb;c[ma>>2]=hb;c[oa>>2]=d[(c[(c[la>>2]|0)+20+4>>2]|0)+(c[(c[la>>2]|0)+20>>2]<<3)+2>>0];c[pa>>2]=d[(c[(c[la>>2]|0)+36+4>>2]|0)+(c[(c[la>>2]|0)+36>>2]<<3)+2>>0];c[qa>>2]=d[(c[(c[la>>2]|0)+28+4>>2]|0)+(c[(c[la>>2]|0)+28>>2]<<3)+2>>0];c[ra>>2]=(c[oa>>2]|0)+(c[pa>>2]|0)+(c[qa>>2]|0);c[sa>>2]=c[(c[(c[la>>2]|0)+20+4>>2]|0)+(c[(c[la>>2]|0)+20>>2]<<3)+4>>2];c[ta>>2]=c[(c[(c[la>>2]|0)+36+4>>2]|0)+(c[(c[la>>2]|0)+36>>2]<<3)+4>>2];c[ua>>2]=c[(c[(c[la>>2]|0)+28+4>>2]|0)+(c[(c[la>>2]|0)+28>>2]<<3)+4>>2];do{if(c[qa>>2]|0){hb=(Dr()|0)!=0;if(!(hb&(c[ma>>2]|0)!=0)){hb=c[ua>>2]|0;c[va>>2]=hb+(Nr(c[la>>2]|0,c[qa>>2]|0)|0);if(!(Dr()|0))break;Mr(c[la>>2]|0)|0;break;}c[wa>>2]=(c[qa>>2]|0)-((c[qa>>2]|0)>>>0<24?c[qa>>2]|0:24);hb=c[ua>>2]|0;eb=Nr(c[la>>2]|0,(c[qa>>2]|0)-(c[wa>>2]|0)|0)|0;c[va>>2]=hb+(eb<>2]);eb=(Dr()|0)!=0;if(eb|(c[wa>>2]|0)!=0)Mr(c[la>>2]|0)|0;if(c[wa>>2]|0){eb=Nr(c[la>>2]|0,c[wa>>2]|0)|0;c[va>>2]=(c[va>>2]|0)+eb;}}else c[va>>2]=0;}while(0);do{if((c[qa>>2]|0)>>>0<=1){c[va>>2]=(c[va>>2]|0)+((c[sa>>2]|0)==0&1);if(!(c[va>>2]|0)){c[va>>2]=c[(c[la>>2]|0)+44>>2];break;}fb=(c[la>>2]|0)+44|0;if((c[va>>2]|0)==3)Ub=(c[fb>>2]|0)-1|0;else Ub=c[fb+(c[va>>2]<<2)>>2]|0;c[xa>>2]=Ub;c[xa>>2]=(c[xa>>2]|0)+(((c[xa>>2]|0)!=0^1)&1);if((c[va>>2]|0)!=1)c[(c[la>>2]|0)+44+8>>2]=c[(c[la>>2]|0)+44+4>>2];c[(c[la>>2]|0)+44+4>>2]=c[(c[la>>2]|0)+44>>2];fb=c[xa>>2]|0;c[va>>2]=fb;c[(c[la>>2]|0)+44>>2]=fb;}else{c[(c[la>>2]|0)+44+8>>2]=c[(c[la>>2]|0)+44+4>>2];c[(c[la>>2]|0)+44+4>>2]=c[(c[la>>2]|0)+44>>2];c[(c[la>>2]|0)+44>>2]=c[va>>2];}}while(0);c[na+8>>2]=c[va>>2];fb=c[ta>>2]|0;if((c[pa>>2]|0)>>>0>0)Vb=Nr(c[la>>2]|0,c[pa>>2]|0)|0;else Vb=0;c[na+4>>2]=fb+Vb;if(Dr()|0?((c[pa>>2]|0)+(c[oa>>2]|0)|0)>>>0>=20:0)Mr(c[la>>2]|0)|0;fb=(Fr()|0)!=0;if(fb&(c[ra>>2]|0)>>>0>=31)Mr(c[la>>2]|0)|0;fb=c[sa>>2]|0;if((c[oa>>2]|0)>>>0>0)Wb=Nr(c[la>>2]|0,c[oa>>2]|0)|0;else Wb=0;c[na>>2]=fb+Wb;if(Dr()|0)Mr(c[la>>2]|0)|0;c[ya>>2]=(c[(c[la>>2]|0)+64>>2]|0)+(c[na>>2]|0);fb=c[la>>2]|0;if((c[na+8>>2]|0)>>>0>(c[ya>>2]|0)>>>0)Xb=c[fb+60>>2]|0;else Xb=c[fb+56>>2]|0;c[za>>2]=Xb;c[na+12>>2]=(c[za>>2]|0)+(c[ya>>2]|0)+(0-(c[na+8>>2]|0));c[(c[la>>2]|0)+64>>2]=(c[ya>>2]|0)+(c[na+4>>2]|0);fb=c[la>>2]|0;c[ga>>2]=(c[la>>2]|0)+20;c[ha>>2]=fb;fb=(c[(c[ga>>2]|0)+4>>2]|0)+(c[c[ga>>2]>>2]<<3)|0;c[ia>>2]=c[fb>>2];c[ia+4>>2]=c[fb+4>>2];c[ja>>2]=d[ia+3>>0];c[ka>>2]=Or(c[ha>>2]|0,c[ja>>2]|0)|0;c[c[ga>>2]>>2]=(e[ia>>1]|0)+(c[ka>>2]|0);fb=c[la>>2]|0;c[ba>>2]=(c[la>>2]|0)+36;c[ca>>2]=fb;fb=(c[(c[ba>>2]|0)+4>>2]|0)+(c[c[ba>>2]>>2]<<3)|0;c[da>>2]=c[fb>>2];c[da+4>>2]=c[fb+4>>2];c[ea>>2]=d[da+3>>0];c[fa>>2]=Or(c[ca>>2]|0,c[ea>>2]|0)|0;c[c[ba>>2]>>2]=(e[da>>1]|0)+(c[fa>>2]|0);if(Dr()|0)Mr(c[la>>2]|0)|0;fb=c[la>>2]|0;c[Y>>2]=(c[la>>2]|0)+28;c[Z>>2]=fb;fb=(c[(c[Y>>2]|0)+4>>2]|0)+(c[c[Y>>2]>>2]<<3)|0;c[_>>2]=c[fb>>2];c[_+4>>2]=c[fb+4>>2];c[$>>2]=d[_+3>>0];c[aa>>2]=Or(c[Z>>2]|0,c[$>>2]|0)|0;c[c[Y>>2]>>2]=(e[_>>1]|0)+(c[aa>>2]|0);c[Bb>>2]=c[na>>2];c[Bb+4>>2]=c[na+4>>2];c[Bb+8>>2]=c[na+8>>2];c[Bb+12>>2]=c[na+12>>2];fb=c[ob>>2]|0;eb=c[nb>>2]|0;hb=c[qb>>2]|0;gb=c[rb>>2]|0;Lb=c[sb>>2]|0;Kb=c[tb>>2]|0;Yb=X;Zb=ub+(((c[xb>>2]|0)-4&3)<<4)|0;_b=Yb+16|0;do{a[Yb>>0]=a[Zb>>0]|0;Yb=Yb+1|0;Zb=Zb+1|0;}while((Yb|0)<(_b|0));c[H>>2]=fb;c[I>>2]=eb;c[J>>2]=pb;c[K>>2]=hb;c[L>>2]=gb;c[M>>2]=Lb;c[N>>2]=Kb;c[O>>2]=(c[H>>2]|0)+(c[X>>2]|0);c[P>>2]=(c[X>>2]|0)+(c[X+4>>2]|0);c[Q>>2]=(c[H>>2]|0)+(c[P>>2]|0);c[R>>2]=(c[I>>2]|0)+-8;c[S>>2]=(c[c[J>>2]>>2]|0)+(c[X>>2]|0);c[T>>2]=c[X+12>>2];b:do{if((c[Q>>2]|0)>>>0>(c[I>>2]|0)>>>0)c[G>>2]=-70;else{if((c[S>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[G>>2]=-20;break;}Jb=c[H>>2]|0;if((c[O>>2]|0)>>>0>(c[R>>2]|0)>>>0){Ib=c[I>>2]|0;Hb=c[J>>2]|0;k=c[K>>2]|0;Gb=c[L>>2]|0;Mb=c[M>>2]|0;j=c[N>>2]|0;c[n>>2]=c[X>>2];c[n+4>>2]=c[X+4>>2];c[n+8>>2]=c[X+8>>2];c[n+12>>2]=c[X+12>>2];c[G>>2]=Pr(Jb,Ib,n,Hb,k,Gb,Mb,j)|0;break;}Qr(Jb,c[c[J>>2]>>2]|0);if((c[X>>2]|0)>>>0>8)Rr((c[H>>2]|0)+8|0,(c[c[J>>2]>>2]|0)+8|0,(c[X>>2]|0)-8|0);c[H>>2]=c[O>>2];c[c[J>>2]>>2]=c[S>>2];do{if((c[X+8>>2]|0)>>>0>((c[O>>2]|0)-(c[L>>2]|0)|0)>>>0){if((c[X+8>>2]|0)>>>0>((c[O>>2]|0)-(c[M>>2]|0)|0)>>>0){c[G>>2]=-20;break b;}if(((c[T>>2]|0)+(c[X+4>>2]|0)|0)>>>0<=(c[N>>2]|0)>>>0){nE(c[O>>2]|0,c[T>>2]|0,c[X+4>>2]|0)|0;c[G>>2]=c[P>>2];break b;}c[U>>2]=(c[N>>2]|0)-(c[T>>2]|0);nE(c[O>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[H>>2]=(c[O>>2]|0)+(c[U>>2]|0);Jb=X+4|0;c[Jb>>2]=(c[Jb>>2]|0)-(c[U>>2]|0);c[T>>2]=c[L>>2];if((c[H>>2]|0)>>>0<=(c[R>>2]|0)>>>0?(c[X+4>>2]|0)>>>0>=3:0)break;c[V>>2]=0;while(1){if((c[V>>2]|0)>>>0>=(c[X+4>>2]|0)>>>0)break;a[(c[H>>2]|0)+(c[V>>2]|0)>>0]=a[(c[T>>2]|0)+(c[V>>2]|0)>>0]|0;c[V>>2]=(c[V>>2]|0)+1;}c[G>>2]=c[P>>2];break b;}}while(0);if((c[X+8>>2]|0)>>>0<8){c[W>>2]=c[6816+(c[X+8>>2]<<2)>>2];a[c[H>>2]>>0]=a[c[T>>2]>>0]|0;a[(c[H>>2]|0)+1>>0]=a[(c[T>>2]|0)+1>>0]|0;a[(c[H>>2]|0)+2>>0]=a[(c[T>>2]|0)+2>>0]|0;a[(c[H>>2]|0)+3>>0]=a[(c[T>>2]|0)+3>>0]|0;c[T>>2]=(c[T>>2]|0)+(c[6848+(c[X+8>>2]<<2)>>2]|0);Sr((c[H>>2]|0)+4|0,c[T>>2]|0);c[T>>2]=(c[T>>2]|0)+(0-(c[W>>2]|0));}else Qr(c[H>>2]|0,c[T>>2]|0);c[H>>2]=(c[H>>2]|0)+8;c[T>>2]=(c[T>>2]|0)+8;Jb=c[H>>2]|0;c:do{if((c[Q>>2]|0)>>>0>((c[I>>2]|0)+-13|0)>>>0){if(Jb>>>0<(c[R>>2]|0)>>>0){Rr(c[H>>2]|0,c[T>>2]|0,(c[R>>2]|0)-(c[H>>2]|0)|0);c[T>>2]=(c[T>>2]|0)+((c[R>>2]|0)-(c[H>>2]|0));c[H>>2]=c[R>>2];}while(1){if((c[H>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break c;j=c[T>>2]|0;c[T>>2]=j+1;Mb=a[j>>0]|0;j=c[H>>2]|0;c[H>>2]=j+1;a[j>>0]=Mb;}}else Rr(Jb,c[T>>2]|0,(c[X+4>>2]|0)-8|0);}while(0);c[G>>2]=c[P>>2];}}while(0);c[Cb>>2]=c[G>>2];if($q(c[Cb>>2]|0)|0){$b=118;break;}Kb=ub+((c[xb>>2]&3)<<4)|0;c[Kb>>2]=c[Bb>>2];c[Kb+4>>2]=c[Bb+4>>2];c[Kb+8>>2]=c[Bb+8>>2];c[Kb+12>>2]=c[Bb+12>>2];c[ob>>2]=(c[ob>>2]|0)+(c[Cb>>2]|0);c[xb>>2]=(c[xb>>2]|0)+1;}if(($b|0)==118){c[cb>>2]=c[Cb>>2];Nb=c[cb>>2]|0;l=m;return Nb|0;}if((c[xb>>2]|0)<(c[ib>>2]|0)){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}c[xb>>2]=(c[xb>>2]|0)-(c[vb>>2]|0);while(1){if((c[xb>>2]|0)>=(c[ib>>2]|0))break;Kb=c[ob>>2]|0;Lb=c[nb>>2]|0;gb=c[qb>>2]|0;hb=c[rb>>2]|0;eb=c[sb>>2]|0;fb=c[tb>>2]|0;Yb=F;Zb=ub+((c[xb>>2]&3)<<4)|0;_b=Yb+16|0;do{a[Yb>>0]=a[Zb>>0]|0;Yb=Yb+1|0;Zb=Zb+1|0;}while((Yb|0)<(_b|0));c[p>>2]=Kb;c[q>>2]=Lb;c[r>>2]=pb;c[s>>2]=gb;c[t>>2]=hb;c[u>>2]=eb;c[v>>2]=fb;c[w>>2]=(c[p>>2]|0)+(c[F>>2]|0);c[x>>2]=(c[F>>2]|0)+(c[F+4>>2]|0);c[y>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[q>>2]|0)+-8;c[A>>2]=(c[c[r>>2]>>2]|0)+(c[F>>2]|0);c[B>>2]=c[F+12>>2];d:do{if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[o>>2]=-70;else{if((c[A>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break;}Jb=c[p>>2]|0;if((c[w>>2]|0)>>>0>(c[z>>2]|0)>>>0){Mb=c[q>>2]|0;j=c[r>>2]|0;Gb=c[s>>2]|0;k=c[t>>2]|0;Hb=c[u>>2]|0;Ib=c[v>>2]|0;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];c[o>>2]=Pr(Jb,Mb,n,j,Gb,k,Hb,Ib)|0;break;}Qr(Jb,c[c[r>>2]>>2]|0);if((c[F>>2]|0)>>>0>8)Rr((c[p>>2]|0)+8|0,(c[c[r>>2]>>2]|0)+8|0,(c[F>>2]|0)-8|0);c[p>>2]=c[w>>2];c[c[r>>2]>>2]=c[A>>2];do{if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[t>>2]|0)|0)>>>0){if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[u>>2]|0)|0)>>>0){c[o>>2]=-20;break d;}if(((c[B>>2]|0)+(c[F+4>>2]|0)|0)>>>0<=(c[v>>2]|0)>>>0){nE(c[w>>2]|0,c[B>>2]|0,c[F+4>>2]|0)|0;c[o>>2]=c[x>>2];break d;}c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);nE(c[w>>2]|0,c[B>>2]|0,c[C>>2]|0)|0;c[p>>2]=(c[w>>2]|0)+(c[C>>2]|0);Jb=F+4|0;c[Jb>>2]=(c[Jb>>2]|0)-(c[C>>2]|0);c[B>>2]=c[t>>2];if((c[p>>2]|0)>>>0<=(c[z>>2]|0)>>>0?(c[F+4>>2]|0)>>>0>=3:0)break;c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[F+4>>2]|0)>>>0)break;a[(c[p>>2]|0)+(c[D>>2]|0)>>0]=a[(c[B>>2]|0)+(c[D>>2]|0)>>0]|0;c[D>>2]=(c[D>>2]|0)+1;}c[o>>2]=c[x>>2];break d;}}while(0);if((c[F+8>>2]|0)>>>0<8){c[E>>2]=c[6816+(c[F+8>>2]<<2)>>2];a[c[p>>2]>>0]=a[c[B>>2]>>0]|0;a[(c[p>>2]|0)+1>>0]=a[(c[B>>2]|0)+1>>0]|0;a[(c[p>>2]|0)+2>>0]=a[(c[B>>2]|0)+2>>0]|0;a[(c[p>>2]|0)+3>>0]=a[(c[B>>2]|0)+3>>0]|0;c[B>>2]=(c[B>>2]|0)+(c[6848+(c[F+8>>2]<<2)>>2]|0);Sr((c[p>>2]|0)+4|0,c[B>>2]|0);c[B>>2]=(c[B>>2]|0)+(0-(c[E>>2]|0));}else Qr(c[p>>2]|0,c[B>>2]|0);c[p>>2]=(c[p>>2]|0)+8;c[B>>2]=(c[B>>2]|0)+8;Jb=c[p>>2]|0;e:do{if((c[y>>2]|0)>>>0>((c[q>>2]|0)+-13|0)>>>0){if(Jb>>>0<(c[z>>2]|0)>>>0){Rr(c[p>>2]|0,c[B>>2]|0,(c[z>>2]|0)-(c[p>>2]|0)|0);c[B>>2]=(c[B>>2]|0)+((c[z>>2]|0)-(c[p>>2]|0));c[p>>2]=c[z>>2];}while(1){if((c[p>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break e;Ib=c[B>>2]|0;c[B>>2]=Ib+1;Hb=a[Ib>>0]|0;Ib=c[p>>2]|0;c[p>>2]=Ib+1;a[Ib>>0]=Hb;}}else Rr(Jb,c[B>>2]|0,(c[F+4>>2]|0)-8|0);}while(0);c[o>>2]=c[x>>2];}}while(0);c[Db>>2]=c[o>>2];fb=($q(c[Db>>2]|0)|0)!=0;ac=c[Db>>2]|0;if(fb){$b=155;break;}c[ob>>2]=(c[ob>>2]|0)+ac;c[xb>>2]=(c[xb>>2]|0)+1;}if(($b|0)==155){c[cb>>2]=ac;Nb=c[cb>>2]|0;l=m;return Nb|0;}c[Eb>>2]=0;while(1){if((c[Eb>>2]|0)>>>0>=3)break a;c[(c[db>>2]|0)+16+28700+(c[Eb>>2]<<2)>>2]=c[wb+44+(c[Eb>>2]<<2)>>2];c[Eb>>2]=(c[Eb>>2]|0)+1;}}}while(0);c[Fb>>2]=(c[qb>>2]|0)-(c[pb>>2]|0);if((c[Fb>>2]|0)>>>0>((c[nb>>2]|0)-(c[ob>>2]|0)|0)>>>0){c[cb>>2]=-70;Nb=c[cb>>2]|0;l=m;return Nb|0;}else{mE(c[ob>>2]|0,c[pb>>2]|0,c[Fb>>2]|0)|0;c[ob>>2]=(c[ob>>2]|0)+(c[Fb>>2]|0);c[cb>>2]=(c[ob>>2]|0)-(c[mb>>2]|0);Nb=c[cb>>2]|0;l=m;return Nb|0;}return 0;}function Yr(b,f,g,h,i,j,k){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,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,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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=0,ac=0;m=l;l=l+784|0;n=m+760|0;o=m+756|0;p=m+752|0;q=m+748|0;r=m+744|0;s=m+740|0;t=m+736|0;u=m+732|0;v=m+728|0;w=m+724|0;x=m+720|0;y=m+716|0;z=m+712|0;A=m+708|0;B=m+704|0;C=m+700|0;D=m+696|0;E=m+692|0;F=m+80|0;G=m+688|0;H=m+684|0;I=m+680|0;J=m+676|0;K=m+672|0;L=m+668|0;M=m+664|0;N=m+660|0;O=m+656|0;P=m+652|0;Q=m+648|0;R=m+644|0;S=m+640|0;T=m+636|0;U=m+632|0;V=m+628|0;W=m+624|0;X=m+64|0;Y=m+620|0;Z=m+616|0;_=m+608|0;$=m+604|0;aa=m+600|0;ba=m+596|0;ca=m+592|0;da=m+584|0;ea=m+580|0;fa=m+576|0;ga=m+572|0;ha=m+568|0;ia=m+560|0;ja=m+556|0;ka=m+552|0;la=m+548|0;ma=m+544|0;na=m+528|0;oa=m+524|0;pa=m+520|0;qa=m+516|0;ra=m+512|0;sa=m+508|0;ta=m+504|0;ua=m+500|0;va=m+496|0;wa=m+492|0;xa=m+488|0;ya=m+484|0;za=m+480|0;Aa=m+476|0;Ba=m+472|0;Ca=m+464|0;Da=m+460|0;Ea=m+456|0;Fa=m+452|0;Ga=m+448|0;Ha=m+440|0;Ia=m+436|0;Ja=m+432|0;Ka=m+428|0;La=m+424|0;Ma=m+416|0;Na=m+412|0;Oa=m+408|0;Pa=m+404|0;Qa=m+400|0;Ra=m+384|0;Sa=m+376|0;Ta=m+372|0;Ua=m+368|0;Va=m+364|0;Wa=m+360|0;Xa=m+356|0;Ya=m+352|0;Za=m+348|0;_a=m+344|0;$a=m+340|0;ab=m+336|0;bb=m+332|0;cb=m+328|0;db=m+324|0;eb=m+320|0;fb=m+316|0;gb=m+312|0;hb=m+308|0;ib=m+304|0;jb=m+300|0;kb=m+296|0;lb=m+292|0;mb=m+288|0;nb=m+284|0;ob=m+280|0;pb=m+276|0;qb=m+272|0;rb=m+268|0;sb=m+264|0;tb=m+260|0;ub=m;vb=m+256|0;wb=m+188|0;xb=m+184|0;yb=m+180|0;zb=m+176|0;Ab=m+160|0;Bb=m+144|0;Cb=m+136|0;Db=m+132|0;Eb=m+128|0;Fb=m+124|0;Gb=m+120|0;Hb=m+116|0;Ib=m+112|0;Jb=m+108|0;Kb=m+104|0;Lb=m+100|0;Mb=m+96|0;c[Gb>>2]=b;c[Hb>>2]=f;c[Ib>>2]=g;c[Jb>>2]=h;c[Kb>>2]=i;c[Lb>>2]=j;c[Mb>>2]=k;k=c[Hb>>2]|0;Hb=c[Ib>>2]|0;Ib=c[Jb>>2]|0;Jb=c[Kb>>2]|0;Kb=c[Lb>>2]|0;Lb=c[Mb>>2]|0;c[db>>2]=c[Gb>>2];c[eb>>2]=k;c[fb>>2]=Hb;c[gb>>2]=Ib;c[hb>>2]=Jb;c[ib>>2]=Kb;c[jb>>2]=Lb;c[kb>>2]=c[gb>>2];c[lb>>2]=(c[kb>>2]|0)+(c[hb>>2]|0);c[mb>>2]=c[eb>>2];c[nb>>2]=(c[mb>>2]|0)+(c[fb>>2]|0);c[ob>>2]=c[mb>>2];c[pb>>2]=c[(c[db>>2]|0)+28916>>2];c[qb>>2]=(c[pb>>2]|0)+(c[(c[db>>2]|0)+28932>>2]|0);c[rb>>2]=c[(c[db>>2]|0)+28732>>2];c[sb>>2]=c[(c[db>>2]|0)+28736>>2];c[tb>>2]=c[(c[db>>2]|0)+28740>>2];a:do{if(c[ib>>2]|0){c[vb>>2]=(c[ib>>2]|0)<4?c[ib>>2]|0:4;c[(c[db>>2]|0)+28812>>2]=1;c[yb>>2]=0;while(1){if((c[yb>>2]|0)>>>0>=3)break;c[wb+44+(c[yb>>2]<<2)>>2]=c[(c[db>>2]|0)+16+28700+(c[yb>>2]<<2)>>2];c[yb>>2]=(c[yb>>2]|0)+1;}c[wb+56>>2]=c[rb>>2];c[wb+64>>2]=(c[ob>>2]|0)-(c[rb>>2]|0);c[wb+60>>2]=c[tb>>2];c[zb>>2]=Kr(wb,c[kb>>2]|0,(c[lb>>2]|0)-(c[kb>>2]|0)|0)|0;if($q(c[zb>>2]|0)|0){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}Lr(wb+20|0,wb,c[c[db>>2]>>2]|0);Lr(wb+28|0,wb,c[(c[db>>2]|0)+8>>2]|0);Lr(wb+36|0,wb,c[(c[db>>2]|0)+4>>2]|0);c[xb>>2]=0;while(1){if((Mr(wb)|0)>>>0<=2)Ob=(c[xb>>2]|0)<(c[vb>>2]|0);else Ob=0;Pb=c[xb>>2]|0;if(!Ob)break;fb=ub+(Pb<<4)|0;eb=c[jb>>2]|0;c[Pa>>2]=wb;c[Qa>>2]=eb;c[Sa>>2]=d[(c[(c[Pa>>2]|0)+20+4>>2]|0)+(c[(c[Pa>>2]|0)+20>>2]<<3)+2>>0];c[Ta>>2]=d[(c[(c[Pa>>2]|0)+36+4>>2]|0)+(c[(c[Pa>>2]|0)+36>>2]<<3)+2>>0];c[Ua>>2]=d[(c[(c[Pa>>2]|0)+28+4>>2]|0)+(c[(c[Pa>>2]|0)+28>>2]<<3)+2>>0];c[Va>>2]=(c[Sa>>2]|0)+(c[Ta>>2]|0)+(c[Ua>>2]|0);c[Wa>>2]=c[(c[(c[Pa>>2]|0)+20+4>>2]|0)+(c[(c[Pa>>2]|0)+20>>2]<<3)+4>>2];c[Xa>>2]=c[(c[(c[Pa>>2]|0)+36+4>>2]|0)+(c[(c[Pa>>2]|0)+36>>2]<<3)+4>>2];c[Ya>>2]=c[(c[(c[Pa>>2]|0)+28+4>>2]|0)+(c[(c[Pa>>2]|0)+28>>2]<<3)+4>>2];do{if(c[Ua>>2]|0){eb=(Dr()|0)!=0;if(!(eb&(c[Qa>>2]|0)!=0)){eb=c[Ya>>2]|0;c[Za>>2]=eb+(Nr(c[Pa>>2]|0,c[Ua>>2]|0)|0);if(!(Dr()|0))break;Mr(c[Pa>>2]|0)|0;break;}c[_a>>2]=(c[Ua>>2]|0)-((c[Ua>>2]|0)>>>0<24?c[Ua>>2]|0:24);eb=c[Ya>>2]|0;hb=Nr(c[Pa>>2]|0,(c[Ua>>2]|0)-(c[_a>>2]|0)|0)|0;c[Za>>2]=eb+(hb<>2]);hb=(Dr()|0)!=0;if(hb|(c[_a>>2]|0)!=0)Mr(c[Pa>>2]|0)|0;if(c[_a>>2]|0){hb=Nr(c[Pa>>2]|0,c[_a>>2]|0)|0;c[Za>>2]=(c[Za>>2]|0)+hb;}}else c[Za>>2]=0;}while(0);do{if((c[Ua>>2]|0)>>>0<=1){c[Za>>2]=(c[Za>>2]|0)+((c[Wa>>2]|0)==0&1);if(!(c[Za>>2]|0)){c[Za>>2]=c[(c[Pa>>2]|0)+44>>2];break;}hb=(c[Pa>>2]|0)+44|0;if((c[Za>>2]|0)==3)Qb=(c[hb>>2]|0)-1|0;else Qb=c[hb+(c[Za>>2]<<2)>>2]|0;c[$a>>2]=Qb;c[$a>>2]=(c[$a>>2]|0)+(((c[$a>>2]|0)!=0^1)&1);if((c[Za>>2]|0)!=1)c[(c[Pa>>2]|0)+44+8>>2]=c[(c[Pa>>2]|0)+44+4>>2];c[(c[Pa>>2]|0)+44+4>>2]=c[(c[Pa>>2]|0)+44>>2];hb=c[$a>>2]|0;c[Za>>2]=hb;c[(c[Pa>>2]|0)+44>>2]=hb;}else{c[(c[Pa>>2]|0)+44+8>>2]=c[(c[Pa>>2]|0)+44+4>>2];c[(c[Pa>>2]|0)+44+4>>2]=c[(c[Pa>>2]|0)+44>>2];c[(c[Pa>>2]|0)+44>>2]=c[Za>>2];}}while(0);c[Ra+8>>2]=c[Za>>2];hb=c[Xa>>2]|0;if((c[Ta>>2]|0)>>>0>0)Rb=Nr(c[Pa>>2]|0,c[Ta>>2]|0)|0;else Rb=0;c[Ra+4>>2]=hb+Rb;if(Dr()|0?((c[Ta>>2]|0)+(c[Sa>>2]|0)|0)>>>0>=20:0)Mr(c[Pa>>2]|0)|0;hb=(Fr()|0)!=0;if(hb&(c[Va>>2]|0)>>>0>=31)Mr(c[Pa>>2]|0)|0;hb=c[Wa>>2]|0;if((c[Sa>>2]|0)>>>0>0)Sb=Nr(c[Pa>>2]|0,c[Sa>>2]|0)|0;else Sb=0;c[Ra>>2]=hb+Sb;if(Dr()|0)Mr(c[Pa>>2]|0)|0;c[ab>>2]=(c[(c[Pa>>2]|0)+64>>2]|0)+(c[Ra>>2]|0);hb=c[Pa>>2]|0;if((c[Ra+8>>2]|0)>>>0>(c[ab>>2]|0)>>>0)Tb=c[hb+60>>2]|0;else Tb=c[hb+56>>2]|0;c[bb>>2]=Tb;c[Ra+12>>2]=(c[bb>>2]|0)+(c[ab>>2]|0)+(0-(c[Ra+8>>2]|0));c[(c[Pa>>2]|0)+64>>2]=(c[ab>>2]|0)+(c[Ra+4>>2]|0);hb=c[Pa>>2]|0;c[Ka>>2]=(c[Pa>>2]|0)+20;c[La>>2]=hb;hb=(c[(c[Ka>>2]|0)+4>>2]|0)+(c[c[Ka>>2]>>2]<<3)|0;c[Ma>>2]=c[hb>>2];c[Ma+4>>2]=c[hb+4>>2];c[Na>>2]=d[Ma+3>>0];c[Oa>>2]=Or(c[La>>2]|0,c[Na>>2]|0)|0;c[c[Ka>>2]>>2]=(e[Ma>>1]|0)+(c[Oa>>2]|0);hb=c[Pa>>2]|0;c[Fa>>2]=(c[Pa>>2]|0)+36;c[Ga>>2]=hb;hb=(c[(c[Fa>>2]|0)+4>>2]|0)+(c[c[Fa>>2]>>2]<<3)|0;c[Ha>>2]=c[hb>>2];c[Ha+4>>2]=c[hb+4>>2];c[Ia>>2]=d[Ha+3>>0];c[Ja>>2]=Or(c[Ga>>2]|0,c[Ia>>2]|0)|0;c[c[Fa>>2]>>2]=(e[Ha>>1]|0)+(c[Ja>>2]|0);if(Dr()|0)Mr(c[Pa>>2]|0)|0;hb=c[Pa>>2]|0;c[Aa>>2]=(c[Pa>>2]|0)+28;c[Ba>>2]=hb;hb=(c[(c[Aa>>2]|0)+4>>2]|0)+(c[c[Aa>>2]>>2]<<3)|0;c[Ca>>2]=c[hb>>2];c[Ca+4>>2]=c[hb+4>>2];c[Da>>2]=d[Ca+3>>0];c[Ea>>2]=Or(c[Ba>>2]|0,c[Da>>2]|0)|0;c[c[Aa>>2]>>2]=(e[Ca>>1]|0)+(c[Ea>>2]|0);c[Ab>>2]=c[Ra>>2];c[Ab+4>>2]=c[Ra+4>>2];c[Ab+8>>2]=c[Ra+8>>2];c[Ab+12>>2]=c[Ra+12>>2];c[fb>>2]=c[Ab>>2];c[fb+4>>2]=c[Ab+4>>2];c[fb+8>>2]=c[Ab+8>>2];c[fb+12>>2]=c[Ab+12>>2];c[xb>>2]=(c[xb>>2]|0)+1;}if((Pb|0)<(c[vb>>2]|0)){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}while(1){if((Mr(wb)|0)>>>0>2)break;if((c[xb>>2]|0)>=(c[ib>>2]|0))break;hb=c[jb>>2]|0;c[la>>2]=wb;c[ma>>2]=hb;c[oa>>2]=d[(c[(c[la>>2]|0)+20+4>>2]|0)+(c[(c[la>>2]|0)+20>>2]<<3)+2>>0];c[pa>>2]=d[(c[(c[la>>2]|0)+36+4>>2]|0)+(c[(c[la>>2]|0)+36>>2]<<3)+2>>0];c[qa>>2]=d[(c[(c[la>>2]|0)+28+4>>2]|0)+(c[(c[la>>2]|0)+28>>2]<<3)+2>>0];c[ra>>2]=(c[oa>>2]|0)+(c[pa>>2]|0)+(c[qa>>2]|0);c[sa>>2]=c[(c[(c[la>>2]|0)+20+4>>2]|0)+(c[(c[la>>2]|0)+20>>2]<<3)+4>>2];c[ta>>2]=c[(c[(c[la>>2]|0)+36+4>>2]|0)+(c[(c[la>>2]|0)+36>>2]<<3)+4>>2];c[ua>>2]=c[(c[(c[la>>2]|0)+28+4>>2]|0)+(c[(c[la>>2]|0)+28>>2]<<3)+4>>2];do{if(c[qa>>2]|0){hb=(Dr()|0)!=0;if(!(hb&(c[ma>>2]|0)!=0)){hb=c[ua>>2]|0;c[va>>2]=hb+(Nr(c[la>>2]|0,c[qa>>2]|0)|0);if(!(Dr()|0))break;Mr(c[la>>2]|0)|0;break;}c[wa>>2]=(c[qa>>2]|0)-((c[qa>>2]|0)>>>0<24?c[qa>>2]|0:24);hb=c[ua>>2]|0;eb=Nr(c[la>>2]|0,(c[qa>>2]|0)-(c[wa>>2]|0)|0)|0;c[va>>2]=hb+(eb<>2]);eb=(Dr()|0)!=0;if(eb|(c[wa>>2]|0)!=0)Mr(c[la>>2]|0)|0;if(c[wa>>2]|0){eb=Nr(c[la>>2]|0,c[wa>>2]|0)|0;c[va>>2]=(c[va>>2]|0)+eb;}}else c[va>>2]=0;}while(0);do{if((c[qa>>2]|0)>>>0<=1){c[va>>2]=(c[va>>2]|0)+((c[sa>>2]|0)==0&1);if(!(c[va>>2]|0)){c[va>>2]=c[(c[la>>2]|0)+44>>2];break;}fb=(c[la>>2]|0)+44|0;if((c[va>>2]|0)==3)Ub=(c[fb>>2]|0)-1|0;else Ub=c[fb+(c[va>>2]<<2)>>2]|0;c[xa>>2]=Ub;c[xa>>2]=(c[xa>>2]|0)+(((c[xa>>2]|0)!=0^1)&1);if((c[va>>2]|0)!=1)c[(c[la>>2]|0)+44+8>>2]=c[(c[la>>2]|0)+44+4>>2];c[(c[la>>2]|0)+44+4>>2]=c[(c[la>>2]|0)+44>>2];fb=c[xa>>2]|0;c[va>>2]=fb;c[(c[la>>2]|0)+44>>2]=fb;}else{c[(c[la>>2]|0)+44+8>>2]=c[(c[la>>2]|0)+44+4>>2];c[(c[la>>2]|0)+44+4>>2]=c[(c[la>>2]|0)+44>>2];c[(c[la>>2]|0)+44>>2]=c[va>>2];}}while(0);c[na+8>>2]=c[va>>2];fb=c[ta>>2]|0;if((c[pa>>2]|0)>>>0>0)Vb=Nr(c[la>>2]|0,c[pa>>2]|0)|0;else Vb=0;c[na+4>>2]=fb+Vb;if(Dr()|0?((c[pa>>2]|0)+(c[oa>>2]|0)|0)>>>0>=20:0)Mr(c[la>>2]|0)|0;fb=(Fr()|0)!=0;if(fb&(c[ra>>2]|0)>>>0>=31)Mr(c[la>>2]|0)|0;fb=c[sa>>2]|0;if((c[oa>>2]|0)>>>0>0)Wb=Nr(c[la>>2]|0,c[oa>>2]|0)|0;else Wb=0;c[na>>2]=fb+Wb;if(Dr()|0)Mr(c[la>>2]|0)|0;c[ya>>2]=(c[(c[la>>2]|0)+64>>2]|0)+(c[na>>2]|0);fb=c[la>>2]|0;if((c[na+8>>2]|0)>>>0>(c[ya>>2]|0)>>>0)Xb=c[fb+60>>2]|0;else Xb=c[fb+56>>2]|0;c[za>>2]=Xb;c[na+12>>2]=(c[za>>2]|0)+(c[ya>>2]|0)+(0-(c[na+8>>2]|0));c[(c[la>>2]|0)+64>>2]=(c[ya>>2]|0)+(c[na+4>>2]|0);fb=c[la>>2]|0;c[ga>>2]=(c[la>>2]|0)+20;c[ha>>2]=fb;fb=(c[(c[ga>>2]|0)+4>>2]|0)+(c[c[ga>>2]>>2]<<3)|0;c[ia>>2]=c[fb>>2];c[ia+4>>2]=c[fb+4>>2];c[ja>>2]=d[ia+3>>0];c[ka>>2]=Or(c[ha>>2]|0,c[ja>>2]|0)|0;c[c[ga>>2]>>2]=(e[ia>>1]|0)+(c[ka>>2]|0);fb=c[la>>2]|0;c[ba>>2]=(c[la>>2]|0)+36;c[ca>>2]=fb;fb=(c[(c[ba>>2]|0)+4>>2]|0)+(c[c[ba>>2]>>2]<<3)|0;c[da>>2]=c[fb>>2];c[da+4>>2]=c[fb+4>>2];c[ea>>2]=d[da+3>>0];c[fa>>2]=Or(c[ca>>2]|0,c[ea>>2]|0)|0;c[c[ba>>2]>>2]=(e[da>>1]|0)+(c[fa>>2]|0);if(Dr()|0)Mr(c[la>>2]|0)|0;fb=c[la>>2]|0;c[Y>>2]=(c[la>>2]|0)+28;c[Z>>2]=fb;fb=(c[(c[Y>>2]|0)+4>>2]|0)+(c[c[Y>>2]>>2]<<3)|0;c[_>>2]=c[fb>>2];c[_+4>>2]=c[fb+4>>2];c[$>>2]=d[_+3>>0];c[aa>>2]=Or(c[Z>>2]|0,c[$>>2]|0)|0;c[c[Y>>2]>>2]=(e[_>>1]|0)+(c[aa>>2]|0);c[Bb>>2]=c[na>>2];c[Bb+4>>2]=c[na+4>>2];c[Bb+8>>2]=c[na+8>>2];c[Bb+12>>2]=c[na+12>>2];fb=c[ob>>2]|0;eb=c[nb>>2]|0;hb=c[qb>>2]|0;gb=c[rb>>2]|0;Lb=c[sb>>2]|0;Kb=c[tb>>2]|0;Yb=X;Zb=ub+(((c[xb>>2]|0)-4&3)<<4)|0;_b=Yb+16|0;do{a[Yb>>0]=a[Zb>>0]|0;Yb=Yb+1|0;Zb=Zb+1|0;}while((Yb|0)<(_b|0));c[H>>2]=fb;c[I>>2]=eb;c[J>>2]=pb;c[K>>2]=hb;c[L>>2]=gb;c[M>>2]=Lb;c[N>>2]=Kb;c[O>>2]=(c[H>>2]|0)+(c[X>>2]|0);c[P>>2]=(c[X>>2]|0)+(c[X+4>>2]|0);c[Q>>2]=(c[H>>2]|0)+(c[P>>2]|0);c[R>>2]=(c[I>>2]|0)+-8;c[S>>2]=(c[c[J>>2]>>2]|0)+(c[X>>2]|0);c[T>>2]=c[X+12>>2];b:do{if((c[Q>>2]|0)>>>0>(c[I>>2]|0)>>>0)c[G>>2]=-70;else{if((c[S>>2]|0)>>>0>(c[K>>2]|0)>>>0){c[G>>2]=-20;break;}Jb=c[H>>2]|0;if((c[O>>2]|0)>>>0>(c[R>>2]|0)>>>0){Ib=c[I>>2]|0;Hb=c[J>>2]|0;k=c[K>>2]|0;Gb=c[L>>2]|0;Mb=c[M>>2]|0;j=c[N>>2]|0;c[n>>2]=c[X>>2];c[n+4>>2]=c[X+4>>2];c[n+8>>2]=c[X+8>>2];c[n+12>>2]=c[X+12>>2];c[G>>2]=Pr(Jb,Ib,n,Hb,k,Gb,Mb,j)|0;break;}Qr(Jb,c[c[J>>2]>>2]|0);if((c[X>>2]|0)>>>0>8)Rr((c[H>>2]|0)+8|0,(c[c[J>>2]>>2]|0)+8|0,(c[X>>2]|0)-8|0);c[H>>2]=c[O>>2];c[c[J>>2]>>2]=c[S>>2];do{if((c[X+8>>2]|0)>>>0>((c[O>>2]|0)-(c[L>>2]|0)|0)>>>0){if((c[X+8>>2]|0)>>>0>((c[O>>2]|0)-(c[M>>2]|0)|0)>>>0){c[G>>2]=-20;break b;}if(((c[T>>2]|0)+(c[X+4>>2]|0)|0)>>>0<=(c[N>>2]|0)>>>0){nE(c[O>>2]|0,c[T>>2]|0,c[X+4>>2]|0)|0;c[G>>2]=c[P>>2];break b;}c[U>>2]=(c[N>>2]|0)-(c[T>>2]|0);nE(c[O>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[H>>2]=(c[O>>2]|0)+(c[U>>2]|0);Jb=X+4|0;c[Jb>>2]=(c[Jb>>2]|0)-(c[U>>2]|0);c[T>>2]=c[L>>2];if((c[H>>2]|0)>>>0<=(c[R>>2]|0)>>>0?(c[X+4>>2]|0)>>>0>=3:0)break;c[V>>2]=0;while(1){if((c[V>>2]|0)>>>0>=(c[X+4>>2]|0)>>>0)break;a[(c[H>>2]|0)+(c[V>>2]|0)>>0]=a[(c[T>>2]|0)+(c[V>>2]|0)>>0]|0;c[V>>2]=(c[V>>2]|0)+1;}c[G>>2]=c[P>>2];break b;}}while(0);if((c[X+8>>2]|0)>>>0<8){c[W>>2]=c[6816+(c[X+8>>2]<<2)>>2];a[c[H>>2]>>0]=a[c[T>>2]>>0]|0;a[(c[H>>2]|0)+1>>0]=a[(c[T>>2]|0)+1>>0]|0;a[(c[H>>2]|0)+2>>0]=a[(c[T>>2]|0)+2>>0]|0;a[(c[H>>2]|0)+3>>0]=a[(c[T>>2]|0)+3>>0]|0;c[T>>2]=(c[T>>2]|0)+(c[6848+(c[X+8>>2]<<2)>>2]|0);Sr((c[H>>2]|0)+4|0,c[T>>2]|0);c[T>>2]=(c[T>>2]|0)+(0-(c[W>>2]|0));}else Qr(c[H>>2]|0,c[T>>2]|0);c[H>>2]=(c[H>>2]|0)+8;c[T>>2]=(c[T>>2]|0)+8;Jb=c[H>>2]|0;c:do{if((c[Q>>2]|0)>>>0>((c[I>>2]|0)+-13|0)>>>0){if(Jb>>>0<(c[R>>2]|0)>>>0){Rr(c[H>>2]|0,c[T>>2]|0,(c[R>>2]|0)-(c[H>>2]|0)|0);c[T>>2]=(c[T>>2]|0)+((c[R>>2]|0)-(c[H>>2]|0));c[H>>2]=c[R>>2];}while(1){if((c[H>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)break c;j=c[T>>2]|0;c[T>>2]=j+1;Mb=a[j>>0]|0;j=c[H>>2]|0;c[H>>2]=j+1;a[j>>0]=Mb;}}else Rr(Jb,c[T>>2]|0,(c[X+4>>2]|0)-8|0);}while(0);c[G>>2]=c[P>>2];}}while(0);c[Cb>>2]=c[G>>2];if($q(c[Cb>>2]|0)|0){$b=118;break;}Kb=ub+((c[xb>>2]&3)<<4)|0;c[Kb>>2]=c[Bb>>2];c[Kb+4>>2]=c[Bb+4>>2];c[Kb+8>>2]=c[Bb+8>>2];c[Kb+12>>2]=c[Bb+12>>2];c[ob>>2]=(c[ob>>2]|0)+(c[Cb>>2]|0);c[xb>>2]=(c[xb>>2]|0)+1;}if(($b|0)==118){c[cb>>2]=c[Cb>>2];Nb=c[cb>>2]|0;l=m;return Nb|0;}if((c[xb>>2]|0)<(c[ib>>2]|0)){c[cb>>2]=-20;Nb=c[cb>>2]|0;l=m;return Nb|0;}c[xb>>2]=(c[xb>>2]|0)-(c[vb>>2]|0);while(1){if((c[xb>>2]|0)>=(c[ib>>2]|0))break;Kb=c[ob>>2]|0;Lb=c[nb>>2]|0;gb=c[qb>>2]|0;hb=c[rb>>2]|0;eb=c[sb>>2]|0;fb=c[tb>>2]|0;Yb=F;Zb=ub+((c[xb>>2]&3)<<4)|0;_b=Yb+16|0;do{a[Yb>>0]=a[Zb>>0]|0;Yb=Yb+1|0;Zb=Zb+1|0;}while((Yb|0)<(_b|0));c[p>>2]=Kb;c[q>>2]=Lb;c[r>>2]=pb;c[s>>2]=gb;c[t>>2]=hb;c[u>>2]=eb;c[v>>2]=fb;c[w>>2]=(c[p>>2]|0)+(c[F>>2]|0);c[x>>2]=(c[F>>2]|0)+(c[F+4>>2]|0);c[y>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[q>>2]|0)+-8;c[A>>2]=(c[c[r>>2]>>2]|0)+(c[F>>2]|0);c[B>>2]=c[F+12>>2];d:do{if((c[y>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[o>>2]=-70;else{if((c[A>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[o>>2]=-20;break;}Jb=c[p>>2]|0;if((c[w>>2]|0)>>>0>(c[z>>2]|0)>>>0){Mb=c[q>>2]|0;j=c[r>>2]|0;Gb=c[s>>2]|0;k=c[t>>2]|0;Hb=c[u>>2]|0;Ib=c[v>>2]|0;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];c[o>>2]=Pr(Jb,Mb,n,j,Gb,k,Hb,Ib)|0;break;}Qr(Jb,c[c[r>>2]>>2]|0);if((c[F>>2]|0)>>>0>8)Rr((c[p>>2]|0)+8|0,(c[c[r>>2]>>2]|0)+8|0,(c[F>>2]|0)-8|0);c[p>>2]=c[w>>2];c[c[r>>2]>>2]=c[A>>2];do{if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[t>>2]|0)|0)>>>0){if((c[F+8>>2]|0)>>>0>((c[w>>2]|0)-(c[u>>2]|0)|0)>>>0){c[o>>2]=-20;break d;}if(((c[B>>2]|0)+(c[F+4>>2]|0)|0)>>>0<=(c[v>>2]|0)>>>0){nE(c[w>>2]|0,c[B>>2]|0,c[F+4>>2]|0)|0;c[o>>2]=c[x>>2];break d;}c[C>>2]=(c[v>>2]|0)-(c[B>>2]|0);nE(c[w>>2]|0,c[B>>2]|0,c[C>>2]|0)|0;c[p>>2]=(c[w>>2]|0)+(c[C>>2]|0);Jb=F+4|0;c[Jb>>2]=(c[Jb>>2]|0)-(c[C>>2]|0);c[B>>2]=c[t>>2];if((c[p>>2]|0)>>>0<=(c[z>>2]|0)>>>0?(c[F+4>>2]|0)>>>0>=3:0)break;c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[F+4>>2]|0)>>>0)break;a[(c[p>>2]|0)+(c[D>>2]|0)>>0]=a[(c[B>>2]|0)+(c[D>>2]|0)>>0]|0;c[D>>2]=(c[D>>2]|0)+1;}c[o>>2]=c[x>>2];break d;}}while(0);if((c[F+8>>2]|0)>>>0<8){c[E>>2]=c[6816+(c[F+8>>2]<<2)>>2];a[c[p>>2]>>0]=a[c[B>>2]>>0]|0;a[(c[p>>2]|0)+1>>0]=a[(c[B>>2]|0)+1>>0]|0;a[(c[p>>2]|0)+2>>0]=a[(c[B>>2]|0)+2>>0]|0;a[(c[p>>2]|0)+3>>0]=a[(c[B>>2]|0)+3>>0]|0;c[B>>2]=(c[B>>2]|0)+(c[6848+(c[F+8>>2]<<2)>>2]|0);Sr((c[p>>2]|0)+4|0,c[B>>2]|0);c[B>>2]=(c[B>>2]|0)+(0-(c[E>>2]|0));}else Qr(c[p>>2]|0,c[B>>2]|0);c[p>>2]=(c[p>>2]|0)+8;c[B>>2]=(c[B>>2]|0)+8;Jb=c[p>>2]|0;e:do{if((c[y>>2]|0)>>>0>((c[q>>2]|0)+-13|0)>>>0){if(Jb>>>0<(c[z>>2]|0)>>>0){Rr(c[p>>2]|0,c[B>>2]|0,(c[z>>2]|0)-(c[p>>2]|0)|0);c[B>>2]=(c[B>>2]|0)+((c[z>>2]|0)-(c[p>>2]|0));c[p>>2]=c[z>>2];}while(1){if((c[p>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break e;Ib=c[B>>2]|0;c[B>>2]=Ib+1;Hb=a[Ib>>0]|0;Ib=c[p>>2]|0;c[p>>2]=Ib+1;a[Ib>>0]=Hb;}}else Rr(Jb,c[B>>2]|0,(c[F+4>>2]|0)-8|0);}while(0);c[o>>2]=c[x>>2];}}while(0);c[Db>>2]=c[o>>2];fb=($q(c[Db>>2]|0)|0)!=0;ac=c[Db>>2]|0;if(fb){$b=155;break;}c[ob>>2]=(c[ob>>2]|0)+ac;c[xb>>2]=(c[xb>>2]|0)+1;}if(($b|0)==155){c[cb>>2]=ac;Nb=c[cb>>2]|0;l=m;return Nb|0;}c[Eb>>2]=0;while(1){if((c[Eb>>2]|0)>>>0>=3)break a;c[(c[db>>2]|0)+16+28700+(c[Eb>>2]<<2)>>2]=c[wb+44+(c[Eb>>2]<<2)>>2];c[Eb>>2]=(c[Eb>>2]|0)+1;}}}while(0);c[Fb>>2]=(c[qb>>2]|0)-(c[pb>>2]|0);if((c[Fb>>2]|0)>>>0>((c[nb>>2]|0)-(c[ob>>2]|0)|0)>>>0){c[cb>>2]=-70;Nb=c[cb>>2]|0;l=m;return Nb|0;}else{mE(c[ob>>2]|0,c[pb>>2]|0,c[Fb>>2]|0)|0;c[ob>>2]=(c[ob>>2]|0)+(c[Fb>>2]|0);c[cb>>2]=(c[ob>>2]|0)-(c[mb>>2]|0);Nb=c[cb>>2]|0;l=m;return Nb|0;}return 0;}function Zr(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+24|0;k=i+20|0;m=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;h=_r(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,0)|0;l=i;return h|0;}function _r(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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;j=l;l=l+80|0;k=j+64|0;m=j+60|0;n=j+56|0;o=j+52|0;p=j+48|0;q=j+44|0;r=j+40|0;s=j+36|0;t=j+32|0;u=j+28|0;v=j+24|0;w=j+20|0;x=j+16|0;y=j+12|0;z=j+8|0;A=j+4|0;B=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=c[n>>2];if(c[t>>2]|0){c[r>>2]=$r(c[t>>2]|0)|0;c[s>>2]=as(c[t>>2]|0)|0;}while(1){if((c[q>>2]|0)>>>0<5){C=27;break;}i=(iq(c[p>>2]|0,c[q>>2]|0)|0)!=0;h=c[p>>2]|0;if(i){c[x>>2]=ar(h,c[q>>2]|0)|0;if($q(c[x>>2]|0)|0){C=7;break;}if(c[(c[m>>2]|0)+28940>>2]|0){C=9;break;}c[w>>2]=bs(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[x>>2]|0,c[r>>2]|0,c[s>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+(c[w>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[x>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[x>>2]|0);continue;}c[v>>2]=hq(h)|0;if((c[v>>2]|0)!=-47205080){if((c[v>>2]&-16|0)!=407710288){C=18;break;}if((c[q>>2]|0)>>>0<8){C=14;break;}c[y>>2]=(hq((c[p>>2]|0)+4|0)|0)+8;if((c[q>>2]|0)>>>0<(c[y>>2]|0)>>>0){C=16;break;}c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);c[q>>2]=(c[q>>2]|0)-(c[y>>2]|0);continue;}h=c[m>>2]|0;if(c[t>>2]|0){c[z>>2]=cs(h,c[t>>2]|0)|0;if($q(c[z>>2]|0)|0){C=21;break;}}else{c[A>>2]=ds(h,c[r>>2]|0,c[s>>2]|0)|0;if($q(c[A>>2]|0)|0){C=23;break;}}Br(c[m>>2]|0,c[n>>2]|0);c[B>>2]=es(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,p,q)|0;if($q(c[B>>2]|0)|0){C=25;break;}c[n>>2]=(c[n>>2]|0)+(c[B>>2]|0);c[o>>2]=(c[o>>2]|0)-(c[B>>2]|0);}if((C|0)==7){c[k>>2]=c[x>>2];D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==9){c[k>>2]=-64;D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==14){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==16){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==18){c[k>>2]=-10;D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==21){c[k>>2]=c[z>>2];D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==23){c[k>>2]=c[A>>2];D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==25){c[k>>2]=c[B>>2];D=c[k>>2]|0;l=j;return D|0;}else if((C|0)==27)if(c[q>>2]|0){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else{c[k>>2]=(c[n>>2]|0)-(c[u>>2]|0);D=c[k>>2]|0;l=j;return D|0;}return 0;}function $r(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+4>>2]|0;}function as(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+8>>2]|0;}function bs(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+64|0;i=h+52|0;j=h+48|0;k=h+44|0;m=h+40|0;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+20|0;s=h+16|0;t=h+12|0;u=h+8|0;v=h+4|0;w=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=iq(c[m>>2]|0,c[n>>2]|0)|0;switch(c[q>>2]|0){case 4:{c[i>>2]=ms(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;x=c[i>>2]|0;l=h;return x|0;}case 5:{c[s>>2]=ns()|0;if(!(c[s>>2]|0)){c[i>>2]=-64;x=c[i>>2]|0;l=h;return x|0;}else{c[r>>2]=os(c[s>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;eq(c[s>>2]|0)|0;c[i>>2]=c[r>>2];x=c[i>>2]|0;l=h;return x|0;}break;}case 6:{c[u>>2]=ps()|0;if(!(c[u>>2]|0)){c[i>>2]=-64;x=c[i>>2]|0;l=h;return x|0;}else{c[t>>2]=qs(c[u>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;dq(c[u>>2]|0)|0;c[i>>2]=c[t>>2];x=c[i>>2]|0;l=h;return x|0;}break;}case 7:{c[w>>2]=rs()|0;if(!(c[w>>2]|0)){c[i>>2]=-64;x=c[i>>2]|0;l=h;return x|0;}else{c[v>>2]=ss(c[w>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;cq(c[w>>2]|0)|0;c[i>>2]=c[v>>2];x=c[i>>2]|0;l=h;return x|0;}break;}default:{c[i>>2]=-10;x=c[i>>2]|0;l=h;return x|0;}}return 0;}function cs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[f>>2]=a;c[g>>2]=b;c[h>>2]=is(c[f>>2]|0)|0;if($q(c[h>>2]|0)|0){c[e>>2]=c[h>>2];i=c[e>>2]|0;l=d;return i|0;}do{if(c[g>>2]|0){c[(c[f>>2]|0)+28908>>2]=c[(c[g>>2]|0)+28724>>2];c[(c[f>>2]|0)+28732>>2]=c[(c[g>>2]|0)+4>>2];c[(c[f>>2]|0)+28736>>2]=c[(c[g>>2]|0)+4>>2];c[(c[f>>2]|0)+28740>>2]=(c[(c[g>>2]|0)+4>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0);c[(c[f>>2]|0)+28728>>2]=c[(c[f>>2]|0)+28740>>2];h=(c[f>>2]|0)+28808|0;if(c[(c[g>>2]|0)+28728>>2]|0){c[h>>2]=1;c[(c[f>>2]|0)+28812>>2]=1;c[c[f>>2]>>2]=(c[g>>2]|0)+12;c[(c[f>>2]|0)+4>>2]=(c[g>>2]|0)+12+6160;c[(c[f>>2]|0)+8>>2]=(c[g>>2]|0)+12+4104;c[(c[f>>2]|0)+12>>2]=(c[g>>2]|0)+12+10264;c[(c[f>>2]|0)+16+28700>>2]=c[(c[g>>2]|0)+12+28700>>2];c[(c[f>>2]|0)+16+28700+4>>2]=c[(c[g>>2]|0)+12+28700+4>>2];c[(c[f>>2]|0)+16+28700+8>>2]=c[(c[g>>2]|0)+12+28700+8>>2];break;}else{c[h>>2]=0;c[(c[f>>2]|0)+28812>>2]=0;break;}}}while(0);c[e>>2]=0;i=c[e>>2]|0;l=d;return i|0;}function ds(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=is(c[g>>2]|0)|0;if($q(c[j>>2]|0)|0){c[f>>2]=c[j>>2];m=c[f>>2]|0;l=e;return m|0;}if((c[h>>2]|0)!=0&(c[i>>2]|0)!=0?(c[k>>2]=js(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0,$q(c[k>>2]|0)|0):0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}function es(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,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;h=l;l=l+80|0;i=h+76|0;j=h+72|0;k=h+68|0;m=h+64|0;n=h+60|0;o=h+56|0;p=h+52|0;q=h+48|0;r=h+44|0;s=h+40|0;t=h+36|0;u=h+32|0;v=h+28|0;w=h+24|0;x=h+12|0;y=h+8|0;z=h+4|0;A=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[c[n>>2]>>2];c[q>>2]=c[k>>2];c[r>>2]=(c[q>>2]|0)+(c[m>>2]|0);c[s>>2]=c[q>>2];c[t>>2]=c[c[o>>2]>>2];if((c[t>>2]|0)>>>0<9){c[i>>2]=-72;B=c[i>>2]|0;l=h;return B|0;}c[u>>2]=mq(c[p>>2]|0,5)|0;if($q(c[u>>2]|0)|0){c[i>>2]=c[u>>2];B=c[i>>2]|0;l=h;return B|0;}if((c[t>>2]|0)>>>0<((c[u>>2]|0)+3|0)>>>0){c[i>>2]=-72;B=c[i>>2]|0;l=h;return B|0;}c[v>>2]=fs(c[j>>2]|0,c[p>>2]|0,c[u>>2]|0)|0;if($q(c[v>>2]|0)|0){c[i>>2]=c[v>>2];B=c[i>>2]|0;l=h;return B|0;}c[p>>2]=(c[p>>2]|0)+(c[u>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[u>>2]|0);a:while(1){c[y>>2]=br(c[p>>2]|0,c[t>>2]|0,x)|0;if($q(c[y>>2]|0)|0){C=11;break;}c[p>>2]=(c[p>>2]|0)+3;c[t>>2]=(c[t>>2]|0)-3;if((c[y>>2]|0)>>>0>(c[t>>2]|0)>>>0){C=13;break;}switch(c[x>>2]|0){case 2:{c[w>>2]=Cr(c[j>>2]|0,c[s>>2]|0,(c[r>>2]|0)-(c[s>>2]|0)|0,c[p>>2]|0,c[y>>2]|0,1)|0;break;}case 0:{c[w>>2]=gs(c[s>>2]|0,(c[r>>2]|0)-(c[s>>2]|0)|0,c[p>>2]|0,c[y>>2]|0)|0;break;}case 1:{c[w>>2]=hs(c[s>>2]|0,(c[r>>2]|0)-(c[s>>2]|0)|0,a[c[p>>2]>>0]|0,c[x+8>>2]|0)|0;break;}default:{C=18;break a;}}if($q(c[w>>2]|0)|0){C=20;break;}if(c[(c[j>>2]|0)+28752+32>>2]|0)Nh((c[j>>2]|0)+28816|0,c[s>>2]|0,c[w>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);c[t>>2]=(c[t>>2]|0)-(c[y>>2]|0);if(c[x+4>>2]|0){C=25;break;}}if((C|0)==11){c[i>>2]=c[y>>2];B=c[i>>2]|0;l=h;return B|0;}else if((C|0)==13){c[i>>2]=-72;B=c[i>>2]|0;l=h;return B|0;}else if((C|0)==18){c[i>>2]=-20;B=c[i>>2]|0;l=h;return B|0;}else if((C|0)==20){c[i>>2]=c[w>>2];B=c[i>>2]|0;l=h;return B|0;}else if((C|0)==25){C=(c[j>>2]|0)+28752|0;if(((c[C>>2]|0)!=-1?1:(c[C+4>>2]|0)!=-1)?(C=(c[s>>2]|0)-(c[q>>2]|0)|0,w=(c[j>>2]|0)+28752|0,(C|0)!=(c[w>>2]|0)?1:(((C|0)<0)<<31>>31|0)!=(c[w+4>>2]|0)):0){c[i>>2]=-20;B=c[i>>2]|0;l=h;return B|0;}do{if(c[(c[j>>2]|0)+28752+32>>2]|0){w=Oh((c[j>>2]|0)+28816|0)|0;c[z>>2]=w;if((c[t>>2]|0)>>>0<4){c[i>>2]=-22;B=c[i>>2]|0;l=h;return B|0;}c[A>>2]=hq(c[p>>2]|0)|0;if((c[A>>2]|0)==(c[z>>2]|0)){c[p>>2]=(c[p>>2]|0)+4;c[t>>2]=(c[t>>2]|0)-4;break;}c[i>>2]=-22;B=c[i>>2]|0;l=h;return B|0;}}while(0);c[c[n>>2]>>2]=c[p>>2];c[c[o>>2]>>2]=c[t>>2];c[i>>2]=(c[s>>2]|0)-(c[q>>2]|0);B=c[i>>2]|0;l=h;return B|0;}return 0;}function fs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=qq((c[g>>2]|0)+28752|0,c[h>>2]|0,c[i>>2]|0,c[(c[g>>2]|0)+28912>>2]|0)|0;i=($q(c[j>>2]|0)|0)!=0;h=c[j>>2]|0;if(i){c[f>>2]=h;k=c[f>>2]|0;l=e;return k|0;}if(h>>>0>0){c[f>>2]=-72;k=c[f>>2]|0;l=e;return k|0;}if(c[(c[g>>2]|0)+28752+28>>2]|0?(c[(c[g>>2]|0)+28908>>2]|0)!=(c[(c[g>>2]|0)+28752+28>>2]|0):0){c[f>>2]=-32;k=c[f>>2]|0;l=e;return k|0;}if(c[(c[g>>2]|0)+28752+32>>2]|0)Lh((c[g>>2]|0)+28816|0,0,0)|0;c[f>>2]=0;k=c[f>>2]|0;l=e;return k|0;}function gs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function hs(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+4|0;m=h+16|0;n=h;c[j>>2]=b;c[k>>2]=e;a[m>>0]=f;c[n>>2]=g;if((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[i>>2]=-70;o=c[i>>2]|0;l=h;return o|0;}else{oE(c[j>>2]|0,(d[m>>0]|0)&255|0,c[n>>2]|0)|0;c[i>>2]=c[n>>2];o=c[i>>2]|0;l=h;return o|0;}return 0;}function is(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=oq(c[(c[d>>2]|0)+28912>>2]|0)|0;c[(c[d>>2]|0)+28744>>2]=a;c[(c[d>>2]|0)+28804>>2]=0;a=(c[d>>2]|0)+28792|0;c[a>>2]=0;c[a+4>>2]=0;c[(c[d>>2]|0)+28728>>2]=0;c[(c[d>>2]|0)+28732>>2]=0;c[(c[d>>2]|0)+28736>>2]=0;c[(c[d>>2]|0)+28740>>2]=0;c[(c[d>>2]|0)+16+10264>>2]=201326604;c[(c[d>>2]|0)+28812>>2]=0;c[(c[d>>2]|0)+28808>>2]=0;c[(c[d>>2]|0)+28908>>2]=0;a=(c[d>>2]|0)+16+28700|0;c[a>>2]=c[2985];c[a+4>>2]=c[2986];c[a+8>>2]=c[2987];c[c[d>>2]>>2]=(c[d>>2]|0)+16;c[(c[d>>2]|0)+4>>2]=(c[d>>2]|0)+16+6160;c[(c[d>>2]|0)+8>>2]=(c[d>>2]|0)+16+4104;c[(c[d>>2]|0)+12>>2]=(c[d>>2]|0)+16+10264;l=b;return 0;}function js(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[i>>2]|0)>>>0<8){c[f>>2]=ks(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}c[j>>2]=hq(c[h>>2]|0)|0;if((c[j>>2]|0)!=-332356553){c[f>>2]=ks(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}j=hq((c[h>>2]|0)+4|0)|0;c[(c[g>>2]|0)+28908>>2]=j;c[k>>2]=ls((c[g>>2]|0)+16|0,c[h>>2]|0,c[i>>2]|0)|0;if($q(c[k>>2]|0)|0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}else{c[h>>2]=(c[h>>2]|0)+(c[k>>2]|0);c[i>>2]=(c[i>>2]|0)-(c[k>>2]|0);c[(c[g>>2]|0)+28812>>2]=1;c[(c[g>>2]|0)+28808>>2]=1;c[f>>2]=ks(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0;m=c[f>>2]|0;l=e;return m|0;}return 0;}function ks(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+28740>>2]=c[(c[f>>2]|0)+28728>>2];c[(c[f>>2]|0)+28736>>2]=(c[g>>2]|0)+(0-((c[(c[f>>2]|0)+28728>>2]|0)-(c[(c[f>>2]|0)+28732>>2]|0)));c[(c[f>>2]|0)+28732>>2]=c[g>>2];c[(c[f>>2]|0)+28728>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return 0;}function ls(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;e=l;l=l+336|0;f=e+328|0;g=e+324|0;h=e+320|0;i=e+316|0;j=e+312|0;k=e+308|0;m=e+304|0;n=e+192|0;o=e+300|0;p=e+296|0;q=e+292|0;r=e+80|0;s=e+288|0;t=e+284|0;u=e+280|0;v=e;w=e+276|0;x=e+272|0;y=e+268|0;z=e+264|0;A=e+260|0;B=e+256|0;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[h>>2];c[k>>2]=(c[j>>2]|0)+(c[i>>2]|0);if((c[i>>2]|0)>>>0<=8){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+8;c[m>>2]=Bp((c[g>>2]|0)+10264|0,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0,(c[g>>2]|0)+26652|0,2048)|0;if($q(c[m>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[j>>2]=(c[j>>2]|0)+(c[m>>2]|0);c[o>>2]=31;c[q>>2]=ah(n,o,p,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if($q(c[q>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[o>>2]|0)>>>0>31){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[p>>2]|0)>>>0>8){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}zr((c[g>>2]|0)+4104|0,n,c[o>>2]|0,4032,4160,c[p>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[q>>2]|0);c[s>>2]=52;c[u>>2]=ah(r,s,t,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if($q(c[u>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[s>>2]|0)>>>0>52){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[t>>2]|0)>>>0>9){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}zr((c[g>>2]|0)+6160|0,r,c[s>>2]|0,5216,5840,c[t>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[u>>2]|0);c[w>>2]=35;c[y>>2]=ah(v,w,x,c[j>>2]|0,(c[k>>2]|0)-(c[j>>2]|0)|0)|0;if($q(c[y>>2]|0)|0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[w>>2]|0)>>>0>35){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}if((c[x>>2]|0)>>>0>9){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}zr(c[g>>2]|0,v,c[w>>2]|0,6416,5696,c[x>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[y>>2]|0);if(((c[j>>2]|0)+12|0)>>>0>(c[k>>2]|0)>>>0){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}c[A>>2]=(c[k>>2]|0)-((c[j>>2]|0)+12);c[z>>2]=0;while(1){D=c[j>>2]|0;if((c[z>>2]|0)>=3){E=31;break;}c[B>>2]=hq(D)|0;c[j>>2]=(c[j>>2]|0)+4;if(!(c[B>>2]|0)){E=29;break;}if((c[B>>2]|0)>>>0>=(c[A>>2]|0)>>>0){E=29;break;}c[(c[g>>2]|0)+28700+(c[z>>2]<<2)>>2]=c[B>>2];c[z>>2]=(c[z>>2]|0)+1;}if((E|0)==29){c[f>>2]=-30;C=c[f>>2]|0;l=e;return C|0;}else if((E|0)==31){c[f>>2]=D-(c[h>>2]|0);C=c[f>>2]|0;l=e;return C|0;}return 0;}function ms(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[n>>2]=hw()|0;if(!(c[n>>2]|0)){c[g>>2]=-64;o=c[g>>2]|0;l=f;return o|0;}else{c[m>>2]=iw(c[n>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;gq(c[n>>2]|0)|0;c[g>>2]=c[m>>2];o=c[g>>2]|0;l=f;return o|0;}return 0;}function ns(){var a=0,b=0,d=0,e=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(157816)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{dw(c[d>>2]|0)|0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function os(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+24|0;k=i+20|0;m=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;Su(c[j>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;Tu(c[j>>2]|0,c[k>>2]|0);q=Uu(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;l=i;return q|0;}function ps(){var a=0,b=0,d=0,e=0;a=l;l=l+16|0;b=a+4|0;d=a;c[d>>2]=Cy(152680)|0;if(!(c[d>>2]|0)){c[b>>2]=0;e=c[b>>2]|0;l=a;return e|0;}else{Ou(c[d>>2]|0)|0;c[b>>2]=c[d>>2];e=c[b>>2]|0;l=a;return e|0;}return 0;}function qs(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+24|0;k=i+20|0;m=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;Jt(c[j>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;Kt(c[j>>2]|0,c[k>>2]|0);q=Lt(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;l=i;return q|0;}function rs(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[2988];c[b+4>>2]=c[2989];c[b+8>>2]=c[2990];d=Gt(b)|0;l=a;return d|0;}function ss(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;i=l;l=l+32|0;j=i+24|0;k=i+20|0;m=i+16|0;n=i+12|0;o=i+8|0;p=i+4|0;q=i;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;ts(c[j>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;us(c[j>>2]|0,c[k>>2]|0);q=vs(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;l=i;return q|0;}function ts(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=Ct(c[g>>2]|0)|0;if(hr(c[j>>2]|0)|0){c[f>>2]=c[j>>2];m=c[f>>2]|0;l=e;return m|0;}if((c[h>>2]|0)!=0&(c[i>>2]|0)!=0?(c[k>>2]=Dt(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0)|0,hr(c[k>>2]|0)|0):0){c[f>>2]=-30;m=c[f>>2]|0;l=e;return m|0;}c[f>>2]=0;m=c[f>>2]|0;l=e;return m|0;}function us(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+21520>>2]|0)){l=d;return;}c[(c[e>>2]|0)+21532>>2]=c[(c[e>>2]|0)+21520>>2];c[(c[e>>2]|0)+21528>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+21520>>2]|0)-(c[(c[e>>2]|0)+21524>>2]|0)));c[(c[e>>2]|0)+21524>>2]=c[f>>2];c[(c[e>>2]|0)+21520>>2]=c[f>>2];l=d;return;}function vs(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,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;h=l;l=l+80|0;i=h+68|0;j=h+64|0;k=h+60|0;m=h+56|0;n=h+52|0;o=h+48|0;p=h+44|0;q=h+40|0;r=h+36|0;s=h+32|0;t=h+28|0;u=h+24|0;v=h+20|0;w=h+16|0;x=h+8|0;y=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=c[o>>2];if((c[o>>2]|0)>>>0<8){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}c[v>>2]=Cq(c[n>>2]|0,5)|0;if(hr(c[v>>2]|0)|0){c[i>>2]=c[v>>2];z=c[i>>2]|0;l=h;return z|0;}if((c[o>>2]|0)>>>0<((c[v>>2]|0)+3|0)>>>0){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}if(ws(c[j>>2]|0,c[n>>2]|0,c[v>>2]|0)|0){c[i>>2]=-20;z=c[i>>2]|0;l=h;return z|0;}c[p>>2]=(c[p>>2]|0)+(c[v>>2]|0);c[u>>2]=(c[u>>2]|0)-(c[v>>2]|0);a:while(1){c[y>>2]=ir(c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0,x)|0;if(hr(c[y>>2]|0)|0){A=11;break;}c[p>>2]=(c[p>>2]|0)+3;c[u>>2]=(c[u>>2]|0)-3;if((c[y>>2]|0)>>>0>(c[u>>2]|0)>>>0){A=13;break;}switch(c[x>>2]|0){case 0:{c[w>>2]=xs(c[j>>2]|0,c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,c[p>>2]|0,c[y>>2]|0)|0;break;}case 1:{c[w>>2]=ys(c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,c[p>>2]|0,c[y>>2]|0)|0;break;}case 2:{c[w>>2]=zs(c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,a[c[p>>2]>>0]|0,c[x+4>>2]|0)|0;break;}case 3:{if(c[u>>2]|0){A=19;break a;}c[w>>2]=0;break;}default:{A=21;break a;}}if((c[x>>2]|0)==3){A=28;break;}if(hr(c[w>>2]|0)|0){A=24;break;}if(c[(c[j>>2]|0)+21552+16>>2]|0)Nh((c[j>>2]|0)+21592|0,c[t>>2]|0,c[w>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[y>>2]|0);c[u>>2]=(c[u>>2]|0)-(c[y>>2]|0);}if((A|0)==11){c[i>>2]=c[y>>2];z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==13){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==19){c[i>>2]=-72;z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==21){c[i>>2]=-1;z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==24){c[i>>2]=c[w>>2];z=c[i>>2]|0;l=h;return z|0;}else if((A|0)==28){c[i>>2]=(c[t>>2]|0)-(c[r>>2]|0);z=c[i>>2]|0;l=h;return z|0;}return 0;}function ws(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=Aq((c[g>>2]|0)+21552|0,c[h>>2]|0,c[i>>2]|0)|0;if(c[(c[g>>2]|0)+21552+12>>2]|0?(c[(c[g>>2]|0)+21684>>2]|0)!=(c[(c[g>>2]|0)+21552+12>>2]|0):0){c[f>>2]=-32;k=c[f>>2]|0;l=e;return k|0;}if(c[(c[g>>2]|0)+21552+16>>2]|0)Lh((c[g>>2]|0)+21592|0,0,0)|0;c[f>>2]=c[j>>2];k=c[f>>2]|0;l=e;return k|0;}function xs(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];if((c[n>>2]|0)>>>0>=131072){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}c[p>>2]=As(c[i>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;m=(hr(c[p>>2]|0)|0)!=0;f=c[p>>2]|0;if(m){c[h>>2]=f;q=c[h>>2]|0;l=g;return q|0;}else{c[o>>2]=(c[o>>2]|0)+f;c[n>>2]=(c[n>>2]|0)-(c[p>>2]|0);c[h>>2]=Bs(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0)|0;q=c[h>>2]|0;l=g;return q|0;}return 0;}function ys(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0){c[g>>2]=-70;m=c[g>>2]|0;l=f;return m|0;}else{mE(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[g>>2]=c[k>>2];m=c[g>>2]|0;l=f;return m|0;}return 0;}function zs(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+4|0;m=h+16|0;n=h;c[j>>2]=b;c[k>>2]=e;a[m>>0]=f;c[n>>2]=g;if((c[n>>2]|0)>>>0>(c[k>>2]|0)>>>0){c[i>>2]=-70;o=c[i>>2]|0;l=h;return o|0;}else{oE(c[j>>2]|0,(d[m>>0]|0)&255|0,c[n>>2]|0)|0;c[i>>2]=c[n>>2];o=c[i>>2]|0;l=h;return o|0;}return 0;}function As(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+52|0;m=g+48|0;n=g+44|0;o=g+40|0;p=g+36|0;q=g+32|0;r=g+28|0;s=g+24|0;t=g+20|0;u=g+16|0;v=g+12|0;w=g+8|0;x=g+4|0;y=g;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=c[j>>2];if((c[k>>2]|0)>>>0<3){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch((d[c[m>>2]>>0]|0)>>6|0){case 0:{c[p>>2]=0;c[q>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[k>>2]|0)>>>0<5){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}switch(c[q>>2]|0){case 3:{c[q>>2]=5;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<14)+((d[(c[m>>2]|0)+1>>0]|0)<<6)+((d[(c[m>>2]|0)+2>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&3)<<16)+((d[(c[m>>2]|0)+3>>0]|0)<<8)+(d[(c[m>>2]|0)+4>>0]|0);break;}case 2:{c[q>>2]=4;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<10)+((d[(c[m>>2]|0)+1>>0]|0)<<2)+((d[(c[m>>2]|0)+2>>0]|0)>>6);c[o>>2]=(((d[(c[m>>2]|0)+2>>0]|0)&63)<<8)+(d[(c[m>>2]|0)+3>>0]|0);break;}default:{c[q>>2]=3;c[p>>2]=(d[c[m>>2]>>0]|0)&16;c[n>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[o>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);}}if((c[n>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(((c[o>>2]|0)+(c[q>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}j=(c[i>>2]|0)+5132|0;f=(c[i>>2]|0)+21708|0;e=c[n>>2]|0;b=(c[m>>2]|0)+(c[q>>2]|0)|0;A=c[o>>2]|0;if(c[p>>2]|0)B=Xs(j,f,e,b,A)|0;else B=Ys(j,f,e,b,A)|0;if(hr(B)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+21688>>2]=(c[i>>2]|0)+21708;c[(c[i>>2]|0)+21704>>2]=c[n>>2];c[(c[i>>2]|0)+21584>>2]=1;n=(c[i>>2]|0)+21708+(c[(c[i>>2]|0)+21704>>2]|0)|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;a[n+5>>0]=0;a[n+6>>0]=0;a[n+7>>0]=0;c[h>>2]=(c[o>>2]|0)+(c[q>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 1:{c[t>>2]=(d[c[m>>2]>>0]|0)>>4&3;if((c[t>>2]|0)!=1){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}if(!(c[(c[i>>2]|0)+21584>>2]|0)){c[h>>2]=-30;z=c[h>>2]|0;l=g;return z|0;}c[t>>2]=3;c[r>>2]=(((d[c[m>>2]>>0]|0)&15)<<6)+((d[(c[m>>2]|0)+1>>0]|0)>>2);c[s>>2]=(((d[(c[m>>2]|0)+1>>0]|0)&3)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if(((c[s>>2]|0)+(c[t>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}c[u>>2]=Zs((c[i>>2]|0)+21708|0,c[r>>2]|0,(c[m>>2]|0)+(c[t>>2]|0)|0,c[s>>2]|0,(c[i>>2]|0)+5132|0)|0;if(hr(c[u>>2]|0)|0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{c[(c[i>>2]|0)+21688>>2]=(c[i>>2]|0)+21708;c[(c[i>>2]|0)+21704>>2]=c[r>>2];r=(c[i>>2]|0)+21708+(c[(c[i>>2]|0)+21704>>2]|0)|0;a[r>>0]=0;a[r+1>>0]=0;a[r+2>>0]=0;a[r+3>>0]=0;a[r+4>>0]=0;a[r+5>>0]=0;a[r+6>>0]=0;a[r+7>>0]=0;c[h>>2]=(c[s>>2]|0)+(c[t>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[w>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[w>>2]|0){case 3:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);break;}case 2:{c[v>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[w>>2]=1;c[v>>2]=(d[c[m>>2]>>0]|0)&31;}}if(((c[w>>2]|0)+(c[v>>2]|0)+8|0)>>>0<=(c[k>>2]|0)>>>0){c[(c[i>>2]|0)+21688>>2]=(c[m>>2]|0)+(c[w>>2]|0);c[(c[i>>2]|0)+21704>>2]=c[v>>2];c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}if(((c[v>>2]|0)+(c[w>>2]|0)|0)>>>0>(c[k>>2]|0)>>>0){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{mE((c[i>>2]|0)+21708|0,(c[m>>2]|0)+(c[w>>2]|0)|0,c[v>>2]|0)|0;c[(c[i>>2]|0)+21688>>2]=(c[i>>2]|0)+21708;c[(c[i>>2]|0)+21704>>2]=c[v>>2];t=(c[i>>2]|0)+21708+(c[(c[i>>2]|0)+21704>>2]|0)|0;a[t>>0]=0;a[t+1>>0]=0;a[t+2>>0]=0;a[t+3>>0]=0;a[t+4>>0]=0;a[t+5>>0]=0;a[t+6>>0]=0;a[t+7>>0]=0;c[h>>2]=(c[w>>2]|0)+(c[v>>2]|0);z=c[h>>2]|0;l=g;return z|0;}break;}case 3:{c[y>>2]=(d[c[m>>2]>>0]|0)>>4&3;switch(c[y>>2]|0){case 3:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<16)+((d[(c[m>>2]|0)+1>>0]|0)<<8)+(d[(c[m>>2]|0)+2>>0]|0);if((c[k>>2]|0)>>>0<4){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}break;}case 2:{c[x>>2]=(((d[c[m>>2]>>0]|0)&15)<<8)+(d[(c[m>>2]|0)+1>>0]|0);break;}default:{c[y>>2]=1;c[x>>2]=(d[c[m>>2]>>0]|0)&31;}}if((c[x>>2]|0)>>>0>131072){c[h>>2]=-20;z=c[h>>2]|0;l=g;return z|0;}else{oE((c[i>>2]|0)+21708|0,(d[(c[m>>2]|0)+(c[y>>2]|0)>>0]|0)&255|0,(c[x>>2]|0)+8|0)|0;c[(c[i>>2]|0)+21688>>2]=(c[i>>2]|0)+21708;c[(c[i>>2]|0)+21704>>2]=c[x>>2];c[h>>2]=(c[y>>2]|0)+1;z=c[h>>2]|0;l=g;return z|0;}break;}default:{}}return 0;}function Bs(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,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;g=l;l=l+192|0;h=g+168|0;i=g+164|0;j=g+160|0;k=g+156|0;m=g+152|0;n=g+148|0;o=g+144|0;p=g+140|0;q=g+136|0;r=g+132|0;s=g+128|0;t=g+124|0;u=g+120|0;v=g+116|0;w=g+112|0;x=g+108|0;y=g+104|0;z=g+100|0;A=g+96|0;B=g+92|0;C=g+88|0;D=g+84|0;E=g+32|0;F=g+28|0;G=g+24|0;H=g+12|0;I=g+8|0;J=g+4|0;K=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[k>>2];c[s>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=c[(c[j>>2]|0)+21688>>2];c[v>>2]=(c[u>>2]|0)+(c[(c[j>>2]|0)+21704>>2]|0);c[w>>2]=c[j>>2];c[x>>2]=(c[j>>2]|0)+3080;c[y>>2]=(c[j>>2]|0)+2052;c[z>>2]=c[(c[j>>2]|0)+21524>>2];c[A>>2]=c[(c[j>>2]|0)+21528>>2];c[B>>2]=c[(c[j>>2]|0)+21532>>2];c[D>>2]=Cs(C,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[(c[j>>2]|0)+21588>>2]|0,c[p>>2]|0,c[o>>2]|0)|0;o=(hr(c[D>>2]|0)|0)!=0;m=c[D>>2]|0;if(o){c[i>>2]=m;L=c[i>>2]|0;l=g;return L|0;}c[p>>2]=(c[p>>2]|0)+m;a:do{if(c[C>>2]|0){c[(c[j>>2]|0)+21588>>2]=1;c[F>>2]=0;while(1){if((c[F>>2]|0)>>>0>=3)break;c[E+40+(c[F>>2]<<2)>>2]=c[(c[j>>2]|0)+21540+(c[F>>2]<<2)>>2];c[F>>2]=(c[F>>2]|0)+1;}c[G>>2]=Ds(E,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;if(hr(c[G>>2]|0)|0){c[i>>2]=-20;L=c[i>>2]|0;l=g;return L|0;}Es(E+16|0,E,c[w>>2]|0);Es(E+24|0,E,c[y>>2]|0);Es(E+32|0,E,c[x>>2]|0);while(1){m=(Fs(E)|0)>>>0<=2;M=c[C>>2]|0;if(!(m?(c[C>>2]|0)!=0:0))break;c[C>>2]=M+-1;Gs(H,E);m=c[t>>2]|0;o=c[s>>2]|0;D=c[v>>2]|0;k=c[z>>2]|0;n=c[A>>2]|0;f=c[B>>2]|0;c[h>>2]=c[H>>2];c[h+4>>2]=c[H+4>>2];c[h+8>>2]=c[H+8>>2];c[I>>2]=Hs(m,o,h,u,D,k,n,f)|0;f=(hr(c[I>>2]|0)|0)!=0;N=c[I>>2]|0;if(f){O=12;break;}c[t>>2]=(c[t>>2]|0)+N;}if((O|0)==12){c[i>>2]=N;L=c[i>>2]|0;l=g;return L|0;}if(M|0){c[i>>2]=-20;L=c[i>>2]|0;l=g;return L|0;}c[J>>2]=0;while(1){if((c[J>>2]|0)>>>0>=3)break a;c[(c[j>>2]|0)+21540+(c[J>>2]<<2)>>2]=c[E+40+(c[J>>2]<<2)>>2];c[J>>2]=(c[J>>2]|0)+1;}}}while(0);c[K>>2]=(c[v>>2]|0)-(c[u>>2]|0);if((c[K>>2]|0)>>>0>((c[s>>2]|0)-(c[t>>2]|0)|0)>>>0){c[i>>2]=-70;L=c[i>>2]|0;l=g;return L|0;}else{mE(c[t>>2]|0,c[u>>2]|0,c[K>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[K>>2]|0);c[i>>2]=(c[t>>2]|0)-(c[r>>2]|0);L=c[i>>2]|0;l=g;return L|0;}return 0;}function Cs(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,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;j=l;l=l+80|0;k=j+68|0;m=j+64|0;n=j+60|0;o=j+56|0;p=j+52|0;q=j+48|0;r=j+44|0;s=j+40|0;t=j+36|0;u=j+32|0;v=j+28|0;w=j+24|0;x=j+20|0;y=j+16|0;z=j+12|0;A=j+8|0;B=j+4|0;C=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=c[r>>2];c[u>>2]=(c[t>>2]|0)+(c[s>>2]|0);c[v>>2]=c[t>>2];if((c[s>>2]|0)>>>0<1){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}s=c[v>>2]|0;c[v>>2]=s+1;c[w>>2]=d[s>>0];if(!(c[w>>2]|0)){c[c[m>>2]>>2]=0;c[k>>2]=1;D=c[k>>2]|0;l=j;return D|0;}do{if((c[w>>2]|0)>127){s=c[v>>2]|0;if((c[w>>2]|0)==255){if((s+2|0)>>>0<=(c[u>>2]|0)>>>0){c[w>>2]=((Eq(c[v>>2]|0)|0)&65535)+32512;c[v>>2]=(c[v>>2]|0)+2;break;}c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}else{if(s>>>0<(c[u>>2]|0)>>>0){s=(c[w>>2]|0)-128<<8;r=c[v>>2]|0;c[v>>2]=r+1;c[w>>2]=s+(d[r>>0]|0);break;}c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}}}while(0);c[c[m>>2]>>2]=c[w>>2];c[x>>2]=(d[c[v>>2]>>0]|0)>>6;c[y>>2]=(d[c[v>>2]>>0]|0)>>4&3;c[z>>2]=(d[c[v>>2]>>0]|0)>>2&3;c[v>>2]=(c[v>>2]|0)+1;if((c[v>>2]|0)>>>0>((c[u>>2]|0)+-3|0)>>>0){c[k>>2]=-72;D=c[k>>2]|0;l=j;return D|0;}c[A>>2]=Ss(c[n>>2]|0,c[x>>2]|0,35,9,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,5440,6,c[q>>2]|0)|0;if(hr(c[A>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}c[v>>2]=(c[v>>2]|0)+(c[A>>2]|0);c[B>>2]=Ss(c[p>>2]|0,c[y>>2]|0,28,8,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,5520,5,c[q>>2]|0)|0;if(hr(c[B>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}c[v>>2]=(c[v>>2]|0)+(c[B>>2]|0);c[C>>2]=Ss(c[o>>2]|0,c[z>>2]|0,52,9,c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,5584,6,c[q>>2]|0)|0;if(hr(c[C>>2]|0)|0){c[k>>2]=-20;D=c[k>>2]|0;l=j;return D|0;}else{c[v>>2]=(c[v>>2]|0)+(c[C>>2]|0);c[k>>2]=(c[v>>2]|0)-(c[t>>2]|0);D=c[k>>2]|0;l=j;return D|0;}return 0;}function Cc(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0;}function Dc(){return l|0;}function Ec(a){a=a|0;l=a;}function Fc(a,b){a=a|0;b=b|0;l=a;m=b;}function Gc(a,b){a=a|0;b=b|0;if(!n){n=a;o=b;}}function Hc(a){a=a|0;y=a;}function Ic(){return y|0;}function Jc(){var a=0;a=l;l=l+16|0;Kz(Cz(12856,12862)|0)|0;Az(12856,a)|0;l=a;return;}function Kc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+32|0;f=e;g=c[d>>2]|0;h=hb(12865)|0;i=db(g|0,h|0)|0;ab(h|0);j=+Za(i|0,11e3,f|0);jb(c[f>>2]|0);h=~~j>>>0;ab(i|0);i=b+4|0;g=c[i>>2]|0;k=c[b>>2]|0;m=g-k|0;n=k;a:do{if(m>>>0>>0){o=h-m|0;p=b+8|0;q=c[p>>2]|0;if((q-g|0)>>>0>=o>>>0){r=o;s=g;while(1){a[s>>0]=0;s=(c[i>>2]|0)+1|0;c[i>>2]=s;r=r+-1|0;if(!r)break a;}}if((h|0)<0)Wz(b);r=q-k|0;s=r<<1;t=r>>>0<1073741823?s>>>0>>0?h:s:2147483647;if(!t)u=0;else u=Uz(t)|0;oE(u+m|0,0,o|0)|0;if((m|0)>0)mE(u|0,n|0,m|0)|0;c[b>>2]=u;c[i>>2]=u+h;c[p>>2]=u+t;if(k|0)Vz(n);}else if(m>>>0>h>>>0)c[i>>2]=n+h;}while(0);n=cb(12872)|0;i=c[d>>2]|0;m=hb(12879)|0;k=db(i|0,m|0)|0;ab(m|0);m=c[b>>2]|0;eb(n|0);c[f>>2]=n;c[f+8>>2]=m;c[f+16>>2]=h;h=gb(k|0,3,11072,f|0)|0;ab(k|0);cd(h,12891,d);ab(h|0);ab(n|0);l=e;return;}function Lc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+32|0;f=e;g=cb(12895)|0;h=cb(12872)|0;i=hb(12879)|0;j=db(g|0,i|0)|0;ab(i|0);i=c[d>>2]|0;k=d+4|0;m=c[k>>2]|0;eb(h|0);c[f>>2]=h;c[f+8>>2]=i;c[f+16>>2]=m-i;i=gb(j|0,3,11092,f|0)|0;m=i;ab(j|0);j=hb(12879)|0;n=db(h|0,j|0)|0;ab(j|0);c[f>>2]=(c[k>>2]|0)-(c[d>>2]|0);d=gb(n|0,1,11104,f|0)|0;ab(n|0);n=hb(12879)|0;k=db(g|0,n|0)|0;ab(n|0);eb(d|0);c[f>>2]=d;n=gb(k|0,1,11108,f|0)|0;c[b>>2]=n;ab(k|0);if((a[21600]|0)==0?WD(21600)|0:0)c[5404]=bb(2,11084)|0;k=c[5404]|0;eb(i|0);c[f>>2]=m;$a(k|0,n|0,12891,f|0);ab(d|0);ab(i|0);ab(h|0);ab(g|0);l=e;return;}function Mc(a){a=a|0;return(c[a+4>>2]|0)-(c[a>>2]|0)|0;}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d;f=cb(12872)|0;g=cb(12895)|0;h=hb(12879)|0;i=db(g|0,h|0)|0;ab(h|0);h=c[b>>2]|0;j=c[b+4>>2]|0;eb(f|0);c[e>>2]=f;c[e+8>>2]=h;c[e+16>>2]=j-h;c[a>>2]=gb(i|0,3,11092,e|0)|0;ab(i|0);ab(g|0);ab(f|0);l=d;return;}function Oc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=Uz(32)|0;Pc(e,a);Ef(f,e,b);b=c[e>>2]|0;if(!b){l=d;return f|0;}c[e+4>>2]=b;Vz(b);l=d;return f|0;}function Pc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0.0,n=0,o=0,p=0;d=l;l=l+48|0;e=d;f=d+24|0;c[f>>2]=0;g=f+4|0;c[g>>2]=0;h=f+8|0;c[h>>2]=0;i=c[b>>2]|0;j=hb(12865)|0;k=db(i|0,j|0)|0;ab(j|0);m=+Za(k|0,11016,e|0);jb(c[e>>2]|0);j=~~m>>>0;do{if(j|0)if((j|0)<0)Wz(f);else{i=Uz(j)|0;oE(i|0,0,j|0)|0;n=i+j|0;c[f>>2]=i;c[g>>2]=n;c[h>>2]=n;break;}}while(0);ab(k|0);k=c[b>>2]|0;j=hb(12865)|0;n=db(k|0,j|0)|0;ab(j|0);m=+Za(n|0,11e3,e|0);jb(c[e>>2]|0);j=~~m>>>0;ab(n|0);n=cb(12872)|0;k=c[b>>2]|0;i=hb(12879)|0;o=db(k|0,i|0)|0;ab(i|0);i=c[f>>2]|0;eb(n|0);c[e>>2]=n;c[e+8>>2]=i;c[e+16>>2]=j;i=gb(o|0,3,11072,e|0)|0;ab(o|0);o=c[f>>2]|0;e=o;if(((c[h>>2]|0)-o|0)>>>0>>0){k=(c[g>>2]|0)-o|0;p=Uz(j)|0;if((k|0)>0)mE(p|0,e|0,k|0)|0;c[f>>2]=p;c[g>>2]=p+k;c[h>>2]=p+j;if(o|0)Vz(e);}dd(i,12891,b);ab(i|0);ab(n|0);c[a>>2]=c[f>>2];c[a+4>>2]=c[g>>2];c[a+8>>2]=c[h>>2];l=d;return;}function Qc(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;e=Uz(32)|0;Pc(d,a);Pf(e,d);a=c[d>>2]|0;if(!a){l=b;return e|0;}c[d+4>>2]=a;Vz(a);l=b;return e|0;}function Rc(a,b){a=a|0;b=b|0;return ag(a,b)|0;}function Sc(a,b){a=a|0;b=b|0;return mg(a,b)|0;}function Tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+48|0;f=e+28|0;g=e+24|0;h=e;c[f>>2]=0;i=f+4|0;c[i>>2]=0;c[f+8>>2]=0;j=c[b>>2]|0;c[g>>2]=j;eb(j|0);Kc(f,g);ab(c[g>>2]|0);g=h+16|0;c[h>>2]=11128;c[h+4>>2]=d;c[g>>2]=h;d=vg(a,f,h)|0;a=c[g>>2]|0;if((h|0)!=(a|0)){if(a|0)wc[c[(c[a>>2]|0)+20>>2]&127](a);}else wc[c[(c[a>>2]|0)+16>>2]&127](a);a=c[f>>2]|0;if(!a){l=e;return d|0;}c[i>>2]=a;Vz(a);l=e;return d|0;}function Uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11172;c[e+4>>2]=b;c[f>>2]=e;b=xg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function Vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11216;c[e+4>>2]=b;c[f>>2]=e;b=yg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function Wc(a){a=a|0;return Bg(a)|0;}function Xc(a,b){a=a|0;b=b|0;return Mg(a,b)|0;}function Yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+48|0;f=e+28|0;g=e+24|0;h=e;c[f>>2]=0;i=f+4|0;c[i>>2]=0;c[f+8>>2]=0;j=c[b>>2]|0;c[g>>2]=j;eb(j|0);Kc(f,g);ab(c[g>>2]|0);g=h+16|0;c[h>>2]=11260;c[h+4>>2]=d;c[g>>2]=h;d=Vg(a,f,h)|0;a=c[g>>2]|0;if((h|0)!=(a|0)){if(a|0)wc[c[(c[a>>2]|0)+20>>2]&127](a);}else wc[c[(c[a>>2]|0)+16>>2]&127](a);a=c[f>>2]|0;if(!a){l=e;return d|0;}c[i>>2]=a;Vz(a);l=e;return d|0;}function Zc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11304;c[e+4>>2]=b;c[f>>2]=e;b=Xg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function _c(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11348;c[e+4>>2]=b;c[f>>2]=e;b=Yg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function $c(a){a=a|0;ad(12902);Ra(12856,1,11420,14747,61,2);Ra(12911,3,11424,14750,1,26);Ra(12925,2,11436,14761,20,27);Ra(12943,2,11436,14761,20,28);Ma(10096,10112,10128,0,14742,31,14745,0,14745,0,12960,14747,62);Ra(12980,3,11444,14765,9,21);Ma(10152,10168,10184,0,14742,32,14745,0,14745,0,13002,14747,63);Ra(13024,2,11456,14761,22,33);Ma(10200,10208,10224,0,14742,34,14745,0,14745,0,13048,14747,64);Na(10200,1,11464,14742,35,1);a=Uz(8)|0;c[a>>2]=23;c[a+4>>2]=0;Oa(10200,13058,3,11468,14765,10,a|0,0);a=Uz(8)|0;c[a>>2]=24;c[a+4>>2]=0;Oa(10200,13072,3,11480,14765,11,a|0,0);a=Uz(8)|0;c[a>>2]=7;c[a+4>>2]=0;Oa(10200,13084,5,48,15008,1,a|0,0);a=Uz(8)|0;c[a>>2]=12;c[a+4>>2]=0;Oa(10200,13093,4,80,14770,8,a|0,0);a=Uz(8)|0;c[a>>2]=9;c[a+4>>2]=0;Oa(10200,13104,5,96,15008,2,a|0,0);a=Uz(8)|0;c[a>>2]=10;c[a+4>>2]=0;Oa(10200,13122,5,128,15008,3,a|0,0);Ma(10240,10248,10264,0,14742,36,14745,0,14745,0,13142,14747,65);Na(10240,1,11492,14742,37,2);a=Uz(8)|0;c[a>>2]=25;c[a+4>>2]=0;Oa(10240,13168,3,11496,14765,13,a|0,0);a=Uz(8)|0;c[a>>2]=26;c[a+4>>2]=0;Oa(10240,13174,3,11508,14765,14,a|0,0);a=Uz(8)|0;c[a>>2]=15;c[a+4>>2]=0;Oa(10240,13189,4,160,14770,11,a|0,0);a=Uz(8)|0;c[a>>2]=27;c[a+4>>2]=0;Oa(10240,13199,3,11520,14765,16,a|0,0);a=Uz(8)|0;c[a>>2]=28;c[a+4>>2]=0;Oa(10240,13205,3,11520,14765,16,a|0,0);Ma(10280,10288,10304,0,14742,38,14745,0,14745,0,13209,14747,66);Na(10280,1,11532,14742,39,3);a=Uz(8)|0;c[a>>2]=40;c[a+4>>2]=0;Oa(10280,13168,2,11536,14761,29,a|0,0);a=Uz(8)|0;c[a>>2]=30;c[a+4>>2]=0;Oa(10280,13174,3,11544,14765,17,a|0,0);a=Uz(8)|0;c[a>>2]=18;c[a+4>>2]=0;Oa(10280,13189,4,176,14770,12,a|0,0);a=Uz(8)|0;c[a>>2]=31;c[a+4>>2]=0;Oa(10280,13199,3,11556,14765,19,a|0,0);a=Uz(8)|0;c[a>>2]=32;c[a+4>>2]=0;Oa(10280,13205,3,11556,14765,19,a|0,0);return;}function ad(a){a=a|0;Ma(10032,10056,10072,0,14742,41,14745,0,14745,0,a|0,14747,67);Na(10032,1,11384,14742,42,4);a=Uz(8)|0;c[a>>2]=29;c[a+4>>2]=0;Oa(10032,14524,3,11388,14750,2,a|0,0);a=Uz(8)|0;c[a>>2]=3;c[a+4>>2]=0;Oa(10032,14534,4,16,14755,4,a|0,0);a=Uz(8)|0;c[a>>2]=43;c[a+4>>2]=0;Oa(10032,14541,2,11400,14761,33,a|0,0);a=Uz(4)|0;c[a>>2]=4;Oa(10032,14546,3,11408,14765,20,a|0,0);a=Uz(4)|0;c[a>>2]=21;Oa(10032,12891,4,32,14770,13,a|0,0);return;}function bd(a){a=a|0;wa(a|0)|0;sA();}function cd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;if((a[21600]|0)==0?WD(21600)|0:0)c[5404]=bb(2,11084)|0;h=c[5404]|0;eb(c[e>>2]|0);c[g>>2]=c[e>>2];$a(h|0,b|0,d|0,g|0);l=f;return;}function dd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;if((a[21608]|0)==0?WD(21608)|0:0)c[5405]=bb(2,11112)|0;h=c[5405]|0;eb(c[e>>2]|0);c[g>>2]=c[e>>2];$a(h|0,b|0,d|0,g|0);l=f;return;}function ed(a){a=a|0;Vz(a);return;}function fd(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11128;c[b+4>>2]=c[a+4>>2];return b|0;}function gd(a,b){a=a|0;b=b|0;c[b>>2]=11128;c[b+4>>2]=c[a+4>>2];return;}function hd(a){a=a|0;return;}function id(a){a=a|0;Vz(a);return;}function jd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function kd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==13464?a+4|0:0)|0;}function ld(a){a=a|0;return 9872;}function md(a){a=a|0;Vz(a);return;}function nd(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11172;c[b+4>>2]=c[a+4>>2];return b|0;}function od(a,b){a=a|0;b=b|0;c[b>>2]=11172;c[b+4>>2]=c[a+4>>2];return;}function pd(a){a=a|0;return;}function qd(a){a=a|0;Vz(a);return;}function rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function sd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==13666?a+4|0:0)|0;}function td(a){a=a|0;return 9896;}function ud(a){a=a|0;Vz(a);return;}function vd(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11216;c[b+4>>2]=c[a+4>>2];return b|0;}function wd(a,b){a=a|0;b=b|0;c[b>>2]=11216;c[b+4>>2]=c[a+4>>2];return;}function xd(a){a=a|0;return;}function yd(a){a=a|0;Vz(a);return;}function zd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function Ad(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==13859?a+4|0:0)|0;}function Bd(a){a=a|0;return 9920;}function Cd(a){a=a|0;return;}function Dd(a){a=a|0;Vz(a);return;}function Ed(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11260;c[b+4>>2]=c[a+4>>2];return b|0;}function Fd(a,b){a=a|0;b=b|0;c[b>>2]=11260;c[b+4>>2]=c[a+4>>2];return;}function Gd(a){a=a|0;return;}function Hd(a){a=a|0;Vz(a);return;}function Id(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function Jd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==14061?a+4|0:0)|0;}function Kd(a){a=a|0;return 9944;}function Ld(a){a=a|0;Vz(a);return;}function Md(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11304;c[b+4>>2]=c[a+4>>2];return b|0;}function Nd(a,b){a=a|0;b=b|0;c[b>>2]=11304;c[b+4>>2]=c[a+4>>2];return;}function Od(a){a=a|0;return;}function Pd(a){a=a|0;Vz(a);return;}function Qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function Rd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==14267?a+4|0:0)|0;}function Sd(a){a=a|0;return 9968;}function Td(a){a=a|0;Vz(a);return;}function Ud(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11348;c[b+4>>2]=c[a+4>>2];return b|0;}function Vd(a,b){a=a|0;b=b|0;c[b>>2]=11348;c[b+4>>2]=c[a+4>>2];return;}function Wd(a){a=a|0;return;}function Xd(a){a=a|0;Vz(a);return;}function Yd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Lc(f,b);b=c[a+4>>2]|0;a=c[f>>2]|0;eb(a|0);c[e>>2]=a;ab(_a(c[b>>2]|0,1,11108,e|0)|0);ab(a|0);l=d;return;}function Zd(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==14464?a+4|0:0)|0;}function _d(a){a=a|0;return 9992;}function $d(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;e=b+4|0;f=c[e>>2]|0;g=b+8|0;h=c[g>>2]|0;if((f|0)!=(h|0)){a[f>>0]=a[d>>0]|0;c[e>>2]=(c[e>>2]|0)+1;return;}i=c[b>>2]|0;j=f-i|0;f=j+1|0;k=i;if((f|0)<0)Wz(b);l=h-i|0;h=l<<1;m=l>>>0<1073741823?h>>>0>>0?f:h:2147483647;if(!m)n=0;else n=Uz(m)|0;h=n+j|0;a[h>>0]=a[d>>0]|0;if((j|0)>0)mE(n|0,k|0,j|0)|0;c[b>>2]=n;c[e>>2]=h+1;c[g>>2]=n+m;if(!i)return;Vz(k);return;}function ae(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+4|0;f=c[a>>2]|0;g=(c[e>>2]|0)-f|0;if(g>>>0>>0){de(a,b-g|0,d);return;}if(g>>>0<=b>>>0)return;c[e>>2]=f+b;return;}function be(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;g=f;h=c[b>>2]|0;if(((c[b+4>>2]|0)-h|0)>>>0<=e>>>0){i=1;c[a>>2]=i;l=f;return;}c[g>>2]=d[h+e>>0];i=kb(10960,g|0)|0;c[a>>2]=i;l=f;return;}function ce(b,d,e){b=b|0;d=d|0;e=e|0;a[(c[b>>2]|0)+d>>0]=a[e>>0]|0;return 1;}function de(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;f=b+8|0;g=c[f>>2]|0;h=b+4|0;i=c[h>>2]|0;if((g-i|0)>>>0>=d>>>0){j=d;k=i;do{a[k>>0]=a[e>>0]|0;k=(c[h>>2]|0)+1|0;c[h>>2]=k;j=j+-1|0;}while((j|0)!=0);return;}j=c[b>>2]|0;k=i-j|0;l=k+d|0;if((l|0)<0)Wz(b);m=g-j|0;g=m<<1;n=m>>>0<1073741823?g>>>0>>0?l:g:2147483647;if(!n)o=0;else o=Uz(n)|0;g=o+k|0;k=o+n|0;n=i+d-j|0;j=d;d=g;while(1){a[d>>0]=a[e>>0]|0;j=j+-1|0;if(!j)break;else d=d+1|0;}d=c[b>>2]|0;j=(c[h>>2]|0)-d|0;e=g+(0-j)|0;if((j|0)>0)mE(e|0,d|0,j|0)|0;c[b>>2]=e;c[h>>2]=o+n;c[f>>2]=k;if(!d)return;Vz(d);return;}function ee(a){a=a|0;return 10032;}function fe(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(b|0){c[a+4>>2]=b;Vz(b);}Vz(a);return;}function ge(){var a=0;a=Uz(12)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return a|0;}function he(a){a=a|0;return oc[a&7]()|0;}function ie(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f;h=c[b>>2]|0;i=c[b+4>>2]|0;b=d+(i>>1)|0;if(!(i&1))j=h;else j=c[(c[b>>2]|0)+h>>2]|0;a[g>>0]=e;xc[j&31](b,g);l=f;return;}function je(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;g=l;l=l+16|0;h=g;i=c[b>>2]|0;j=c[b+4>>2]|0;b=d+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[b>>2]|0)+i>>2]|0;a[h>>0]=f;yc[k&7](b,e,h);l=g;return;}function ke(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1))f=d;else f=c[(c[a>>2]|0)+d>>2]|0;return pc[f&63](a)|0;}function le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;yc[c[a>>2]&7](f,b,d);eb(c[f>>2]|0);d=c[f>>2]|0;ab(d|0);l=e;return d|0;}function me(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=l;l=l+16|0;h=g;i=c[b>>2]|0;a[h>>0]=f;f=rc[i&31](d,e,h)|0;l=g;return f|0;}function ne(a){a=a|0;vc[a&3]();return;}function oe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;xc[a&31](b,f);ab(c[f>>2]|0);l=e;return;}function pe(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;xc[a&31](e,b);eb(c[e>>2]|0);b=c[e>>2]|0;ab(b|0);l=d;return b|0;}function qe(a){a=a|0;return 10096;}function re(a){a=a|0;if(!a)return;se(a);Vz(a);return;}function se(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b;e=c[a>>2]|0;do{if(e){c[d>>2]=e;f=a+24|0;g=c[f>>2]|0;if(!g){h=va(4)|0;c[h>>2]=12636;ya(h|0,10800,50);}else{xc[c[(c[g>>2]|0)+24>>2]&31](g,d);c[a>>2]=0;i=f;break;}}else i=a+24|0;}while(0);d=c[i>>2]|0;if((a+8|0)==(d|0)){wc[c[(c[d>>2]|0)+16>>2]&127](d);l=b;return;}if(!d){l=b;return;}wc[c[(c[d>>2]|0)+20>>2]&127](d);l=b;return;}function te(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((a|0)==(b|0)){wc[c[(c[b>>2]|0)+16>>2]&127](b);return;}if(!b)return;wc[c[(c[b>>2]|0)+20>>2]&127](b);return;}function ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=b;b=qc[a&63](f,d)|0;ab(c[f>>2]|0);l=e;return b|0;}function ve(a){a=a|0;return 10152;}function we(a){a=a|0;if(!a)return;xe(a);Vz(a);return;}function xe(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b;e=c[a>>2]|0;do{if(e){c[d>>2]=e;f=a+24|0;g=c[f>>2]|0;if(!g){h=va(4)|0;c[h>>2]=12636;ya(h|0,10800,50);}else{xc[c[(c[g>>2]|0)+24>>2]&31](g,d);c[a>>2]=0;i=f;break;}}else i=a+24|0;}while(0);d=c[i>>2]|0;if((a+8|0)==(d|0)){wc[c[(c[d>>2]|0)+16>>2]&127](d);l=b;return;}if(!d){l=b;return;}wc[c[(c[d>>2]|0)+20>>2]&127](d);l=b;return;}function ye(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((a|0)==(b|0)){wc[c[(c[b>>2]|0)+16>>2]&127](b);return;}if(!b)return;wc[c[(c[b>>2]|0)+20>>2]&127](b);return;}function ze(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=pc[a&63](e)|0;ab(c[e>>2]|0);l=d;return b|0;}function Ae(a){a=a|0;return 10200;}function Be(a){a=a|0;if(!a)return;Vz(a);return;}function Ce(){return Uz(1)|0;}function De(a){a=a|0;return oc[a&7]()|0;}function Ee(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Ge(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;return sc[i&15](a,d,e,f)|0;}function He(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[a>>2]|0;g=c[a+4>>2]|0;a=b+(g>>1)|0;if(!(g&1))h=f;else h=c[(c[a>>2]|0)+f>>2]|0;return rc[h&31](a,d,e)|0;}function Ie(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;return sc[i&15](a,d,e,f)|0;}function Je(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;return sc[i&15](a,d,e,f)|0;}function Ke(a){a=a|0;return 10240;}function Le(a){a=a|0;if(!a)return;$f(a);Vz(a);return;}function Me(){var a=0;a=Uz(36)|0;_f(a);return a|0;}function Ne(a){a=a|0;return oc[a&7]()|0;}function Oe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Pe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Qe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;g=f+4|0;h=f;i=c[a>>2]|0;j=c[a+4>>2]|0;a=b+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[a>>2]|0)+i>>2]|0;c[g>>2]=d;c[h>>2]=e;e=rc[k&31](a,g,h)|0;ab(c[h>>2]|0);ab(c[g>>2]|0);l=f;return e|0;}function Re(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;c[f>>2]=d;d=qc[i&63](a,f)|0;ab(c[f>>2]|0);l=e;return d|0;}function Se(a){a=a|0;return 10280;}function Te(a){a=a|0;if(!a)return;Ag(a);Vz(a);return;}function Ue(){var a=0;a=Uz(36)|0;zg(a);return a|0;}function Ve(a){a=a|0;return oc[a&7]()|0;}function We(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1))f=d;else f=c[(c[a>>2]|0)+d>>2]|0;return pc[f&63](a)|0;}function Xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;f=c[a+4>>2]|0;a=b+(f>>1)|0;if(!(f&1))g=e;else g=c[(c[a>>2]|0)+e>>2]|0;return qc[g&63](a,d)|0;}function Ye(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;g=f+4|0;h=f;i=c[a>>2]|0;j=c[a+4>>2]|0;a=b+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[a>>2]|0)+i>>2]|0;c[g>>2]=d;c[h>>2]=e;e=rc[k&31](a,g,h)|0;ab(c[h>>2]|0);ab(c[g>>2]|0);l=f;return e|0;}function Ze(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;c[f>>2]=d;d=qc[i&63](a,f)|0;ab(c[f>>2]|0);l=e;return d|0;}function _e(){$c(0);return;}function $e(a,b){a=a|0;b=b|0;a=lj(b)|0;b=(Ph(a)|0)==0;return(b?a>>>0>2147483646?-2:a:-1)|0;}function af(a,b){a=a|0;b=b|0;var d=0;a=c[b>>2]|0;d=wq(a,(c[b+4>>2]|0)-a|0)|0;a=(Ph(d)|0)==0;return(a?d>>>0>2147483646?-2:d:-1)|0;}function bf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;a=c[b>>2]|0;f=c[d>>2]|0;g=Go(a,(c[b+4>>2]|0)-a|0,f,(c[d+4>>2]|0)-f|0,e)|0;e=(Ph(g)|0)==0;return(e?g>>>0>2147483646?-2:g:-1)|0;}function cf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=c[b>>2]|0;e=c[d>>2]|0;f=ux(a,(c[b+4>>2]|0)-a|0,e,(c[d+4>>2]|0)-e|0)|0;e=(Ph(f)|0)==0;return(e?f>>>0>2147483646?-2:f:-1)|0;}function df(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+32|0;f=a;g=mj()|0;c[f>>2]=g;h=f+8|0;c[f+24>>2]=h;c[h>>2]=11576;c[f+12>>2]=68;if(!g){i=-3;ff(f);l=a;return i|0;}h=c[b>>2]|0;j=c[d>>2]|0;k=Lo(g,h,(c[b+4>>2]|0)-h|0,j,(c[d+4>>2]|0)-j|0,c[e>>2]|0)|0;e=(Ph(k)|0)==0;i=e?k>>>0>2147483646?-2:k:-1;ff(f);l=a;return i|0;}function ef(a){a=a|0;qj(a)|0;return;}function ff(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b;e=c[a>>2]|0;do{if(e){c[d>>2]=e;f=a+24|0;g=c[f>>2]|0;if(!g){h=va(4)|0;c[h>>2]=12636;ya(h|0,10800,50);}else{xc[c[(c[g>>2]|0)+24>>2]&31](g,d);c[a>>2]=0;i=f;break;}}else i=a+24|0;}while(0);d=c[i>>2]|0;if((a+8|0)==(d|0)){wc[c[(c[d>>2]|0)+16>>2]&127](d);l=b;return;}if(!d){l=b;return;}wc[c[(c[d>>2]|0)+20>>2]&127](d);l=b;return;}function gf(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((a|0)==(b|0)){wc[c[(c[b>>2]|0)+16>>2]&127](b);return;}if(!b)return;wc[c[(c[b>>2]|0)+20>>2]&127](b);return;}function hf(a){a=a|0;return;}function jf(a){a=a|0;Vz(a);return;}function kf(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11576;c[b+4>>2]=c[a+4>>2];return b|0;}function lf(a,b){a=a|0;b=b|0;c[b>>2]=11576;c[b+4>>2]=c[a+4>>2];return;}function mf(a){a=a|0;return;}function nf(a){a=a|0;Vz(a);return;}function of(a,b){a=a|0;b=b|0;wc[c[a+4>>2]&127](c[b>>2]|0);return;}function pf(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15195?a+4|0:0)|0;}function qf(a){a=a|0;return 10336;}function rf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+32|0;f=a;g=Wp()|0;c[f>>2]=g;h=f+8|0;c[f+24>>2]=h;c[h>>2]=11620;c[f+12>>2]=69;if(!g){i=-4;tf(f);l=a;return i|0;}h=c[b>>2]|0;j=c[d>>2]|0;k=Dx(g,h,(c[b+4>>2]|0)-h|0,j,(c[d+4>>2]|0)-j|0,c[e>>2]|0)|0;e=(Ph(k)|0)==0;i=e?k>>>0>2147483646?-2:k:-1;tf(f);l=a;return i|0;}function sf(a){a=a|0;Xp(a)|0;return;}function tf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b;e=c[a>>2]|0;do{if(e){c[d>>2]=e;f=a+24|0;g=c[f>>2]|0;if(!g){h=va(4)|0;c[h>>2]=12636;ya(h|0,10800,50);}else{xc[c[(c[g>>2]|0)+24>>2]&31](g,d);c[a>>2]=0;i=f;break;}}else i=a+24|0;}while(0);d=c[i>>2]|0;if((a+8|0)==(d|0)){wc[c[(c[d>>2]|0)+16>>2]&127](d);l=b;return;}if(!d){l=b;return;}wc[c[(c[d>>2]|0)+20>>2]&127](d);l=b;return;}function uf(a){a=a|0;var b=0;b=c[a+16>>2]|0;if((a|0)==(b|0)){wc[c[(c[b>>2]|0)+16>>2]&127](b);return;}if(!b)return;wc[c[(c[b>>2]|0)+20>>2]&127](b);return;}function vf(a){a=a|0;return;}function wf(a){a=a|0;Vz(a);return;}function xf(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11620;c[b+4>>2]=c[a+4>>2];return b|0;}function yf(a,b){a=a|0;b=b|0;c[b>>2]=11620;c[b+4>>2]=c[a+4>>2];return;}function zf(a){a=a|0;return;}function Af(a){a=a|0;Vz(a);return;}function Bf(a,b){a=a|0;b=b|0;wc[c[a+4>>2]&127](c[b>>2]|0);return;}function Cf(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15349?a+4|0:0)|0;}function Df(a){a=a|0;return 10384;}function Ef(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b>>2]|0;c[a>>2]=Ho(e,(c[b+4>>2]|0)-e|0,d)|0;d=a+8|0;c[a+24>>2]=d;c[d>>2]=11664;c[a+12>>2]=70;return;}function Ff(a){a=a|0;rj(a)|0;return;}function Gf(a){a=a|0;return;}function Hf(a){a=a|0;Vz(a);return;}function If(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11664;c[b+4>>2]=c[a+4>>2];return b|0;}function Jf(a,b){a=a|0;b=b|0;c[b>>2]=11664;c[b+4>>2]=c[a+4>>2];return;}function Kf(a){a=a|0;return;}function Lf(a){a=a|0;Vz(a);return;}function Mf(a,b){a=a|0;b=b|0;wc[c[a+4>>2]&127](c[b>>2]|0);return;}function Nf(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15503?a+4|0:0)|0;}function Of(a){a=a|0;return 10432;}function Pf(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;c[a>>2]=Cx(d,(c[b+4>>2]|0)-d|0)|0;d=a+8|0;c[a+24>>2]=d;c[d>>2]=11708;c[a+12>>2]=71;return;}function Qf(a){a=a|0;Yp(a)|0;return;}function Rf(a){a=a|0;return;}function Sf(a){a=a|0;Vz(a);return;}function Tf(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11708;c[b+4>>2]=c[a+4>>2];return b|0;}function Uf(a,b){a=a|0;b=b|0;c[b>>2]=11708;c[b+4>>2]=c[a+4>>2];return;}function Vf(a){a=a|0;return;}function Wf(a){a=a|0;Vz(a);return;}function Xf(a,b){a=a|0;b=b|0;wc[c[a+4>>2]&127](c[b>>2]|0);return;}function Yf(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15661?a+4|0:0)|0;}function Zf(a){a=a|0;return 10480;}function _f(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=44;b=a+8|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;return;}function $f(a){a=a|0;var b=0;b=c[a+24>>2]|0;if(b|0){c[a+28>>2]=b;Vz(b);}b=c[a+12>>2]|0;if(b|0){c[a+16>>2]=b;Vz(b);}b=c[a>>2]|0;c[a>>2]=0;if(!b)return;pc[c[a+4>>2]&63](b)|0;return;}function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11752;c[e+4>>2]=b;c[f>>2]=e;b=bg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function bg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+16|0;e=d;if(c[a>>2]|0){f=1;l=d;return f|0;}g=Mo()|0;if(!g){f=0;l=d;return f|0;}c[e>>2]=g;h=c[b+16>>2]|0;if(!h){b=va(4)|0;c[b>>2]=12636;ya(b|0,10800,50);}if(Ph(qc[c[(c[h>>2]|0)+24>>2]&63](h,e)|0)|0){Oo(g)|0;f=0;l=d;return f|0;}e=c[a>>2]|0;c[a>>2]=g;g=a+4|0;if(e|0)pc[c[g>>2]&63](e)|0;c[g>>2]=44;g=Po()|0;e=a+12|0;h=a+20|0;b=c[e>>2]|0;i=b;if(((c[h>>2]|0)-b|0)>>>0>>0){j=a+16|0;k=(c[j>>2]|0)-b|0;m=Uz(g)|0;if((k|0)>0)mE(m|0,i|0,k|0)|0;c[e>>2]=m;c[j>>2]=m+k;c[h>>2]=m+g;if(b|0)Vz(i);}cg(a+24|0,Qo()|0);c[a+8>>2]=(c[h>>2]|0)-(c[e>>2]|0);f=1;l=d;return f|0;}function cg(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;e=b+4|0;f=c[e>>2]|0;g=c[b>>2]|0;h=f-g|0;i=g;if(h>>>0>=d>>>0){if(h>>>0<=d>>>0)return;c[e>>2]=i+d;return;}j=d-h|0;k=b+8|0;l=c[k>>2]|0;if((l-f|0)>>>0>=j>>>0){m=j;n=f;do{a[n>>0]=0;n=(c[e>>2]|0)+1|0;c[e>>2]=n;m=m+-1|0;}while((m|0)!=0);return;}if((d|0)<0)Wz(b);m=l-g|0;l=m<<1;n=m>>>0<1073741823?l>>>0>>0?d:l:2147483647;if(!n)o=0;else o=Uz(n)|0;oE(o+h|0,0,j|0)|0;if((h|0)>0)mE(o|0,i|0,h|0)|0;c[b>>2]=o;c[e>>2]=o+d;c[k>>2]=o+n;if(!g)return;Vz(i);return;}function dg(a){a=a|0;return;}function eg(a){a=a|0;Vz(a);return;}function fg(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11752;c[b+4>>2]=c[a+4>>2];return b|0;}function gg(a,b){a=a|0;b=b|0;c[b>>2]=11752;c[b+4>>2]=c[a+4>>2];return;}function hg(a){a=a|0;return;}function ig(a){a=a|0;Vz(a);return;}function jg(a,b){a=a|0;b=b|0;return Wo(c[b>>2]|0,c[a+4>>2]|0)|0;}function kg(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==15819?a+4|0:0)|0;}function lg(a){a=a|0;return 10528;}function mg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11796;c[e+4>>2]=b;c[f>>2]=e;b=bg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function ng(a){a=a|0;Vz(a);return;}function og(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11796;c[b+4>>2]=c[a+4>>2];return b|0;}function pg(a,b){a=a|0;b=b|0;c[b>>2]=11796;c[b+4>>2]=c[a+4>>2];return;}function qg(a){a=a|0;return;}function rg(a){a=a|0;Vz(a);return;}function sg(a,b){a=a|0;b=b|0;return Uo(c[b>>2]|0,c[c[a+4>>2]>>2]|0)|0;}function tg(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==16003?a+4|0:0)|0;}function ug(a){a=a|0;return 10560;}function vg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if(!(c[b>>2]|0)){f=0;return f|0;}g=d+4|0;h=c[d>>2]|0;i=(c[g>>2]|0)-h|0;if(!i){f=1;return f|0;}j=b+12|0;k=b+20|0;l=b+16|0;m=b+8|0;n=0;o=h;h=i;a:while(1){i=c[k>>2]|0;p=c[j>>2]|0;q=c[l>>2]|0;r=p-q+(i-p)|0;s=h-n|0;t=s>>>0>>0?s:r;s=o+n|0;u=s+t|0;n=t+n|0;if(!t){v=p;w=q;}else{p=q;q=i;i=s;while(1){if((p|0)==(q|0)){s=c[j>>2]|0;t=q-s|0;x=t+1|0;y=s;if((x|0)<0){z=9;break a;}A=t<<1;B=t>>>0<1073741823?A>>>0>>0?x:A:2147483647;if(!B)C=0;else C=Uz(B)|0;A=C+t|0;a[A>>0]=a[i>>0]|0;if((t|0)>0)mE(C|0,y|0,t|0)|0;c[j>>2]=C;c[l>>2]=A+1;c[k>>2]=C+B;if(s|0)Vz(y);}else{a[p>>0]=a[i>>0]|0;c[l>>2]=(c[l>>2]|0)+1;}y=i+1|0;if((y|0)==(u|0))break;p=c[l>>2]|0;q=c[k>>2]|0;i=y;}v=c[j>>2]|0;w=c[l>>2]|0;}if(((r|0)==0?1:(w-v|0)>>>0>=(c[m>>2]|0)>>>0)?!(wg(b,e)|0):0){f=0;z=22;break;}o=c[d>>2]|0;h=(c[g>>2]|0)-o|0;if(h>>>0<=n>>>0){f=1;z=22;break;}}if((z|0)==9)Wz(j);else if((z|0)==22)return f|0;return 0;}function wg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=l;l=l+32|0;e=d+12|0;f=d;g=a+12|0;h=c[g>>2]|0;i=a+16|0;j=c[i>>2]|0;k=h;if((h|0)==(j|0)){m=1;l=d;return m|0;}c[e>>2]=h;h=e+4|0;n=j-k|0;c[h>>2]=n;j=e+8|0;c[j>>2]=0;do{if(n){o=a+24|0;p=a+32|0;q=f+4|0;r=a+28|0;s=f+8|0;t=a+8|0;u=b+16|0;while(1){cg(o,(c[p>>2]|0)-(c[o>>2]|0)|0);v=c[o>>2]|0;c[f>>2]=v;c[q>>2]=(c[r>>2]|0)-v;c[s>>2]=0;v=Zo(c[a>>2]|0,f,e)|0;c[t>>2]=v;if(Ph(v)|0){w=8;break;}cg(o,c[s>>2]|0);v=c[u>>2]|0;if(!v){w=6;break;}xc[c[(c[v>>2]|0)+24>>2]&31](v,o);if((c[j>>2]|0)>>>0>=(c[h>>2]|0)>>>0){w=9;break;}}if((w|0)==6){o=va(4)|0;c[o>>2]=12636;ya(o|0,10800,50);}else if((w|0)==8){x=0;break;}else if((w|0)==9){y=c[g>>2]|0;w=10;break;}}else{y=k;w=10;}}while(0);if((w|0)==10){c[i>>2]=y;x=1;}m=x;l=d;return m|0;}function xg(a,b){a=a|0;b=b|0;return wg(a,b)|0;}function yg(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;d=l;l=l+16|0;e=d;if(!(c[a>>2]|0)){f=1;l=d;return f|0;}if((c[a+12>>2]|0)!=(c[a+16>>2]|0)?!(wg(a,b)|0):0)g=0;else h=4;do{if((h|0)==4){i=a+24|0;cg(i,(c[a+32>>2]|0)-(c[i>>2]|0)|0);j=c[i>>2]|0;c[e>>2]=j;c[e+4>>2]=(c[a+28>>2]|0)-j;j=e+8|0;c[j>>2]=0;if(_o(c[a>>2]|0,e)|0){f=0;l=d;return f|0;}cg(i,c[j>>2]|0);j=c[b+16>>2]|0;if(!j){k=va(4)|0;c[k>>2]=12636;ya(k|0,10800,50);}else{xc[c[(c[j>>2]|0)+24>>2]&31](j,i);g=1;break;}}}while(0);b=c[a>>2]|0;c[a>>2]=0;if(!b){f=g;l=d;return f|0;}pc[c[a+4>>2]&63](b)|0;f=g;l=d;return f|0;}function zg(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=45;b=a+8|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;return;}function Ag(a){a=a|0;var b=0;b=c[a+24>>2]|0;if(b|0){c[a+28>>2]=b;Vz(b);}b=c[a+12>>2]|0;if(b|0){c[a+16>>2]=b;Vz(b);}b=c[a>>2]|0;c[a>>2]=0;if(!b)return;pc[c[a+4>>2]&63](b)|0;return;}function Bg(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+32|0;d=b;e=d+16|0;c[d>>2]=11840;c[e>>2]=d;f=Cg(a,d)|0;a=c[e>>2]|0;if((d|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=b;return f|0;}if(!a){l=b;return f|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=b;return f|0;}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+16|0;e=d;if(c[a>>2]|0){f=1;l=d;return f|0;}g=Ex()|0;if(!g){f=0;l=d;return f|0;}c[e>>2]=g;h=c[b+16>>2]|0;if(!h){b=va(4)|0;c[b>>2]=12636;ya(b|0,10800,50);}b=qc[c[(c[h>>2]|0)+24>>2]&63](h,e)|0;if(Ph(b)|0){Gx(g)|0;f=0;l=d;return f|0;}e=c[a>>2]|0;c[a>>2]=g;g=a+4|0;if(e|0)pc[c[g>>2]&63](e)|0;c[g>>2]=45;g=Hx()|0;e=a+12|0;h=a+20|0;i=c[e>>2]|0;j=i;if(((c[h>>2]|0)-i|0)>>>0>>0){k=a+16|0;m=(c[k>>2]|0)-i|0;n=Uz(g)|0;if((m|0)>0)mE(n|0,j|0,m|0)|0;c[e>>2]=n;c[k>>2]=n+m;c[h>>2]=n+g;if(i|0)Vz(j);}cg(a+24|0,Ix()|0);c[a+8>>2]=b;f=1;l=d;return f|0;}function Dg(a){a=a|0;return;}function Eg(a){a=a|0;Vz(a);return;}function Fg(a){a=a|0;a=Uz(8)|0;c[a>>2]=11840;return a|0;}function Gg(a,b){a=a|0;b=b|0;c[b>>2]=11840;return;}function Hg(a){a=a|0;return;}function Ig(a){a=a|0;Vz(a);return;}function Jg(a,b){a=a|0;b=b|0;return Mx(c[b>>2]|0)|0;}function Kg(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==16184?a+4|0:0)|0;}function Lg(a){a=a|0;return 10584;}function Mg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=e+16|0;c[e>>2]=11884;c[e+4>>2]=b;c[f>>2]=e;b=Cg(a,e)|0;a=c[f>>2]|0;if((e|0)==(a|0)){wc[c[(c[a>>2]|0)+16>>2]&127](a);l=d;return b|0;}if(!a){l=d;return b|0;}wc[c[(c[a>>2]|0)+20>>2]&127](a);l=d;return b|0;}function Ng(a){a=a|0;Vz(a);return;}function Og(a){a=a|0;var b=0;b=Uz(8)|0;c[b>>2]=11884;c[b+4>>2]=c[a+4>>2];return b|0;}function Pg(a,b){a=a|0;b=b|0;c[b>>2]=11884;c[b+4>>2]=c[a+4>>2];return;}function Qg(a){a=a|0;return;}function Rg(a){a=a|0;Vz(a);return;}function Sg(a,b){a=a|0;b=b|0;return Nx(c[b>>2]|0,c[c[a+4>>2]>>2]|0)|0;}function Tg(a,b){a=a|0;b=b|0;return((c[b+4>>2]|0)==16372?a+4|0:0)|0;}function Ug(a){a=a|0;return 10616;}function Vg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if(!(c[b>>2]|0)){f=0;return f|0;}g=d+4|0;h=c[d>>2]|0;i=(c[g>>2]|0)-h|0;if(!i){f=1;return f|0;}j=b+12|0;k=b+20|0;l=b+16|0;m=b+8|0;n=0;o=h;h=i;a:while(1){i=c[k>>2]|0;p=c[j>>2]|0;q=c[l>>2]|0;r=p-q+(i-p)|0;s=h-n|0;t=s>>>0>>0?s:r;s=o+n|0;u=s+t|0;n=t+n|0;if(!t){v=p;w=q;}else{p=q;q=i;i=s;while(1){if((p|0)==(q|0)){s=c[j>>2]|0;t=q-s|0;x=t+1|0;y=s;if((x|0)<0){z=9;break a;}A=t<<1;B=t>>>0<1073741823?A>>>0>>0?x:A:2147483647;if(!B)C=0;else C=Uz(B)|0;A=C+t|0;a[A>>0]=a[i>>0]|0;if((t|0)>0)mE(C|0,y|0,t|0)|0;c[j>>2]=C;c[l>>2]=A+1;c[k>>2]=C+B;if(s|0)Vz(y);}else{a[p>>0]=a[i>>0]|0;c[l>>2]=(c[l>>2]|0)+1;}y=i+1|0;if((y|0)==(u|0))break;p=c[l>>2]|0;q=c[k>>2]|0;i=y;}v=c[j>>2]|0;w=c[l>>2]|0;}if(((r|0)==0?1:(w-v|0)>>>0>=(c[m>>2]|0)>>>0)?!(Wg(b,e)|0):0){f=0;z=22;break;}o=c[d>>2]|0;h=(c[g>>2]|0)-o|0;if(h>>>0<=n>>>0){f=1;z=22;break;}}if((z|0)==9)Wz(j);else if((z|0)==22)return f|0;return 0;}function Wg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=l;l=l+32|0;e=d+12|0;f=d;g=a+12|0;h=c[g>>2]|0;i=a+16|0;j=c[i>>2]|0;k=h;if((h|0)==(j|0)){m=1;l=d;return m|0;}c[e>>2]=h;h=e+4|0;n=j-k|0;c[h>>2]=n;j=e+8|0;c[j>>2]=0;do{if(n){o=a+24|0;p=a+32|0;q=f+4|0;r=a+28|0;s=f+8|0;t=a+8|0;u=b+16|0;while(1){cg(o,(c[p>>2]|0)-(c[o>>2]|0)|0);v=c[o>>2]|0;c[f>>2]=v;c[q>>2]=(c[r>>2]|0)-v;c[s>>2]=0;v=Qx(c[a>>2]|0,f,e)|0;c[t>>2]=v;if(Ph(v)|0){w=8;break;}cg(o,c[s>>2]|0);v=c[u>>2]|0;if(!v){w=6;break;}xc[c[(c[v>>2]|0)+24>>2]&31](v,o);if((c[j>>2]|0)>>>0>=(c[h>>2]|0)>>>0){w=9;break;}}if((w|0)==6){o=va(4)|0;c[o>>2]=12636;ya(o|0,10800,50);}else if((w|0)==8){x=0;break;}else if((w|0)==9){y=c[g>>2]|0;w=10;break;}}else{y=k;w=10;}}while(0);if((w|0)==10){c[i>>2]=y;x=1;}m=x;l=d;return m|0;}function Xg(a,b){a=a|0;b=b|0;return Wg(a,b)|0;}function Yg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a>>2]|0;if(!d){e=1;return e|0;}if((c[a+12>>2]|0)!=(c[a+16>>2]|0)){f=Wg(a,b)|0;b=c[a>>2]|0;c[a>>2]=0;if(!b){e=f;return e|0;}else{g=f;h=b;}}else{c[a>>2]=0;g=1;h=d;}pc[c[a+4>>2]&63](h)|0;e=g;return e|0;}function Zg(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=_g(c[d>>2]|0)|0;l=b;return a|0;}function _g(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function $g(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=_g(c[d>>2]|0)|0;l=b;return a|0;}function ah(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=l;l=l+80|0;i=h+72|0;j=h+68|0;k=h+64|0;m=h+60|0;n=h+56|0;o=h+52|0;p=h+48|0;q=h+44|0;r=h+40|0;s=h+36|0;t=h+32|0;u=h+28|0;v=h+24|0;w=h+20|0;x=h+16|0;y=h+12|0;z=h+8|0;A=h+4|0;B=h;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=c[n>>2];c[q>>2]=(c[p>>2]|0)+(c[o>>2]|0);c[r>>2]=c[p>>2];c[x>>2]=0;c[y>>2]=0;if((c[o>>2]|0)>>>0<4){c[i>>2]=-72;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=bh(c[r>>2]|0)|0;c[s>>2]=(c[v>>2]&15)+5;if((c[s>>2]|0)>15){c[i>>2]=-44;C=c[i>>2]|0;l=h;return C|0;}c[v>>2]=(c[v>>2]|0)>>>4;c[w>>2]=4;c[c[m>>2]>>2]=c[s>>2];c[t>>2]=(1<>2])+1;c[u>>2]=1<>2];c[s>>2]=(c[s>>2]|0)+1;a:while(1){if(!(((c[t>>2]|0)>1?(c[x>>2]|0)>>>0<=(c[c[k>>2]>>2]|0)>>>0:0)|0))break;do{if(c[y>>2]|0){c[z>>2]=c[x>>2];while(1){if((c[v>>2]&65535|0)!=65535)break;c[z>>2]=(c[z>>2]|0)+24;if((c[r>>2]|0)>>>0<((c[q>>2]|0)+-5|0)>>>0){c[r>>2]=(c[r>>2]|0)+2;m=bh(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]|0);}else{c[v>>2]=(c[v>>2]|0)>>>16;c[w>>2]=(c[w>>2]|0)+16;}}while(1){if((c[v>>2]&3|0)!=3)break;c[z>>2]=(c[z>>2]|0)+3;c[v>>2]=(c[v>>2]|0)>>>2;c[w>>2]=(c[w>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+(c[v>>2]&3);c[w>>2]=(c[w>>2]|0)+2;if((c[z>>2]|0)>>>0>(c[c[k>>2]>>2]|0)>>>0){D=18;break a;}while(1){if((c[x>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break;m=c[j>>2]|0;o=c[x>>2]|0;c[x>>2]=o+1;b[m+(o<<1)>>1]=0;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[v>>2]=(c[v>>2]|0)>>>2;break;}c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;o=bh(c[r>>2]|0)|0;c[v>>2]=o>>>(c[w>>2]|0);}}while(0);c[A>>2]=(c[u>>2]<<1)-1-(c[t>>2]|0);o=c[v>>2]|0;m=c[u>>2]|0;if((c[v>>2]&(c[u>>2]|0)-1)>>>0<(c[A>>2]|0)>>>0){c[B>>2]=o&m-1;c[w>>2]=(c[w>>2]|0)+((c[s>>2]|0)-1);}else{c[B>>2]=o&(m<<1)-1;if((c[B>>2]|0)>=(c[u>>2]|0))c[B>>2]=(c[B>>2]|0)-(c[A>>2]|0);c[w>>2]=(c[w>>2]|0)+(c[s>>2]|0);}c[B>>2]=(c[B>>2]|0)+-1;m=c[B>>2]|0;c[t>>2]=(c[t>>2]|0)-((c[B>>2]|0)<0?0-m|0:m);m=c[B>>2]&65535;o=c[j>>2]|0;n=c[x>>2]|0;c[x>>2]=n+1;b[o+(n<<1)>>1]=m;c[y>>2]=((c[B>>2]|0)!=0^1)&1;while(1){if((c[t>>2]|0)>=(c[u>>2]|0))break;c[s>>2]=(c[s>>2]|0)+-1;c[u>>2]=c[u>>2]>>1;}if((c[r>>2]|0)>>>0>((c[q>>2]|0)+-7|0)>>>0?((c[r>>2]|0)+(c[w>>2]>>3)|0)>>>0>((c[q>>2]|0)+-4|0)>>>0:0){c[w>>2]=(c[w>>2]|0)-((c[q>>2]|0)+-4-(c[r>>2]|0)<<3);c[r>>2]=(c[q>>2]|0)+-4;}else{c[r>>2]=(c[r>>2]|0)+(c[w>>2]>>3);c[w>>2]=c[w>>2]&7;}m=bh(c[r>>2]|0)|0;c[v>>2]=m>>>(c[w>>2]&31);}if((D|0)==18){c[i>>2]=-48;C=c[i>>2]|0;l=h;return C|0;}if((c[t>>2]|0)!=1){c[i>>2]=-20;C=c[i>>2]|0;l=h;return C|0;}if((c[w>>2]|0)>32){c[i>>2]=-20;C=c[i>>2]|0;l=h;return C|0;}else{c[c[k>>2]>>2]=(c[x>>2]|0)-1;c[r>>2]=(c[r>>2]|0)+((c[w>>2]|0)+7>>3);c[i>>2]=(c[r>>2]|0)-(c[p>>2]|0);C=c[i>>2]|0;l=h;return C|0;}return 0;}function bh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(ch()|0)!=0;f=dh(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=eh(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function ch(){return d[11936]|0|0;}function dh(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function eh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function fh(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,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;k=l;l=l+336|0;m=k+332|0;n=k+328|0;o=k+324|0;p=k+320|0;q=k+316|0;r=k+312|0;s=k+308|0;t=k+304|0;u=k+300|0;v=k+296|0;w=k+292|0;x=k+288|0;y=k+284|0;z=k;A=k+280|0;B=k+276|0;C=k+272|0;D=k+268|0;E=k+264|0;F=k+260|0;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[v>>2]=c[s>>2];if(!(c[t>>2]|0)){c[m>>2]=-72;G=c[m>>2]|0;l=k;return G|0;}c[w>>2]=d[c[v>>2]>>0];s=c[w>>2]|0;a:do{if((c[w>>2]|0)>>>0<128){if((s+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;G=c[m>>2]|0;l=k;return G|0;}c[x>>2]=gh(c[n>>2]|0,(c[o>>2]|0)-1|0,(c[v>>2]|0)+1|0,c[w>>2]|0,z,6)|0;if(Zg(c[x>>2]|0)|0){c[m>>2]=c[x>>2];G=c[m>>2]|0;l=k;return G|0;}}else{c[x>>2]=s-127;c[w>>2]=(((c[x>>2]|0)+1|0)>>>0)/2|0;if(((c[w>>2]|0)+1|0)>>>0>(c[t>>2]|0)>>>0){c[m>>2]=-72;G=c[m>>2]|0;l=k;return G|0;}if((c[x>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}c[v>>2]=(c[v>>2]|0)+1;c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break a;a[(c[n>>2]|0)+(c[y>>2]|0)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)>>4;a[(c[n>>2]|0)+((c[y>>2]|0)+1)>>0]=(d[(c[v>>2]|0)+(((c[y>>2]|0)>>>0)/2|0)>>0]|0)&15;c[y>>2]=(c[y>>2]|0)+2;}}}while(0);y=c[p>>2]|0;v=y+52|0;do{c[y>>2]=0;y=y+4|0;}while((y|0)<(v|0));c[u>>2]=0;c[A>>2]=0;while(1){if((c[A>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;if((d[(c[n>>2]|0)+(c[A>>2]|0)>>0]|0|0)>=12){H=18;break;}y=(c[p>>2]|0)+((d[(c[n>>2]|0)+(c[A>>2]|0)>>0]|0)<<2)|0;c[y>>2]=(c[y>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+(1<<(d[(c[n>>2]|0)+(c[A>>2]|0)>>0]|0)>>1);c[A>>2]=(c[A>>2]|0)+1;}if((H|0)==18){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}if(!(c[u>>2]|0)){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}c[B>>2]=(hh(c[u>>2]|0)|0)+1;if((c[B>>2]|0)>>>0>12){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}c[c[r>>2]>>2]=c[B>>2];c[C>>2]=1<>2];c[D>>2]=(c[C>>2]|0)-(c[u>>2]|0);c[E>>2]=1<<(hh(c[D>>2]|0)|0);c[F>>2]=(hh(c[D>>2]|0)|0)+1;if((c[E>>2]|0)!=(c[D>>2]|0)){c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}a[(c[n>>2]|0)+(c[x>>2]|0)>>0]=c[F>>2];n=(c[p>>2]|0)+(c[F>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;if((c[(c[p>>2]|0)+4>>2]|0)>>>0>=2?(c[(c[p>>2]|0)+4>>2]&1|0)==0:0){c[c[q>>2]>>2]=(c[x>>2]|0)+1;c[m>>2]=(c[w>>2]|0)+1;G=c[m>>2]|0;l=k;return G|0;}c[m>>2]=-20;G=c[m>>2]|0;l=k;return G|0;}function gh(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+576|0;i=h+560|0;j=h+556|0;k=h+552|0;m=h+548|0;n=h+544|0;o=h+540|0;p=h+536|0;q=h+532|0;r=h+528|0;s=h;t=h+524|0;u=h+520|0;v=h+516|0;w=h+512|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[m>>2];c[r>>2]=c[q>>2];c[u>>2]=255;c[v>>2]=ah(s,u,t,c[q>>2]|0,c[n>>2]|0)|0;if(ih(c[v>>2]|0)|0){c[i>>2]=c[v>>2];x=c[i>>2]|0;l=h;return x|0;}if((c[t>>2]|0)>>>0>(c[p>>2]|0)>>>0){c[i>>2]=-44;x=c[i>>2]|0;l=h;return x|0;}c[r>>2]=(c[r>>2]|0)+(c[v>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[v>>2]|0);c[w>>2]=jh(c[o>>2]|0,s,c[u>>2]|0,c[t>>2]|0)|0;if(ih(c[w>>2]|0)|0){c[i>>2]=c[w>>2];x=c[i>>2]|0;l=h;return x|0;}else{c[i>>2]=kh(c[j>>2]|0,c[k>>2]|0,c[r>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;x=c[i>>2]|0;l=h;return x|0;}return 0;}function hh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function ih(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function jh(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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=l;l=l+608|0;j=i+580|0;k=i+576|0;m=i+572|0;n=i+568|0;o=i+564|0;p=i+560|0;q=i+556|0;r=i;s=i+552|0;t=i+548|0;u=i+544|0;v=i+588|0;w=i+584|0;x=i+540|0;y=i+536|0;z=i+532|0;A=i+528|0;B=i+524|0;C=i+520|0;D=i+516|0;E=i+592|0;F=i+512|0;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=(c[k>>2]|0)+4;c[q>>2]=c[p>>2];c[s>>2]=(c[n>>2]|0)+1;c[t>>2]=1<>2];c[u>>2]=(c[t>>2]|0)-1;if((c[n>>2]|0)>>>0>255){c[j>>2]=-46;G=c[j>>2]|0;l=i;return G|0;}if((c[o>>2]|0)>>>0>12){c[j>>2]=-44;G=c[j>>2]|0;l=i;return G|0;}b[v>>1]=c[o>>2];b[v+2>>1]=1;b[w>>1]=1<<(c[o>>2]|0)-1;c[x>>2]=0;while(1){if((c[x>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;if((b[(c[m>>2]|0)+(c[x>>2]<<1)>>1]|0)==-1){n=c[x>>2]&255;p=c[q>>2]|0;h=c[u>>2]|0;c[u>>2]=h+-1;a[p+(h<<2)+2>>0]=n;b[r+(c[x>>2]<<1)>>1]=1;}else{if((b[(c[m>>2]|0)+(c[x>>2]<<1)>>1]|0)>=(b[w>>1]|0))b[v+2>>1]=0;b[r+(c[x>>2]<<1)>>1]=b[(c[m>>2]|0)+(c[x>>2]<<1)>>1]|0;}c[x>>2]=(c[x>>2]|0)+1;}x=c[k>>2]|0;b[x>>1]=b[v>>1]|0;b[x+2>>1]=b[v+2>>1]|0;c[y>>2]=(c[t>>2]|0)-1;c[z>>2]=((c[t>>2]|0)>>>1)+((c[t>>2]|0)>>>3)+3;c[B>>2]=0;c[A>>2]=0;while(1){if((c[A>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[C>>2]=0;while(1){H=c[A>>2]|0;if((c[C>>2]|0)>=(b[(c[m>>2]|0)+(c[A>>2]<<1)>>1]|0))break;a[(c[q>>2]|0)+(c[B>>2]<<2)+2>>0]=H;c[B>>2]=(c[B>>2]|0)+(c[z>>2]|0)&c[y>>2];while(1){if((c[B>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;c[B>>2]=(c[B>>2]|0)+(c[z>>2]|0)&c[y>>2];}c[C>>2]=(c[C>>2]|0)+1;}c[A>>2]=H+1;}if(c[B>>2]|0){c[j>>2]=-1;G=c[j>>2]|0;l=i;return G|0;}c[D>>2]=0;while(1){if((c[D>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;a[E>>0]=a[(c[q>>2]|0)+(c[D>>2]<<2)+2>>0]|0;B=r+(d[E>>0]<<1)|0;H=b[B>>1]|0;b[B>>1]=H+1<<16>>16;c[F>>2]=H&65535;H=c[o>>2]|0;B=H-(Eh(c[F>>2]|0)|0)&255;a[(c[q>>2]|0)+(c[D>>2]<<2)+3>>0]=B;b[(c[q>>2]|0)+(c[D>>2]<<2)>>1]=(c[F>>2]<>2]|0)+(c[D>>2]<<2)+3>>0])-(c[t>>2]|0);c[D>>2]=(c[D>>2]|0)+1;}c[j>>2]=0;G=c[j>>2]|0;l=i;return G|0;}function kh(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+208|0;j=i+204|0;k=i+200|0;m=i+196|0;n=i+192|0;o=i+188|0;p=i+184|0;q=i+180|0;r=i+176|0;s=i+172|0;t=i+168|0;u=i+164|0;v=i+144|0;w=i+136|0;x=i+128|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+56|0;L=i+48|0;M=i+40|0;N=i+36|0;O=i+32|0;P=i+28|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[P>>2]=b;c[Q>>2]=d;c[R>>2]=f;c[S>>2]=g;c[T>>2]=h;c[U>>2]=c[T>>2];c[V>>2]=c[U>>2];c[W>>2]=e[(c[V>>2]|0)+2>>1];V=c[P>>2]|0;P=c[Q>>2]|0;Q=c[R>>2]|0;R=c[S>>2]|0;S=c[T>>2]|0;if(c[W>>2]|0){c[A>>2]=V;c[B>>2]=P;c[C>>2]=Q;c[D>>2]=R;c[E>>2]=S;c[F>>2]=1;c[G>>2]=c[A>>2];c[H>>2]=c[G>>2];c[I>>2]=(c[H>>2]|0)+(c[B>>2]|0);c[J>>2]=(c[I>>2]|0)+-3;c[N>>2]=lh(K,c[C>>2]|0,c[D>>2]|0)|0;do{if(ih(c[N>>2]|0)|0)c[z>>2]=c[N>>2];else{mh(L,K,c[E>>2]|0);mh(M,K,c[E>>2]|0);while(1){D=(nh(K)|0)==0&1;if(!(D&(c[H>>2]|0)>>>0<(c[J>>2]|0)>>>0))break;if(c[F>>2]|0)X=(oh(L,K)|0)&255;else X=(ph(L,K)|0)&255;a[c[H>>2]>>0]=X;if(c[F>>2]|0)Y=(oh(M,K)|0)&255;else Y=(ph(M,K)|0)&255;a[(c[H>>2]|0)+1>>0]=Y;if((nh(K)|0)>>>0>0){Z=13;break;}if(c[F>>2]|0)_=(oh(L,K)|0)&255;else _=(ph(L,K)|0)&255;a[(c[H>>2]|0)+2>>0]=_;if(c[F>>2]|0)$=(oh(M,K)|0)&255;else $=(ph(M,K)|0)&255;a[(c[H>>2]|0)+3>>0]=$;c[H>>2]=(c[H>>2]|0)+4;}if((Z|0)==13)c[H>>2]=(c[H>>2]|0)+2;while(1){if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=23;break;}if(c[F>>2]|0)aa=(oh(L,K)|0)&255;else aa=(ph(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=aa;if((nh(K)|0)==3){Z=28;break;}if((c[H>>2]|0)>>>0>((c[I>>2]|0)+-2|0)>>>0){Z=33;break;}if(c[F>>2]|0)ba=(oh(M,K)|0)&255;else ba=(ph(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ba;if((nh(K)|0)==3){Z=38;break;}}if((Z|0)==23){c[z>>2]=-70;break;}else if((Z|0)==28){if(c[F>>2]|0)ca=(oh(M,K)|0)&255;else ca=(ph(M,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=ca;}else if((Z|0)==33){c[z>>2]=-70;break;}else if((Z|0)==38){if(c[F>>2]|0)da=(oh(L,K)|0)&255;else da=(ph(L,K)|0)&255;D=c[H>>2]|0;c[H>>2]=D+1;a[D>>0]=da;}c[z>>2]=(c[H>>2]|0)-(c[G>>2]|0);}}while(0);c[O>>2]=c[z>>2];ea=c[O>>2]|0;l=i;return ea|0;}else{c[k>>2]=V;c[m>>2]=P;c[n>>2]=Q;c[o>>2]=R;c[p>>2]=S;c[q>>2]=0;c[r>>2]=c[k>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[s>>2]|0)+(c[m>>2]|0);c[u>>2]=(c[t>>2]|0)+-3;c[y>>2]=lh(v,c[n>>2]|0,c[o>>2]|0)|0;do{if(ih(c[y>>2]|0)|0)c[j>>2]=c[y>>2];else{mh(w,v,c[p>>2]|0);mh(x,v,c[p>>2]|0);while(1){o=(nh(v)|0)==0&1;if(!(o&(c[s>>2]|0)>>>0<(c[u>>2]|0)>>>0))break;if(c[q>>2]|0)fa=(oh(w,v)|0)&255;else fa=(ph(w,v)|0)&255;a[c[s>>2]>>0]=fa;if(c[q>>2]|0)ga=(oh(x,v)|0)&255;else ga=(ph(x,v)|0)&255;a[(c[s>>2]|0)+1>>0]=ga;if((nh(v)|0)>>>0>0){Z=56;break;}if(c[q>>2]|0)ha=(oh(w,v)|0)&255;else ha=(ph(w,v)|0)&255;a[(c[s>>2]|0)+2>>0]=ha;if(c[q>>2]|0)ia=(oh(x,v)|0)&255;else ia=(ph(x,v)|0)&255;a[(c[s>>2]|0)+3>>0]=ia;c[s>>2]=(c[s>>2]|0)+4;}if((Z|0)==56)c[s>>2]=(c[s>>2]|0)+2;while(1){if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=66;break;}if(c[q>>2]|0)ja=(oh(w,v)|0)&255;else ja=(ph(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ja;if((nh(v)|0)==3){Z=71;break;}if((c[s>>2]|0)>>>0>((c[t>>2]|0)+-2|0)>>>0){Z=76;break;}if(c[q>>2]|0)ka=(oh(x,v)|0)&255;else ka=(ph(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ka;if((nh(v)|0)==3){Z=81;break;}}if((Z|0)==66){c[j>>2]=-70;break;}else if((Z|0)==71){if(c[q>>2]|0)la=(oh(x,v)|0)&255;else la=(ph(x,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=la;}else if((Z|0)==76){c[j>>2]=-70;break;}else if((Z|0)==81){if(c[q>>2]|0)ma=(oh(w,v)|0)&255;else ma=(ph(w,v)|0)&255;o=c[s>>2]|0;c[s>>2]=o+1;a[o>>0]=ma;}c[j>>2]=(c[s>>2]|0)-(c[r>>2]|0);}}while(0);c[O>>2]=c[j>>2];ea=c[O>>2]|0;l=i;return ea|0;}return 0;}function lh(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+12|0;i=g+8|0;j=g+4|0;k=g;m=g+17|0;n=g+16|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;if((c[k>>2]|0)>>>0<1){f=c[i>>2]|0;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[h>>2]=-72;o=c[h>>2]|0;l=g;return o|0;}c[(c[i>>2]|0)+12>>2]=c[j>>2];c[(c[i>>2]|0)+16>>2]=(c[(c[i>>2]|0)+12>>2]|0)+4;do{if((c[k>>2]|0)>>>0>=4){c[(c[i>>2]|0)+8>>2]=(c[j>>2]|0)+(c[k>>2]|0)+-4;f=vh(c[(c[i>>2]|0)+8>>2]|0)|0;c[c[i>>2]>>2]=f;a[m>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[m>>0]|0|0)p=8-(Eh(d[m>>0]|0)|0)|0;else p=0;c[(c[i>>2]|0)+4>>2]=p;if(!(d[m>>0]|0)){c[h>>2]=-1;o=c[h>>2]|0;l=g;return o|0;}}else{c[(c[i>>2]|0)+8>>2]=c[(c[i>>2]|0)+12>>2];c[c[i>>2]>>2]=d[c[(c[i>>2]|0)+12>>2]>>0];switch(c[k>>2]|0){case 7:{f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+6>>0]|0)<<16);q=10;break;}case 6:{q=10;break;}case 5:{q=11;break;}case 4:{q=12;break;}case 3:{q=13;break;}case 2:{q=14;break;}default:{}}if((q|0)==10){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)<<8);q=11;}if((q|0)==11){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+4>>0]|0)<<0);q=12;}if((q|0)==12){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+3>>0]|0)<<24);q=13;}if((q|0)==13){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+2>>0]|0)<<16);q=14;}if((q|0)==14){f=c[i>>2]|0;c[f>>2]=(c[f>>2]|0)+((d[(c[j>>2]|0)+1>>0]|0)<<8);}a[n>>0]=a[(c[j>>2]|0)+((c[k>>2]|0)-1)>>0]|0;if(d[n>>0]|0|0)r=8-(Eh(d[n>>0]|0)|0)|0;else r=0;c[(c[i>>2]|0)+4>>2]=r;if(d[n>>0]|0|0){f=(c[i>>2]|0)+4|0;c[f>>2]=(c[f>>2]|0)+(4-(c[k>>2]|0)<<3);break;}c[h>>2]=-20;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[h>>2]=c[k>>2];o=c[h>>2]|0;l=g;return o|0;}function mh(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=c[i>>2];c[k>>2]=c[j>>2];j=qh(c[h>>2]|0,e[c[k>>2]>>1]|0)|0;c[c[g>>2]>>2]=j;nh(c[h>>2]|0)|0;c[(c[g>>2]|0)+4>>2]=(c[i>>2]|0)+4;l=f;return;}function nh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[e>>2]=a;if((c[(c[e>>2]|0)+4>>2]|0)>>>0>32){c[d>>2]=3;h=c[d>>2]|0;l=b;return h|0;}a=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){i=(c[e>>2]|0)+8|0;c[i>>2]=(c[i>>2]|0)+(0-((c[a+4>>2]|0)>>>3));i=(c[e>>2]|0)+4|0;c[i>>2]=c[i>>2]&7;i=vh(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=i;c[d>>2]=0;h=c[d>>2]|0;l=b;return h|0;}i=c[(c[e>>2]|0)+4>>2]|0;if((c[a+8>>2]|0)!=(c[(c[e>>2]|0)+12>>2]|0)){c[f>>2]=i>>>3;c[g>>2]=0;if(((c[(c[e>>2]|0)+8>>2]|0)+(0-(c[f>>2]|0))|0)>>>0<(c[(c[e>>2]|0)+12>>2]|0)>>>0){c[f>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0);c[g>>2]=1;}a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(0-(c[f>>2]|0));a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[f>>2]<<3);f=vh(c[(c[e>>2]|0)+8>>2]|0)|0;c[c[e>>2]>>2]=f;c[d>>2]=c[g>>2];h=c[d>>2]|0;l=b;return h|0;}if(i>>>0<32){c[d>>2]=1;h=c[d>>2]|0;l=b;return h|0;}else{c[d>>2]=2;h=c[d>>2]|0;l=b;return h|0;}return 0;}function oh(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=th(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function ph(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+12|0;j=h+8|0;k=h+16|0;m=h+4|0;n=h+20|0;o=h;c[i>>2]=f;c[j>>2]=g;g=(c[(c[i>>2]|0)+4>>2]|0)+(c[c[i>>2]>>2]<<2)|0;b[k>>1]=b[g>>1]|0;b[k+2>>1]=b[g+2>>1]|0;c[m>>2]=d[k+3>>0];a[n>>0]=a[k+2>>0]|0;c[o>>2]=qh(c[j>>2]|0,c[m>>2]|0)|0;c[c[i>>2]>>2]=(e[k>>1]|0)+(c[o>>2]|0);l=h;return a[n>>0]|0;}function qh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=rh(c[e>>2]|0,c[f>>2]|0)|0;sh(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>1>>>(31-(c[f>>2]|0)&31)|0;}function sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(c[e>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+(c[f>>2]|0);l=d;return;}function th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=uh(c[e>>2]|0,c[f>>2]|0)|0;sh(c[e>>2]|0,c[f>>2]|0);l=d;return c[g>>2]|0;}function uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=31;l=d;return c[c[e>>2]>>2]<<(c[(c[e>>2]|0)+4>>2]&31)>>>(32-(c[f>>2]|0)&31)|0;}function vh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(wh()|0)!=0;f=c[e>>2]|0;if(a){c[d>>2]=xh(f)|0;g=c[d>>2]|0;l=b;return g|0;}else{a=yh(f)|0;c[d>>2]=a;g=c[d>>2]|0;l=b;return g|0;}return 0;}function wh(){return 1;}function xh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(zh()|0)!=0;f=Ch(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Dh(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function yh(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(zh()|0)!=0;f=Ah(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=Bh(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function zh(){return d[11936]|0|0;}function Ah(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function Bh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Ch(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Dh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Eh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Fh(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;l=d;return c[f>>2]|0;}function Gh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Hh(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+8|0;f=d;c[e>>2]=b;b=c[e>>2]|0;a[f>>0]=a[b>>0]|0;a[f+1>>0]=a[b+1>>0]|0;a[f+2>>0]=a[b+2>>0]|0;a[f+3>>0]=a[b+3>>0]|0;a[f+4>>0]=a[b+4>>0]|0;a[f+5>>0]=a[b+5>>0]|0;a[f+6>>0]=a[b+6>>0]|0;a[f+7>>0]=a[b+7>>0]|0;b=f;y=c[b+4>>2]|0;l=d;return c[b>>2]|0;}function Ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Jh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;g=f+8|0;h=f;i=g;c[i>>2]=a;c[i+4>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;h=cE(c[e>>2]|0,c[e+4>>2]|0,668265295,-1028477379)|0;e=g;b=dE(c[e>>2]|0,c[e+4>>2]|0,h|0,y|0)|0;h=g;c[h>>2]=b;c[h+4>>2]=y;h=g;b=jE(c[h>>2]|0,c[h+4>>2]|0,31)|0;h=y;e=g;d=iE(c[e>>2]|0,c[e+4>>2]|0,33)|0;e=g;c[e>>2]=b|d;c[e+4>>2]=h|y;h=g;e=cE(c[h>>2]|0,c[h+4>>2]|0,-2048144761,-1640531535)|0;h=g;c[h>>2]=e;c[h+4>>2]=y;h=g;y=c[h+4>>2]|0;l=f;return c[h>>2]|0;}function Kh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+16|0;g=f+8|0;h=f;i=g;c[i>>2]=a;c[i+4>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;b=Jh(0,0,c[e>>2]|0,c[e+4>>2]|0)|0;e=h;c[e>>2]=b;c[e+4>>2]=y;e=h;h=g;b=c[h+4>>2]^c[e+4>>2];d=g;c[d>>2]=c[h>>2]^c[e>>2];c[d+4>>2]=b;b=g;d=cE(c[b>>2]|0,c[b+4>>2]|0,-2048144761,-1640531535)|0;b=dE(d|0,y|0,-1028477341,-2048144777)|0;d=g;c[d>>2]=b;c[d+4>>2]=y;d=g;y=c[d+4>>2]|0;l=f;return c[d>>2]|0;}function Lh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+112|0;f=e+96|0;g=e+88|0;h=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=h;a=d+80|0;do{c[d>>2]=0;d=d+4|0;}while((d|0)<(a|0));b=g;i=dE(c[b>>2]|0,c[b+4>>2]|0,-2048144761,-1640531535)|0;b=dE(i|0,y|0,668265295,-1028477379)|0;i=h+8|0;c[i>>2]=b;c[i+4>>2]=y;i=g;b=dE(c[i>>2]|0,c[i+4>>2]|0,668265295,-1028477379)|0;i=h+16|0;c[i>>2]=b;c[i+4>>2]=y;i=g;b=dE(c[i>>2]|0,c[i+4>>2]|0,0,0)|0;i=h+24|0;c[i>>2]=b;c[i+4>>2]=y;i=g;g=eE(c[i>>2]|0,c[i+4>>2]|0,-2048144761,-1640531535)|0;i=h+32|0;c[i>>2]=g;c[i+4>>2]=y;d=c[f>>2]|0;f=h;a=d+88|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0;}while((d|0)<(a|0));l=e;return 0;}function Mh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;mE(d|0,c[g>>2]|0,c[h>>2]|0)|0;l=e;return d|0;}function Nh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=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,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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0;f=l;l=l+608|0;g=f+184|0;h=f+592|0;i=f+588|0;j=f+584|0;k=f+580|0;m=f+576|0;n=f+176|0;o=f+572|0;p=f+568|0;q=f+564|0;r=f+560|0;s=f+556|0;t=f+168|0;u=f+552|0;v=f+548|0;w=f+544|0;x=f+540|0;z=f+536|0;A=f+160|0;B=f+532|0;C=f+528|0;D=f+524|0;E=f+520|0;F=f+516|0;G=f+152|0;H=f+512|0;I=f+508|0;J=f+504|0;K=f+500|0;L=f+496|0;M=f+144|0;N=f+492|0;O=f+488|0;P=f+484|0;Q=f+480|0;R=f+476|0;S=f+136|0;T=f+472|0;U=f+468|0;V=f+464|0;W=f+460|0;X=f+456|0;Y=f+128|0;Z=f+452|0;_=f+448|0;$=f+444|0;aa=f+440|0;ba=f+436|0;ca=f+432|0;da=f+428|0;ea=f+424|0;fa=f+420|0;ga=f+416|0;ha=f+412|0;ia=f+408|0;ja=f+404|0;ka=f+120|0;la=f+112|0;ma=f+104|0;na=f+96|0;oa=f+88|0;pa=f+400|0;qa=f+396|0;ra=f+392|0;sa=f+388|0;ta=f+384|0;ua=f+80|0;va=f+380|0;wa=f+376|0;xa=f+372|0;ya=f+368|0;za=f+364|0;Aa=f+72|0;Ba=f+360|0;Ca=f+356|0;Da=f+352|0;Ea=f+348|0;Fa=f+344|0;Ga=f+64|0;Ha=f+340|0;Ia=f+336|0;Ja=f+332|0;Ka=f+328|0;La=f+324|0;Ma=f+56|0;Na=f+320|0;Oa=f+316|0;Pa=f+312|0;Qa=f+308|0;Ra=f+304|0;Sa=f+48|0;Ta=f+300|0;Ua=f+296|0;Va=f+292|0;Wa=f+288|0;Xa=f+284|0;Ya=f+40|0;Za=f+280|0;_a=f+276|0;$a=f+272|0;ab=f+268|0;bb=f+264|0;cb=f+32|0;db=f+260|0;eb=f+256|0;fb=f+252|0;gb=f+248|0;hb=f+244|0;ib=f+240|0;jb=f+236|0;kb=f+232|0;lb=f+228|0;mb=f+224|0;nb=f+220|0;ob=f+216|0;pb=f+212|0;qb=f+24|0;rb=f+16|0;sb=f+8|0;tb=f;ub=f+208|0;vb=f+204|0;wb=f+200|0;xb=f+196|0;yb=f+192|0;c[vb>>2]=b;c[wb>>2]=d;c[xb>>2]=e;c[yb>>2]=a[11920];e=c[vb>>2]|0;vb=c[wb>>2]|0;wb=c[xb>>2]|0;if((c[yb>>2]|0)==1){c[jb>>2]=e;c[kb>>2]=vb;c[lb>>2]=wb;c[mb>>2]=1;c[nb>>2]=c[kb>>2];c[ob>>2]=(c[nb>>2]|0)+(c[lb>>2]|0);yb=c[jb>>2]|0;xb=yb;d=dE(c[xb>>2]|0,c[xb+4>>2]|0,c[lb>>2]|0,0)|0;xb=yb;c[xb>>2]=d;c[xb+4>>2]=y;xb=c[jb>>2]|0;if(((c[(c[jb>>2]|0)+72>>2]|0)+(c[lb>>2]|0)|0)>>>0<32){Mh(xb+40+(c[(c[jb>>2]|0)+72>>2]|0)|0,c[kb>>2]|0,c[lb>>2]|0)|0;d=(c[jb>>2]|0)+72|0;c[d>>2]=(c[d>>2]|0)+(c[lb>>2]|0);c[ib>>2]=0;}else{if(c[xb+72>>2]|0){Mh((c[jb>>2]|0)+40+(c[(c[jb>>2]|0)+72>>2]|0)|0,c[kb>>2]|0,32-(c[(c[jb>>2]|0)+72>>2]|0)|0)|0;kb=(c[jb>>2]|0)+8|0;xb=c[kb>>2]|0;lb=c[kb+4>>2]|0;kb=c[mb>>2]|0;c[gb>>2]=(c[jb>>2]|0)+40;c[hb>>2]=kb;kb=c[hb>>2]|0;c[db>>2]=c[gb>>2];c[eb>>2]=kb;c[fb>>2]=1;kb=(c[eb>>2]|0)==1;eb=c[db>>2]|0;if((c[fb>>2]|0)==1){fb=Hh(eb)|0;db=y;if(kb){zb=fb;Ab=db;}else{gb=Ih(fb,db)|0;zb=gb;Ab=y;}gb=cb;c[gb>>2]=zb;c[gb+4>>2]=Ab;}else{Ab=eb;eb=c[Ab>>2]|0;gb=c[Ab+4>>2]|0;if(kb){Bb=eb;Cb=gb;}else{kb=Ih(eb,gb)|0;Bb=kb;Cb=y;}kb=cb;c[kb>>2]=Bb;c[kb+4>>2]=Cb;}Cb=cb;cb=Jh(xb,lb,c[Cb>>2]|0,c[Cb+4>>2]|0)|0;Cb=(c[jb>>2]|0)+8|0;c[Cb>>2]=cb;c[Cb+4>>2]=y;Cb=(c[jb>>2]|0)+16|0;cb=c[Cb>>2]|0;lb=c[Cb+4>>2]|0;Cb=c[mb>>2]|0;c[ab>>2]=(c[jb>>2]|0)+40+8;c[bb>>2]=Cb;Cb=c[bb>>2]|0;c[Za>>2]=c[ab>>2];c[_a>>2]=Cb;c[$a>>2]=1;Cb=(c[_a>>2]|0)==1;_a=c[Za>>2]|0;if((c[$a>>2]|0)==1){$a=Hh(_a)|0;Za=y;if(Cb){Db=$a;Eb=Za;}else{ab=Ih($a,Za)|0;Db=ab;Eb=y;}ab=Ya;c[ab>>2]=Db;c[ab+4>>2]=Eb;}else{Eb=_a;_a=c[Eb>>2]|0;ab=c[Eb+4>>2]|0;if(Cb){Fb=_a;Gb=ab;}else{Cb=Ih(_a,ab)|0;Fb=Cb;Gb=y;}Cb=Ya;c[Cb>>2]=Fb;c[Cb+4>>2]=Gb;}Gb=Ya;Ya=Jh(cb,lb,c[Gb>>2]|0,c[Gb+4>>2]|0)|0;Gb=(c[jb>>2]|0)+16|0;c[Gb>>2]=Ya;c[Gb+4>>2]=y;Gb=(c[jb>>2]|0)+24|0;Ya=c[Gb>>2]|0;lb=c[Gb+4>>2]|0;Gb=c[mb>>2]|0;c[Wa>>2]=(c[jb>>2]|0)+40+16;c[Xa>>2]=Gb;Gb=c[Xa>>2]|0;c[Ta>>2]=c[Wa>>2];c[Ua>>2]=Gb;c[Va>>2]=1;Gb=(c[Ua>>2]|0)==1;Ua=c[Ta>>2]|0;if((c[Va>>2]|0)==1){Va=Hh(Ua)|0;Ta=y;if(Gb){Hb=Va;Ib=Ta;}else{Wa=Ih(Va,Ta)|0;Hb=Wa;Ib=y;}Wa=Sa;c[Wa>>2]=Hb;c[Wa+4>>2]=Ib;}else{Ib=Ua;Ua=c[Ib>>2]|0;Wa=c[Ib+4>>2]|0;if(Gb){Jb=Ua;Kb=Wa;}else{Gb=Ih(Ua,Wa)|0;Jb=Gb;Kb=y;}Gb=Sa;c[Gb>>2]=Jb;c[Gb+4>>2]=Kb;}Kb=Sa;Sa=Jh(Ya,lb,c[Kb>>2]|0,c[Kb+4>>2]|0)|0;Kb=(c[jb>>2]|0)+24|0;c[Kb>>2]=Sa;c[Kb+4>>2]=y;Kb=(c[jb>>2]|0)+32|0;Sa=c[Kb>>2]|0;lb=c[Kb+4>>2]|0;Kb=c[mb>>2]|0;c[Qa>>2]=(c[jb>>2]|0)+40+24;c[Ra>>2]=Kb;Kb=c[Ra>>2]|0;c[Na>>2]=c[Qa>>2];c[Oa>>2]=Kb;c[Pa>>2]=1;Kb=(c[Oa>>2]|0)==1;Oa=c[Na>>2]|0;if((c[Pa>>2]|0)==1){Pa=Hh(Oa)|0;Na=y;if(Kb){Lb=Pa;Mb=Na;}else{Qa=Ih(Pa,Na)|0;Lb=Qa;Mb=y;}Qa=Ma;c[Qa>>2]=Lb;c[Qa+4>>2]=Mb;}else{Mb=Oa;Oa=c[Mb>>2]|0;Qa=c[Mb+4>>2]|0;if(Kb){Nb=Oa;Ob=Qa;}else{Kb=Ih(Oa,Qa)|0;Nb=Kb;Ob=y;}Kb=Ma;c[Kb>>2]=Nb;c[Kb+4>>2]=Ob;}Ob=Ma;Ma=Jh(Sa,lb,c[Ob>>2]|0,c[Ob+4>>2]|0)|0;Ob=(c[jb>>2]|0)+32|0;c[Ob>>2]=Ma;c[Ob+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+(32-(c[(c[jb>>2]|0)+72>>2]|0));c[(c[jb>>2]|0)+72>>2]=0;}if(((c[nb>>2]|0)+32|0)>>>0<=(c[ob>>2]|0)>>>0){c[pb>>2]=(c[ob>>2]|0)+-32;Ob=(c[jb>>2]|0)+8|0;Ma=c[Ob+4>>2]|0;lb=qb;c[lb>>2]=c[Ob>>2];c[lb+4>>2]=Ma;Ma=(c[jb>>2]|0)+16|0;lb=c[Ma+4>>2]|0;Ob=rb;c[Ob>>2]=c[Ma>>2];c[Ob+4>>2]=lb;lb=(c[jb>>2]|0)+24|0;Ob=c[lb+4>>2]|0;Ma=sb;c[Ma>>2]=c[lb>>2];c[Ma+4>>2]=Ob;Ob=(c[jb>>2]|0)+32|0;Ma=c[Ob+4>>2]|0;lb=tb;c[lb>>2]=c[Ob>>2];c[lb+4>>2]=Ma;do{Ma=qb;lb=c[Ma>>2]|0;Ob=c[Ma+4>>2]|0;Ma=c[mb>>2]|0;c[Ka>>2]=c[nb>>2];c[La>>2]=Ma;Ma=c[La>>2]|0;c[Ha>>2]=c[Ka>>2];c[Ia>>2]=Ma;c[Ja>>2]=1;Ma=(c[Ia>>2]|0)==1;Sa=c[Ha>>2]|0;if((c[Ja>>2]|0)==1){Kb=Hh(Sa)|0;Nb=y;if(Ma){Pb=Kb;Qb=Nb;}else{Qa=Ih(Kb,Nb)|0;Pb=Qa;Qb=y;}Qa=Ga;c[Qa>>2]=Pb;c[Qa+4>>2]=Qb;}else{Qa=Sa;Sa=c[Qa>>2]|0;Nb=c[Qa+4>>2]|0;if(Ma){Rb=Sa;Sb=Nb;}else{Ma=Ih(Sa,Nb)|0;Rb=Ma;Sb=y;}Ma=Ga;c[Ma>>2]=Rb;c[Ma+4>>2]=Sb;}Ma=Ga;Nb=Jh(lb,Ob,c[Ma>>2]|0,c[Ma+4>>2]|0)|0;Ma=qb;c[Ma>>2]=Nb;c[Ma+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+8;Ma=rb;Nb=c[Ma>>2]|0;Ob=c[Ma+4>>2]|0;Ma=c[mb>>2]|0;c[Ea>>2]=c[nb>>2];c[Fa>>2]=Ma;Ma=c[Fa>>2]|0;c[Ba>>2]=c[Ea>>2];c[Ca>>2]=Ma;c[Da>>2]=1;Ma=(c[Ca>>2]|0)==1;lb=c[Ba>>2]|0;if((c[Da>>2]|0)==1){Sa=Hh(lb)|0;Qa=y;if(Ma){Tb=Sa;Ub=Qa;}else{Kb=Ih(Sa,Qa)|0;Tb=Kb;Ub=y;}Kb=Aa;c[Kb>>2]=Tb;c[Kb+4>>2]=Ub;}else{Kb=lb;lb=c[Kb>>2]|0;Qa=c[Kb+4>>2]|0;if(Ma){Vb=lb;Wb=Qa;}else{Ma=Ih(lb,Qa)|0;Vb=Ma;Wb=y;}Ma=Aa;c[Ma>>2]=Vb;c[Ma+4>>2]=Wb;}Ma=Aa;Qa=Jh(Nb,Ob,c[Ma>>2]|0,c[Ma+4>>2]|0)|0;Ma=rb;c[Ma>>2]=Qa;c[Ma+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+8;Ma=sb;Qa=c[Ma>>2]|0;Ob=c[Ma+4>>2]|0;Ma=c[mb>>2]|0;c[ya>>2]=c[nb>>2];c[za>>2]=Ma;Ma=c[za>>2]|0;c[va>>2]=c[ya>>2];c[wa>>2]=Ma;c[xa>>2]=1;Ma=(c[wa>>2]|0)==1;Nb=c[va>>2]|0;if((c[xa>>2]|0)==1){lb=Hh(Nb)|0;Kb=y;if(Ma){Xb=lb;Yb=Kb;}else{Sa=Ih(lb,Kb)|0;Xb=Sa;Yb=y;}Sa=ua;c[Sa>>2]=Xb;c[Sa+4>>2]=Yb;}else{Sa=Nb;Nb=c[Sa>>2]|0;Kb=c[Sa+4>>2]|0;if(Ma){Zb=Nb;_b=Kb;}else{Ma=Ih(Nb,Kb)|0;Zb=Ma;_b=y;}Ma=ua;c[Ma>>2]=Zb;c[Ma+4>>2]=_b;}Ma=ua;Kb=Jh(Qa,Ob,c[Ma>>2]|0,c[Ma+4>>2]|0)|0;Ma=sb;c[Ma>>2]=Kb;c[Ma+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+8;Ma=tb;Kb=c[Ma>>2]|0;Ob=c[Ma+4>>2]|0;Ma=c[mb>>2]|0;c[sa>>2]=c[nb>>2];c[ta>>2]=Ma;Ma=c[ta>>2]|0;c[pa>>2]=c[sa>>2];c[qa>>2]=Ma;c[ra>>2]=1;Ma=(c[qa>>2]|0)==1;Qa=c[pa>>2]|0;if((c[ra>>2]|0)==1){Nb=Hh(Qa)|0;Sa=y;if(Ma){$b=Nb;ac=Sa;}else{lb=Ih(Nb,Sa)|0;$b=lb;ac=y;}lb=oa;c[lb>>2]=$b;c[lb+4>>2]=ac;}else{lb=Qa;Qa=c[lb>>2]|0;Sa=c[lb+4>>2]|0;if(Ma){bc=Qa;cc=Sa;}else{Ma=Ih(Qa,Sa)|0;bc=Ma;cc=y;}Ma=oa;c[Ma>>2]=bc;c[Ma+4>>2]=cc;}Ma=oa;Sa=Jh(Kb,Ob,c[Ma>>2]|0,c[Ma+4>>2]|0)|0;Ma=tb;c[Ma>>2]=Sa;c[Ma+4>>2]=y;c[nb>>2]=(c[nb>>2]|0)+8;}while((c[nb>>2]|0)>>>0<=(c[pb>>2]|0)>>>0);pb=qb;qb=c[pb+4>>2]|0;oa=(c[jb>>2]|0)+8|0;c[oa>>2]=c[pb>>2];c[oa+4>>2]=qb;qb=rb;rb=c[qb+4>>2]|0;oa=(c[jb>>2]|0)+16|0;c[oa>>2]=c[qb>>2];c[oa+4>>2]=rb;rb=sb;sb=c[rb+4>>2]|0;oa=(c[jb>>2]|0)+24|0;c[oa>>2]=c[rb>>2];c[oa+4>>2]=sb;sb=tb;tb=c[sb+4>>2]|0;oa=(c[jb>>2]|0)+32|0;c[oa>>2]=c[sb>>2];c[oa+4>>2]=tb;}if((c[nb>>2]|0)>>>0<(c[ob>>2]|0)>>>0){Mh((c[jb>>2]|0)+40|0,c[nb>>2]|0,(c[ob>>2]|0)-(c[nb>>2]|0)|0)|0;c[(c[jb>>2]|0)+72>>2]=(c[ob>>2]|0)-(c[nb>>2]|0);}c[ib>>2]=0;}c[ub>>2]=c[ib>>2];dc=c[ub>>2]|0;l=f;return dc|0;}else{c[da>>2]=e;c[ea>>2]=vb;c[fa>>2]=wb;c[ga>>2]=0;c[ha>>2]=c[ea>>2];c[ia>>2]=(c[ha>>2]|0)+(c[fa>>2]|0);wb=c[da>>2]|0;vb=wb;e=dE(c[vb>>2]|0,c[vb+4>>2]|0,c[fa>>2]|0,0)|0;vb=wb;c[vb>>2]=e;c[vb+4>>2]=y;vb=c[da>>2]|0;if(((c[(c[da>>2]|0)+72>>2]|0)+(c[fa>>2]|0)|0)>>>0<32){Mh(vb+40+(c[(c[da>>2]|0)+72>>2]|0)|0,c[ea>>2]|0,c[fa>>2]|0)|0;e=(c[da>>2]|0)+72|0;c[e>>2]=(c[e>>2]|0)+(c[fa>>2]|0);c[ca>>2]=0;}else{if(c[vb+72>>2]|0){Mh((c[da>>2]|0)+40+(c[(c[da>>2]|0)+72>>2]|0)|0,c[ea>>2]|0,32-(c[(c[da>>2]|0)+72>>2]|0)|0)|0;ea=(c[da>>2]|0)+8|0;vb=c[ea>>2]|0;fa=c[ea+4>>2]|0;ea=c[ga>>2]|0;c[aa>>2]=(c[da>>2]|0)+40;c[ba>>2]=ea;ea=c[ba>>2]|0;c[Z>>2]=c[aa>>2];c[_>>2]=ea;c[$>>2]=1;ea=(c[_>>2]|0)==1;_=c[Z>>2]|0;if((c[$>>2]|0)==1){$=Hh(_)|0;Z=y;if(ea){ec=$;fc=Z;}else{aa=Ih($,Z)|0;ec=aa;fc=y;}aa=Y;c[aa>>2]=ec;c[aa+4>>2]=fc;}else{fc=_;_=c[fc>>2]|0;aa=c[fc+4>>2]|0;if(ea){gc=_;hc=aa;}else{ea=Ih(_,aa)|0;gc=ea;hc=y;}ea=Y;c[ea>>2]=gc;c[ea+4>>2]=hc;}hc=Y;Y=Jh(vb,fa,c[hc>>2]|0,c[hc+4>>2]|0)|0;hc=(c[da>>2]|0)+8|0;c[hc>>2]=Y;c[hc+4>>2]=y;hc=(c[da>>2]|0)+16|0;Y=c[hc>>2]|0;fa=c[hc+4>>2]|0;hc=c[ga>>2]|0;c[W>>2]=(c[da>>2]|0)+40+8;c[X>>2]=hc;hc=c[X>>2]|0;c[T>>2]=c[W>>2];c[U>>2]=hc;c[V>>2]=1;hc=(c[U>>2]|0)==1;U=c[T>>2]|0;if((c[V>>2]|0)==1){V=Hh(U)|0;T=y;if(hc){ic=V;jc=T;}else{W=Ih(V,T)|0;ic=W;jc=y;}W=S;c[W>>2]=ic;c[W+4>>2]=jc;}else{jc=U;U=c[jc>>2]|0;W=c[jc+4>>2]|0;if(hc){kc=U;lc=W;}else{hc=Ih(U,W)|0;kc=hc;lc=y;}hc=S;c[hc>>2]=kc;c[hc+4>>2]=lc;}lc=S;S=Jh(Y,fa,c[lc>>2]|0,c[lc+4>>2]|0)|0;lc=(c[da>>2]|0)+16|0;c[lc>>2]=S;c[lc+4>>2]=y;lc=(c[da>>2]|0)+24|0;S=c[lc>>2]|0;fa=c[lc+4>>2]|0;lc=c[ga>>2]|0;c[Q>>2]=(c[da>>2]|0)+40+16;c[R>>2]=lc;lc=c[R>>2]|0;c[N>>2]=c[Q>>2];c[O>>2]=lc;c[P>>2]=1;lc=(c[O>>2]|0)==1;O=c[N>>2]|0;if((c[P>>2]|0)==1){P=Hh(O)|0;N=y;if(lc){mc=P;nc=N;}else{Q=Ih(P,N)|0;mc=Q;nc=y;}Q=M;c[Q>>2]=mc;c[Q+4>>2]=nc;}else{nc=O;O=c[nc>>2]|0;Q=c[nc+4>>2]|0;if(lc){oc=O;pc=Q;}else{lc=Ih(O,Q)|0;oc=lc;pc=y;}lc=M;c[lc>>2]=oc;c[lc+4>>2]=pc;}pc=M;M=Jh(S,fa,c[pc>>2]|0,c[pc+4>>2]|0)|0;pc=(c[da>>2]|0)+24|0;c[pc>>2]=M;c[pc+4>>2]=y;pc=(c[da>>2]|0)+32|0;M=c[pc>>2]|0;fa=c[pc+4>>2]|0;pc=c[ga>>2]|0;c[K>>2]=(c[da>>2]|0)+40+24;c[L>>2]=pc;pc=c[L>>2]|0;c[H>>2]=c[K>>2];c[I>>2]=pc;c[J>>2]=1;pc=(c[I>>2]|0)==1;I=c[H>>2]|0;if((c[J>>2]|0)==1){J=Hh(I)|0;H=y;if(pc){qc=J;rc=H;}else{K=Ih(J,H)|0;qc=K;rc=y;}K=G;c[K>>2]=qc;c[K+4>>2]=rc;}else{rc=I;I=c[rc>>2]|0;K=c[rc+4>>2]|0;if(pc){sc=I;tc=K;}else{pc=Ih(I,K)|0;sc=pc;tc=y;}pc=G;c[pc>>2]=sc;c[pc+4>>2]=tc;}tc=G;G=Jh(M,fa,c[tc>>2]|0,c[tc+4>>2]|0)|0;tc=(c[da>>2]|0)+32|0;c[tc>>2]=G;c[tc+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+(32-(c[(c[da>>2]|0)+72>>2]|0));c[(c[da>>2]|0)+72>>2]=0;}if(((c[ha>>2]|0)+32|0)>>>0<=(c[ia>>2]|0)>>>0){c[ja>>2]=(c[ia>>2]|0)+-32;tc=(c[da>>2]|0)+8|0;G=c[tc+4>>2]|0;fa=ka;c[fa>>2]=c[tc>>2];c[fa+4>>2]=G;G=(c[da>>2]|0)+16|0;fa=c[G+4>>2]|0;tc=la;c[tc>>2]=c[G>>2];c[tc+4>>2]=fa;fa=(c[da>>2]|0)+24|0;tc=c[fa+4>>2]|0;G=ma;c[G>>2]=c[fa>>2];c[G+4>>2]=tc;tc=(c[da>>2]|0)+32|0;G=c[tc+4>>2]|0;fa=na;c[fa>>2]=c[tc>>2];c[fa+4>>2]=G;do{G=ka;fa=c[G>>2]|0;tc=c[G+4>>2]|0;G=c[ga>>2]|0;c[E>>2]=c[ha>>2];c[F>>2]=G;G=c[F>>2]|0;c[B>>2]=c[E>>2];c[C>>2]=G;c[D>>2]=1;G=(c[C>>2]|0)==1;M=c[B>>2]|0;if((c[D>>2]|0)==1){pc=Hh(M)|0;sc=y;if(G){uc=pc;vc=sc;}else{K=Ih(pc,sc)|0;uc=K;vc=y;}K=A;c[K>>2]=uc;c[K+4>>2]=vc;}else{K=M;M=c[K>>2]|0;sc=c[K+4>>2]|0;if(G){wc=M;xc=sc;}else{G=Ih(M,sc)|0;wc=G;xc=y;}G=A;c[G>>2]=wc;c[G+4>>2]=xc;}G=A;sc=Jh(fa,tc,c[G>>2]|0,c[G+4>>2]|0)|0;G=ka;c[G>>2]=sc;c[G+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+8;G=la;sc=c[G>>2]|0;tc=c[G+4>>2]|0;G=c[ga>>2]|0;c[x>>2]=c[ha>>2];c[z>>2]=G;G=c[z>>2]|0;c[u>>2]=c[x>>2];c[v>>2]=G;c[w>>2]=1;G=(c[v>>2]|0)==1;fa=c[u>>2]|0;if((c[w>>2]|0)==1){M=Hh(fa)|0;K=y;if(G){yc=M;zc=K;}else{pc=Ih(M,K)|0;yc=pc;zc=y;}pc=t;c[pc>>2]=yc;c[pc+4>>2]=zc;}else{pc=fa;fa=c[pc>>2]|0;K=c[pc+4>>2]|0;if(G){Ac=fa;Bc=K;}else{G=Ih(fa,K)|0;Ac=G;Bc=y;}G=t;c[G>>2]=Ac;c[G+4>>2]=Bc;}G=t;K=Jh(sc,tc,c[G>>2]|0,c[G+4>>2]|0)|0;G=la;c[G>>2]=K;c[G+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+8;G=ma;K=c[G>>2]|0;tc=c[G+4>>2]|0;G=c[ga>>2]|0;c[r>>2]=c[ha>>2];c[s>>2]=G;G=c[s>>2]|0;c[o>>2]=c[r>>2];c[p>>2]=G;c[q>>2]=1;G=(c[p>>2]|0)==1;sc=c[o>>2]|0;if((c[q>>2]|0)==1){fa=Hh(sc)|0;pc=y;if(G){Cc=fa;Dc=pc;}else{M=Ih(fa,pc)|0;Cc=M;Dc=y;}M=n;c[M>>2]=Cc;c[M+4>>2]=Dc;}else{M=sc;sc=c[M>>2]|0;pc=c[M+4>>2]|0;if(G){Ec=sc;Fc=pc;}else{G=Ih(sc,pc)|0;Ec=G;Fc=y;}G=n;c[G>>2]=Ec;c[G+4>>2]=Fc;}G=n;pc=Jh(K,tc,c[G>>2]|0,c[G+4>>2]|0)|0;G=ma;c[G>>2]=pc;c[G+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+8;G=na;pc=c[G>>2]|0;tc=c[G+4>>2]|0;G=c[ga>>2]|0;c[k>>2]=c[ha>>2];c[m>>2]=G;G=c[m>>2]|0;c[h>>2]=c[k>>2];c[i>>2]=G;c[j>>2]=1;G=(c[i>>2]|0)==1;K=c[h>>2]|0;if((c[j>>2]|0)==1){sc=Hh(K)|0;M=y;if(G){Gc=sc;Hc=M;}else{fa=Ih(sc,M)|0;Gc=fa;Hc=y;}fa=g;c[fa>>2]=Gc;c[fa+4>>2]=Hc;}else{fa=K;K=c[fa>>2]|0;M=c[fa+4>>2]|0;if(G){Ic=K;Jc=M;}else{G=Ih(K,M)|0;Ic=G;Jc=y;}G=g;c[G>>2]=Ic;c[G+4>>2]=Jc;}G=g;M=Jh(pc,tc,c[G>>2]|0,c[G+4>>2]|0)|0;G=na;c[G>>2]=M;c[G+4>>2]=y;c[ha>>2]=(c[ha>>2]|0)+8;}while((c[ha>>2]|0)>>>0<=(c[ja>>2]|0)>>>0);ja=ka;ka=c[ja+4>>2]|0;g=(c[da>>2]|0)+8|0;c[g>>2]=c[ja>>2];c[g+4>>2]=ka;ka=la;la=c[ka+4>>2]|0;g=(c[da>>2]|0)+16|0;c[g>>2]=c[ka>>2];c[g+4>>2]=la;la=ma;ma=c[la+4>>2]|0;g=(c[da>>2]|0)+24|0;c[g>>2]=c[la>>2];c[g+4>>2]=ma;ma=na;na=c[ma+4>>2]|0;g=(c[da>>2]|0)+32|0;c[g>>2]=c[ma>>2];c[g+4>>2]=na;}if((c[ha>>2]|0)>>>0<(c[ia>>2]|0)>>>0){Mh((c[da>>2]|0)+40|0,c[ha>>2]|0,(c[ia>>2]|0)-(c[ha>>2]|0)|0)|0;c[(c[da>>2]|0)+72>>2]=(c[ia>>2]|0)-(c[ha>>2]|0);}c[ca>>2]=0;}c[ub>>2]=c[ca>>2];dc=c[ub>>2]|0;l=f;return dc|0;}return 0;}function Oh(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=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;e=l;l=l+256|0;f=e+244|0;g=e+240|0;h=e+236|0;i=e+232|0;j=e+228|0;k=e+224|0;m=e+112|0;n=e+220|0;o=e+216|0;p=e+212|0;q=e+208|0;r=e+204|0;s=e+200|0;t=e+196|0;u=e+192|0;v=e+188|0;w=e+104|0;x=e+96|0;z=e+88|0;A=e+80|0;B=e+72|0;C=e+64|0;D=e+184|0;E=e+180|0;F=e+176|0;G=e+172|0;H=e+168|0;I=e+164|0;J=e+56|0;K=e+160|0;L=e+156|0;M=e+152|0;N=e+148|0;O=e+144|0;P=e+140|0;Q=e+136|0;R=e+132|0;S=e+128|0;T=e+48|0;U=e+40|0;V=e+32|0;W=e+24|0;X=e+16|0;Y=e+8|0;Z=e;_=e+124|0;$=e+120|0;c[_>>2]=b;c[$>>2]=a[11920];b=c[_>>2]|0;if((c[$>>2]|0)==1){c[P>>2]=b;c[Q>>2]=1;c[R>>2]=(c[P>>2]|0)+40;c[S>>2]=(c[P>>2]|0)+40+(c[(c[P>>2]|0)+72>>2]|0);$=c[P>>2]|0;_=c[$+4>>2]|0;aa=c[P>>2]|0;if(_>>>0>0|(_|0)==0&(c[$>>2]|0)>>>0>=32){$=aa+8|0;_=c[$+4>>2]|0;ba=U;c[ba>>2]=c[$>>2];c[ba+4>>2]=_;_=(c[P>>2]|0)+16|0;ba=c[_+4>>2]|0;$=V;c[$>>2]=c[_>>2];c[$+4>>2]=ba;ba=(c[P>>2]|0)+24|0;$=c[ba+4>>2]|0;_=W;c[_>>2]=c[ba>>2];c[_+4>>2]=$;$=(c[P>>2]|0)+32|0;_=c[$+4>>2]|0;ba=X;c[ba>>2]=c[$>>2];c[ba+4>>2]=_;_=U;ba=jE(c[_>>2]|0,c[_+4>>2]|0,1)|0;_=y;$=U;ca=iE(c[$>>2]|0,c[$+4>>2]|0,63)|0;$=_|y;_=V;da=jE(c[_>>2]|0,c[_+4>>2]|0,7)|0;_=y;ea=V;fa=iE(c[ea>>2]|0,c[ea+4>>2]|0,57)|0;ea=dE(ba|ca|0,$|0,da|fa|0,_|y|0)|0;_=y;fa=W;da=jE(c[fa>>2]|0,c[fa+4>>2]|0,12)|0;fa=y;$=W;ca=iE(c[$>>2]|0,c[$+4>>2]|0,52)|0;$=dE(ea|0,_|0,da|ca|0,fa|y|0)|0;fa=y;ca=X;da=jE(c[ca>>2]|0,c[ca+4>>2]|0,18)|0;ca=y;_=X;ea=iE(c[_>>2]|0,c[_+4>>2]|0,46)|0;_=dE($|0,fa|0,da|ea|0,ca|y|0)|0;ca=T;c[ca>>2]=_;c[ca+4>>2]=y;ca=T;_=U;U=Kh(c[ca>>2]|0,c[ca+4>>2]|0,c[_>>2]|0,c[_+4>>2]|0)|0;_=T;c[_>>2]=U;c[_+4>>2]=y;_=T;U=V;V=Kh(c[_>>2]|0,c[_+4>>2]|0,c[U>>2]|0,c[U+4>>2]|0)|0;U=T;c[U>>2]=V;c[U+4>>2]=y;U=T;V=W;W=Kh(c[U>>2]|0,c[U+4>>2]|0,c[V>>2]|0,c[V+4>>2]|0)|0;V=T;c[V>>2]=W;c[V+4>>2]=y;V=T;W=X;X=Kh(c[V>>2]|0,c[V+4>>2]|0,c[W>>2]|0,c[W+4>>2]|0)|0;W=T;c[W>>2]=X;c[W+4>>2]=y;}else{W=aa+24|0;aa=dE(c[W>>2]|0,c[W+4>>2]|0,374761413,668265263)|0;W=T;c[W>>2]=aa;c[W+4>>2]=y;}W=c[P>>2]|0;P=T;aa=dE(c[P>>2]|0,c[P+4>>2]|0,c[W>>2]|0,c[W+4>>2]|0)|0;W=T;c[W>>2]=aa;c[W+4>>2]=y;while(1){ga=c[R>>2]|0;if(((c[R>>2]|0)+8|0)>>>0>(c[S>>2]|0)>>>0)break;W=c[Q>>2]|0;c[N>>2]=ga;c[O>>2]=W;W=c[O>>2]|0;c[K>>2]=c[N>>2];c[L>>2]=W;c[M>>2]=1;W=(c[L>>2]|0)==1;aa=c[K>>2]|0;if((c[M>>2]|0)==1){P=Hh(aa)|0;X=y;if(W){ha=P;ia=X;}else{V=Ih(P,X)|0;ha=V;ia=y;}V=J;c[V>>2]=ha;c[V+4>>2]=ia;}else{V=aa;aa=c[V>>2]|0;X=c[V+4>>2]|0;if(W){ja=aa;ka=X;}else{W=Ih(aa,X)|0;ja=W;ka=y;}W=J;c[W>>2]=ja;c[W+4>>2]=ka;}W=J;X=Jh(0,0,c[W>>2]|0,c[W+4>>2]|0)|0;W=Y;c[W>>2]=X;c[W+4>>2]=y;W=Y;X=T;aa=c[X+4>>2]^c[W+4>>2];V=T;c[V>>2]=c[X>>2]^c[W>>2];c[V+4>>2]=aa;aa=T;V=jE(c[aa>>2]|0,c[aa+4>>2]|0,27)|0;aa=y;W=T;X=iE(c[W>>2]|0,c[W+4>>2]|0,37)|0;W=cE(V|X|0,aa|y|0,-2048144761,-1640531535)|0;aa=dE(W|0,y|0,-1028477341,-2048144777)|0;W=T;c[W>>2]=aa;c[W+4>>2]=y;c[R>>2]=(c[R>>2]|0)+8;}if((ga+4|0)>>>0<=(c[S>>2]|0)>>>0){ga=c[Q>>2]|0;c[H>>2]=c[R>>2];c[I>>2]=ga;ga=c[I>>2]|0;c[E>>2]=c[H>>2];c[F>>2]=ga;c[G>>2]=1;ga=(c[F>>2]|0)==1;F=c[E>>2]|0;if((c[G>>2]|0)==1){G=Fh(F)|0;if(ga)la=G;else la=Gh(G)|0;c[D>>2]=la;}else{la=c[F>>2]|0;if(ga)ma=la;else ma=Gh(la)|0;c[D>>2]=ma;}ma=cE(c[D>>2]|0,0,-2048144761,-1640531535)|0;D=T;la=c[D+4>>2]^y;ga=T;c[ga>>2]=c[D>>2]^ma;c[ga+4>>2]=la;la=T;ga=jE(c[la>>2]|0,c[la+4>>2]|0,23)|0;la=y;ma=T;D=iE(c[ma>>2]|0,c[ma+4>>2]|0,41)|0;ma=cE(ga|D|0,la|y|0,668265295,-1028477379)|0;la=dE(ma|0,y|0,-1640531463,374761393)|0;ma=T;c[ma>>2]=la;c[ma+4>>2]=y;c[R>>2]=(c[R>>2]|0)+4;}while(1){if((c[R>>2]|0)>>>0>=(c[S>>2]|0)>>>0)break;ma=cE(d[c[R>>2]>>0]|0,0,374761413,668265263)|0;la=T;D=c[la+4>>2]^y;ga=T;c[ga>>2]=c[la>>2]^ma;c[ga+4>>2]=D;D=T;ga=jE(c[D>>2]|0,c[D+4>>2]|0,11)|0;D=y;ma=T;la=iE(c[ma>>2]|0,c[ma+4>>2]|0,53)|0;ma=cE(ga|la|0,D|y|0,-2048144761,-1640531535)|0;D=T;c[D>>2]=ma;c[D+4>>2]=y;c[R>>2]=(c[R>>2]|0)+1;}R=T;S=iE(c[R>>2]|0,c[R+4>>2]|0,33)|0;R=T;D=c[R+4>>2]^y;ma=T;c[ma>>2]=c[R>>2]^S;c[ma+4>>2]=D;D=T;ma=cE(c[D>>2]|0,c[D+4>>2]|0,668265295,-1028477379)|0;D=T;c[D>>2]=ma;c[D+4>>2]=y;D=T;ma=iE(c[D>>2]|0,c[D+4>>2]|0,29)|0;D=T;S=c[D+4>>2]^y;R=T;c[R>>2]=c[D>>2]^ma;c[R+4>>2]=S;S=T;R=cE(c[S>>2]|0,c[S+4>>2]|0,-1640531463,374761393)|0;S=T;c[S>>2]=R;c[S+4>>2]=y;S=T;R=c[S+4>>2]|0;ma=T;c[ma>>2]=c[S>>2]^c[T+4>>2];c[ma+4>>2]=R;R=T;T=c[R+4>>2]|0;ma=Z;c[ma>>2]=c[R>>2];c[ma+4>>2]=T;na=Z;oa=na;pa=c[oa>>2]|0;qa=na+4|0;ra=qa;sa=c[ra>>2]|0;y=sa;l=e;return pa|0;}else{c[s>>2]=b;c[t>>2]=0;c[u>>2]=(c[s>>2]|0)+40;c[v>>2]=(c[s>>2]|0)+40+(c[(c[s>>2]|0)+72>>2]|0);b=c[s>>2]|0;T=c[b+4>>2]|0;ma=c[s>>2]|0;if(T>>>0>0|(T|0)==0&(c[b>>2]|0)>>>0>=32){b=ma+8|0;T=c[b+4>>2]|0;R=x;c[R>>2]=c[b>>2];c[R+4>>2]=T;T=(c[s>>2]|0)+16|0;R=c[T+4>>2]|0;b=z;c[b>>2]=c[T>>2];c[b+4>>2]=R;R=(c[s>>2]|0)+24|0;b=c[R+4>>2]|0;T=A;c[T>>2]=c[R>>2];c[T+4>>2]=b;b=(c[s>>2]|0)+32|0;T=c[b+4>>2]|0;R=B;c[R>>2]=c[b>>2];c[R+4>>2]=T;T=x;R=jE(c[T>>2]|0,c[T+4>>2]|0,1)|0;T=y;b=x;S=iE(c[b>>2]|0,c[b+4>>2]|0,63)|0;b=T|y;T=z;D=jE(c[T>>2]|0,c[T+4>>2]|0,7)|0;T=y;la=z;ga=iE(c[la>>2]|0,c[la+4>>2]|0,57)|0;la=dE(R|S|0,b|0,D|ga|0,T|y|0)|0;T=y;ga=A;D=jE(c[ga>>2]|0,c[ga+4>>2]|0,12)|0;ga=y;b=A;S=iE(c[b>>2]|0,c[b+4>>2]|0,52)|0;b=dE(la|0,T|0,D|S|0,ga|y|0)|0;ga=y;S=B;D=jE(c[S>>2]|0,c[S+4>>2]|0,18)|0;S=y;T=B;la=iE(c[T>>2]|0,c[T+4>>2]|0,46)|0;T=dE(b|0,ga|0,D|la|0,S|y|0)|0;S=w;c[S>>2]=T;c[S+4>>2]=y;S=w;T=x;x=Kh(c[S>>2]|0,c[S+4>>2]|0,c[T>>2]|0,c[T+4>>2]|0)|0;T=w;c[T>>2]=x;c[T+4>>2]=y;T=w;x=z;z=Kh(c[T>>2]|0,c[T+4>>2]|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=w;c[x>>2]=z;c[x+4>>2]=y;x=w;z=A;A=Kh(c[x>>2]|0,c[x+4>>2]|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=w;c[z>>2]=A;c[z+4>>2]=y;z=w;A=B;B=Kh(c[z>>2]|0,c[z+4>>2]|0,c[A>>2]|0,c[A+4>>2]|0)|0;A=w;c[A>>2]=B;c[A+4>>2]=y;}else{A=ma+24|0;ma=dE(c[A>>2]|0,c[A+4>>2]|0,374761413,668265263)|0;A=w;c[A>>2]=ma;c[A+4>>2]=y;}A=c[s>>2]|0;s=w;ma=dE(c[s>>2]|0,c[s+4>>2]|0,c[A>>2]|0,c[A+4>>2]|0)|0;A=w;c[A>>2]=ma;c[A+4>>2]=y;while(1){ta=c[u>>2]|0;if(((c[u>>2]|0)+8|0)>>>0>(c[v>>2]|0)>>>0)break;A=c[t>>2]|0;c[q>>2]=ta;c[r>>2]=A;A=c[r>>2]|0;c[n>>2]=c[q>>2];c[o>>2]=A;c[p>>2]=1;A=(c[o>>2]|0)==1;ma=c[n>>2]|0;if((c[p>>2]|0)==1){s=Hh(ma)|0;B=y;if(A){ua=s;va=B;}else{z=Ih(s,B)|0;ua=z;va=y;}z=m;c[z>>2]=ua;c[z+4>>2]=va;}else{z=ma;ma=c[z>>2]|0;B=c[z+4>>2]|0;if(A){wa=ma;xa=B;}else{A=Ih(ma,B)|0;wa=A;xa=y;}A=m;c[A>>2]=wa;c[A+4>>2]=xa;}A=m;B=Jh(0,0,c[A>>2]|0,c[A+4>>2]|0)|0;A=C;c[A>>2]=B;c[A+4>>2]=y;A=C;B=w;ma=c[B+4>>2]^c[A+4>>2];z=w;c[z>>2]=c[B>>2]^c[A>>2];c[z+4>>2]=ma;ma=w;z=jE(c[ma>>2]|0,c[ma+4>>2]|0,27)|0;ma=y;A=w;B=iE(c[A>>2]|0,c[A+4>>2]|0,37)|0;A=cE(z|B|0,ma|y|0,-2048144761,-1640531535)|0;ma=dE(A|0,y|0,-1028477341,-2048144777)|0;A=w;c[A>>2]=ma;c[A+4>>2]=y;c[u>>2]=(c[u>>2]|0)+8;}if((ta+4|0)>>>0<=(c[v>>2]|0)>>>0){ta=c[t>>2]|0;c[j>>2]=c[u>>2];c[k>>2]=ta;ta=c[k>>2]|0;c[g>>2]=c[j>>2];c[h>>2]=ta;c[i>>2]=1;ta=(c[h>>2]|0)==1;h=c[g>>2]|0;if((c[i>>2]|0)==1){i=Fh(h)|0;if(ta)ya=i;else ya=Gh(i)|0;c[f>>2]=ya;}else{ya=c[h>>2]|0;if(ta)za=ya;else za=Gh(ya)|0;c[f>>2]=za;}za=cE(c[f>>2]|0,0,-2048144761,-1640531535)|0;f=w;ya=c[f+4>>2]^y;ta=w;c[ta>>2]=c[f>>2]^za;c[ta+4>>2]=ya;ya=w;ta=jE(c[ya>>2]|0,c[ya+4>>2]|0,23)|0;ya=y;za=w;f=iE(c[za>>2]|0,c[za+4>>2]|0,41)|0;za=cE(ta|f|0,ya|y|0,668265295,-1028477379)|0;ya=dE(za|0,y|0,-1640531463,374761393)|0;za=w;c[za>>2]=ya;c[za+4>>2]=y;c[u>>2]=(c[u>>2]|0)+4;}while(1){if((c[u>>2]|0)>>>0>=(c[v>>2]|0)>>>0)break;za=cE(d[c[u>>2]>>0]|0,0,374761413,668265263)|0;ya=w;f=c[ya+4>>2]^y;ta=w;c[ta>>2]=c[ya>>2]^za;c[ta+4>>2]=f;f=w;ta=jE(c[f>>2]|0,c[f+4>>2]|0,11)|0;f=y;za=w;ya=iE(c[za>>2]|0,c[za+4>>2]|0,53)|0;za=cE(ta|ya|0,f|y|0,-2048144761,-1640531535)|0;f=w;c[f>>2]=za;c[f+4>>2]=y;c[u>>2]=(c[u>>2]|0)+1;}u=w;v=iE(c[u>>2]|0,c[u+4>>2]|0,33)|0;u=w;f=c[u+4>>2]^y;za=w;c[za>>2]=c[u>>2]^v;c[za+4>>2]=f;f=w;za=cE(c[f>>2]|0,c[f+4>>2]|0,668265295,-1028477379)|0;f=w;c[f>>2]=za;c[f+4>>2]=y;f=w;za=iE(c[f>>2]|0,c[f+4>>2]|0,29)|0;f=w;v=c[f+4>>2]^y;u=w;c[u>>2]=c[f>>2]^za;c[u+4>>2]=v;v=w;u=cE(c[v>>2]|0,c[v+4>>2]|0,-1640531463,374761393)|0;v=w;c[v>>2]=u;c[v+4>>2]=y;v=w;u=c[v+4>>2]|0;za=w;c[za>>2]=c[v>>2]^c[w+4>>2];c[za+4>>2]=u;u=w;w=c[u+4>>2]|0;za=Z;c[za>>2]=c[u>>2];c[za+4>>2]=w;na=Z;oa=na;pa=c[oa>>2]|0;qa=na+4|0;ra=qa;sa=c[ra>>2]|0;y=sa;l=e;return pa|0;}return 0;}function Ph(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Qh(c[d>>2]|0)|0;l=b;return a|0;}function Qh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function Rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+4|0;f=d;c[f>>2]=a;if(c[b>>2]|0){c[e>>2]=qc[c[b>>2]&63](c[b+8>>2]|0,c[f>>2]|0)|0;g=c[e>>2]|0;l=d;return g|0;}else{c[e>>2]=Cy(c[f>>2]|0)|0;g=c[e>>2]|0;l=d;return g|0;}return 0;}function Sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;if(c[b>>2]|0){c[g>>2]=qc[c[b>>2]&63](c[b+8>>2]|0,c[f>>2]|0)|0;oE(c[g>>2]|0,0,c[f>>2]|0)|0;c[e>>2]=c[g>>2];h=c[e>>2]|0;l=d;return h|0;}else{c[e>>2]=Ey(1,c[f>>2]|0)|0;h=c[e>>2]|0;l=d;return h|0;}return 0;}function Th(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=a;if(!(c[e>>2]|0)){l=d;return;}if(c[b+4>>2]|0){xc[c[b+4>>2]&31](c[b+8>>2]|0,c[e>>2]|0);l=d;return;}else{Dy(c[e>>2]|0);l=d;return;}}function Uh(e,f,g,h,i,j){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,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;k=l;l=l+1136|0;m=k+1124|0;n=k+1120|0;o=k+1116|0;p=k+1112|0;q=k+1108|0;r=k+1104|0;s=k+1100|0;t=k+1096|0;u=k+1092|0;v=k+1088|0;w=k+1084|0;x=k+1080|0;y=k+1076|0;z=k+1072|0;A=k;B=k+1068|0;C=k+1064|0;D=k+1060|0;E=k+1056|0;F=k+1052|0;G=k+1048|0;H=k+1044|0;I=k+1128|0;J=k+1040|0;K=k+1036|0;L=k+1032|0;M=k+1028|0;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=j;c[t>>2]=1<>2];c[u>>2]=(c[t>>2]|0)-1;c[v>>2]=c[n>>2];c[w>>2]=(c[v>>2]|0)+4;c[x>>2]=(c[v>>2]|0)+4+((c[q>>2]|0?(c[t>>2]|0)>>>1:1)<<2);c[y>>2]=c[x>>2];c[z>>2]=((c[t>>2]|0)>>>1)+((c[t>>2]|0)>>>3)+3;c[B>>2]=c[r>>2];c[C>>2]=(c[t>>2]|0)-1;if(1<>2]>>>0>(c[s>>2]|0)>>>0){c[m>>2]=-44;N=c[m>>2]|0;l=k;return N|0;}b[(c[w>>2]|0)+-4>>1]=c[q>>2];b[(c[w>>2]|0)+-2>>1]=c[p>>2];c[A>>2]=0;c[D>>2]=1;while(1){if((c[D>>2]|0)>>>0>((c[p>>2]|0)+1|0)>>>0)break;s=c[A+((c[D>>2]|0)-1<<2)>>2]|0;if((b[(c[o>>2]|0)+((c[D>>2]|0)-1<<1)>>1]|0)==-1){c[A+(c[D>>2]<<2)>>2]=s+1;r=(c[D>>2]|0)-1&255;x=c[B>>2]|0;v=c[C>>2]|0;c[C>>2]=v+-1;a[x+v>>0]=r;}else c[A+(c[D>>2]<<2)>>2]=s+(b[(c[o>>2]|0)+((c[D>>2]|0)-1<<1)>>1]|0);c[D>>2]=(c[D>>2]|0)+1;}c[A+((c[p>>2]|0)+1<<2)>>2]=(c[t>>2]|0)+1;c[E>>2]=0;c[F>>2]=0;while(1){if((c[F>>2]|0)>>>0>(c[p>>2]|0)>>>0)break;c[G>>2]=0;while(1){O=c[F>>2]|0;if((c[G>>2]|0)>=(b[(c[o>>2]|0)+(c[F>>2]<<1)>>1]|0))break;a[(c[B>>2]|0)+(c[E>>2]|0)>>0]=O;c[E>>2]=(c[E>>2]|0)+(c[z>>2]|0)&c[u>>2];while(1){if((c[E>>2]|0)>>>0<=(c[C>>2]|0)>>>0)break;c[E>>2]=(c[E>>2]|0)+(c[z>>2]|0)&c[u>>2];}c[G>>2]=(c[G>>2]|0)+1;}c[F>>2]=O+1;}if(c[E>>2]|0){c[m>>2]=-1;N=c[m>>2]|0;l=k;return N|0;}c[H>>2]=0;while(1){if((c[H>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;a[I>>0]=a[(c[B>>2]|0)+(c[H>>2]|0)>>0]|0;E=(c[t>>2]|0)+(c[H>>2]|0)&65535;O=c[w>>2]|0;F=A+(d[I>>0]<<2)|0;G=c[F>>2]|0;c[F>>2]=G+1;b[O+(G<<1)>>1]=E;c[H>>2]=(c[H>>2]|0)+1;}c[J>>2]=0;c[K>>2]=0;while(1){if((c[K>>2]|0)>>>0>(c[p>>2]|0)>>>0)break;switch(b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]|0){case 0:break;case 1:case-1:{c[(c[y>>2]|0)+(c[K>>2]<<3)+4>>2]=(c[q>>2]<<16)-(1<>2]);c[(c[y>>2]|0)+(c[K>>2]<<3)>>2]=(c[J>>2]|0)-1;c[J>>2]=(c[J>>2]|0)+1;break;}default:{c[L>>2]=(c[q>>2]|0)-(Vh((b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]|0)-1|0)|0);c[M>>2]=b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]<>2];c[(c[y>>2]|0)+(c[K>>2]<<3)+4>>2]=(c[L>>2]<<16)-(c[M>>2]|0);c[(c[y>>2]|0)+(c[K>>2]<<3)>>2]=(c[J>>2]|0)-(b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]|0);c[J>>2]=(c[J>>2]|0)+(b[(c[o>>2]|0)+(c[K>>2]<<1)>>1]|0);}}c[K>>2]=(c[K>>2]|0)+1;}c[m>>2]=0;N=c[m>>2]|0;l=k;return N|0;}function Vh(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Wh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=((N((c[e>>2]|0)+1|0,c[f>>2]|0)|0)>>>3)+3;l=d;return(c[e>>2]|0?c[g>>2]|0:512)|0;}function Xh(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,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;do{if((c[n>>2]|0)>>>0<=12){if((c[n>>2]|0)>>>0<5){c[h>>2]=-1;break;}f=c[j>>2]|0;e=f>>>0<(Wh(c[m>>2]|0,c[n>>2]|0)|0)>>>0;f=c[i>>2]|0;d=c[j>>2]|0;b=c[k>>2]|0;a=c[m>>2]|0;o=c[n>>2]|0;if(e){c[h>>2]=Yh(f,d,b,a,o,0)|0;break;}else{c[h>>2]=Yh(f,d,b,a,o,1)|0;break;}}else c[h>>2]=-44;}while(0);l=g;return c[h>>2]|0;}function Yh(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,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;j=l;l=l+96|0;k=j+80|0;m=j+76|0;n=j+72|0;o=j+68|0;p=j+64|0;q=j+60|0;r=j+56|0;s=j+52|0;t=j+48|0;u=j+44|0;v=j+40|0;w=j+36|0;x=j+32|0;y=j+28|0;z=j+24|0;A=j+20|0;B=j+16|0;C=j+12|0;D=j+8|0;E=j+4|0;F=j;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[m>>2];c[t>>2]=c[s>>2];c[u>>2]=(c[s>>2]|0)+(c[n>>2]|0);c[w>>2]=1<>2];c[B>>2]=0;c[C>>2]=0;c[z>>2]=0;c[A>>2]=0;c[z>>2]=(c[z>>2]|0)+((c[q>>2]|0)-5<>2]);c[A>>2]=(c[A>>2]|0)+4;c[x>>2]=(c[w>>2]|0)+1;c[y>>2]=c[w>>2];c[v>>2]=(c[q>>2]|0)+1;a:while(1){if((c[x>>2]|0)<=1){G=34;break;}if(c[C>>2]|0){c[D>>2]=c[B>>2];while(1){if(!((b[(c[o>>2]|0)+(c[B>>2]<<1)>>1]|0)!=0^1))break;c[B>>2]=(c[B>>2]|0)+1;}while(1){if((c[B>>2]|0)>>>0<((c[D>>2]|0)+24|0)>>>0)break;c[D>>2]=(c[D>>2]|0)+24;c[z>>2]=(c[z>>2]|0)+(65535<>2]);if((c[r>>2]|0)==0?(c[t>>2]|0)>>>0>((c[u>>2]|0)+-2|0)>>>0:0){G=11;break a;}a[c[t>>2]>>0]=c[z>>2];a[(c[t>>2]|0)+1>>0]=(c[z>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)+2;c[z>>2]=(c[z>>2]|0)>>>16;}while(1){if((c[B>>2]|0)>>>0<((c[D>>2]|0)+3|0)>>>0)break;c[D>>2]=(c[D>>2]|0)+3;c[z>>2]=(c[z>>2]|0)+(3<>2]);c[A>>2]=(c[A>>2]|0)+2;}c[z>>2]=(c[z>>2]|0)+((c[B>>2]|0)-(c[D>>2]|0)<>2]);c[A>>2]=(c[A>>2]|0)+2;if((c[A>>2]|0)>16){if((c[r>>2]|0)==0?(c[t>>2]|0)>>>0>((c[u>>2]|0)+-2|0)>>>0:0){G=19;break;}a[c[t>>2]>>0]=c[z>>2];a[(c[t>>2]|0)+1>>0]=(c[z>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)+2;c[z>>2]=(c[z>>2]|0)>>>16;c[A>>2]=(c[A>>2]|0)-16;}}q=c[o>>2]|0;w=c[B>>2]|0;c[B>>2]=w+1;c[E>>2]=b[q+(w<<1)>>1];c[F>>2]=(c[y>>2]<<1)-1-(c[x>>2]|0);w=c[E>>2]|0;c[x>>2]=(c[x>>2]|0)-((c[E>>2]|0)<0?0-w|0:w);c[E>>2]=(c[E>>2]|0)+1;if((c[E>>2]|0)>=(c[y>>2]|0))c[E>>2]=(c[E>>2]|0)+(c[F>>2]|0);c[z>>2]=(c[z>>2]|0)+(c[E>>2]<>2]);c[A>>2]=(c[A>>2]|0)+(c[v>>2]|0);c[A>>2]=(c[A>>2]|0)-((c[E>>2]|0)<(c[F>>2]|0)&1);c[C>>2]=(c[E>>2]|0)==1&1;if((c[x>>2]|0)<1){G=24;break;}while(1){if((c[x>>2]|0)>=(c[y>>2]|0))break;c[v>>2]=(c[v>>2]|0)+-1;c[y>>2]=c[y>>2]>>1;}if((c[A>>2]|0)>16){if((c[r>>2]|0)==0?(c[t>>2]|0)>>>0>((c[u>>2]|0)+-2|0)>>>0:0){G=31;break;}a[c[t>>2]>>0]=c[z>>2];a[(c[t>>2]|0)+1>>0]=(c[z>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)+2;c[z>>2]=(c[z>>2]|0)>>>16;c[A>>2]=(c[A>>2]|0)-16;}}if((G|0)==11){c[k>>2]=-70;H=c[k>>2]|0;l=j;return H|0;}else if((G|0)==19){c[k>>2]=-70;H=c[k>>2]|0;l=j;return H|0;}else if((G|0)==24){c[k>>2]=-1;H=c[k>>2]|0;l=j;return H|0;}else if((G|0)==31){c[k>>2]=-70;H=c[k>>2]|0;l=j;return H|0;}else if((G|0)==34){if((c[r>>2]|0)==0?(c[t>>2]|0)>>>0>((c[u>>2]|0)+-2|0)>>>0:0){c[k>>2]=-70;H=c[k>>2]|0;l=j;return H|0;}a[c[t>>2]>>0]=c[z>>2];a[(c[t>>2]|0)+1>>0]=(c[z>>2]|0)>>>8;c[t>>2]=(c[t>>2]|0)+(((c[A>>2]|0)+7|0)/8|0);if((c[B>>2]|0)>>>0>((c[p>>2]|0)+1|0)>>>0){c[k>>2]=-1;H=c[k>>2]|0;l=j;return H|0;}else{c[k>>2]=(c[t>>2]|0)-(c[s>>2]|0);H=c[k>>2]|0;l=j;return H|0;}}return 0;}function Zh(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+48|0;h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;m=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[k>>2];c[o>>2]=(c[n>>2]|0)+(c[m>>2]|0);c[p>>2]=c[c[j>>2]>>2];c[q>>2]=0;oE(c[i>>2]|0,0,(c[p>>2]|0)+1<<2|0)|0;if(!(c[m>>2]|0)){c[c[j>>2]>>2]=0;c[h>>2]=0;s=c[h>>2]|0;l=g;return s|0;}while(1){if((c[n>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;m=c[i>>2]|0;k=c[n>>2]|0;c[n>>2]=k+1;f=m+((d[k>>0]|0)<<2)|0;c[f>>2]=(c[f>>2]|0)+1;}while(1){t=c[p>>2]|0;if(!((c[(c[i>>2]|0)+(c[p>>2]<<2)>>2]|0)!=0^1))break;c[p>>2]=t+-1;}c[c[j>>2]>>2]=t;c[r>>2]=0;while(1){if((c[r>>2]|0)>>>0>(c[p>>2]|0)>>>0)break;if((c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]|0)>>>0>(c[q>>2]|0)>>>0)c[q>>2]=c[(c[i>>2]|0)+(c[r>>2]<<2)>>2];c[r>>2]=(c[r>>2]|0)+1;}c[h>>2]=c[q>>2];s=c[h>>2]|0;l=g;return s|0;}function _h(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,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;f=c[i>>2]|0;i=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;if((c[m>>2]|0)>>>0<1500){c[h>>2]=Zh(f,i,j,k)|0;o=c[h>>2]|0;l=g;return o|0;}else{c[h>>2]=$h(f,i,j,k,0,c[n>>2]|0)|0;o=c[h>>2]|0;l=g;return o|0;}return 0;}function $h(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;i=l;l=l+80|0;j=i+72|0;k=i+68|0;m=i+64|0;n=i+60|0;o=i+56|0;p=i+52|0;q=i+48|0;r=i+44|0;s=i+40|0;t=i+36|0;u=i+32|0;v=i+28|0;w=i+24|0;x=i+20|0;y=i+16|0;z=i+12|0;A=i+8|0;B=i+4|0;C=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+(c[o>>2]|0);c[t>>2]=c[c[m>>2]>>2];c[u>>2]=0;c[v>>2]=c[q>>2];c[w>>2]=(c[v>>2]|0)+1024;c[x>>2]=(c[w>>2]|0)+1024;c[y>>2]=(c[x>>2]|0)+1024;oE(c[q>>2]|0,0,4096)|0;if(!(c[o>>2]|0)){oE(c[k>>2]|0,0,(c[t>>2]|0)+1|0)|0;c[c[m>>2]>>2]=0;c[j>>2]=0;D=c[j>>2]|0;l=i;return D|0;}if(!(c[t>>2]|0))c[t>>2]=255;c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;while(1){if((c[r>>2]|0)>>>0>=((c[s>>2]|0)+-15|0)>>>0)break;c[A>>2]=c[z>>2];c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;o=(c[v>>2]|0)+((c[A>>2]&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[w>>2]|0)+(((c[A>>2]|0)>>>8&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[x>>2]|0)+(((c[A>>2]|0)>>>16&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[y>>2]|0)+((c[A>>2]|0)>>>24<<2)|0;c[o>>2]=(c[o>>2]|0)+1;c[A>>2]=c[z>>2];c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;o=(c[v>>2]|0)+((c[A>>2]&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[w>>2]|0)+(((c[A>>2]|0)>>>8&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[x>>2]|0)+(((c[A>>2]|0)>>>16&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[y>>2]|0)+((c[A>>2]|0)>>>24<<2)|0;c[o>>2]=(c[o>>2]|0)+1;c[A>>2]=c[z>>2];c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;o=(c[v>>2]|0)+((c[A>>2]&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[w>>2]|0)+(((c[A>>2]|0)>>>8&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[x>>2]|0)+(((c[A>>2]|0)>>>16&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[y>>2]|0)+((c[A>>2]|0)>>>24<<2)|0;c[o>>2]=(c[o>>2]|0)+1;c[A>>2]=c[z>>2];c[z>>2]=ai(c[r>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+4;o=(c[v>>2]|0)+((c[A>>2]&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[w>>2]|0)+(((c[A>>2]|0)>>>8&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[x>>2]|0)+(((c[A>>2]|0)>>>16&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=(c[y>>2]|0)+((c[A>>2]|0)>>>24<<2)|0;c[o>>2]=(c[o>>2]|0)+1;}c[r>>2]=(c[r>>2]|0)+-4;while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;A=c[v>>2]|0;z=c[r>>2]|0;c[r>>2]=z+1;o=A+((d[z>>0]|0)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;}a:do{if(c[p>>2]|0){c[B>>2]=255;while(1){if((c[B>>2]|0)>>>0<=(c[t>>2]|0)>>>0)break a;r=(c[v>>2]|0)+(c[B>>2]<<2)|0;c[r>>2]=(c[r>>2]|0)+((c[(c[w>>2]|0)+(c[B>>2]<<2)>>2]|0)+(c[(c[x>>2]|0)+(c[B>>2]<<2)>>2]|0)+(c[(c[y>>2]|0)+(c[B>>2]<<2)>>2]|0));if(c[(c[v>>2]|0)+(c[B>>2]<<2)>>2]|0)break;c[B>>2]=(c[B>>2]|0)+-1;}c[j>>2]=-48;D=c[j>>2]|0;l=i;return D|0;}}while(0);if((c[t>>2]|0)>>>0>255)c[t>>2]=255;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>(c[t>>2]|0)>>>0)break;c[(c[k>>2]|0)+(c[C>>2]<<2)>>2]=(c[(c[v>>2]|0)+(c[C>>2]<<2)>>2]|0)+(c[(c[w>>2]|0)+(c[C>>2]<<2)>>2]|0)+(c[(c[x>>2]|0)+(c[C>>2]<<2)>>2]|0)+(c[(c[y>>2]|0)+(c[C>>2]<<2)>>2]|0);if((c[(c[k>>2]|0)+(c[C>>2]<<2)>>2]|0)>>>0>(c[u>>2]|0)>>>0)c[u>>2]=c[(c[k>>2]|0)+(c[C>>2]<<2)>>2];c[C>>2]=(c[C>>2]|0)+1;}while(1){E=c[t>>2]|0;if(!((c[(c[k>>2]|0)+(c[t>>2]<<2)>>2]|0)!=0^1))break;c[t>>2]=E+-1;}c[c[m>>2]>>2]=E;c[j>>2]=c[u>>2];D=c[j>>2]|0;l=i;return D|0;}function ai(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function bi(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,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[c[j>>2]>>2]|0)>>>0<255){c[h>>2]=$h(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,1,c[n>>2]|0)|0;o=c[h>>2]|0;l=g;return o|0;}else{c[c[j>>2]>>2]=255;c[h>>2]=_h(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;o=c[h>>2]|0;l=g;return o|0;}return 0;}function ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Vh((c[h>>2]|0)-1|0)|0;c[k>>2]=e-(c[j>>2]|0);c[m>>2]=c[g>>2];c[n>>2]=di(c[h>>2]|0,c[i>>2]|0)|0;if(!(c[m>>2]|0))c[m>>2]=11;if((c[k>>2]|0)>>>0<(c[m>>2]|0)>>>0)c[m>>2]=c[k>>2];if((c[n>>2]|0)>>>0>(c[m>>2]|0)>>>0)c[m>>2]=c[n>>2];if((c[m>>2]|0)>>>0<5)c[m>>2]=5;if((c[m>>2]|0)>>>0<=12){o=c[m>>2]|0;l=f;return o|0;}c[m>>2]=12;o=c[m>>2]|0;l=f;return o|0;}function di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(Vh((c[e>>2]|0)-1|0)|0)+1;c[h>>2]=(Vh(c[f>>2]|0)|0)+2;c[i>>2]=(c[g>>2]|0)>>>0<(c[h>>2]|0)>>>0?c[g>>2]|0:c[h>>2]|0;l=d;return c[i>>2]|0;}function ei(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=ci(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,2)|0;l=e;return d|0;}function fi(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0;h=l;l=l+80|0;i=h+72|0;j=h+68|0;k=h+64|0;m=h+60|0;n=h+56|0;o=h+52|0;p=h+24|0;q=h+16|0;r=h+8|0;s=h+48|0;t=h+44|0;u=h+40|0;v=h+78|0;w=h+36|0;x=h+76|0;z=h;A=h+32|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if(!(c[k>>2]|0))c[k>>2]=11;if((c[k>>2]|0)>>>0<5){c[i>>2]=-1;B=c[i>>2]|0;l=h;return B|0;}if((c[k>>2]|0)>>>0>12){c[i>>2]=-44;B=c[i>>2]|0;l=h;return B|0;}g=c[k>>2]|0;if(g>>>0<(di(c[n>>2]|0,c[o>>2]|0)|0)>>>0){c[i>>2]=-1;B=c[i>>2]|0;l=h;return B|0;}g=p;c[g>>2]=62-(c[k>>2]|0);c[g+4>>2]=0;g=hE(0,1073741824,c[n>>2]|0,0)|0;f=q;c[f>>2]=g;c[f+4>>2]=y;f=p;g=eE(c[f>>2]|0,c[f+4>>2]|0,20,0)|0;f=jE(1,0,g|0)|0;g=r;c[g>>2]=f;c[g+4>>2]=y;c[s>>2]=1<>2];c[u>>2]=0;b[v>>1]=0;c[w>>2]=(c[n>>2]|0)>>>(c[k>>2]|0);c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0)==(c[n>>2]|0)){C=12;break;}do{if(!(c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0))b[(c[j>>2]|0)+(c[t>>2]<<1)>>1]=0;else{if((c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0)>>>0<=(c[w>>2]|0)>>>0){b[(c[j>>2]|0)+(c[t>>2]<<1)>>1]=-1;c[s>>2]=(c[s>>2]|0)+-1;break;}g=q;f=cE(c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0,0,c[g>>2]|0,c[g+4>>2]|0)|0;g=iE(f|0,y|0,c[p>>2]|0)|0;b[x>>1]=g;if((b[x>>1]|0)<8){g=r;f=cE(c[g>>2]|0,c[g+4>>2]|0,c[192+(b[x>>1]<<2)>>2]|0,0)|0;g=z;c[g>>2]=f;c[g+4>>2]=y;g=q;f=cE(c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]|0,0,c[g>>2]|0,c[g+4>>2]|0)|0;g=y;e=b[x>>1]|0;d=jE(e|0,((e|0)<0)<<31>>31|0,c[p>>2]|0)|0;e=eE(f|0,g|0,d|0,y|0)|0;d=y;g=z;f=c[g+4>>2]|0;b[x>>1]=(b[x>>1]|0)+((d>>>0>f>>>0|((d|0)==(f|0)?e>>>0>(c[g>>2]|0)>>>0:0))&1);}if((b[x>>1]|0)>(b[v>>1]|0)){b[v>>1]=b[x>>1]|0;c[u>>2]=c[t>>2];}b[(c[j>>2]|0)+(c[t>>2]<<1)>>1]=b[x>>1]|0;c[s>>2]=(c[s>>2]|0)-(b[x>>1]|0);}}while(0);c[t>>2]=(c[t>>2]|0)+1;}if((C|0)==12){c[i>>2]=0;B=c[i>>2]|0;l=h;return B|0;}if((0-(c[s>>2]|0)|0)>=(b[(c[j>>2]|0)+(c[u>>2]<<1)>>1]>>1|0)){c[A>>2]=gi(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;if(hi(c[A>>2]|0)|0){c[i>>2]=c[A>>2];B=c[i>>2]|0;l=h;return B|0;}}else{A=(c[j>>2]|0)+(c[u>>2]<<1)|0;b[A>>1]=(b[A>>1]|0)+((c[s>>2]&65535)<<16>>16);}c[i>>2]=c[k>>2];B=c[i>>2]|0;l=h;return B|0;}function gi(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;h=l;l=l+112|0;i=h+100|0;j=h+96|0;k=h+92|0;m=h+88|0;n=h+84|0;o=h+80|0;p=h+76|0;q=h+72|0;r=h+68|0;s=h+64|0;t=h+60|0;u=h+56|0;v=h+52|0;w=h+32|0;x=h+24|0;z=h+16|0;A=h+8|0;B=h;C=h+48|0;D=h+44|0;E=h+40|0;c[j>>2]=a;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;b[h+104>>1]=-2;c[q>>2]=0;c[s>>2]=(c[n>>2]|0)>>>(c[k>>2]|0);c[t>>2]=((c[n>>2]|0)*3|0)>>>((c[k>>2]|0)+1|0);c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;do{if(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0){if((c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0)>>>0<=(c[s>>2]|0)>>>0){b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=-1;c[q>>2]=(c[q>>2]|0)+1;c[n>>2]=(c[n>>2]|0)-(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0);break;}g=(c[j>>2]|0)+(c[p>>2]<<1)|0;if((c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0)>>>0<=(c[t>>2]|0)>>>0){b[g>>1]=1;c[q>>2]=(c[q>>2]|0)+1;c[n>>2]=(c[n>>2]|0)-(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0);break;}else{b[g>>1]=-2;break;}}else b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=0;}while(0);c[p>>2]=(c[p>>2]|0)+1;}c[r>>2]=(1<>2])-(c[q>>2]|0);if((((c[n>>2]|0)>>>0)/((c[r>>2]|0)>>>0)|0)>>>0>(c[t>>2]|0)>>>0){c[t>>2]=(((c[n>>2]|0)*3|0)>>>0)/(c[r>>2]<<1>>>0)|0;c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]|0)==-2?(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0)>>>0<=(c[t>>2]|0)>>>0:0){b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=1;c[q>>2]=(c[q>>2]|0)+1;c[n>>2]=(c[n>>2]|0)-(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0);}c[p>>2]=(c[p>>2]|0)+1;}c[r>>2]=(1<>2])-(c[q>>2]|0);}if((c[q>>2]|0)==((c[o>>2]|0)+1|0)){c[u>>2]=0;c[v>>2]=0;c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>(c[o>>2]|0)>>>0)break;if((c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0)>>>0>(c[v>>2]|0)>>>0){c[u>>2]=c[p>>2];c[v>>2]=c[(c[m>>2]|0)+(c[p>>2]<<2)>>2];}c[p>>2]=(c[p>>2]|0)+1;}v=(c[j>>2]|0)+(c[u>>2]<<1)|0;b[v>>1]=(b[v>>1]|0)+((c[r>>2]&65535)<<16>>16);c[i>>2]=0;F=c[i>>2]|0;l=h;return F|0;}if(!(c[n>>2]|0)){c[p>>2]=0;while(1){if((c[r>>2]|0)>>>0<=0)break;if((b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]|0)>0){c[r>>2]=(c[r>>2]|0)+-1;v=(c[j>>2]|0)+(c[p>>2]<<1)|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16;}c[p>>2]=(((c[p>>2]|0)+1|0)>>>0)%(((c[o>>2]|0)+1|0)>>>0)|0;}c[i>>2]=0;F=c[i>>2]|0;l=h;return F|0;}v=w;c[v>>2]=62-(c[k>>2]|0);c[v+4>>2]=0;v=w;k=eE(c[v>>2]|0,c[v+4>>2]|0,1,0)|0;v=jE(1,0,k|0)|0;k=eE(v|0,y|0,1,0)|0;v=x;c[v>>2]=k;c[v+4>>2]=y;v=jE(1,0,c[w>>2]|0)|0;k=cE(v|0,y|0,c[r>>2]|0,0)|0;r=x;v=dE(k|0,y|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=hE(v|0,y|0,c[n>>2]|0,0)|0;n=z;c[n>>2]=r;c[n+4>>2]=y;n=x;x=c[n+4>>2]|0;r=A;c[r>>2]=c[n>>2];c[r+4>>2]=x;c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>(c[o>>2]|0)>>>0){G=40;break;}if((b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]|0)==-2){x=A;r=c[x>>2]|0;n=c[x+4>>2]|0;x=z;v=cE(c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]|0,0,c[x>>2]|0,c[x+4>>2]|0)|0;x=dE(r|0,n|0,v|0,y|0)|0;v=B;c[v>>2]=x;c[v+4>>2]=y;v=A;x=iE(c[v>>2]|0,c[v+4>>2]|0,c[w>>2]|0)|0;c[C>>2]=x;x=B;v=iE(c[x>>2]|0,c[x+4>>2]|0,c[w>>2]|0)|0;c[D>>2]=v;c[E>>2]=(c[D>>2]|0)-(c[C>>2]|0);if((c[E>>2]|0)>>>0<1){G=37;break;}b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=c[E>>2];v=B;x=c[v+4>>2]|0;n=A;c[n>>2]=c[v>>2];c[n+4>>2]=x;}c[p>>2]=(c[p>>2]|0)+1;}if((G|0)==37){c[i>>2]=-1;F=c[i>>2]|0;l=h;return F|0;}else if((G|0)==40){c[i>>2]=0;F=c[i>>2]|0;l=h;return F|0;}return 0;}function hi(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function ii(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;g=l;l=l+32|0;h=g+16|0;i=g+20|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[h>>2]=e;a[i>>0]=f;c[j>>2]=c[h>>2];c[k>>2]=(c[j>>2]|0)+4;c[m>>2]=(c[j>>2]|0)+8;c[n>>2]=c[m>>2];b[(c[k>>2]|0)+-4>>1]=0;b[(c[k>>2]|0)+-2>>1]=d[i>>0]|0;b[c[k>>2]>>1]=0;b[(c[k>>2]|0)+2>>1]=0;c[(c[n>>2]|0)+((d[i>>0]|0)<<3)+4>>2]=0;c[(c[n>>2]|0)+((d[i>>0]|0)<<3)>>2]=0;l=g;return 0;}function ji(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,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=(c[j>>2]|0)>>>0>=((c[m>>2]|0)+((c[m>>2]|0)>>>7)|0)>>>0&1;f=c[i>>2]|0;i=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;if(c[o>>2]|0){c[h>>2]=ki(f,i,j,k,m,1)|0;p=c[h>>2]|0;l=g;return p|0;}else{c[h>>2]=ki(f,i,j,k,m,0)|0;p=c[h>>2]|0;l=g;return p|0;}return 0;}function ki(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;i=l;l=l+112|0;j=i+96|0;k=i+92|0;m=i+88|0;n=i+84|0;o=i+80|0;p=i+76|0;q=i+72|0;r=i+68|0;s=i+64|0;t=i+60|0;u=i+40|0;v=i+24|0;w=i+8|0;x=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)+(c[o>>2]|0);c[t>>2]=c[s>>2];if((c[o>>2]|0)>>>0<=2){c[j>>2]=0;y=c[j>>2]|0;l=i;return y|0;}c[x>>2]=li(u,c[k>>2]|0,c[m>>2]|0)|0;if(hi(c[x>>2]|0)|0){c[j>>2]=0;y=c[j>>2]|0;l=i;return y|0;}x=(c[o>>2]&1|0)!=0;m=c[p>>2]|0;k=(c[t>>2]|0)+-1|0;c[t>>2]=k;s=d[k>>0]|0;do{if(x){mi(v,m,s);k=c[p>>2]|0;n=(c[t>>2]|0)+-1|0;c[t>>2]=n;mi(w,k,d[n>>0]|0);n=(c[t>>2]|0)+-1|0;c[t>>2]=n;ni(u,v,d[n>>0]|0);if(c[q>>2]|0){oi(u);break;}else{pi(u);break;}}else{mi(w,m,s);n=c[p>>2]|0;k=(c[t>>2]|0)+-1|0;c[t>>2]=k;mi(v,n,d[k>>0]|0);}}while(0);c[o>>2]=(c[o>>2]|0)-2;while(1){if((c[t>>2]|0)>>>0<=(c[r>>2]|0)>>>0)break;o=(c[t>>2]|0)+-1|0;c[t>>2]=o;ni(u,w,d[o>>0]|0);o=(c[t>>2]|0)+-1|0;c[t>>2]=o;ni(u,v,d[o>>0]|0);if(c[q>>2]|0)oi(u);else pi(u);}qi(u,w);qi(u,v);c[j>>2]=ri(u)|0;y=c[j>>2]|0;l=i;return y|0;}function li(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[c[g>>2]>>2]=0;c[(c[g>>2]|0)+4>>2]=0;c[(c[g>>2]|0)+8>>2]=c[h>>2];c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+8>>2];c[(c[g>>2]|0)+16>>2]=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]|0)+-4;if((c[i>>2]|0)>>>0<=4){c[f>>2]=-70;j=c[f>>2]|0;l=e;return j|0;}else{c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function mi(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;Di(c[g>>2]|0,c[h>>2]|0);h=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]<<3)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[k>>2]=c[(c[g>>2]|0)+4>>2];c[m>>2]=((c[j+4>>2]|0)+32768|0)>>>16;c[c[g>>2]>>2]=(c[m>>2]<<16)-(c[j+4>>2]|0);c[c[g>>2]>>2]=e[(c[k>>2]|0)+((c[c[g>>2]>>2]>>c[m>>2])+(c[j>>2]|0)<<1)>>1];l=f;return;}function ni(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=(c[(c[h>>2]|0)+8>>2]|0)+(c[i>>2]<<3)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[k>>2]=c[(c[h>>2]|0)+4>>2];c[m>>2]=((c[c[h>>2]>>2]|0)+(c[j+4>>2]|0)|0)>>>16;ti(c[g>>2]|0,c[c[h>>2]>>2]|0,c[m>>2]|0);c[c[h>>2]>>2]=e[(c[k>>2]|0)+((c[c[h>>2]>>2]>>c[m>>2])+(c[j>>2]|0)<<1)>>1];l=f;return;}function oi(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[(c[d>>2]|0)+4>>2]|0)>>>3;ui(c[(c[d>>2]|0)+12>>2]|0,c[c[d>>2]>>2]|0);a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[e>>2]|0);a=(c[d>>2]|0)+4|0;c[a>>2]=c[a>>2]&7;a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)>>>(c[e>>2]<<3);l=b;return;}function pi(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[(c[d>>2]|0)+4>>2]|0)>>>3;ui(c[(c[d>>2]|0)+12>>2]|0,c[c[d>>2]>>2]|0);a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[e>>2]|0);if((c[(c[d>>2]|0)+12>>2]|0)>>>0>(c[(c[d>>2]|0)+16>>2]|0)>>>0)c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+16>>2];a=(c[d>>2]|0)+4|0;c[a>>2]=c[a>>2]&7;a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)>>>(c[e>>2]<<3);l=b;return;}function qi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;ti(c[e>>2]|0,c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+12>>2]|0);pi(c[e>>2]|0);l=d;return;}function ri(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;si(c[e>>2]|0,1,1);pi(c[e>>2]|0);if((c[(c[e>>2]|0)+12>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{c[d>>2]=(c[(c[e>>2]|0)+12>>2]|0)-(c[(c[e>>2]|0)+8>>2]|0)+((c[(c[e>>2]|0)+4>>2]|0)>>>0>0&1);f=c[d>>2]|0;l=b;return f|0;}return 0;}function si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|c[g>>2]<>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function ti(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|(c[g>>2]&c[2800+(c[h>>2]<<2)>>2])<>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function ui(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(vi()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){wi(a,e);l=d;return;}else{xi(a,e,0);l=d;return;}}function vi(){return 1;}function wi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(yi()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){Bi(a,e);l=d;return;}else{Bi(a,Ci(e)|0);l=d;return;}}function xi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=(yi()|0)!=0;a=c[f>>2]|0;f=g;g=c[f>>2]|0;b=c[f+4>>2]|0;if(d){zi(a,g,b);l=e;return;}else{d=Ai(g,b)|0;zi(a,d,y);l=e;return;}}function yi(){return d[11936]|0|0;}function zi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f+8|0;h=f;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;h=c[e>>2]|0;b=c[e+4>>2]|0;e=c[g>>2]|0;g=e;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;h=e+4|0;a[h>>0]=b;a[h+1>>0]=b>>8;a[h+2>>0]=b>>16;a[h+3>>0]=b>>24;l=f;return;}function Ai(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Bi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[g>>2]|0;g=c[f>>2]|0;a[g>>0]=d;a[g+1>>0]=d>>8;a[g+2>>0]=d>>16;a[g+3>>0]=d>>24;l=e;return;}function Ci(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[f>>2];c[h>>2]=c[g>>2];c[i>>2]=(Ei(c[g>>2]|0)|0)&65535;c[c[e>>2]>>2]=1<>2];c[(c[e>>2]|0)+4>>2]=(c[h>>2]|0)+4;if(c[i>>2]|0)j=1<<(c[i>>2]|0)-1;else j=1;c[(c[e>>2]|0)+8>>2]=(c[f>>2]|0)+4+(j<<2);c[(c[e>>2]|0)+12>>2]=c[i>>2];l=d;return;}function Ei(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Fi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=ci(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,1)|0;l=e;return d|0;}function Gi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;f=l;l=l+464|0;g=f+452|0;h=f+448|0;i=f+444|0;j=f+440|0;k=f+436|0;m=f+432|0;n=f+428|0;o=f+424|0;p=f+420|0;q=f+416|0;r=f+160|0;s=f+32|0;t=f;u=f+412|0;v=f+408|0;w=f+404|0;x=f+400|0;y=f+396|0;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[h>>2];c[n>>2]=c[m>>2];c[o>>2]=(c[m>>2]|0)+(c[i>>2]|0);c[p>>2]=12;c[q>>2]=6;if((c[k>>2]|0)>>>0<=1){c[g>>2]=0;z=c[g>>2]|0;l=f;return z|0;}c[u>>2]=Zh(s,p,c[j>>2]|0,c[k>>2]|0)|0;i=(Hi(c[u>>2]|0)|0)!=0;h=c[u>>2]|0;if(i){c[g>>2]=h;z=c[g>>2]|0;l=f;return z|0;}if((h|0)==(c[k>>2]|0)){c[g>>2]=1;z=c[g>>2]|0;l=f;return z|0;}if((c[u>>2]|0)==1){c[g>>2]=0;z=c[g>>2]|0;l=f;return z|0;}c[q>>2]=ei(c[q>>2]|0,c[k>>2]|0,c[p>>2]|0)|0;c[v>>2]=fi(t,c[q>>2]|0,s,c[k>>2]|0,c[p>>2]|0)|0;if(Hi(c[v>>2]|0)|0){c[g>>2]=c[v>>2];z=c[g>>2]|0;l=f;return z|0;}c[w>>2]=Xh(c[n>>2]|0,(c[o>>2]|0)-(c[n>>2]|0)|0,t,c[p>>2]|0,c[q>>2]|0)|0;v=(Hi(c[w>>2]|0)|0)!=0;s=c[w>>2]|0;if(v){c[g>>2]=s;z=c[g>>2]|0;l=f;return z|0;}c[n>>2]=(c[n>>2]|0)+s;c[x>>2]=Uh(r,t,c[p>>2]|0,c[q>>2]|0,f+96|0,64)|0;if(Hi(c[x>>2]|0)|0){c[g>>2]=c[x>>2];z=c[g>>2]|0;l=f;return z|0;}c[y>>2]=ji(c[n>>2]|0,(c[o>>2]|0)-(c[n>>2]|0)|0,c[j>>2]|0,c[k>>2]|0,r)|0;r=(Hi(c[y>>2]|0)|0)!=0;k=c[y>>2]|0;if(r){c[g>>2]=k;z=c[g>>2]|0;l=f;return z|0;}if(!k){c[g>>2]=0;z=c[g>>2]|0;l=f;return z|0;}else{c[n>>2]=(c[n>>2]|0)+(c[y>>2]|0);c[g>>2]=(c[n>>2]|0)-(c[m>>2]|0);z=c[g>>2]|0;l=f;return z|0;}return 0;}function Hi(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function Ii(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=l;l=l+320|0;j=i+288|0;k=i+284|0;m=i+280|0;n=i+276|0;o=i+272|0;p=i+268|0;q=i+292|0;r=i;s=i+264|0;t=i+260|0;u=i+256|0;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[s>>2]=c[k>>2];if((c[o>>2]|0)>>>0>255){c[j>>2]=-46;v=c[j>>2]|0;l=i;return v|0;}a[q>>0]=0;c[t>>2]=1;while(1){if((c[t>>2]|0)>>>0>=((c[p>>2]|0)+1|0)>>>0)break;a[q+(c[t>>2]|0)>>0]=(c[p>>2]|0)+1-(c[t>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;a[r+(c[t>>2]|0)>>0]=a[q+(d[(c[n>>2]|0)+(c[t>>2]<<2)+2>>0]|0)>>0]|0;c[t>>2]=(c[t>>2]|0)+1;}c[u>>2]=Gi((c[s>>2]|0)+1|0,(c[m>>2]|0)-1|0,r,c[o>>2]|0)|0;n=(Hi(c[u>>2]|0)|0)!=0;q=c[u>>2]|0;if(n){c[j>>2]=q;v=c[j>>2]|0;l=i;return v|0;}if((q>>>0>1?(c[u>>2]|0)>>>0<(((c[o>>2]|0)>>>0)/2|0)>>>0:0)|0){a[c[s>>2]>>0]=c[u>>2];c[j>>2]=(c[u>>2]|0)+1;v=c[j>>2]|0;l=i;return v|0;}if((c[o>>2]|0)>>>0>128){c[j>>2]=-1;v=c[j>>2]|0;l=i;return v|0;}if((((((c[o>>2]|0)+1|0)>>>0)/2|0)+1|0)>>>0>(c[m>>2]|0)>>>0){c[j>>2]=-70;v=c[j>>2]|0;l=i;return v|0;}a[c[s>>2]>>0]=128+((c[o>>2]|0)-1);a[r+(c[o>>2]|0)>>0]=0;c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;a[(c[s>>2]|0)+((((c[t>>2]|0)>>>0)/2|0)+1)>>0]=((d[r+(c[t>>2]|0)>>0]|0)<<4)+(d[r+((c[t>>2]|0)+1)>>0]|0);c[t>>2]=(c[t>>2]|0)+2;}c[j>>2]=((((c[o>>2]|0)+1|0)>>>0)/2|0)+1;v=c[j>>2]|0;l=i;return v|0;}function Ji(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,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;j=l;l=l+464|0;k=j+444|0;m=j+440|0;n=j+436|0;o=j+432|0;p=j+428|0;q=j+128|0;r=j+64|0;s=j+424|0;t=j+420|0;u=j+416|0;v=j+412|0;w=j+408|0;x=j+404|0;y=j+400|0;z=j+396|0;A=j+32|0;B=j;C=j+392|0;D=j+448|0;E=j+388|0;F=j+384|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=i;c[s>>2]=0;c[t>>2]=0;c[u>>2]=fh(q,256,r,t,s,c[o>>2]|0,c[p>>2]|0)|0;if(Hi(c[u>>2]|0)|0){c[k>>2]=c[u>>2];G=c[k>>2]|0;l=j;return G|0;}if((c[s>>2]|0)>>>0>12){c[k>>2]=-44;G=c[k>>2]|0;l=j;return G|0;}if((c[t>>2]|0)>>>0>((c[c[n>>2]>>2]|0)+1|0)>>>0){c[k>>2]=-48;G=c[k>>2]|0;l=j;return G|0;}c[w>>2]=0;c[v>>2]=1;while(1){if((c[v>>2]|0)>>>0>(c[s>>2]|0)>>>0)break;c[x>>2]=c[w>>2];c[w>>2]=(c[w>>2]|0)+(c[r+(c[v>>2]<<2)>>2]<<(c[v>>2]|0)-1);c[r+(c[v>>2]<<2)>>2]=c[x>>2];c[v>>2]=(c[v>>2]|0)+1;}c[y>>2]=0;while(1){if((c[y>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;c[z>>2]=d[q+(c[y>>2]|0)>>0];a[(c[m>>2]|0)+(c[y>>2]<<2)+2>>0]=(c[s>>2]|0)+1-(c[z>>2]|0);c[y>>2]=(c[y>>2]|0)+1;}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[A+16>>2]=0;c[A+20>>2]=0;c[A+24>>2]=0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[B+16>>2]=0;c[B+20>>2]=0;c[B+24>>2]=0;c[C>>2]=0;while(1){if((c[C>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;y=A+((d[(c[m>>2]|0)+(c[C>>2]<<2)+2>>0]|0)<<1)|0;b[y>>1]=(b[y>>1]|0)+1<<16>>16;c[C>>2]=(c[C>>2]|0)+1;}b[B+((c[s>>2]|0)+1<<1)>>1]=0;b[D>>1]=0;c[E>>2]=c[s>>2];while(1){if((c[E>>2]|0)>>>0<=0)break;b[B+(c[E>>2]<<1)>>1]=b[D>>1]|0;b[D>>1]=(e[D>>1]|0)+(e[A+(c[E>>2]<<1)>>1]|0);b[D>>1]=(e[D>>1]|0)>>1;c[E>>2]=(c[E>>2]|0)+-1;}c[F>>2]=0;while(1){if((c[F>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;E=B+((d[(c[m>>2]|0)+(c[F>>2]<<2)+2>>0]|0)<<1)|0;D=b[E>>1]|0;b[E>>1]=D+1<<16>>16;b[(c[m>>2]|0)+(c[F>>2]<<2)>>1]=D;c[F>>2]=(c[F>>2]|0)+1;}c[c[n>>2]>>2]=(c[t>>2]|0)-1;c[k>>2]=c[u>>2];G=c[k>>2]|0;l=j;return G|0;}function Ki(f,g,h,i,j,k){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;m=l;l=l+128|0;n=m+120|0;o=m+116|0;p=m+112|0;q=m+108|0;r=m+104|0;s=m+100|0;t=m+96|0;u=m+92|0;v=m+88|0;w=m+84|0;x=m+80|0;y=m+76|0;z=m+72|0;A=m+126|0;B=m+68|0;C=m+64|0;D=m+60|0;E=m+32|0;F=m;G=m+124|0;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=j;c[t>>2]=k;c[u>>2]=c[s>>2];c[v>>2]=(c[u>>2]|0)+8;b[A>>1]=256;if(c[s>>2]&3|0){c[n>>2]=-1;H=c[n>>2]|0;l=m;return H|0;}if((c[t>>2]|0)>>>0<4096){c[n>>2]=-66;H=c[n>>2]|0;l=m;return H|0;}if(!(c[r>>2]|0))c[r>>2]=11;if((c[q>>2]|0)>>>0>255){c[n>>2]=-46;H=c[n>>2]|0;l=m;return H|0;}oE(c[u>>2]|0,0,4096)|0;Li(c[v>>2]|0,c[p>>2]|0,c[q>>2]|0);c[x>>2]=c[q>>2];while(1){I=c[x>>2]|0;if(c[(c[v>>2]|0)+(c[x>>2]<<3)>>2]|0)break;c[x>>2]=I+-1;}c[y>>2]=I;c[B>>2]=(e[A>>1]|0)+(c[y>>2]|0)-1;c[z>>2]=e[A>>1];c[(c[v>>2]|0)+((e[A>>1]|0)<<3)>>2]=(c[(c[v>>2]|0)+(c[y>>2]<<3)>>2]|0)+(c[(c[v>>2]|0)+((c[y>>2]|0)-1<<3)>>2]|0);I=b[A>>1]|0;b[(c[v>>2]|0)+((c[y>>2]|0)-1<<3)+4>>1]=I;b[(c[v>>2]|0)+(c[y>>2]<<3)+4>>1]=I;b[A>>1]=(b[A>>1]|0)+1<<16>>16;c[y>>2]=(c[y>>2]|0)-2;c[w>>2]=e[A>>1];while(1){if((c[w>>2]|0)>>>0>(c[B>>2]|0)>>>0)break;c[(c[v>>2]|0)+(c[w>>2]<<3)>>2]=1073741824;c[w>>2]=(c[w>>2]|0)+1;}c[c[u>>2]>>2]=-2147483648;while(1){J=c[v>>2]|0;if((e[A>>1]|0)>>>0>(c[B>>2]|0)>>>0)break;if((c[J+(c[y>>2]<<3)>>2]|0)>>>0<(c[(c[v>>2]|0)+(c[z>>2]<<3)>>2]|0)>>>0){u=c[y>>2]|0;c[y>>2]=u+-1;K=u;}else{u=c[z>>2]|0;c[z>>2]=u+1;K=u;}c[C>>2]=K;if((c[(c[v>>2]|0)+(c[y>>2]<<3)>>2]|0)>>>0<(c[(c[v>>2]|0)+(c[z>>2]<<3)>>2]|0)>>>0){u=c[y>>2]|0;c[y>>2]=u+-1;L=u;}else{u=c[z>>2]|0;c[z>>2]=u+1;L=u;}c[D>>2]=L;c[(c[v>>2]|0)+((e[A>>1]|0)<<3)>>2]=(c[(c[v>>2]|0)+(c[C>>2]<<3)>>2]|0)+(c[(c[v>>2]|0)+(c[D>>2]<<3)>>2]|0);u=b[A>>1]|0;b[(c[v>>2]|0)+(c[D>>2]<<3)+4>>1]=u;b[(c[v>>2]|0)+(c[C>>2]<<3)+4>>1]=u;b[A>>1]=(b[A>>1]|0)+1<<16>>16;}a[J+(c[B>>2]<<3)+7>>0]=0;c[w>>2]=(c[B>>2]|0)-1;while(1){if((c[w>>2]|0)>>>0<256)break;a[(c[v>>2]|0)+(c[w>>2]<<3)+7>>0]=(d[(c[v>>2]|0)+((e[(c[v>>2]|0)+(c[w>>2]<<3)+4>>1]|0)<<3)+7>>0]|0)+1;c[w>>2]=(c[w>>2]|0)+-1;}c[w>>2]=0;while(1){M=c[v>>2]|0;if((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0)break;a[(c[v>>2]|0)+(c[w>>2]<<3)+7>>0]=(d[M+((e[(c[v>>2]|0)+(c[w>>2]<<3)+4>>1]|0)<<3)+7>>0]|0)+1;c[w>>2]=(c[w>>2]|0)+1;}c[r>>2]=Mi(M,c[x>>2]|0,c[r>>2]|0)|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;c[E+16>>2]=0;c[E+20>>2]=0;b[E+24>>1]=0;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;b[F+24>>1]=0;if((c[r>>2]|0)>>>0>12){c[n>>2]=-1;H=c[n>>2]|0;l=m;return H|0;}c[w>>2]=0;while(1){if((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0)break;M=E+((d[(c[v>>2]|0)+(c[w>>2]<<3)+7>>0]|0)<<1)|0;b[M>>1]=(b[M>>1]|0)+1<<16>>16;c[w>>2]=(c[w>>2]|0)+1;}b[G>>1]=0;c[w>>2]=c[r>>2];while(1){if((c[w>>2]|0)>>>0<=0)break;b[F+(c[w>>2]<<1)>>1]=b[G>>1]|0;b[G>>1]=(e[G>>1]|0)+(e[E+(c[w>>2]<<1)>>1]|0);b[G>>1]=(e[G>>1]|0)>>1;c[w>>2]=(c[w>>2]|0)+-1;}c[w>>2]=0;while(1){if((c[w>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;a[(c[o>>2]|0)+((d[(c[v>>2]|0)+(c[w>>2]<<3)+6>>0]|0)<<2)+2>>0]=a[(c[v>>2]|0)+(c[w>>2]<<3)+7>>0]|0;c[w>>2]=(c[w>>2]|0)+1;}c[w>>2]=0;while(1){if((c[w>>2]|0)>>>0>(c[q>>2]|0)>>>0)break;v=F+((d[(c[o>>2]|0)+(c[w>>2]<<2)+2>>0]|0)<<1)|0;G=b[v>>1]|0;b[v>>1]=G+1<<16>>16;b[(c[o>>2]|0)+(c[w>>2]<<2)>>1]=G;c[w>>2]=(c[w>>2]|0)+1;}c[n>>2]=c[r>>2];H=c[n>>2]|0;l=m;return H|0;}function Li(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+288|0;g=f+284|0;h=f+280|0;i=f+276|0;j=f;k=f+272|0;m=f+268|0;n=f+264|0;o=f+260|0;p=f+256|0;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;oE(j|0,0,256)|0;c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0)break;c[m>>2]=Ni((c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)+1|0)|0;e=j+(c[m>>2]<<3)|0;c[e>>2]=(c[e>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+1;}c[k>>2]=30;while(1){if((c[k>>2]|0)>>>0<=0)break;m=j+((c[k>>2]|0)-1<<3)|0;c[m>>2]=(c[m>>2]|0)+(c[j+(c[k>>2]<<3)>>2]|0);c[k>>2]=(c[k>>2]|0)+-1;}c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>=32)break;c[j+(c[k>>2]<<3)+4>>2]=c[j+(c[k>>2]<<3)>>2];c[k>>2]=(c[k>>2]|0)+1;}c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>(c[i>>2]|0)>>>0)break;c[n>>2]=c[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[o>>2]=(Ni((c[n>>2]|0)+1|0)|0)+1;m=j+(c[o>>2]<<3)+4|0;e=c[m>>2]|0;c[m>>2]=e+1;c[p>>2]=e;while(1){if((c[p>>2]|0)>>>0<=(c[j+(c[o>>2]<<3)>>2]|0)>>>0)break;if((c[n>>2]|0)>>>0<=(c[(c[g>>2]|0)+((c[p>>2]|0)-1<<3)>>2]|0)>>>0)break;e=(c[g>>2]|0)+(c[p>>2]<<3)|0;m=(c[g>>2]|0)+((c[p>>2]|0)-1<<3)|0;c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[p>>2]=(c[p>>2]|0)+-1;}c[(c[g>>2]|0)+(c[p>>2]<<3)>>2]=c[n>>2];a[(c[g>>2]|0)+(c[p>>2]<<3)+6>>0]=c[k>>2];c[k>>2]=(c[k>>2]|0)+1;}l=f;return;}function Mi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=l;l=l+128|0;h=g+116|0;i=g+112|0;j=g+108|0;k=g+104|0;m=g+100|0;n=g+96|0;o=g+92|0;p=g+88|0;q=g+84|0;r=g;s=g+80|0;t=g+76|0;u=g+72|0;v=g+68|0;w=g+64|0;x=g+60|0;y=g+56|0;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=d[(c[i>>2]|0)+(c[j>>2]<<3)+7>>0];if((c[m>>2]|0)>>>0<=(c[k>>2]|0)>>>0){c[h>>2]=c[m>>2];z=c[h>>2]|0;l=g;return z|0;}c[n>>2]=0;c[o>>2]=1<<(c[m>>2]|0)-(c[k>>2]|0);c[p>>2]=c[j>>2];while(1){if((d[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]|0)>>>0<=(c[k>>2]|0)>>>0)break;c[n>>2]=(c[n>>2]|0)+((c[o>>2]|0)-(1<<(c[m>>2]|0)-(d[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]|0)));a[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]=c[k>>2];c[p>>2]=(c[p>>2]|0)+-1;}while(1){if((d[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]|0|0)!=(c[k>>2]|0))break;c[p>>2]=(c[p>>2]|0)+-1;}c[n>>2]=c[n>>2]>>(c[m>>2]|0)-(c[k>>2]|0);c[q>>2]=-252645136;q=r;m=q+56|0;do{c[q>>2]=-252645136;q=q+4|0;}while((q|0)<(m|0));c[t>>2]=c[k>>2];c[s>>2]=c[p>>2];while(1){if((c[s>>2]|0)<0)break;if((d[(c[i>>2]|0)+(c[s>>2]<<3)+7>>0]|0)>>>0<(c[t>>2]|0)>>>0){c[t>>2]=d[(c[i>>2]|0)+(c[s>>2]<<3)+7>>0];c[r+((c[k>>2]|0)-(c[t>>2]|0)<<2)>>2]=c[s>>2];}c[s>>2]=(c[s>>2]|0)+-1;}while(1){if((c[n>>2]|0)<=0)break;c[u>>2]=(Ni(c[n>>2]|0)|0)+1;while(1){if((c[u>>2]|0)>>>0<=1)break;c[v>>2]=c[r+(c[u>>2]<<2)>>2];c[w>>2]=c[r+((c[u>>2]|0)-1<<2)>>2];if((c[v>>2]|0)!=-252645136){if((c[w>>2]|0)==-252645136)break;c[x>>2]=c[(c[i>>2]|0)+(c[v>>2]<<3)>>2];c[y>>2]=c[(c[i>>2]|0)+(c[w>>2]<<3)>>2]<<1;if((c[x>>2]|0)>>>0<=(c[y>>2]|0)>>>0)break;}c[u>>2]=(c[u>>2]|0)+-1;}while(1){if((c[u>>2]|0)>>>0<=12)A=(c[r+(c[u>>2]<<2)>>2]|0)==-252645136;else A=0;B=c[u>>2]|0;if(!A)break;c[u>>2]=B+1;}c[n>>2]=(c[n>>2]|0)-(1<>2]|0)-1<<2)>>2]|0)==-252645136)c[r+((c[u>>2]|0)-1<<2)>>2]=c[r+(c[u>>2]<<2)>>2];s=(c[i>>2]|0)+(c[r+(c[u>>2]<<2)>>2]<<3)+7|0;a[s>>0]=(a[s>>0]|0)+1<<24>>24;s=r+(c[u>>2]<<2)|0;if(c[r+(c[u>>2]<<2)>>2]|0){c[s>>2]=(c[s>>2]|0)+-1;if((d[(c[i>>2]|0)+(c[r+(c[u>>2]<<2)>>2]<<3)+7>>0]|0|0)!=((c[k>>2]|0)-(c[u>>2]|0)|0))c[r+(c[u>>2]<<2)>>2]=-252645136;}else c[s>>2]=-252645136;}while(1){if((c[n>>2]|0)>=0)break;if((c[r+4>>2]|0)!=-252645136){u=(c[i>>2]|0)+((c[r+4>>2]|0)+1<<3)+7|0;a[u>>0]=(a[u>>0]|0)+-1<<24>>24;u=r+4|0;c[u>>2]=(c[u>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1;continue;}while(1){if((d[(c[i>>2]|0)+(c[p>>2]<<3)+7>>0]|0|0)!=(c[k>>2]|0))break;c[p>>2]=(c[p>>2]|0)+-1;}u=(c[i>>2]|0)+((c[p>>2]|0)+1<<3)+7|0;a[u>>0]=(a[u>>0]|0)+-1<<24>>24;c[r+4>>2]=(c[p>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1;}c[h>>2]=c[k>>2];z=c[h>>2]|0;l=g;return z|0;}function Ni(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Oi(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[j>>2]|0;j=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;if(c[p>>2]|0){c[i>>2]=Pi(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}else{c[i>>2]=Qi(g,j,k,m,n)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function Pi(a,b,f,g,h){a=a|0;b=b|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+176|0;j=i+168|0;k=i+164|0;m=i+160|0;n=i+156|0;o=i+152|0;p=i+148|0;q=i+144|0;r=i+140|0;s=i+136|0;t=i+132|0;u=i+128|0;v=i+124|0;w=i+120|0;x=i+116|0;y=i+112|0;z=i+108|0;A=i+104|0;B=i+100|0;C=i+96|0;D=i+92|0;E=i+88|0;F=i+84|0;G=i+80|0;H=i+76|0;I=i+72|0;J=i+68|0;K=i+64|0;L=i+60|0;M=i+56|0;N=i+52|0;O=i+48|0;P=i+44|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[S>>2]=a;c[T>>2]=b;c[U>>2]=f;c[V>>2]=g;c[W>>2]=h;h=c[T>>2]|0;T=c[U>>2]|0;U=c[V>>2]|0;V=c[W>>2]|0;c[G>>2]=c[S>>2];c[H>>2]=h;c[I>>2]=T;c[J>>2]=U;c[K>>2]=V;c[L>>2]=c[I>>2];c[M>>2]=c[G>>2];c[N>>2]=(c[M>>2]|0)+(c[H>>2]|0);c[O>>2]=c[M>>2];if((c[H>>2]|0)>>>0<8){c[F>>2]=0;X=c[F>>2]|0;l=i;return X|0;}c[R>>2]=Ri(Q,c[O>>2]|0,(c[N>>2]|0)-(c[O>>2]|0)|0)|0;if(Hi(c[R>>2]|0)|0){c[F>>2]=0;X=c[F>>2]|0;l=i;return X|0;}c[P>>2]=c[J>>2]&-4;switch(c[J>>2]&3|0){case 3:{J=d[(c[L>>2]|0)+((c[P>>2]|0)+2)>>0]|0;R=c[K>>2]|0;c[C>>2]=Q;c[D>>2]=J;c[E>>2]=R;Si(c[C>>2]|0,e[(c[E>>2]|0)+(c[D>>2]<<2)>>1]|0,d[(c[E>>2]|0)+(c[D>>2]<<2)+2>>0]|0);Ti(Q);Y=7;break;}case 2:{Y=7;break;}case 1:{Y=8;break;}case 0:break;default:{}}if((Y|0)==7){D=d[(c[L>>2]|0)+((c[P>>2]|0)+1)>>0]|0;E=c[K>>2]|0;c[z>>2]=Q;c[A>>2]=D;c[B>>2]=E;Si(c[z>>2]|0,e[(c[B>>2]|0)+(c[A>>2]<<2)>>1]|0,d[(c[B>>2]|0)+(c[A>>2]<<2)+2>>0]|0);Y=8;}if((Y|0)==8){Y=d[(c[L>>2]|0)+(c[P>>2]|0)>>0]|0;A=c[K>>2]|0;c[w>>2]=Q;c[x>>2]=Y;c[y>>2]=A;Si(c[w>>2]|0,e[(c[y>>2]|0)+(c[x>>2]<<2)>>1]|0,d[(c[y>>2]|0)+(c[x>>2]<<2)+2>>0]|0);Ti(Q);}while(1){if((c[P>>2]|0)>>>0<=0)break;x=d[(c[L>>2]|0)+((c[P>>2]|0)-1)>>0]|0;y=c[K>>2]|0;c[t>>2]=Q;c[u>>2]=x;c[v>>2]=y;Si(c[t>>2]|0,e[(c[v>>2]|0)+(c[u>>2]<<2)>>1]|0,d[(c[v>>2]|0)+(c[u>>2]<<2)+2>>0]|0);y=d[(c[L>>2]|0)+((c[P>>2]|0)-2)>>0]|0;x=c[K>>2]|0;c[q>>2]=Q;c[r>>2]=y;c[s>>2]=x;Si(c[q>>2]|0,e[(c[s>>2]|0)+(c[r>>2]<<2)>>1]|0,d[(c[s>>2]|0)+(c[r>>2]<<2)+2>>0]|0);Ti(Q);x=d[(c[L>>2]|0)+((c[P>>2]|0)-3)>>0]|0;y=c[K>>2]|0;c[n>>2]=Q;c[o>>2]=x;c[p>>2]=y;Si(c[n>>2]|0,e[(c[p>>2]|0)+(c[o>>2]<<2)>>1]|0,d[(c[p>>2]|0)+(c[o>>2]<<2)+2>>0]|0);y=d[(c[L>>2]|0)+((c[P>>2]|0)-4)>>0]|0;x=c[K>>2]|0;c[j>>2]=Q;c[k>>2]=y;c[m>>2]=x;Si(c[j>>2]|0,e[(c[m>>2]|0)+(c[k>>2]<<2)>>1]|0,d[(c[m>>2]|0)+(c[k>>2]<<2)+2>>0]|0);Ti(Q);c[P>>2]=(c[P>>2]|0)-4;}c[F>>2]=Ui(Q)|0;X=c[F>>2]|0;l=i;return X|0;}function Qi(a,b,f,g,h){a=a|0;b=b|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,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;i=l;l=l+176|0;j=i+168|0;k=i+164|0;m=i+160|0;n=i+156|0;o=i+152|0;p=i+148|0;q=i+144|0;r=i+140|0;s=i+136|0;t=i+132|0;u=i+128|0;v=i+124|0;w=i+120|0;x=i+116|0;y=i+112|0;z=i+108|0;A=i+104|0;B=i+100|0;C=i+96|0;D=i+92|0;E=i+88|0;F=i+84|0;G=i+80|0;H=i+76|0;I=i+72|0;J=i+68|0;K=i+64|0;L=i+60|0;M=i+56|0;N=i+52|0;O=i+48|0;P=i+44|0;Q=i+24|0;R=i+20|0;S=i+16|0;T=i+12|0;U=i+8|0;V=i+4|0;W=i;c[S>>2]=a;c[T>>2]=b;c[U>>2]=f;c[V>>2]=g;c[W>>2]=h;h=c[T>>2]|0;T=c[U>>2]|0;U=c[V>>2]|0;V=c[W>>2]|0;c[G>>2]=c[S>>2];c[H>>2]=h;c[I>>2]=T;c[J>>2]=U;c[K>>2]=V;c[L>>2]=c[I>>2];c[M>>2]=c[G>>2];c[N>>2]=(c[M>>2]|0)+(c[H>>2]|0);c[O>>2]=c[M>>2];if((c[H>>2]|0)>>>0<8){c[F>>2]=0;X=c[F>>2]|0;l=i;return X|0;}c[R>>2]=Ri(Q,c[O>>2]|0,(c[N>>2]|0)-(c[O>>2]|0)|0)|0;if(Hi(c[R>>2]|0)|0){c[F>>2]=0;X=c[F>>2]|0;l=i;return X|0;}c[P>>2]=c[J>>2]&-4;switch(c[J>>2]&3|0){case 3:{J=d[(c[L>>2]|0)+((c[P>>2]|0)+2)>>0]|0;R=c[K>>2]|0;c[C>>2]=Q;c[D>>2]=J;c[E>>2]=R;Si(c[C>>2]|0,e[(c[E>>2]|0)+(c[D>>2]<<2)>>1]|0,d[(c[E>>2]|0)+(c[D>>2]<<2)+2>>0]|0);Ti(Q);Y=7;break;}case 2:{Y=7;break;}case 1:{Y=8;break;}case 0:break;default:{}}if((Y|0)==7){D=d[(c[L>>2]|0)+((c[P>>2]|0)+1)>>0]|0;E=c[K>>2]|0;c[z>>2]=Q;c[A>>2]=D;c[B>>2]=E;Si(c[z>>2]|0,e[(c[B>>2]|0)+(c[A>>2]<<2)>>1]|0,d[(c[B>>2]|0)+(c[A>>2]<<2)+2>>0]|0);Y=8;}if((Y|0)==8){Y=d[(c[L>>2]|0)+(c[P>>2]|0)>>0]|0;A=c[K>>2]|0;c[w>>2]=Q;c[x>>2]=Y;c[y>>2]=A;Si(c[w>>2]|0,e[(c[y>>2]|0)+(c[x>>2]<<2)>>1]|0,d[(c[y>>2]|0)+(c[x>>2]<<2)+2>>0]|0);Ti(Q);}while(1){if((c[P>>2]|0)>>>0<=0)break;x=d[(c[L>>2]|0)+((c[P>>2]|0)-1)>>0]|0;y=c[K>>2]|0;c[t>>2]=Q;c[u>>2]=x;c[v>>2]=y;Si(c[t>>2]|0,e[(c[v>>2]|0)+(c[u>>2]<<2)>>1]|0,d[(c[v>>2]|0)+(c[u>>2]<<2)+2>>0]|0);y=d[(c[L>>2]|0)+((c[P>>2]|0)-2)>>0]|0;x=c[K>>2]|0;c[q>>2]=Q;c[r>>2]=y;c[s>>2]=x;Si(c[q>>2]|0,e[(c[s>>2]|0)+(c[r>>2]<<2)>>1]|0,d[(c[s>>2]|0)+(c[r>>2]<<2)+2>>0]|0);Ti(Q);x=d[(c[L>>2]|0)+((c[P>>2]|0)-3)>>0]|0;y=c[K>>2]|0;c[n>>2]=Q;c[o>>2]=x;c[p>>2]=y;Si(c[n>>2]|0,e[(c[p>>2]|0)+(c[o>>2]<<2)>>1]|0,d[(c[p>>2]|0)+(c[o>>2]<<2)+2>>0]|0);y=d[(c[L>>2]|0)+((c[P>>2]|0)-4)>>0]|0;x=c[K>>2]|0;c[j>>2]=Q;c[k>>2]=y;c[m>>2]=x;Si(c[j>>2]|0,e[(c[m>>2]|0)+(c[k>>2]<<2)>>1]|0,d[(c[m>>2]|0)+(c[k>>2]<<2)+2>>0]|0);Ti(Q);c[P>>2]=(c[P>>2]|0)-4;}c[F>>2]=Ui(Q)|0;X=c[F>>2]|0;l=i;return X|0;}function Ri(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[c[g>>2]>>2]=0;c[(c[g>>2]|0)+4>>2]=0;c[(c[g>>2]|0)+8>>2]=c[h>>2];c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+8>>2];c[(c[g>>2]|0)+16>>2]=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]|0)+-4;if((c[i>>2]|0)>>>0<=4){c[f>>2]=-70;j=c[f>>2]|0;l=e;return j|0;}else{c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function Si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|c[g>>2]<>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Ti(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[(c[d>>2]|0)+4>>2]|0)>>>3;Vi(c[(c[d>>2]|0)+12>>2]|0,c[c[d>>2]>>2]|0);a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[e>>2]|0);if((c[(c[d>>2]|0)+12>>2]|0)>>>0>(c[(c[d>>2]|0)+16>>2]|0)>>>0)c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+16>>2];a=(c[d>>2]|0)+4|0;c[a>>2]=c[a>>2]&7;a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)>>>(c[e>>2]<<3);l=b;return;}function Ui(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;Si(c[e>>2]|0,1,1);Ti(c[e>>2]|0);if((c[(c[e>>2]|0)+12>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{c[d>>2]=(c[(c[e>>2]|0)+12>>2]|0)-(c[(c[e>>2]|0)+8>>2]|0)+((c[(c[e>>2]|0)+4>>2]|0)>>>0>0&1);f=c[d>>2]|0;l=b;return f|0;}return 0;}function Vi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(Wi()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){Xi(a,e);l=d;return;}else{Yi(a,e,0);l=d;return;}}function Wi(){return 1;}function Xi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(Zi()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){aj(a,e);l=d;return;}else{aj(a,bj(e)|0);l=d;return;}}function Yi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=(Zi()|0)!=0;a=c[f>>2]|0;f=g;g=c[f>>2]|0;b=c[f+4>>2]|0;if(d){_i(a,g,b);l=e;return;}else{d=$i(g,b)|0;_i(a,d,y);l=e;return;}}function Zi(){return d[11936]|0|0;}function _i(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f+8|0;h=f;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;h=c[e>>2]|0;b=c[e+4>>2]|0;e=c[g>>2]|0;g=e;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;h=e+4|0;a[h>>0]=b;a[h+1>>0]=b>>8;a[h+2>>0]=b>>16;a[h+3>>0]=b>>24;l=f;return;}function $i(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function aj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[g>>2]|0;g=c[f>>2]|0;a[g>>0]=d;a[g+1>>0]=d>>8;a[g+2>>0]=d>>16;a[g+3>>0]=d>>24;l=e;return;}function bj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function cj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;h=l;l=l+80|0;i=h+64|0;j=h+60|0;k=h+56|0;m=h+52|0;n=h+48|0;o=h+44|0;p=h+40|0;q=h+36|0;r=h+32|0;s=h+28|0;t=h+24|0;u=h+20|0;v=h+16|0;w=h+12|0;x=h+8|0;y=h+4|0;z=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=(((c[n>>2]|0)+3|0)>>>0)/4|0;c[r>>2]=c[m>>2];c[s>>2]=(c[r>>2]|0)+(c[n>>2]|0);c[t>>2]=c[j>>2];c[u>>2]=(c[t>>2]|0)+(c[k>>2]|0);c[v>>2]=c[t>>2];if((c[k>>2]|0)>>>0<17){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}if((c[n>>2]|0)>>>0<12){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}c[v>>2]=(c[v>>2]|0)+6;c[w>>2]=Oi(c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,c[r>>2]|0,c[q>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;n=(Hi(c[w>>2]|0)|0)!=0;k=c[w>>2]|0;if(n){c[i>>2]=k;A=c[i>>2]|0;l=h;return A|0;}if(!k){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}dj(c[t>>2]|0,c[w>>2]&65535);c[v>>2]=(c[v>>2]|0)+(c[w>>2]|0);c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);c[x>>2]=Oi(c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,c[r>>2]|0,c[q>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;w=(Hi(c[x>>2]|0)|0)!=0;k=c[x>>2]|0;if(w){c[i>>2]=k;A=c[i>>2]|0;l=h;return A|0;}if(!k){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}dj((c[t>>2]|0)+2|0,c[x>>2]&65535);c[v>>2]=(c[v>>2]|0)+(c[x>>2]|0);c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);c[y>>2]=Oi(c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,c[r>>2]|0,c[q>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;x=(Hi(c[y>>2]|0)|0)!=0;k=c[y>>2]|0;if(x){c[i>>2]=k;A=c[i>>2]|0;l=h;return A|0;}if(!k){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}dj((c[t>>2]|0)+4|0,c[y>>2]&65535);c[v>>2]=(c[v>>2]|0)+(c[y>>2]|0);c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);c[z>>2]=Oi(c[v>>2]|0,(c[u>>2]|0)-(c[v>>2]|0)|0,c[r>>2]|0,(c[s>>2]|0)-(c[r>>2]|0)|0,c[o>>2]|0,c[p>>2]|0)|0;p=(Hi(c[z>>2]|0)|0)!=0;o=c[z>>2]|0;if(p){c[i>>2]=o;A=c[i>>2]|0;l=h;return A|0;}if(!o){c[i>>2]=0;A=c[i>>2]|0;l=h;return A|0;}else{c[v>>2]=(c[v>>2]|0)+(c[z>>2]|0);c[i>>2]=(c[v>>2]|0)-(c[t>>2]|0);A=c[i>>2]|0;l=h;return A|0;}return 0;}function dj(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Zi()|0)!=0;d=c[h>>2]|0;if(f){ej(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function ej(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=b[h>>1]|0;h=c[g>>2]|0;a[h>>0]=e;a[h+1>>0]=e>>8;l=f;return;}function fj(b,d,e,f,g,h,i,j,k,m,n,o,p){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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;q=l;l=l+96|0;r=q+88|0;s=q+84|0;t=q+80|0;u=q+76|0;v=q+72|0;w=q+68|0;x=q+64|0;y=q+60|0;z=q+56|0;A=q+52|0;B=q+48|0;C=q+44|0;D=q+40|0;E=q+36|0;F=q+32|0;G=q+28|0;H=q+24|0;I=q+20|0;J=q+16|0;K=q+12|0;L=q+8|0;M=q+4|0;N=q;c[s>>2]=b;c[t>>2]=d;c[u>>2]=e;c[v>>2]=f;c[w>>2]=g;c[x>>2]=h;c[y>>2]=i;c[z>>2]=j;c[A>>2]=k;c[B>>2]=m;c[C>>2]=n;c[D>>2]=o;c[E>>2]=p;c[F>>2]=c[z>>2];c[G>>2]=c[s>>2];c[H>>2]=(c[G>>2]|0)+(c[t>>2]|0);c[I>>2]=c[G>>2];if(c[z>>2]&3|0){c[r>>2]=-1;O=c[r>>2]|0;l=q;return O|0;}if((c[A>>2]|0)>>>0<6144){c[r>>2]=-66;O=c[r>>2]|0;l=q;return O|0;}if(!(c[v>>2]|0)){c[r>>2]=0;O=c[r>>2]|0;l=q;return O|0;}if(!(c[t>>2]|0)){c[r>>2]=0;O=c[r>>2]|0;l=q;return O|0;}if((c[v>>2]|0)>>>0>131072){c[r>>2]=-72;O=c[r>>2]|0;l=q;return O|0;}if((c[x>>2]|0)>>>0>12){c[r>>2]=-44;O=c[r>>2]|0;l=q;return O|0;}if((c[w>>2]|0)>>>0>255){c[r>>2]=-46;O=c[r>>2]|0;l=q;return O|0;}if(!(c[w>>2]|0))c[w>>2]=255;if(!(c[x>>2]|0))c[x>>2]=11;if((c[D>>2]|0)!=0&(c[C>>2]|0)!=0?(c[c[C>>2]>>2]|0)==2:0){c[r>>2]=gj(c[G>>2]|0,c[I>>2]|0,c[H>>2]|0,c[u>>2]|0,c[v>>2]|0,c[y>>2]|0,c[B>>2]|0,c[E>>2]|0)|0;O=c[r>>2]|0;l=q;return O|0;}c[J>>2]=bi(c[F>>2]|0,w,c[u>>2]|0,c[v>>2]|0,c[F>>2]|0)|0;A=(Hi(c[J>>2]|0)|0)!=0;z=c[J>>2]|0;if(A){c[r>>2]=z;O=c[r>>2]|0;l=q;return O|0;}if((z|0)==(c[v>>2]|0)){a[c[G>>2]>>0]=a[c[u>>2]>>0]|0;c[r>>2]=1;O=c[r>>2]|0;l=q;return O|0;}if((c[J>>2]|0)>>>0<=(((c[v>>2]|0)>>>7)+1|0)>>>0){c[r>>2]=0;O=c[r>>2]|0;l=q;return O|0;}if((c[C>>2]|0?(c[c[C>>2]>>2]|0)==1:0)?(hj(c[B>>2]|0,c[F>>2]|0,c[w>>2]|0)|0)==0:0)c[c[C>>2]>>2]=0;if((c[D>>2]|0)!=0&(c[C>>2]|0)!=0?c[c[C>>2]>>2]|0:0){c[r>>2]=gj(c[G>>2]|0,c[I>>2]|0,c[H>>2]|0,c[u>>2]|0,c[v>>2]|0,c[y>>2]|0,c[B>>2]|0,c[E>>2]|0)|0;O=c[r>>2]|0;l=q;return O|0;}c[x>>2]=Fi(c[x>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;c[K>>2]=Ki((c[F>>2]|0)+1024|0,c[F>>2]|0,c[w>>2]|0,c[x>>2]|0,(c[F>>2]|0)+2048|0,4096)|0;D=(Hi(c[K>>2]|0)|0)!=0;J=c[K>>2]|0;if(D){c[r>>2]=J;O=c[r>>2]|0;l=q;return O|0;}c[x>>2]=J;oE((c[F>>2]|0)+1024+((c[w>>2]|0)+1<<2)|0,0,1024-((c[w>>2]|0)+1<<2)|0)|0;c[L>>2]=Ii(c[I>>2]|0,c[t>>2]|0,(c[F>>2]|0)+1024|0,c[w>>2]|0,c[x>>2]|0)|0;if(Hi(c[L>>2]|0)|0){c[r>>2]=c[L>>2];O=c[r>>2]|0;l=q;return O|0;}do{if(c[C>>2]|0?c[c[C>>2]>>2]|0:0){c[M>>2]=ij(c[B>>2]|0,c[F>>2]|0,c[w>>2]|0)|0;c[N>>2]=ij((c[F>>2]|0)+1024|0,c[F>>2]|0,c[w>>2]|0)|0;if((c[M>>2]|0)>>>0>((c[L>>2]|0)+(c[N>>2]|0)|0)>>>0?((c[L>>2]|0)+12|0)>>>0<(c[v>>2]|0)>>>0:0)break;c[r>>2]=gj(c[G>>2]|0,c[I>>2]|0,c[H>>2]|0,c[u>>2]|0,c[v>>2]|0,c[y>>2]|0,c[B>>2]|0,c[E>>2]|0)|0;O=c[r>>2]|0;l=q;return O|0;}}while(0);if(((c[L>>2]|0)+12|0)>>>0>=(c[v>>2]|0)>>>0){c[r>>2]=0;O=c[r>>2]|0;l=q;return O|0;}c[I>>2]=(c[I>>2]|0)+(c[L>>2]|0);if(c[C>>2]|0)c[c[C>>2]>>2]=0;if(c[B>>2]|0)mE(c[B>>2]|0,(c[F>>2]|0)+1024|0,1024)|0;c[r>>2]=gj(c[G>>2]|0,c[I>>2]|0,c[H>>2]|0,c[u>>2]|0,c[v>>2]|0,c[y>>2]|0,(c[F>>2]|0)+1024|0,c[E>>2]|0)|0;O=c[r>>2]|0;l=q;return O|0;}function gj(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+48|0;k=j+36|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j+8|0;t=j+4|0;u=j;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;i=c[n>>2]|0;h=(c[o>>2]|0)-(c[n>>2]|0)|0;o=c[p>>2]|0;p=c[q>>2]|0;g=c[s>>2]|0;s=c[t>>2]|0;if(c[r>>2]|0)v=Oi(i,h,o,p,g,s)|0;else v=cj(i,h,o,p,g,s)|0;c[u>>2]=v;v=(Hi(c[u>>2]|0)|0)!=0;s=c[u>>2]|0;if(v){c[k>>2]=s;w=c[k>>2]|0;l=j;return w|0;}if(!s){c[k>>2]=0;w=c[k>>2]|0;l=j;return w|0;}c[n>>2]=(c[n>>2]|0)+(c[u>>2]|0);if(((c[n>>2]|0)-(c[m>>2]|0)|0)>>>0>=((c[q>>2]|0)-1|0)>>>0){c[k>>2]=0;w=c[k>>2]|0;l=j;return w|0;}else{c[k>>2]=(c[n>>2]|0)-(c[m>>2]|0);w=c[k>>2]|0;l=j;return w|0;}return 0;}function hj(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[j>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>(c[i>>2]|0))break;c[j>>2]=c[j>>2]|(c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0?(d[(c[g>>2]|0)+(c[k>>2]<<2)+2>>0]|0|0)==0:0);c[k>>2]=(c[k>>2]|0)+1;}l=f;return((c[j>>2]|0)!=0^1)&1|0;}function ij(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[j>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>(c[i>>2]|0))break;e=N(d[(c[g>>2]|0)+(c[k>>2]<<2)+2>>0]|0,c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+e;c[k>>2]=(c[k>>2]|0)+1;}l=f;return(c[j>>2]|0)>>>3|0;}function jj(a,b,d,e,f,g,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=l;l=l+48|0;p=o+44|0;q=o+40|0;r=o+36|0;s=o+32|0;t=o+28|0;u=o+24|0;v=o+20|0;w=o+16|0;x=o+12|0;y=o+8|0;z=o+4|0;A=o;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;c[z>>2]=m;c[A>>2]=n;n=fj(c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,1,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;l=o;return n|0;}function kj(a,b,d,e,f,g,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=l;l=l+48|0;p=o+44|0;q=o+40|0;r=o+36|0;s=o+32|0;t=o+28|0;u=o+24|0;v=o+20|0;w=o+16|0;x=o+12|0;y=o+8|0;z=o+4|0;A=o;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[w>>2]=i;c[x>>2]=j;c[y>>2]=k;c[z>>2]=m;c[A>>2]=n;n=fj(c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;l=o;return n|0;}function lj(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0)+((c[d>>2]|0)>>>8)|0;if((c[d>>2]|0)>>>0>=131072){e=0;f=a+e|0;l=b;return f|0;}e=(131072-(c[d>>2]|0)|0)>>>11;f=a+e|0;l=b;return f|0;}function mj(){var a=0,b=0,d=0;a=l;l=l+16|0;b=a;c[b>>2]=c[5406];c[b+4>>2]=c[5407];c[b+8>>2]=c[5408];d=nj(b)|0;l=a;return d|0;}function nj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+48|0;d=b+24|0;e=b+20|0;f=b+16|0;g=b;if(((c[a>>2]|0)!=0^1)&1^((c[a+4>>2]|0)!=0^1)&1|0){c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;};c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[f>>2]=Sh(656,d)|0;if(c[f>>2]|0){i=(c[f>>2]|0)+352|0;c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[(c[f>>2]|0)+12+44>>2]=3;c[(c[f>>2]|0)+12+32>>2]=1;oj(g);c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];g=pj(d)|0;c[(c[f>>2]|0)+8>>2]=g;c[e>>2]=c[f>>2];h=c[e>>2]|0;l=b;return h|0;}else{c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}return 0;}function oj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+28|0;e=b+24|0;f=b+20|0;g=b+16|0;h=b;c[d>>2]=0;c[e>>2]=0;c[f>>2]=0;c[g>>2]=0;c[h>>2]=c[d>>2];c[h+4>>2]=c[e>>2];c[h+8>>2]=c[f>>2];c[h+12>>2]=c[g>>2];c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];l=b;return;}function pj(a){a=a|0;return(c[a+8>>2]&256|0)!=0|0;}function qj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+8|0;e=b+4|0;f=b;c[f>>2]=a;if(!(c[f>>2]|0)){c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}if(c[(c[f>>2]|0)+364>>2]|0){c[e>>2]=-64;g=c[e>>2]|0;l=b;return g|0;}else{a=c[(c[f>>2]|0)+224>>2]|0;h=(c[f>>2]|0)+352|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];Th(a,d);c[(c[f>>2]|0)+224>>2]=0;rj(c[(c[f>>2]|0)+636>>2]|0)|0;c[(c[f>>2]|0)+636>>2]=0;a=c[f>>2]|0;h=(c[f>>2]|0)+352|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];Th(a,d);c[e>>2]=0;g=c[e>>2]|0;l=b;return g|0;}return 0;}function rj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=l;l=l+32|0;d=b+20|0;e=b+16|0;f=b+12|0;g=b;c[f>>2]=a;if(!(c[f>>2]|0)){c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}else{a=(c[f>>2]|0)+4748|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];a=c[(c[f>>2]|0)+12>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);a=c[c[f>>2]>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);a=c[f>>2]|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];Th(a,d);c[e>>2]=0;h=c[e>>2]|0;l=b;return h|0;}return 0;}function sj(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0;g=l;l=l+96|0;h=g+64|0;i=g+60|0;j=g+8|0;k=g+56|0;m=g+52|0;n=g;o=g+48|0;p=g+44|0;q=g+16|0;c[i>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=e;c[k>>2]=f;f=j;c[m>>2]=(c[f>>2]|0)!=0|(c[f+4>>2]|0)!=0?0:500;f=j;e=dE(c[f>>2]|0,c[f+4>>2]|0,c[k>>2]|0,0)|0;if((e|0)!=0|(y|0)!=0){e=j;f=dE(c[e>>2]|0,c[e+4>>2]|0,c[k>>2]|0,0)|0;e=dE(f|0,y|0,c[m>>2]|0,0)|0;r=e;s=y;}else{r=-1;s=-1;}e=n;c[e>>2]=r;c[e+4>>2]=s;s=n;e=c[s+4>>2]|0;r=n;m=c[r+4>>2]|0;f=n;n=c[f+4>>2]|0;c[o>>2]=((e>>>0<0|(e|0)==0&(c[s>>2]|0)>>>0<=262144)&1)+((m>>>0<0|(m|0)==0&(c[r>>2]|0)>>>0<=131072)&1)+((n>>>0<0|(n|0)==0&(c[f>>2]|0)>>>0<=16384)&1);f=c[i>>2]|0;c[p>>2]=f;n=(c[i>>2]|0)==0?3:f;c[p>>2]=n;f=(c[i>>2]|0)<0?0:n;c[p>>2]=f;c[p>>2]=(c[i>>2]|0)>22?22:f;f=224+((c[o>>2]|0)*644|0)+((c[p>>2]|0)*28|0)|0;c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];c[q+16>>2]=c[f+16>>2];c[q+20>>2]=c[f+20>>2];c[q+24>>2]=c[f+24>>2];if((c[i>>2]|0)>=0){t=j;u=t;v=c[u>>2]|0;w=t+4|0;x=w;z=c[x>>2]|0;A=c[k>>2]|0;c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[h+12>>2]=c[q+12>>2];c[h+16>>2]=c[q+16>>2];c[h+20>>2]=c[q+20>>2];c[h+24>>2]=c[q+24>>2];tj(a,h,v,z,A);l=g;return;}c[q+20>>2]=0-(c[i>>2]|0);t=j;u=t;v=c[u>>2]|0;w=t+4|0;x=w;z=c[x>>2]|0;A=c[k>>2]|0;c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[h+12>>2]=c[q+12>>2];c[h+16>>2]=c[q+16>>2];c[h+20>>2]=c[q+20>>2];c[h+24>>2]=c[q+24>>2];tj(a,h,v,z,A);l=g;return;}function tj(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,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=h;c[n>>2]=d;c[n+4>>2]=e;c[i>>2]=f;if(c[i>>2]|0?(f=h,e=dE(c[f>>2]|0,c[f+4>>2]|0,1,0)|0,f=y,f>>>0<0|(f|0)==0&e>>>0<2):0){e=h;c[e>>2]=513;c[e+4>>2]=0;}else o=4;if((o|0)==4?(o=h,(c[o>>2]|0)==0&(c[o+4>>2]|0)==0):0){o=h;c[o>>2]=-1;c[o+4>>2]=-1;}o=h;e=c[o+4>>2]|0;if(e>>>0<0|(e|0)==0&(c[o>>2]|0)>>>0<536870912?0<0|0==0&(c[i>>2]|0)>>>0<536870912:0){o=h;h=dE(c[o>>2]|0,c[o+4>>2]|0,c[i>>2]|0,0)|0;c[j>>2]=h;if((c[j>>2]|0)>>>0<64)p=6;else p=(uj((c[j>>2]|0)-1|0)|0)+1|0;c[k>>2]=p;if((c[b>>2]|0)>>>0>(c[k>>2]|0)>>>0)c[b>>2]=c[k>>2];}if((c[b+8>>2]|0)>>>0>(c[b>>2]|0)>>>0)c[b+8>>2]=c[b>>2];c[m>>2]=vj(c[b+4>>2]|0,c[b+24>>2]|0)|0;if((c[m>>2]|0)>>>0>(c[b>>2]|0)>>>0){k=b+4|0;c[k>>2]=(c[k>>2]|0)-((c[m>>2]|0)-(c[b>>2]|0));}if((c[b>>2]|0)>>>0>=10){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];l=g;return;}c[b>>2]=10;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];l=g;return;}function uj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function vj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(c[f>>2]|0)>>>0>=6&1;l=d;return(c[e>>2]|0)-(c[g>>2]|0)|0;}function wj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[d>>2]|0)>>>0>4294967176|0;}function xj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e+8|0;i=e+4|0;j=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;a:do{switch(c[h>>2]|0){case 10:{if((c[i>>2]|0)>>>0>1){c[f>>2]=-40;break a;}else{c[c[g>>2]>>2]=c[i>>2];c[f>>2]=c[c[g>>2]>>2];break a;}break;}case 100:{c[j>>2]=c[i>>2];if((c[j>>2]|0)>(yj()|0))c[j>>2]=yj()|0;if(c[j>>2]|0){c[(c[g>>2]|0)+48>>2]=(c[j>>2]|0)<0&1;c[(c[g>>2]|0)+44>>2]=c[j>>2];}if((c[(c[g>>2]|0)+44>>2]|0)>=0){c[f>>2]=c[(c[g>>2]|0)+44>>2];break a;}else{c[f>>2]=0;break a;}break;}case 101:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<10|(c[i>>2]|0)>>>0>30|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4>>2];break;}case 102:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<6|(c[i>>2]|0)>>>0>30|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+8>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+8>>2];break;}case 103:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<6|(c[i>>2]|0)>>>0>29|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+4>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+4>>2];break;}case 104:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<1|(c[i>>2]|0)>>>0>29|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+12>>2]=c[i>>2];c[f>>2]=c[i>>2];break;}case 105:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<3|(c[i>>2]|0)>>>0>7|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+16>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+16>>2];break;}case 106:{c[(c[g>>2]|0)+4+20>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+20>>2];break;}case 107:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<1|(c[i>>2]|0)>>>0>8|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+4+24>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+4+24>>2];break;}case 1e3:{c[(c[g>>2]|0)+48>>2]=((c[i>>2]|0)!=0^1)&1;c[f>>2]=((c[(c[g>>2]|0)+48>>2]|0)!=0^1)&1;break;}case 200:{c[(c[g>>2]|0)+32>>2]=(c[i>>2]|0)>>>0>0&1;c[f>>2]=c[(c[g>>2]|0)+32>>2];break;}case 201:{c[(c[g>>2]|0)+32+4>>2]=(c[i>>2]|0)>>>0>0&1;c[f>>2]=c[(c[g>>2]|0)+32+4>>2];break;}case 202:{c[(c[g>>2]|0)+32+8>>2]=((c[i>>2]|0)!=0^1)&1;c[f>>2]=((c[(c[g>>2]|0)+32+8>>2]|0)!=0^1)&1;break;}case 1100:{c[(c[g>>2]|0)+52>>2]=(c[i>>2]|0)>>>0>0&1;c[f>>2]=c[(c[g>>2]|0)+52>>2];break;}case 400:{if((c[i>>2]|0)>>>0>0){c[f>>2]=-40;break a;}else{c[f>>2]=0;break a;}break;}case 401:{c[f>>2]=-40;break;}case 402:{c[f>>2]=-40;break;}case 160:{c[(c[g>>2]|0)+68>>2]=(c[i>>2]|0)>>>0>0&1;c[f>>2]=c[(c[g>>2]|0)+68>>2];break;}case 161:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<6|(c[i>>2]|0)>>>0>30|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+68+4>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+68+4>>2];break;}case 162:{if((c[i>>2]|0)>>>0>0?(c[i>>2]|0)>>>0<4|(c[i>>2]|0)>>>0>4096|0:0){c[f>>2]=-42;break a;}c[(c[g>>2]|0)+68+12>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+68+12>>2];break;}case 163:{if((c[i>>2]|0)>>>0>8){c[f>>2]=-42;break a;}else{c[(c[g>>2]|0)+68+8>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+68+8>>2];break a;}break;}case 164:{if((c[i>>2]|0)>>>0>24){c[f>>2]=-42;break a;}else{c[(c[g>>2]|0)+68+16>>2]=c[i>>2];c[f>>2]=c[(c[g>>2]|0)+68+16>>2];break a;}break;}default:c[f>>2]=-40;}}while(0);l=e;return c[f>>2]|0;}function yj(){return 22;}function zj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=l;l=l+64|0;i=h+32|0;j=h+28|0;k=h+24|0;m=h+20|0;n=h+16|0;o=h+12|0;p=h+8|0;q=h+4|0;r=h;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;if(((c[g>>2]|0)!=0^1)&1^((c[g+4>>2]|0)!=0^1)&1|0){c[j>>2]=0;s=c[j>>2]|0;l=h;return s|0;};c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[p>>2]=Rh(4764,i)|0;c[q>>2]=6144+(Aj(f,0)|0);e=c[q>>2]|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[r>>2]=Rh(e,i)|0;e=c[p>>2]|0;if(!((c[p>>2]|0)!=0&(c[r>>2]|0)!=0)){c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];Th(e,i);d=c[r>>2]|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];Th(d,i);c[j>>2]=0;s=c[j>>2]|0;l=h;return s|0;}d=e+4748|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[(c[p>>2]|0)+12>>2]=c[r>>2];c[(c[p>>2]|0)+16>>2]=c[q>>2];q=c[p>>2]|0;r=c[k>>2]|0;k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];f=(Ph(Bj(q,r,k,m,n,i)|0)|0)!=0;i=c[p>>2]|0;if(f){rj(i)|0;c[j>>2]=0;s=c[j>>2]|0;l=h;return s|0;}else{c[j>>2]=i;s=c[j>>2]|0;l=h;return s|0;}return 0;}function Aj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;d=l;l=l+48|0;e=d+32|0;f=d+28|0;g=d+24|0;h=d+20|0;i=d+16|0;j=d+12|0;k=d+8|0;m=d+4|0;n=d;c[e>>2]=a;c[f>>2]=b;if((c[(c[e>>2]|0)+24>>2]|0)==1)o=0;else o=1<>2]|0)+4>>2];c[g>>2]=o;c[h>>2]=1<>2]|0)+8>>2];if(c[f>>2]|0?(c[(c[e>>2]|0)+16>>2]|0)==3:0){if(17<(c[c[e>>2]>>2]|0)>>>0)p=17;else p=c[c[e>>2]>>2]|0;}else p=0;c[i>>2]=p;c[j>>2]=1<>2];c[k>>2]=(c[g>>2]|0)+(c[h>>2]|0)+(c[j>>2]|0)<<2;c[m>>2]=149e3;if(c[f>>2]|0){if((c[(c[e>>2]|0)+24>>2]|0)==7)q=1;else q=(c[(c[e>>2]|0)+24>>2]|0)==8;}else q=0;c[n>>2]=q?149e3:0;l=d;return(c[k>>2]|0)+(c[n>>2]|0)|0;}function Bj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=l;l=l+160|0;i=h+144|0;j=h+140|0;k=h+136|0;m=h+132|0;n=h+128|0;o=h+124|0;p=h+120|0;q=h+116|0;r=h+112|0;s=h+8|0;t=h;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;f=(c[k>>2]|0)+4720|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];do{if((c[o>>2]|0)!=1&(c[m>>2]|0)!=0&(c[n>>2]|0)!=0){f=c[n>>2]|0;e=(c[k>>2]|0)+4748|0;c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[q>>2]=Rh(f,i)|0;c[c[k>>2]>>2]=c[q>>2];c[(c[k>>2]|0)+4>>2]=c[q>>2];if(c[q>>2]|0){mE(c[q>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;break;}c[j>>2]=-64;u=c[j>>2]|0;l=h;return u|0;}else{c[c[k>>2]>>2]=0;c[(c[k>>2]|0)+4>>2]=c[m>>2];}}while(0);c[(c[k>>2]|0)+8>>2]=c[n>>2];Cj((c[k>>2]|0)+128|0);c[r>>2]=Dj((c[k>>2]|0)+20|0,(c[(c[k>>2]|0)+12>>2]|0)+6144|0,g,0,0)|0;r=s;n=r+104|0;do{c[r>>2]=0;r=r+4|0;}while((r|0)<(n|0));c[s+44>>2]=3;c[s+32>>2]=1;r=s+4|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];c[r+12>>2]=c[g+12>>2];c[r+16>>2]=c[g+16>>2];c[r+20>>2]=c[g+20>>2];c[r+24>>2]=c[g+24>>2];c[t>>2]=Ej((c[k>>2]|0)+128|0,(c[k>>2]|0)+20|0,s,c[(c[k>>2]|0)+4>>2]|0,c[(c[k>>2]|0)+8>>2]|0,c[p>>2]|0,c[(c[k>>2]|0)+12>>2]|0)|0;p=(Ph(c[t>>2]|0)|0)!=0;s=c[t>>2]|0;if(p){c[j>>2]=s;u=c[j>>2]|0;l=h;return u|0;}else{c[(c[k>>2]|0)+4760>>2]=s;c[j>>2]=0;u=c[j>>2]|0;l=h;return u|0;}return 0;}function Cj(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=0;while(1){if((c[e>>2]|0)>=3)break;c[(c[d>>2]|0)+4580+(c[e>>2]<<2)>>2]=c[11940+(c[e>>2]<<2)>>2];c[e>>2]=(c[e>>2]|0)+1;}c[(c[d>>2]|0)+4564>>2]=0;c[(c[d>>2]|0)+4568>>2]=0;c[(c[d>>2]|0)+4572>>2]=0;c[(c[d>>2]|0)+4576>>2]=0;l=b;return;}function Dj(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,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;g=l;l=l+48|0;h=g+36|0;i=g+32|0;j=g+28|0;k=g+24|0;m=g+20|0;n=g+16|0;o=g+12|0;p=g+8|0;q=g+4|0;r=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;if((c[(c[j>>2]|0)+24>>2]|0)==1)s=0;else s=1<>2]|0)+4>>2];c[n>>2]=s;c[o>>2]=1<>2]|0)+8>>2];if(c[m>>2]|0?(c[(c[j>>2]|0)+16>>2]|0)==3:0){if(17<(c[c[j>>2]>>2]|0)>>>0)t=17;else t=c[c[j>>2]>>2]|0;}else t=0;c[p>>2]=t;c[q>>2]=1<>2];c[r>>2]=(c[n>>2]|0)+(c[o>>2]|0)+(c[q>>2]|0)<<2;c[(c[h>>2]|0)+32>>2]=c[p>>2];p=c[h>>2]|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;hl(c[h>>2]|0);if(c[m>>2]|0?((c[(c[j>>2]|0)+24>>2]|0)==7?1:(c[(c[j>>2]|0)+24>>2]|0)==8)|0:0){c[(c[h>>2]|0)+48>>2]=c[i>>2];c[(c[h>>2]|0)+48+4>>2]=(c[(c[h>>2]|0)+48>>2]|0)+1024;c[(c[h>>2]|0)+48+8>>2]=(c[(c[h>>2]|0)+48+4>>2]|0)+144;c[(c[h>>2]|0)+48+12>>2]=(c[(c[h>>2]|0)+48+8>>2]|0)+212;c[i>>2]=(c[(c[h>>2]|0)+48+12>>2]|0)+128;c[(c[h>>2]|0)+48+16>>2]=c[i>>2];c[i>>2]=(c[(c[h>>2]|0)+48+16>>2]|0)+32768+8;c[(c[h>>2]|0)+48+20>>2]=c[i>>2];c[i>>2]=(c[(c[h>>2]|0)+48+20>>2]|0)+114688+28;}if((c[k>>2]|0)==1){u=c[i>>2]|0;v=c[h>>2]|0;w=v+36|0;c[w>>2]=u;x=c[h>>2]|0;y=x+36|0;z=c[y>>2]|0;A=c[o>>2]|0;B=z+(A<<2)|0;C=c[h>>2]|0;D=C+44|0;c[D>>2]=B;E=c[h>>2]|0;F=E+44|0;G=c[F>>2]|0;H=c[n>>2]|0;I=G+(H<<2)|0;J=c[h>>2]|0;K=J+40|0;c[K>>2]=I;L=c[h>>2]|0;M=L+40|0;N=c[M>>2]|0;O=c[q>>2]|0;P=N+(O<<2)|0;c[i>>2]=P;Q=c[i>>2]|0;l=g;return Q|0;}oE(c[i>>2]|0,0,c[r>>2]|0)|0;u=c[i>>2]|0;v=c[h>>2]|0;w=v+36|0;c[w>>2]=u;x=c[h>>2]|0;y=x+36|0;z=c[y>>2]|0;A=c[o>>2]|0;B=z+(A<<2)|0;C=c[h>>2]|0;D=C+44|0;c[D>>2]=B;E=c[h>>2]|0;F=E+44|0;G=c[F>>2]|0;H=c[n>>2]|0;I=G+(H<<2)|0;J=c[h>>2]|0;K=J+40|0;c[K>>2]=I;L=c[h>>2]|0;M=L+40|0;N=c[M>>2]|0;O=c[q>>2]|0;P=N+(O<<2)|0;c[i>>2]=P;Q=c[i>>2]|0;l=g;return Q|0;}function Ej(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=l;l=l+32|0;j=i+28|0;k=i+24|0;m=i+20|0;n=i+16|0;o=i+12|0;p=i+8|0;q=i+4|0;r=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;if((c[o>>2]|0)==0|(c[p>>2]|0)>>>0<=8){c[j>>2]=0;s=c[j>>2]|0;l=i;return s|0;}Cj(c[k>>2]|0);if((c[q>>2]|0)==1){c[j>>2]=Fj(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;s=c[j>>2]|0;l=i;return s|0;}if((Gj(c[o>>2]|0)|0)!=-332356553){if(!(c[q>>2]|0)){c[j>>2]=Fj(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;s=c[j>>2]|0;l=i;return s|0;}if((c[q>>2]|0)==2){c[j>>2]=-32;s=c[j>>2]|0;l=i;return s|0;}}c[j>>2]=Hj(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[r>>2]|0)|0;s=c[j>>2]|0;l=i;return s|0;}function Fj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=c[j>>2];c[n>>2]=(c[m>>2]|0)+(c[k>>2]|0);c[o>>2]=(c[i>>2]|0)+4;Mj(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;if(c[(c[i>>2]|0)+52>>2]|0)p=0;else p=(c[n>>2]|0)-(c[(c[h>>2]|0)+4>>2]|0)|0;c[(c[h>>2]|0)+20>>2]=p;if((c[k>>2]|0)>>>0<=8){c[g>>2]=0;q=c[g>>2]|0;l=f;return q|0;}switch(c[(c[i>>2]|0)+4+24>>2]|0){case 1:{Nj(c[h>>2]|0,c[o>>2]|0,c[n>>2]|0);break;}case 2:{Oj(c[h>>2]|0,c[o>>2]|0,c[n>>2]|0);break;}case 5:case 4:case 3:{if((c[k>>2]|0)>>>0>=8)Pj(c[h>>2]|0,c[o>>2]|0,(c[n>>2]|0)+-8|0)|0;break;}case 8:case 7:case 6:{if((c[k>>2]|0)>>>0>=8)Qj(c[h>>2]|0,c[o>>2]|0,(c[n>>2]|0)+-8|0,c[n>>2]|0);break;}default:{}}c[(c[h>>2]|0)+24>>2]=(c[n>>2]|0)-(c[(c[h>>2]|0)+4>>2]|0);c[g>>2]=0;q=c[g>>2]|0;l=f;return q|0;}function Gj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Jj()|0)!=0;f=Kj(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Lj(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Hj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;h=l;l=l+384|0;i=h+380|0;j=h+376|0;k=h+372|0;m=h+368|0;n=h+364|0;o=h+360|0;p=h+356|0;q=h+352|0;r=h+348|0;s=h+192|0;t=h+344|0;u=h+340|0;v=h+336|0;w=h+332|0;x=h+328|0;y=h+324|0;z=h+320|0;A=h+80|0;B=h+316|0;C=h+312|0;D=h+308|0;E=h+304|0;F=h+300|0;G=h;H=h+296|0;I=h+292|0;J=h+288|0;K=h+284|0;L=h+280|0;M=h+276|0;N=h+272|0;O=h+268|0;P=h+264|0;Q=h+260|0;R=h+256|0;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[n>>2];c[r>>2]=(c[q>>2]|0)+(c[o>>2]|0);c[t>>2]=31;c[q>>2]=(c[q>>2]|0)+4;if(c[(c[m>>2]|0)+32+8>>2]|0)S=0;else S=Gj(c[q>>2]|0)|0;c[u>>2]=S;c[q>>2]=(c[q>>2]|0)+4;c[v>>2]=255;c[w>>2]=Ji(c[j>>2]|0,v,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0)|0;if($g(c[w>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}if((c[v>>2]|0)>>>0<255){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[q>>2]=(c[q>>2]|0)+(c[w>>2]|0);c[y>>2]=ah(s,t,x,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0)|0;if(Zg(c[y>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}if((c[x>>2]|0)>>>0>8){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[z>>2]=Uh((c[j>>2]|0)+1024|0,s,c[t>>2]|0,c[x>>2]|0,c[p>>2]|0,6144)|0;if(wj(c[z>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[q>>2]=(c[q>>2]|0)+(c[y>>2]|0);c[B>>2]=52;c[D>>2]=ah(A,B,C,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0)|0;if(Zg(c[D>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}if((c[C>>2]|0)>>>0>9){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[E>>2]=Ij(A,c[B>>2]|0,52)|0;if(wj(c[E>>2]|0)|0){c[i>>2]=c[E>>2];T=c[i>>2]|0;l=h;return T|0;}c[F>>2]=Uh((c[j>>2]|0)+1796|0,A,c[B>>2]|0,c[C>>2]|0,c[p>>2]|0,6144)|0;if(wj(c[F>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[q>>2]=(c[q>>2]|0)+(c[D>>2]|0);c[H>>2]=35;c[J>>2]=ah(G,H,I,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0)|0;if(Zg(c[J>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}if((c[I>>2]|0)>>>0>9){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[K>>2]=Ij(G,c[H>>2]|0,35)|0;if(wj(c[K>>2]|0)|0){c[i>>2]=c[K>>2];T=c[i>>2]|0;l=h;return T|0;}c[L>>2]=Uh((c[j>>2]|0)+3248|0,G,c[H>>2]|0,c[I>>2]|0,c[p>>2]|0,6144)|0;if(wj(c[L>>2]|0)|0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}c[q>>2]=(c[q>>2]|0)+(c[J>>2]|0);if(((c[q>>2]|0)+12|0)>>>0>(c[r>>2]|0)>>>0){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}J=Gj(c[q>>2]|0)|0;c[(c[j>>2]|0)+4580>>2]=J;J=Gj((c[q>>2]|0)+4|0)|0;c[(c[j>>2]|0)+4580+4>>2]=J;J=Gj((c[q>>2]|0)+8|0)|0;c[(c[j>>2]|0)+4580+8>>2]=J;c[q>>2]=(c[q>>2]|0)+12;c[M>>2]=(c[r>>2]|0)-(c[q>>2]|0);c[N>>2]=31;if((c[M>>2]|0)>>>0<=4294836223){c[O>>2]=(c[M>>2]|0)+131072;c[N>>2]=uj(c[O>>2]|0)|0;}c[P>>2]=Ij(s,c[t>>2]|0,(c[N>>2]|0)>>>0<31?c[N>>2]|0:31)|0;if(wj(c[P>>2]|0)|0){c[i>>2]=c[P>>2];T=c[i>>2]|0;l=h;return T|0;}c[Q>>2]=0;while(1){U=c[j>>2]|0;if((c[Q>>2]|0)>>>0>=3){V=42;break;}if(!(c[U+4580+(c[Q>>2]<<2)>>2]|0)){V=38;break;}if((c[(c[j>>2]|0)+4580+(c[Q>>2]<<2)>>2]|0)>>>0>(c[M>>2]|0)>>>0){V=40;break;}c[Q>>2]=(c[Q>>2]|0)+1;}if((V|0)==38){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}else if((V|0)==40){c[i>>2]=-30;T=c[i>>2]|0;l=h;return T|0;}else if((V|0)==42){c[U+4564>>2]=2;c[(c[j>>2]|0)+4568>>2]=2;c[(c[j>>2]|0)+4572>>2]=2;c[(c[j>>2]|0)+4576>>2]=2;c[R>>2]=Fj(c[k>>2]|0,c[m>>2]|0,c[q>>2]|0,c[M>>2]|0)|0;if(wj(c[R>>2]|0)|0){c[i>>2]=c[R>>2];T=c[i>>2]|0;l=h;return T|0;}else{c[i>>2]=c[u>>2];T=c[i>>2]|0;l=h;return T|0;}}return 0;}function Ij(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[h>>2]=a;c[i>>2]=d;c[j>>2]=e;if((c[i>>2]|0)>>>0<(c[j>>2]|0)>>>0){c[g>>2]=-30;m=c[g>>2]|0;l=f;return m|0;}c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>(c[j>>2]|0)>>>0){n=8;break;}if(!(b[(c[h>>2]|0)+(c[k>>2]<<1)>>1]|0)){n=6;break;}c[k>>2]=(c[k>>2]|0)+1;}if((n|0)==6){c[g>>2]=-30;m=c[g>>2]|0;l=f;return m|0;}else if((n|0)==8){c[g>>2]=0;m=c[g>>2]|0;l=f;return m|0;}return 0;}function Jj(){return d[11936]|0|0;}function Kj(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Lj(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;e=l;l=l+32|0;f=e+28|0;g=e+24|0;h=e+20|0;i=e+16|0;j=e+12|0;k=e+8|0;m=e+4|0;n=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=1;if((c[g>>2]|0)!=(c[c[f>>2]>>2]|0)){c[k>>2]=(c[c[f>>2]>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0);c[(c[f>>2]|0)+16>>2]=c[(c[f>>2]|0)+12>>2];c[(c[f>>2]|0)+12>>2]=c[k>>2];c[(c[f>>2]|0)+8>>2]=c[(c[f>>2]|0)+4>>2];c[(c[f>>2]|0)+4>>2]=(c[i>>2]|0)+(0-(c[k>>2]|0));if(((c[(c[f>>2]|0)+12>>2]|0)-(c[(c[f>>2]|0)+16>>2]|0)|0)>>>0<8)c[(c[f>>2]|0)+16>>2]=c[(c[f>>2]|0)+12>>2];c[j>>2]=0;}c[c[f>>2]>>2]=(c[i>>2]|0)+(c[h>>2]|0);if(!(((c[i>>2]|0)>>>0<((c[(c[f>>2]|0)+8>>2]|0)+(c[(c[f>>2]|0)+12>>2]|0)|0)>>>0?((c[i>>2]|0)+(c[h>>2]|0)|0)>>>0>((c[(c[f>>2]|0)+8>>2]|0)+(c[(c[f>>2]|0)+16>>2]|0)|0)>>>0:0)|0)){o=c[j>>2]|0;l=e;return o|0;}c[m>>2]=(c[i>>2]|0)+(c[h>>2]|0)-(c[(c[f>>2]|0)+8>>2]|0);if((c[m>>2]|0)>(c[(c[f>>2]|0)+12>>2]|0))p=c[(c[f>>2]|0)+12>>2]|0;else p=c[m>>2]|0;c[n>>2]=p;c[(c[f>>2]|0)+16>>2]=c[n>>2];o=c[j>>2]|0;l=e;return o|0;}function Nj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+64|0;f=e+48|0;g=e+44|0;h=e+40|0;i=e+36|0;j=e+32|0;k=e+28|0;m=e+24|0;n=e+20|0;o=e+16|0;p=e+8|0;q=e+4|0;r=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[(c[f>>2]|0)+36>>2];c[j>>2]=c[(c[g>>2]|0)+8>>2];c[k>>2]=c[(c[g>>2]|0)+16>>2];c[m>>2]=c[(c[f>>2]|0)+4>>2];c[n>>2]=(c[m>>2]|0)+(c[(c[f>>2]|0)+24>>2]|0);c[o>>2]=(c[h>>2]|0)+-8;c[e+12>>2]=3;while(1){if(((c[n>>2]|0)+3+-1|0)>>>0>(c[o>>2]|0)>>>0)break;c[p>>2]=(c[n>>2]|0)-(c[m>>2]|0);c[q>>2]=0;while(1){s=c[n>>2]|0;if((c[q>>2]|0)>>>0>=3)break;c[r>>2]=Tk(s+(c[q>>2]|0)|0,c[j>>2]|0,c[k>>2]|0)|0;if(!((c[q>>2]|0)!=0?(c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]|0)!=0:0))c[(c[i>>2]|0)+(c[r>>2]<<2)>>2]=(c[p>>2]|0)+(c[q>>2]|0);c[q>>2]=(c[q>>2]|0)+1;}c[n>>2]=s+3;}l=e;return;}function Oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+64|0;f=e+60|0;g=e+56|0;h=e+52|0;i=e+48|0;j=e+44|0;k=e+40|0;m=e+36|0;n=e+32|0;o=e+28|0;p=e+24|0;q=e+20|0;r=e+12|0;s=e+8|0;t=e+4|0;u=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[(c[f>>2]|0)+36>>2];c[j>>2]=c[(c[g>>2]|0)+8>>2];c[k>>2]=c[(c[g>>2]|0)+16>>2];c[m>>2]=c[(c[f>>2]|0)+44>>2];c[n>>2]=c[(c[g>>2]|0)+4>>2];c[o>>2]=c[(c[f>>2]|0)+4>>2];c[p>>2]=(c[o>>2]|0)+(c[(c[f>>2]|0)+24>>2]|0);c[q>>2]=(c[h>>2]|0)+-8;c[e+16>>2]=3;while(1){if(((c[p>>2]|0)+3+-1|0)>>>0>(c[q>>2]|0)>>>0)break;c[r>>2]=(c[p>>2]|0)-(c[o>>2]|0);c[s>>2]=0;while(1){v=c[p>>2]|0;if((c[s>>2]|0)>>>0>=3)break;c[t>>2]=Dk(v+(c[s>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0;c[u>>2]=Dk((c[p>>2]|0)+(c[s>>2]|0)|0,c[j>>2]|0,8)|0;if(!(c[s>>2]|0))c[(c[m>>2]|0)+(c[t>>2]<<2)>>2]=(c[r>>2]|0)+(c[s>>2]|0);if(!((c[s>>2]|0)!=0?(c[(c[i>>2]|0)+(c[u>>2]<<2)>>2]|0)!=0:0))c[(c[i>>2]|0)+(c[u>>2]<<2)>>2]=(c[r>>2]|0)+(c[s>>2]|0);c[s>>2]=(c[s>>2]|0)+1;}c[p>>2]=v+3;}l=e;return;}function Pj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=mk(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,c[(c[g>>2]|0)+16>>2]|0)|0;l=e;return d|0;}function Qj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+64|0;g=f+48|0;h=f+44|0;i=f+40|0;j=f+36|0;k=f+32|0;m=f+28|0;n=f+24|0;o=f+20|0;p=f+16|0;q=f+12|0;r=f+8|0;s=f+4|0;t=f;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[t>>2]=e;e=c[r>>2]|0;d=c[s>>2]|0;s=c[t>>2]|0;t=c[(c[r>>2]|0)+16>>2]|0;c[g>>2]=c[q>>2];c[h>>2]=e;c[i>>2]=d;c[j>>2]=s;c[k>>2]=t;c[m>>2]=0;c[n>>2]=c[(c[g>>2]|0)+4>>2];c[o>>2]=(c[i>>2]|0)-(c[n>>2]|0);c[p>>2]=c[(c[g>>2]|0)+24>>2];while(1){if((c[p>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;i=Rj(c[g>>2]|0,c[h>>2]|0,(c[n>>2]|0)+(c[p>>2]|0)|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+i;}c[(c[g>>2]|0)+24>>2]=c[o>>2];l=f;return;}function Rj(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;i=l;l=l+144|0;j=i+128|0;k=i+124|0;m=i+120|0;n=i+116|0;o=i+112|0;p=i+108|0;q=i+104|0;r=i+100|0;s=i+96|0;t=i+92|0;u=i+88|0;v=i+84|0;w=i+80|0;x=i+76|0;y=i+72|0;z=i+68|0;A=i+64|0;B=i+60|0;C=i+56|0;D=i+52|0;E=i+48|0;F=i+44|0;G=i+40|0;H=i+36|0;I=i+32|0;J=i+28|0;K=i+24|0;L=i+20|0;M=i+16|0;N=i+12|0;O=i+8|0;P=i+4|0;Q=i;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=c[(c[k>>2]|0)+36>>2];c[s>>2]=c[(c[m>>2]|0)+8>>2];c[t>>2]=Sj(c[n>>2]|0,c[s>>2]|0,c[p>>2]|0)|0;c[u>>2]=c[(c[k>>2]|0)+44>>2];c[v>>2]=(c[(c[m>>2]|0)+4>>2]|0)-1;c[w>>2]=(1<>2])-1;c[x>>2]=c[(c[r>>2]|0)+(c[t>>2]<<2)>>2];c[y>>2]=0;c[z>>2]=0;c[A>>2]=c[(c[k>>2]|0)+4>>2];c[B>>2]=c[(c[k>>2]|0)+8>>2];c[C>>2]=c[(c[k>>2]|0)+12>>2];c[D>>2]=(c[B>>2]|0)+(c[C>>2]|0);c[E>>2]=(c[A>>2]|0)+(c[C>>2]|0);c[G>>2]=(c[n>>2]|0)-(c[A>>2]|0);if((c[w>>2]|0)>>>0>=(c[G>>2]|0)>>>0)R=0;else R=(c[G>>2]|0)-(c[w>>2]|0)|0;c[H>>2]=R;c[I>>2]=(c[u>>2]|0)+((c[G>>2]&c[w>>2])<<1<<2);c[J>>2]=(c[I>>2]|0)+4;c[L>>2]=c[(c[k>>2]|0)+16>>2];c[M>>2]=(c[G>>2]|0)+8+1;c[N>>2]=8;c[O>>2]=1<>2]|0)+12>>2];c[(c[r>>2]|0)+(c[t>>2]<<2)>>2]=c[G>>2];while(1){t=c[O>>2]|0;c[O>>2]=t+-1;if(!t)break;if((c[x>>2]|0)>>>0<=(c[L>>2]|0)>>>0)break;c[P>>2]=(c[u>>2]|0)+((c[x>>2]&c[w>>2])<<1<<2);c[Q>>2]=(c[y>>2]|0)>>>0<(c[z>>2]|0)>>>0?c[y>>2]|0:c[z>>2]|0;if(c[q>>2]|0?((c[x>>2]|0)+(c[Q>>2]|0)|0)>>>0<(c[C>>2]|0)>>>0:0){c[F>>2]=(c[B>>2]|0)+(c[x>>2]|0);t=Uj((c[n>>2]|0)+(c[Q>>2]|0)|0,(c[F>>2]|0)+(c[Q>>2]|0)|0,c[o>>2]|0,c[D>>2]|0,c[E>>2]|0)|0;c[Q>>2]=(c[Q>>2]|0)+t;if(((c[x>>2]|0)+(c[Q>>2]|0)|0)>>>0>=(c[C>>2]|0)>>>0)c[F>>2]=(c[A>>2]|0)+(c[x>>2]|0);}else{c[F>>2]=(c[A>>2]|0)+(c[x>>2]|0);t=Tj((c[n>>2]|0)+(c[Q>>2]|0)|0,(c[F>>2]|0)+(c[Q>>2]|0)|0,c[o>>2]|0)|0;c[Q>>2]=(c[Q>>2]|0)+t;}if((c[Q>>2]|0)>>>0>(c[N>>2]|0)>>>0?(c[N>>2]=c[Q>>2],(c[Q>>2]|0)>>>0>((c[M>>2]|0)-(c[x>>2]|0)|0)>>>0):0)c[M>>2]=(c[x>>2]|0)+(c[Q>>2]|0);if(((c[n>>2]|0)+(c[Q>>2]|0)|0)==(c[o>>2]|0))break;t=c[x>>2]|0;if((d[(c[F>>2]|0)+(c[Q>>2]|0)>>0]|0|0)<(d[(c[n>>2]|0)+(c[Q>>2]|0)>>0]|0|0)){c[c[I>>2]>>2]=t;c[y>>2]=c[Q>>2];if((c[x>>2]|0)>>>0<=(c[H>>2]|0)>>>0){S=17;break;}c[I>>2]=(c[P>>2]|0)+4;c[x>>2]=c[(c[P>>2]|0)+4>>2];}else{c[c[J>>2]>>2]=t;c[z>>2]=c[Q>>2];if((c[x>>2]|0)>>>0<=(c[H>>2]|0)>>>0){S=20;break;}c[J>>2]=c[P>>2];c[x>>2]=c[c[P>>2]>>2];}}if((S|0)==17)c[I>>2]=K;else if((S|0)==20)c[J>>2]=K;c[c[J>>2]>>2]=0;c[c[I>>2]>>2]=0;if((c[N>>2]|0)>>>0>384){c[j>>2]=192<((c[N>>2]|0)-384|0)>>>0?192:(c[N>>2]|0)-384|0;T=c[j>>2]|0;l=i;return T|0;}else{c[j>>2]=(c[M>>2]|0)-((c[G>>2]|0)+8);T=c[j>>2]|0;l=i;return T|0;}return 0;}function Sj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;switch(c[i>>2]|0){case 8:{c[f>>2]=dk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 5:{c[f>>2]=ak(c[g>>2]|0,c[h>>2]|0)|0;break;}case 6:{c[f>>2]=bk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 7:{c[f>>2]=ck(c[g>>2]|0,c[h>>2]|0)|0;break;}default:c[f>>2]=$j(c[g>>2]|0,c[h>>2]|0)|0;}l=e;return c[f>>2]|0;}function Tj(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=Vj(c[i>>2]|0)|0;c[n>>2]=e^(Vj(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=Wj(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=Vj(c[i>>2]|0)|0;c[o>>2]=e^(Vj(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=Wj(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((Xj()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=Yj(c[i>>2]|0)|0,(o|0)==(Yj(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(Zj(c[i>>2]|0)|0)&65535,(o|0)==((Zj(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function Uj(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,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=Tj(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(Tj((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function Vj(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Wj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(_j()|0)!=0;f=(Xj()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function Xj(){return 0;}function Yj(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Zj(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function _j(){return d[11936]|0|0;}function $j(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Yj(c[e>>2]|0)|0;e=lk(b,c[f>>2]|0)|0;l=d;return e|0;}function ak(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=ek(c[e>>2]|0)|0;e=kk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function bk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=ek(c[e>>2]|0)|0;e=jk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function ck(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=ek(c[e>>2]|0)|0;e=ik(b,y,c[f>>2]|0)|0;l=d;return e|0;}function dk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=ek(c[e>>2]|0)|0;e=fk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function ek(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(_j()|0)!=0;f=gk(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=hk(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function fk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=cE(c[d>>2]|0,c[d+4>>2]|0,-1213897629,-820265764)|0;d=iE(f|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return d|0;}function gk(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function hk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function ik(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,8)|0;d=cE(f|0,y|0,-591420061,13573052)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function jk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,16)|0;d=cE(f|0,y|0,-1126383717,53019)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function kk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,24)|0;d=cE(f|0,y|0,465362107,207)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function lk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]|0,-1640531535)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function mk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;g=f+44|0;h=f+40|0;i=f+36|0;j=f+32|0;k=f+28|0;m=f+24|0;n=f+20|0;o=f+16|0;p=f+12|0;q=f+8|0;r=f+4|0;s=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=c[(c[g>>2]|0)+36>>2];c[m>>2]=c[(c[h>>2]|0)+8>>2];c[n>>2]=c[(c[g>>2]|0)+44>>2];c[o>>2]=(1<>2]|0)+4>>2])-1;c[p>>2]=c[(c[g>>2]|0)+4>>2];c[q>>2]=(c[i>>2]|0)-(c[p>>2]|0);c[r>>2]=c[(c[g>>2]|0)+24>>2];while(1){if((c[r>>2]|0)>>>0>=(c[q>>2]|0)>>>0)break;c[s>>2]=nk((c[p>>2]|0)+(c[r>>2]|0)|0,c[m>>2]|0,c[j>>2]|0)|0;c[(c[n>>2]|0)+((c[r>>2]&c[o>>2])<<2)>>2]=c[(c[k>>2]|0)+(c[s>>2]<<2)>>2];c[(c[k>>2]|0)+(c[s>>2]<<2)>>2]=c[r>>2];c[r>>2]=(c[r>>2]|0)+1;}c[(c[g>>2]|0)+24>>2]=c[q>>2];q=c[k>>2]|0;k=c[q+((nk(c[i>>2]|0,c[m>>2]|0,c[j>>2]|0)|0)<<2)>>2]|0;l=f;return k|0;}function nk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;switch(c[i>>2]|0){case 8:{c[f>>2]=sk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 5:{c[f>>2]=pk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 6:{c[f>>2]=qk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 7:{c[f>>2]=rk(c[g>>2]|0,c[h>>2]|0)|0;break;}default:c[f>>2]=ok(c[g>>2]|0,c[h>>2]|0)|0;}l=e;return c[f>>2]|0;}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Bk(c[e>>2]|0)|0;e=Ck(b,c[f>>2]|0)|0;l=d;return e|0;}function pk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=tk(c[e>>2]|0)|0;e=Ak(b,y,c[f>>2]|0)|0;l=d;return e|0;}function qk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=tk(c[e>>2]|0)|0;e=zk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function rk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=tk(c[e>>2]|0)|0;e=yk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function sk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=tk(c[e>>2]|0)|0;e=uk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function tk(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(vk()|0)!=0;f=wk(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=xk(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function uk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=cE(c[d>>2]|0,c[d+4>>2]|0,-1213897629,-820265764)|0;d=iE(f|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return d|0;}function vk(){return d[11936]|0|0;}function wk(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function xk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function yk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,8)|0;d=cE(f|0,y|0,-591420061,13573052)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function zk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,16)|0;d=cE(f|0,y|0,-1126383717,53019)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Ak(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,24)|0;d=cE(f|0,y|0,465362107,207)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Bk(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Ck(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]|0,-1640531535)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function Dk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;switch(c[i>>2]|0){case 8:{c[f>>2]=Ik(c[g>>2]|0,c[h>>2]|0)|0;break;}case 5:{c[f>>2]=Fk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 6:{c[f>>2]=Gk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 7:{c[f>>2]=Hk(c[g>>2]|0,c[h>>2]|0)|0;break;}default:c[f>>2]=Ek(c[g>>2]|0,c[h>>2]|0)|0;}l=e;return c[f>>2]|0;}function Ek(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Rk(c[e>>2]|0)|0;e=Sk(b,c[f>>2]|0)|0;l=d;return e|0;}function Fk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Jk(c[e>>2]|0)|0;e=Qk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Gk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Jk(c[e>>2]|0)|0;e=Pk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Hk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Jk(c[e>>2]|0)|0;e=Ok(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Ik(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Jk(c[e>>2]|0)|0;e=Kk(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Jk(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=(Lk()|0)!=0;f=Mk(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=Nk(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function Kk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=cE(c[d>>2]|0,c[d+4>>2]|0,-1213897629,-820265764)|0;d=iE(f|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return d|0;}function Lk(){return d[11936]|0|0;}function Mk(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function Nk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Ok(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,8)|0;d=cE(f|0,y|0,-591420061,13573052)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Pk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,16)|0;d=cE(f|0,y|0,-1126383717,53019)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Qk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,24)|0;d=cE(f|0,y|0,465362107,207)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function Rk(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Sk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]|0,-1640531535)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function Tk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;switch(c[i>>2]|0){case 8:{c[f>>2]=Yk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 5:{c[f>>2]=Vk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 6:{c[f>>2]=Wk(c[g>>2]|0,c[h>>2]|0)|0;break;}case 7:{c[f>>2]=Xk(c[g>>2]|0,c[h>>2]|0)|0;break;}default:c[f>>2]=Uk(c[g>>2]|0,c[h>>2]|0)|0;}l=e;return c[f>>2]|0;}function Uk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=fl(c[e>>2]|0)|0;e=gl(b,c[f>>2]|0)|0;l=d;return e|0;}function Vk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Zk(c[e>>2]|0)|0;e=el(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Wk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Zk(c[e>>2]|0)|0;e=dl(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Xk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Zk(c[e>>2]|0)|0;e=cl(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Yk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Zk(c[e>>2]|0)|0;e=_k(b,y,c[f>>2]|0)|0;l=d;return e|0;}function Zk(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b;e=b+8|0;c[e>>2]=a;a=($k()|0)!=0;f=al(c[e>>2]|0)|0;e=y;if(a){a=d;c[a>>2]=f;c[a+4>>2]=e;}else{a=bl(f,e)|0;e=d;c[e>>2]=a;c[e+4>>2]=y;}e=d;y=c[e+4>>2]|0;l=b;return c[e>>2]|0;}function _k(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=cE(c[d>>2]|0,c[d+4>>2]|0,-1213897629,-820265764)|0;d=iE(f|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return d|0;}function $k(){return d[11936]|0|0;}function al(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;e=a;f=a+4|0;y=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;l=b;return d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24|0;}function bl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function cl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,8)|0;d=cE(f|0,y|0,-591420061,13573052)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,16)|0;d=cE(f|0,y|0,-1126383717,53019)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function el(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=jE(c[d>>2]|0,c[d+4>>2]|0,24)|0;d=cE(f|0,y|0,465362107,207)|0;f=iE(d|0,y|0,64-(c[g>>2]|0)|0)|0;l=e;return f|0;}function fl(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function gl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]|0,-1640531535)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function hl(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;il(c[d>>2]|0);c[(c[d>>2]|0)+24>>2]=(c[(c[d>>2]|0)+12>>2]|0)+1;c[(c[d>>2]|0)+20>>2]=0;c[(c[d>>2]|0)+48+28>>2]=0;l=b;return;}function il(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=(c[c[d>>2]>>2]|0)-(c[(c[d>>2]|0)+4>>2]|0);c[f>>2]=c[e>>2];c[(c[d>>2]|0)+16>>2]=c[f>>2];c[(c[d>>2]|0)+12>>2]=c[f>>2];l=b;return;}function jl(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+628>>2]=0;a=(c[d>>2]|0)+240|0;c[a>>2]=0;c[a+4>>2]=0;l=b;return;}function kl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+12|0;e=b+8|0;f=b+4|0;g=b;c[d>>2]=1<>2];c[e>>2]=(c[a+8>>2]|0)>>>0<(c[a+4>>2]|0)>>>0?c[a+8>>2]|0:c[a+4>>2]|0;c[f>>2]=1<<(c[a+4>>2]|0)-(c[e>>2]|0);c[g>>2]=(c[f>>2]|0)+(c[d>>2]<<3);l=b;return(c[a>>2]|0?c[g>>2]|0:0)|0;}function ll(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;c[e>>2]=b;if(!(c[a>>2]|0)){f=0;l=d;return f|0;}f=((c[e>>2]|0)>>>0)/((c[a+12>>2]|0)>>>0)|0;l=d;return f|0;}function ml(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,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;h=l;l=l+304|0;i=h+200|0;j=h+80|0;k=h+196|0;m=h+192|0;n=h;o=h+188|0;p=h+184|0;q=h+76|0;r=h+72|0;s=h+68|0;t=h+64|0;u=h+60|0;v=h+56|0;w=h+52|0;x=h+48|0;z=h+44|0;A=h+40|0;B=h+36|0;C=h+32|0;D=h+28|0;E=h+24|0;F=h+20|0;G=h+16|0;H=h+12|0;I=h+8|0;c[m>>2]=a;a=n;c[a>>2]=d;c[a+4>>2]=e;c[o>>2]=f;c[p>>2]=g;if(!(c[o>>2]|0)){g=c[(c[m>>2]|0)+596>>2]|0;f=c[(c[m>>2]|0)+232>>2]|0;e=c[p>>2]|0;a=n;d=c[a>>2]|0;J=c[a+4>>2]|0;K=j;L=(c[m>>2]|0)+116|0;M=K+104|0;do{c[K>>2]=c[L>>2];K=K+4|0;L=L+4|0;}while((K|0)<(M|0));K=i;L=b;M=K+104|0;do{c[K>>2]=c[L>>2];K=K+4|0;L=L+4|0;}while((K|0)<(M|0));if(nl(j,i,g,f,e,d,J)|0){J=c[m>>2]|0;d=n;e=c[d>>2]|0;f=c[d+4>>2]|0;K=i;L=b;M=K+104|0;do{c[K>>2]=c[L>>2];K=K+4|0;L=L+4|0;}while((K|0)<(M|0));c[k>>2]=ol(J,i,e,f)|0;N=c[k>>2]|0;l=h;return N|0;}}if(c[b+68>>2]|0){c[b+68+20>>2]=c[b+4>>2];pl(b+68|0,b+4|0);f=ql(c[b+68+12>>2]|0)|0;e=(c[m>>2]|0)+408+32|0;c[e>>2]=f;c[e+4>>2]=y;}e=jE(1,0,c[b+4>>2]|0)|0;f=y;J=n;d=c[J+4>>2]|0;if(f>>>0>>0|((f|0)==(d|0)?e>>>0<(c[J>>2]|0)>>>0:0)){J=jE(1,0,c[b+4>>2]|0)|0;O=J;P=y;}else{J=n;O=c[J>>2]|0;P=c[J+4>>2]|0;}if(1>O>>>0)Q=1;else{O=jE(1,0,c[b+4>>2]|0)|0;J=y;P=n;e=c[P+4>>2]|0;if(J>>>0>>0|((J|0)==(e|0)?O>>>0<(c[P>>2]|0)>>>0:0)){P=jE(1,0,c[b+4>>2]|0)|0;R=P;S=y;}else{P=n;R=c[P>>2]|0;S=c[P+4>>2]|0;}Q=R;}c[q>>2]=Q;c[r>>2]=131072<(c[q>>2]|0)>>>0?131072:c[q>>2]|0;c[s>>2]=(c[b+4+16>>2]|0)==3?3:4;c[t>>2]=((c[r>>2]|0)>>>0)/((c[s>>2]|0)>>>0)|0;c[u>>2]=(c[r>>2]|0)+((c[t>>2]|0)*11|0);if((c[p>>2]|0)==1)T=(lj(c[r>>2]|0)|0)+1|0;else T=0;c[v>>2]=T;if((c[p>>2]|0)==1)U=(c[q>>2]|0)+(c[r>>2]|0)|0;else U=0;c[w>>2]=U;c[x>>2]=Aj(b+4|0,1)|0;U=b+68|0;q=c[r>>2]|0;c[i>>2]=c[U>>2];c[i+4>>2]=c[U+4>>2];c[i+8>>2]=c[U+8>>2];c[i+12>>2]=c[U+12>>2];c[i+16>>2]=c[U+16>>2];c[i+20>>2]=c[U+20>>2];c[z>>2]=ll(i,q)|0;c[B>>2]=6144;c[C>>2]=9184;c[D>>2]=(c[w>>2]|0)+(c[v>>2]|0);C=b+68|0;c[i>>2]=c[C>>2];c[i+4>>2]=c[C+4>>2];c[i+8>>2]=c[C+8>>2];c[i+12>>2]=c[C+12>>2];c[i+16>>2]=c[C+16>>2];c[i+20>>2]=c[C+20>>2];c[E>>2]=kl(i)|0;c[F>>2]=(c[z>>2]|0)*12;c[G>>2]=15328+(c[E>>2]|0)+(c[F>>2]|0)+(c[x>>2]|0)+(c[u>>2]|0)+(c[D>>2]|0);do{if((c[(c[m>>2]|0)+228>>2]|0)>>>0<(c[G>>2]|0)>>>0){if(c[(c[m>>2]|0)+364>>2]|0){c[k>>2]=-64;N=c[k>>2]|0;l=h;return N|0;}c[(c[m>>2]|0)+228>>2]=0;D=c[(c[m>>2]|0)+224>>2]|0;u=(c[m>>2]|0)+352|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];Th(D,i);D=c[G>>2]|0;u=(c[m>>2]|0)+352|0;c[i>>2]=c[u>>2];c[i+4>>2]=c[u+4>>2];c[i+8>>2]=c[u+8>>2];u=Rh(D,i)|0;c[(c[m>>2]|0)+224>>2]=u;if(c[(c[m>>2]|0)+224>>2]|0){c[(c[m>>2]|0)+228>>2]=c[G>>2];c[A>>2]=c[(c[m>>2]|0)+224>>2];c[(c[m>>2]|0)+472>>2]=c[(c[m>>2]|0)+224>>2];c[(c[m>>2]|0)+472+4>>2]=(c[(c[m>>2]|0)+472>>2]|0)+4592;c[A>>2]=(c[(c[m>>2]|0)+472+4>>2]|0)+4592;c[(c[m>>2]|0)+588>>2]=c[A>>2];break;}c[k>>2]=-64;N=c[k>>2]|0;l=h;return N|0;}}while(0);K=(c[m>>2]|0)+116|0;L=b;M=K+104|0;do{c[K>>2]=c[L>>2];K=K+4|0;L=L+4|0;}while((K|0)<(M|0));L=n;K=dE(c[L>>2]|0,c[L+4>>2]|0,1,0)|0;L=(c[m>>2]|0)+240|0;c[L>>2]=K;c[L+4>>2]=y;L=(c[m>>2]|0)+248|0;c[L>>2]=0;c[L+4>>2]=0;L=(c[m>>2]|0)+256|0;c[L>>2]=0;c[L+4>>2]=0;L=n;if((c[L>>2]|0)==-1?(c[L+4>>2]|0)==-1:0)c[(c[m>>2]|0)+116+32>>2]=0;c[(c[m>>2]|0)+232>>2]=c[r>>2];Lh((c[m>>2]|0)+264|0,0,0)|0;c[c[m>>2]>>2]=1;c[(c[m>>2]|0)+220>>2]=0;Cj(c[(c[m>>2]|0)+472>>2]|0);c[A>>2]=(c[(c[m>>2]|0)+588>>2]|0)+6144;if(c[b+68>>2]|0){c[H>>2]=1<>2];oE(c[A>>2]|0,0,c[H>>2]<<3|0)|0;c[(c[m>>2]|0)+408+20>>2]=c[A>>2];c[A>>2]=(c[(c[m>>2]|0)+408+20>>2]|0)+(c[H>>2]<<3);c[(c[m>>2]|0)+448>>2]=c[A>>2];c[A>>2]=(c[(c[m>>2]|0)+448>>2]|0)+((c[z>>2]|0)*12|0);c[(c[m>>2]|0)+452>>2]=c[z>>2];z=(c[m>>2]|0)+408|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;c[z+16>>2]=0;}c[A>>2]=Dj((c[m>>2]|0)+472+8|0,c[A>>2]|0,b+4|0,c[o>>2]|0,1)|0;c[(c[m>>2]|0)+368>>2]=c[A>>2];c[A>>2]=(c[(c[m>>2]|0)+368>>2]|0)+(c[t>>2]<<3);c[(c[m>>2]|0)+368+16>>2]=c[A>>2];c[(c[m>>2]|0)+368+20>>2]=(c[(c[m>>2]|0)+368+16>>2]|0)+(c[t>>2]|0);c[(c[m>>2]|0)+368+24>>2]=(c[(c[m>>2]|0)+368+20>>2]|0)+(c[t>>2]|0);c[(c[m>>2]|0)+368+8>>2]=(c[(c[m>>2]|0)+368+24>>2]|0)+(c[t>>2]|0);c[A>>2]=(c[(c[m>>2]|0)+368+8>>2]|0)+(c[r>>2]|0);if(c[b+68>>2]|0){c[I>>2]=1<<(c[b+68+4>>2]|0)-(c[b+68+8>>2]|0);oE(c[A>>2]|0,0,c[I>>2]|0)|0;c[(c[m>>2]|0)+408+24>>2]=c[A>>2];c[A>>2]=(c[(c[m>>2]|0)+408+24>>2]|0)+(c[I>>2]|0);il((c[m>>2]|0)+408|0);}rl(c[m>>2]|0,0,0)|0;c[(c[m>>2]|0)+596>>2]=c[w>>2];c[(c[m>>2]|0)+592>>2]=c[A>>2];c[(c[m>>2]|0)+616>>2]=c[v>>2];c[(c[m>>2]|0)+612>>2]=(c[(c[m>>2]|0)+592>>2]|0)+(c[w>>2]|0);c[k>>2]=0;N=c[k>>2]|0;l=h;return N|0;}function nl(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;i=l;l=l+80|0;j=i+48|0;k=i+16|0;m=i+44|0;n=i+12|0;o=i+8|0;p=i;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;f=p;c[f>>2]=g;c[f+4>>2]=h;h=a+4|0;f=b+4|0;c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];c[k+12>>2]=c[h+12>>2];c[k+16>>2]=c[h+16>>2];c[k+20>>2]=c[h+20>>2];c[k+24>>2]=c[h+24>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+16>>2];c[j+20>>2]=c[f+20>>2];c[j+24>>2]=c[f+24>>2];if(!(tl(k,j)|0)){q=0;r=q&1;l=i;return r|0;}f=a+68|0;a=b+68|0;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];c[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];c[j+20>>2]=c[a+20>>2];if(!(ul(k,j)|0)){q=0;r=q&1;l=i;return r|0;}k=c[m>>2]|0;m=c[n>>2]|0;n=c[o>>2]|0;o=b+4|0;b=p;p=c[b>>2]|0;a=c[b+4>>2]|0;c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];c[j+16>>2]=c[o+16>>2];c[j+20>>2]=c[o+20>>2];c[j+24>>2]=c[o+24>>2];q=(vl(k,m,n,j,p,a)|0)!=0;r=q&1;l=i;return r|0;}function ol(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0;f=l;l=l+32|0;g=f+16|0;h=f;i=f+12|0;j=f+8|0;c[g>>2]=a;a=h;c[a>>2]=d;c[a+4>>2]=e;e=jE(1,0,c[b+4>>2]|0)|0;a=y;d=h;k=c[d+4>>2]|0;if(a>>>0>>0|((a|0)==(k|0)?e>>>0<(c[d>>2]|0)>>>0:0)){d=jE(1,0,c[b+4>>2]|0)|0;m=y;n=d;}else{d=h;m=c[d+4>>2]|0;n=c[d>>2]|0;}if(1>n>>>0)o=1;else{n=jE(1,0,c[b+4>>2]|0)|0;d=y;m=h;e=c[m+4>>2]|0;if(d>>>0>>0|((d|0)==(e|0)?n>>>0<(c[m>>2]|0)>>>0:0)){m=jE(1,0,c[b+4>>2]|0)|0;p=m;q=y;}else{m=h;p=c[m>>2]|0;q=c[m+4>>2]|0;}o=p;}c[i>>2]=o;c[j>>2]=131072<(c[i>>2]|0)>>>0?131072:c[i>>2]|0;c[(c[g>>2]|0)+232>>2]=c[j>>2];j=(c[g>>2]|0)+116|0;i=b;o=j+104|0;do{c[j>>2]=c[i>>2];j=j+4|0;i=i+4|0;}while((j|0)<(o|0));i=h;j=dE(c[i>>2]|0,c[i+4>>2]|0,1,0)|0;i=(c[g>>2]|0)+240|0;c[i>>2]=j;c[i+4>>2]=y;i=(c[g>>2]|0)+248|0;c[i>>2]=0;c[i+4>>2]=0;i=(c[g>>2]|0)+256|0;c[i>>2]=0;c[i+4>>2]=0;i=h;if((c[i>>2]|0)==-1?(c[i+4>>2]|0)==-1:0)c[(c[g>>2]|0)+116+32>>2]=0;c[c[g>>2]>>2]=1;c[(c[g>>2]|0)+220>>2]=0;if(!(c[b+68>>2]|0)){r=c[g>>2]|0;rl(r,0,0)|0;s=c[g>>2]|0;t=s+472|0;u=t+8|0;hl(u);v=c[g>>2]|0;w=v+472|0;x=c[w>>2]|0;Cj(x);z=c[g>>2]|0;A=z+264|0;Lh(A,0,0)|0;l=f;return 0;}il((c[g>>2]|0)+408|0);r=c[g>>2]|0;rl(r,0,0)|0;s=c[g>>2]|0;t=s+472|0;u=t+8|0;hl(u);v=c[g>>2]|0;w=v+472|0;x=c[w>>2]|0;Cj(x);z=c[g>>2]|0;A=z+264|0;Lh(A,0,0)|0;l=f;return 0;}function pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+16|0;e=d+12|0;f=d+8|0;g=d+4|0;h=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[c[f>>2]>>2];if(!(c[(c[e>>2]|0)+8>>2]|0))c[(c[e>>2]|0)+8>>2]=3;if(!(c[(c[e>>2]|0)+12>>2]|0))c[(c[e>>2]|0)+12>>2]=64;if((c[(c[f>>2]|0)+24>>2]|0)>>>0>=7){if((c[(c[f>>2]|0)+20>>2]|0)>>>0>(c[(c[e>>2]|0)+12>>2]|0)>>>0)i=c[(c[f>>2]|0)+20>>2]|0;else i=c[(c[e>>2]|0)+12>>2]|0;c[h>>2]=i;c[(c[e>>2]|0)+12>>2]=c[h>>2];}if(!(c[(c[e>>2]|0)+4>>2]|0))c[(c[e>>2]|0)+4>>2]=6>((c[g>>2]|0)-7|0)>>>0?6:(c[g>>2]|0)-7|0;if(!(c[(c[e>>2]|0)+16>>2]|0)){if((c[g>>2]|0)>>>0<(c[(c[e>>2]|0)+4>>2]|0)>>>0)j=0;else j=(c[g>>2]|0)-(c[(c[e>>2]|0)+4>>2]|0)|0;c[(c[e>>2]|0)+16>>2]=j;}j=c[e>>2]|0;if((c[(c[e>>2]|0)+8>>2]|0)>>>0<(c[(c[e>>2]|0)+4>>2]|0)>>>0){k=c[j+8>>2]|0;m=c[e>>2]|0;n=m+8|0;c[n>>2]=k;l=d;return;}else{k=c[j+4>>2]|0;m=c[e>>2]|0;n=m+8|0;c[n>>2]=k;l=d;return;}}function ql(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=sl(-1213897629,-820265764,(c[d>>2]|0)-1|0,0)|0;l=b;return a|0;}function rl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;if((c[c[g>>2]>>2]|0)!=1){c[f>>2]=-60;j=c[f>>2]|0;l=e;return j|0;}if(c[(c[g>>2]|0)+116+68>>2]|0){c[f>>2]=-40;j=c[f>>2]|0;l=e;return j|0;}else{c[(c[g>>2]|0)+456>>2]=c[h>>2];c[(c[g>>2]|0)+456+8>>2]=c[i>>2];c[(c[g>>2]|0)+456+12>>2]=c[i>>2];c[(c[g>>2]|0)+456+4>>2]=0;c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function sl(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=l;l=l+32|0;g=f+16|0;h=f+8|0;i=f;j=g;c[j>>2]=a;c[j+4>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=i;c[e>>2]=1;c[e+4>>2]=0;while(1){e=h;if(!((c[e>>2]|0)!=0|(c[e+4>>2]|0)!=0))break;if((c[h>>2]&1|0)!=0|0!=0){e=g;b=i;d=cE(c[b>>2]|0,c[b+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;e=i;c[e>>2]=d;c[e+4>>2]=y;}e=h;d=iE(c[e>>2]|0,c[e+4>>2]|0,1)|0;e=h;c[e>>2]=d;c[e+4>>2]=y;e=g;d=g;b=cE(c[d>>2]|0,c[d+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;e=g;c[e>>2]=b;c[e+4>>2]=y;}g=i;y=c[g+4>>2]|0;l=f;return c[g>>2]|0;}function tl(a,b){a=a|0;b=b|0;return((c[a+8>>2]|0)==(c[b+8>>2]|0)?(c[a+4>>2]|0)==(c[b+4>>2]|0):0)&(c[a+24>>2]|0)==(c[b+24>>2]|0)&((c[a+16>>2]|0)==3|0)==((c[b+16>>2]|0)==3|0)|0;}function ul(a,b){a=a|0;b=b|0;var d=0;if(!(c[a>>2]|0)?!(c[b>>2]|0):0)d=1;else if((((c[a>>2]|0)==(c[b>>2]|0)?(c[a+4>>2]|0)==(c[b+4>>2]|0):0)?(c[a+8>>2]|0)==(c[b+8>>2]|0):0)?(c[a+12>>2]|0)==(c[b+12>>2]|0):0)d=(c[a+16>>2]|0)==(c[b+16>>2]|0);else d=0;return d&1|0;}function vl(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;h=l;l=l+32|0;i=h+28|0;j=h+24|0;k=h+20|0;m=h;n=h+16|0;o=h+12|0;p=h+8|0;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;d=m;c[d>>2]=f;c[d+4>>2]=g;g=jE(1,0,c[e>>2]|0)|0;d=y;f=m;b=c[f+4>>2]|0;if(d>>>0>>0|((d|0)==(b|0)?g>>>0<(c[f>>2]|0)>>>0:0)){f=jE(1,0,c[e>>2]|0)|0;q=f;r=y;}else{f=m;q=c[f>>2]|0;r=c[f+4>>2]|0;}if(1>q>>>0)s=1;else{q=jE(1,0,c[e>>2]|0)|0;f=y;r=m;g=c[r+4>>2]|0;if(f>>>0>>0|((f|0)==(g|0)?q>>>0<(c[r>>2]|0)>>>0:0)){r=jE(1,0,c[e>>2]|0)|0;t=r;u=y;}else{r=m;t=c[r>>2]|0;u=c[r+4>>2]|0;}s=t;}c[n>>2]=s;c[o>>2]=131072<(c[n>>2]|0)>>>0?131072:c[n>>2]|0;if((c[k>>2]|0)!=1){v=0;c[p>>2]=v;w=c[o>>2]|0;x=c[j>>2]|0;z=w>>>0<=x>>>0;A=z&1;B=c[p>>2]|0;C=c[i>>2]|0;D=B>>>0<=C>>>0;E=D&1;F=A&E;l=h;return F|0;}v=(c[n>>2]|0)+(c[o>>2]|0)|0;c[p>>2]=v;w=c[o>>2]|0;x=c[j>>2]|0;z=w>>>0<=x>>>0;A=z&1;B=c[p>>2]|0;C=c[i>>2]|0;D=B>>>0<=C>>>0;E=D&1;F=A&E;l=h;return F|0;}function wl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;xl(c[f>>2]|0,c[g>>2]&65535);a[(c[f>>2]|0)+2>>0]=(c[g>>2]|0)>>>16;l=e;return;}function xl(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g+4|0;i=g+8|0;j=g;c[h>>2]=d;b[i>>1]=f;f=(Jj()|0)!=0;d=c[h>>2]|0;if(f){yl(d,b[i>>1]|0);l=g;return;}else{c[j>>2]=d;a[c[j>>2]>>0]=b[i>>1];a[(c[j>>2]|0)+1>>0]=(e[i>>1]|0)>>8;l=g;return;}}function yl(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=f+4|0;c[g>>2]=d;b[h>>1]=e;e=b[h>>1]|0;h=c[g>>2]|0;a[h>>0]=e;a[h+1>>0]=e>>8;l=f;return;}function zl(b){b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;d=l;l=l+48|0;f=d+32|0;g=d+28|0;h=d+24|0;i=d+20|0;j=d+16|0;k=d+12|0;m=d+8|0;n=d+4|0;o=d;c[f>>2]=b;c[g>>2]=c[c[f>>2]>>2];c[h>>2]=c[(c[f>>2]|0)+16>>2];c[i>>2]=c[(c[f>>2]|0)+24>>2];c[j>>2]=c[(c[f>>2]|0)+20>>2];c[k>>2]=((c[(c[f>>2]|0)+4>>2]|0)-(c[c[f>>2]>>2]|0)|0)/8|0;c[m>>2]=0;while(1){if((c[m>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;c[n>>2]=e[(c[g>>2]|0)+(c[m>>2]<<3)+4>>1];c[o>>2]=e[(c[g>>2]|0)+(c[m>>2]<<3)+6>>1];b=(Al(c[n>>2]|0)|0)&255;a[(c[h>>2]|0)+(c[m>>2]|0)>>0]=b;b=(uj(c[(c[g>>2]|0)+(c[m>>2]<<3)>>2]|0)|0)&255;a[(c[i>>2]|0)+(c[m>>2]|0)>>0]=b;b=(Bl(c[o>>2]|0)|0)&255;a[(c[j>>2]|0)+(c[m>>2]|0)>>0]=b;c[m>>2]=(c[m>>2]|0)+1;}if((c[(c[f>>2]|0)+28>>2]|0)==1)a[(c[h>>2]|0)+(c[(c[f>>2]|0)+32>>2]|0)>>0]=35;if((c[(c[f>>2]|0)+28>>2]|0)!=2){l=d;return;}a[(c[j>>2]|0)+(c[(c[f>>2]|0)+32>>2]|0)>>0]=52;l=d;return;}function Al(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)>>>0>63){f=(uj(a)|0)+19|0;l=b;return f|0;}else{f=d[3008+a>>0]|0;l=b;return f|0;}return 0;}function Bl(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)>>>0>127){f=(uj(a)|0)+36|0;l=b;return f|0;}else{f=d[3072+a>>0]|0;l=b;return f|0;}return 0;}function Cl(a,b,d,e,f,g,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;o=l;l=l+64|0;p=o+48|0;q=o+44|0;r=o+40|0;s=o+36|0;t=o+32|0;u=o+28|0;v=o+24|0;w=o+20|0;x=o+16|0;y=o+12|0;z=o+8|0;A=o+4|0;B=o;c[q>>2]=a;c[r>>2]=b;c[s>>2]=d;c[t>>2]=e;c[u>>2]=f;c[v>>2]=g;c[w>>2]=h;c[x>>2]=i;c[y>>2]=j;c[z>>2]=k;c[A>>2]=m;c[B>>2]=n;if(c[B>>2]|0){c[p>>2]=Dl(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;C=c[p>>2]|0;l=o;return C|0;}else{c[p>>2]=El(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0,c[z>>2]|0,c[A>>2]|0)|0;C=c[p>>2]|0;l=o;return C|0;}return 0;}function Dl(b,f,g,h,i,j,k,m,n,o,p){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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;q=l;l=l+208|0;r=q+192|0;s=q+188|0;t=q+184|0;u=q+180|0;v=q+176|0;w=q+172|0;x=q+168|0;y=q+164|0;z=q+160|0;A=q+156|0;B=q+152|0;C=q+148|0;D=q+128|0;E=q+112|0;F=q+96|0;G=q+80|0;H=q+76|0;I=q+72|0;J=q+68|0;K=q+64|0;L=q+198|0;M=q+197|0;N=q+196|0;O=q+60|0;P=q+56|0;Q=q+52|0;R=q+48|0;S=q+44|0;T=q+40|0;U=q+36|0;V=q+32|0;W=q+28|0;X=q+24|0;Y=q+20|0;Z=q+16|0;_=q+12|0;$=q+8|0;aa=q+4|0;ba=q;c[T>>2]=b;c[U>>2]=f;c[V>>2]=g;c[W>>2]=h;c[X>>2]=i;c[Y>>2]=j;c[Z>>2]=k;c[_>>2]=m;c[$>>2]=n;c[aa>>2]=o;c[ba>>2]=p;p=c[U>>2]|0;U=c[V>>2]|0;V=c[W>>2]|0;W=c[X>>2]|0;X=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;aa=c[ba>>2]|0;c[s>>2]=c[T>>2];c[t>>2]=p;c[u>>2]=U;c[v>>2]=V;c[w>>2]=W;c[x>>2]=X;c[y>>2]=Y;c[z>>2]=Z;c[A>>2]=_;c[B>>2]=$;c[C>>2]=aa;c[H>>2]=Fl(D,c[s>>2]|0,c[t>>2]|0)|0;if(wj(c[H>>2]|0)|0){c[r>>2]=-70;ca=c[r>>2]|0;l=q;return ca|0;}Gl(E,c[u>>2]|0,d[(c[v>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Gl(F,c[w>>2]|0,d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Gl(G,c[y>>2]|0,d[(c[z>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Hl(D,e[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)+4>>1]|0,c[5696+((d[(c[z>>2]|0)+((c[B>>2]|0)-1)>>0]|0)<<2)>>2]|0);if(Il()|0)Jl(D);Hl(D,e[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)+6>>1]|0,c[5840+((d[(c[v>>2]|0)+((c[B>>2]|0)-1)>>0]|0)<<2)>>2]|0);if(Il()|0)Jl(D);if(c[C>>2]|0){c[I>>2]=d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0];y=c[I>>2]|0;w=c[I>>2]|0;u=(Il()|0)!=0;if(w>>>0<((u?25:57)-1|0)>>>0)da=c[I>>2]|0;else{u=(Il()|0)!=0;da=(u?25:57)-1|0;}c[J>>2]=y-da;if(c[J>>2]|0){Hl(D,c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0,c[J>>2]|0);Jl(D);}Hl(D,(c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0)>>>(c[J>>2]|0),(c[I>>2]|0)-(c[J>>2]|0)|0);}else Hl(D,c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0,d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Jl(D);c[K>>2]=(c[B>>2]|0)-2;while(1){if((c[K>>2]|0)>>>0>=(c[B>>2]|0)>>>0)break;a[L>>0]=a[(c[z>>2]|0)+(c[K>>2]|0)>>0]|0;a[M>>0]=a[(c[x>>2]|0)+(c[K>>2]|0)>>0]|0;a[N>>0]=a[(c[v>>2]|0)+(c[K>>2]|0)>>0]|0;c[O>>2]=c[5696+((d[L>>0]|0)<<2)>>2];c[P>>2]=d[M>>0];c[Q>>2]=c[5840+((d[N>>0]|0)<<2)>>2];Kl(D,F,d[M>>0]|0);Kl(D,E,d[N>>0]|0);if(Il()|0)Jl(D);Kl(D,G,d[L>>0]|0);if(!(!(Il()|0)?((c[P>>2]|0)+(c[Q>>2]|0)+(c[O>>2]|0)|0)>>>0<31:0))Jl(D);Hl(D,e[(c[A>>2]|0)+(c[K>>2]<<3)+4>>1]|0,c[O>>2]|0);if(Il()|0?((c[O>>2]|0)+(c[Q>>2]|0)|0)>>>0>24:0)Jl(D);Hl(D,e[(c[A>>2]|0)+(c[K>>2]<<3)+6>>1]|0,c[Q>>2]|0);if(!(!(Il()|0)?((c[P>>2]|0)+(c[Q>>2]|0)+(c[O>>2]|0)|0)>>>0<=56:0))Jl(D);if(c[C>>2]|0){J=c[P>>2]|0;I=c[P>>2]|0;da=(Il()|0)!=0;if(I>>>0<((da?25:57)-1|0)>>>0)ea=c[P>>2]|0;else{da=(Il()|0)!=0;ea=(da?25:57)-1|0;}c[R>>2]=J-ea;if(c[R>>2]|0){Hl(D,c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0,c[R>>2]|0);Jl(D);}Hl(D,(c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0)>>>(c[R>>2]|0),(c[P>>2]|0)-(c[R>>2]|0)|0);}else Hl(D,c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0,c[P>>2]|0);Jl(D);c[K>>2]=(c[K>>2]|0)+-1;}Ll(D,E);Ll(D,F);Ll(D,G);c[S>>2]=Ml(D)|0;if(!(c[S>>2]|0)){c[r>>2]=-70;ca=c[r>>2]|0;l=q;return ca|0;}else{c[r>>2]=c[S>>2];ca=c[r>>2]|0;l=q;return ca|0;}return 0;}function El(b,f,g,h,i,j,k,m,n,o,p){b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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;q=l;l=l+208|0;r=q+192|0;s=q+188|0;t=q+184|0;u=q+180|0;v=q+176|0;w=q+172|0;x=q+168|0;y=q+164|0;z=q+160|0;A=q+156|0;B=q+152|0;C=q+148|0;D=q+128|0;E=q+112|0;F=q+96|0;G=q+80|0;H=q+76|0;I=q+72|0;J=q+68|0;K=q+64|0;L=q+198|0;M=q+197|0;N=q+196|0;O=q+60|0;P=q+56|0;Q=q+52|0;R=q+48|0;S=q+44|0;T=q+40|0;U=q+36|0;V=q+32|0;W=q+28|0;X=q+24|0;Y=q+20|0;Z=q+16|0;_=q+12|0;$=q+8|0;aa=q+4|0;ba=q;c[T>>2]=b;c[U>>2]=f;c[V>>2]=g;c[W>>2]=h;c[X>>2]=i;c[Y>>2]=j;c[Z>>2]=k;c[_>>2]=m;c[$>>2]=n;c[aa>>2]=o;c[ba>>2]=p;p=c[U>>2]|0;U=c[V>>2]|0;V=c[W>>2]|0;W=c[X>>2]|0;X=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;aa=c[ba>>2]|0;c[s>>2]=c[T>>2];c[t>>2]=p;c[u>>2]=U;c[v>>2]=V;c[w>>2]=W;c[x>>2]=X;c[y>>2]=Y;c[z>>2]=Z;c[A>>2]=_;c[B>>2]=$;c[C>>2]=aa;c[H>>2]=Fl(D,c[s>>2]|0,c[t>>2]|0)|0;if(wj(c[H>>2]|0)|0){c[r>>2]=-70;ca=c[r>>2]|0;l=q;return ca|0;}Gl(E,c[u>>2]|0,d[(c[v>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Gl(F,c[w>>2]|0,d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Gl(G,c[y>>2]|0,d[(c[z>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Hl(D,e[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)+4>>1]|0,c[5696+((d[(c[z>>2]|0)+((c[B>>2]|0)-1)>>0]|0)<<2)>>2]|0);if(Il()|0)Jl(D);Hl(D,e[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)+6>>1]|0,c[5840+((d[(c[v>>2]|0)+((c[B>>2]|0)-1)>>0]|0)<<2)>>2]|0);if(Il()|0)Jl(D);if(c[C>>2]|0){c[I>>2]=d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0];y=c[I>>2]|0;w=c[I>>2]|0;u=(Il()|0)!=0;if(w>>>0<((u?25:57)-1|0)>>>0)da=c[I>>2]|0;else{u=(Il()|0)!=0;da=(u?25:57)-1|0;}c[J>>2]=y-da;if(c[J>>2]|0){Hl(D,c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0,c[J>>2]|0);Jl(D);}Hl(D,(c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0)>>>(c[J>>2]|0),(c[I>>2]|0)-(c[J>>2]|0)|0);}else Hl(D,c[(c[A>>2]|0)+((c[B>>2]|0)-1<<3)>>2]|0,d[(c[x>>2]|0)+((c[B>>2]|0)-1)>>0]|0);Jl(D);c[K>>2]=(c[B>>2]|0)-2;while(1){if((c[K>>2]|0)>>>0>=(c[B>>2]|0)>>>0)break;a[L>>0]=a[(c[z>>2]|0)+(c[K>>2]|0)>>0]|0;a[M>>0]=a[(c[x>>2]|0)+(c[K>>2]|0)>>0]|0;a[N>>0]=a[(c[v>>2]|0)+(c[K>>2]|0)>>0]|0;c[O>>2]=c[5696+((d[L>>0]|0)<<2)>>2];c[P>>2]=d[M>>0];c[Q>>2]=c[5840+((d[N>>0]|0)<<2)>>2];Kl(D,F,d[M>>0]|0);Kl(D,E,d[N>>0]|0);if(Il()|0)Jl(D);Kl(D,G,d[L>>0]|0);if(!(!(Il()|0)?((c[P>>2]|0)+(c[Q>>2]|0)+(c[O>>2]|0)|0)>>>0<31:0))Jl(D);Hl(D,e[(c[A>>2]|0)+(c[K>>2]<<3)+4>>1]|0,c[O>>2]|0);if(Il()|0?((c[O>>2]|0)+(c[Q>>2]|0)|0)>>>0>24:0)Jl(D);Hl(D,e[(c[A>>2]|0)+(c[K>>2]<<3)+6>>1]|0,c[Q>>2]|0);if(!(!(Il()|0)?((c[P>>2]|0)+(c[Q>>2]|0)+(c[O>>2]|0)|0)>>>0<=56:0))Jl(D);if(c[C>>2]|0){J=c[P>>2]|0;I=c[P>>2]|0;da=(Il()|0)!=0;if(I>>>0<((da?25:57)-1|0)>>>0)ea=c[P>>2]|0;else{da=(Il()|0)!=0;ea=(da?25:57)-1|0;}c[R>>2]=J-ea;if(c[R>>2]|0){Hl(D,c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0,c[R>>2]|0);Jl(D);}Hl(D,(c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0)>>>(c[R>>2]|0),(c[P>>2]|0)-(c[R>>2]|0)|0);}else Hl(D,c[(c[A>>2]|0)+(c[K>>2]<<3)>>2]|0,c[P>>2]|0);Jl(D);c[K>>2]=(c[K>>2]|0)+-1;}Ll(D,E);Ll(D,F);Ll(D,G);c[S>>2]=Ml(D)|0;if(!(c[S>>2]|0)){c[r>>2]=-70;ca=c[r>>2]|0;l=q;return ca|0;}else{c[r>>2]=c[S>>2];ca=c[r>>2]|0;l=q;return ca|0;}return 0;}function Fl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[c[g>>2]>>2]=0;c[(c[g>>2]|0)+4>>2]=0;c[(c[g>>2]|0)+8>>2]=c[h>>2];c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+8>>2];c[(c[g>>2]|0)+16>>2]=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]|0)+-4;if((c[i>>2]|0)>>>0<=4){c[f>>2]=-70;j=c[f>>2]|0;l=e;return j|0;}else{c[f>>2]=0;j=c[f>>2]|0;l=e;return j|0;}return 0;}function Gl(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;Ul(c[g>>2]|0,c[h>>2]|0);h=(c[(c[g>>2]|0)+8>>2]|0)+(c[i>>2]<<3)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[k>>2]=c[(c[g>>2]|0)+4>>2];c[m>>2]=((c[j+4>>2]|0)+32768|0)>>>16;c[c[g>>2]>>2]=(c[m>>2]<<16)-(c[j+4>>2]|0);c[c[g>>2]>>2]=e[(c[k>>2]|0)+((c[c[g>>2]>>2]>>c[m>>2])+(c[j>>2]|0)<<1)>>1];l=f;return;}function Hl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|(c[g>>2]&c[2800+(c[h>>2]<<2)>>2])<>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Il(){return 1;}function Jl(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=(c[(c[d>>2]|0)+4>>2]|0)>>>3;Ol(c[(c[d>>2]|0)+12>>2]|0,c[c[d>>2]>>2]|0);a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[e>>2]|0);if((c[(c[d>>2]|0)+12>>2]|0)>>>0>(c[(c[d>>2]|0)+16>>2]|0)>>>0)c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+16>>2];a=(c[d>>2]|0)+4|0;c[a>>2]=c[a>>2]&7;a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)>>>(c[e>>2]<<3);l=b;return;}function Kl(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;d=(c[(c[h>>2]|0)+8>>2]|0)+(c[i>>2]<<3)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[k>>2]=c[(c[h>>2]|0)+4>>2];c[m>>2]=((c[c[h>>2]>>2]|0)+(c[j+4>>2]|0)|0)>>>16;Hl(c[g>>2]|0,c[c[h>>2]>>2]|0,c[m>>2]|0);c[c[h>>2]>>2]=e[(c[k>>2]|0)+((c[c[h>>2]>>2]>>c[m>>2])+(c[j>>2]|0)<<1)>>1];l=f;return;}function Ll(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;Hl(c[e>>2]|0,c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+12>>2]|0);Jl(c[e>>2]|0);l=d;return;}function Ml(a){a=a|0;var b=0,d=0,e=0,f=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;Nl(c[e>>2]|0,1,1);Jl(c[e>>2]|0);if((c[(c[e>>2]|0)+12>>2]|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){c[d>>2]=0;f=c[d>>2]|0;l=b;return f|0;}else{c[d>>2]=(c[(c[e>>2]|0)+12>>2]|0)-(c[(c[e>>2]|0)+8>>2]|0)+((c[(c[e>>2]|0)+4>>2]|0)>>>0>0&1);f=c[d>>2]|0;l=b;return f|0;}return 0;}function Nl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=c[f>>2]|0;c[d>>2]=c[d>>2]|c[g>>2]<>2]|0)+4>>2];g=(c[f>>2]|0)+4|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Ol(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(Il()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){Pl(a,e);l=d;return;}else{Ql(a,e,0);l=d;return;}}function Pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=(Jj()|0)!=0;a=c[e>>2]|0;e=c[f>>2]|0;if(b){Tl(a,e);l=d;return;}else{Tl(a,Lj(e)|0);l=d;return;}}function Ql(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=(Jj()|0)!=0;a=c[f>>2]|0;f=g;g=c[f>>2]|0;b=c[f+4>>2]|0;if(d){Rl(a,g,b);l=e;return;}else{d=Sl(g,b)|0;Rl(a,d,y);l=e;return;}}function Rl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f+8|0;h=f;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;e=h;h=c[e>>2]|0;b=c[e+4>>2]|0;e=c[g>>2]|0;g=e;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;h=e+4|0;a[h>>0]=b;a[h+1>>0]=b>>8;a[h+2>>0]=b>>16;a[h+3>>0]=b>>24;l=f;return;}function Sl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=e;c[f>>2]=a;c[f+4>>2]=b;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,56)|0;b=y&-16777216;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,40)|0;f=b|y&16711680;b=e;jE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=f|y&65280;f=e;jE(c[f>>2]|0,c[f+4>>2]|0,8)|0;f=b|y&255;b=e;a=iE(c[b>>2]|0,c[b+4>>2]|0,8)|0;b=e;g=iE(c[b>>2]|0,c[b+4>>2]|0,24)|0;b=e;h=iE(c[b>>2]|0,c[b+4>>2]|0,40)|0;b=e;e=iE(c[b>>2]|0,c[b+4>>2]|0,56)|0;y=f;l=d;return a&-16777216|g&16711680|h&65280|e&255|0;}function Tl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[g>>2]|0;g=c[f>>2]|0;a[g>>0]=d;a[g+1>>0]=d>>8;a[g+2>>0]=d>>16;a[g+3>>0]=d>>24;l=e;return;}function Ul(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[f>>2];c[h>>2]=c[g>>2];c[i>>2]=(Vl(c[g>>2]|0)|0)&65535;c[c[e>>2]>>2]=1<>2];c[(c[e>>2]|0)+4>>2]=(c[h>>2]|0)+4;if(c[i>>2]|0)j=1<<(c[i>>2]|0)-1;else j=1;c[(c[e>>2]|0)+8>>2]=(c[f>>2]|0)+4+(j<<2);c[(c[e>>2]|0)+12>>2]=c[i>>2];l=d;return;}function Vl(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Wl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;l=d;return c[2928+(((c[f>>2]|0)!=0&1)*36|0)+(c[e>>2]<<2)>>2]|0;}function Xl(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=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,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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;i=l;l=l+512|0;j=i+500|0;k=i+496|0;m=i+492|0;n=i+488|0;o=i+484|0;p=i+480|0;q=i+476|0;r=i+472|0;s=i+468|0;t=i+464|0;u=i+460|0;v=i+456|0;w=i+452|0;x=i+448|0;y=i+444|0;z=i+440|0;A=i+436|0;B=i+432|0;C=i+428|0;D=i+424|0;E=i+420|0;F=i+416|0;G=i+412|0;H=i+408|0;I=i+404|0;J=i+400|0;K=i+396|0;L=i+392|0;M=i+388|0;N=i+384|0;O=i+380|0;P=i+376|0;Q=i+372|0;R=i+368|0;S=i+364|0;T=i+360|0;U=i+356|0;V=i+352|0;W=i+348|0;X=i+344|0;Y=i+340|0;Z=i+336|0;_=i+332|0;$=i+328|0;aa=i+324|0;ba=i+320|0;ca=i+316|0;da=i+312|0;ea=i+308|0;fa=i+304|0;ga=i+300|0;ha=i+296|0;ia=i+292|0;ja=i+288|0;ka=i+284|0;la=i+280|0;ma=i+276|0;na=i+272|0;oa=i+268|0;pa=i+264|0;qa=i+260|0;ra=i+256|0;sa=i+252|0;ta=i+248|0;ua=i+244|0;va=i+240|0;wa=i+236|0;xa=i+232|0;ya=i+228|0;za=i+224|0;Aa=i+220|0;Ba=i+216|0;Ca=i+212|0;Da=i+208|0;Ea=i+204|0;Fa=i+200|0;Ga=i+196|0;Ha=i+192|0;Ia=i+188|0;Ja=i+184|0;Ka=i+180|0;La=i+176|0;Ma=i+172|0;Na=i+168|0;Oa=i+164|0;Pa=i+160|0;Qa=i+156|0;Ra=i+152|0;Sa=i+148|0;Ta=i+144|0;Ua=i+140|0;Va=i+136|0;Wa=i+132|0;Xa=i+128|0;Ya=i+124|0;Za=i+120|0;_a=i+116|0;$a=i+112|0;ab=i+108|0;bb=i+104|0;cb=i+100|0;db=i+96|0;eb=i+92|0;fb=i+88|0;gb=i+84|0;hb=i+80|0;ib=i+76|0;jb=i+72|0;kb=i+68|0;lb=i+64|0;mb=i+60|0;nb=i+56|0;ob=i+52|0;pb=i+48|0;qb=i+44|0;rb=i+40|0;sb=i+36|0;tb=i+32|0;ub=i+28|0;vb=i+24|0;wb=i+20|0;xb=i+16|0;yb=i+12|0;zb=i+8|0;Ab=i+4|0;Bb=i;c[tb>>2]=a;c[ub>>2]=b;c[vb>>2]=e;c[wb>>2]=f;c[xb>>2]=g;c[yb>>2]=h;c[zb>>2]=c[(c[wb>>2]|0)+8>>2];c[Ab>>2]=c[(c[wb>>2]|0)+16>>2];c[Bb>>2]=c[(c[wb>>2]|0)+20>>2];switch(c[Ab>>2]|0){case 7:{Ab=c[ub>>2]|0;wb=c[vb>>2]|0;h=c[xb>>2]|0;g=c[yb>>2]|0;f=c[zb>>2]|0;e=c[Bb>>2]|0;c[j>>2]=c[tb>>2];c[k>>2]=Ab;c[m>>2]=wb;c[n>>2]=h;c[o>>2]=g;c[p>>2]=f;c[q>>2]=e;c[r>>2]=7;c[s>>2]=c[(c[j>>2]|0)+36>>2];c[t>>2]=c[(c[j>>2]|0)+4>>2];c[u>>2]=c[n>>2];c[v>>2]=c[u>>2];c[w>>2]=c[u>>2];c[x>>2]=c[(c[j>>2]|0)+12>>2];c[y>>2]=(c[t>>2]|0)+(c[x>>2]|0);c[z>>2]=(c[u>>2]|0)+(c[o>>2]|0);c[A>>2]=(c[z>>2]|0)+-8;c[B>>2]=c[c[m>>2]>>2];c[C>>2]=c[(c[m>>2]|0)+4>>2];c[D>>2]=0;c[v>>2]=(c[v>>2]|0)+((c[v>>2]|0)==(c[y>>2]|0)&1);c[E>>2]=(c[v>>2]|0)-(c[y>>2]|0);if((c[C>>2]|0)>>>0>(c[E>>2]|0)>>>0){c[D>>2]=c[C>>2];c[C>>2]=0;}if((c[B>>2]|0)>>>0>(c[E>>2]|0)>>>0){c[D>>2]=c[B>>2];c[B>>2]=0;}a:while(1){if((c[v>>2]|0)>>>0>=(c[A>>2]|0)>>>0)break;c[G>>2]=Tk(c[v>>2]|0,c[p>>2]|0,c[r>>2]|0)|0;c[H>>2]=(c[v>>2]|0)-(c[t>>2]|0);c[I>>2]=c[(c[s>>2]|0)+(c[G>>2]<<2)>>2];c[J>>2]=(c[t>>2]|0)+(c[I>>2]|0);c[(c[s>>2]|0)+(c[G>>2]<<2)>>2]=c[H>>2];E=(c[B>>2]|0)>>>0>0&1;o=fl((c[v>>2]|0)+1+(0-(c[B>>2]|0))|0)|0;do{if(E&(o|0)==(fl((c[v>>2]|0)+1|0)|0)|0){c[F>>2]=(nn((c[v>>2]|0)+1+4|0,(c[v>>2]|0)+1+4+(0-(c[B>>2]|0))|0,c[z>>2]|0)|0)+4;c[v>>2]=(c[v>>2]|0)+1;kn(c[k>>2]|0,(c[v>>2]|0)-(c[w>>2]|0)|0,c[w>>2]|0,0,(c[F>>2]|0)-3|0);}else{if((c[I>>2]|0)>>>0>(c[x>>2]|0)>>>0?(u=fl(c[J>>2]|0)|0,(u|0)==(fl(c[v>>2]|0)|0)):0){c[F>>2]=(nn((c[v>>2]|0)+4|0,(c[J>>2]|0)+4|0,c[z>>2]|0)|0)+4;c[K>>2]=(c[v>>2]|0)-(c[J>>2]|0);while(1){if(!(((c[v>>2]|0)>>>0>(c[w>>2]|0)>>>0?(c[J>>2]|0)>>>0>(c[y>>2]|0)>>>0:0)|0))break;if((d[(c[v>>2]|0)+-1>>0]|0|0)!=(d[(c[J>>2]|0)+-1>>0]|0|0))break;c[v>>2]=(c[v>>2]|0)+-1;c[J>>2]=(c[J>>2]|0)+-1;c[F>>2]=(c[F>>2]|0)+1;}c[C>>2]=c[B>>2];c[B>>2]=c[K>>2];kn(c[k>>2]|0,(c[v>>2]|0)-(c[w>>2]|0)|0,c[w>>2]|0,(c[K>>2]|0)+2|0,(c[F>>2]|0)-3|0);break;}c[v>>2]=(c[v>>2]|0)+(((c[v>>2]|0)-(c[w>>2]|0)>>8)+(c[q>>2]|0));continue a;}}while(0);c[v>>2]=(c[v>>2]|0)+(c[F>>2]|0);c[w>>2]=c[v>>2];b:do{if((c[v>>2]|0)>>>0<=(c[A>>2]|0)>>>0){o=(c[H>>2]|0)+2|0;E=c[s>>2]|0;c[E+((Tk((c[t>>2]|0)+(c[H>>2]|0)+2|0,c[p>>2]|0,c[r>>2]|0)|0)<<2)>>2]=o;o=(c[v>>2]|0)+-2-(c[t>>2]|0)|0;E=c[s>>2]|0;c[E+((Tk((c[v>>2]|0)+-2|0,c[p>>2]|0,c[r>>2]|0)|0)<<2)>>2]=o;while(1){if((c[v>>2]|0)>>>0>(c[A>>2]|0)>>>0)break b;o=(c[C>>2]|0)>>>0>0&1;E=fl(c[v>>2]|0)|0;if(!(o&(E|0)==(fl((c[v>>2]|0)+(0-(c[C>>2]|0))|0)|0)))break b;c[L>>2]=(nn((c[v>>2]|0)+4|0,(c[v>>2]|0)+4+(0-(c[C>>2]|0))|0,c[z>>2]|0)|0)+4;c[M>>2]=c[C>>2];c[C>>2]=c[B>>2];c[B>>2]=c[M>>2];E=(c[v>>2]|0)-(c[t>>2]|0)|0;o=c[s>>2]|0;c[o+((Tk(c[v>>2]|0,c[p>>2]|0,c[r>>2]|0)|0)<<2)>>2]=E;kn(c[k>>2]|0,0,c[w>>2]|0,0,(c[L>>2]|0)-3|0);c[v>>2]=(c[v>>2]|0)+(c[L>>2]|0);c[w>>2]=c[v>>2];}}}while(0);}c[c[m>>2]>>2]=c[B>>2]|0?c[B>>2]|0:c[D>>2]|0;c[(c[m>>2]|0)+4>>2]=c[C>>2]|0?c[C>>2]|0:c[D>>2]|0;c[sb>>2]=(c[z>>2]|0)-(c[w>>2]|0);Cb=c[sb>>2]|0;l=i;return Cb|0;}case 5:{w=c[ub>>2]|0;z=c[vb>>2]|0;D=c[xb>>2]|0;C=c[yb>>2]|0;m=c[zb>>2]|0;B=c[Bb>>2]|0;c[oa>>2]=c[tb>>2];c[pa>>2]=w;c[qa>>2]=z;c[ra>>2]=D;c[sa>>2]=C;c[ta>>2]=m;c[ua>>2]=B;c[va>>2]=5;c[wa>>2]=c[(c[oa>>2]|0)+36>>2];c[xa>>2]=c[(c[oa>>2]|0)+4>>2];c[ya>>2]=c[ra>>2];c[za>>2]=c[ya>>2];c[Aa>>2]=c[ya>>2];c[Ba>>2]=c[(c[oa>>2]|0)+12>>2];c[Ca>>2]=(c[xa>>2]|0)+(c[Ba>>2]|0);c[Da>>2]=(c[ya>>2]|0)+(c[sa>>2]|0);c[Ea>>2]=(c[Da>>2]|0)+-8;c[Fa>>2]=c[c[qa>>2]>>2];c[Ga>>2]=c[(c[qa>>2]|0)+4>>2];c[Ha>>2]=0;c[za>>2]=(c[za>>2]|0)+((c[za>>2]|0)==(c[Ca>>2]|0)&1);c[Ia>>2]=(c[za>>2]|0)-(c[Ca>>2]|0);if((c[Ga>>2]|0)>>>0>(c[Ia>>2]|0)>>>0){c[Ha>>2]=c[Ga>>2];c[Ga>>2]=0;}if((c[Fa>>2]|0)>>>0>(c[Ia>>2]|0)>>>0){c[Ha>>2]=c[Fa>>2];c[Fa>>2]=0;}c:while(1){if((c[za>>2]|0)>>>0>=(c[Ea>>2]|0)>>>0)break;c[Ka>>2]=Tk(c[za>>2]|0,c[ta>>2]|0,c[va>>2]|0)|0;c[La>>2]=(c[za>>2]|0)-(c[xa>>2]|0);c[Ma>>2]=c[(c[wa>>2]|0)+(c[Ka>>2]<<2)>>2];c[Na>>2]=(c[xa>>2]|0)+(c[Ma>>2]|0);c[(c[wa>>2]|0)+(c[Ka>>2]<<2)>>2]=c[La>>2];Ia=(c[Fa>>2]|0)>>>0>0&1;sa=fl((c[za>>2]|0)+1+(0-(c[Fa>>2]|0))|0)|0;do{if(Ia&(sa|0)==(fl((c[za>>2]|0)+1|0)|0)|0){c[Ja>>2]=(nn((c[za>>2]|0)+1+4|0,(c[za>>2]|0)+1+4+(0-(c[Fa>>2]|0))|0,c[Da>>2]|0)|0)+4;c[za>>2]=(c[za>>2]|0)+1;kn(c[pa>>2]|0,(c[za>>2]|0)-(c[Aa>>2]|0)|0,c[Aa>>2]|0,0,(c[Ja>>2]|0)-3|0);}else{if((c[Ma>>2]|0)>>>0>(c[Ba>>2]|0)>>>0?(ya=fl(c[Na>>2]|0)|0,(ya|0)==(fl(c[za>>2]|0)|0)):0){c[Ja>>2]=(nn((c[za>>2]|0)+4|0,(c[Na>>2]|0)+4|0,c[Da>>2]|0)|0)+4;c[Oa>>2]=(c[za>>2]|0)-(c[Na>>2]|0);while(1){if(!(((c[za>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?(c[Na>>2]|0)>>>0>(c[Ca>>2]|0)>>>0:0)|0))break;if((d[(c[za>>2]|0)+-1>>0]|0|0)!=(d[(c[Na>>2]|0)+-1>>0]|0|0))break;c[za>>2]=(c[za>>2]|0)+-1;c[Na>>2]=(c[Na>>2]|0)+-1;c[Ja>>2]=(c[Ja>>2]|0)+1;}c[Ga>>2]=c[Fa>>2];c[Fa>>2]=c[Oa>>2];kn(c[pa>>2]|0,(c[za>>2]|0)-(c[Aa>>2]|0)|0,c[Aa>>2]|0,(c[Oa>>2]|0)+2|0,(c[Ja>>2]|0)-3|0);break;}c[za>>2]=(c[za>>2]|0)+(((c[za>>2]|0)-(c[Aa>>2]|0)>>8)+(c[ua>>2]|0));continue c;}}while(0);c[za>>2]=(c[za>>2]|0)+(c[Ja>>2]|0);c[Aa>>2]=c[za>>2];d:do{if((c[za>>2]|0)>>>0<=(c[Ea>>2]|0)>>>0){sa=(c[La>>2]|0)+2|0;Ia=c[wa>>2]|0;c[Ia+((Tk((c[xa>>2]|0)+(c[La>>2]|0)+2|0,c[ta>>2]|0,c[va>>2]|0)|0)<<2)>>2]=sa;sa=(c[za>>2]|0)+-2-(c[xa>>2]|0)|0;Ia=c[wa>>2]|0;c[Ia+((Tk((c[za>>2]|0)+-2|0,c[ta>>2]|0,c[va>>2]|0)|0)<<2)>>2]=sa;while(1){if((c[za>>2]|0)>>>0>(c[Ea>>2]|0)>>>0)break d;sa=(c[Ga>>2]|0)>>>0>0&1;Ia=fl(c[za>>2]|0)|0;if(!(sa&(Ia|0)==(fl((c[za>>2]|0)+(0-(c[Ga>>2]|0))|0)|0)))break d;c[Pa>>2]=(nn((c[za>>2]|0)+4|0,(c[za>>2]|0)+4+(0-(c[Ga>>2]|0))|0,c[Da>>2]|0)|0)+4;c[Qa>>2]=c[Ga>>2];c[Ga>>2]=c[Fa>>2];c[Fa>>2]=c[Qa>>2];Ia=(c[za>>2]|0)-(c[xa>>2]|0)|0;sa=c[wa>>2]|0;c[sa+((Tk(c[za>>2]|0,c[ta>>2]|0,c[va>>2]|0)|0)<<2)>>2]=Ia;kn(c[pa>>2]|0,0,c[Aa>>2]|0,0,(c[Pa>>2]|0)-3|0);c[za>>2]=(c[za>>2]|0)+(c[Pa>>2]|0);c[Aa>>2]=c[za>>2];}}}while(0);}c[c[qa>>2]>>2]=c[Fa>>2]|0?c[Fa>>2]|0:c[Ha>>2]|0;c[(c[qa>>2]|0)+4>>2]=c[Ga>>2]|0?c[Ga>>2]|0:c[Ha>>2]|0;c[sb>>2]=(c[Da>>2]|0)-(c[Aa>>2]|0);Cb=c[sb>>2]|0;l=i;return Cb|0;}case 6:{Aa=c[ub>>2]|0;Da=c[vb>>2]|0;Ha=c[xb>>2]|0;Ga=c[yb>>2]|0;qa=c[zb>>2]|0;Fa=c[Bb>>2]|0;c[N>>2]=c[tb>>2];c[O>>2]=Aa;c[P>>2]=Da;c[Q>>2]=Ha;c[R>>2]=Ga;c[S>>2]=qa;c[T>>2]=Fa;c[U>>2]=6;c[V>>2]=c[(c[N>>2]|0)+36>>2];c[W>>2]=c[(c[N>>2]|0)+4>>2];c[X>>2]=c[Q>>2];c[Y>>2]=c[X>>2];c[Z>>2]=c[X>>2];c[_>>2]=c[(c[N>>2]|0)+12>>2];c[$>>2]=(c[W>>2]|0)+(c[_>>2]|0);c[aa>>2]=(c[X>>2]|0)+(c[R>>2]|0);c[ba>>2]=(c[aa>>2]|0)+-8;c[ca>>2]=c[c[P>>2]>>2];c[da>>2]=c[(c[P>>2]|0)+4>>2];c[ea>>2]=0;c[Y>>2]=(c[Y>>2]|0)+((c[Y>>2]|0)==(c[$>>2]|0)&1);c[fa>>2]=(c[Y>>2]|0)-(c[$>>2]|0);if((c[da>>2]|0)>>>0>(c[fa>>2]|0)>>>0){c[ea>>2]=c[da>>2];c[da>>2]=0;}if((c[ca>>2]|0)>>>0>(c[fa>>2]|0)>>>0){c[ea>>2]=c[ca>>2];c[ca>>2]=0;}e:while(1){if((c[Y>>2]|0)>>>0>=(c[ba>>2]|0)>>>0)break;c[ha>>2]=Tk(c[Y>>2]|0,c[S>>2]|0,c[U>>2]|0)|0;c[ia>>2]=(c[Y>>2]|0)-(c[W>>2]|0);c[ja>>2]=c[(c[V>>2]|0)+(c[ha>>2]<<2)>>2];c[ka>>2]=(c[W>>2]|0)+(c[ja>>2]|0);c[(c[V>>2]|0)+(c[ha>>2]<<2)>>2]=c[ia>>2];fa=(c[ca>>2]|0)>>>0>0&1;R=fl((c[Y>>2]|0)+1+(0-(c[ca>>2]|0))|0)|0;do{if(fa&(R|0)==(fl((c[Y>>2]|0)+1|0)|0)|0){c[ga>>2]=(nn((c[Y>>2]|0)+1+4|0,(c[Y>>2]|0)+1+4+(0-(c[ca>>2]|0))|0,c[aa>>2]|0)|0)+4;c[Y>>2]=(c[Y>>2]|0)+1;kn(c[O>>2]|0,(c[Y>>2]|0)-(c[Z>>2]|0)|0,c[Z>>2]|0,0,(c[ga>>2]|0)-3|0);}else{if((c[ja>>2]|0)>>>0>(c[_>>2]|0)>>>0?(X=fl(c[ka>>2]|0)|0,(X|0)==(fl(c[Y>>2]|0)|0)):0){c[ga>>2]=(nn((c[Y>>2]|0)+4|0,(c[ka>>2]|0)+4|0,c[aa>>2]|0)|0)+4;c[la>>2]=(c[Y>>2]|0)-(c[ka>>2]|0);while(1){if(!(((c[Y>>2]|0)>>>0>(c[Z>>2]|0)>>>0?(c[ka>>2]|0)>>>0>(c[$>>2]|0)>>>0:0)|0))break;if((d[(c[Y>>2]|0)+-1>>0]|0|0)!=(d[(c[ka>>2]|0)+-1>>0]|0|0))break;c[Y>>2]=(c[Y>>2]|0)+-1;c[ka>>2]=(c[ka>>2]|0)+-1;c[ga>>2]=(c[ga>>2]|0)+1;}c[da>>2]=c[ca>>2];c[ca>>2]=c[la>>2];kn(c[O>>2]|0,(c[Y>>2]|0)-(c[Z>>2]|0)|0,c[Z>>2]|0,(c[la>>2]|0)+2|0,(c[ga>>2]|0)-3|0);break;}c[Y>>2]=(c[Y>>2]|0)+(((c[Y>>2]|0)-(c[Z>>2]|0)>>8)+(c[T>>2]|0));continue e;}}while(0);c[Y>>2]=(c[Y>>2]|0)+(c[ga>>2]|0);c[Z>>2]=c[Y>>2];f:do{if((c[Y>>2]|0)>>>0<=(c[ba>>2]|0)>>>0){R=(c[ia>>2]|0)+2|0;fa=c[V>>2]|0;c[fa+((Tk((c[W>>2]|0)+(c[ia>>2]|0)+2|0,c[S>>2]|0,c[U>>2]|0)|0)<<2)>>2]=R;R=(c[Y>>2]|0)+-2-(c[W>>2]|0)|0;fa=c[V>>2]|0;c[fa+((Tk((c[Y>>2]|0)+-2|0,c[S>>2]|0,c[U>>2]|0)|0)<<2)>>2]=R;while(1){if((c[Y>>2]|0)>>>0>(c[ba>>2]|0)>>>0)break f;R=(c[da>>2]|0)>>>0>0&1;fa=fl(c[Y>>2]|0)|0;if(!(R&(fa|0)==(fl((c[Y>>2]|0)+(0-(c[da>>2]|0))|0)|0)))break f;c[ma>>2]=(nn((c[Y>>2]|0)+4|0,(c[Y>>2]|0)+4+(0-(c[da>>2]|0))|0,c[aa>>2]|0)|0)+4;c[na>>2]=c[da>>2];c[da>>2]=c[ca>>2];c[ca>>2]=c[na>>2];fa=(c[Y>>2]|0)-(c[W>>2]|0)|0;R=c[V>>2]|0;c[R+((Tk(c[Y>>2]|0,c[S>>2]|0,c[U>>2]|0)|0)<<2)>>2]=fa;kn(c[O>>2]|0,0,c[Z>>2]|0,0,(c[ma>>2]|0)-3|0);c[Y>>2]=(c[Y>>2]|0)+(c[ma>>2]|0);c[Z>>2]=c[Y>>2];}}}while(0);}c[c[P>>2]>>2]=c[ca>>2]|0?c[ca>>2]|0:c[ea>>2]|0;c[(c[P>>2]|0)+4>>2]=c[da>>2]|0?c[da>>2]|0:c[ea>>2]|0;c[sb>>2]=(c[aa>>2]|0)-(c[Z>>2]|0);Cb=c[sb>>2]|0;l=i;return Cb|0;}default:{Z=c[ub>>2]|0;ub=c[vb>>2]|0;vb=c[xb>>2]|0;xb=c[yb>>2]|0;yb=c[zb>>2]|0;zb=c[Bb>>2]|0;c[Ra>>2]=c[tb>>2];c[Sa>>2]=Z;c[Ta>>2]=ub;c[Ua>>2]=vb;c[Va>>2]=xb;c[Wa>>2]=yb;c[Xa>>2]=zb;c[Ya>>2]=4;c[Za>>2]=c[(c[Ra>>2]|0)+36>>2];c[_a>>2]=c[(c[Ra>>2]|0)+4>>2];c[$a>>2]=c[Ua>>2];c[ab>>2]=c[$a>>2];c[bb>>2]=c[$a>>2];c[cb>>2]=c[(c[Ra>>2]|0)+12>>2];c[db>>2]=(c[_a>>2]|0)+(c[cb>>2]|0);c[eb>>2]=(c[$a>>2]|0)+(c[Va>>2]|0);c[fb>>2]=(c[eb>>2]|0)+-8;c[gb>>2]=c[c[Ta>>2]>>2];c[hb>>2]=c[(c[Ta>>2]|0)+4>>2];c[ib>>2]=0;c[ab>>2]=(c[ab>>2]|0)+((c[ab>>2]|0)==(c[db>>2]|0)&1);c[jb>>2]=(c[ab>>2]|0)-(c[db>>2]|0);if((c[hb>>2]|0)>>>0>(c[jb>>2]|0)>>>0){c[ib>>2]=c[hb>>2];c[hb>>2]=0;}if((c[gb>>2]|0)>>>0>(c[jb>>2]|0)>>>0){c[ib>>2]=c[gb>>2];c[gb>>2]=0;}g:while(1){if((c[ab>>2]|0)>>>0>=(c[fb>>2]|0)>>>0)break;c[lb>>2]=Tk(c[ab>>2]|0,c[Wa>>2]|0,c[Ya>>2]|0)|0;c[mb>>2]=(c[ab>>2]|0)-(c[_a>>2]|0);c[nb>>2]=c[(c[Za>>2]|0)+(c[lb>>2]<<2)>>2];c[ob>>2]=(c[_a>>2]|0)+(c[nb>>2]|0);c[(c[Za>>2]|0)+(c[lb>>2]<<2)>>2]=c[mb>>2];jb=(c[gb>>2]|0)>>>0>0&1;Va=fl((c[ab>>2]|0)+1+(0-(c[gb>>2]|0))|0)|0;do{if(jb&(Va|0)==(fl((c[ab>>2]|0)+1|0)|0)|0){c[kb>>2]=(nn((c[ab>>2]|0)+1+4|0,(c[ab>>2]|0)+1+4+(0-(c[gb>>2]|0))|0,c[eb>>2]|0)|0)+4;c[ab>>2]=(c[ab>>2]|0)+1;kn(c[Sa>>2]|0,(c[ab>>2]|0)-(c[bb>>2]|0)|0,c[bb>>2]|0,0,(c[kb>>2]|0)-3|0);}else{if((c[nb>>2]|0)>>>0>(c[cb>>2]|0)>>>0?($a=fl(c[ob>>2]|0)|0,($a|0)==(fl(c[ab>>2]|0)|0)):0){c[kb>>2]=(nn((c[ab>>2]|0)+4|0,(c[ob>>2]|0)+4|0,c[eb>>2]|0)|0)+4;c[pb>>2]=(c[ab>>2]|0)-(c[ob>>2]|0);while(1){if(!(((c[ab>>2]|0)>>>0>(c[bb>>2]|0)>>>0?(c[ob>>2]|0)>>>0>(c[db>>2]|0)>>>0:0)|0))break;if((d[(c[ab>>2]|0)+-1>>0]|0|0)!=(d[(c[ob>>2]|0)+-1>>0]|0|0))break;c[ab>>2]=(c[ab>>2]|0)+-1;c[ob>>2]=(c[ob>>2]|0)+-1;c[kb>>2]=(c[kb>>2]|0)+1;}c[hb>>2]=c[gb>>2];c[gb>>2]=c[pb>>2];kn(c[Sa>>2]|0,(c[ab>>2]|0)-(c[bb>>2]|0)|0,c[bb>>2]|0,(c[pb>>2]|0)+2|0,(c[kb>>2]|0)-3|0);break;}c[ab>>2]=(c[ab>>2]|0)+(((c[ab>>2]|0)-(c[bb>>2]|0)>>8)+(c[Xa>>2]|0));continue g;}}while(0);c[ab>>2]=(c[ab>>2]|0)+(c[kb>>2]|0);c[bb>>2]=c[ab>>2];h:do{if((c[ab>>2]|0)>>>0<=(c[fb>>2]|0)>>>0){Va=(c[mb>>2]|0)+2|0;jb=c[Za>>2]|0;c[jb+((Tk((c[_a>>2]|0)+(c[mb>>2]|0)+2|0,c[Wa>>2]|0,c[Ya>>2]|0)|0)<<2)>>2]=Va;Va=(c[ab>>2]|0)+-2-(c[_a>>2]|0)|0;jb=c[Za>>2]|0;c[jb+((Tk((c[ab>>2]|0)+-2|0,c[Wa>>2]|0,c[Ya>>2]|0)|0)<<2)>>2]=Va;while(1){if((c[ab>>2]|0)>>>0>(c[fb>>2]|0)>>>0)break h;Va=(c[hb>>2]|0)>>>0>0&1;jb=fl(c[ab>>2]|0)|0;if(!(Va&(jb|0)==(fl((c[ab>>2]|0)+(0-(c[hb>>2]|0))|0)|0)))break h;c[qb>>2]=(nn((c[ab>>2]|0)+4|0,(c[ab>>2]|0)+4+(0-(c[hb>>2]|0))|0,c[eb>>2]|0)|0)+4;c[rb>>2]=c[hb>>2];c[hb>>2]=c[gb>>2];c[gb>>2]=c[rb>>2];jb=(c[ab>>2]|0)-(c[_a>>2]|0)|0;Va=c[Za>>2]|0;c[Va+((Tk(c[ab>>2]|0,c[Wa>>2]|0,c[Ya>>2]|0)|0)<<2)>>2]=jb;kn(c[Sa>>2]|0,0,c[bb>>2]|0,0,(c[qb>>2]|0)-3|0);c[ab>>2]=(c[ab>>2]|0)+(c[qb>>2]|0);c[bb>>2]=c[ab>>2];}}}while(0);}c[c[Ta>>2]>>2]=c[gb>>2]|0?c[gb>>2]|0:c[ib>>2]|0;c[(c[Ta>>2]|0)+4>>2]=c[hb>>2]|0?c[hb>>2]|0:c[ib>>2]|0;c[sb>>2]=(c[eb>>2]|0)-(c[bb>>2]|0);Cb=c[sb>>2]|0;l=i;return Cb|0;}}return 0;}function Yl(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,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,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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0;i=l;l=l+624|0;j=i+620|0;k=i+616|0;m=i+612|0;n=i+608|0;o=i+604|0;p=i+600|0;q=i+596|0;r=i+592|0;s=i+588|0;t=i+584|0;u=i+580|0;v=i+576|0;w=i+572|0;x=i+568|0;z=i+564|0;A=i+560|0;B=i+556|0;C=i+552|0;D=i+548|0;E=i+544|0;F=i+540|0;G=i+536|0;H=i+532|0;I=i+528|0;J=i+524|0;K=i+520|0;L=i+516|0;M=i+512|0;N=i+508|0;O=i+504|0;P=i+500|0;Q=i+496|0;R=i+492|0;S=i+488|0;T=i+484|0;U=i+480|0;V=i+476|0;W=i+472|0;X=i+468|0;Y=i+464|0;Z=i+460|0;_=i+456|0;$=i+452|0;aa=i+448|0;ba=i+444|0;ca=i+440|0;da=i+436|0;ea=i+432|0;fa=i+428|0;ga=i+424|0;ha=i+420|0;ia=i+416|0;ja=i+412|0;ka=i+408|0;la=i+404|0;ma=i+400|0;na=i+396|0;oa=i+392|0;pa=i+388|0;qa=i+384|0;ra=i+380|0;sa=i+376|0;ta=i+372|0;ua=i+368|0;va=i+364|0;wa=i+360|0;xa=i+356|0;ya=i+352|0;za=i+348|0;Aa=i+344|0;Ba=i+340|0;Ca=i+336|0;Da=i+332|0;Ea=i+328|0;Fa=i+324|0;Ga=i+320|0;Ha=i+316|0;Ia=i+312|0;Ja=i+308|0;Ka=i+304|0;La=i+300|0;Ma=i+296|0;Na=i+292|0;Oa=i+288|0;Pa=i+284|0;Qa=i+280|0;Ra=i+276|0;Sa=i+272|0;Ta=i+268|0;Ua=i+264|0;Va=i+260|0;Wa=i+256|0;Xa=i+252|0;Ya=i+248|0;Za=i+244|0;_a=i+240|0;$a=i+236|0;ab=i+232|0;bb=i+228|0;cb=i+224|0;db=i+220|0;eb=i+216|0;fb=i+212|0;gb=i+208|0;hb=i+204|0;ib=i+200|0;jb=i+196|0;kb=i+192|0;lb=i+188|0;mb=i+184|0;nb=i+180|0;ob=i+176|0;pb=i+172|0;qb=i+168|0;rb=i+164|0;sb=i+160|0;tb=i+156|0;ub=i+152|0;vb=i+148|0;wb=i+144|0;xb=i+140|0;yb=i+136|0;zb=i+132|0;Ab=i+128|0;Bb=i+124|0;Cb=i+120|0;Db=i+116|0;Eb=i+112|0;Fb=i+108|0;Gb=i+104|0;Hb=i+100|0;Ib=i+96|0;Jb=i+92|0;Kb=i+88|0;Lb=i+84|0;Mb=i+80|0;Nb=i+76|0;Ob=i+72|0;Pb=i+68|0;Qb=i+64|0;Rb=i+60|0;Sb=i+56|0;Tb=i+52|0;Ub=i+48|0;Vb=i+44|0;Wb=i+40|0;Xb=i+36|0;Yb=i+32|0;Zb=i+28|0;_b=i+24|0;$b=i+20|0;ac=i+16|0;bc=i+12|0;cc=i+8|0;dc=i+4|0;ec=i;c[_b>>2]=a;c[$b>>2]=b;c[ac>>2]=e;c[bc>>2]=f;c[cc>>2]=g;c[dc>>2]=h;c[ec>>2]=c[(c[bc>>2]|0)+16>>2];switch(c[ec>>2]|0){case 7:{ec=c[$b>>2]|0;h=c[ac>>2]|0;g=c[bc>>2]|0;f=c[cc>>2]|0;e=c[dc>>2]|0;c[j>>2]=c[_b>>2];c[k>>2]=ec;c[m>>2]=h;c[n>>2]=g;c[o>>2]=f;c[p>>2]=e;c[q>>2]=7;c[r>>2]=c[(c[j>>2]|0)+36>>2];c[s>>2]=c[(c[n>>2]|0)+8>>2];c[t>>2]=c[(c[j>>2]|0)+44>>2];c[u>>2]=c[(c[n>>2]|0)+4>>2];c[v>>2]=c[(c[j>>2]|0)+4>>2];c[w>>2]=c[o>>2];c[x>>2]=c[w>>2];c[z>>2]=c[w>>2];c[A>>2]=c[(c[j>>2]|0)+12>>2];c[B>>2]=(c[v>>2]|0)+(c[A>>2]|0);c[C>>2]=(c[w>>2]|0)+(c[p>>2]|0);c[D>>2]=(c[C>>2]|0)+-8;c[E>>2]=c[c[m>>2]>>2];c[F>>2]=c[(c[m>>2]|0)+4>>2];c[G>>2]=0;c[x>>2]=(c[x>>2]|0)+((c[x>>2]|0)==(c[B>>2]|0)&1);c[H>>2]=(c[x>>2]|0)-(c[B>>2]|0);if((c[F>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[G>>2]=c[F>>2];c[F>>2]=0;}if((c[E>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[G>>2]=c[E>>2];c[E>>2]=0;}a:while(1){if((c[x>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[J>>2]=Dk(c[x>>2]|0,c[s>>2]|0,8)|0;c[K>>2]=Dk(c[x>>2]|0,c[u>>2]|0,c[q>>2]|0)|0;c[L>>2]=(c[x>>2]|0)-(c[v>>2]|0);c[M>>2]=c[(c[r>>2]|0)+(c[J>>2]<<2)>>2];c[N>>2]=c[(c[t>>2]|0)+(c[K>>2]<<2)>>2];c[O>>2]=(c[v>>2]|0)+(c[M>>2]|0);c[P>>2]=(c[v>>2]|0)+(c[N>>2]|0);H=c[L>>2]|0;c[(c[t>>2]|0)+(c[K>>2]<<2)>>2]=H;c[(c[r>>2]|0)+(c[J>>2]<<2)>>2]=H;H=(c[E>>2]|0)>>>0>0&1;p=Rk((c[x>>2]|0)+1+(0-(c[E>>2]|0))|0)|0;if(H&(p|0)==(Rk((c[x>>2]|0)+1|0)|0)|0){c[I>>2]=(cn((c[x>>2]|0)+1+4|0,(c[x>>2]|0)+1+4+(0-(c[E>>2]|0))|0,c[C>>2]|0)|0)+4;c[x>>2]=(c[x>>2]|0)+1;$m(c[k>>2]|0,(c[x>>2]|0)-(c[z>>2]|0)|0,c[z>>2]|0,0,(c[I>>2]|0)-3|0);}else{b:do{if((c[M>>2]|0)>>>0>(c[A>>2]|0)>>>0?(p=Mk(c[O>>2]|0)|0,H=y,w=Mk(c[x>>2]|0)|0,(p|0)==(w|0)&(H|0)==(y|0)):0){c[I>>2]=(cn((c[x>>2]|0)+8|0,(c[O>>2]|0)+8|0,c[C>>2]|0)|0)+8;c[Q>>2]=(c[x>>2]|0)-(c[O>>2]|0);while(1){if(!(((c[x>>2]|0)>>>0>(c[z>>2]|0)>>>0?(c[O>>2]|0)>>>0>(c[B>>2]|0)>>>0:0)|0))break b;if((d[(c[x>>2]|0)+-1>>0]|0|0)!=(d[(c[O>>2]|0)+-1>>0]|0|0))break b;c[x>>2]=(c[x>>2]|0)+-1;c[O>>2]=(c[O>>2]|0)+-1;c[I>>2]=(c[I>>2]|0)+1;}}else fc=121;}while(0);c:do{if((fc|0)==121){fc=0;if((c[N>>2]|0)>>>0>(c[A>>2]|0)>>>0?(H=Rk(c[P>>2]|0)|0,(H|0)==(Rk(c[x>>2]|0)|0)):0){c[R>>2]=Dk((c[x>>2]|0)+1|0,c[s>>2]|0,8)|0;c[S>>2]=c[(c[r>>2]|0)+(c[R>>2]<<2)>>2];c[T>>2]=(c[v>>2]|0)+(c[S>>2]|0);c[(c[r>>2]|0)+(c[R>>2]<<2)>>2]=(c[L>>2]|0)+1;if((c[S>>2]|0)>>>0>(c[A>>2]|0)>>>0?(H=Mk(c[T>>2]|0)|0,w=y,p=Mk((c[x>>2]|0)+1|0)|0,(H|0)==(p|0)&(w|0)==(y|0)):0){c[I>>2]=(cn((c[x>>2]|0)+9|0,(c[T>>2]|0)+8|0,c[C>>2]|0)|0)+8;c[x>>2]=(c[x>>2]|0)+1;c[Q>>2]=(c[x>>2]|0)-(c[T>>2]|0);while(1){if(!(((c[x>>2]|0)>>>0>(c[z>>2]|0)>>>0?(c[T>>2]|0)>>>0>(c[B>>2]|0)>>>0:0)|0))break c;if((d[(c[x>>2]|0)+-1>>0]|0|0)!=(d[(c[T>>2]|0)+-1>>0]|0|0))break c;c[x>>2]=(c[x>>2]|0)+-1;c[T>>2]=(c[T>>2]|0)+-1;c[I>>2]=(c[I>>2]|0)+1;}}c[I>>2]=(cn((c[x>>2]|0)+4|0,(c[P>>2]|0)+4|0,c[C>>2]|0)|0)+4;c[Q>>2]=(c[x>>2]|0)-(c[P>>2]|0);while(1){if(!(((c[x>>2]|0)>>>0>(c[z>>2]|0)>>>0?(c[P>>2]|0)>>>0>(c[B>>2]|0)>>>0:0)|0))break c;if((d[(c[x>>2]|0)+-1>>0]|0|0)!=(d[(c[P>>2]|0)+-1>>0]|0|0))break c;c[x>>2]=(c[x>>2]|0)+-1;c[P>>2]=(c[P>>2]|0)+-1;c[I>>2]=(c[I>>2]|0)+1;}}c[x>>2]=(c[x>>2]|0)+(((c[x>>2]|0)-(c[z>>2]|0)>>8)+1);continue a;}}while(0);c[F>>2]=c[E>>2];c[E>>2]=c[Q>>2];$m(c[k>>2]|0,(c[x>>2]|0)-(c[z>>2]|0)|0,c[z>>2]|0,(c[Q>>2]|0)+2|0,(c[I>>2]|0)-3|0);}c[x>>2]=(c[x>>2]|0)+(c[I>>2]|0);c[z>>2]=c[x>>2];d:do{if((c[x>>2]|0)>>>0<=(c[D>>2]|0)>>>0){w=(c[L>>2]|0)+2|0;p=c[t>>2]|0;c[p+((Dk((c[v>>2]|0)+(c[L>>2]|0)+2|0,c[u>>2]|0,c[q>>2]|0)|0)<<2)>>2]=w;p=c[r>>2]|0;c[p+((Dk((c[v>>2]|0)+(c[L>>2]|0)+2|0,c[s>>2]|0,8)|0)<<2)>>2]=w;w=(c[x>>2]|0)+-2-(c[v>>2]|0)|0;p=c[t>>2]|0;c[p+((Dk((c[x>>2]|0)+-2|0,c[u>>2]|0,c[q>>2]|0)|0)<<2)>>2]=w;p=c[r>>2]|0;c[p+((Dk((c[x>>2]|0)+-2|0,c[s>>2]|0,8)|0)<<2)>>2]=w;while(1){if((c[x>>2]|0)>>>0>(c[D>>2]|0)>>>0)break d;w=(c[F>>2]|0)>>>0>0&1;p=Rk(c[x>>2]|0)|0;if(!(w&(p|0)==(Rk((c[x>>2]|0)+(0-(c[F>>2]|0))|0)|0)))break d;c[U>>2]=(cn((c[x>>2]|0)+4|0,(c[x>>2]|0)+4+(0-(c[F>>2]|0))|0,c[C>>2]|0)|0)+4;c[V>>2]=c[F>>2];c[F>>2]=c[E>>2];c[E>>2]=c[V>>2];p=(c[x>>2]|0)-(c[v>>2]|0)|0;w=c[t>>2]|0;c[w+((Dk(c[x>>2]|0,c[u>>2]|0,c[q>>2]|0)|0)<<2)>>2]=p;p=(c[x>>2]|0)-(c[v>>2]|0)|0;w=c[r>>2]|0;c[w+((Dk(c[x>>2]|0,c[s>>2]|0,8)|0)<<2)>>2]=p;$m(c[k>>2]|0,0,c[z>>2]|0,0,(c[U>>2]|0)-3|0);c[x>>2]=(c[x>>2]|0)+(c[U>>2]|0);c[z>>2]=c[x>>2];}}}while(0);}c[c[m>>2]>>2]=c[E>>2]|0?c[E>>2]|0:c[G>>2]|0;c[(c[m>>2]|0)+4>>2]=c[F>>2]|0?c[F>>2]|0:c[G>>2]|0;c[Zb>>2]=(c[C>>2]|0)-(c[z>>2]|0);gc=c[Zb>>2]|0;l=i;return gc|0;}case 5:{z=c[$b>>2]|0;C=c[ac>>2]|0;G=c[bc>>2]|0;F=c[cc>>2]|0;m=c[dc>>2]|0;c[Fa>>2]=c[_b>>2];c[Ga>>2]=z;c[Ha>>2]=C;c[Ia>>2]=G;c[Ja>>2]=F;c[Ka>>2]=m;c[La>>2]=5;c[Ma>>2]=c[(c[Fa>>2]|0)+36>>2];c[Na>>2]=c[(c[Ia>>2]|0)+8>>2];c[Oa>>2]=c[(c[Fa>>2]|0)+44>>2];c[Pa>>2]=c[(c[Ia>>2]|0)+4>>2];c[Qa>>2]=c[(c[Fa>>2]|0)+4>>2];c[Ra>>2]=c[Ja>>2];c[Sa>>2]=c[Ra>>2];c[Ta>>2]=c[Ra>>2];c[Ua>>2]=c[(c[Fa>>2]|0)+12>>2];c[Va>>2]=(c[Qa>>2]|0)+(c[Ua>>2]|0);c[Wa>>2]=(c[Ra>>2]|0)+(c[Ka>>2]|0);c[Xa>>2]=(c[Wa>>2]|0)+-8;c[Ya>>2]=c[c[Ha>>2]>>2];c[Za>>2]=c[(c[Ha>>2]|0)+4>>2];c[_a>>2]=0;c[Sa>>2]=(c[Sa>>2]|0)+((c[Sa>>2]|0)==(c[Va>>2]|0)&1);c[$a>>2]=(c[Sa>>2]|0)-(c[Va>>2]|0);if((c[Za>>2]|0)>>>0>(c[$a>>2]|0)>>>0){c[_a>>2]=c[Za>>2];c[Za>>2]=0;}if((c[Ya>>2]|0)>>>0>(c[$a>>2]|0)>>>0){c[_a>>2]=c[Ya>>2];c[Ya>>2]=0;}e:while(1){if((c[Sa>>2]|0)>>>0>=(c[Xa>>2]|0)>>>0)break;c[bb>>2]=Dk(c[Sa>>2]|0,c[Na>>2]|0,8)|0;c[cb>>2]=Dk(c[Sa>>2]|0,c[Pa>>2]|0,c[La>>2]|0)|0;c[db>>2]=(c[Sa>>2]|0)-(c[Qa>>2]|0);c[eb>>2]=c[(c[Ma>>2]|0)+(c[bb>>2]<<2)>>2];c[fb>>2]=c[(c[Oa>>2]|0)+(c[cb>>2]<<2)>>2];c[gb>>2]=(c[Qa>>2]|0)+(c[eb>>2]|0);c[hb>>2]=(c[Qa>>2]|0)+(c[fb>>2]|0);$a=c[db>>2]|0;c[(c[Oa>>2]|0)+(c[cb>>2]<<2)>>2]=$a;c[(c[Ma>>2]|0)+(c[bb>>2]<<2)>>2]=$a;$a=(c[Ya>>2]|0)>>>0>0&1;Ka=Rk((c[Sa>>2]|0)+1+(0-(c[Ya>>2]|0))|0)|0;if($a&(Ka|0)==(Rk((c[Sa>>2]|0)+1|0)|0)|0){c[ab>>2]=(cn((c[Sa>>2]|0)+1+4|0,(c[Sa>>2]|0)+1+4+(0-(c[Ya>>2]|0))|0,c[Wa>>2]|0)|0)+4;c[Sa>>2]=(c[Sa>>2]|0)+1;$m(c[Ga>>2]|0,(c[Sa>>2]|0)-(c[Ta>>2]|0)|0,c[Ta>>2]|0,0,(c[ab>>2]|0)-3|0);}else{f:do{if((c[eb>>2]|0)>>>0>(c[Ua>>2]|0)>>>0?(Ka=Mk(c[gb>>2]|0)|0,$a=y,Ra=Mk(c[Sa>>2]|0)|0,(Ka|0)==(Ra|0)&($a|0)==(y|0)):0){c[ab>>2]=(cn((c[Sa>>2]|0)+8|0,(c[gb>>2]|0)+8|0,c[Wa>>2]|0)|0)+8;c[ib>>2]=(c[Sa>>2]|0)-(c[gb>>2]|0);while(1){if(!(((c[Sa>>2]|0)>>>0>(c[Ta>>2]|0)>>>0?(c[gb>>2]|0)>>>0>(c[Va>>2]|0)>>>0:0)|0))break f;if((d[(c[Sa>>2]|0)+-1>>0]|0|0)!=(d[(c[gb>>2]|0)+-1>>0]|0|0))break f;c[Sa>>2]=(c[Sa>>2]|0)+-1;c[gb>>2]=(c[gb>>2]|0)+-1;c[ab>>2]=(c[ab>>2]|0)+1;}}else fc=51;}while(0);g:do{if((fc|0)==51){fc=0;if((c[fb>>2]|0)>>>0>(c[Ua>>2]|0)>>>0?($a=Rk(c[hb>>2]|0)|0,($a|0)==(Rk(c[Sa>>2]|0)|0)):0){c[jb>>2]=Dk((c[Sa>>2]|0)+1|0,c[Na>>2]|0,8)|0;c[kb>>2]=c[(c[Ma>>2]|0)+(c[jb>>2]<<2)>>2];c[lb>>2]=(c[Qa>>2]|0)+(c[kb>>2]|0);c[(c[Ma>>2]|0)+(c[jb>>2]<<2)>>2]=(c[db>>2]|0)+1;if((c[kb>>2]|0)>>>0>(c[Ua>>2]|0)>>>0?($a=Mk(c[lb>>2]|0)|0,Ra=y,Ka=Mk((c[Sa>>2]|0)+1|0)|0,($a|0)==(Ka|0)&(Ra|0)==(y|0)):0){c[ab>>2]=(cn((c[Sa>>2]|0)+9|0,(c[lb>>2]|0)+8|0,c[Wa>>2]|0)|0)+8;c[Sa>>2]=(c[Sa>>2]|0)+1;c[ib>>2]=(c[Sa>>2]|0)-(c[lb>>2]|0);while(1){if(!(((c[Sa>>2]|0)>>>0>(c[Ta>>2]|0)>>>0?(c[lb>>2]|0)>>>0>(c[Va>>2]|0)>>>0:0)|0))break g;if((d[(c[Sa>>2]|0)+-1>>0]|0|0)!=(d[(c[lb>>2]|0)+-1>>0]|0|0))break g;c[Sa>>2]=(c[Sa>>2]|0)+-1;c[lb>>2]=(c[lb>>2]|0)+-1;c[ab>>2]=(c[ab>>2]|0)+1;}}c[ab>>2]=(cn((c[Sa>>2]|0)+4|0,(c[hb>>2]|0)+4|0,c[Wa>>2]|0)|0)+4;c[ib>>2]=(c[Sa>>2]|0)-(c[hb>>2]|0);while(1){if(!(((c[Sa>>2]|0)>>>0>(c[Ta>>2]|0)>>>0?(c[hb>>2]|0)>>>0>(c[Va>>2]|0)>>>0:0)|0))break g;if((d[(c[Sa>>2]|0)+-1>>0]|0|0)!=(d[(c[hb>>2]|0)+-1>>0]|0|0))break g;c[Sa>>2]=(c[Sa>>2]|0)+-1;c[hb>>2]=(c[hb>>2]|0)+-1;c[ab>>2]=(c[ab>>2]|0)+1;}}c[Sa>>2]=(c[Sa>>2]|0)+(((c[Sa>>2]|0)-(c[Ta>>2]|0)>>8)+1);continue e;}}while(0);c[Za>>2]=c[Ya>>2];c[Ya>>2]=c[ib>>2];$m(c[Ga>>2]|0,(c[Sa>>2]|0)-(c[Ta>>2]|0)|0,c[Ta>>2]|0,(c[ib>>2]|0)+2|0,(c[ab>>2]|0)-3|0);}c[Sa>>2]=(c[Sa>>2]|0)+(c[ab>>2]|0);c[Ta>>2]=c[Sa>>2];h:do{if((c[Sa>>2]|0)>>>0<=(c[Xa>>2]|0)>>>0){Ra=(c[db>>2]|0)+2|0;Ka=c[Oa>>2]|0;c[Ka+((Dk((c[Qa>>2]|0)+(c[db>>2]|0)+2|0,c[Pa>>2]|0,c[La>>2]|0)|0)<<2)>>2]=Ra;Ka=c[Ma>>2]|0;c[Ka+((Dk((c[Qa>>2]|0)+(c[db>>2]|0)+2|0,c[Na>>2]|0,8)|0)<<2)>>2]=Ra;Ra=(c[Sa>>2]|0)+-2-(c[Qa>>2]|0)|0;Ka=c[Oa>>2]|0;c[Ka+((Dk((c[Sa>>2]|0)+-2|0,c[Pa>>2]|0,c[La>>2]|0)|0)<<2)>>2]=Ra;Ka=c[Ma>>2]|0;c[Ka+((Dk((c[Sa>>2]|0)+-2|0,c[Na>>2]|0,8)|0)<<2)>>2]=Ra;while(1){if((c[Sa>>2]|0)>>>0>(c[Xa>>2]|0)>>>0)break h;Ra=(c[Za>>2]|0)>>>0>0&1;Ka=Rk(c[Sa>>2]|0)|0;if(!(Ra&(Ka|0)==(Rk((c[Sa>>2]|0)+(0-(c[Za>>2]|0))|0)|0)))break h;c[mb>>2]=(cn((c[Sa>>2]|0)+4|0,(c[Sa>>2]|0)+4+(0-(c[Za>>2]|0))|0,c[Wa>>2]|0)|0)+4;c[nb>>2]=c[Za>>2];c[Za>>2]=c[Ya>>2];c[Ya>>2]=c[nb>>2];Ka=(c[Sa>>2]|0)-(c[Qa>>2]|0)|0;Ra=c[Oa>>2]|0;c[Ra+((Dk(c[Sa>>2]|0,c[Pa>>2]|0,c[La>>2]|0)|0)<<2)>>2]=Ka;Ka=(c[Sa>>2]|0)-(c[Qa>>2]|0)|0;Ra=c[Ma>>2]|0;c[Ra+((Dk(c[Sa>>2]|0,c[Na>>2]|0,8)|0)<<2)>>2]=Ka;$m(c[Ga>>2]|0,0,c[Ta>>2]|0,0,(c[mb>>2]|0)-3|0);c[Sa>>2]=(c[Sa>>2]|0)+(c[mb>>2]|0);c[Ta>>2]=c[Sa>>2];}}}while(0);}c[c[Ha>>2]>>2]=c[Ya>>2]|0?c[Ya>>2]|0:c[_a>>2]|0;c[(c[Ha>>2]|0)+4>>2]=c[Za>>2]|0?c[Za>>2]|0:c[_a>>2]|0;c[Zb>>2]=(c[Wa>>2]|0)-(c[Ta>>2]|0);gc=c[Zb>>2]|0;l=i;return gc|0;}case 6:{Ta=c[$b>>2]|0;Wa=c[ac>>2]|0;_a=c[bc>>2]|0;Za=c[cc>>2]|0;Ha=c[dc>>2]|0;c[W>>2]=c[_b>>2];c[X>>2]=Ta;c[Y>>2]=Wa;c[Z>>2]=_a;c[_>>2]=Za;c[$>>2]=Ha;c[aa>>2]=6;c[ba>>2]=c[(c[W>>2]|0)+36>>2];c[ca>>2]=c[(c[Z>>2]|0)+8>>2];c[da>>2]=c[(c[W>>2]|0)+44>>2];c[ea>>2]=c[(c[Z>>2]|0)+4>>2];c[fa>>2]=c[(c[W>>2]|0)+4>>2];c[ga>>2]=c[_>>2];c[ha>>2]=c[ga>>2];c[ia>>2]=c[ga>>2];c[ja>>2]=c[(c[W>>2]|0)+12>>2];c[ka>>2]=(c[fa>>2]|0)+(c[ja>>2]|0);c[la>>2]=(c[ga>>2]|0)+(c[$>>2]|0);c[ma>>2]=(c[la>>2]|0)+-8;c[na>>2]=c[c[Y>>2]>>2];c[oa>>2]=c[(c[Y>>2]|0)+4>>2];c[pa>>2]=0;c[ha>>2]=(c[ha>>2]|0)+((c[ha>>2]|0)==(c[ka>>2]|0)&1);c[qa>>2]=(c[ha>>2]|0)-(c[ka>>2]|0);if((c[oa>>2]|0)>>>0>(c[qa>>2]|0)>>>0){c[pa>>2]=c[oa>>2];c[oa>>2]=0;}if((c[na>>2]|0)>>>0>(c[qa>>2]|0)>>>0){c[pa>>2]=c[na>>2];c[na>>2]=0;}i:while(1){if((c[ha>>2]|0)>>>0>=(c[ma>>2]|0)>>>0)break;c[sa>>2]=Dk(c[ha>>2]|0,c[ca>>2]|0,8)|0;c[ta>>2]=Dk(c[ha>>2]|0,c[ea>>2]|0,c[aa>>2]|0)|0;c[ua>>2]=(c[ha>>2]|0)-(c[fa>>2]|0);c[va>>2]=c[(c[ba>>2]|0)+(c[sa>>2]<<2)>>2];c[wa>>2]=c[(c[da>>2]|0)+(c[ta>>2]<<2)>>2];c[xa>>2]=(c[fa>>2]|0)+(c[va>>2]|0);c[ya>>2]=(c[fa>>2]|0)+(c[wa>>2]|0);qa=c[ua>>2]|0;c[(c[da>>2]|0)+(c[ta>>2]<<2)>>2]=qa;c[(c[ba>>2]|0)+(c[sa>>2]<<2)>>2]=qa;qa=(c[na>>2]|0)>>>0>0&1;$=Rk((c[ha>>2]|0)+1+(0-(c[na>>2]|0))|0)|0;if(qa&($|0)==(Rk((c[ha>>2]|0)+1|0)|0)|0){c[ra>>2]=(cn((c[ha>>2]|0)+1+4|0,(c[ha>>2]|0)+1+4+(0-(c[na>>2]|0))|0,c[la>>2]|0)|0)+4;c[ha>>2]=(c[ha>>2]|0)+1;$m(c[X>>2]|0,(c[ha>>2]|0)-(c[ia>>2]|0)|0,c[ia>>2]|0,0,(c[ra>>2]|0)-3|0);}else{j:do{if((c[va>>2]|0)>>>0>(c[ja>>2]|0)>>>0?($=Mk(c[xa>>2]|0)|0,qa=y,ga=Mk(c[ha>>2]|0)|0,($|0)==(ga|0)&(qa|0)==(y|0)):0){c[ra>>2]=(cn((c[ha>>2]|0)+8|0,(c[xa>>2]|0)+8|0,c[la>>2]|0)|0)+8;c[za>>2]=(c[ha>>2]|0)-(c[xa>>2]|0);while(1){if(!(((c[ha>>2]|0)>>>0>(c[ia>>2]|0)>>>0?(c[xa>>2]|0)>>>0>(c[ka>>2]|0)>>>0:0)|0))break j;if((d[(c[ha>>2]|0)+-1>>0]|0|0)!=(d[(c[xa>>2]|0)+-1>>0]|0|0))break j;c[ha>>2]=(c[ha>>2]|0)+-1;c[xa>>2]=(c[xa>>2]|0)+-1;c[ra>>2]=(c[ra>>2]|0)+1;}}else fc=86;}while(0);k:do{if((fc|0)==86){fc=0;if((c[wa>>2]|0)>>>0>(c[ja>>2]|0)>>>0?(qa=Rk(c[ya>>2]|0)|0,(qa|0)==(Rk(c[ha>>2]|0)|0)):0){c[Aa>>2]=Dk((c[ha>>2]|0)+1|0,c[ca>>2]|0,8)|0;c[Ba>>2]=c[(c[ba>>2]|0)+(c[Aa>>2]<<2)>>2];c[Ca>>2]=(c[fa>>2]|0)+(c[Ba>>2]|0);c[(c[ba>>2]|0)+(c[Aa>>2]<<2)>>2]=(c[ua>>2]|0)+1;if((c[Ba>>2]|0)>>>0>(c[ja>>2]|0)>>>0?(qa=Mk(c[Ca>>2]|0)|0,ga=y,$=Mk((c[ha>>2]|0)+1|0)|0,(qa|0)==($|0)&(ga|0)==(y|0)):0){c[ra>>2]=(cn((c[ha>>2]|0)+9|0,(c[Ca>>2]|0)+8|0,c[la>>2]|0)|0)+8;c[ha>>2]=(c[ha>>2]|0)+1;c[za>>2]=(c[ha>>2]|0)-(c[Ca>>2]|0);while(1){if(!(((c[ha>>2]|0)>>>0>(c[ia>>2]|0)>>>0?(c[Ca>>2]|0)>>>0>(c[ka>>2]|0)>>>0:0)|0))break k;if((d[(c[ha>>2]|0)+-1>>0]|0|0)!=(d[(c[Ca>>2]|0)+-1>>0]|0|0))break k;c[ha>>2]=(c[ha>>2]|0)+-1;c[Ca>>2]=(c[Ca>>2]|0)+-1;c[ra>>2]=(c[ra>>2]|0)+1;}}c[ra>>2]=(cn((c[ha>>2]|0)+4|0,(c[ya>>2]|0)+4|0,c[la>>2]|0)|0)+4;c[za>>2]=(c[ha>>2]|0)-(c[ya>>2]|0);while(1){if(!(((c[ha>>2]|0)>>>0>(c[ia>>2]|0)>>>0?(c[ya>>2]|0)>>>0>(c[ka>>2]|0)>>>0:0)|0))break k;if((d[(c[ha>>2]|0)+-1>>0]|0|0)!=(d[(c[ya>>2]|0)+-1>>0]|0|0))break k;c[ha>>2]=(c[ha>>2]|0)+-1;c[ya>>2]=(c[ya>>2]|0)+-1;c[ra>>2]=(c[ra>>2]|0)+1;}}c[ha>>2]=(c[ha>>2]|0)+(((c[ha>>2]|0)-(c[ia>>2]|0)>>8)+1);continue i;}}while(0);c[oa>>2]=c[na>>2];c[na>>2]=c[za>>2];$m(c[X>>2]|0,(c[ha>>2]|0)-(c[ia>>2]|0)|0,c[ia>>2]|0,(c[za>>2]|0)+2|0,(c[ra>>2]|0)-3|0);}c[ha>>2]=(c[ha>>2]|0)+(c[ra>>2]|0);c[ia>>2]=c[ha>>2];l:do{if((c[ha>>2]|0)>>>0<=(c[ma>>2]|0)>>>0){ga=(c[ua>>2]|0)+2|0;$=c[da>>2]|0;c[$+((Dk((c[fa>>2]|0)+(c[ua>>2]|0)+2|0,c[ea>>2]|0,c[aa>>2]|0)|0)<<2)>>2]=ga;$=c[ba>>2]|0;c[$+((Dk((c[fa>>2]|0)+(c[ua>>2]|0)+2|0,c[ca>>2]|0,8)|0)<<2)>>2]=ga;ga=(c[ha>>2]|0)+-2-(c[fa>>2]|0)|0;$=c[da>>2]|0;c[$+((Dk((c[ha>>2]|0)+-2|0,c[ea>>2]|0,c[aa>>2]|0)|0)<<2)>>2]=ga;$=c[ba>>2]|0;c[$+((Dk((c[ha>>2]|0)+-2|0,c[ca>>2]|0,8)|0)<<2)>>2]=ga;while(1){if((c[ha>>2]|0)>>>0>(c[ma>>2]|0)>>>0)break l;ga=(c[oa>>2]|0)>>>0>0&1;$=Rk(c[ha>>2]|0)|0;if(!(ga&($|0)==(Rk((c[ha>>2]|0)+(0-(c[oa>>2]|0))|0)|0)))break l;c[Da>>2]=(cn((c[ha>>2]|0)+4|0,(c[ha>>2]|0)+4+(0-(c[oa>>2]|0))|0,c[la>>2]|0)|0)+4;c[Ea>>2]=c[oa>>2];c[oa>>2]=c[na>>2];c[na>>2]=c[Ea>>2];$=(c[ha>>2]|0)-(c[fa>>2]|0)|0;ga=c[da>>2]|0;c[ga+((Dk(c[ha>>2]|0,c[ea>>2]|0,c[aa>>2]|0)|0)<<2)>>2]=$;$=(c[ha>>2]|0)-(c[fa>>2]|0)|0;ga=c[ba>>2]|0;c[ga+((Dk(c[ha>>2]|0,c[ca>>2]|0,8)|0)<<2)>>2]=$;$m(c[X>>2]|0,0,c[ia>>2]|0,0,(c[Da>>2]|0)-3|0);c[ha>>2]=(c[ha>>2]|0)+(c[Da>>2]|0);c[ia>>2]=c[ha>>2];}}}while(0);}c[c[Y>>2]>>2]=c[na>>2]|0?c[na>>2]|0:c[pa>>2]|0;c[(c[Y>>2]|0)+4>>2]=c[oa>>2]|0?c[oa>>2]|0:c[pa>>2]|0;c[Zb>>2]=(c[la>>2]|0)-(c[ia>>2]|0);gc=c[Zb>>2]|0;l=i;return gc|0;}default:{ia=c[$b>>2]|0;$b=c[ac>>2]|0;ac=c[bc>>2]|0;bc=c[cc>>2]|0;cc=c[dc>>2]|0;c[ob>>2]=c[_b>>2];c[pb>>2]=ia;c[qb>>2]=$b;c[rb>>2]=ac;c[sb>>2]=bc;c[tb>>2]=cc;c[ub>>2]=4;c[vb>>2]=c[(c[ob>>2]|0)+36>>2];c[wb>>2]=c[(c[rb>>2]|0)+8>>2];c[xb>>2]=c[(c[ob>>2]|0)+44>>2];c[yb>>2]=c[(c[rb>>2]|0)+4>>2];c[zb>>2]=c[(c[ob>>2]|0)+4>>2];c[Ab>>2]=c[sb>>2];c[Bb>>2]=c[Ab>>2];c[Cb>>2]=c[Ab>>2];c[Db>>2]=c[(c[ob>>2]|0)+12>>2];c[Eb>>2]=(c[zb>>2]|0)+(c[Db>>2]|0);c[Fb>>2]=(c[Ab>>2]|0)+(c[tb>>2]|0);c[Gb>>2]=(c[Fb>>2]|0)+-8;c[Hb>>2]=c[c[qb>>2]>>2];c[Ib>>2]=c[(c[qb>>2]|0)+4>>2];c[Jb>>2]=0;c[Bb>>2]=(c[Bb>>2]|0)+((c[Bb>>2]|0)==(c[Eb>>2]|0)&1);c[Kb>>2]=(c[Bb>>2]|0)-(c[Eb>>2]|0);if((c[Ib>>2]|0)>>>0>(c[Kb>>2]|0)>>>0){c[Jb>>2]=c[Ib>>2];c[Ib>>2]=0;}if((c[Hb>>2]|0)>>>0>(c[Kb>>2]|0)>>>0){c[Jb>>2]=c[Hb>>2];c[Hb>>2]=0;}m:while(1){if((c[Bb>>2]|0)>>>0>=(c[Gb>>2]|0)>>>0)break;c[Mb>>2]=Dk(c[Bb>>2]|0,c[wb>>2]|0,8)|0;c[Nb>>2]=Dk(c[Bb>>2]|0,c[yb>>2]|0,c[ub>>2]|0)|0;c[Ob>>2]=(c[Bb>>2]|0)-(c[zb>>2]|0);c[Pb>>2]=c[(c[vb>>2]|0)+(c[Mb>>2]<<2)>>2];c[Qb>>2]=c[(c[xb>>2]|0)+(c[Nb>>2]<<2)>>2];c[Rb>>2]=(c[zb>>2]|0)+(c[Pb>>2]|0);c[Sb>>2]=(c[zb>>2]|0)+(c[Qb>>2]|0);Kb=c[Ob>>2]|0;c[(c[xb>>2]|0)+(c[Nb>>2]<<2)>>2]=Kb;c[(c[vb>>2]|0)+(c[Mb>>2]<<2)>>2]=Kb;Kb=(c[Hb>>2]|0)>>>0>0&1;tb=Rk((c[Bb>>2]|0)+1+(0-(c[Hb>>2]|0))|0)|0;if(Kb&(tb|0)==(Rk((c[Bb>>2]|0)+1|0)|0)|0){c[Lb>>2]=(cn((c[Bb>>2]|0)+1+4|0,(c[Bb>>2]|0)+1+4+(0-(c[Hb>>2]|0))|0,c[Fb>>2]|0)|0)+4;c[Bb>>2]=(c[Bb>>2]|0)+1;$m(c[pb>>2]|0,(c[Bb>>2]|0)-(c[Cb>>2]|0)|0,c[Cb>>2]|0,0,(c[Lb>>2]|0)-3|0);}else{n:do{if((c[Pb>>2]|0)>>>0>(c[Db>>2]|0)>>>0?(tb=Mk(c[Rb>>2]|0)|0,Kb=y,Ab=Mk(c[Bb>>2]|0)|0,(tb|0)==(Ab|0)&(Kb|0)==(y|0)):0){c[Lb>>2]=(cn((c[Bb>>2]|0)+8|0,(c[Rb>>2]|0)+8|0,c[Fb>>2]|0)|0)+8;c[Tb>>2]=(c[Bb>>2]|0)-(c[Rb>>2]|0);while(1){if(!(((c[Bb>>2]|0)>>>0>(c[Cb>>2]|0)>>>0?(c[Rb>>2]|0)>>>0>(c[Eb>>2]|0)>>>0:0)|0))break n;if((d[(c[Bb>>2]|0)+-1>>0]|0|0)!=(d[(c[Rb>>2]|0)+-1>>0]|0|0))break n;c[Bb>>2]=(c[Bb>>2]|0)+-1;c[Rb>>2]=(c[Rb>>2]|0)+-1;c[Lb>>2]=(c[Lb>>2]|0)+1;}}else fc=16;}while(0);o:do{if((fc|0)==16){fc=0;if((c[Qb>>2]|0)>>>0>(c[Db>>2]|0)>>>0?(Kb=Rk(c[Sb>>2]|0)|0,(Kb|0)==(Rk(c[Bb>>2]|0)|0)):0){c[Ub>>2]=Dk((c[Bb>>2]|0)+1|0,c[wb>>2]|0,8)|0;c[Vb>>2]=c[(c[vb>>2]|0)+(c[Ub>>2]<<2)>>2];c[Wb>>2]=(c[zb>>2]|0)+(c[Vb>>2]|0);c[(c[vb>>2]|0)+(c[Ub>>2]<<2)>>2]=(c[Ob>>2]|0)+1;if((c[Vb>>2]|0)>>>0>(c[Db>>2]|0)>>>0?(Kb=Mk(c[Wb>>2]|0)|0,Ab=y,tb=Mk((c[Bb>>2]|0)+1|0)|0,(Kb|0)==(tb|0)&(Ab|0)==(y|0)):0){c[Lb>>2]=(cn((c[Bb>>2]|0)+9|0,(c[Wb>>2]|0)+8|0,c[Fb>>2]|0)|0)+8;c[Bb>>2]=(c[Bb>>2]|0)+1;c[Tb>>2]=(c[Bb>>2]|0)-(c[Wb>>2]|0);while(1){if(!(((c[Bb>>2]|0)>>>0>(c[Cb>>2]|0)>>>0?(c[Wb>>2]|0)>>>0>(c[Eb>>2]|0)>>>0:0)|0))break o;if((d[(c[Bb>>2]|0)+-1>>0]|0|0)!=(d[(c[Wb>>2]|0)+-1>>0]|0|0))break o;c[Bb>>2]=(c[Bb>>2]|0)+-1;c[Wb>>2]=(c[Wb>>2]|0)+-1;c[Lb>>2]=(c[Lb>>2]|0)+1;}}c[Lb>>2]=(cn((c[Bb>>2]|0)+4|0,(c[Sb>>2]|0)+4|0,c[Fb>>2]|0)|0)+4;c[Tb>>2]=(c[Bb>>2]|0)-(c[Sb>>2]|0);while(1){if(!(((c[Bb>>2]|0)>>>0>(c[Cb>>2]|0)>>>0?(c[Sb>>2]|0)>>>0>(c[Eb>>2]|0)>>>0:0)|0))break o;if((d[(c[Bb>>2]|0)+-1>>0]|0|0)!=(d[(c[Sb>>2]|0)+-1>>0]|0|0))break o;c[Bb>>2]=(c[Bb>>2]|0)+-1;c[Sb>>2]=(c[Sb>>2]|0)+-1;c[Lb>>2]=(c[Lb>>2]|0)+1;}}c[Bb>>2]=(c[Bb>>2]|0)+(((c[Bb>>2]|0)-(c[Cb>>2]|0)>>8)+1);continue m;}}while(0);c[Ib>>2]=c[Hb>>2];c[Hb>>2]=c[Tb>>2];$m(c[pb>>2]|0,(c[Bb>>2]|0)-(c[Cb>>2]|0)|0,c[Cb>>2]|0,(c[Tb>>2]|0)+2|0,(c[Lb>>2]|0)-3|0);}c[Bb>>2]=(c[Bb>>2]|0)+(c[Lb>>2]|0);c[Cb>>2]=c[Bb>>2];p:do{if((c[Bb>>2]|0)>>>0<=(c[Gb>>2]|0)>>>0){Ab=(c[Ob>>2]|0)+2|0;tb=c[xb>>2]|0;c[tb+((Dk((c[zb>>2]|0)+(c[Ob>>2]|0)+2|0,c[yb>>2]|0,c[ub>>2]|0)|0)<<2)>>2]=Ab;tb=c[vb>>2]|0;c[tb+((Dk((c[zb>>2]|0)+(c[Ob>>2]|0)+2|0,c[wb>>2]|0,8)|0)<<2)>>2]=Ab;Ab=(c[Bb>>2]|0)+-2-(c[zb>>2]|0)|0;tb=c[xb>>2]|0;c[tb+((Dk((c[Bb>>2]|0)+-2|0,c[yb>>2]|0,c[ub>>2]|0)|0)<<2)>>2]=Ab;tb=c[vb>>2]|0;c[tb+((Dk((c[Bb>>2]|0)+-2|0,c[wb>>2]|0,8)|0)<<2)>>2]=Ab;while(1){if((c[Bb>>2]|0)>>>0>(c[Gb>>2]|0)>>>0)break p;Ab=(c[Ib>>2]|0)>>>0>0&1;tb=Rk(c[Bb>>2]|0)|0;if(!(Ab&(tb|0)==(Rk((c[Bb>>2]|0)+(0-(c[Ib>>2]|0))|0)|0)))break p;c[Xb>>2]=(cn((c[Bb>>2]|0)+4|0,(c[Bb>>2]|0)+4+(0-(c[Ib>>2]|0))|0,c[Fb>>2]|0)|0)+4;c[Yb>>2]=c[Ib>>2];c[Ib>>2]=c[Hb>>2];c[Hb>>2]=c[Yb>>2];tb=(c[Bb>>2]|0)-(c[zb>>2]|0)|0;Ab=c[xb>>2]|0;c[Ab+((Dk(c[Bb>>2]|0,c[yb>>2]|0,c[ub>>2]|0)|0)<<2)>>2]=tb;tb=(c[Bb>>2]|0)-(c[zb>>2]|0)|0;Ab=c[vb>>2]|0;c[Ab+((Dk(c[Bb>>2]|0,c[wb>>2]|0,8)|0)<<2)>>2]=tb;$m(c[pb>>2]|0,0,c[Cb>>2]|0,0,(c[Xb>>2]|0)-3|0);c[Bb>>2]=(c[Bb>>2]|0)+(c[Xb>>2]|0);c[Cb>>2]=c[Bb>>2];}}}while(0);}c[c[qb>>2]>>2]=c[Hb>>2]|0?c[Hb>>2]|0:c[Jb>>2]|0;c[(c[qb>>2]|0)+4>>2]=c[Ib>>2]|0?c[Ib>>2]|0:c[Jb>>2]|0;c[Zb>>2]=(c[Fb>>2]|0)-(c[Cb>>2]|0);gc=c[Zb>>2]|0;l=i;return gc|0;}}return 0;}function jm(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=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,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,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,Zc=0,_c=0,$c=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,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,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,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0;i=l;l=l+2144|0;j=i+2136|0;k=i+2132|0;m=i+2128|0;n=i+2124|0;o=i+2120|0;p=i+2116|0;q=i+2112|0;r=i+2108|0;s=i+2104|0;t=i+2100|0;u=i+2096|0;v=i+2092|0;w=i+2088|0;x=i+2084|0;y=i+2080|0;z=i+2076|0;A=i+2072|0;B=i+2068|0;C=i+2064|0;D=i+2060|0;E=i+2056|0;F=i+2052|0;G=i+2048|0;H=i+2044|0;I=i+2040|0;J=i+2036|0;K=i+2032|0;L=i+2028|0;M=i+2024|0;N=i+2020|0;O=i+2016|0;P=i+2012|0;Q=i+2008|0;R=i+2004|0;S=i+2e3|0;T=i+1996|0;U=i+1992|0;V=i+1988|0;W=i+1984|0;X=i+1980|0;Y=i+1976|0;Z=i+1972|0;_=i+1968|0;$=i+1964|0;aa=i+1960|0;ba=i+1956|0;ca=i+1952|0;da=i+1948|0;ea=i+1944|0;fa=i+1940|0;ga=i+1936|0;ha=i+1932|0;ia=i+1928|0;ja=i+1924|0;ka=i+1920|0;la=i+1916|0;ma=i+1912|0;na=i+1908|0;oa=i+1904|0;pa=i+1900|0;qa=i+1896|0;ra=i+1892|0;sa=i+1888|0;ta=i+1884|0;ua=i+1880|0;va=i+1876|0;wa=i+1872|0;xa=i+1868|0;ya=i+1864|0;za=i+1860|0;Aa=i+1856|0;Ba=i+1852|0;Ca=i+1848|0;Da=i+1844|0;Ea=i+1840|0;Fa=i+1836|0;Ga=i+1832|0;Ha=i+1828|0;Ia=i+1824|0;Ja=i+1820|0;Ka=i+1816|0;La=i+1812|0;Ma=i+1808|0;Na=i+1804|0;Oa=i+1800|0;Pa=i+1796|0;Qa=i+1792|0;Ra=i+1788|0;Sa=i+1784|0;Ta=i+1780|0;Ua=i+1776|0;Va=i+1772|0;Wa=i+1768|0;Xa=i+1764|0;Ya=i+1760|0;Za=i+1756|0;_a=i+1752|0;$a=i+1748|0;ab=i+1744|0;bb=i+1740|0;cb=i+1736|0;db=i+1732|0;eb=i+1728|0;fb=i+1724|0;gb=i+1720|0;hb=i+1716|0;ib=i+1712|0;jb=i+1708|0;kb=i+1704|0;lb=i+1700|0;mb=i+1696|0;nb=i+1692|0;ob=i+1688|0;pb=i+1684|0;qb=i+1680|0;rb=i+1676|0;sb=i+1672|0;tb=i+1668|0;ub=i+1664|0;vb=i+1660|0;wb=i+1656|0;xb=i+1652|0;yb=i+1648|0;zb=i+1644|0;Ab=i+1640|0;Bb=i+1636|0;Cb=i+1632|0;Db=i+1628|0;Eb=i+1624|0;Fb=i+1620|0;Gb=i+1616|0;Hb=i+1612|0;Ib=i+1608|0;Jb=i+1604|0;Kb=i+1600|0;Lb=i+1596|0;Mb=i+1592|0;Nb=i+1588|0;Ob=i+1584|0;Pb=i+1580|0;Qb=i+1576|0;Rb=i+1572|0;Sb=i+1568|0;Tb=i+1564|0;Ub=i+1560|0;Vb=i+1556|0;Wb=i+1552|0;Xb=i+1548|0;Yb=i+1544|0;Zb=i+1540|0;_b=i+1536|0;$b=i+1532|0;ac=i+1528|0;bc=i+1524|0;cc=i+1520|0;dc=i+1516|0;ec=i+1512|0;fc=i+1508|0;gc=i+1504|0;hc=i+1500|0;ic=i+1496|0;jc=i+1492|0;kc=i+1488|0;lc=i+1484|0;mc=i+1480|0;nc=i+1476|0;oc=i+1472|0;pc=i+1468|0;qc=i+1464|0;rc=i+1460|0;sc=i+1456|0;tc=i+1452|0;uc=i+1448|0;vc=i+1444|0;wc=i+1440|0;xc=i+1436|0;yc=i+1432|0;zc=i+1428|0;Ac=i+1424|0;Bc=i+1420|0;Cc=i+1416|0;Dc=i+1412|0;Ec=i+1408|0;Fc=i+1404|0;Gc=i+1400|0;Hc=i+1396|0;Ic=i+1392|0;Jc=i+1388|0;Kc=i+1384|0;Lc=i+1380|0;Mc=i+1376|0;Nc=i+1372|0;Oc=i+1368|0;Pc=i+1364|0;Qc=i+1360|0;Rc=i+1356|0;Sc=i+1352|0;Tc=i+1348|0;Uc=i+1344|0;Vc=i+1340|0;Wc=i+1336|0;Xc=i+1332|0;Yc=i+1328|0;Zc=i+1324|0;_c=i+1320|0;$c=i+1316|0;ad=i+1312|0;bd=i+1308|0;cd=i+1304|0;dd=i+1300|0;ed=i+1296|0;fd=i+1292|0;gd=i+1288|0;hd=i+1284|0;id=i+1280|0;jd=i+1276|0;kd=i+1272|0;ld=i+1268|0;md=i+1264|0;nd=i+1260|0;od=i+1256|0;pd=i+1252|0;qd=i+1248|0;rd=i+1244|0;sd=i+1240|0;td=i+1236|0;ud=i+1232|0;vd=i+1228|0;wd=i+1224|0;xd=i+1220|0;yd=i+1216|0;zd=i+1212|0;Ad=i+1208|0;Bd=i+1204|0;Cd=i+1200|0;Dd=i+1196|0;Ed=i+1192|0;Fd=i+1188|0;Gd=i+1184|0;Hd=i+1180|0;Id=i+1176|0;Jd=i+1172|0;Kd=i+1168|0;Ld=i+1164|0;Md=i+1160|0;Nd=i+1156|0;Od=i+1152|0;Pd=i+1148|0;Qd=i+1144|0;Rd=i+1140|0;Sd=i+1136|0;Td=i+1132|0;Ud=i+1128|0;Vd=i+1124|0;Wd=i+1120|0;Xd=i+1116|0;Yd=i+1112|0;Zd=i+1108|0;_d=i+1104|0;$d=i+1100|0;ae=i+1096|0;be=i+1092|0;ce=i+1088|0;de=i+1084|0;ee=i+1080|0;fe=i+1076|0;ge=i+1072|0;he=i+1068|0;ie=i+1064|0;je=i+1060|0;ke=i+1056|0;le=i+1052|0;me=i+1048|0;ne=i+1044|0;oe=i+1040|0;pe=i+1036|0;qe=i+1032|0;re=i+1028|0;se=i+1024|0;te=i+1020|0;ue=i+1016|0;ve=i+1012|0;we=i+1008|0;xe=i+1004|0;ye=i+1e3|0;ze=i+996|0;Ae=i+992|0;Be=i+988|0;Ce=i+984|0;De=i+980|0;Ee=i+976|0;Fe=i+972|0;Ge=i+968|0;He=i+964|0;Ie=i+960|0;Je=i+956|0;Ke=i+952|0;Le=i+948|0;Me=i+944|0;Ne=i+940|0;Oe=i+936|0;Pe=i+932|0;Qe=i+928|0;Re=i+924|0;Se=i+920|0;Te=i+916|0;Ue=i+912|0;Ve=i+908|0;We=i+904|0;Xe=i+900|0;Ye=i+896|0;Ze=i+892|0;_e=i+888|0;$e=i+884|0;af=i+880|0;bf=i+876|0;cf=i+872|0;df=i+868|0;ef=i+864|0;ff=i+860|0;gf=i+856|0;hf=i+852|0;jf=i+848|0;kf=i+844|0;lf=i+840|0;mf=i+836|0;nf=i+832|0;of=i+828|0;pf=i+824|0;qf=i+820|0;rf=i+816|0;sf=i+812|0;tf=i+808|0;uf=i+804|0;vf=i+800|0;wf=i+796|0;xf=i+792|0;yf=i+788|0;zf=i+784|0;Af=i+780|0;Bf=i+776|0;Cf=i+772|0;Df=i+768|0;Ef=i+764|0;Ff=i+760|0;Gf=i+756|0;Hf=i+752|0;If=i+748|0;Jf=i+744|0;Kf=i+740|0;Lf=i+736|0;Mf=i+732|0;Nf=i+728|0;Of=i+724|0;Pf=i+720|0;Qf=i+716|0;Rf=i+712|0;Sf=i+708|0;Tf=i+704|0;Uf=i+700|0;Vf=i+696|0;Wf=i+692|0;Xf=i+688|0;Yf=i+684|0;Zf=i+680|0;_f=i+676|0;$f=i+672|0;ag=i+668|0;bg=i+664|0;cg=i+660|0;dg=i+656|0;eg=i+652|0;fg=i+648|0;gg=i+644|0;hg=i+640|0;ig=i+636|0;jg=i+632|0;kg=i+628|0;lg=i+624|0;mg=i+620|0;ng=i+616|0;og=i+612|0;pg=i+608|0;qg=i+604|0;rg=i+600|0;sg=i+596|0;tg=i+592|0;ug=i+588|0;vg=i+584|0;wg=i+580|0;xg=i+576|0;yg=i+572|0;zg=i+568|0;Ag=i+564|0;Bg=i+560|0;Cg=i+556|0;Dg=i+552|0;Eg=i+548|0;Fg=i+544|0;Gg=i+540|0;Hg=i+536|0;Ig=i+532|0;Jg=i+528|0;Kg=i+524|0;Lg=i+520|0;Mg=i+516|0;Ng=i+512|0;Og=i+508|0;Pg=i+504|0;Qg=i+500|0;Rg=i+496|0;Sg=i+492|0;Tg=i+488|0;Ug=i+484|0;Vg=i+480|0;Wg=i+476|0;Xg=i+472|0;Yg=i+468|0;Zg=i+464|0;_g=i+460|0;$g=i+456|0;ah=i+452|0;bh=i+448|0;ch=i+444|0;dh=i+440|0;eh=i+436|0;fh=i+432|0;gh=i+428|0;hh=i+424|0;ih=i+420|0;jh=i+416|0;kh=i+412|0;lh=i+408|0;mh=i+404|0;nh=i+400|0;oh=i+396|0;ph=i+392|0;qh=i+388|0;rh=i+384|0;sh=i+380|0;th=i+376|0;uh=i+372|0;vh=i+368|0;wh=i+364|0;xh=i+360|0;yh=i+356|0;zh=i+352|0;Ah=i+348|0;Bh=i+344|0;Ch=i+340|0;Dh=i+336|0;Eh=i+332|0;Fh=i+328|0;Gh=i+324|0;Hh=i+320|0;Ih=i+316|0;Jh=i+312|0;Kh=i+308|0;Lh=i+304|0;Mh=i+300|0;Nh=i+296|0;Oh=i+292|0;Ph=i+288|0;Qh=i+284|0;Rh=i+280|0;Sh=i+276|0;Th=i+272|0;Uh=i+268|0;Vh=i+264|0;Wh=i+260|0;Xh=i+256|0;Yh=i+252|0;Zh=i+248|0;_h=i+244|0;$h=i+240|0;ai=i+236|0;bi=i+232|0;ci=i+228|0;di=i+216|0;ei=i+212|0;fi=i+208|0;gi=i+204|0;hi=i+200|0;ii=i+196|0;ji=i+192|0;ki=i+188|0;li=i+184|0;mi=i+180|0;ni=i+176|0;oi=i+172|0;pi=i+168|0;qi=i+164|0;ri=i+160|0;si=i+148|0;ti=i+144|0;ui=i+140|0;vi=i+136|0;wi=i+132|0;xi=i+128|0;yi=i+124|0;zi=i+120|0;Ai=i+116|0;Bi=i+112|0;Ci=i+108|0;Di=i+104|0;Ei=i+100|0;Fi=i+88|0;Gi=i+84|0;Hi=i+80|0;Ii=i+76|0;Ji=i+72|0;Ki=i+68|0;Li=i+64|0;Mi=i+60|0;Ni=i+56|0;Oi=i+52|0;Pi=i+48|0;Qi=i+44|0;Ri=i+40|0;Si=i+36|0;Ti=i+32|0;Ui=i+28|0;Vi=i+24|0;Wi=i+20|0;Xi=i+16|0;Yi=i+12|0;Zi=i+8|0;_i=i+4|0;$i=i;c[Wi>>2]=a;c[Xi>>2]=b;c[Yi>>2]=e;c[Zi>>2]=f;c[_i>>2]=g;c[$i>>2]=h;h=c[Xi>>2]|0;Xi=c[Yi>>2]|0;Yi=c[Zi>>2]|0;Zi=c[_i>>2]|0;_i=c[$i>>2]|0;c[Lh>>2]=c[Wi>>2];c[Mh>>2]=h;c[Nh>>2]=Xi;c[Oh>>2]=Yi;c[Ph>>2]=Zi;c[Qh>>2]=_i;c[Rh>>2]=0;c[Sh>>2]=1;c[Th>>2]=(c[Lh>>2]|0)+48;c[Uh>>2]=c[Ph>>2];c[Vh>>2]=c[Uh>>2];c[Wh>>2]=c[Uh>>2];c[Xh>>2]=(c[Uh>>2]|0)+(c[Qh>>2]|0);c[Yh>>2]=(c[Xh>>2]|0)+-8;c[Zh>>2]=c[(c[Lh>>2]|0)+4>>2];c[_h>>2]=(c[Zh>>2]|0)+(c[(c[Lh>>2]|0)+12>>2]|0);if((c[(c[Oh>>2]|0)+20>>2]|0)>>>0<4095)aj=c[(c[Oh>>2]|0)+20>>2]|0;else aj=4095;c[$h>>2]=aj;c[ai>>2]=(c[(c[Oh>>2]|0)+16>>2]|0)==3?3:4;c[bi>>2]=c[(c[Th>>2]|0)+20>>2];c[ci>>2]=c[(c[Th>>2]|0)+16>>2];c[(c[Lh>>2]|0)+28>>2]=c[(c[Lh>>2]|0)+24>>2];lm(c[Th>>2]|0,c[Ph>>2]|0,c[Qh>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+((c[Vh>>2]|0)==(c[_h>>2]|0)&1);c[di>>2]=0;c[di+4>>2]=0;c[di+8>>2]=0;while(1){if((c[Vh>>2]|0)>>>0>=(c[Yh>>2]|0)>>>0)break;c[fi>>2]=0;c[ii>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[ji>>2]=((c[ii>>2]|0)!=0^1)&1;_h=c[Oh>>2]|0;Qh=c[Vh>>2]|0;Ph=c[Xh>>2]|0;aj=c[Sh>>2]|0;Zh=c[Nh>>2]|0;Uh=c[ji>>2]|0;_i=c[ci>>2]|0;Zi=c[ai>>2]|0;c[Bh>>2]=c[Lh>>2];c[Ch>>2]=_h;c[Dh>>2]=Qh;c[Eh>>2]=Ph;c[Fh>>2]=aj;c[Gh>>2]=Zh;c[Hh>>2]=Uh;c[Ih>>2]=_i;c[Jh>>2]=Zi;c[Kh>>2]=c[(c[Ch>>2]|0)+16>>2];a:do{if((c[Dh>>2]|0)>>>0<((c[(c[Bh>>2]|0)+4>>2]|0)+(c[(c[Bh>>2]|0)+24>>2]|0)|0)>>>0)c[Ah>>2]=0;else{Zi=c[Ch>>2]|0;_i=c[Dh>>2]|0;Uh=c[Eh>>2]|0;Zh=c[Kh>>2]|0;aj=c[Fh>>2]|0;c[rh>>2]=c[Bh>>2];c[sh>>2]=Zi;c[th>>2]=_i;c[uh>>2]=Uh;c[vh>>2]=Zh;c[wh>>2]=aj;c[xh>>2]=c[(c[rh>>2]|0)+4>>2];c[yh>>2]=(c[th>>2]|0)-(c[xh>>2]|0);c[zh>>2]=c[(c[rh>>2]|0)+24>>2];while(1){if((c[zh>>2]|0)>>>0>=(c[yh>>2]|0)>>>0)break;aj=Rj(c[rh>>2]|0,c[sh>>2]|0,(c[xh>>2]|0)+(c[zh>>2]|0)|0,c[uh>>2]|0,c[vh>>2]|0,c[wh>>2]|0)|0;c[zh>>2]=(c[zh>>2]|0)+aj;}c[(c[rh>>2]|0)+24>>2]=c[yh>>2];switch(c[Kh>>2]|0){case 3:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[wg>>2]=c[Bh>>2];c[xg>>2]=aj;c[yg>>2]=Zh;c[zg>>2]=Uh;c[Ag>>2]=_i;c[Bg>>2]=Zi;c[Cg>>2]=Ph;c[Dg>>2]=Qh;c[Eg>>2]=_h;c[Fg>>2]=3;if((c[(c[xg>>2]|0)+20>>2]|0)>>>0<4095)bj=c[(c[xg>>2]|0)+20>>2]|0;else bj=4095;c[Gg>>2]=bj;c[Hg>>2]=c[(c[wg>>2]|0)+4>>2];c[Ig>>2]=(c[yg>>2]|0)-(c[Hg>>2]|0);c[Jg>>2]=c[(c[xg>>2]|0)+8>>2];c[Kg>>2]=(c[Fg>>2]|0)==3?3:4;c[Lg>>2]=c[(c[wg>>2]|0)+36>>2];c[Mg>>2]=Sj(c[yg>>2]|0,c[Jg>>2]|0,c[Fg>>2]|0)|0;c[Ng>>2]=c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2];c[Og>>2]=c[(c[wg>>2]|0)+44>>2];c[Pg>>2]=(c[(c[xg>>2]|0)+4>>2]|0)-1;c[Qg>>2]=(1<>2])-1;c[Rg>>2]=0;c[Sg>>2]=0;c[Tg>>2]=c[(c[wg>>2]|0)+8>>2];c[Ug>>2]=c[(c[wg>>2]|0)+12>>2];c[Vg>>2]=(c[Tg>>2]|0)+(c[Ug>>2]|0);c[Wg>>2]=(c[Hg>>2]|0)+(c[Ug>>2]|0);if((c[Qg>>2]|0)>>>0>=(c[Ig>>2]|0)>>>0)cj=0;else cj=(c[Ig>>2]|0)-(c[Qg>>2]|0)|0;c[Xg>>2]=cj;c[Yg>>2]=c[(c[wg>>2]|0)+16>>2];c[Zg>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2);c[_g>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2)+4;c[$g>>2]=(c[Ig>>2]|0)+8+1;c[bh>>2]=0;c[ch>>2]=1<>2]|0)+12>>2];c[dh>>2]=(c[Eg>>2]|0)-1;c[eh>>2]=3+(c[Cg>>2]|0);c[fh>>2]=c[Cg>>2];while(1){if((c[fh>>2]|0)>>>0>=(c[eh>>2]|0)>>>0){dj=31;break;}_h=c[Bg>>2]|0;if((c[fh>>2]|0)==3)ej=(c[_h>>2]|0)-1|0;else ej=c[_h+(c[fh>>2]<<2)>>2]|0;c[gh>>2]=ej;c[hh>>2]=(c[Ig>>2]|0)-(c[gh>>2]|0);c[ih>>2]=0;if(((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Ug>>2]|0)|0)>>>0){_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0;if((_h|0)==(mm((c[yg>>2]|0)+(0-(c[gh>>2]|0))|0,c[Kg>>2]|0)|0)){_h=Tj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[yg>>2]|0)+(c[Kg>>2]|0)+(0-(c[gh>>2]|0))|0,c[zg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}else{c[jh>>2]=(c[Tg>>2]|0)+(c[hh>>2]|0);if((c[Ag>>2]|0?(((c[Ug>>2]|0)-1-(c[hh>>2]|0)|0)>>>0>=3?((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Yg>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0,(_h|0)==(mm(c[jh>>2]|0,c[Kg>>2]|0)|0)):0){_h=Uj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[jh>>2]|0)+(c[Kg>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}if((c[ih>>2]|0)>>>0>(c[dh>>2]|0)>>>0?(c[dh>>2]=c[ih>>2],c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[fh>>2]|0)-(c[Cg>>2]|0),c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ih>>2],c[bh>>2]=(c[bh>>2]|0)+1,((c[ih>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[ih>>2]|0)|0)==(c[zg>>2]|0))|0):0){dj=29;break;}c[fh>>2]=(c[fh>>2]|0)+1;}do{if((dj|0)==29){dj=0;c[vg>>2]=c[bh>>2];}else if((dj|0)==31){dj=0;if(((c[Fg>>2]|0)==3?(c[dh>>2]|0)>>>0<(c[Fg>>2]|0)>>>0:0)?(c[kh>>2]=nm(c[wg>>2]|0,c[yg>>2]|0)|0,((c[kh>>2]|0)>>>0>(c[Yg>>2]|0)>>>0?((c[Ig>>2]|0)-(c[kh>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ag>>2]|0?(c[kh>>2]|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[nh>>2]=(c[Tg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Uj(c[yg>>2]|0,c[nh>>2]|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;}else{c[mh>>2]=(c[Hg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Tj(c[yg>>2]|0,c[mh>>2]|0,c[zg>>2]|0)|0;}if((c[lh>>2]|0)>>>0>=(c[Fg>>2]|0)>>>0?(c[dh>>2]=c[lh>>2],c[c[Dg>>2]>>2]=(c[Ig>>2]|0)-(c[kh>>2]|0)+2,c[(c[Dg>>2]|0)+4>>2]=c[lh>>2],c[bh>>2]=1,((c[lh>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[lh>>2]|0)|0)==(c[zg>>2]|0))|0):0){c[(c[wg>>2]|0)+24>>2]=(c[Ig>>2]|0)+1;c[vg>>2]=1;break;}}c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2]=c[Ig>>2];while(1){_h=c[ch>>2]|0;c[ch>>2]=_h+-1;if(!_h)break;if((c[Ng>>2]|0)>>>0<=(c[Yg>>2]|0)>>>0)break;c[oh>>2]=(c[Og>>2]|0)+((c[Ng>>2]&c[Qg>>2])<<1<<2);c[ph>>2]=(c[Rg>>2]|0)>>>0<(c[Sg>>2]|0)>>>0?c[Rg>>2]|0:c[Sg>>2]|0;if(c[Ag>>2]|0?((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[qh>>2]=(c[Tg>>2]|0)+(c[Ng>>2]|0);_h=Uj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;if(((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0>=(c[Ug>>2]|0)>>>0)c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);}else{c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);_h=Tj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;}if((c[ph>>2]|0)>>>0>(c[dh>>2]|0)>>>0){if((c[ph>>2]|0)>>>0>((c[$g>>2]|0)-(c[Ng>>2]|0)|0)>>>0)c[$g>>2]=(c[Ng>>2]|0)+(c[ph>>2]|0);c[dh>>2]=c[ph>>2];c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[Ig>>2]|0)-(c[Ng>>2]|0)+2;c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ph>>2];c[bh>>2]=(c[bh>>2]|0)+1;if((c[ph>>2]|0)>>>0>4096)break;if(((c[yg>>2]|0)+(c[ph>>2]|0)|0)==(c[zg>>2]|0))break;}_h=c[Ng>>2]|0;if((d[(c[qh>>2]|0)+(c[ph>>2]|0)>>0]|0|0)<(d[(c[yg>>2]|0)+(c[ph>>2]|0)>>0]|0|0)){c[c[Zg>>2]>>2]=_h;c[Rg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=56;break;}c[Zg>>2]=(c[oh>>2]|0)+4;c[Ng>>2]=c[(c[oh>>2]|0)+4>>2];}else{c[c[_g>>2]>>2]=_h;c[Sg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=59;break;}c[_g>>2]=c[oh>>2];c[Ng>>2]=c[c[oh>>2]>>2];}}if((dj|0)==56){dj=0;c[Zg>>2]=ah;}else if((dj|0)==59){dj=0;c[_g>>2]=ah;}c[c[_g>>2]>>2]=0;c[c[Zg>>2]>>2]=0;c[(c[wg>>2]|0)+24>>2]=(c[$g>>2]|0)-8;c[vg>>2]=c[bh>>2];}}while(0);c[Ah>>2]=c[vg>>2];break a;break;}case 7:case 6:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Hd>>2]=c[Bh>>2];c[Id>>2]=_h;c[Jd>>2]=Qh;c[Kd>>2]=Ph;c[Ld>>2]=Zi;c[Md>>2]=_i;c[Nd>>2]=Uh;c[Od>>2]=Zh;c[Pd>>2]=aj;c[Qd>>2]=6;if((c[(c[Id>>2]|0)+20>>2]|0)>>>0<4095)fj=c[(c[Id>>2]|0)+20>>2]|0;else fj=4095;c[Rd>>2]=fj;c[Sd>>2]=c[(c[Hd>>2]|0)+4>>2];c[Td>>2]=(c[Jd>>2]|0)-(c[Sd>>2]|0);c[Ud>>2]=c[(c[Id>>2]|0)+8>>2];c[Vd>>2]=(c[Qd>>2]|0)==3?3:4;c[Wd>>2]=c[(c[Hd>>2]|0)+36>>2];c[Xd>>2]=Sj(c[Jd>>2]|0,c[Ud>>2]|0,c[Qd>>2]|0)|0;c[Yd>>2]=c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2];c[Zd>>2]=c[(c[Hd>>2]|0)+44>>2];c[_d>>2]=(c[(c[Id>>2]|0)+4>>2]|0)-1;c[$d>>2]=(1<>2])-1;c[ae>>2]=0;c[be>>2]=0;c[ce>>2]=c[(c[Hd>>2]|0)+8>>2];c[de>>2]=c[(c[Hd>>2]|0)+12>>2];c[ee>>2]=(c[ce>>2]|0)+(c[de>>2]|0);c[fe>>2]=(c[Sd>>2]|0)+(c[de>>2]|0);if((c[$d>>2]|0)>>>0>=(c[Td>>2]|0)>>>0)gj=0;else gj=(c[Td>>2]|0)-(c[$d>>2]|0)|0;c[ge>>2]=gj;c[he>>2]=c[(c[Hd>>2]|0)+16>>2];c[ie>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2);c[je>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2)+4;c[ke>>2]=(c[Td>>2]|0)+8+1;c[me>>2]=0;c[ne>>2]=1<>2]|0)+12>>2];c[oe>>2]=(c[Pd>>2]|0)-1;c[pe>>2]=3+(c[Nd>>2]|0);c[qe>>2]=c[Nd>>2];while(1){if((c[qe>>2]|0)>>>0>=(c[pe>>2]|0)>>>0){dj=190;break;}aj=c[Md>>2]|0;if((c[qe>>2]|0)==3)hj=(c[aj>>2]|0)-1|0;else hj=c[aj+(c[qe>>2]<<2)>>2]|0;c[re>>2]=hj;c[se>>2]=(c[Td>>2]|0)-(c[re>>2]|0);c[te>>2]=0;if(((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[de>>2]|0)|0)>>>0){aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0;if((aj|0)==(mm((c[Jd>>2]|0)+(0-(c[re>>2]|0))|0,c[Vd>>2]|0)|0)){aj=Tj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[Jd>>2]|0)+(c[Vd>>2]|0)+(0-(c[re>>2]|0))|0,c[Kd>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}else{c[ue>>2]=(c[ce>>2]|0)+(c[se>>2]|0);if((c[Ld>>2]|0?(((c[de>>2]|0)-1-(c[se>>2]|0)|0)>>>0>=3?((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[he>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0,(aj|0)==(mm(c[ue>>2]|0,c[Vd>>2]|0)|0)):0){aj=Uj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[ue>>2]|0)+(c[Vd>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}if((c[te>>2]|0)>>>0>(c[oe>>2]|0)>>>0?(c[oe>>2]=c[te>>2],c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[qe>>2]|0)-(c[Nd>>2]|0),c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[te>>2],c[me>>2]=(c[me>>2]|0)+1,((c[te>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[te>>2]|0)|0)==(c[Kd>>2]|0))|0):0){dj=188;break;}c[qe>>2]=(c[qe>>2]|0)+1;}do{if((dj|0)==188){dj=0;c[Gd>>2]=c[me>>2];}else if((dj|0)==190){dj=0;if(((c[Qd>>2]|0)==3?(c[oe>>2]|0)>>>0<(c[Qd>>2]|0)>>>0:0)?(c[ve>>2]=nm(c[Hd>>2]|0,c[Jd>>2]|0)|0,((c[ve>>2]|0)>>>0>(c[he>>2]|0)>>>0?((c[Td>>2]|0)-(c[ve>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ld>>2]|0?(c[ve>>2]|0)>>>0<(c[de>>2]|0)>>>0:0){c[ye>>2]=(c[ce>>2]|0)+(c[ve>>2]|0);c[we>>2]=Uj(c[Jd>>2]|0,c[ye>>2]|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;}else{c[xe>>2]=(c[Sd>>2]|0)+(c[ve>>2]|0);c[we>>2]=Tj(c[Jd>>2]|0,c[xe>>2]|0,c[Kd>>2]|0)|0;}if((c[we>>2]|0)>>>0>=(c[Qd>>2]|0)>>>0?(c[oe>>2]=c[we>>2],c[c[Od>>2]>>2]=(c[Td>>2]|0)-(c[ve>>2]|0)+2,c[(c[Od>>2]|0)+4>>2]=c[we>>2],c[me>>2]=1,((c[we>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[we>>2]|0)|0)==(c[Kd>>2]|0))|0):0){c[(c[Hd>>2]|0)+24>>2]=(c[Td>>2]|0)+1;c[Gd>>2]=1;break;}}c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2]=c[Td>>2];while(1){aj=c[ne>>2]|0;c[ne>>2]=aj+-1;if(!aj)break;if((c[Yd>>2]|0)>>>0<=(c[he>>2]|0)>>>0)break;c[ze>>2]=(c[Zd>>2]|0)+((c[Yd>>2]&c[$d>>2])<<1<<2);c[Ae>>2]=(c[ae>>2]|0)>>>0<(c[be>>2]|0)>>>0?c[ae>>2]|0:c[be>>2]|0;if(c[Ld>>2]|0?((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0<(c[de>>2]|0)>>>0:0){c[Be>>2]=(c[ce>>2]|0)+(c[Yd>>2]|0);aj=Uj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;if(((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0>=(c[de>>2]|0)>>>0)c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);}else{c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);aj=Tj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;}if((c[Ae>>2]|0)>>>0>(c[oe>>2]|0)>>>0){if((c[Ae>>2]|0)>>>0>((c[ke>>2]|0)-(c[Yd>>2]|0)|0)>>>0)c[ke>>2]=(c[Yd>>2]|0)+(c[Ae>>2]|0);c[oe>>2]=c[Ae>>2];c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[Td>>2]|0)-(c[Yd>>2]|0)+2;c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[Ae>>2];c[me>>2]=(c[me>>2]|0)+1;if((c[Ae>>2]|0)>>>0>4096)break;if(((c[Jd>>2]|0)+(c[Ae>>2]|0)|0)==(c[Kd>>2]|0))break;}aj=c[Yd>>2]|0;if((d[(c[Be>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)<(d[(c[Jd>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)){c[c[ie>>2]>>2]=aj;c[ae>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=215;break;}c[ie>>2]=(c[ze>>2]|0)+4;c[Yd>>2]=c[(c[ze>>2]|0)+4>>2];}else{c[c[je>>2]>>2]=aj;c[be>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=218;break;}c[je>>2]=c[ze>>2];c[Yd>>2]=c[c[ze>>2]>>2];}}if((dj|0)==215){dj=0;c[ie>>2]=le;}else if((dj|0)==218){dj=0;c[je>>2]=le;}c[c[je>>2]>>2]=0;c[c[ie>>2]>>2]=0;c[(c[Hd>>2]|0)+24>>2]=(c[ke>>2]|0)-8;c[Gd>>2]=c[me>>2];}}while(0);c[Ah>>2]=c[Gd>>2];break a;break;}case 5:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[De>>2]=c[Bh>>2];c[Ee>>2]=aj;c[Fe>>2]=Zh;c[Ge>>2]=Uh;c[He>>2]=_i;c[Ie>>2]=Zi;c[Je>>2]=Ph;c[Ke>>2]=Qh;c[Le>>2]=_h;c[Me>>2]=5;if((c[(c[Ee>>2]|0)+20>>2]|0)>>>0<4095)ij=c[(c[Ee>>2]|0)+20>>2]|0;else ij=4095;c[Ne>>2]=ij;c[Oe>>2]=c[(c[De>>2]|0)+4>>2];c[Pe>>2]=(c[Fe>>2]|0)-(c[Oe>>2]|0);c[Qe>>2]=c[(c[Ee>>2]|0)+8>>2];c[Re>>2]=(c[Me>>2]|0)==3?3:4;c[Se>>2]=c[(c[De>>2]|0)+36>>2];c[Te>>2]=Sj(c[Fe>>2]|0,c[Qe>>2]|0,c[Me>>2]|0)|0;c[Ue>>2]=c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2];c[Ve>>2]=c[(c[De>>2]|0)+44>>2];c[We>>2]=(c[(c[Ee>>2]|0)+4>>2]|0)-1;c[Xe>>2]=(1<>2])-1;c[Ye>>2]=0;c[Ze>>2]=0;c[_e>>2]=c[(c[De>>2]|0)+8>>2];c[$e>>2]=c[(c[De>>2]|0)+12>>2];c[af>>2]=(c[_e>>2]|0)+(c[$e>>2]|0);c[bf>>2]=(c[Oe>>2]|0)+(c[$e>>2]|0);if((c[Xe>>2]|0)>>>0>=(c[Pe>>2]|0)>>>0)jj=0;else jj=(c[Pe>>2]|0)-(c[Xe>>2]|0)|0;c[cf>>2]=jj;c[df>>2]=c[(c[De>>2]|0)+16>>2];c[ef>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2);c[ff>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2)+4;c[gf>>2]=(c[Pe>>2]|0)+8+1;c[jf>>2]=0;c[kf>>2]=1<>2]|0)+12>>2];c[lf>>2]=(c[Le>>2]|0)-1;c[mf>>2]=3+(c[Je>>2]|0);c[nf>>2]=c[Je>>2];while(1){if((c[nf>>2]|0)>>>0>=(c[mf>>2]|0)>>>0){dj=137;break;}_h=c[Ie>>2]|0;if((c[nf>>2]|0)==3)kj=(c[_h>>2]|0)-1|0;else kj=c[_h+(c[nf>>2]<<2)>>2]|0;c[of>>2]=kj;c[pf>>2]=(c[Pe>>2]|0)-(c[of>>2]|0);c[qf>>2]=0;if(((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[$e>>2]|0)|0)>>>0){_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0;if((_h|0)==(mm((c[Fe>>2]|0)+(0-(c[of>>2]|0))|0,c[Re>>2]|0)|0)){_h=Tj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[Fe>>2]|0)+(c[Re>>2]|0)+(0-(c[of>>2]|0))|0,c[Ge>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}else{c[rf>>2]=(c[_e>>2]|0)+(c[pf>>2]|0);if((c[He>>2]|0?(((c[$e>>2]|0)-1-(c[pf>>2]|0)|0)>>>0>=3?((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[df>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0,(_h|0)==(mm(c[rf>>2]|0,c[Re>>2]|0)|0)):0){_h=Uj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[rf>>2]|0)+(c[Re>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}if((c[qf>>2]|0)>>>0>(c[lf>>2]|0)>>>0?(c[lf>>2]=c[qf>>2],c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[nf>>2]|0)-(c[Je>>2]|0),c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[qf>>2],c[jf>>2]=(c[jf>>2]|0)+1,((c[qf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[qf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){dj=135;break;}c[nf>>2]=(c[nf>>2]|0)+1;}do{if((dj|0)==135){dj=0;c[Ce>>2]=c[jf>>2];}else if((dj|0)==137){dj=0;if(((c[Me>>2]|0)==3?(c[lf>>2]|0)>>>0<(c[Me>>2]|0)>>>0:0)?(c[sf>>2]=nm(c[De>>2]|0,c[Fe>>2]|0)|0,((c[sf>>2]|0)>>>0>(c[df>>2]|0)>>>0?((c[Pe>>2]|0)-(c[sf>>2]|0)|0)>>>0<262144:0)|0):0){if(c[He>>2]|0?(c[sf>>2]|0)>>>0<(c[$e>>2]|0)>>>0:0){c[vf>>2]=(c[_e>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Uj(c[Fe>>2]|0,c[vf>>2]|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;}else{c[uf>>2]=(c[Oe>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Tj(c[Fe>>2]|0,c[uf>>2]|0,c[Ge>>2]|0)|0;}if((c[tf>>2]|0)>>>0>=(c[Me>>2]|0)>>>0?(c[lf>>2]=c[tf>>2],c[c[Ke>>2]>>2]=(c[Pe>>2]|0)-(c[sf>>2]|0)+2,c[(c[Ke>>2]|0)+4>>2]=c[tf>>2],c[jf>>2]=1,((c[tf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[tf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){c[(c[De>>2]|0)+24>>2]=(c[Pe>>2]|0)+1;c[Ce>>2]=1;break;}}c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2]=c[Pe>>2];while(1){_h=c[kf>>2]|0;c[kf>>2]=_h+-1;if(!_h)break;if((c[Ue>>2]|0)>>>0<=(c[df>>2]|0)>>>0)break;c[wf>>2]=(c[Ve>>2]|0)+((c[Ue>>2]&c[Xe>>2])<<1<<2);c[xf>>2]=(c[Ye>>2]|0)>>>0<(c[Ze>>2]|0)>>>0?c[Ye>>2]|0:c[Ze>>2]|0;if(c[He>>2]|0?((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0<(c[$e>>2]|0)>>>0:0){c[yf>>2]=(c[_e>>2]|0)+(c[Ue>>2]|0);_h=Uj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;if(((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0>=(c[$e>>2]|0)>>>0)c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);}else{c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);_h=Tj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;}if((c[xf>>2]|0)>>>0>(c[lf>>2]|0)>>>0){if((c[xf>>2]|0)>>>0>((c[gf>>2]|0)-(c[Ue>>2]|0)|0)>>>0)c[gf>>2]=(c[Ue>>2]|0)+(c[xf>>2]|0);c[lf>>2]=c[xf>>2];c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[Pe>>2]|0)-(c[Ue>>2]|0)+2;c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[xf>>2];c[jf>>2]=(c[jf>>2]|0)+1;if((c[xf>>2]|0)>>>0>4096)break;if(((c[Fe>>2]|0)+(c[xf>>2]|0)|0)==(c[Ge>>2]|0))break;}_h=c[Ue>>2]|0;if((d[(c[yf>>2]|0)+(c[xf>>2]|0)>>0]|0|0)<(d[(c[Fe>>2]|0)+(c[xf>>2]|0)>>0]|0|0)){c[c[ef>>2]>>2]=_h;c[Ye>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=162;break;}c[ef>>2]=(c[wf>>2]|0)+4;c[Ue>>2]=c[(c[wf>>2]|0)+4>>2];}else{c[c[ff>>2]>>2]=_h;c[Ze>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=165;break;}c[ff>>2]=c[wf>>2];c[Ue>>2]=c[c[wf>>2]>>2];}}if((dj|0)==162){dj=0;c[ef>>2]=hf;}else if((dj|0)==165){dj=0;c[ff>>2]=hf;}c[c[ff>>2]>>2]=0;c[c[ef>>2]>>2]=0;c[(c[De>>2]|0)+24>>2]=(c[gf>>2]|0)-8;c[Ce>>2]=c[jf>>2];}}while(0);c[Ah>>2]=c[Ce>>2];break a;break;}default:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Af>>2]=c[Bh>>2];c[Bf>>2]=_h;c[Cf>>2]=Qh;c[Df>>2]=Ph;c[Ef>>2]=Zi;c[Ff>>2]=_i;c[Gf>>2]=Uh;c[Hf>>2]=Zh;c[If>>2]=aj;c[Jf>>2]=4;if((c[(c[Bf>>2]|0)+20>>2]|0)>>>0<4095)lj=c[(c[Bf>>2]|0)+20>>2]|0;else lj=4095;c[Kf>>2]=lj;c[Lf>>2]=c[(c[Af>>2]|0)+4>>2];c[Mf>>2]=(c[Cf>>2]|0)-(c[Lf>>2]|0);c[Nf>>2]=c[(c[Bf>>2]|0)+8>>2];c[Of>>2]=(c[Jf>>2]|0)==3?3:4;c[Pf>>2]=c[(c[Af>>2]|0)+36>>2];c[Qf>>2]=Sj(c[Cf>>2]|0,c[Nf>>2]|0,c[Jf>>2]|0)|0;c[Rf>>2]=c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2];c[Sf>>2]=c[(c[Af>>2]|0)+44>>2];c[Tf>>2]=(c[(c[Bf>>2]|0)+4>>2]|0)-1;c[Uf>>2]=(1<>2])-1;c[Vf>>2]=0;c[Wf>>2]=0;c[Xf>>2]=c[(c[Af>>2]|0)+8>>2];c[Yf>>2]=c[(c[Af>>2]|0)+12>>2];c[Zf>>2]=(c[Xf>>2]|0)+(c[Yf>>2]|0);c[_f>>2]=(c[Lf>>2]|0)+(c[Yf>>2]|0);if((c[Uf>>2]|0)>>>0>=(c[Mf>>2]|0)>>>0)mj=0;else mj=(c[Mf>>2]|0)-(c[Uf>>2]|0)|0;c[$f>>2]=mj;c[ag>>2]=c[(c[Af>>2]|0)+16>>2];c[bg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2);c[cg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2)+4;c[dg>>2]=(c[Mf>>2]|0)+8+1;c[fg>>2]=0;c[gg>>2]=1<>2]|0)+12>>2];c[hg>>2]=(c[If>>2]|0)-1;c[ig>>2]=3+(c[Gf>>2]|0);c[jg>>2]=c[Gf>>2];while(1){if((c[jg>>2]|0)>>>0>=(c[ig>>2]|0)>>>0){dj=84;break;}aj=c[Ff>>2]|0;if((c[jg>>2]|0)==3)nj=(c[aj>>2]|0)-1|0;else nj=c[aj+(c[jg>>2]<<2)>>2]|0;c[kg>>2]=nj;c[lg>>2]=(c[Mf>>2]|0)-(c[kg>>2]|0);c[mg>>2]=0;if(((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[Yf>>2]|0)|0)>>>0){aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0;if((aj|0)==(mm((c[Cf>>2]|0)+(0-(c[kg>>2]|0))|0,c[Of>>2]|0)|0)){aj=Tj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[Cf>>2]|0)+(c[Of>>2]|0)+(0-(c[kg>>2]|0))|0,c[Df>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}else{c[ng>>2]=(c[Xf>>2]|0)+(c[lg>>2]|0);if((c[Ef>>2]|0?(((c[Yf>>2]|0)-1-(c[lg>>2]|0)|0)>>>0>=3?((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[ag>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0,(aj|0)==(mm(c[ng>>2]|0,c[Of>>2]|0)|0)):0){aj=Uj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[ng>>2]|0)+(c[Of>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}if((c[mg>>2]|0)>>>0>(c[hg>>2]|0)>>>0?(c[hg>>2]=c[mg>>2],c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[jg>>2]|0)-(c[Gf>>2]|0),c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[mg>>2],c[fg>>2]=(c[fg>>2]|0)+1,((c[mg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[mg>>2]|0)|0)==(c[Df>>2]|0))|0):0){dj=82;break;}c[jg>>2]=(c[jg>>2]|0)+1;}do{if((dj|0)==82){dj=0;c[zf>>2]=c[fg>>2];}else if((dj|0)==84){dj=0;if(((c[Jf>>2]|0)==3?(c[hg>>2]|0)>>>0<(c[Jf>>2]|0)>>>0:0)?(c[og>>2]=nm(c[Af>>2]|0,c[Cf>>2]|0)|0,((c[og>>2]|0)>>>0>(c[ag>>2]|0)>>>0?((c[Mf>>2]|0)-(c[og>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ef>>2]|0?(c[og>>2]|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[rg>>2]=(c[Xf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Uj(c[Cf>>2]|0,c[rg>>2]|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;}else{c[qg>>2]=(c[Lf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Tj(c[Cf>>2]|0,c[qg>>2]|0,c[Df>>2]|0)|0;}if((c[pg>>2]|0)>>>0>=(c[Jf>>2]|0)>>>0?(c[hg>>2]=c[pg>>2],c[c[Hf>>2]>>2]=(c[Mf>>2]|0)-(c[og>>2]|0)+2,c[(c[Hf>>2]|0)+4>>2]=c[pg>>2],c[fg>>2]=1,((c[pg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[pg>>2]|0)|0)==(c[Df>>2]|0))|0):0){c[(c[Af>>2]|0)+24>>2]=(c[Mf>>2]|0)+1;c[zf>>2]=1;break;}}c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2]=c[Mf>>2];while(1){aj=c[gg>>2]|0;c[gg>>2]=aj+-1;if(!aj)break;if((c[Rf>>2]|0)>>>0<=(c[ag>>2]|0)>>>0)break;c[sg>>2]=(c[Sf>>2]|0)+((c[Rf>>2]&c[Uf>>2])<<1<<2);c[tg>>2]=(c[Vf>>2]|0)>>>0<(c[Wf>>2]|0)>>>0?c[Vf>>2]|0:c[Wf>>2]|0;if(c[Ef>>2]|0?((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[ug>>2]=(c[Xf>>2]|0)+(c[Rf>>2]|0);aj=Uj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;if(((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0>=(c[Yf>>2]|0)>>>0)c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);}else{c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);aj=Tj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;}if((c[tg>>2]|0)>>>0>(c[hg>>2]|0)>>>0){if((c[tg>>2]|0)>>>0>((c[dg>>2]|0)-(c[Rf>>2]|0)|0)>>>0)c[dg>>2]=(c[Rf>>2]|0)+(c[tg>>2]|0);c[hg>>2]=c[tg>>2];c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[Mf>>2]|0)-(c[Rf>>2]|0)+2;c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[tg>>2];c[fg>>2]=(c[fg>>2]|0)+1;if((c[tg>>2]|0)>>>0>4096)break;if(((c[Cf>>2]|0)+(c[tg>>2]|0)|0)==(c[Df>>2]|0))break;}aj=c[Rf>>2]|0;if((d[(c[ug>>2]|0)+(c[tg>>2]|0)>>0]|0|0)<(d[(c[Cf>>2]|0)+(c[tg>>2]|0)>>0]|0|0)){c[c[bg>>2]>>2]=aj;c[Vf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=109;break;}c[bg>>2]=(c[sg>>2]|0)+4;c[Rf>>2]=c[(c[sg>>2]|0)+4>>2];}else{c[c[cg>>2]>>2]=aj;c[Wf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=112;break;}c[cg>>2]=c[sg>>2];c[Rf>>2]=c[c[sg>>2]>>2];}}if((dj|0)==109){dj=0;c[bg>>2]=eg;}else if((dj|0)==112){dj=0;c[cg>>2]=eg;}c[c[cg>>2]>>2]=0;c[c[bg>>2]>>2]=0;c[(c[Af>>2]|0)+24>>2]=(c[dg>>2]|0)-8;c[zf>>2]=c[fg>>2];}}while(0);c[Ah>>2]=c[zf>>2];break a;}}}}while(0);c[ki>>2]=c[Ah>>2];if(!(c[ki>>2]|0)){c[Vh>>2]=(c[Vh>>2]|0)+1;continue;}c[li>>2]=0;while(1){if((c[li>>2]|0)>>>0>=3)break;c[(c[bi>>2]|0)+16+(c[li>>2]<<2)>>2]=c[(c[Nh>>2]|0)+(c[li>>2]<<2)>>2];c[li>>2]=(c[li>>2]|0)+1;}c[(c[bi>>2]|0)+8>>2]=1;c[(c[bi>>2]|0)+12>>2]=c[ii>>2];c[mi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)+4>>2];do{if((c[mi>>2]|0)>>>0<=(c[$h>>2]|0)>>>0){c[ni>>2]=om(di,c[Wh>>2]|0,c[ii>>2]|0,c[Th>>2]|0)|0;c[oi>>2]=0;while(1){if((c[oi>>2]|0)>>>0>=(c[ai>>2]|0)>>>0)break;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=1073741824;c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=0;while(1){if((c[pi>>2]|0)>>>0>=(c[ki>>2]|0)>>>0)break;c[qi>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)>>2];c[ri>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)+4>>2];pm(si,c[Nh>>2]|0,c[qi>>2]|0,c[ji>>2]|0);while(1){if((c[oi>>2]|0)>>>0>(c[ri>>2]|0)>>>0)break;aj=c[ni>>2]|0;Zh=c[oi>>2]|0;Uh=c[Th>>2]|0;_i=c[Rh>>2]|0;c[yd>>2]=c[qi>>2];c[zd>>2]=Zh;c[Ad>>2]=Uh;c[Bd>>2]=_i;c[Dd>>2]=qm((c[yd>>2]|0)+1|0)|0;c[Ed>>2]=(c[zd>>2]|0)-3;if(c[(c[Ad>>2]|0)+56>>2]|0){_i=(qm((c[Ed>>2]|0)+1|0)|0)+16|0;c[xd>>2]=_i+(c[Dd>>2]|0);}else{_i=(c[Dd>>2]|0)+(c[(c[Ad>>2]|0)+52>>2]|0)|0;c[Cd>>2]=_i-(qm((c[(c[(c[Ad>>2]|0)+12>>2]|0)+(c[Dd>>2]<<2)>>2]|0)+1|0)|0);if((c[Bd>>2]|0)<2&(c[Dd>>2]|0)>>>0>=20)c[Cd>>2]=(c[Cd>>2]|0)+((c[Dd>>2]|0)-19<<1);c[Fd>>2]=rm(c[Ed>>2]|0)|0;_i=(c[5840+(c[Fd>>2]<<2)>>2]|0)+(c[(c[Ad>>2]|0)+48>>2]|0)|0;Uh=_i-(qm((c[(c[(c[Ad>>2]|0)+8>>2]|0)+(c[Fd>>2]<<2)>>2]|0)+1|0)|0)|0;c[Cd>>2]=(c[Cd>>2]|0)+Uh;c[xd>>2]=c[Cd>>2];}c[ti>>2]=aj+(c[xd>>2]|0);c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=c[oi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+4>>2]=c[qi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+12>>2]=c[ii>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=c[ti>>2];aj=(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+16|0;c[aj>>2]=c[si>>2];c[aj+4>>2]=c[si+4>>2];c[aj+8>>2]=c[si+8>>2];c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=(c[pi>>2]|0)+1;}c[fi>>2]=(c[oi>>2]|0)-1;c[ei>>2]=1;b:while(1){if((c[ei>>2]|0)>>>0>(c[fi>>2]|0)>>>0){dj=504;break;}c[ui>>2]=(c[Vh>>2]|0)+(c[ei>>2]|0);if((c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+8>>2]|0)==1)oj=(c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+12>>2]|0)+1|0;else oj=1;c[vi>>2]=oj;if((c[ei>>2]|0)>>>0>(c[vi>>2]|0)>>>0){aj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[vi>>2]|0)|0)*28|0)>>2]|0;c[wi>>2]=aj+(sm((c[ui>>2]|0)+(0-(c[vi>>2]|0))|0,c[vi>>2]|0,c[Th>>2]|0)|0);}else c[wi>>2]=tm(di,c[Wh>>2]|0,c[vi>>2]|0,c[Th>>2]|0)|0;if((c[wi>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0)){c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+4>>2]=0;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]=c[vi>>2];c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]=c[wi>>2];aj=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Uh=(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+16|0;c[aj>>2]=c[Uh>>2];c[aj+4>>2]=c[Uh+4>>2];c[aj+8>>2]=c[Uh+8>>2];}c:do{if((c[ui>>2]|0)>>>0<=(c[Yh>>2]|0)>>>0){if((c[ei>>2]|0)==(c[fi>>2]|0)){dj=504;break b;}if((c[Rh>>2]|0)==0?(c[(c[bi>>2]|0)+(((c[ei>>2]|0)+1|0)*28|0)>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0):0)break;c[xi>>2]=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)!=1&1;if((c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)==1)pj=c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]|0;else pj=0;c[yi>>2]=pj;if((c[ei>>2]|0)>>>0>(c[yi>>2]|0)>>>0)qj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[yi>>2]|0)|0)*28|0)>>2]|0;else qj=0;c[zi>>2]=qj;Uh=c[zi>>2]|0;c[Ai>>2]=Uh+(um((c[ui>>2]|0)+(0-(c[yi>>2]|0))|0,c[yi>>2]|0,c[Th>>2]|0)|0);Uh=c[Oh>>2]|0;aj=c[ui>>2]|0;_i=c[Xh>>2]|0;Zh=c[Sh>>2]|0;Zi=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Ph=c[xi>>2]|0;Qh=c[ci>>2]|0;_h=c[ai>>2]|0;c[nd>>2]=c[Lh>>2];c[od>>2]=Uh;c[pd>>2]=aj;c[qd>>2]=_i;c[rd>>2]=Zh;c[sd>>2]=Zi;c[td>>2]=Ph;c[ud>>2]=Qh;c[vd>>2]=_h;c[wd>>2]=c[(c[od>>2]|0)+16>>2];d:do{if((c[pd>>2]|0)>>>0<((c[(c[nd>>2]|0)+4>>2]|0)+(c[(c[nd>>2]|0)+24>>2]|0)|0)>>>0)c[md>>2]=0;else{_h=c[od>>2]|0;Qh=c[pd>>2]|0;Ph=c[qd>>2]|0;Zi=c[wd>>2]|0;Zh=c[rd>>2]|0;c[dd>>2]=c[nd>>2];c[ed>>2]=_h;c[fd>>2]=Qh;c[gd>>2]=Ph;c[hd>>2]=Zi;c[id>>2]=Zh;c[jd>>2]=c[(c[dd>>2]|0)+4>>2];c[kd>>2]=(c[fd>>2]|0)-(c[jd>>2]|0);c[ld>>2]=c[(c[dd>>2]|0)+24>>2];while(1){if((c[ld>>2]|0)>>>0>=(c[kd>>2]|0)>>>0)break;Zh=Rj(c[dd>>2]|0,c[ed>>2]|0,(c[jd>>2]|0)+(c[ld>>2]|0)|0,c[gd>>2]|0,c[hd>>2]|0,c[id>>2]|0)|0;c[ld>>2]=(c[ld>>2]|0)+Zh;}c[(c[dd>>2]|0)+24>>2]=c[kd>>2];switch(c[wd>>2]|0){case 3:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[ic>>2]=c[nd>>2];c[jc>>2]=Zh;c[kc>>2]=Zi;c[lc>>2]=Ph;c[mc>>2]=Qh;c[nc>>2]=_h;c[oc>>2]=_i;c[pc>>2]=aj;c[qc>>2]=Uh;c[rc>>2]=3;if((c[(c[jc>>2]|0)+20>>2]|0)>>>0<4095)rj=c[(c[jc>>2]|0)+20>>2]|0;else rj=4095;c[sc>>2]=rj;c[tc>>2]=c[(c[ic>>2]|0)+4>>2];c[uc>>2]=(c[kc>>2]|0)-(c[tc>>2]|0);c[vc>>2]=c[(c[jc>>2]|0)+8>>2];c[wc>>2]=(c[rc>>2]|0)==3?3:4;c[xc>>2]=c[(c[ic>>2]|0)+36>>2];c[yc>>2]=Sj(c[kc>>2]|0,c[vc>>2]|0,c[rc>>2]|0)|0;c[zc>>2]=c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2];c[Ac>>2]=c[(c[ic>>2]|0)+44>>2];c[Bc>>2]=(c[(c[jc>>2]|0)+4>>2]|0)-1;c[Cc>>2]=(1<>2])-1;c[Dc>>2]=0;c[Ec>>2]=0;c[Fc>>2]=c[(c[ic>>2]|0)+8>>2];c[Gc>>2]=c[(c[ic>>2]|0)+12>>2];c[Hc>>2]=(c[Fc>>2]|0)+(c[Gc>>2]|0);c[Ic>>2]=(c[tc>>2]|0)+(c[Gc>>2]|0);if((c[Cc>>2]|0)>>>0>=(c[uc>>2]|0)>>>0)sj=0;else sj=(c[uc>>2]|0)-(c[Cc>>2]|0)|0;c[Jc>>2]=sj;c[Kc>>2]=c[(c[ic>>2]|0)+16>>2];c[Lc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2);c[Mc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2)+4;c[Nc>>2]=(c[uc>>2]|0)+8+1;c[Pc>>2]=0;c[Qc>>2]=1<>2]|0)+12>>2];c[Rc>>2]=(c[qc>>2]|0)-1;c[Sc>>2]=3+(c[oc>>2]|0);c[Tc>>2]=c[oc>>2];while(1){if((c[Tc>>2]|0)>>>0>=(c[Sc>>2]|0)>>>0){dj=287;break;}Uh=c[nc>>2]|0;if((c[Tc>>2]|0)==3)tj=(c[Uh>>2]|0)-1|0;else tj=c[Uh+(c[Tc>>2]<<2)>>2]|0;c[Uc>>2]=tj;c[Vc>>2]=(c[uc>>2]|0)-(c[Uc>>2]|0);c[Wc>>2]=0;do{if(((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Gc>>2]|0)|0)>>>0){Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm((c[kc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[wc>>2]|0)|0))break;Uh=Tj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[kc>>2]|0)+(c[wc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[lc>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}else{c[Xc>>2]=(c[Fc>>2]|0)+(c[Vc>>2]|0);if(!(c[mc>>2]|0))break;if(!((((c[Gc>>2]|0)-1-(c[Vc>>2]|0)|0)>>>0>=3?((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Kc>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm(c[Xc>>2]|0,c[wc>>2]|0)|0))break;Uh=Uj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[Xc>>2]|0)+(c[wc>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}}while(0);if((c[Wc>>2]|0)>>>0>(c[Rc>>2]|0)>>>0?(c[Rc>>2]=c[Wc>>2],c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[Tc>>2]|0)-(c[oc>>2]|0),c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[Wc>>2],c[Pc>>2]=(c[Pc>>2]|0)+1,((c[Wc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Wc>>2]|0)|0)==(c[lc>>2]|0))|0):0){dj=285;break;}c[Tc>>2]=(c[Tc>>2]|0)+1;}e:do{if((dj|0)==285){dj=0;c[hc>>2]=c[Pc>>2];}else if((dj|0)==287){dj=0;do{if((c[rc>>2]|0)==3){if((c[Rc>>2]|0)>>>0>=(c[rc>>2]|0)>>>0)break;c[Yc>>2]=nm(c[ic>>2]|0,c[kc>>2]|0)|0;if(!(((c[Yc>>2]|0)>>>0>(c[Kc>>2]|0)>>>0?((c[uc>>2]|0)-(c[Yc>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[mc>>2]|0){if((c[Yc>>2]|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=292;break;}c[$c>>2]=(c[Fc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Uj(c[kc>>2]|0,c[$c>>2]|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;}else dj=292;}while(0);if((dj|0)==292){dj=0;c[_c>>2]=(c[tc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Tj(c[kc>>2]|0,c[_c>>2]|0,c[lc>>2]|0)|0;}if((c[Zc>>2]|0)>>>0<(c[rc>>2]|0)>>>0)break;c[Rc>>2]=c[Zc>>2];c[c[pc>>2]>>2]=(c[uc>>2]|0)-(c[Yc>>2]|0)+2;c[(c[pc>>2]|0)+4>>2]=c[Zc>>2];c[Pc>>2]=1;if(!(((c[Zc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Zc>>2]|0)|0)==(c[lc>>2]|0))|0))break;c[(c[ic>>2]|0)+24>>2]=(c[uc>>2]|0)+1;c[hc>>2]=1;break e;}}while(0);c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2]=c[uc>>2];while(1){Uh=c[Qc>>2]|0;c[Qc>>2]=Uh+-1;if(!Uh)break;if((c[zc>>2]|0)>>>0<=(c[Kc>>2]|0)>>>0)break;c[ad>>2]=(c[Ac>>2]|0)+((c[zc>>2]&c[Cc>>2])<<1<<2);c[bd>>2]=(c[Dc>>2]|0)>>>0<(c[Ec>>2]|0)>>>0?c[Dc>>2]|0:c[Ec>>2]|0;do{if(c[mc>>2]|0){if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=302;break;}c[cd>>2]=(c[Fc>>2]|0)+(c[zc>>2]|0);Uh=Uj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0<(c[Gc>>2]|0)>>>0)break;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);}else dj=302;}while(0);if((dj|0)==302){dj=0;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);Uh=Tj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;}if((c[bd>>2]|0)>>>0>(c[Rc>>2]|0)>>>0){if((c[bd>>2]|0)>>>0>((c[Nc>>2]|0)-(c[zc>>2]|0)|0)>>>0)c[Nc>>2]=(c[zc>>2]|0)+(c[bd>>2]|0);c[Rc>>2]=c[bd>>2];c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[uc>>2]|0)-(c[zc>>2]|0)+2;c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[bd>>2];c[Pc>>2]=(c[Pc>>2]|0)+1;if((c[bd>>2]|0)>>>0>4096)break;if(((c[kc>>2]|0)+(c[bd>>2]|0)|0)==(c[lc>>2]|0))break;}Uh=c[zc>>2]|0;if((d[(c[cd>>2]|0)+(c[bd>>2]|0)>>0]|0|0)<(d[(c[kc>>2]|0)+(c[bd>>2]|0)>>0]|0|0)){c[c[Lc>>2]>>2]=Uh;c[Dc>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=312;break;}c[Lc>>2]=(c[ad>>2]|0)+4;c[zc>>2]=c[(c[ad>>2]|0)+4>>2];}else{c[c[Mc>>2]>>2]=Uh;c[Ec>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=315;break;}c[Mc>>2]=c[ad>>2];c[zc>>2]=c[c[ad>>2]>>2];}}if((dj|0)==312){dj=0;c[Lc>>2]=Oc;}else if((dj|0)==315){dj=0;c[Mc>>2]=Oc;}c[c[Mc>>2]>>2]=0;c[c[Lc>>2]>>2]=0;c[(c[ic>>2]|0)+24>>2]=(c[Nc>>2]|0)-8;c[hc>>2]=c[Pc>>2];}}while(0);c[md>>2]=c[hc>>2];break d;break;}case 7:case 6:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[u>>2]=c[nd>>2];c[v>>2]=Uh;c[w>>2]=aj;c[x>>2]=_i;c[y>>2]=_h;c[z>>2]=Qh;c[A>>2]=Ph;c[B>>2]=Zi;c[C>>2]=Zh;c[D>>2]=6;if((c[(c[v>>2]|0)+20>>2]|0)>>>0<4095)uj=c[(c[v>>2]|0)+20>>2]|0;else uj=4095;c[E>>2]=uj;c[F>>2]=c[(c[u>>2]|0)+4>>2];c[G>>2]=(c[w>>2]|0)-(c[F>>2]|0);c[H>>2]=c[(c[v>>2]|0)+8>>2];c[I>>2]=(c[D>>2]|0)==3?3:4;c[J>>2]=c[(c[u>>2]|0)+36>>2];c[K>>2]=Sj(c[w>>2]|0,c[H>>2]|0,c[D>>2]|0)|0;c[L>>2]=c[(c[J>>2]|0)+(c[K>>2]<<2)>>2];c[M>>2]=c[(c[u>>2]|0)+44>>2];c[N>>2]=(c[(c[v>>2]|0)+4>>2]|0)-1;c[O>>2]=(1<>2])-1;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=c[(c[u>>2]|0)+8>>2];c[S>>2]=c[(c[u>>2]|0)+12>>2];c[T>>2]=(c[R>>2]|0)+(c[S>>2]|0);c[U>>2]=(c[F>>2]|0)+(c[S>>2]|0);if((c[O>>2]|0)>>>0>=(c[G>>2]|0)>>>0)vj=0;else vj=(c[G>>2]|0)-(c[O>>2]|0)|0;c[V>>2]=vj;c[W>>2]=c[(c[u>>2]|0)+16>>2];c[X>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2);c[Y>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2)+4;c[Z>>2]=(c[G>>2]|0)+8+1;c[$>>2]=0;c[aa>>2]=1<>2]|0)+12>>2];c[ba>>2]=(c[C>>2]|0)-1;c[ca>>2]=3+(c[A>>2]|0);c[da>>2]=c[A>>2];while(1){if((c[da>>2]|0)>>>0>=(c[ca>>2]|0)>>>0){dj=446;break;}Zh=c[z>>2]|0;if((c[da>>2]|0)==3)wj=(c[Zh>>2]|0)-1|0;else wj=c[Zh+(c[da>>2]<<2)>>2]|0;c[ea>>2]=wj;c[fa>>2]=(c[G>>2]|0)-(c[ea>>2]|0);c[ga>>2]=0;do{if(((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[S>>2]|0)|0)>>>0){Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm((c[w>>2]|0)+(0-(c[ea>>2]|0))|0,c[I>>2]|0)|0))break;Zh=Tj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[w>>2]|0)+(c[I>>2]|0)+(0-(c[ea>>2]|0))|0,c[x>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}else{c[ha>>2]=(c[R>>2]|0)+(c[fa>>2]|0);if(!(c[y>>2]|0))break;if(!((((c[S>>2]|0)-1-(c[fa>>2]|0)|0)>>>0>=3?((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[W>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm(c[ha>>2]|0,c[I>>2]|0)|0))break;Zh=Uj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[ha>>2]|0)+(c[I>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}}while(0);if((c[ga>>2]|0)>>>0>(c[ba>>2]|0)>>>0?(c[ba>>2]=c[ga>>2],c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[da>>2]|0)-(c[A>>2]|0),c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[ga>>2],c[$>>2]=(c[$>>2]|0)+1,((c[ga>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ga>>2]|0)|0)==(c[x>>2]|0))|0):0){dj=444;break;}c[da>>2]=(c[da>>2]|0)+1;}f:do{if((dj|0)==444){dj=0;c[t>>2]=c[$>>2];}else if((dj|0)==446){dj=0;do{if((c[D>>2]|0)==3){if((c[ba>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[ia>>2]=nm(c[u>>2]|0,c[w>>2]|0)|0;if(!(((c[ia>>2]|0)>>>0>(c[W>>2]|0)>>>0?((c[G>>2]|0)-(c[ia>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[y>>2]|0){if((c[ia>>2]|0)>>>0>=(c[S>>2]|0)>>>0){dj=451;break;}c[la>>2]=(c[R>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Uj(c[w>>2]|0,c[la>>2]|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;}else dj=451;}while(0);if((dj|0)==451){dj=0;c[ka>>2]=(c[F>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Tj(c[w>>2]|0,c[ka>>2]|0,c[x>>2]|0)|0;}if((c[ja>>2]|0)>>>0<(c[D>>2]|0)>>>0)break;c[ba>>2]=c[ja>>2];c[c[B>>2]>>2]=(c[G>>2]|0)-(c[ia>>2]|0)+2;c[(c[B>>2]|0)+4>>2]=c[ja>>2];c[$>>2]=1;if(!(((c[ja>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ja>>2]|0)|0)==(c[x>>2]|0))|0))break;c[(c[u>>2]|0)+24>>2]=(c[G>>2]|0)+1;c[t>>2]=1;break f;}}while(0);c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[G>>2];while(1){Zh=c[aa>>2]|0;c[aa>>2]=Zh+-1;if(!Zh)break;if((c[L>>2]|0)>>>0<=(c[W>>2]|0)>>>0)break;c[ma>>2]=(c[M>>2]|0)+((c[L>>2]&c[O>>2])<<1<<2);c[na>>2]=(c[P>>2]|0)>>>0<(c[Q>>2]|0)>>>0?c[P>>2]|0:c[Q>>2]|0;do{if(c[y>>2]|0){if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0>=(c[S>>2]|0)>>>0){dj=461;break;}c[oa>>2]=(c[R>>2]|0)+(c[L>>2]|0);Zh=Uj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0<(c[S>>2]|0)>>>0)break;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);}else dj=461;}while(0);if((dj|0)==461){dj=0;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);Zh=Tj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;}if((c[na>>2]|0)>>>0>(c[ba>>2]|0)>>>0){if((c[na>>2]|0)>>>0>((c[Z>>2]|0)-(c[L>>2]|0)|0)>>>0)c[Z>>2]=(c[L>>2]|0)+(c[na>>2]|0);c[ba>>2]=c[na>>2];c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[G>>2]|0)-(c[L>>2]|0)+2;c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[na>>2];c[$>>2]=(c[$>>2]|0)+1;if((c[na>>2]|0)>>>0>4096)break;if(((c[w>>2]|0)+(c[na>>2]|0)|0)==(c[x>>2]|0))break;}Zh=c[L>>2]|0;if((d[(c[oa>>2]|0)+(c[na>>2]|0)>>0]|0|0)<(d[(c[w>>2]|0)+(c[na>>2]|0)>>0]|0|0)){c[c[X>>2]>>2]=Zh;c[P>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=471;break;}c[X>>2]=(c[ma>>2]|0)+4;c[L>>2]=c[(c[ma>>2]|0)+4>>2];}else{c[c[Y>>2]>>2]=Zh;c[Q>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=474;break;}c[Y>>2]=c[ma>>2];c[L>>2]=c[c[ma>>2]>>2];}}if((dj|0)==471){dj=0;c[X>>2]=_;}else if((dj|0)==474){dj=0;c[Y>>2]=_;}c[c[Y>>2]>>2]=0;c[c[X>>2]>>2]=0;c[(c[u>>2]|0)+24>>2]=(c[Z>>2]|0)-8;c[t>>2]=c[$>>2];}}while(0);c[md>>2]=c[t>>2];break d;break;}case 5:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[qa>>2]=c[nd>>2];c[ra>>2]=Zh;c[sa>>2]=Zi;c[ta>>2]=Ph;c[ua>>2]=Qh;c[va>>2]=_h;c[wa>>2]=_i;c[xa>>2]=aj;c[ya>>2]=Uh;c[za>>2]=5;if((c[(c[ra>>2]|0)+20>>2]|0)>>>0<4095)xj=c[(c[ra>>2]|0)+20>>2]|0;else xj=4095;c[Aa>>2]=xj;c[Ba>>2]=c[(c[qa>>2]|0)+4>>2];c[Ca>>2]=(c[sa>>2]|0)-(c[Ba>>2]|0);c[Da>>2]=c[(c[ra>>2]|0)+8>>2];c[Ea>>2]=(c[za>>2]|0)==3?3:4;c[Fa>>2]=c[(c[qa>>2]|0)+36>>2];c[Ga>>2]=Sj(c[sa>>2]|0,c[Da>>2]|0,c[za>>2]|0)|0;c[Ha>>2]=c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2];c[Ia>>2]=c[(c[qa>>2]|0)+44>>2];c[Ja>>2]=(c[(c[ra>>2]|0)+4>>2]|0)-1;c[Ka>>2]=(1<>2])-1;c[La>>2]=0;c[Ma>>2]=0;c[Na>>2]=c[(c[qa>>2]|0)+8>>2];c[Oa>>2]=c[(c[qa>>2]|0)+12>>2];c[Pa>>2]=(c[Na>>2]|0)+(c[Oa>>2]|0);c[Qa>>2]=(c[Ba>>2]|0)+(c[Oa>>2]|0);if((c[Ka>>2]|0)>>>0>=(c[Ca>>2]|0)>>>0)yj=0;else yj=(c[Ca>>2]|0)-(c[Ka>>2]|0)|0;c[Ra>>2]=yj;c[Sa>>2]=c[(c[qa>>2]|0)+16>>2];c[Ta>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2);c[Ua>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2)+4;c[Va>>2]=(c[Ca>>2]|0)+8+1;c[Xa>>2]=0;c[Ya>>2]=1<>2]|0)+12>>2];c[Za>>2]=(c[ya>>2]|0)-1;c[_a>>2]=3+(c[wa>>2]|0);c[$a>>2]=c[wa>>2];while(1){if((c[$a>>2]|0)>>>0>=(c[_a>>2]|0)>>>0){dj=393;break;}Uh=c[va>>2]|0;if((c[$a>>2]|0)==3)zj=(c[Uh>>2]|0)-1|0;else zj=c[Uh+(c[$a>>2]<<2)>>2]|0;c[ab>>2]=zj;c[bb>>2]=(c[Ca>>2]|0)-(c[ab>>2]|0);c[cb>>2]=0;do{if(((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Oa>>2]|0)|0)>>>0){Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm((c[sa>>2]|0)+(0-(c[ab>>2]|0))|0,c[Ea>>2]|0)|0))break;Uh=Tj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[sa>>2]|0)+(c[Ea>>2]|0)+(0-(c[ab>>2]|0))|0,c[ta>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}else{c[db>>2]=(c[Na>>2]|0)+(c[bb>>2]|0);if(!(c[ua>>2]|0))break;if(!((((c[Oa>>2]|0)-1-(c[bb>>2]|0)|0)>>>0>=3?((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Sa>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm(c[db>>2]|0,c[Ea>>2]|0)|0))break;Uh=Uj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[db>>2]|0)+(c[Ea>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}}while(0);if((c[cb>>2]|0)>>>0>(c[Za>>2]|0)>>>0?(c[Za>>2]=c[cb>>2],c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[$a>>2]|0)-(c[wa>>2]|0),c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[cb>>2],c[Xa>>2]=(c[Xa>>2]|0)+1,((c[cb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[cb>>2]|0)|0)==(c[ta>>2]|0))|0):0){dj=391;break;}c[$a>>2]=(c[$a>>2]|0)+1;}g:do{if((dj|0)==391){dj=0;c[pa>>2]=c[Xa>>2];}else if((dj|0)==393){dj=0;do{if((c[za>>2]|0)==3){if((c[Za>>2]|0)>>>0>=(c[za>>2]|0)>>>0)break;c[eb>>2]=nm(c[qa>>2]|0,c[sa>>2]|0)|0;if(!(((c[eb>>2]|0)>>>0>(c[Sa>>2]|0)>>>0?((c[Ca>>2]|0)-(c[eb>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[ua>>2]|0){if((c[eb>>2]|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=398;break;}c[hb>>2]=(c[Na>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Uj(c[sa>>2]|0,c[hb>>2]|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;}else dj=398;}while(0);if((dj|0)==398){dj=0;c[gb>>2]=(c[Ba>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Tj(c[sa>>2]|0,c[gb>>2]|0,c[ta>>2]|0)|0;}if((c[fb>>2]|0)>>>0<(c[za>>2]|0)>>>0)break;c[Za>>2]=c[fb>>2];c[c[xa>>2]>>2]=(c[Ca>>2]|0)-(c[eb>>2]|0)+2;c[(c[xa>>2]|0)+4>>2]=c[fb>>2];c[Xa>>2]=1;if(!(((c[fb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[fb>>2]|0)|0)==(c[ta>>2]|0))|0))break;c[(c[qa>>2]|0)+24>>2]=(c[Ca>>2]|0)+1;c[pa>>2]=1;break g;}}while(0);c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2]=c[Ca>>2];while(1){Uh=c[Ya>>2]|0;c[Ya>>2]=Uh+-1;if(!Uh)break;if((c[Ha>>2]|0)>>>0<=(c[Sa>>2]|0)>>>0)break;c[ib>>2]=(c[Ia>>2]|0)+((c[Ha>>2]&c[Ka>>2])<<1<<2);c[jb>>2]=(c[La>>2]|0)>>>0<(c[Ma>>2]|0)>>>0?c[La>>2]|0:c[Ma>>2]|0;do{if(c[ua>>2]|0){if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=408;break;}c[kb>>2]=(c[Na>>2]|0)+(c[Ha>>2]|0);Uh=Uj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0<(c[Oa>>2]|0)>>>0)break;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);}else dj=408;}while(0);if((dj|0)==408){dj=0;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);Uh=Tj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;}if((c[jb>>2]|0)>>>0>(c[Za>>2]|0)>>>0){if((c[jb>>2]|0)>>>0>((c[Va>>2]|0)-(c[Ha>>2]|0)|0)>>>0)c[Va>>2]=(c[Ha>>2]|0)+(c[jb>>2]|0);c[Za>>2]=c[jb>>2];c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[Ca>>2]|0)-(c[Ha>>2]|0)+2;c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[jb>>2];c[Xa>>2]=(c[Xa>>2]|0)+1;if((c[jb>>2]|0)>>>0>4096)break;if(((c[sa>>2]|0)+(c[jb>>2]|0)|0)==(c[ta>>2]|0))break;}Uh=c[Ha>>2]|0;if((d[(c[kb>>2]|0)+(c[jb>>2]|0)>>0]|0|0)<(d[(c[sa>>2]|0)+(c[jb>>2]|0)>>0]|0|0)){c[c[Ta>>2]>>2]=Uh;c[La>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=418;break;}c[Ta>>2]=(c[ib>>2]|0)+4;c[Ha>>2]=c[(c[ib>>2]|0)+4>>2];}else{c[c[Ua>>2]>>2]=Uh;c[Ma>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=421;break;}c[Ua>>2]=c[ib>>2];c[Ha>>2]=c[c[ib>>2]>>2];}}if((dj|0)==418){dj=0;c[Ta>>2]=Wa;}else if((dj|0)==421){dj=0;c[Ua>>2]=Wa;}c[c[Ua>>2]>>2]=0;c[c[Ta>>2]>>2]=0;c[(c[qa>>2]|0)+24>>2]=(c[Va>>2]|0)-8;c[pa>>2]=c[Xa>>2];}}while(0);c[md>>2]=c[pa>>2];break d;break;}default:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[mb>>2]=c[nd>>2];c[nb>>2]=Uh;c[ob>>2]=aj;c[pb>>2]=_i;c[qb>>2]=_h;c[rb>>2]=Qh;c[sb>>2]=Ph;c[tb>>2]=Zi;c[ub>>2]=Zh;c[vb>>2]=4;if((c[(c[nb>>2]|0)+20>>2]|0)>>>0<4095)Aj=c[(c[nb>>2]|0)+20>>2]|0;else Aj=4095;c[wb>>2]=Aj;c[xb>>2]=c[(c[mb>>2]|0)+4>>2];c[yb>>2]=(c[ob>>2]|0)-(c[xb>>2]|0);c[zb>>2]=c[(c[nb>>2]|0)+8>>2];c[Ab>>2]=(c[vb>>2]|0)==3?3:4;c[Bb>>2]=c[(c[mb>>2]|0)+36>>2];c[Cb>>2]=Sj(c[ob>>2]|0,c[zb>>2]|0,c[vb>>2]|0)|0;c[Db>>2]=c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2];c[Eb>>2]=c[(c[mb>>2]|0)+44>>2];c[Fb>>2]=(c[(c[nb>>2]|0)+4>>2]|0)-1;c[Gb>>2]=(1<>2])-1;c[Hb>>2]=0;c[Ib>>2]=0;c[Jb>>2]=c[(c[mb>>2]|0)+8>>2];c[Kb>>2]=c[(c[mb>>2]|0)+12>>2];c[Lb>>2]=(c[Jb>>2]|0)+(c[Kb>>2]|0);c[Mb>>2]=(c[xb>>2]|0)+(c[Kb>>2]|0);if((c[Gb>>2]|0)>>>0>=(c[yb>>2]|0)>>>0)Bj=0;else Bj=(c[yb>>2]|0)-(c[Gb>>2]|0)|0;c[Nb>>2]=Bj;c[Ob>>2]=c[(c[mb>>2]|0)+16>>2];c[Pb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2);c[Qb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2)+4;c[Rb>>2]=(c[yb>>2]|0)+8+1;c[Tb>>2]=0;c[Ub>>2]=1<>2]|0)+12>>2];c[Vb>>2]=(c[ub>>2]|0)-1;c[Wb>>2]=3+(c[sb>>2]|0);c[Xb>>2]=c[sb>>2];while(1){if((c[Xb>>2]|0)>>>0>=(c[Wb>>2]|0)>>>0){dj=340;break;}Zh=c[rb>>2]|0;if((c[Xb>>2]|0)==3)Cj=(c[Zh>>2]|0)-1|0;else Cj=c[Zh+(c[Xb>>2]<<2)>>2]|0;c[Yb>>2]=Cj;c[Zb>>2]=(c[yb>>2]|0)-(c[Yb>>2]|0);c[_b>>2]=0;do{if(((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Kb>>2]|0)|0)>>>0){Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm((c[ob>>2]|0)+(0-(c[Yb>>2]|0))|0,c[Ab>>2]|0)|0))break;Zh=Tj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[ob>>2]|0)+(c[Ab>>2]|0)+(0-(c[Yb>>2]|0))|0,c[pb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}else{c[$b>>2]=(c[Jb>>2]|0)+(c[Zb>>2]|0);if(!(c[qb>>2]|0))break;if(!((((c[Kb>>2]|0)-1-(c[Zb>>2]|0)|0)>>>0>=3?((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Ob>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm(c[$b>>2]|0,c[Ab>>2]|0)|0))break;Zh=Uj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[$b>>2]|0)+(c[Ab>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}}while(0);if((c[_b>>2]|0)>>>0>(c[Vb>>2]|0)>>>0?(c[Vb>>2]=c[_b>>2],c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[Xb>>2]|0)-(c[sb>>2]|0),c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[_b>>2],c[Tb>>2]=(c[Tb>>2]|0)+1,((c[_b>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[_b>>2]|0)|0)==(c[pb>>2]|0))|0):0){dj=338;break;}c[Xb>>2]=(c[Xb>>2]|0)+1;}h:do{if((dj|0)==338){dj=0;c[lb>>2]=c[Tb>>2];}else if((dj|0)==340){dj=0;do{if((c[vb>>2]|0)==3){if((c[Vb>>2]|0)>>>0>=(c[vb>>2]|0)>>>0)break;c[ac>>2]=nm(c[mb>>2]|0,c[ob>>2]|0)|0;if(!(((c[ac>>2]|0)>>>0>(c[Ob>>2]|0)>>>0?((c[yb>>2]|0)-(c[ac>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[qb>>2]|0){if((c[ac>>2]|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=345;break;}c[dc>>2]=(c[Jb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Uj(c[ob>>2]|0,c[dc>>2]|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;}else dj=345;}while(0);if((dj|0)==345){dj=0;c[cc>>2]=(c[xb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Tj(c[ob>>2]|0,c[cc>>2]|0,c[pb>>2]|0)|0;}if((c[bc>>2]|0)>>>0<(c[vb>>2]|0)>>>0)break;c[Vb>>2]=c[bc>>2];c[c[tb>>2]>>2]=(c[yb>>2]|0)-(c[ac>>2]|0)+2;c[(c[tb>>2]|0)+4>>2]=c[bc>>2];c[Tb>>2]=1;if(!(((c[bc>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[bc>>2]|0)|0)==(c[pb>>2]|0))|0))break;c[(c[mb>>2]|0)+24>>2]=(c[yb>>2]|0)+1;c[lb>>2]=1;break h;}}while(0);c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2]=c[yb>>2];while(1){Zh=c[Ub>>2]|0;c[Ub>>2]=Zh+-1;if(!Zh)break;if((c[Db>>2]|0)>>>0<=(c[Ob>>2]|0)>>>0)break;c[ec>>2]=(c[Eb>>2]|0)+((c[Db>>2]&c[Gb>>2])<<1<<2);c[fc>>2]=(c[Hb>>2]|0)>>>0<(c[Ib>>2]|0)>>>0?c[Hb>>2]|0:c[Ib>>2]|0;do{if(c[qb>>2]|0){if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=355;break;}c[gc>>2]=(c[Jb>>2]|0)+(c[Db>>2]|0);Zh=Uj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0<(c[Kb>>2]|0)>>>0)break;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);}else dj=355;}while(0);if((dj|0)==355){dj=0;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);Zh=Tj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;}if((c[fc>>2]|0)>>>0>(c[Vb>>2]|0)>>>0){if((c[fc>>2]|0)>>>0>((c[Rb>>2]|0)-(c[Db>>2]|0)|0)>>>0)c[Rb>>2]=(c[Db>>2]|0)+(c[fc>>2]|0);c[Vb>>2]=c[fc>>2];c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[yb>>2]|0)-(c[Db>>2]|0)+2;c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[fc>>2];c[Tb>>2]=(c[Tb>>2]|0)+1;if((c[fc>>2]|0)>>>0>4096)break;if(((c[ob>>2]|0)+(c[fc>>2]|0)|0)==(c[pb>>2]|0))break;}Zh=c[Db>>2]|0;if((d[(c[gc>>2]|0)+(c[fc>>2]|0)>>0]|0|0)<(d[(c[ob>>2]|0)+(c[fc>>2]|0)>>0]|0|0)){c[c[Pb>>2]>>2]=Zh;c[Hb>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=365;break;}c[Pb>>2]=(c[ec>>2]|0)+4;c[Db>>2]=c[(c[ec>>2]|0)+4>>2];}else{c[c[Qb>>2]>>2]=Zh;c[Ib>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=368;break;}c[Qb>>2]=c[ec>>2];c[Db>>2]=c[c[ec>>2]>>2];}}if((dj|0)==365){dj=0;c[Pb>>2]=Sb;}else if((dj|0)==368){dj=0;c[Qb>>2]=Sb;}c[c[Qb>>2]>>2]=0;c[c[Pb>>2]>>2]=0;c[(c[mb>>2]|0)+24>>2]=(c[Rb>>2]|0)-8;c[lb>>2]=c[Tb>>2];}}while(0);c[md>>2]=c[lb>>2];break d;}}}}while(0);c[Bi>>2]=c[md>>2];if(c[Bi>>2]|0){c[Di>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)+4>>2];if(((c[Di>>2]|0)>>>0>(c[$h>>2]|0)>>>0?1:((c[ei>>2]|0)+(c[Di>>2]|0)|0)>>>0>=4096)|0){dj=481;break b;}c[Ci>>2]=0;while(1){if((c[Ci>>2]|0)>>>0>=(c[Bi>>2]|0)>>>0)break c;c[Ei>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)>>2];pm(Fi,(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0,c[Ei>>2]|0,c[xi>>2]|0);c[Gi>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)+4>>2];if((c[Ci>>2]|0)>>>0>0)Dj=(c[(c[ci>>2]|0)+((c[Ci>>2]|0)-1<<3)+4>>2]|0)+1|0;else Dj=c[ai>>2]|0;c[Hi>>2]=Dj;c[Ii>>2]=c[Gi>>2];i:while(1){if((c[Ii>>2]|0)>>>0<(c[Hi>>2]|0)>>>0)break;c[Ji>>2]=(c[ei>>2]|0)+(c[Ii>>2]|0);Zh=c[Ai>>2]|0;Zi=c[Ii>>2]|0;Ph=c[Th>>2]|0;Qh=c[Rh>>2]|0;c[k>>2]=c[Ei>>2];c[m>>2]=Zi;c[n>>2]=Ph;c[o>>2]=Qh;c[q>>2]=qm((c[k>>2]|0)+1|0)|0;c[r>>2]=(c[m>>2]|0)-3;if(c[(c[n>>2]|0)+56>>2]|0){Qh=(qm((c[r>>2]|0)+1|0)|0)+16|0;c[j>>2]=Qh+(c[q>>2]|0);}else{Qh=(c[q>>2]|0)+(c[(c[n>>2]|0)+52>>2]|0)|0;c[p>>2]=Qh-(qm((c[(c[(c[n>>2]|0)+12>>2]|0)+(c[q>>2]<<2)>>2]|0)+1|0)|0);if((c[o>>2]|0)<2&(c[q>>2]|0)>>>0>=20)c[p>>2]=(c[p>>2]|0)+((c[q>>2]|0)-19<<1);c[s>>2]=rm(c[r>>2]|0)|0;Qh=(c[5840+(c[s>>2]<<2)>>2]|0)+(c[(c[n>>2]|0)+48>>2]|0)|0;Ph=Qh-(qm((c[(c[(c[n>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0)+1|0)|0)|0;c[p>>2]=(c[p>>2]|0)+Ph;c[j>>2]=c[p>>2];}c[Ki>>2]=Zh+(c[j>>2]|0);do{if((c[Ji>>2]|0)>>>0<=(c[fi>>2]|0)>>>0){if((c[Ki>>2]|0)<(c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]|0)){dj=496;break;}if(!(c[Rh>>2]|0))break i;}else dj=496;}while(0);if((dj|0)==496){dj=0;while(1){if((c[fi>>2]|0)>>>0>=(c[Ji>>2]|0)>>>0)break;c[(c[bi>>2]|0)+(((c[fi>>2]|0)+1|0)*28|0)>>2]=1073741824;c[fi>>2]=(c[fi>>2]|0)+1;}c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+8>>2]=c[Ii>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+4>>2]=c[Ei>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+12>>2]=c[yi>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]=c[Ki>>2];Zh=(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+16|0;c[Zh>>2]=c[Fi>>2];c[Zh+4>>2]=c[Fi+4>>2];c[Zh+8>>2]=c[Fi+8>>2];}c[Ii>>2]=(c[Ii>>2]|0)+-1;}c[Ci>>2]=(c[Ci>>2]|0)+1;}}}}while(0);c[ei>>2]=(c[ei>>2]|0)+1;}if((dj|0)==481){dj=0;c[gi>>2]=c[Di>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)>>2];c[fi>>2]=(c[ei>>2]|0)+1;break;}else if((dj|0)==504){dj=0;c[gi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+8>>2];c[hi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+4>>2];c[ei>>2]=(c[fi>>2]|0)-(c[gi>>2]|0);break;}}else{c[gi>>2]=c[mi>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)>>2];c[ei>>2]=0;c[fi>>2]=1;}}while(0);c[Li>>2]=c[gi>>2];c[Mi>>2]=c[hi>>2];c[Ni>>2]=c[ei>>2];while(1){c[Oi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2];c[Pi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2]=c[Li>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2]=c[Mi>>2];c[Li>>2]=c[Oi>>2];c[Mi>>2]=c[Pi>>2];if((c[Oi>>2]|0)>>>0>(c[Ni>>2]|0)>>>0)break;c[Ni>>2]=(c[Ni>>2]|0)-(c[Oi>>2]|0);}c[Qi>>2]=0;while(1){if((c[Qi>>2]|0)>>>0>=(c[fi>>2]|0)>>>0)break;c[Ri>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[Si>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+8>>2];c[Ti>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+4>>2];if((c[Si>>2]|0)==1){c[Vh>>2]=(c[Vh>>2]|0)+1;c[Qi>>2]=(c[Qi>>2]|0)+1;continue;}c[Qi>>2]=(c[Qi>>2]|0)+(c[Si>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+(c[Si>>2]|0);if((c[Ti>>2]|0)>>>0<3){c[Ui>>2]=(c[Ti>>2]|0)+((c[Ri>>2]|0)==0&1);if(c[Ui>>2]|0){Zh=c[Nh>>2]|0;if((c[Ui>>2]|0)==3)Ej=(c[Zh>>2]|0)-1|0;else Ej=c[Zh+(c[Ui>>2]<<2)>>2]|0;c[Vi>>2]=Ej;if((c[Ui>>2]|0)>>>0>=2)c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=c[Vi>>2];}}else{c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=(c[Ti>>2]|0)-2;}vm(c[Th>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,c[Si>>2]|0);wm(c[Mh>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,(c[Si>>2]|0)-3|0);c[Wh>>2]=c[Vh>>2];}xm(c[Th>>2]|0);}l=i;return(c[Xh>>2]|0)-(c[Wh>>2]|0)|0;}function km(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=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,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,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,Zc=0,_c=0,$c=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,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,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,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0;i=l;l=l+2144|0;j=i+2136|0;k=i+2132|0;m=i+2128|0;n=i+2124|0;o=i+2120|0;p=i+2116|0;q=i+2112|0;r=i+2108|0;s=i+2104|0;t=i+2100|0;u=i+2096|0;v=i+2092|0;w=i+2088|0;x=i+2084|0;y=i+2080|0;z=i+2076|0;A=i+2072|0;B=i+2068|0;C=i+2064|0;D=i+2060|0;E=i+2056|0;F=i+2052|0;G=i+2048|0;H=i+2044|0;I=i+2040|0;J=i+2036|0;K=i+2032|0;L=i+2028|0;M=i+2024|0;N=i+2020|0;O=i+2016|0;P=i+2012|0;Q=i+2008|0;R=i+2004|0;S=i+2e3|0;T=i+1996|0;U=i+1992|0;V=i+1988|0;W=i+1984|0;X=i+1980|0;Y=i+1976|0;Z=i+1972|0;_=i+1968|0;$=i+1964|0;aa=i+1960|0;ba=i+1956|0;ca=i+1952|0;da=i+1948|0;ea=i+1944|0;fa=i+1940|0;ga=i+1936|0;ha=i+1932|0;ia=i+1928|0;ja=i+1924|0;ka=i+1920|0;la=i+1916|0;ma=i+1912|0;na=i+1908|0;oa=i+1904|0;pa=i+1900|0;qa=i+1896|0;ra=i+1892|0;sa=i+1888|0;ta=i+1884|0;ua=i+1880|0;va=i+1876|0;wa=i+1872|0;xa=i+1868|0;ya=i+1864|0;za=i+1860|0;Aa=i+1856|0;Ba=i+1852|0;Ca=i+1848|0;Da=i+1844|0;Ea=i+1840|0;Fa=i+1836|0;Ga=i+1832|0;Ha=i+1828|0;Ia=i+1824|0;Ja=i+1820|0;Ka=i+1816|0;La=i+1812|0;Ma=i+1808|0;Na=i+1804|0;Oa=i+1800|0;Pa=i+1796|0;Qa=i+1792|0;Ra=i+1788|0;Sa=i+1784|0;Ta=i+1780|0;Ua=i+1776|0;Va=i+1772|0;Wa=i+1768|0;Xa=i+1764|0;Ya=i+1760|0;Za=i+1756|0;_a=i+1752|0;$a=i+1748|0;ab=i+1744|0;bb=i+1740|0;cb=i+1736|0;db=i+1732|0;eb=i+1728|0;fb=i+1724|0;gb=i+1720|0;hb=i+1716|0;ib=i+1712|0;jb=i+1708|0;kb=i+1704|0;lb=i+1700|0;mb=i+1696|0;nb=i+1692|0;ob=i+1688|0;pb=i+1684|0;qb=i+1680|0;rb=i+1676|0;sb=i+1672|0;tb=i+1668|0;ub=i+1664|0;vb=i+1660|0;wb=i+1656|0;xb=i+1652|0;yb=i+1648|0;zb=i+1644|0;Ab=i+1640|0;Bb=i+1636|0;Cb=i+1632|0;Db=i+1628|0;Eb=i+1624|0;Fb=i+1620|0;Gb=i+1616|0;Hb=i+1612|0;Ib=i+1608|0;Jb=i+1604|0;Kb=i+1600|0;Lb=i+1596|0;Mb=i+1592|0;Nb=i+1588|0;Ob=i+1584|0;Pb=i+1580|0;Qb=i+1576|0;Rb=i+1572|0;Sb=i+1568|0;Tb=i+1564|0;Ub=i+1560|0;Vb=i+1556|0;Wb=i+1552|0;Xb=i+1548|0;Yb=i+1544|0;Zb=i+1540|0;_b=i+1536|0;$b=i+1532|0;ac=i+1528|0;bc=i+1524|0;cc=i+1520|0;dc=i+1516|0;ec=i+1512|0;fc=i+1508|0;gc=i+1504|0;hc=i+1500|0;ic=i+1496|0;jc=i+1492|0;kc=i+1488|0;lc=i+1484|0;mc=i+1480|0;nc=i+1476|0;oc=i+1472|0;pc=i+1468|0;qc=i+1464|0;rc=i+1460|0;sc=i+1456|0;tc=i+1452|0;uc=i+1448|0;vc=i+1444|0;wc=i+1440|0;xc=i+1436|0;yc=i+1432|0;zc=i+1428|0;Ac=i+1424|0;Bc=i+1420|0;Cc=i+1416|0;Dc=i+1412|0;Ec=i+1408|0;Fc=i+1404|0;Gc=i+1400|0;Hc=i+1396|0;Ic=i+1392|0;Jc=i+1388|0;Kc=i+1384|0;Lc=i+1380|0;Mc=i+1376|0;Nc=i+1372|0;Oc=i+1368|0;Pc=i+1364|0;Qc=i+1360|0;Rc=i+1356|0;Sc=i+1352|0;Tc=i+1348|0;Uc=i+1344|0;Vc=i+1340|0;Wc=i+1336|0;Xc=i+1332|0;Yc=i+1328|0;Zc=i+1324|0;_c=i+1320|0;$c=i+1316|0;ad=i+1312|0;bd=i+1308|0;cd=i+1304|0;dd=i+1300|0;ed=i+1296|0;fd=i+1292|0;gd=i+1288|0;hd=i+1284|0;id=i+1280|0;jd=i+1276|0;kd=i+1272|0;ld=i+1268|0;md=i+1264|0;nd=i+1260|0;od=i+1256|0;pd=i+1252|0;qd=i+1248|0;rd=i+1244|0;sd=i+1240|0;td=i+1236|0;ud=i+1232|0;vd=i+1228|0;wd=i+1224|0;xd=i+1220|0;yd=i+1216|0;zd=i+1212|0;Ad=i+1208|0;Bd=i+1204|0;Cd=i+1200|0;Dd=i+1196|0;Ed=i+1192|0;Fd=i+1188|0;Gd=i+1184|0;Hd=i+1180|0;Id=i+1176|0;Jd=i+1172|0;Kd=i+1168|0;Ld=i+1164|0;Md=i+1160|0;Nd=i+1156|0;Od=i+1152|0;Pd=i+1148|0;Qd=i+1144|0;Rd=i+1140|0;Sd=i+1136|0;Td=i+1132|0;Ud=i+1128|0;Vd=i+1124|0;Wd=i+1120|0;Xd=i+1116|0;Yd=i+1112|0;Zd=i+1108|0;_d=i+1104|0;$d=i+1100|0;ae=i+1096|0;be=i+1092|0;ce=i+1088|0;de=i+1084|0;ee=i+1080|0;fe=i+1076|0;ge=i+1072|0;he=i+1068|0;ie=i+1064|0;je=i+1060|0;ke=i+1056|0;le=i+1052|0;me=i+1048|0;ne=i+1044|0;oe=i+1040|0;pe=i+1036|0;qe=i+1032|0;re=i+1028|0;se=i+1024|0;te=i+1020|0;ue=i+1016|0;ve=i+1012|0;we=i+1008|0;xe=i+1004|0;ye=i+1e3|0;ze=i+996|0;Ae=i+992|0;Be=i+988|0;Ce=i+984|0;De=i+980|0;Ee=i+976|0;Fe=i+972|0;Ge=i+968|0;He=i+964|0;Ie=i+960|0;Je=i+956|0;Ke=i+952|0;Le=i+948|0;Me=i+944|0;Ne=i+940|0;Oe=i+936|0;Pe=i+932|0;Qe=i+928|0;Re=i+924|0;Se=i+920|0;Te=i+916|0;Ue=i+912|0;Ve=i+908|0;We=i+904|0;Xe=i+900|0;Ye=i+896|0;Ze=i+892|0;_e=i+888|0;$e=i+884|0;af=i+880|0;bf=i+876|0;cf=i+872|0;df=i+868|0;ef=i+864|0;ff=i+860|0;gf=i+856|0;hf=i+852|0;jf=i+848|0;kf=i+844|0;lf=i+840|0;mf=i+836|0;nf=i+832|0;of=i+828|0;pf=i+824|0;qf=i+820|0;rf=i+816|0;sf=i+812|0;tf=i+808|0;uf=i+804|0;vf=i+800|0;wf=i+796|0;xf=i+792|0;yf=i+788|0;zf=i+784|0;Af=i+780|0;Bf=i+776|0;Cf=i+772|0;Df=i+768|0;Ef=i+764|0;Ff=i+760|0;Gf=i+756|0;Hf=i+752|0;If=i+748|0;Jf=i+744|0;Kf=i+740|0;Lf=i+736|0;Mf=i+732|0;Nf=i+728|0;Of=i+724|0;Pf=i+720|0;Qf=i+716|0;Rf=i+712|0;Sf=i+708|0;Tf=i+704|0;Uf=i+700|0;Vf=i+696|0;Wf=i+692|0;Xf=i+688|0;Yf=i+684|0;Zf=i+680|0;_f=i+676|0;$f=i+672|0;ag=i+668|0;bg=i+664|0;cg=i+660|0;dg=i+656|0;eg=i+652|0;fg=i+648|0;gg=i+644|0;hg=i+640|0;ig=i+636|0;jg=i+632|0;kg=i+628|0;lg=i+624|0;mg=i+620|0;ng=i+616|0;og=i+612|0;pg=i+608|0;qg=i+604|0;rg=i+600|0;sg=i+596|0;tg=i+592|0;ug=i+588|0;vg=i+584|0;wg=i+580|0;xg=i+576|0;yg=i+572|0;zg=i+568|0;Ag=i+564|0;Bg=i+560|0;Cg=i+556|0;Dg=i+552|0;Eg=i+548|0;Fg=i+544|0;Gg=i+540|0;Hg=i+536|0;Ig=i+532|0;Jg=i+528|0;Kg=i+524|0;Lg=i+520|0;Mg=i+516|0;Ng=i+512|0;Og=i+508|0;Pg=i+504|0;Qg=i+500|0;Rg=i+496|0;Sg=i+492|0;Tg=i+488|0;Ug=i+484|0;Vg=i+480|0;Wg=i+476|0;Xg=i+472|0;Yg=i+468|0;Zg=i+464|0;_g=i+460|0;$g=i+456|0;ah=i+452|0;bh=i+448|0;ch=i+444|0;dh=i+440|0;eh=i+436|0;fh=i+432|0;gh=i+428|0;hh=i+424|0;ih=i+420|0;jh=i+416|0;kh=i+412|0;lh=i+408|0;mh=i+404|0;nh=i+400|0;oh=i+396|0;ph=i+392|0;qh=i+388|0;rh=i+384|0;sh=i+380|0;th=i+376|0;uh=i+372|0;vh=i+368|0;wh=i+364|0;xh=i+360|0;yh=i+356|0;zh=i+352|0;Ah=i+348|0;Bh=i+344|0;Ch=i+340|0;Dh=i+336|0;Eh=i+332|0;Fh=i+328|0;Gh=i+324|0;Hh=i+320|0;Ih=i+316|0;Jh=i+312|0;Kh=i+308|0;Lh=i+304|0;Mh=i+300|0;Nh=i+296|0;Oh=i+292|0;Ph=i+288|0;Qh=i+284|0;Rh=i+280|0;Sh=i+276|0;Th=i+272|0;Uh=i+268|0;Vh=i+264|0;Wh=i+260|0;Xh=i+256|0;Yh=i+252|0;Zh=i+248|0;_h=i+244|0;$h=i+240|0;ai=i+236|0;bi=i+232|0;ci=i+228|0;di=i+216|0;ei=i+212|0;fi=i+208|0;gi=i+204|0;hi=i+200|0;ii=i+196|0;ji=i+192|0;ki=i+188|0;li=i+184|0;mi=i+180|0;ni=i+176|0;oi=i+172|0;pi=i+168|0;qi=i+164|0;ri=i+160|0;si=i+148|0;ti=i+144|0;ui=i+140|0;vi=i+136|0;wi=i+132|0;xi=i+128|0;yi=i+124|0;zi=i+120|0;Ai=i+116|0;Bi=i+112|0;Ci=i+108|0;Di=i+104|0;Ei=i+100|0;Fi=i+88|0;Gi=i+84|0;Hi=i+80|0;Ii=i+76|0;Ji=i+72|0;Ki=i+68|0;Li=i+64|0;Mi=i+60|0;Ni=i+56|0;Oi=i+52|0;Pi=i+48|0;Qi=i+44|0;Ri=i+40|0;Si=i+36|0;Ti=i+32|0;Ui=i+28|0;Vi=i+24|0;Wi=i+20|0;Xi=i+16|0;Yi=i+12|0;Zi=i+8|0;_i=i+4|0;$i=i;c[Wi>>2]=a;c[Xi>>2]=b;c[Yi>>2]=e;c[Zi>>2]=f;c[_i>>2]=g;c[$i>>2]=h;h=c[Xi>>2]|0;Xi=c[Yi>>2]|0;Yi=c[Zi>>2]|0;Zi=c[_i>>2]|0;_i=c[$i>>2]|0;c[Lh>>2]=c[Wi>>2];c[Mh>>2]=h;c[Nh>>2]=Xi;c[Oh>>2]=Yi;c[Ph>>2]=Zi;c[Qh>>2]=_i;c[Rh>>2]=2;c[Sh>>2]=1;c[Th>>2]=(c[Lh>>2]|0)+48;c[Uh>>2]=c[Ph>>2];c[Vh>>2]=c[Uh>>2];c[Wh>>2]=c[Uh>>2];c[Xh>>2]=(c[Uh>>2]|0)+(c[Qh>>2]|0);c[Yh>>2]=(c[Xh>>2]|0)+-8;c[Zh>>2]=c[(c[Lh>>2]|0)+4>>2];c[_h>>2]=(c[Zh>>2]|0)+(c[(c[Lh>>2]|0)+12>>2]|0);if((c[(c[Oh>>2]|0)+20>>2]|0)>>>0<4095)aj=c[(c[Oh>>2]|0)+20>>2]|0;else aj=4095;c[$h>>2]=aj;c[ai>>2]=(c[(c[Oh>>2]|0)+16>>2]|0)==3?3:4;c[bi>>2]=c[(c[Th>>2]|0)+20>>2];c[ci>>2]=c[(c[Th>>2]|0)+16>>2];c[(c[Lh>>2]|0)+28>>2]=c[(c[Lh>>2]|0)+24>>2];lm(c[Th>>2]|0,c[Ph>>2]|0,c[Qh>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+((c[Vh>>2]|0)==(c[_h>>2]|0)&1);c[di>>2]=0;c[di+4>>2]=0;c[di+8>>2]=0;while(1){if((c[Vh>>2]|0)>>>0>=(c[Yh>>2]|0)>>>0)break;c[fi>>2]=0;c[ii>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[ji>>2]=((c[ii>>2]|0)!=0^1)&1;_h=c[Oh>>2]|0;Qh=c[Vh>>2]|0;Ph=c[Xh>>2]|0;aj=c[Sh>>2]|0;Zh=c[Nh>>2]|0;Uh=c[ji>>2]|0;_i=c[ci>>2]|0;Zi=c[ai>>2]|0;c[Bh>>2]=c[Lh>>2];c[Ch>>2]=_h;c[Dh>>2]=Qh;c[Eh>>2]=Ph;c[Fh>>2]=aj;c[Gh>>2]=Zh;c[Hh>>2]=Uh;c[Ih>>2]=_i;c[Jh>>2]=Zi;c[Kh>>2]=c[(c[Ch>>2]|0)+16>>2];a:do{if((c[Dh>>2]|0)>>>0<((c[(c[Bh>>2]|0)+4>>2]|0)+(c[(c[Bh>>2]|0)+24>>2]|0)|0)>>>0)c[Ah>>2]=0;else{Zi=c[Ch>>2]|0;_i=c[Dh>>2]|0;Uh=c[Eh>>2]|0;Zh=c[Kh>>2]|0;aj=c[Fh>>2]|0;c[rh>>2]=c[Bh>>2];c[sh>>2]=Zi;c[th>>2]=_i;c[uh>>2]=Uh;c[vh>>2]=Zh;c[wh>>2]=aj;c[xh>>2]=c[(c[rh>>2]|0)+4>>2];c[yh>>2]=(c[th>>2]|0)-(c[xh>>2]|0);c[zh>>2]=c[(c[rh>>2]|0)+24>>2];while(1){if((c[zh>>2]|0)>>>0>=(c[yh>>2]|0)>>>0)break;aj=Rj(c[rh>>2]|0,c[sh>>2]|0,(c[xh>>2]|0)+(c[zh>>2]|0)|0,c[uh>>2]|0,c[vh>>2]|0,c[wh>>2]|0)|0;c[zh>>2]=(c[zh>>2]|0)+aj;}c[(c[rh>>2]|0)+24>>2]=c[yh>>2];switch(c[Kh>>2]|0){case 3:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[wg>>2]=c[Bh>>2];c[xg>>2]=aj;c[yg>>2]=Zh;c[zg>>2]=Uh;c[Ag>>2]=_i;c[Bg>>2]=Zi;c[Cg>>2]=Ph;c[Dg>>2]=Qh;c[Eg>>2]=_h;c[Fg>>2]=3;if((c[(c[xg>>2]|0)+20>>2]|0)>>>0<4095)bj=c[(c[xg>>2]|0)+20>>2]|0;else bj=4095;c[Gg>>2]=bj;c[Hg>>2]=c[(c[wg>>2]|0)+4>>2];c[Ig>>2]=(c[yg>>2]|0)-(c[Hg>>2]|0);c[Jg>>2]=c[(c[xg>>2]|0)+8>>2];c[Kg>>2]=(c[Fg>>2]|0)==3?3:4;c[Lg>>2]=c[(c[wg>>2]|0)+36>>2];c[Mg>>2]=Sj(c[yg>>2]|0,c[Jg>>2]|0,c[Fg>>2]|0)|0;c[Ng>>2]=c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2];c[Og>>2]=c[(c[wg>>2]|0)+44>>2];c[Pg>>2]=(c[(c[xg>>2]|0)+4>>2]|0)-1;c[Qg>>2]=(1<>2])-1;c[Rg>>2]=0;c[Sg>>2]=0;c[Tg>>2]=c[(c[wg>>2]|0)+8>>2];c[Ug>>2]=c[(c[wg>>2]|0)+12>>2];c[Vg>>2]=(c[Tg>>2]|0)+(c[Ug>>2]|0);c[Wg>>2]=(c[Hg>>2]|0)+(c[Ug>>2]|0);if((c[Qg>>2]|0)>>>0>=(c[Ig>>2]|0)>>>0)cj=0;else cj=(c[Ig>>2]|0)-(c[Qg>>2]|0)|0;c[Xg>>2]=cj;c[Yg>>2]=c[(c[wg>>2]|0)+16>>2];c[Zg>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2);c[_g>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2)+4;c[$g>>2]=(c[Ig>>2]|0)+8+1;c[bh>>2]=0;c[ch>>2]=1<>2]|0)+12>>2];c[dh>>2]=(c[Eg>>2]|0)-1;c[eh>>2]=3+(c[Cg>>2]|0);c[fh>>2]=c[Cg>>2];while(1){if((c[fh>>2]|0)>>>0>=(c[eh>>2]|0)>>>0){dj=31;break;}_h=c[Bg>>2]|0;if((c[fh>>2]|0)==3)ej=(c[_h>>2]|0)-1|0;else ej=c[_h+(c[fh>>2]<<2)>>2]|0;c[gh>>2]=ej;c[hh>>2]=(c[Ig>>2]|0)-(c[gh>>2]|0);c[ih>>2]=0;if(((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Ug>>2]|0)|0)>>>0){_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0;if((_h|0)==(mm((c[yg>>2]|0)+(0-(c[gh>>2]|0))|0,c[Kg>>2]|0)|0)){_h=Tj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[yg>>2]|0)+(c[Kg>>2]|0)+(0-(c[gh>>2]|0))|0,c[zg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}else{c[jh>>2]=(c[Tg>>2]|0)+(c[hh>>2]|0);if((c[Ag>>2]|0?(((c[Ug>>2]|0)-1-(c[hh>>2]|0)|0)>>>0>=3?((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Yg>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0,(_h|0)==(mm(c[jh>>2]|0,c[Kg>>2]|0)|0)):0){_h=Uj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[jh>>2]|0)+(c[Kg>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}if((c[ih>>2]|0)>>>0>(c[dh>>2]|0)>>>0?(c[dh>>2]=c[ih>>2],c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[fh>>2]|0)-(c[Cg>>2]|0),c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ih>>2],c[bh>>2]=(c[bh>>2]|0)+1,((c[ih>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[ih>>2]|0)|0)==(c[zg>>2]|0))|0):0){dj=29;break;}c[fh>>2]=(c[fh>>2]|0)+1;}do{if((dj|0)==29){dj=0;c[vg>>2]=c[bh>>2];}else if((dj|0)==31){dj=0;if(((c[Fg>>2]|0)==3?(c[dh>>2]|0)>>>0<(c[Fg>>2]|0)>>>0:0)?(c[kh>>2]=nm(c[wg>>2]|0,c[yg>>2]|0)|0,((c[kh>>2]|0)>>>0>(c[Yg>>2]|0)>>>0?((c[Ig>>2]|0)-(c[kh>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ag>>2]|0?(c[kh>>2]|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[nh>>2]=(c[Tg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Uj(c[yg>>2]|0,c[nh>>2]|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;}else{c[mh>>2]=(c[Hg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Tj(c[yg>>2]|0,c[mh>>2]|0,c[zg>>2]|0)|0;}if((c[lh>>2]|0)>>>0>=(c[Fg>>2]|0)>>>0?(c[dh>>2]=c[lh>>2],c[c[Dg>>2]>>2]=(c[Ig>>2]|0)-(c[kh>>2]|0)+2,c[(c[Dg>>2]|0)+4>>2]=c[lh>>2],c[bh>>2]=1,((c[lh>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[lh>>2]|0)|0)==(c[zg>>2]|0))|0):0){c[(c[wg>>2]|0)+24>>2]=(c[Ig>>2]|0)+1;c[vg>>2]=1;break;}}c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2]=c[Ig>>2];while(1){_h=c[ch>>2]|0;c[ch>>2]=_h+-1;if(!_h)break;if((c[Ng>>2]|0)>>>0<=(c[Yg>>2]|0)>>>0)break;c[oh>>2]=(c[Og>>2]|0)+((c[Ng>>2]&c[Qg>>2])<<1<<2);c[ph>>2]=(c[Rg>>2]|0)>>>0<(c[Sg>>2]|0)>>>0?c[Rg>>2]|0:c[Sg>>2]|0;if(c[Ag>>2]|0?((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[qh>>2]=(c[Tg>>2]|0)+(c[Ng>>2]|0);_h=Uj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;if(((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0>=(c[Ug>>2]|0)>>>0)c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);}else{c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);_h=Tj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;}if((c[ph>>2]|0)>>>0>(c[dh>>2]|0)>>>0){if((c[ph>>2]|0)>>>0>((c[$g>>2]|0)-(c[Ng>>2]|0)|0)>>>0)c[$g>>2]=(c[Ng>>2]|0)+(c[ph>>2]|0);c[dh>>2]=c[ph>>2];c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[Ig>>2]|0)-(c[Ng>>2]|0)+2;c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ph>>2];c[bh>>2]=(c[bh>>2]|0)+1;if((c[ph>>2]|0)>>>0>4096)break;if(((c[yg>>2]|0)+(c[ph>>2]|0)|0)==(c[zg>>2]|0))break;}_h=c[Ng>>2]|0;if((d[(c[qh>>2]|0)+(c[ph>>2]|0)>>0]|0|0)<(d[(c[yg>>2]|0)+(c[ph>>2]|0)>>0]|0|0)){c[c[Zg>>2]>>2]=_h;c[Rg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=56;break;}c[Zg>>2]=(c[oh>>2]|0)+4;c[Ng>>2]=c[(c[oh>>2]|0)+4>>2];}else{c[c[_g>>2]>>2]=_h;c[Sg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=59;break;}c[_g>>2]=c[oh>>2];c[Ng>>2]=c[c[oh>>2]>>2];}}if((dj|0)==56){dj=0;c[Zg>>2]=ah;}else if((dj|0)==59){dj=0;c[_g>>2]=ah;}c[c[_g>>2]>>2]=0;c[c[Zg>>2]>>2]=0;c[(c[wg>>2]|0)+24>>2]=(c[$g>>2]|0)-8;c[vg>>2]=c[bh>>2];}}while(0);c[Ah>>2]=c[vg>>2];break a;break;}case 7:case 6:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Hd>>2]=c[Bh>>2];c[Id>>2]=_h;c[Jd>>2]=Qh;c[Kd>>2]=Ph;c[Ld>>2]=Zi;c[Md>>2]=_i;c[Nd>>2]=Uh;c[Od>>2]=Zh;c[Pd>>2]=aj;c[Qd>>2]=6;if((c[(c[Id>>2]|0)+20>>2]|0)>>>0<4095)fj=c[(c[Id>>2]|0)+20>>2]|0;else fj=4095;c[Rd>>2]=fj;c[Sd>>2]=c[(c[Hd>>2]|0)+4>>2];c[Td>>2]=(c[Jd>>2]|0)-(c[Sd>>2]|0);c[Ud>>2]=c[(c[Id>>2]|0)+8>>2];c[Vd>>2]=(c[Qd>>2]|0)==3?3:4;c[Wd>>2]=c[(c[Hd>>2]|0)+36>>2];c[Xd>>2]=Sj(c[Jd>>2]|0,c[Ud>>2]|0,c[Qd>>2]|0)|0;c[Yd>>2]=c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2];c[Zd>>2]=c[(c[Hd>>2]|0)+44>>2];c[_d>>2]=(c[(c[Id>>2]|0)+4>>2]|0)-1;c[$d>>2]=(1<>2])-1;c[ae>>2]=0;c[be>>2]=0;c[ce>>2]=c[(c[Hd>>2]|0)+8>>2];c[de>>2]=c[(c[Hd>>2]|0)+12>>2];c[ee>>2]=(c[ce>>2]|0)+(c[de>>2]|0);c[fe>>2]=(c[Sd>>2]|0)+(c[de>>2]|0);if((c[$d>>2]|0)>>>0>=(c[Td>>2]|0)>>>0)gj=0;else gj=(c[Td>>2]|0)-(c[$d>>2]|0)|0;c[ge>>2]=gj;c[he>>2]=c[(c[Hd>>2]|0)+16>>2];c[ie>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2);c[je>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2)+4;c[ke>>2]=(c[Td>>2]|0)+8+1;c[me>>2]=0;c[ne>>2]=1<>2]|0)+12>>2];c[oe>>2]=(c[Pd>>2]|0)-1;c[pe>>2]=3+(c[Nd>>2]|0);c[qe>>2]=c[Nd>>2];while(1){if((c[qe>>2]|0)>>>0>=(c[pe>>2]|0)>>>0){dj=190;break;}aj=c[Md>>2]|0;if((c[qe>>2]|0)==3)hj=(c[aj>>2]|0)-1|0;else hj=c[aj+(c[qe>>2]<<2)>>2]|0;c[re>>2]=hj;c[se>>2]=(c[Td>>2]|0)-(c[re>>2]|0);c[te>>2]=0;if(((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[de>>2]|0)|0)>>>0){aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0;if((aj|0)==(mm((c[Jd>>2]|0)+(0-(c[re>>2]|0))|0,c[Vd>>2]|0)|0)){aj=Tj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[Jd>>2]|0)+(c[Vd>>2]|0)+(0-(c[re>>2]|0))|0,c[Kd>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}else{c[ue>>2]=(c[ce>>2]|0)+(c[se>>2]|0);if((c[Ld>>2]|0?(((c[de>>2]|0)-1-(c[se>>2]|0)|0)>>>0>=3?((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[he>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0,(aj|0)==(mm(c[ue>>2]|0,c[Vd>>2]|0)|0)):0){aj=Uj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[ue>>2]|0)+(c[Vd>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}if((c[te>>2]|0)>>>0>(c[oe>>2]|0)>>>0?(c[oe>>2]=c[te>>2],c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[qe>>2]|0)-(c[Nd>>2]|0),c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[te>>2],c[me>>2]=(c[me>>2]|0)+1,((c[te>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[te>>2]|0)|0)==(c[Kd>>2]|0))|0):0){dj=188;break;}c[qe>>2]=(c[qe>>2]|0)+1;}do{if((dj|0)==188){dj=0;c[Gd>>2]=c[me>>2];}else if((dj|0)==190){dj=0;if(((c[Qd>>2]|0)==3?(c[oe>>2]|0)>>>0<(c[Qd>>2]|0)>>>0:0)?(c[ve>>2]=nm(c[Hd>>2]|0,c[Jd>>2]|0)|0,((c[ve>>2]|0)>>>0>(c[he>>2]|0)>>>0?((c[Td>>2]|0)-(c[ve>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ld>>2]|0?(c[ve>>2]|0)>>>0<(c[de>>2]|0)>>>0:0){c[ye>>2]=(c[ce>>2]|0)+(c[ve>>2]|0);c[we>>2]=Uj(c[Jd>>2]|0,c[ye>>2]|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;}else{c[xe>>2]=(c[Sd>>2]|0)+(c[ve>>2]|0);c[we>>2]=Tj(c[Jd>>2]|0,c[xe>>2]|0,c[Kd>>2]|0)|0;}if((c[we>>2]|0)>>>0>=(c[Qd>>2]|0)>>>0?(c[oe>>2]=c[we>>2],c[c[Od>>2]>>2]=(c[Td>>2]|0)-(c[ve>>2]|0)+2,c[(c[Od>>2]|0)+4>>2]=c[we>>2],c[me>>2]=1,((c[we>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[we>>2]|0)|0)==(c[Kd>>2]|0))|0):0){c[(c[Hd>>2]|0)+24>>2]=(c[Td>>2]|0)+1;c[Gd>>2]=1;break;}}c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2]=c[Td>>2];while(1){aj=c[ne>>2]|0;c[ne>>2]=aj+-1;if(!aj)break;if((c[Yd>>2]|0)>>>0<=(c[he>>2]|0)>>>0)break;c[ze>>2]=(c[Zd>>2]|0)+((c[Yd>>2]&c[$d>>2])<<1<<2);c[Ae>>2]=(c[ae>>2]|0)>>>0<(c[be>>2]|0)>>>0?c[ae>>2]|0:c[be>>2]|0;if(c[Ld>>2]|0?((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0<(c[de>>2]|0)>>>0:0){c[Be>>2]=(c[ce>>2]|0)+(c[Yd>>2]|0);aj=Uj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;if(((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0>=(c[de>>2]|0)>>>0)c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);}else{c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);aj=Tj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;}if((c[Ae>>2]|0)>>>0>(c[oe>>2]|0)>>>0){if((c[Ae>>2]|0)>>>0>((c[ke>>2]|0)-(c[Yd>>2]|0)|0)>>>0)c[ke>>2]=(c[Yd>>2]|0)+(c[Ae>>2]|0);c[oe>>2]=c[Ae>>2];c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[Td>>2]|0)-(c[Yd>>2]|0)+2;c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[Ae>>2];c[me>>2]=(c[me>>2]|0)+1;if((c[Ae>>2]|0)>>>0>4096)break;if(((c[Jd>>2]|0)+(c[Ae>>2]|0)|0)==(c[Kd>>2]|0))break;}aj=c[Yd>>2]|0;if((d[(c[Be>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)<(d[(c[Jd>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)){c[c[ie>>2]>>2]=aj;c[ae>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=215;break;}c[ie>>2]=(c[ze>>2]|0)+4;c[Yd>>2]=c[(c[ze>>2]|0)+4>>2];}else{c[c[je>>2]>>2]=aj;c[be>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=218;break;}c[je>>2]=c[ze>>2];c[Yd>>2]=c[c[ze>>2]>>2];}}if((dj|0)==215){dj=0;c[ie>>2]=le;}else if((dj|0)==218){dj=0;c[je>>2]=le;}c[c[je>>2]>>2]=0;c[c[ie>>2]>>2]=0;c[(c[Hd>>2]|0)+24>>2]=(c[ke>>2]|0)-8;c[Gd>>2]=c[me>>2];}}while(0);c[Ah>>2]=c[Gd>>2];break a;break;}case 5:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[De>>2]=c[Bh>>2];c[Ee>>2]=aj;c[Fe>>2]=Zh;c[Ge>>2]=Uh;c[He>>2]=_i;c[Ie>>2]=Zi;c[Je>>2]=Ph;c[Ke>>2]=Qh;c[Le>>2]=_h;c[Me>>2]=5;if((c[(c[Ee>>2]|0)+20>>2]|0)>>>0<4095)ij=c[(c[Ee>>2]|0)+20>>2]|0;else ij=4095;c[Ne>>2]=ij;c[Oe>>2]=c[(c[De>>2]|0)+4>>2];c[Pe>>2]=(c[Fe>>2]|0)-(c[Oe>>2]|0);c[Qe>>2]=c[(c[Ee>>2]|0)+8>>2];c[Re>>2]=(c[Me>>2]|0)==3?3:4;c[Se>>2]=c[(c[De>>2]|0)+36>>2];c[Te>>2]=Sj(c[Fe>>2]|0,c[Qe>>2]|0,c[Me>>2]|0)|0;c[Ue>>2]=c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2];c[Ve>>2]=c[(c[De>>2]|0)+44>>2];c[We>>2]=(c[(c[Ee>>2]|0)+4>>2]|0)-1;c[Xe>>2]=(1<>2])-1;c[Ye>>2]=0;c[Ze>>2]=0;c[_e>>2]=c[(c[De>>2]|0)+8>>2];c[$e>>2]=c[(c[De>>2]|0)+12>>2];c[af>>2]=(c[_e>>2]|0)+(c[$e>>2]|0);c[bf>>2]=(c[Oe>>2]|0)+(c[$e>>2]|0);if((c[Xe>>2]|0)>>>0>=(c[Pe>>2]|0)>>>0)jj=0;else jj=(c[Pe>>2]|0)-(c[Xe>>2]|0)|0;c[cf>>2]=jj;c[df>>2]=c[(c[De>>2]|0)+16>>2];c[ef>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2);c[ff>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2)+4;c[gf>>2]=(c[Pe>>2]|0)+8+1;c[jf>>2]=0;c[kf>>2]=1<>2]|0)+12>>2];c[lf>>2]=(c[Le>>2]|0)-1;c[mf>>2]=3+(c[Je>>2]|0);c[nf>>2]=c[Je>>2];while(1){if((c[nf>>2]|0)>>>0>=(c[mf>>2]|0)>>>0){dj=137;break;}_h=c[Ie>>2]|0;if((c[nf>>2]|0)==3)kj=(c[_h>>2]|0)-1|0;else kj=c[_h+(c[nf>>2]<<2)>>2]|0;c[of>>2]=kj;c[pf>>2]=(c[Pe>>2]|0)-(c[of>>2]|0);c[qf>>2]=0;if(((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[$e>>2]|0)|0)>>>0){_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0;if((_h|0)==(mm((c[Fe>>2]|0)+(0-(c[of>>2]|0))|0,c[Re>>2]|0)|0)){_h=Tj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[Fe>>2]|0)+(c[Re>>2]|0)+(0-(c[of>>2]|0))|0,c[Ge>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}else{c[rf>>2]=(c[_e>>2]|0)+(c[pf>>2]|0);if((c[He>>2]|0?(((c[$e>>2]|0)-1-(c[pf>>2]|0)|0)>>>0>=3?((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[df>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0,(_h|0)==(mm(c[rf>>2]|0,c[Re>>2]|0)|0)):0){_h=Uj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[rf>>2]|0)+(c[Re>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}if((c[qf>>2]|0)>>>0>(c[lf>>2]|0)>>>0?(c[lf>>2]=c[qf>>2],c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[nf>>2]|0)-(c[Je>>2]|0),c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[qf>>2],c[jf>>2]=(c[jf>>2]|0)+1,((c[qf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[qf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){dj=135;break;}c[nf>>2]=(c[nf>>2]|0)+1;}do{if((dj|0)==135){dj=0;c[Ce>>2]=c[jf>>2];}else if((dj|0)==137){dj=0;if(((c[Me>>2]|0)==3?(c[lf>>2]|0)>>>0<(c[Me>>2]|0)>>>0:0)?(c[sf>>2]=nm(c[De>>2]|0,c[Fe>>2]|0)|0,((c[sf>>2]|0)>>>0>(c[df>>2]|0)>>>0?((c[Pe>>2]|0)-(c[sf>>2]|0)|0)>>>0<262144:0)|0):0){if(c[He>>2]|0?(c[sf>>2]|0)>>>0<(c[$e>>2]|0)>>>0:0){c[vf>>2]=(c[_e>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Uj(c[Fe>>2]|0,c[vf>>2]|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;}else{c[uf>>2]=(c[Oe>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Tj(c[Fe>>2]|0,c[uf>>2]|0,c[Ge>>2]|0)|0;}if((c[tf>>2]|0)>>>0>=(c[Me>>2]|0)>>>0?(c[lf>>2]=c[tf>>2],c[c[Ke>>2]>>2]=(c[Pe>>2]|0)-(c[sf>>2]|0)+2,c[(c[Ke>>2]|0)+4>>2]=c[tf>>2],c[jf>>2]=1,((c[tf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[tf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){c[(c[De>>2]|0)+24>>2]=(c[Pe>>2]|0)+1;c[Ce>>2]=1;break;}}c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2]=c[Pe>>2];while(1){_h=c[kf>>2]|0;c[kf>>2]=_h+-1;if(!_h)break;if((c[Ue>>2]|0)>>>0<=(c[df>>2]|0)>>>0)break;c[wf>>2]=(c[Ve>>2]|0)+((c[Ue>>2]&c[Xe>>2])<<1<<2);c[xf>>2]=(c[Ye>>2]|0)>>>0<(c[Ze>>2]|0)>>>0?c[Ye>>2]|0:c[Ze>>2]|0;if(c[He>>2]|0?((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0<(c[$e>>2]|0)>>>0:0){c[yf>>2]=(c[_e>>2]|0)+(c[Ue>>2]|0);_h=Uj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;if(((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0>=(c[$e>>2]|0)>>>0)c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);}else{c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);_h=Tj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;}if((c[xf>>2]|0)>>>0>(c[lf>>2]|0)>>>0){if((c[xf>>2]|0)>>>0>((c[gf>>2]|0)-(c[Ue>>2]|0)|0)>>>0)c[gf>>2]=(c[Ue>>2]|0)+(c[xf>>2]|0);c[lf>>2]=c[xf>>2];c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[Pe>>2]|0)-(c[Ue>>2]|0)+2;c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[xf>>2];c[jf>>2]=(c[jf>>2]|0)+1;if((c[xf>>2]|0)>>>0>4096)break;if(((c[Fe>>2]|0)+(c[xf>>2]|0)|0)==(c[Ge>>2]|0))break;}_h=c[Ue>>2]|0;if((d[(c[yf>>2]|0)+(c[xf>>2]|0)>>0]|0|0)<(d[(c[Fe>>2]|0)+(c[xf>>2]|0)>>0]|0|0)){c[c[ef>>2]>>2]=_h;c[Ye>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=162;break;}c[ef>>2]=(c[wf>>2]|0)+4;c[Ue>>2]=c[(c[wf>>2]|0)+4>>2];}else{c[c[ff>>2]>>2]=_h;c[Ze>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=165;break;}c[ff>>2]=c[wf>>2];c[Ue>>2]=c[c[wf>>2]>>2];}}if((dj|0)==162){dj=0;c[ef>>2]=hf;}else if((dj|0)==165){dj=0;c[ff>>2]=hf;}c[c[ff>>2]>>2]=0;c[c[ef>>2]>>2]=0;c[(c[De>>2]|0)+24>>2]=(c[gf>>2]|0)-8;c[Ce>>2]=c[jf>>2];}}while(0);c[Ah>>2]=c[Ce>>2];break a;break;}default:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Af>>2]=c[Bh>>2];c[Bf>>2]=_h;c[Cf>>2]=Qh;c[Df>>2]=Ph;c[Ef>>2]=Zi;c[Ff>>2]=_i;c[Gf>>2]=Uh;c[Hf>>2]=Zh;c[If>>2]=aj;c[Jf>>2]=4;if((c[(c[Bf>>2]|0)+20>>2]|0)>>>0<4095)lj=c[(c[Bf>>2]|0)+20>>2]|0;else lj=4095;c[Kf>>2]=lj;c[Lf>>2]=c[(c[Af>>2]|0)+4>>2];c[Mf>>2]=(c[Cf>>2]|0)-(c[Lf>>2]|0);c[Nf>>2]=c[(c[Bf>>2]|0)+8>>2];c[Of>>2]=(c[Jf>>2]|0)==3?3:4;c[Pf>>2]=c[(c[Af>>2]|0)+36>>2];c[Qf>>2]=Sj(c[Cf>>2]|0,c[Nf>>2]|0,c[Jf>>2]|0)|0;c[Rf>>2]=c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2];c[Sf>>2]=c[(c[Af>>2]|0)+44>>2];c[Tf>>2]=(c[(c[Bf>>2]|0)+4>>2]|0)-1;c[Uf>>2]=(1<>2])-1;c[Vf>>2]=0;c[Wf>>2]=0;c[Xf>>2]=c[(c[Af>>2]|0)+8>>2];c[Yf>>2]=c[(c[Af>>2]|0)+12>>2];c[Zf>>2]=(c[Xf>>2]|0)+(c[Yf>>2]|0);c[_f>>2]=(c[Lf>>2]|0)+(c[Yf>>2]|0);if((c[Uf>>2]|0)>>>0>=(c[Mf>>2]|0)>>>0)mj=0;else mj=(c[Mf>>2]|0)-(c[Uf>>2]|0)|0;c[$f>>2]=mj;c[ag>>2]=c[(c[Af>>2]|0)+16>>2];c[bg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2);c[cg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2)+4;c[dg>>2]=(c[Mf>>2]|0)+8+1;c[fg>>2]=0;c[gg>>2]=1<>2]|0)+12>>2];c[hg>>2]=(c[If>>2]|0)-1;c[ig>>2]=3+(c[Gf>>2]|0);c[jg>>2]=c[Gf>>2];while(1){if((c[jg>>2]|0)>>>0>=(c[ig>>2]|0)>>>0){dj=84;break;}aj=c[Ff>>2]|0;if((c[jg>>2]|0)==3)nj=(c[aj>>2]|0)-1|0;else nj=c[aj+(c[jg>>2]<<2)>>2]|0;c[kg>>2]=nj;c[lg>>2]=(c[Mf>>2]|0)-(c[kg>>2]|0);c[mg>>2]=0;if(((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[Yf>>2]|0)|0)>>>0){aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0;if((aj|0)==(mm((c[Cf>>2]|0)+(0-(c[kg>>2]|0))|0,c[Of>>2]|0)|0)){aj=Tj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[Cf>>2]|0)+(c[Of>>2]|0)+(0-(c[kg>>2]|0))|0,c[Df>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}else{c[ng>>2]=(c[Xf>>2]|0)+(c[lg>>2]|0);if((c[Ef>>2]|0?(((c[Yf>>2]|0)-1-(c[lg>>2]|0)|0)>>>0>=3?((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[ag>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0,(aj|0)==(mm(c[ng>>2]|0,c[Of>>2]|0)|0)):0){aj=Uj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[ng>>2]|0)+(c[Of>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}if((c[mg>>2]|0)>>>0>(c[hg>>2]|0)>>>0?(c[hg>>2]=c[mg>>2],c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[jg>>2]|0)-(c[Gf>>2]|0),c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[mg>>2],c[fg>>2]=(c[fg>>2]|0)+1,((c[mg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[mg>>2]|0)|0)==(c[Df>>2]|0))|0):0){dj=82;break;}c[jg>>2]=(c[jg>>2]|0)+1;}do{if((dj|0)==82){dj=0;c[zf>>2]=c[fg>>2];}else if((dj|0)==84){dj=0;if(((c[Jf>>2]|0)==3?(c[hg>>2]|0)>>>0<(c[Jf>>2]|0)>>>0:0)?(c[og>>2]=nm(c[Af>>2]|0,c[Cf>>2]|0)|0,((c[og>>2]|0)>>>0>(c[ag>>2]|0)>>>0?((c[Mf>>2]|0)-(c[og>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ef>>2]|0?(c[og>>2]|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[rg>>2]=(c[Xf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Uj(c[Cf>>2]|0,c[rg>>2]|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;}else{c[qg>>2]=(c[Lf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Tj(c[Cf>>2]|0,c[qg>>2]|0,c[Df>>2]|0)|0;}if((c[pg>>2]|0)>>>0>=(c[Jf>>2]|0)>>>0?(c[hg>>2]=c[pg>>2],c[c[Hf>>2]>>2]=(c[Mf>>2]|0)-(c[og>>2]|0)+2,c[(c[Hf>>2]|0)+4>>2]=c[pg>>2],c[fg>>2]=1,((c[pg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[pg>>2]|0)|0)==(c[Df>>2]|0))|0):0){c[(c[Af>>2]|0)+24>>2]=(c[Mf>>2]|0)+1;c[zf>>2]=1;break;}}c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2]=c[Mf>>2];while(1){aj=c[gg>>2]|0;c[gg>>2]=aj+-1;if(!aj)break;if((c[Rf>>2]|0)>>>0<=(c[ag>>2]|0)>>>0)break;c[sg>>2]=(c[Sf>>2]|0)+((c[Rf>>2]&c[Uf>>2])<<1<<2);c[tg>>2]=(c[Vf>>2]|0)>>>0<(c[Wf>>2]|0)>>>0?c[Vf>>2]|0:c[Wf>>2]|0;if(c[Ef>>2]|0?((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[ug>>2]=(c[Xf>>2]|0)+(c[Rf>>2]|0);aj=Uj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;if(((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0>=(c[Yf>>2]|0)>>>0)c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);}else{c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);aj=Tj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;}if((c[tg>>2]|0)>>>0>(c[hg>>2]|0)>>>0){if((c[tg>>2]|0)>>>0>((c[dg>>2]|0)-(c[Rf>>2]|0)|0)>>>0)c[dg>>2]=(c[Rf>>2]|0)+(c[tg>>2]|0);c[hg>>2]=c[tg>>2];c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[Mf>>2]|0)-(c[Rf>>2]|0)+2;c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[tg>>2];c[fg>>2]=(c[fg>>2]|0)+1;if((c[tg>>2]|0)>>>0>4096)break;if(((c[Cf>>2]|0)+(c[tg>>2]|0)|0)==(c[Df>>2]|0))break;}aj=c[Rf>>2]|0;if((d[(c[ug>>2]|0)+(c[tg>>2]|0)>>0]|0|0)<(d[(c[Cf>>2]|0)+(c[tg>>2]|0)>>0]|0|0)){c[c[bg>>2]>>2]=aj;c[Vf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=109;break;}c[bg>>2]=(c[sg>>2]|0)+4;c[Rf>>2]=c[(c[sg>>2]|0)+4>>2];}else{c[c[cg>>2]>>2]=aj;c[Wf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=112;break;}c[cg>>2]=c[sg>>2];c[Rf>>2]=c[c[sg>>2]>>2];}}if((dj|0)==109){dj=0;c[bg>>2]=eg;}else if((dj|0)==112){dj=0;c[cg>>2]=eg;}c[c[cg>>2]>>2]=0;c[c[bg>>2]>>2]=0;c[(c[Af>>2]|0)+24>>2]=(c[dg>>2]|0)-8;c[zf>>2]=c[fg>>2];}}while(0);c[Ah>>2]=c[zf>>2];break a;}}}}while(0);c[ki>>2]=c[Ah>>2];if(!(c[ki>>2]|0)){c[Vh>>2]=(c[Vh>>2]|0)+1;continue;}c[li>>2]=0;while(1){if((c[li>>2]|0)>>>0>=3)break;c[(c[bi>>2]|0)+16+(c[li>>2]<<2)>>2]=c[(c[Nh>>2]|0)+(c[li>>2]<<2)>>2];c[li>>2]=(c[li>>2]|0)+1;}c[(c[bi>>2]|0)+8>>2]=1;c[(c[bi>>2]|0)+12>>2]=c[ii>>2];c[mi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)+4>>2];do{if((c[mi>>2]|0)>>>0<=(c[$h>>2]|0)>>>0){c[ni>>2]=om(di,c[Wh>>2]|0,c[ii>>2]|0,c[Th>>2]|0)|0;c[oi>>2]=0;while(1){if((c[oi>>2]|0)>>>0>=(c[ai>>2]|0)>>>0)break;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=1073741824;c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=0;while(1){if((c[pi>>2]|0)>>>0>=(c[ki>>2]|0)>>>0)break;c[qi>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)>>2];c[ri>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)+4>>2];pm(si,c[Nh>>2]|0,c[qi>>2]|0,c[ji>>2]|0);while(1){if((c[oi>>2]|0)>>>0>(c[ri>>2]|0)>>>0)break;aj=c[ni>>2]|0;Zh=c[oi>>2]|0;Uh=c[Th>>2]|0;_i=c[Rh>>2]|0;c[yd>>2]=c[qi>>2];c[zd>>2]=Zh;c[Ad>>2]=Uh;c[Bd>>2]=_i;c[Dd>>2]=qm((c[yd>>2]|0)+1|0)|0;c[Ed>>2]=(c[zd>>2]|0)-3;if(c[(c[Ad>>2]|0)+56>>2]|0){_i=(qm((c[Ed>>2]|0)+1|0)|0)+16|0;c[xd>>2]=_i+(c[Dd>>2]|0);}else{_i=(c[Dd>>2]|0)+(c[(c[Ad>>2]|0)+52>>2]|0)|0;c[Cd>>2]=_i-(qm((c[(c[(c[Ad>>2]|0)+12>>2]|0)+(c[Dd>>2]<<2)>>2]|0)+1|0)|0);if((c[Bd>>2]|0)<2&(c[Dd>>2]|0)>>>0>=20)c[Cd>>2]=(c[Cd>>2]|0)+((c[Dd>>2]|0)-19<<1);c[Fd>>2]=rm(c[Ed>>2]|0)|0;_i=(c[5840+(c[Fd>>2]<<2)>>2]|0)+(c[(c[Ad>>2]|0)+48>>2]|0)|0;Uh=_i-(qm((c[(c[(c[Ad>>2]|0)+8>>2]|0)+(c[Fd>>2]<<2)>>2]|0)+1|0)|0)|0;c[Cd>>2]=(c[Cd>>2]|0)+Uh;c[xd>>2]=c[Cd>>2];}c[ti>>2]=aj+(c[xd>>2]|0);c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=c[oi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+4>>2]=c[qi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+12>>2]=c[ii>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=c[ti>>2];aj=(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+16|0;c[aj>>2]=c[si>>2];c[aj+4>>2]=c[si+4>>2];c[aj+8>>2]=c[si+8>>2];c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=(c[pi>>2]|0)+1;}c[fi>>2]=(c[oi>>2]|0)-1;c[ei>>2]=1;b:while(1){if((c[ei>>2]|0)>>>0>(c[fi>>2]|0)>>>0){dj=504;break;}c[ui>>2]=(c[Vh>>2]|0)+(c[ei>>2]|0);if((c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+8>>2]|0)==1)oj=(c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+12>>2]|0)+1|0;else oj=1;c[vi>>2]=oj;if((c[ei>>2]|0)>>>0>(c[vi>>2]|0)>>>0){aj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[vi>>2]|0)|0)*28|0)>>2]|0;c[wi>>2]=aj+(sm((c[ui>>2]|0)+(0-(c[vi>>2]|0))|0,c[vi>>2]|0,c[Th>>2]|0)|0);}else c[wi>>2]=tm(di,c[Wh>>2]|0,c[vi>>2]|0,c[Th>>2]|0)|0;if((c[wi>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0)){c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+4>>2]=0;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]=c[vi>>2];c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]=c[wi>>2];aj=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Uh=(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+16|0;c[aj>>2]=c[Uh>>2];c[aj+4>>2]=c[Uh+4>>2];c[aj+8>>2]=c[Uh+8>>2];}c:do{if((c[ui>>2]|0)>>>0<=(c[Yh>>2]|0)>>>0){if((c[ei>>2]|0)==(c[fi>>2]|0)){dj=504;break b;}if((c[Rh>>2]|0)==0?(c[(c[bi>>2]|0)+(((c[ei>>2]|0)+1|0)*28|0)>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0):0)break;c[xi>>2]=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)!=1&1;if((c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)==1)pj=c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]|0;else pj=0;c[yi>>2]=pj;if((c[ei>>2]|0)>>>0>(c[yi>>2]|0)>>>0)qj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[yi>>2]|0)|0)*28|0)>>2]|0;else qj=0;c[zi>>2]=qj;Uh=c[zi>>2]|0;c[Ai>>2]=Uh+(um((c[ui>>2]|0)+(0-(c[yi>>2]|0))|0,c[yi>>2]|0,c[Th>>2]|0)|0);Uh=c[Oh>>2]|0;aj=c[ui>>2]|0;_i=c[Xh>>2]|0;Zh=c[Sh>>2]|0;Zi=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Ph=c[xi>>2]|0;Qh=c[ci>>2]|0;_h=c[ai>>2]|0;c[nd>>2]=c[Lh>>2];c[od>>2]=Uh;c[pd>>2]=aj;c[qd>>2]=_i;c[rd>>2]=Zh;c[sd>>2]=Zi;c[td>>2]=Ph;c[ud>>2]=Qh;c[vd>>2]=_h;c[wd>>2]=c[(c[od>>2]|0)+16>>2];d:do{if((c[pd>>2]|0)>>>0<((c[(c[nd>>2]|0)+4>>2]|0)+(c[(c[nd>>2]|0)+24>>2]|0)|0)>>>0)c[md>>2]=0;else{_h=c[od>>2]|0;Qh=c[pd>>2]|0;Ph=c[qd>>2]|0;Zi=c[wd>>2]|0;Zh=c[rd>>2]|0;c[dd>>2]=c[nd>>2];c[ed>>2]=_h;c[fd>>2]=Qh;c[gd>>2]=Ph;c[hd>>2]=Zi;c[id>>2]=Zh;c[jd>>2]=c[(c[dd>>2]|0)+4>>2];c[kd>>2]=(c[fd>>2]|0)-(c[jd>>2]|0);c[ld>>2]=c[(c[dd>>2]|0)+24>>2];while(1){if((c[ld>>2]|0)>>>0>=(c[kd>>2]|0)>>>0)break;Zh=Rj(c[dd>>2]|0,c[ed>>2]|0,(c[jd>>2]|0)+(c[ld>>2]|0)|0,c[gd>>2]|0,c[hd>>2]|0,c[id>>2]|0)|0;c[ld>>2]=(c[ld>>2]|0)+Zh;}c[(c[dd>>2]|0)+24>>2]=c[kd>>2];switch(c[wd>>2]|0){case 3:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[ic>>2]=c[nd>>2];c[jc>>2]=Zh;c[kc>>2]=Zi;c[lc>>2]=Ph;c[mc>>2]=Qh;c[nc>>2]=_h;c[oc>>2]=_i;c[pc>>2]=aj;c[qc>>2]=Uh;c[rc>>2]=3;if((c[(c[jc>>2]|0)+20>>2]|0)>>>0<4095)rj=c[(c[jc>>2]|0)+20>>2]|0;else rj=4095;c[sc>>2]=rj;c[tc>>2]=c[(c[ic>>2]|0)+4>>2];c[uc>>2]=(c[kc>>2]|0)-(c[tc>>2]|0);c[vc>>2]=c[(c[jc>>2]|0)+8>>2];c[wc>>2]=(c[rc>>2]|0)==3?3:4;c[xc>>2]=c[(c[ic>>2]|0)+36>>2];c[yc>>2]=Sj(c[kc>>2]|0,c[vc>>2]|0,c[rc>>2]|0)|0;c[zc>>2]=c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2];c[Ac>>2]=c[(c[ic>>2]|0)+44>>2];c[Bc>>2]=(c[(c[jc>>2]|0)+4>>2]|0)-1;c[Cc>>2]=(1<>2])-1;c[Dc>>2]=0;c[Ec>>2]=0;c[Fc>>2]=c[(c[ic>>2]|0)+8>>2];c[Gc>>2]=c[(c[ic>>2]|0)+12>>2];c[Hc>>2]=(c[Fc>>2]|0)+(c[Gc>>2]|0);c[Ic>>2]=(c[tc>>2]|0)+(c[Gc>>2]|0);if((c[Cc>>2]|0)>>>0>=(c[uc>>2]|0)>>>0)sj=0;else sj=(c[uc>>2]|0)-(c[Cc>>2]|0)|0;c[Jc>>2]=sj;c[Kc>>2]=c[(c[ic>>2]|0)+16>>2];c[Lc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2);c[Mc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2)+4;c[Nc>>2]=(c[uc>>2]|0)+8+1;c[Pc>>2]=0;c[Qc>>2]=1<>2]|0)+12>>2];c[Rc>>2]=(c[qc>>2]|0)-1;c[Sc>>2]=3+(c[oc>>2]|0);c[Tc>>2]=c[oc>>2];while(1){if((c[Tc>>2]|0)>>>0>=(c[Sc>>2]|0)>>>0){dj=287;break;}Uh=c[nc>>2]|0;if((c[Tc>>2]|0)==3)tj=(c[Uh>>2]|0)-1|0;else tj=c[Uh+(c[Tc>>2]<<2)>>2]|0;c[Uc>>2]=tj;c[Vc>>2]=(c[uc>>2]|0)-(c[Uc>>2]|0);c[Wc>>2]=0;do{if(((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Gc>>2]|0)|0)>>>0){Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm((c[kc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[wc>>2]|0)|0))break;Uh=Tj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[kc>>2]|0)+(c[wc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[lc>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}else{c[Xc>>2]=(c[Fc>>2]|0)+(c[Vc>>2]|0);if(!(c[mc>>2]|0))break;if(!((((c[Gc>>2]|0)-1-(c[Vc>>2]|0)|0)>>>0>=3?((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Kc>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm(c[Xc>>2]|0,c[wc>>2]|0)|0))break;Uh=Uj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[Xc>>2]|0)+(c[wc>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}}while(0);if((c[Wc>>2]|0)>>>0>(c[Rc>>2]|0)>>>0?(c[Rc>>2]=c[Wc>>2],c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[Tc>>2]|0)-(c[oc>>2]|0),c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[Wc>>2],c[Pc>>2]=(c[Pc>>2]|0)+1,((c[Wc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Wc>>2]|0)|0)==(c[lc>>2]|0))|0):0){dj=285;break;}c[Tc>>2]=(c[Tc>>2]|0)+1;}e:do{if((dj|0)==285){dj=0;c[hc>>2]=c[Pc>>2];}else if((dj|0)==287){dj=0;do{if((c[rc>>2]|0)==3){if((c[Rc>>2]|0)>>>0>=(c[rc>>2]|0)>>>0)break;c[Yc>>2]=nm(c[ic>>2]|0,c[kc>>2]|0)|0;if(!(((c[Yc>>2]|0)>>>0>(c[Kc>>2]|0)>>>0?((c[uc>>2]|0)-(c[Yc>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[mc>>2]|0){if((c[Yc>>2]|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=292;break;}c[$c>>2]=(c[Fc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Uj(c[kc>>2]|0,c[$c>>2]|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;}else dj=292;}while(0);if((dj|0)==292){dj=0;c[_c>>2]=(c[tc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Tj(c[kc>>2]|0,c[_c>>2]|0,c[lc>>2]|0)|0;}if((c[Zc>>2]|0)>>>0<(c[rc>>2]|0)>>>0)break;c[Rc>>2]=c[Zc>>2];c[c[pc>>2]>>2]=(c[uc>>2]|0)-(c[Yc>>2]|0)+2;c[(c[pc>>2]|0)+4>>2]=c[Zc>>2];c[Pc>>2]=1;if(!(((c[Zc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Zc>>2]|0)|0)==(c[lc>>2]|0))|0))break;c[(c[ic>>2]|0)+24>>2]=(c[uc>>2]|0)+1;c[hc>>2]=1;break e;}}while(0);c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2]=c[uc>>2];while(1){Uh=c[Qc>>2]|0;c[Qc>>2]=Uh+-1;if(!Uh)break;if((c[zc>>2]|0)>>>0<=(c[Kc>>2]|0)>>>0)break;c[ad>>2]=(c[Ac>>2]|0)+((c[zc>>2]&c[Cc>>2])<<1<<2);c[bd>>2]=(c[Dc>>2]|0)>>>0<(c[Ec>>2]|0)>>>0?c[Dc>>2]|0:c[Ec>>2]|0;do{if(c[mc>>2]|0){if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=302;break;}c[cd>>2]=(c[Fc>>2]|0)+(c[zc>>2]|0);Uh=Uj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0<(c[Gc>>2]|0)>>>0)break;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);}else dj=302;}while(0);if((dj|0)==302){dj=0;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);Uh=Tj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;}if((c[bd>>2]|0)>>>0>(c[Rc>>2]|0)>>>0){if((c[bd>>2]|0)>>>0>((c[Nc>>2]|0)-(c[zc>>2]|0)|0)>>>0)c[Nc>>2]=(c[zc>>2]|0)+(c[bd>>2]|0);c[Rc>>2]=c[bd>>2];c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[uc>>2]|0)-(c[zc>>2]|0)+2;c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[bd>>2];c[Pc>>2]=(c[Pc>>2]|0)+1;if((c[bd>>2]|0)>>>0>4096)break;if(((c[kc>>2]|0)+(c[bd>>2]|0)|0)==(c[lc>>2]|0))break;}Uh=c[zc>>2]|0;if((d[(c[cd>>2]|0)+(c[bd>>2]|0)>>0]|0|0)<(d[(c[kc>>2]|0)+(c[bd>>2]|0)>>0]|0|0)){c[c[Lc>>2]>>2]=Uh;c[Dc>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=312;break;}c[Lc>>2]=(c[ad>>2]|0)+4;c[zc>>2]=c[(c[ad>>2]|0)+4>>2];}else{c[c[Mc>>2]>>2]=Uh;c[Ec>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=315;break;}c[Mc>>2]=c[ad>>2];c[zc>>2]=c[c[ad>>2]>>2];}}if((dj|0)==312){dj=0;c[Lc>>2]=Oc;}else if((dj|0)==315){dj=0;c[Mc>>2]=Oc;}c[c[Mc>>2]>>2]=0;c[c[Lc>>2]>>2]=0;c[(c[ic>>2]|0)+24>>2]=(c[Nc>>2]|0)-8;c[hc>>2]=c[Pc>>2];}}while(0);c[md>>2]=c[hc>>2];break d;break;}case 7:case 6:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[u>>2]=c[nd>>2];c[v>>2]=Uh;c[w>>2]=aj;c[x>>2]=_i;c[y>>2]=_h;c[z>>2]=Qh;c[A>>2]=Ph;c[B>>2]=Zi;c[C>>2]=Zh;c[D>>2]=6;if((c[(c[v>>2]|0)+20>>2]|0)>>>0<4095)uj=c[(c[v>>2]|0)+20>>2]|0;else uj=4095;c[E>>2]=uj;c[F>>2]=c[(c[u>>2]|0)+4>>2];c[G>>2]=(c[w>>2]|0)-(c[F>>2]|0);c[H>>2]=c[(c[v>>2]|0)+8>>2];c[I>>2]=(c[D>>2]|0)==3?3:4;c[J>>2]=c[(c[u>>2]|0)+36>>2];c[K>>2]=Sj(c[w>>2]|0,c[H>>2]|0,c[D>>2]|0)|0;c[L>>2]=c[(c[J>>2]|0)+(c[K>>2]<<2)>>2];c[M>>2]=c[(c[u>>2]|0)+44>>2];c[N>>2]=(c[(c[v>>2]|0)+4>>2]|0)-1;c[O>>2]=(1<>2])-1;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=c[(c[u>>2]|0)+8>>2];c[S>>2]=c[(c[u>>2]|0)+12>>2];c[T>>2]=(c[R>>2]|0)+(c[S>>2]|0);c[U>>2]=(c[F>>2]|0)+(c[S>>2]|0);if((c[O>>2]|0)>>>0>=(c[G>>2]|0)>>>0)vj=0;else vj=(c[G>>2]|0)-(c[O>>2]|0)|0;c[V>>2]=vj;c[W>>2]=c[(c[u>>2]|0)+16>>2];c[X>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2);c[Y>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2)+4;c[Z>>2]=(c[G>>2]|0)+8+1;c[$>>2]=0;c[aa>>2]=1<>2]|0)+12>>2];c[ba>>2]=(c[C>>2]|0)-1;c[ca>>2]=3+(c[A>>2]|0);c[da>>2]=c[A>>2];while(1){if((c[da>>2]|0)>>>0>=(c[ca>>2]|0)>>>0){dj=446;break;}Zh=c[z>>2]|0;if((c[da>>2]|0)==3)wj=(c[Zh>>2]|0)-1|0;else wj=c[Zh+(c[da>>2]<<2)>>2]|0;c[ea>>2]=wj;c[fa>>2]=(c[G>>2]|0)-(c[ea>>2]|0);c[ga>>2]=0;do{if(((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[S>>2]|0)|0)>>>0){Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm((c[w>>2]|0)+(0-(c[ea>>2]|0))|0,c[I>>2]|0)|0))break;Zh=Tj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[w>>2]|0)+(c[I>>2]|0)+(0-(c[ea>>2]|0))|0,c[x>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}else{c[ha>>2]=(c[R>>2]|0)+(c[fa>>2]|0);if(!(c[y>>2]|0))break;if(!((((c[S>>2]|0)-1-(c[fa>>2]|0)|0)>>>0>=3?((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[W>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm(c[ha>>2]|0,c[I>>2]|0)|0))break;Zh=Uj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[ha>>2]|0)+(c[I>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}}while(0);if((c[ga>>2]|0)>>>0>(c[ba>>2]|0)>>>0?(c[ba>>2]=c[ga>>2],c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[da>>2]|0)-(c[A>>2]|0),c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[ga>>2],c[$>>2]=(c[$>>2]|0)+1,((c[ga>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ga>>2]|0)|0)==(c[x>>2]|0))|0):0){dj=444;break;}c[da>>2]=(c[da>>2]|0)+1;}f:do{if((dj|0)==444){dj=0;c[t>>2]=c[$>>2];}else if((dj|0)==446){dj=0;do{if((c[D>>2]|0)==3){if((c[ba>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[ia>>2]=nm(c[u>>2]|0,c[w>>2]|0)|0;if(!(((c[ia>>2]|0)>>>0>(c[W>>2]|0)>>>0?((c[G>>2]|0)-(c[ia>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[y>>2]|0){if((c[ia>>2]|0)>>>0>=(c[S>>2]|0)>>>0){dj=451;break;}c[la>>2]=(c[R>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Uj(c[w>>2]|0,c[la>>2]|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;}else dj=451;}while(0);if((dj|0)==451){dj=0;c[ka>>2]=(c[F>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Tj(c[w>>2]|0,c[ka>>2]|0,c[x>>2]|0)|0;}if((c[ja>>2]|0)>>>0<(c[D>>2]|0)>>>0)break;c[ba>>2]=c[ja>>2];c[c[B>>2]>>2]=(c[G>>2]|0)-(c[ia>>2]|0)+2;c[(c[B>>2]|0)+4>>2]=c[ja>>2];c[$>>2]=1;if(!(((c[ja>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ja>>2]|0)|0)==(c[x>>2]|0))|0))break;c[(c[u>>2]|0)+24>>2]=(c[G>>2]|0)+1;c[t>>2]=1;break f;}}while(0);c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[G>>2];while(1){Zh=c[aa>>2]|0;c[aa>>2]=Zh+-1;if(!Zh)break;if((c[L>>2]|0)>>>0<=(c[W>>2]|0)>>>0)break;c[ma>>2]=(c[M>>2]|0)+((c[L>>2]&c[O>>2])<<1<<2);c[na>>2]=(c[P>>2]|0)>>>0<(c[Q>>2]|0)>>>0?c[P>>2]|0:c[Q>>2]|0;do{if(c[y>>2]|0){if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0>=(c[S>>2]|0)>>>0){dj=461;break;}c[oa>>2]=(c[R>>2]|0)+(c[L>>2]|0);Zh=Uj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0<(c[S>>2]|0)>>>0)break;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);}else dj=461;}while(0);if((dj|0)==461){dj=0;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);Zh=Tj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;}if((c[na>>2]|0)>>>0>(c[ba>>2]|0)>>>0){if((c[na>>2]|0)>>>0>((c[Z>>2]|0)-(c[L>>2]|0)|0)>>>0)c[Z>>2]=(c[L>>2]|0)+(c[na>>2]|0);c[ba>>2]=c[na>>2];c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[G>>2]|0)-(c[L>>2]|0)+2;c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[na>>2];c[$>>2]=(c[$>>2]|0)+1;if((c[na>>2]|0)>>>0>4096)break;if(((c[w>>2]|0)+(c[na>>2]|0)|0)==(c[x>>2]|0))break;}Zh=c[L>>2]|0;if((d[(c[oa>>2]|0)+(c[na>>2]|0)>>0]|0|0)<(d[(c[w>>2]|0)+(c[na>>2]|0)>>0]|0|0)){c[c[X>>2]>>2]=Zh;c[P>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=471;break;}c[X>>2]=(c[ma>>2]|0)+4;c[L>>2]=c[(c[ma>>2]|0)+4>>2];}else{c[c[Y>>2]>>2]=Zh;c[Q>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=474;break;}c[Y>>2]=c[ma>>2];c[L>>2]=c[c[ma>>2]>>2];}}if((dj|0)==471){dj=0;c[X>>2]=_;}else if((dj|0)==474){dj=0;c[Y>>2]=_;}c[c[Y>>2]>>2]=0;c[c[X>>2]>>2]=0;c[(c[u>>2]|0)+24>>2]=(c[Z>>2]|0)-8;c[t>>2]=c[$>>2];}}while(0);c[md>>2]=c[t>>2];break d;break;}case 5:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[qa>>2]=c[nd>>2];c[ra>>2]=Zh;c[sa>>2]=Zi;c[ta>>2]=Ph;c[ua>>2]=Qh;c[va>>2]=_h;c[wa>>2]=_i;c[xa>>2]=aj;c[ya>>2]=Uh;c[za>>2]=5;if((c[(c[ra>>2]|0)+20>>2]|0)>>>0<4095)xj=c[(c[ra>>2]|0)+20>>2]|0;else xj=4095;c[Aa>>2]=xj;c[Ba>>2]=c[(c[qa>>2]|0)+4>>2];c[Ca>>2]=(c[sa>>2]|0)-(c[Ba>>2]|0);c[Da>>2]=c[(c[ra>>2]|0)+8>>2];c[Ea>>2]=(c[za>>2]|0)==3?3:4;c[Fa>>2]=c[(c[qa>>2]|0)+36>>2];c[Ga>>2]=Sj(c[sa>>2]|0,c[Da>>2]|0,c[za>>2]|0)|0;c[Ha>>2]=c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2];c[Ia>>2]=c[(c[qa>>2]|0)+44>>2];c[Ja>>2]=(c[(c[ra>>2]|0)+4>>2]|0)-1;c[Ka>>2]=(1<>2])-1;c[La>>2]=0;c[Ma>>2]=0;c[Na>>2]=c[(c[qa>>2]|0)+8>>2];c[Oa>>2]=c[(c[qa>>2]|0)+12>>2];c[Pa>>2]=(c[Na>>2]|0)+(c[Oa>>2]|0);c[Qa>>2]=(c[Ba>>2]|0)+(c[Oa>>2]|0);if((c[Ka>>2]|0)>>>0>=(c[Ca>>2]|0)>>>0)yj=0;else yj=(c[Ca>>2]|0)-(c[Ka>>2]|0)|0;c[Ra>>2]=yj;c[Sa>>2]=c[(c[qa>>2]|0)+16>>2];c[Ta>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2);c[Ua>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2)+4;c[Va>>2]=(c[Ca>>2]|0)+8+1;c[Xa>>2]=0;c[Ya>>2]=1<>2]|0)+12>>2];c[Za>>2]=(c[ya>>2]|0)-1;c[_a>>2]=3+(c[wa>>2]|0);c[$a>>2]=c[wa>>2];while(1){if((c[$a>>2]|0)>>>0>=(c[_a>>2]|0)>>>0){dj=393;break;}Uh=c[va>>2]|0;if((c[$a>>2]|0)==3)zj=(c[Uh>>2]|0)-1|0;else zj=c[Uh+(c[$a>>2]<<2)>>2]|0;c[ab>>2]=zj;c[bb>>2]=(c[Ca>>2]|0)-(c[ab>>2]|0);c[cb>>2]=0;do{if(((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Oa>>2]|0)|0)>>>0){Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm((c[sa>>2]|0)+(0-(c[ab>>2]|0))|0,c[Ea>>2]|0)|0))break;Uh=Tj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[sa>>2]|0)+(c[Ea>>2]|0)+(0-(c[ab>>2]|0))|0,c[ta>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}else{c[db>>2]=(c[Na>>2]|0)+(c[bb>>2]|0);if(!(c[ua>>2]|0))break;if(!((((c[Oa>>2]|0)-1-(c[bb>>2]|0)|0)>>>0>=3?((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Sa>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm(c[db>>2]|0,c[Ea>>2]|0)|0))break;Uh=Uj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[db>>2]|0)+(c[Ea>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}}while(0);if((c[cb>>2]|0)>>>0>(c[Za>>2]|0)>>>0?(c[Za>>2]=c[cb>>2],c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[$a>>2]|0)-(c[wa>>2]|0),c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[cb>>2],c[Xa>>2]=(c[Xa>>2]|0)+1,((c[cb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[cb>>2]|0)|0)==(c[ta>>2]|0))|0):0){dj=391;break;}c[$a>>2]=(c[$a>>2]|0)+1;}g:do{if((dj|0)==391){dj=0;c[pa>>2]=c[Xa>>2];}else if((dj|0)==393){dj=0;do{if((c[za>>2]|0)==3){if((c[Za>>2]|0)>>>0>=(c[za>>2]|0)>>>0)break;c[eb>>2]=nm(c[qa>>2]|0,c[sa>>2]|0)|0;if(!(((c[eb>>2]|0)>>>0>(c[Sa>>2]|0)>>>0?((c[Ca>>2]|0)-(c[eb>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[ua>>2]|0){if((c[eb>>2]|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=398;break;}c[hb>>2]=(c[Na>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Uj(c[sa>>2]|0,c[hb>>2]|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;}else dj=398;}while(0);if((dj|0)==398){dj=0;c[gb>>2]=(c[Ba>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Tj(c[sa>>2]|0,c[gb>>2]|0,c[ta>>2]|0)|0;}if((c[fb>>2]|0)>>>0<(c[za>>2]|0)>>>0)break;c[Za>>2]=c[fb>>2];c[c[xa>>2]>>2]=(c[Ca>>2]|0)-(c[eb>>2]|0)+2;c[(c[xa>>2]|0)+4>>2]=c[fb>>2];c[Xa>>2]=1;if(!(((c[fb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[fb>>2]|0)|0)==(c[ta>>2]|0))|0))break;c[(c[qa>>2]|0)+24>>2]=(c[Ca>>2]|0)+1;c[pa>>2]=1;break g;}}while(0);c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2]=c[Ca>>2];while(1){Uh=c[Ya>>2]|0;c[Ya>>2]=Uh+-1;if(!Uh)break;if((c[Ha>>2]|0)>>>0<=(c[Sa>>2]|0)>>>0)break;c[ib>>2]=(c[Ia>>2]|0)+((c[Ha>>2]&c[Ka>>2])<<1<<2);c[jb>>2]=(c[La>>2]|0)>>>0<(c[Ma>>2]|0)>>>0?c[La>>2]|0:c[Ma>>2]|0;do{if(c[ua>>2]|0){if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=408;break;}c[kb>>2]=(c[Na>>2]|0)+(c[Ha>>2]|0);Uh=Uj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0<(c[Oa>>2]|0)>>>0)break;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);}else dj=408;}while(0);if((dj|0)==408){dj=0;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);Uh=Tj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;}if((c[jb>>2]|0)>>>0>(c[Za>>2]|0)>>>0){if((c[jb>>2]|0)>>>0>((c[Va>>2]|0)-(c[Ha>>2]|0)|0)>>>0)c[Va>>2]=(c[Ha>>2]|0)+(c[jb>>2]|0);c[Za>>2]=c[jb>>2];c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[Ca>>2]|0)-(c[Ha>>2]|0)+2;c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[jb>>2];c[Xa>>2]=(c[Xa>>2]|0)+1;if((c[jb>>2]|0)>>>0>4096)break;if(((c[sa>>2]|0)+(c[jb>>2]|0)|0)==(c[ta>>2]|0))break;}Uh=c[Ha>>2]|0;if((d[(c[kb>>2]|0)+(c[jb>>2]|0)>>0]|0|0)<(d[(c[sa>>2]|0)+(c[jb>>2]|0)>>0]|0|0)){c[c[Ta>>2]>>2]=Uh;c[La>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=418;break;}c[Ta>>2]=(c[ib>>2]|0)+4;c[Ha>>2]=c[(c[ib>>2]|0)+4>>2];}else{c[c[Ua>>2]>>2]=Uh;c[Ma>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=421;break;}c[Ua>>2]=c[ib>>2];c[Ha>>2]=c[c[ib>>2]>>2];}}if((dj|0)==418){dj=0;c[Ta>>2]=Wa;}else if((dj|0)==421){dj=0;c[Ua>>2]=Wa;}c[c[Ua>>2]>>2]=0;c[c[Ta>>2]>>2]=0;c[(c[qa>>2]|0)+24>>2]=(c[Va>>2]|0)-8;c[pa>>2]=c[Xa>>2];}}while(0);c[md>>2]=c[pa>>2];break d;break;}default:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[mb>>2]=c[nd>>2];c[nb>>2]=Uh;c[ob>>2]=aj;c[pb>>2]=_i;c[qb>>2]=_h;c[rb>>2]=Qh;c[sb>>2]=Ph;c[tb>>2]=Zi;c[ub>>2]=Zh;c[vb>>2]=4;if((c[(c[nb>>2]|0)+20>>2]|0)>>>0<4095)Aj=c[(c[nb>>2]|0)+20>>2]|0;else Aj=4095;c[wb>>2]=Aj;c[xb>>2]=c[(c[mb>>2]|0)+4>>2];c[yb>>2]=(c[ob>>2]|0)-(c[xb>>2]|0);c[zb>>2]=c[(c[nb>>2]|0)+8>>2];c[Ab>>2]=(c[vb>>2]|0)==3?3:4;c[Bb>>2]=c[(c[mb>>2]|0)+36>>2];c[Cb>>2]=Sj(c[ob>>2]|0,c[zb>>2]|0,c[vb>>2]|0)|0;c[Db>>2]=c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2];c[Eb>>2]=c[(c[mb>>2]|0)+44>>2];c[Fb>>2]=(c[(c[nb>>2]|0)+4>>2]|0)-1;c[Gb>>2]=(1<>2])-1;c[Hb>>2]=0;c[Ib>>2]=0;c[Jb>>2]=c[(c[mb>>2]|0)+8>>2];c[Kb>>2]=c[(c[mb>>2]|0)+12>>2];c[Lb>>2]=(c[Jb>>2]|0)+(c[Kb>>2]|0);c[Mb>>2]=(c[xb>>2]|0)+(c[Kb>>2]|0);if((c[Gb>>2]|0)>>>0>=(c[yb>>2]|0)>>>0)Bj=0;else Bj=(c[yb>>2]|0)-(c[Gb>>2]|0)|0;c[Nb>>2]=Bj;c[Ob>>2]=c[(c[mb>>2]|0)+16>>2];c[Pb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2);c[Qb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2)+4;c[Rb>>2]=(c[yb>>2]|0)+8+1;c[Tb>>2]=0;c[Ub>>2]=1<>2]|0)+12>>2];c[Vb>>2]=(c[ub>>2]|0)-1;c[Wb>>2]=3+(c[sb>>2]|0);c[Xb>>2]=c[sb>>2];while(1){if((c[Xb>>2]|0)>>>0>=(c[Wb>>2]|0)>>>0){dj=340;break;}Zh=c[rb>>2]|0;if((c[Xb>>2]|0)==3)Cj=(c[Zh>>2]|0)-1|0;else Cj=c[Zh+(c[Xb>>2]<<2)>>2]|0;c[Yb>>2]=Cj;c[Zb>>2]=(c[yb>>2]|0)-(c[Yb>>2]|0);c[_b>>2]=0;do{if(((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Kb>>2]|0)|0)>>>0){Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm((c[ob>>2]|0)+(0-(c[Yb>>2]|0))|0,c[Ab>>2]|0)|0))break;Zh=Tj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[ob>>2]|0)+(c[Ab>>2]|0)+(0-(c[Yb>>2]|0))|0,c[pb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}else{c[$b>>2]=(c[Jb>>2]|0)+(c[Zb>>2]|0);if(!(c[qb>>2]|0))break;if(!((((c[Kb>>2]|0)-1-(c[Zb>>2]|0)|0)>>>0>=3?((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Ob>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm(c[$b>>2]|0,c[Ab>>2]|0)|0))break;Zh=Uj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[$b>>2]|0)+(c[Ab>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}}while(0);if((c[_b>>2]|0)>>>0>(c[Vb>>2]|0)>>>0?(c[Vb>>2]=c[_b>>2],c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[Xb>>2]|0)-(c[sb>>2]|0),c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[_b>>2],c[Tb>>2]=(c[Tb>>2]|0)+1,((c[_b>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[_b>>2]|0)|0)==(c[pb>>2]|0))|0):0){dj=338;break;}c[Xb>>2]=(c[Xb>>2]|0)+1;}h:do{if((dj|0)==338){dj=0;c[lb>>2]=c[Tb>>2];}else if((dj|0)==340){dj=0;do{if((c[vb>>2]|0)==3){if((c[Vb>>2]|0)>>>0>=(c[vb>>2]|0)>>>0)break;c[ac>>2]=nm(c[mb>>2]|0,c[ob>>2]|0)|0;if(!(((c[ac>>2]|0)>>>0>(c[Ob>>2]|0)>>>0?((c[yb>>2]|0)-(c[ac>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[qb>>2]|0){if((c[ac>>2]|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=345;break;}c[dc>>2]=(c[Jb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Uj(c[ob>>2]|0,c[dc>>2]|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;}else dj=345;}while(0);if((dj|0)==345){dj=0;c[cc>>2]=(c[xb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Tj(c[ob>>2]|0,c[cc>>2]|0,c[pb>>2]|0)|0;}if((c[bc>>2]|0)>>>0<(c[vb>>2]|0)>>>0)break;c[Vb>>2]=c[bc>>2];c[c[tb>>2]>>2]=(c[yb>>2]|0)-(c[ac>>2]|0)+2;c[(c[tb>>2]|0)+4>>2]=c[bc>>2];c[Tb>>2]=1;if(!(((c[bc>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[bc>>2]|0)|0)==(c[pb>>2]|0))|0))break;c[(c[mb>>2]|0)+24>>2]=(c[yb>>2]|0)+1;c[lb>>2]=1;break h;}}while(0);c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2]=c[yb>>2];while(1){Zh=c[Ub>>2]|0;c[Ub>>2]=Zh+-1;if(!Zh)break;if((c[Db>>2]|0)>>>0<=(c[Ob>>2]|0)>>>0)break;c[ec>>2]=(c[Eb>>2]|0)+((c[Db>>2]&c[Gb>>2])<<1<<2);c[fc>>2]=(c[Hb>>2]|0)>>>0<(c[Ib>>2]|0)>>>0?c[Hb>>2]|0:c[Ib>>2]|0;do{if(c[qb>>2]|0){if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=355;break;}c[gc>>2]=(c[Jb>>2]|0)+(c[Db>>2]|0);Zh=Uj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0<(c[Kb>>2]|0)>>>0)break;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);}else dj=355;}while(0);if((dj|0)==355){dj=0;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);Zh=Tj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;}if((c[fc>>2]|0)>>>0>(c[Vb>>2]|0)>>>0){if((c[fc>>2]|0)>>>0>((c[Rb>>2]|0)-(c[Db>>2]|0)|0)>>>0)c[Rb>>2]=(c[Db>>2]|0)+(c[fc>>2]|0);c[Vb>>2]=c[fc>>2];c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[yb>>2]|0)-(c[Db>>2]|0)+2;c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[fc>>2];c[Tb>>2]=(c[Tb>>2]|0)+1;if((c[fc>>2]|0)>>>0>4096)break;if(((c[ob>>2]|0)+(c[fc>>2]|0)|0)==(c[pb>>2]|0))break;}Zh=c[Db>>2]|0;if((d[(c[gc>>2]|0)+(c[fc>>2]|0)>>0]|0|0)<(d[(c[ob>>2]|0)+(c[fc>>2]|0)>>0]|0|0)){c[c[Pb>>2]>>2]=Zh;c[Hb>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=365;break;}c[Pb>>2]=(c[ec>>2]|0)+4;c[Db>>2]=c[(c[ec>>2]|0)+4>>2];}else{c[c[Qb>>2]>>2]=Zh;c[Ib>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=368;break;}c[Qb>>2]=c[ec>>2];c[Db>>2]=c[c[ec>>2]>>2];}}if((dj|0)==365){dj=0;c[Pb>>2]=Sb;}else if((dj|0)==368){dj=0;c[Qb>>2]=Sb;}c[c[Qb>>2]>>2]=0;c[c[Pb>>2]>>2]=0;c[(c[mb>>2]|0)+24>>2]=(c[Rb>>2]|0)-8;c[lb>>2]=c[Tb>>2];}}while(0);c[md>>2]=c[lb>>2];break d;}}}}while(0);c[Bi>>2]=c[md>>2];if(c[Bi>>2]|0){c[Di>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)+4>>2];if(((c[Di>>2]|0)>>>0>(c[$h>>2]|0)>>>0?1:((c[ei>>2]|0)+(c[Di>>2]|0)|0)>>>0>=4096)|0){dj=481;break b;}c[Ci>>2]=0;while(1){if((c[Ci>>2]|0)>>>0>=(c[Bi>>2]|0)>>>0)break c;c[Ei>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)>>2];pm(Fi,(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0,c[Ei>>2]|0,c[xi>>2]|0);c[Gi>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)+4>>2];if((c[Ci>>2]|0)>>>0>0)Dj=(c[(c[ci>>2]|0)+((c[Ci>>2]|0)-1<<3)+4>>2]|0)+1|0;else Dj=c[ai>>2]|0;c[Hi>>2]=Dj;c[Ii>>2]=c[Gi>>2];i:while(1){if((c[Ii>>2]|0)>>>0<(c[Hi>>2]|0)>>>0)break;c[Ji>>2]=(c[ei>>2]|0)+(c[Ii>>2]|0);Zh=c[Ai>>2]|0;Zi=c[Ii>>2]|0;Ph=c[Th>>2]|0;Qh=c[Rh>>2]|0;c[k>>2]=c[Ei>>2];c[m>>2]=Zi;c[n>>2]=Ph;c[o>>2]=Qh;c[q>>2]=qm((c[k>>2]|0)+1|0)|0;c[r>>2]=(c[m>>2]|0)-3;if(c[(c[n>>2]|0)+56>>2]|0){Qh=(qm((c[r>>2]|0)+1|0)|0)+16|0;c[j>>2]=Qh+(c[q>>2]|0);}else{Qh=(c[q>>2]|0)+(c[(c[n>>2]|0)+52>>2]|0)|0;c[p>>2]=Qh-(qm((c[(c[(c[n>>2]|0)+12>>2]|0)+(c[q>>2]<<2)>>2]|0)+1|0)|0);if((c[o>>2]|0)<2&(c[q>>2]|0)>>>0>=20)c[p>>2]=(c[p>>2]|0)+((c[q>>2]|0)-19<<1);c[s>>2]=rm(c[r>>2]|0)|0;Qh=(c[5840+(c[s>>2]<<2)>>2]|0)+(c[(c[n>>2]|0)+48>>2]|0)|0;Ph=Qh-(qm((c[(c[(c[n>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0)+1|0)|0)|0;c[p>>2]=(c[p>>2]|0)+Ph;c[j>>2]=c[p>>2];}c[Ki>>2]=Zh+(c[j>>2]|0);do{if((c[Ji>>2]|0)>>>0<=(c[fi>>2]|0)>>>0){if((c[Ki>>2]|0)<(c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]|0)){dj=496;break;}if(!(c[Rh>>2]|0))break i;}else dj=496;}while(0);if((dj|0)==496){dj=0;while(1){if((c[fi>>2]|0)>>>0>=(c[Ji>>2]|0)>>>0)break;c[(c[bi>>2]|0)+(((c[fi>>2]|0)+1|0)*28|0)>>2]=1073741824;c[fi>>2]=(c[fi>>2]|0)+1;}c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+8>>2]=c[Ii>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+4>>2]=c[Ei>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+12>>2]=c[yi>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]=c[Ki>>2];Zh=(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+16|0;c[Zh>>2]=c[Fi>>2];c[Zh+4>>2]=c[Fi+4>>2];c[Zh+8>>2]=c[Fi+8>>2];}c[Ii>>2]=(c[Ii>>2]|0)+-1;}c[Ci>>2]=(c[Ci>>2]|0)+1;}}}}while(0);c[ei>>2]=(c[ei>>2]|0)+1;}if((dj|0)==481){dj=0;c[gi>>2]=c[Di>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)>>2];c[fi>>2]=(c[ei>>2]|0)+1;break;}else if((dj|0)==504){dj=0;c[gi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+8>>2];c[hi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+4>>2];c[ei>>2]=(c[fi>>2]|0)-(c[gi>>2]|0);break;}}else{c[gi>>2]=c[mi>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)>>2];c[ei>>2]=0;c[fi>>2]=1;}}while(0);c[Li>>2]=c[gi>>2];c[Mi>>2]=c[hi>>2];c[Ni>>2]=c[ei>>2];while(1){c[Oi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2];c[Pi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2]=c[Li>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2]=c[Mi>>2];c[Li>>2]=c[Oi>>2];c[Mi>>2]=c[Pi>>2];if((c[Oi>>2]|0)>>>0>(c[Ni>>2]|0)>>>0)break;c[Ni>>2]=(c[Ni>>2]|0)-(c[Oi>>2]|0);}c[Qi>>2]=0;while(1){if((c[Qi>>2]|0)>>>0>=(c[fi>>2]|0)>>>0)break;c[Ri>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[Si>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+8>>2];c[Ti>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+4>>2];if((c[Si>>2]|0)==1){c[Vh>>2]=(c[Vh>>2]|0)+1;c[Qi>>2]=(c[Qi>>2]|0)+1;continue;}c[Qi>>2]=(c[Qi>>2]|0)+(c[Si>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+(c[Si>>2]|0);if((c[Ti>>2]|0)>>>0<3){c[Ui>>2]=(c[Ti>>2]|0)+((c[Ri>>2]|0)==0&1);if(c[Ui>>2]|0){Zh=c[Nh>>2]|0;if((c[Ui>>2]|0)==3)Ej=(c[Zh>>2]|0)-1|0;else Ej=c[Zh+(c[Ui>>2]<<2)>>2]|0;c[Vi>>2]=Ej;if((c[Ui>>2]|0)>>>0>=2)c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=c[Vi>>2];}}else{c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=(c[Ti>>2]|0)-2;}vm(c[Th>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,c[Si>>2]|0);wm(c[Mh>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,(c[Si>>2]|0)-3|0);c[Wh>>2]=c[Vh>>2];}xm(c[Th>>2]|0);}l=i;return(c[Xh>>2]|0)-(c[Wh>>2]|0)|0;}function lm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=e;c[(c[g>>2]|0)+56>>2]=0;if(c[(c[g>>2]|0)+28>>2]|0){c[(c[g>>2]|0)+24>>2]=0;c[k>>2]=0;while(1){m=c[g>>2]|0;if((c[k>>2]|0)>>>0>255)break;c[(c[c[g>>2]>>2]|0)+(c[k>>2]<<2)>>2]=1+((c[(c[m>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>5);e=(c[g>>2]|0)+24|0;c[e>>2]=(c[e>>2]|0)+(c[(c[c[g>>2]>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1;}c[m+28>>2]=0;c[k>>2]=0;while(1){n=c[g>>2]|0;if((c[k>>2]|0)>>>0>35)break;c[(c[(c[g>>2]|0)+4>>2]|0)+(c[k>>2]<<2)>>2]=1+((c[(c[n+4>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>5);m=(c[g>>2]|0)+28|0;c[m>>2]=(c[m>>2]|0)+(c[(c[(c[g>>2]|0)+4>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1;}c[n+32>>2]=0;c[k>>2]=0;while(1){o=c[g>>2]|0;if((c[k>>2]|0)>>>0>52)break;c[(c[(c[g>>2]|0)+8>>2]|0)+(c[k>>2]<<2)>>2]=1+((c[(c[o+8>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>4);n=(c[g>>2]|0)+32|0;c[n>>2]=(c[n>>2]|0)+(c[(c[(c[g>>2]|0)+8>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1;}c[o+36>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>31)break;c[(c[(c[g>>2]|0)+12>>2]|0)+(c[k>>2]<<2)>>2]=1+((c[(c[(c[g>>2]|0)+12>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>4);o=(c[g>>2]|0)+36|0;c[o>>2]=(c[o>>2]|0)+(c[(c[(c[g>>2]|0)+12>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1;}p=c[g>>2]|0;xm(p);l=f;return;}if((c[i>>2]|0)>>>0<=1024)c[(c[g>>2]|0)+56>>2]=1;c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>255)break;c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<2)>>2]=0;c[j>>2]=(c[j>>2]|0)+1;}c[j>>2]=0;while(1){q=c[g>>2]|0;if((c[j>>2]|0)>>>0>=(c[i>>2]|0)>>>0)break;k=(c[q>>2]|0)+((d[(c[h>>2]|0)+(c[j>>2]|0)>>0]|0)<<2)|0;c[k>>2]=(c[k>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1;}c[q+24>>2]=0;c[j>>2]=0;while(1){if((c[j>>2]|0)>>>0>255)break;c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<2)>>2]=1+((c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<2)>>2]|0)>>>4);q=(c[g>>2]|0)+24|0;c[q>>2]=(c[q>>2]|0)+(c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<2)>>2]|0);c[j>>2]=(c[j>>2]|0)+1;}c[j>>2]=0;while(1){r=c[g>>2]|0;if((c[j>>2]|0)>>>0>35)break;c[(c[r+4>>2]|0)+(c[j>>2]<<2)>>2]=1;c[j>>2]=(c[j>>2]|0)+1;}c[r+28>>2]=36;c[j>>2]=0;while(1){s=c[g>>2]|0;if((c[j>>2]|0)>>>0>52)break;c[(c[s+8>>2]|0)+(c[j>>2]<<2)>>2]=1;c[j>>2]=(c[j>>2]|0)+1;}c[s+32>>2]=53;c[j>>2]=0;while(1){t=c[g>>2]|0;if((c[j>>2]|0)>>>0>31)break;c[(c[t+12>>2]|0)+(c[j>>2]<<2)>>2]=1;c[j>>2]=(c[j>>2]|0)+1;}c[t+36>>2]=32;p=c[g>>2]|0;xm(p);l=f;return;}function mm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[f>>2]=a;c[g>>2]=b;do{if((c[g>>2]|0)==3){b=(_j()|0)!=0;a=Yj(c[f>>2]|0)|0;if(b){c[e>>2]=a<<8;break;}else{c[e>>2]=a>>>8;break;}}else c[e>>2]=Yj(c[f>>2]|0)|0;}while(0);l=d;return c[e>>2]|0;}function nm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+32|0;e=d+28|0;f=d+24|0;g=d+20|0;h=d+16|0;i=d+12|0;j=d+8|0;k=d+4|0;m=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[e>>2]|0)+40>>2];c[h>>2]=c[(c[e>>2]|0)+32>>2];c[i>>2]=c[(c[e>>2]|0)+4>>2];c[j>>2]=c[(c[e>>2]|0)+28>>2];b=(c[f>>2]|0)-(c[i>>2]|0)|0;c[(c[e>>2]|0)+28>>2]=b;c[k>>2]=b;c[m>>2]=Fm(c[f>>2]|0,c[h>>2]|0)|0;while(1){if((c[j>>2]|0)>>>0>=(c[k>>2]|0)>>>0)break;f=c[j>>2]|0;b=c[g>>2]|0;c[b+((Fm((c[i>>2]|0)+(c[j>>2]|0)|0,c[h>>2]|0)|0)<<2)>>2]=f;c[j>>2]=(c[j>>2]|0)+1;}l=d;return c[(c[g>>2]|0)+(c[m>>2]<<2)>>2]|0;}function om(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=l;l=l+16|0;g=f+12|0;h=f+8|0;i=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Dm(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;h=e+(Cm(c[i>>2]|0,c[j>>2]|0)|0)|0;l=f;return h|0;}function pm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+8|0;k=f+4|0;m=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;if((c[h>>2]|0)>>>0>=3){c[j+8>>2]=c[(c[g>>2]|0)+4>>2];c[j+4>>2]=c[c[g>>2]>>2];c[j>>2]=(c[h>>2]|0)-2;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}c[k>>2]=(c[h>>2]|0)+(c[i>>2]|0);if((c[k>>2]|0)>>>0<=0){i=c[g>>2]|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}i=c[g>>2]|0;if((c[k>>2]|0)==3)n=(c[i>>2]|0)-1|0;else n=c[i+(c[k>>2]<<2)>>2]|0;c[m>>2]=n;n=c[g>>2]|0;if((c[k>>2]|0)>>>0>=2)o=c[n+4>>2]|0;else o=c[n+8>>2]|0;c[j+8>>2]=o;c[j+4>>2]=c[c[g>>2]>>2];c[j>>2]=c[m>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}function qm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function rm(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)>>>0>127){f=(qm(a)|0)+36|0;l=b;return f|0;}else{f=d[3072+a>>0]|0;l=b;return f|0;}return 0;}function sm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Bm(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;c[i>>2]=d+(Em(c[g>>2]|0,c[h>>2]|0)|0);l=e;return c[i>>2]|0;}function tm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;e=Dm(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0,c[j>>2]|0)|0;c[k>>2]=e+(Em(c[i>>2]|0,c[j>>2]|0)|0);l=f;return c[k>>2]|0;}function um(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;d=Bm(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;f=d+(Cm(c[g>>2]|0,c[h>>2]|0)|0)|0;l=e;return f|0;}function vm(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=l;l=l+48|0;i=h+36|0;j=h+32|0;k=h+28|0;m=h+24|0;n=h+20|0;o=h+16|0;p=h+12|0;q=h+8|0;r=h+4|0;s=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=0;while(1){if((c[o>>2]|0)>>>0>=(c[j>>2]|0)>>>0)break;g=(c[c[i>>2]>>2]|0)+((d[(c[k>>2]|0)+(c[o>>2]|0)>>0]|0)<<2)|0;c[g>>2]=(c[g>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+1;}o=(c[i>>2]|0)+24|0;c[o>>2]=(c[o>>2]|0)+(c[j>>2]<<1);c[p>>2]=Am(c[j>>2]|0)|0;j=(c[(c[i>>2]|0)+4>>2]|0)+(c[p>>2]<<2)|0;c[j>>2]=(c[j>>2]|0)+1;j=(c[i>>2]|0)+28|0;c[j>>2]=(c[j>>2]|0)+1;c[q>>2]=qm((c[m>>2]|0)+1|0)|0;m=(c[(c[i>>2]|0)+12>>2]|0)+(c[q>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=(c[i>>2]|0)+36|0;c[m>>2]=(c[m>>2]|0)+1;c[r>>2]=(c[n>>2]|0)-3;c[s>>2]=rm(c[r>>2]|0)|0;r=(c[(c[i>>2]|0)+8>>2]|0)+(c[s>>2]<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=(c[i>>2]|0)+32|0;c[r>>2]=(c[r>>2]|0)+1;l=h;return;}function wm(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;ym(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function xm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=qm((c[(c[d>>2]|0)+24>>2]|0)+1|0)|0;c[(c[d>>2]|0)+40>>2]=a;a=qm((c[(c[d>>2]|0)+28>>2]|0)+1|0)|0;c[(c[d>>2]|0)+44>>2]=a;a=qm((c[(c[d>>2]|0)+32>>2]|0)+1|0)|0;c[(c[d>>2]|0)+48>>2]=a;a=qm((c[(c[d>>2]|0)+36>>2]|0)+1|0)|0;c[(c[d>>2]|0)+52>>2]=a;l=b;return;}function ym(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{zm(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function zm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Am(a){a=a|0;var b=0,e=0,f=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;if((c[e>>2]|0)>>>0>63){f=(qm(a)|0)+19|0;l=b;return f|0;}else{f=d[3008+a>>0]|0;l=b;return f|0;}return 0;}function Bm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f+8|0;k=f+4|0;m=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;e=c[i>>2]|0;if(c[(c[j>>2]|0)+56>>2]|0){c[g>>2]=e*6;n=c[g>>2]|0;l=f;return n|0;}if(!e){c[g>>2]=0;n=c[g>>2]|0;l=f;return n|0;}c[m>>2]=N(c[i>>2]|0,c[(c[j>>2]|0)+40>>2]|0)|0;c[k>>2]=0;while(1){if((c[k>>2]|0)>>>0>=(c[i>>2]|0)>>>0)break;e=qm((c[(c[c[j>>2]>>2]|0)+((d[(c[h>>2]|0)+(c[k>>2]|0)>>0]|0)<<2)>>2]|0)+1|0)|0;c[m>>2]=(c[m>>2]|0)-e;c[k>>2]=(c[k>>2]|0)+1;}c[g>>2]=c[m>>2];n=c[g>>2]|0;l=f;return n|0;}function Cm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;if(c[(c[g>>2]|0)+56>>2]|0){c[e>>2]=qm(b+1|0)|0;j=c[e>>2]|0;l=d;return j|0;}else{c[h>>2]=Am(b)|0;b=(c[5696+(c[h>>2]<<2)>>2]|0)+(c[(c[g>>2]|0)+44>>2]|0)|0;c[i>>2]=b-(qm((c[(c[(c[g>>2]|0)+4>>2]|0)+(c[h>>2]<<2)>>2]|0)+1|0)|0);c[e>>2]=c[i>>2];j=c[e>>2]|0;l=d;return j|0;}return 0;}function Dm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;if((c[h>>2]|0)==(c[c[g>>2]>>2]|0)){c[k>>2]=c[(c[g>>2]|0)+8>>2];c[n>>2]=(c[h>>2]|0)+(c[(c[g>>2]|0)+4>>2]|0);c[m>>2]=(c[i>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);}else{c[k>>2]=0;c[n>>2]=c[h>>2];c[m>>2]=c[i>>2];}e=c[k>>2]|0;c[o>>2]=e+(Bm(c[n>>2]|0,c[m>>2]|0,c[j>>2]|0)|0);c[c[g>>2]>>2]=c[h>>2];c[(c[g>>2]|0)+4>>2]=c[i>>2];c[(c[g>>2]|0)+8>>2]=c[o>>2];l=f;return c[o>>2]|0;}function Em(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+16|0;f=d+12|0;g=d+8|0;h=d+4|0;i=d;c[f>>2]=a;c[g>>2]=b;b=c[f>>2]|0;if(c[(c[g>>2]|0)+56>>2]|0){c[e>>2]=qm(b+1|0)|0;j=c[e>>2]|0;l=d;return j|0;}else{c[h>>2]=Am(b)|0;b=c[5696+(c[h>>2]<<2)>>2]|0;f=b+(qm((c[c[(c[g>>2]|0)+4>>2]>>2]|0)+1|0)|0)|0;c[i>>2]=f-(qm((c[(c[(c[g>>2]|0)+4>>2]|0)+(c[h>>2]<<2)>>2]|0)+1|0)|0);c[e>>2]=c[i>>2];j=c[e>>2]|0;l=d;return j|0;}return 0;}function Fm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=Gm(c[e>>2]|0)|0;e=Hm(b,c[f>>2]|0)|0;l=d;return e|0;}function Gm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(_j()|0)!=0;f=Yj(c[e>>2]|0)|0;if(a){c[d>>2]=f;g=c[d>>2]|0;l=b;return g|0;}else{c[d>>2]=Im(f)|0;g=c[d>>2]|0;l=b;return g|0;}return 0;}function Hm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=N(c[e>>2]<<8,506832829)|0;l=d;return b>>>(32-(c[f>>2]|0)|0)|0;}function Im(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[d>>2]<<24&-16777216|c[d>>2]<<8&16711680|(c[d>>2]|0)>>>8&65280|(c[d>>2]|0)>>>24&255|0;}function Jm(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,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;switch(c[(c[j>>2]|0)+16>>2]|0){case 7:case 6:{c[h>>2]=Vm(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,6)|0;o=c[h>>2]|0;l=g;return o|0;}case 5:{c[h>>2]=Vm(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,5)|0;o=c[h>>2]|0;l=g;return o|0;}default:{c[h>>2]=Vm(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,4)|0;o=c[h>>2]|0;l=g;return o|0;}}return 0;}function Km(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,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,Ka=0,La=0;h=l;l=l+320|0;i=h+308|0;j=h+304|0;k=h+300|0;m=h+296|0;n=h+292|0;o=h+288|0;p=h+284|0;q=h+280|0;r=h+276|0;s=h+272|0;t=h+268|0;u=h+264|0;v=h+260|0;w=h+256|0;x=h+252|0;y=h+248|0;z=h+244|0;A=h+240|0;B=h+236|0;C=h+232|0;D=h+228|0;E=h+224|0;F=h+220|0;G=h+216|0;H=h+212|0;I=h+208|0;J=h+204|0;K=h+200|0;L=h+196|0;M=h+192|0;N=h+188|0;O=h+184|0;P=h+180|0;Q=h+176|0;R=h+172|0;S=h+168|0;T=h+164|0;U=h+160|0;V=h+156|0;W=h+152|0;X=h+148|0;Y=h+144|0;Z=h+140|0;_=h+136|0;$=h+132|0;aa=h+128|0;ba=h+124|0;ca=h+120|0;da=h+116|0;ea=h+112|0;fa=h+108|0;ga=h+104|0;ha=h+100|0;ia=h+96|0;ja=h+92|0;ka=h+88|0;la=h+84|0;ma=h+80|0;na=h+76|0;oa=h+72|0;pa=h+68|0;qa=h+64|0;ra=h+60|0;sa=h+56|0;ta=h+52|0;ua=h+48|0;va=h+44|0;wa=h+40|0;xa=h+36|0;ya=h+32|0;za=h+28|0;Aa=h+24|0;Ba=h+20|0;Ca=h+16|0;Da=h+12|0;Ea=h+8|0;Fa=h+4|0;Ga=h;c[Ca>>2]=a;c[Da>>2]=b;c[Ea>>2]=e;c[Fa>>2]=f;c[Ga>>2]=g;switch(c[(c[Da>>2]|0)+16>>2]|0){case 7:case 6:{g=c[Da>>2]|0;f=c[Ea>>2]|0;e=c[Fa>>2]|0;b=c[Ga>>2]|0;c[i>>2]=c[Ca>>2];c[j>>2]=g;c[k>>2]=f;c[m>>2]=e;c[n>>2]=b;c[o>>2]=6;c[p>>2]=1;c[q>>2]=c[(c[i>>2]|0)+44>>2];c[r>>2]=1<>2]|0)+4>>2];c[s>>2]=(c[r>>2]|0)-1;c[t>>2]=c[(c[i>>2]|0)+4>>2];c[u>>2]=c[(c[i>>2]|0)+8>>2];c[v>>2]=c[(c[i>>2]|0)+12>>2];c[w>>2]=(c[t>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[y>>2]=c[(c[i>>2]|0)+16>>2];c[z>>2]=(c[k>>2]|0)-(c[t>>2]|0);if((c[z>>2]|0)>>>0>(c[r>>2]|0)>>>0)Ha=(c[z>>2]|0)-(c[r>>2]|0)|0;else Ha=0;c[A>>2]=Ha;c[B>>2]=1<>2]|0)+12>>2];c[C>>2]=3;c[D>>2]=mk(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0)|0;while(1){if(!(((c[B>>2]|0)>>>0>0?(c[D>>2]|0)>>>0>(c[y>>2]|0)>>>0:0)|0))break;c[E>>2]=0;if(c[p>>2]|0?(c[D>>2]|0)>>>0<(c[v>>2]|0)>>>0:0){c[G>>2]=(c[u>>2]|0)+(c[D>>2]|0);o=Bk(c[G>>2]|0)|0;if((o|0)==(Bk(c[k>>2]|0)|0))c[E>>2]=(Lm((c[k>>2]|0)+4|0,(c[G>>2]|0)+4|0,c[m>>2]|0,c[x>>2]|0,c[w>>2]|0)|0)+4;}else Ia=38;if((Ia|0)==38?(Ia=0,c[F>>2]=(c[t>>2]|0)+(c[D>>2]|0),(d[(c[F>>2]|0)+(c[C>>2]|0)>>0]|0|0)==(d[(c[k>>2]|0)+(c[C>>2]|0)>>0]|0|0)):0)c[E>>2]=Qm(c[k>>2]|0,c[F>>2]|0,c[m>>2]|0)|0;if((c[E>>2]|0)>>>0>(c[C>>2]|0)>>>0?(c[C>>2]=c[E>>2],c[c[n>>2]>>2]=(c[z>>2]|0)-(c[D>>2]|0)+2,((c[k>>2]|0)+(c[E>>2]|0)|0)==(c[m>>2]|0)):0)break;if((c[D>>2]|0)>>>0<=(c[A>>2]|0)>>>0)break;c[D>>2]=c[(c[q>>2]|0)+((c[D>>2]&c[s>>2])<<2)>>2];c[B>>2]=(c[B>>2]|0)+-1;}c[Ba>>2]=c[C>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}case 5:{C=c[Da>>2]|0;B=c[Ea>>2]|0;s=c[Fa>>2]|0;D=c[Ga>>2]|0;c[H>>2]=c[Ca>>2];c[I>>2]=C;c[J>>2]=B;c[K>>2]=s;c[L>>2]=D;c[M>>2]=5;c[N>>2]=1;c[O>>2]=c[(c[H>>2]|0)+44>>2];c[P>>2]=1<>2]|0)+4>>2];c[Q>>2]=(c[P>>2]|0)-1;c[R>>2]=c[(c[H>>2]|0)+4>>2];c[S>>2]=c[(c[H>>2]|0)+8>>2];c[T>>2]=c[(c[H>>2]|0)+12>>2];c[U>>2]=(c[R>>2]|0)+(c[T>>2]|0);c[V>>2]=(c[S>>2]|0)+(c[T>>2]|0);c[W>>2]=c[(c[H>>2]|0)+16>>2];c[X>>2]=(c[J>>2]|0)-(c[R>>2]|0);if((c[X>>2]|0)>>>0>(c[P>>2]|0)>>>0)Ka=(c[X>>2]|0)-(c[P>>2]|0)|0;else Ka=0;c[Y>>2]=Ka;c[Z>>2]=1<>2]|0)+12>>2];c[_>>2]=3;c[$>>2]=mk(c[H>>2]|0,c[I>>2]|0,c[J>>2]|0,c[M>>2]|0)|0;while(1){if(!(((c[Z>>2]|0)>>>0>0?(c[$>>2]|0)>>>0>(c[W>>2]|0)>>>0:0)|0))break;c[aa>>2]=0;if(c[N>>2]|0?(c[$>>2]|0)>>>0<(c[T>>2]|0)>>>0:0){c[ca>>2]=(c[S>>2]|0)+(c[$>>2]|0);M=Bk(c[ca>>2]|0)|0;if((M|0)==(Bk(c[J>>2]|0)|0))c[aa>>2]=(Lm((c[J>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[K>>2]|0,c[V>>2]|0,c[U>>2]|0)|0)+4;}else Ia=23;if((Ia|0)==23?(Ia=0,c[ba>>2]=(c[R>>2]|0)+(c[$>>2]|0),(d[(c[ba>>2]|0)+(c[_>>2]|0)>>0]|0|0)==(d[(c[J>>2]|0)+(c[_>>2]|0)>>0]|0|0)):0)c[aa>>2]=Qm(c[J>>2]|0,c[ba>>2]|0,c[K>>2]|0)|0;if((c[aa>>2]|0)>>>0>(c[_>>2]|0)>>>0?(c[_>>2]=c[aa>>2],c[c[L>>2]>>2]=(c[X>>2]|0)-(c[$>>2]|0)+2,((c[J>>2]|0)+(c[aa>>2]|0)|0)==(c[K>>2]|0)):0)break;if((c[$>>2]|0)>>>0<=(c[Y>>2]|0)>>>0)break;c[$>>2]=c[(c[O>>2]|0)+((c[$>>2]&c[Q>>2])<<2)>>2];c[Z>>2]=(c[Z>>2]|0)+-1;}c[Ba>>2]=c[_>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}default:{_=c[Da>>2]|0;Da=c[Ea>>2]|0;Ea=c[Fa>>2]|0;Fa=c[Ga>>2]|0;c[da>>2]=c[Ca>>2];c[ea>>2]=_;c[fa>>2]=Da;c[ga>>2]=Ea;c[ha>>2]=Fa;c[ia>>2]=4;c[ja>>2]=1;c[ka>>2]=c[(c[da>>2]|0)+44>>2];c[la>>2]=1<>2]|0)+4>>2];c[ma>>2]=(c[la>>2]|0)-1;c[na>>2]=c[(c[da>>2]|0)+4>>2];c[oa>>2]=c[(c[da>>2]|0)+8>>2];c[pa>>2]=c[(c[da>>2]|0)+12>>2];c[qa>>2]=(c[na>>2]|0)+(c[pa>>2]|0);c[ra>>2]=(c[oa>>2]|0)+(c[pa>>2]|0);c[sa>>2]=c[(c[da>>2]|0)+16>>2];c[ta>>2]=(c[fa>>2]|0)-(c[na>>2]|0);if((c[ta>>2]|0)>>>0>(c[la>>2]|0)>>>0)La=(c[ta>>2]|0)-(c[la>>2]|0)|0;else La=0;c[ua>>2]=La;c[va>>2]=1<>2]|0)+12>>2];c[wa>>2]=3;c[xa>>2]=mk(c[da>>2]|0,c[ea>>2]|0,c[fa>>2]|0,c[ia>>2]|0)|0;while(1){if(!(((c[va>>2]|0)>>>0>0?(c[xa>>2]|0)>>>0>(c[sa>>2]|0)>>>0:0)|0))break;c[ya>>2]=0;if(c[ja>>2]|0?(c[xa>>2]|0)>>>0<(c[pa>>2]|0)>>>0:0){c[Aa>>2]=(c[oa>>2]|0)+(c[xa>>2]|0);ia=Bk(c[Aa>>2]|0)|0;if((ia|0)==(Bk(c[fa>>2]|0)|0))c[ya>>2]=(Lm((c[fa>>2]|0)+4|0,(c[Aa>>2]|0)+4|0,c[ga>>2]|0,c[ra>>2]|0,c[qa>>2]|0)|0)+4;}else Ia=8;if((Ia|0)==8?(Ia=0,c[za>>2]=(c[na>>2]|0)+(c[xa>>2]|0),(d[(c[za>>2]|0)+(c[wa>>2]|0)>>0]|0|0)==(d[(c[fa>>2]|0)+(c[wa>>2]|0)>>0]|0|0)):0)c[ya>>2]=Qm(c[fa>>2]|0,c[za>>2]|0,c[ga>>2]|0)|0;if((c[ya>>2]|0)>>>0>(c[wa>>2]|0)>>>0?(c[wa>>2]=c[ya>>2],c[c[ha>>2]>>2]=(c[ta>>2]|0)-(c[xa>>2]|0)+2,((c[fa>>2]|0)+(c[ya>>2]|0)|0)==(c[ga>>2]|0)):0)break;if((c[xa>>2]|0)>>>0<=(c[ua>>2]|0)>>>0)break;c[xa>>2]=c[(c[ka>>2]|0)+((c[xa>>2]&c[ma>>2])<<2)>>2];c[va>>2]=(c[va>>2]|0)+-1;}c[Ba>>2]=c[wa>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}}return 0;}function Lm(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,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=Qm(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(Qm((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function Mm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=31-(Q(c[d>>2]|0)|0)|0;l=b;return a|0;}function Nm(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;Om(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function Om(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{Pm(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function Pm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function Qm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=Rm(c[i>>2]|0)|0;c[n>>2]=e^(Rm(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=Sm(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=Rm(c[i>>2]|0)|0;c[o>>2]=e^(Rm(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=Sm(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((Tm()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=Bk(c[i>>2]|0)|0,(o|0)==(Bk(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(Um(c[i>>2]|0)|0)&65535,(o|0)==((Um(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function Rm(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function Sm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(vk()|0)!=0;f=(Tm()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function Tm(){return 0;}function Um(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function Vm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;if((c[m>>2]|0)>>>0<((c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+24>>2]|0)|0)>>>0){c[i>>2]=0;q=c[i>>2]|0;l=h;return q|0;}else{Wm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[p>>2]|0);c[i>>2]=Xm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,1)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function Wm(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=l;l=l+80|0;h=g+64|0;i=g+60|0;j=g+56|0;k=g+48|0;m=g+44|0;n=g+40|0;o=g+36|0;p=g+32|0;q=g+28|0;r=g+24|0;s=g+20|0;t=g+16|0;u=g+12|0;v=g+8|0;w=g+4|0;x=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[g+52>>2]=e;c[k>>2]=f;c[m>>2]=c[(c[h>>2]|0)+36>>2];c[n>>2]=c[(c[i>>2]|0)+8>>2];c[o>>2]=c[(c[h>>2]|0)+44>>2];c[p>>2]=(c[(c[i>>2]|0)+4>>2]|0)-1;c[q>>2]=(1<>2])-1;c[r>>2]=c[(c[h>>2]|0)+4>>2];c[s>>2]=(c[j>>2]|0)-(c[r>>2]|0);c[t>>2]=c[(c[h>>2]|0)+24>>2];while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;c[u>>2]=nk((c[r>>2]|0)+(c[t>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0;c[v>>2]=c[(c[m>>2]|0)+(c[u>>2]<<2)>>2];c[w>>2]=(c[o>>2]|0)+((c[t>>2]&c[q>>2])<<1<<2);c[x>>2]=(c[w>>2]|0)+4;c[(c[m>>2]|0)+(c[u>>2]<<2)>>2]=c[t>>2];c[c[w>>2]>>2]=c[v>>2];c[c[x>>2]>>2]=1;c[t>>2]=(c[t>>2]|0)+1;}c[(c[h>>2]|0)+24>>2]=c[s>>2];l=g;return;}function Xm(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,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;j=l;l=l+176|0;k=j+160|0;m=j+156|0;n=j+152|0;o=j+148|0;p=j+144|0;q=j+140|0;r=j+136|0;s=j+132|0;t=j+128|0;u=j+124|0;v=j+120|0;w=j+116|0;x=j+112|0;y=j+108|0;z=j+104|0;A=j+100|0;B=j+96|0;C=j+92|0;D=j+88|0;E=j+84|0;F=j+80|0;G=j+76|0;H=j+72|0;I=j+68|0;J=j+64|0;K=j+60|0;L=j+56|0;M=j+52|0;N=j+48|0;O=j+44|0;P=j+40|0;Q=j+36|0;R=j+32|0;S=j+28|0;T=j+24|0;U=j+20|0;V=j+16|0;W=j+12|0;X=j+8|0;Y=j+4|0;Z=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[(c[k>>2]|0)+36>>2];c[t>>2]=c[(c[m>>2]|0)+8>>2];c[u>>2]=nk(c[n>>2]|0,c[t>>2]|0,c[q>>2]|0)|0;c[v>>2]=c[(c[s>>2]|0)+(c[u>>2]<<2)>>2];c[w>>2]=c[(c[k>>2]|0)+4>>2];c[x>>2]=(c[n>>2]|0)-(c[w>>2]|0);c[y>>2]=c[(c[k>>2]|0)+16>>2];c[z>>2]=c[(c[k>>2]|0)+44>>2];c[A>>2]=(c[(c[m>>2]|0)+4>>2]|0)-1;c[B>>2]=(1<>2])-1;if((c[B>>2]|0)>>>0>=(c[x>>2]|0)>>>0)_=0;else _=(c[x>>2]|0)-(c[B>>2]|0)|0;c[C>>2]=_;c[D>>2]=(c[C>>2]|0)>>>0>(c[y>>2]|0)>>>0?c[C>>2]|0:c[y>>2]|0;c[E>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2);c[F>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2)+4;c[G>>2]=1<>2]|0)+12>>2];c[H>>2]=c[G>>2];c[I>>2]=0;while(1){if((c[v>>2]|0)>>>0<=(c[D>>2]|0)>>>0)break;if(!((c[H>>2]|0)>>>0>1?(c[c[F>>2]>>2]|0)==1:0))break;c[c[F>>2]>>2]=c[I>>2];c[I>>2]=c[v>>2];c[v>>2]=c[c[E>>2]>>2];c[E>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2);c[F>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2)+4;c[H>>2]=(c[H>>2]|0)+-1;}if((c[v>>2]|0)>>>0>(c[D>>2]|0)>>>0?(c[c[F>>2]>>2]|0)==1:0){c[c[F>>2]>>2]=0;c[c[E>>2]>>2]=0;}c[v>>2]=c[I>>2];while(1){if(!(c[v>>2]|0))break;c[J>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2)+4;c[K>>2]=c[c[J>>2]>>2];Ym(c[k>>2]|0,c[m>>2]|0,c[v>>2]|0,c[o>>2]|0,c[H>>2]|0,c[D>>2]|0,c[r>>2]|0);c[v>>2]=c[K>>2];c[H>>2]=(c[H>>2]|0)+1;}c[L>>2]=0;c[M>>2]=0;c[N>>2]=c[(c[k>>2]|0)+8>>2];c[O>>2]=c[(c[k>>2]|0)+12>>2];c[P>>2]=(c[N>>2]|0)+(c[O>>2]|0);c[Q>>2]=(c[w>>2]|0)+(c[O>>2]|0);c[R>>2]=(c[z>>2]|0)+((c[x>>2]&c[B>>2])<<1<<2);c[S>>2]=(c[z>>2]|0)+((c[x>>2]&c[B>>2])<<1<<2)+4;c[T>>2]=(c[x>>2]|0)+8+1;c[V>>2]=0;c[v>>2]=c[(c[s>>2]|0)+(c[u>>2]<<2)>>2];c[(c[s>>2]|0)+(c[u>>2]<<2)>>2]=c[x>>2];while(1){u=c[G>>2]|0;c[G>>2]=u+-1;if(!u)break;if((c[v>>2]|0)>>>0<=(c[y>>2]|0)>>>0)break;c[W>>2]=(c[z>>2]|0)+((c[v>>2]&c[B>>2])<<1<<2);c[X>>2]=(c[L>>2]|0)>>>0<(c[M>>2]|0)>>>0?c[L>>2]|0:c[M>>2]|0;if(c[r>>2]|0?((c[v>>2]|0)+(c[X>>2]|0)|0)>>>0<(c[O>>2]|0)>>>0:0){c[Y>>2]=(c[N>>2]|0)+(c[v>>2]|0);u=Lm((c[n>>2]|0)+(c[X>>2]|0)|0,(c[Y>>2]|0)+(c[X>>2]|0)|0,c[o>>2]|0,c[P>>2]|0,c[Q>>2]|0)|0;c[X>>2]=(c[X>>2]|0)+u;if(((c[v>>2]|0)+(c[X>>2]|0)|0)>>>0>=(c[O>>2]|0)>>>0)c[Y>>2]=(c[w>>2]|0)+(c[v>>2]|0);}else{c[Y>>2]=(c[w>>2]|0)+(c[v>>2]|0);u=Qm((c[n>>2]|0)+(c[X>>2]|0)|0,(c[Y>>2]|0)+(c[X>>2]|0)|0,c[o>>2]|0)|0;c[X>>2]=(c[X>>2]|0)+u;}if((c[X>>2]|0)>>>0>(c[V>>2]|0)>>>0){if((c[X>>2]|0)>>>0>((c[T>>2]|0)-(c[v>>2]|0)|0)>>>0)c[T>>2]=(c[v>>2]|0)+(c[X>>2]|0);u=(c[X>>2]|0)-(c[V>>2]|0)<<2;s=Mm((c[x>>2]|0)-(c[v>>2]|0)+1|0)|0;if((u|0)>(s-(Mm((c[c[p>>2]>>2]|0)+1|0)|0)|0)){c[V>>2]=c[X>>2];c[c[p>>2]>>2]=2+(c[x>>2]|0)-(c[v>>2]|0);}if(((c[n>>2]|0)+(c[X>>2]|0)|0)==(c[o>>2]|0))break;}s=c[v>>2]|0;if((d[(c[Y>>2]|0)+(c[X>>2]|0)>>0]|0|0)<(d[(c[n>>2]|0)+(c[X>>2]|0)>>0]|0|0)){c[c[R>>2]>>2]=s;c[L>>2]=c[X>>2];if((c[v>>2]|0)>>>0<=(c[C>>2]|0)>>>0){$=29;break;}c[R>>2]=(c[W>>2]|0)+4;c[v>>2]=c[(c[W>>2]|0)+4>>2];}else{c[c[S>>2]>>2]=s;c[M>>2]=c[X>>2];if((c[v>>2]|0)>>>0<=(c[C>>2]|0)>>>0){$=32;break;}c[S>>2]=c[W>>2];c[v>>2]=c[c[W>>2]>>2];}}if(($|0)==29)c[R>>2]=U;else if(($|0)==32)c[S>>2]=U;c[c[S>>2]>>2]=0;c[c[R>>2]>>2]=0;c[(c[k>>2]|0)+24>>2]=(c[T>>2]|0)-8;if((c[V>>2]|0)>>>0<3){aa=c[V>>2]|0;l=j;return aa|0;}c[Z>>2]=(c[x>>2]|0)-((c[c[p>>2]>>2]|0)-2);aa=c[V>>2]|0;l=j;return aa|0;}function Ym(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,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;j=l;l=l+112|0;k=j+108|0;m=j+104|0;n=j+100|0;o=j+96|0;p=j+92|0;q=j+88|0;r=j+84|0;s=j+80|0;t=j+76|0;u=j+72|0;v=j+68|0;w=j+64|0;x=j+60|0;y=j+56|0;z=j+52|0;A=j+48|0;B=j+44|0;C=j+40|0;D=j+36|0;E=j+32|0;F=j+28|0;G=j+24|0;H=j+20|0;I=j+16|0;J=j+12|0;K=j+8|0;L=j+4|0;M=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[(c[k>>2]|0)+44>>2];c[t>>2]=(c[(c[m>>2]|0)+4>>2]|0)-1;c[u>>2]=(1<>2])-1;c[v>>2]=0;c[w>>2]=0;c[x>>2]=c[(c[k>>2]|0)+4>>2];c[y>>2]=c[(c[k>>2]|0)+8>>2];c[z>>2]=c[(c[k>>2]|0)+12>>2];c[A>>2]=(c[n>>2]|0)>>>0>=(c[z>>2]|0)>>>0?(c[x>>2]|0)+(c[n>>2]|0)|0:(c[y>>2]|0)+(c[n>>2]|0)|0;c[B>>2]=(c[n>>2]|0)>>>0>=(c[z>>2]|0)>>>0?c[o>>2]|0:(c[y>>2]|0)+(c[z>>2]|0)|0;c[C>>2]=(c[y>>2]|0)+(c[z>>2]|0);c[D>>2]=(c[x>>2]|0)+(c[z>>2]|0);c[F>>2]=(c[s>>2]|0)+((c[n>>2]&c[u>>2])<<1<<2);c[G>>2]=(c[F>>2]|0)+4;c[H>>2]=c[c[F>>2]>>2];c[J>>2]=c[(c[k>>2]|0)+16>>2];while(1){k=c[p>>2]|0;c[p>>2]=k+-1;if(!k){N=23;break;}if((c[H>>2]|0)>>>0<=(c[J>>2]|0)>>>0){N=23;break;}c[K>>2]=(c[s>>2]|0)+((c[H>>2]&c[u>>2])<<1<<2);c[L>>2]=(c[v>>2]|0)>>>0<(c[w>>2]|0)>>>0?c[v>>2]|0:c[w>>2]|0;if((c[r>>2]|0?((c[H>>2]|0)+(c[L>>2]|0)|0)>>>0<(c[z>>2]|0)>>>0:0)?(c[n>>2]|0)>>>0>=(c[z>>2]|0)>>>0:0){c[E>>2]=(c[y>>2]|0)+(c[H>>2]|0);k=Lm((c[A>>2]|0)+(c[L>>2]|0)|0,(c[E>>2]|0)+(c[L>>2]|0)|0,c[B>>2]|0,c[C>>2]|0,c[D>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+k;if(((c[H>>2]|0)+(c[L>>2]|0)|0)>>>0>=(c[z>>2]|0)>>>0)c[E>>2]=(c[x>>2]|0)+(c[H>>2]|0);}else{if(c[r>>2]|0?((c[H>>2]|0)+(c[L>>2]|0)|0)>>>0<(c[z>>2]|0)>>>0:0)O=c[y>>2]|0;else O=c[x>>2]|0;c[M>>2]=O;c[E>>2]=(c[M>>2]|0)+(c[H>>2]|0);k=Qm((c[A>>2]|0)+(c[L>>2]|0)|0,(c[E>>2]|0)+(c[L>>2]|0)|0,c[B>>2]|0)|0;c[L>>2]=(c[L>>2]|0)+k;}if(((c[A>>2]|0)+(c[L>>2]|0)|0)==(c[B>>2]|0)){N=23;break;}k=c[H>>2]|0;if((d[(c[E>>2]|0)+(c[L>>2]|0)>>0]|0|0)<(d[(c[A>>2]|0)+(c[L>>2]|0)>>0]|0|0)){c[c[F>>2]>>2]=k;c[v>>2]=c[L>>2];if((c[H>>2]|0)>>>0<=(c[q>>2]|0)>>>0){N=17;break;}c[F>>2]=(c[K>>2]|0)+4;c[H>>2]=c[(c[K>>2]|0)+4>>2];}else{c[c[G>>2]>>2]=k;c[w>>2]=c[L>>2];if((c[H>>2]|0)>>>0<=(c[q>>2]|0)>>>0){N=20;break;}c[G>>2]=c[K>>2];c[H>>2]=c[c[K>>2]>>2];}}if((N|0)==17){c[F>>2]=I;P=c[G>>2]|0;c[P>>2]=0;Q=c[F>>2]|0;c[Q>>2]=0;l=j;return;}else if((N|0)==20){c[G>>2]=I;P=c[G>>2]|0;c[P>>2]=0;Q=c[F>>2]|0;c[Q>>2]=0;l=j;return;}else if((N|0)==23){P=c[G>>2]|0;c[P>>2]=0;Q=c[F>>2]|0;c[Q>>2]=0;l=j;return;}}function Zm(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=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;j=l;l=l+240|0;k=j+224|0;m=j+220|0;n=j+216|0;o=j+212|0;p=j+208|0;q=j+204|0;r=j+200|0;s=j+196|0;t=j+192|0;u=j+188|0;v=j+184|0;w=j+180|0;x=j+176|0;z=j+172|0;A=j+168|0;B=j+164|0;C=j+160|0;D=j+156|0;E=j+152|0;F=j+148|0;G=j+144|0;H=j+140|0;I=j+136|0;J=j+132|0;K=j+128|0;L=j+124|0;M=j+120|0;N=j+116|0;O=j+112|0;P=j+108|0;Q=j+104|0;R=j+100|0;S=j+96|0;T=j+92|0;U=j+88|0;V=j+84|0;W=j+80|0;X=j+76|0;Y=j+72|0;Z=j+68|0;_=j+64|0;$=j+60|0;aa=j+56|0;ba=j+52|0;ca=j+48|0;da=j+44|0;ea=j+40|0;fa=j+36|0;ga=j+32|0;ha=j+28|0;ia=j+24|0;ja=j+20|0;ka=j+16|0;la=j+12|0;ma=j+8|0;na=j+4|0;oa=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=i;c[s>>2]=c[(c[k>>2]|0)+36>>2];c[t>>2]=c[(c[o>>2]|0)+8>>2];c[u>>2]=c[(c[k>>2]|0)+44>>2];c[v>>2]=c[(c[o>>2]|0)+4>>2];c[w>>2]=c[(c[k>>2]|0)+4>>2];c[x>>2]=c[(c[k>>2]|0)+8>>2];c[z>>2]=c[p>>2];c[A>>2]=c[z>>2];c[B>>2]=c[z>>2];c[C>>2]=c[(c[k>>2]|0)+16>>2];c[D>>2]=(c[x>>2]|0)+(c[C>>2]|0);c[E>>2]=c[(c[k>>2]|0)+12>>2];c[F>>2]=(c[w>>2]|0)+(c[E>>2]|0);c[G>>2]=(c[x>>2]|0)+(c[E>>2]|0);c[H>>2]=(c[z>>2]|0)+(c[q>>2]|0);c[I>>2]=(c[H>>2]|0)+-8;c[J>>2]=c[c[n>>2]>>2];c[K>>2]=c[(c[n>>2]|0)+4>>2];a:while(1){if((c[A>>2]|0)>>>0>=(c[I>>2]|0)>>>0)break;c[L>>2]=Dk(c[A>>2]|0,c[v>>2]|0,c[r>>2]|0)|0;c[M>>2]=c[(c[u>>2]|0)+(c[L>>2]<<2)>>2];c[N>>2]=(c[M>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[O>>2]=(c[N>>2]|0)+(c[M>>2]|0);c[P>>2]=Dk(c[A>>2]|0,c[t>>2]|0,8)|0;c[Q>>2]=c[(c[s>>2]|0)+(c[P>>2]<<2)>>2];c[R>>2]=(c[Q>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[S>>2]=(c[R>>2]|0)+(c[Q>>2]|0);c[T>>2]=(c[A>>2]|0)-(c[w>>2]|0);c[U>>2]=(c[T>>2]|0)+1-(c[J>>2]|0);c[V>>2]=(c[U>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[W>>2]=(c[V>>2]|0)+(c[U>>2]|0);q=c[T>>2]|0;c[(c[s>>2]|0)+(c[P>>2]<<2)>>2]=q;c[(c[u>>2]|0)+(c[L>>2]<<2)>>2]=q;if(((c[U>>2]|0)>>>0>(c[C>>2]|0)>>>0?((c[E>>2]|0)-1-(c[U>>2]|0)|0)>>>0>=3:0)|0?(q=Rk(c[W>>2]|0)|0,(q|0)==(Rk((c[A>>2]|0)+1|0)|0)):0){c[Y>>2]=(c[U>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[X>>2]=(_m((c[A>>2]|0)+1+4|0,(c[W>>2]|0)+4|0,c[H>>2]|0,c[Y>>2]|0,c[F>>2]|0)|0)+4;c[A>>2]=(c[A>>2]|0)+1;$m(c[m>>2]|0,(c[A>>2]|0)-(c[B>>2]|0)|0,c[B>>2]|0,0,(c[X>>2]|0)-3|0);}else pa=6;do{if((pa|0)==6){pa=0;if((c[Q>>2]|0)>>>0>(c[C>>2]|0)>>>0?(q=Mk(c[S>>2]|0)|0,z=y,k=Mk(c[A>>2]|0)|0,(q|0)==(k|0)&(z|0)==(y|0)):0){c[Z>>2]=(c[Q>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[_>>2]=(c[Q>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[D>>2]|0:c[F>>2]|0;c[X>>2]=(_m((c[A>>2]|0)+8|0,(c[S>>2]|0)+8|0,c[H>>2]|0,c[Z>>2]|0,c[F>>2]|0)|0)+8;c[$>>2]=(c[T>>2]|0)-(c[Q>>2]|0);while(1){if(!(((c[A>>2]|0)>>>0>(c[B>>2]|0)>>>0?(c[S>>2]|0)>>>0>(c[_>>2]|0)>>>0:0)|0))break;if((d[(c[A>>2]|0)+-1>>0]|0|0)!=(d[(c[S>>2]|0)+-1>>0]|0|0))break;c[A>>2]=(c[A>>2]|0)+-1;c[S>>2]=(c[S>>2]|0)+-1;c[X>>2]=(c[X>>2]|0)+1;}c[K>>2]=c[J>>2];c[J>>2]=c[$>>2];$m(c[m>>2]|0,(c[A>>2]|0)-(c[B>>2]|0)|0,c[B>>2]|0,(c[$>>2]|0)+2|0,(c[X>>2]|0)-3|0);break;}if((c[M>>2]|0)>>>0>(c[C>>2]|0)>>>0?(z=Rk(c[O>>2]|0)|0,(z|0)==(Rk(c[A>>2]|0)|0)):0){c[aa>>2]=Dk((c[A>>2]|0)+1|0,c[t>>2]|0,8)|0;c[ba>>2]=c[(c[s>>2]|0)+(c[aa>>2]<<2)>>2];c[ca>>2]=(c[ba>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[x>>2]|0:c[w>>2]|0;c[da>>2]=(c[ca>>2]|0)+(c[ba>>2]|0);c[(c[s>>2]|0)+(c[aa>>2]<<2)>>2]=(c[T>>2]|0)+1;b:do{if((c[ba>>2]|0)>>>0>(c[C>>2]|0)>>>0?(z=Mk(c[da>>2]|0)|0,k=y,q=Mk((c[A>>2]|0)+1|0)|0,(z|0)==(q|0)&(k|0)==(y|0)):0){c[fa>>2]=(c[ba>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[ga>>2]=(c[ba>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[D>>2]|0:c[F>>2]|0;c[X>>2]=(_m((c[A>>2]|0)+9|0,(c[da>>2]|0)+8|0,c[H>>2]|0,c[fa>>2]|0,c[F>>2]|0)|0)+8;c[A>>2]=(c[A>>2]|0)+1;c[ea>>2]=(c[T>>2]|0)+1-(c[ba>>2]|0);while(1){if(!(((c[A>>2]|0)>>>0>(c[B>>2]|0)>>>0?(c[da>>2]|0)>>>0>(c[ga>>2]|0)>>>0:0)|0))break b;if((d[(c[A>>2]|0)+-1>>0]|0|0)!=(d[(c[da>>2]|0)+-1>>0]|0|0))break b;c[A>>2]=(c[A>>2]|0)+-1;c[da>>2]=(c[da>>2]|0)+-1;c[X>>2]=(c[X>>2]|0)+1;}}else pa=21;}while(0);c:do{if((pa|0)==21){pa=0;c[ha>>2]=(c[M>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[ia>>2]=(c[M>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[D>>2]|0:c[F>>2]|0;c[X>>2]=(_m((c[A>>2]|0)+4|0,(c[O>>2]|0)+4|0,c[H>>2]|0,c[ha>>2]|0,c[F>>2]|0)|0)+4;c[ea>>2]=(c[T>>2]|0)-(c[M>>2]|0);while(1){if(!(((c[A>>2]|0)>>>0>(c[B>>2]|0)>>>0?(c[O>>2]|0)>>>0>(c[ia>>2]|0)>>>0:0)|0))break c;if((d[(c[A>>2]|0)+-1>>0]|0|0)!=(d[(c[O>>2]|0)+-1>>0]|0|0))break c;c[A>>2]=(c[A>>2]|0)+-1;c[O>>2]=(c[O>>2]|0)+-1;c[X>>2]=(c[X>>2]|0)+1;}}}while(0);c[K>>2]=c[J>>2];c[J>>2]=c[ea>>2];$m(c[m>>2]|0,(c[A>>2]|0)-(c[B>>2]|0)|0,c[B>>2]|0,(c[ea>>2]|0)+2|0,(c[X>>2]|0)-3|0);break;}c[A>>2]=(c[A>>2]|0)+(((c[A>>2]|0)-(c[B>>2]|0)>>8)+1);continue a;}}while(0);c[A>>2]=(c[A>>2]|0)+(c[X>>2]|0);c[B>>2]=c[A>>2];d:do{if((c[A>>2]|0)>>>0<=(c[I>>2]|0)>>>0){k=(c[T>>2]|0)+2|0;q=c[u>>2]|0;c[q+((Dk((c[w>>2]|0)+(c[T>>2]|0)+2|0,c[v>>2]|0,c[r>>2]|0)|0)<<2)>>2]=k;k=(c[T>>2]|0)+2|0;q=c[s>>2]|0;c[q+((Dk((c[w>>2]|0)+(c[T>>2]|0)+2|0,c[t>>2]|0,8)|0)<<2)>>2]=k;k=(c[A>>2]|0)+-2-(c[w>>2]|0)|0;q=c[u>>2]|0;c[q+((Dk((c[A>>2]|0)+-2|0,c[v>>2]|0,c[r>>2]|0)|0)<<2)>>2]=k;k=(c[A>>2]|0)+-2-(c[w>>2]|0)|0;q=c[s>>2]|0;c[q+((Dk((c[A>>2]|0)+-2|0,c[t>>2]|0,8)|0)<<2)>>2]=k;while(1){if((c[A>>2]|0)>>>0>(c[I>>2]|0)>>>0)break d;c[ja>>2]=(c[A>>2]|0)-(c[w>>2]|0);c[ka>>2]=(c[ja>>2]|0)-(c[K>>2]|0);c[la>>2]=(c[ka>>2]|0)>>>0<(c[E>>2]|0)>>>0?(c[x>>2]|0)+(c[ka>>2]|0)|0:(c[w>>2]|0)+(c[ka>>2]|0)|0;if(!(((c[ka>>2]|0)>>>0>(c[C>>2]|0)>>>0?((c[E>>2]|0)-1-(c[ka>>2]|0)|0)>>>0>=3:0)|0))break d;k=Rk(c[la>>2]|0)|0;if((k|0)!=(Rk(c[A>>2]|0)|0))break d;c[ma>>2]=(c[ka>>2]|0)>>>0<(c[E>>2]|0)>>>0?c[G>>2]|0:c[H>>2]|0;c[na>>2]=(_m((c[A>>2]|0)+4|0,(c[la>>2]|0)+4|0,c[H>>2]|0,c[ma>>2]|0,c[F>>2]|0)|0)+4;c[oa>>2]=c[K>>2];c[K>>2]=c[J>>2];c[J>>2]=c[oa>>2];$m(c[m>>2]|0,0,c[B>>2]|0,0,(c[na>>2]|0)-3|0);k=c[ja>>2]|0;q=c[u>>2]|0;c[q+((Dk(c[A>>2]|0,c[v>>2]|0,c[r>>2]|0)|0)<<2)>>2]=k;k=c[ja>>2]|0;q=c[s>>2]|0;c[q+((Dk(c[A>>2]|0,c[t>>2]|0,8)|0)<<2)>>2]=k;c[A>>2]=(c[A>>2]|0)+(c[na>>2]|0);c[B>>2]=c[A>>2];}}}while(0);}c[c[n>>2]>>2]=c[J>>2];c[(c[n>>2]|0)+4>>2]=c[K>>2];l=j;return(c[H>>2]|0)-(c[B>>2]|0)|0;}function _m(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,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=cn(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(cn((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function $m(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;an(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function an(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{bn(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function bn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function cn(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=dn(c[i>>2]|0)|0;c[n>>2]=e^(dn(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=en(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=dn(c[i>>2]|0)|0;c[o>>2]=e^(dn(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=en(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((fn()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=Rk(c[i>>2]|0)|0,(o|0)==(Rk(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(gn(c[i>>2]|0)|0)&65535,(o|0)==((gn(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function dn(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function en(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(Lk()|0)!=0;f=(fn()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function fn(){return 0;}function gn(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function hn(a,b,e,f,g,h,i,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,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;k=l;l=l+176|0;m=k+164|0;n=k+160|0;o=k+156|0;p=k+152|0;q=k+148|0;r=k+144|0;s=k+140|0;t=k+136|0;u=k+132|0;v=k+128|0;w=k+124|0;x=k+120|0;y=k+116|0;z=k+112|0;A=k+108|0;B=k+104|0;C=k+100|0;D=k+96|0;E=k+92|0;F=k+88|0;G=k+84|0;H=k+80|0;I=k+76|0;J=k+72|0;K=k+68|0;L=k+64|0;M=k+60|0;N=k+56|0;O=k+52|0;P=k+48|0;Q=k+44|0;R=k+40|0;S=k+36|0;T=k+32|0;U=k+28|0;V=k+24|0;W=k+20|0;X=k+16|0;Y=k+12|0;Z=k+8|0;_=k+4|0;$=k;c[m>>2]=a;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=j;c[u>>2]=c[(c[m>>2]|0)+36>>2];c[v>>2]=c[(c[m>>2]|0)+4>>2];c[w>>2]=c[(c[m>>2]|0)+8>>2];c[x>>2]=c[p>>2];c[y>>2]=c[x>>2];c[z>>2]=c[x>>2];c[A>>2]=c[(c[m>>2]|0)+16>>2];c[B>>2]=(c[w>>2]|0)+(c[A>>2]|0);c[C>>2]=c[(c[m>>2]|0)+12>>2];c[D>>2]=(c[v>>2]|0)+(c[C>>2]|0);c[E>>2]=(c[w>>2]|0)+(c[C>>2]|0);c[F>>2]=(c[x>>2]|0)+(c[q>>2]|0);c[G>>2]=(c[F>>2]|0)+-8;c[H>>2]=c[c[o>>2]>>2];c[I>>2]=c[(c[o>>2]|0)+4>>2];a:while(1){if((c[y>>2]|0)>>>0>=(c[G>>2]|0)>>>0)break;c[J>>2]=Tk(c[y>>2]|0,c[r>>2]|0,c[t>>2]|0)|0;c[K>>2]=c[(c[u>>2]|0)+(c[J>>2]<<2)>>2];c[L>>2]=(c[K>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[w>>2]|0:c[v>>2]|0;c[M>>2]=(c[L>>2]|0)+(c[K>>2]|0);c[N>>2]=(c[y>>2]|0)-(c[v>>2]|0);c[O>>2]=(c[N>>2]|0)+1-(c[H>>2]|0);c[P>>2]=(c[O>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[w>>2]|0:c[v>>2]|0;c[Q>>2]=(c[P>>2]|0)+(c[O>>2]|0);c[(c[u>>2]|0)+(c[J>>2]<<2)>>2]=c[N>>2];if(((c[O>>2]|0)>>>0>(c[A>>2]|0)>>>0?((c[C>>2]|0)-1-(c[O>>2]|0)|0)>>>0>=3:0)|0?(q=fl(c[Q>>2]|0)|0,(q|0)==(fl((c[y>>2]|0)+1|0)|0)):0){c[S>>2]=(c[O>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[E>>2]|0:c[F>>2]|0;c[R>>2]=(jn((c[y>>2]|0)+1+4|0,(c[Q>>2]|0)+4|0,c[F>>2]|0,c[S>>2]|0,c[D>>2]|0)|0)+4;c[y>>2]=(c[y>>2]|0)+1;kn(c[n>>2]|0,(c[y>>2]|0)-(c[z>>2]|0)|0,c[z>>2]|0,0,(c[R>>2]|0)-3|0);}else aa=6;do{if((aa|0)==6){aa=0;if((c[K>>2]|0)>>>0>=(c[A>>2]|0)>>>0?(q=fl(c[M>>2]|0)|0,(q|0)==(fl(c[y>>2]|0)|0)):0){c[T>>2]=(c[K>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[E>>2]|0:c[F>>2]|0;c[U>>2]=(c[K>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[B>>2]|0:c[D>>2]|0;c[R>>2]=(jn((c[y>>2]|0)+4|0,(c[M>>2]|0)+4|0,c[F>>2]|0,c[T>>2]|0,c[D>>2]|0)|0)+4;while(1){if(!(((c[y>>2]|0)>>>0>(c[z>>2]|0)>>>0?(c[M>>2]|0)>>>0>(c[U>>2]|0)>>>0:0)|0))break;if((d[(c[y>>2]|0)+-1>>0]|0|0)!=(d[(c[M>>2]|0)+-1>>0]|0|0))break;c[y>>2]=(c[y>>2]|0)+-1;c[M>>2]=(c[M>>2]|0)+-1;c[R>>2]=(c[R>>2]|0)+1;}c[V>>2]=(c[N>>2]|0)-(c[K>>2]|0);c[I>>2]=c[H>>2];c[H>>2]=c[V>>2];kn(c[n>>2]|0,(c[y>>2]|0)-(c[z>>2]|0)|0,c[z>>2]|0,(c[V>>2]|0)+2|0,(c[R>>2]|0)-3|0);break;}c[y>>2]=(c[y>>2]|0)+(((c[y>>2]|0)-(c[z>>2]|0)>>8)+(c[s>>2]|0));continue a;}}while(0);c[y>>2]=(c[y>>2]|0)+(c[R>>2]|0);c[z>>2]=c[y>>2];b:do{if((c[y>>2]|0)>>>0<=(c[G>>2]|0)>>>0){q=(c[N>>2]|0)+2|0;x=c[u>>2]|0;c[x+((Tk((c[v>>2]|0)+(c[N>>2]|0)+2|0,c[r>>2]|0,c[t>>2]|0)|0)<<2)>>2]=q;q=(c[y>>2]|0)+-2-(c[v>>2]|0)|0;x=c[u>>2]|0;c[x+((Tk((c[y>>2]|0)+-2|0,c[r>>2]|0,c[t>>2]|0)|0)<<2)>>2]=q;while(1){if((c[y>>2]|0)>>>0>(c[G>>2]|0)>>>0)break b;c[W>>2]=(c[y>>2]|0)-(c[v>>2]|0);c[X>>2]=(c[W>>2]|0)-(c[I>>2]|0);c[Y>>2]=(c[X>>2]|0)>>>0<(c[C>>2]|0)>>>0?(c[w>>2]|0)+(c[X>>2]|0)|0:(c[v>>2]|0)+(c[X>>2]|0)|0;if(!(((c[X>>2]|0)>>>0>(c[A>>2]|0)>>>0?((c[C>>2]|0)-1-(c[X>>2]|0)|0)>>>0>=3:0)|0))break b;q=fl(c[Y>>2]|0)|0;if((q|0)!=(fl(c[y>>2]|0)|0))break b;c[Z>>2]=(c[X>>2]|0)>>>0<(c[C>>2]|0)>>>0?c[E>>2]|0:c[F>>2]|0;c[_>>2]=(jn((c[y>>2]|0)+4|0,(c[Y>>2]|0)+4|0,c[F>>2]|0,c[Z>>2]|0,c[D>>2]|0)|0)+4;c[$>>2]=c[I>>2];c[I>>2]=c[H>>2];c[H>>2]=c[$>>2];kn(c[n>>2]|0,0,c[z>>2]|0,0,(c[_>>2]|0)-3|0);q=c[W>>2]|0;x=c[u>>2]|0;c[x+((Tk(c[y>>2]|0,c[r>>2]|0,c[t>>2]|0)|0)<<2)>>2]=q;c[y>>2]=(c[y>>2]|0)+(c[_>>2]|0);c[z>>2]=c[y>>2];}}}while(0);}c[c[o>>2]>>2]=c[H>>2];c[(c[o>>2]|0)+4>>2]=c[I>>2];l=k;return(c[F>>2]|0)-(c[z>>2]|0)|0;}function jn(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,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=nn(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(nn((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function kn(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;ln(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function ln(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{mn(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function mn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function nn(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=on(c[i>>2]|0)|0;c[n>>2]=e^(on(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=pn(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=on(c[i>>2]|0)|0;c[o>>2]=e^(on(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=pn(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((qn()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=fl(c[i>>2]|0)|0,(o|0)==(fl(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(rn(c[i>>2]|0)|0)&65535,(o|0)==((rn(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function on(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function pn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=($k()|0)!=0;f=(qn()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function qn(){return 0;}function rn(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function sn(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,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;switch(c[(c[j>>2]|0)+16>>2]|0){case 7:case 6:{c[h>>2]=un(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,6)|0;o=c[h>>2]|0;l=g;return o|0;}case 5:{c[h>>2]=un(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,5)|0;o=c[h>>2]|0;l=g;return o|0;}default:{c[h>>2]=un(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,4)|0;o=c[h>>2]|0;l=g;return o|0;}}return 0;}function tn(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,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,Ka=0,La=0;h=l;l=l+320|0;i=h+308|0;j=h+304|0;k=h+300|0;m=h+296|0;n=h+292|0;o=h+288|0;p=h+284|0;q=h+280|0;r=h+276|0;s=h+272|0;t=h+268|0;u=h+264|0;v=h+260|0;w=h+256|0;x=h+252|0;y=h+248|0;z=h+244|0;A=h+240|0;B=h+236|0;C=h+232|0;D=h+228|0;E=h+224|0;F=h+220|0;G=h+216|0;H=h+212|0;I=h+208|0;J=h+204|0;K=h+200|0;L=h+196|0;M=h+192|0;N=h+188|0;O=h+184|0;P=h+180|0;Q=h+176|0;R=h+172|0;S=h+168|0;T=h+164|0;U=h+160|0;V=h+156|0;W=h+152|0;X=h+148|0;Y=h+144|0;Z=h+140|0;_=h+136|0;$=h+132|0;aa=h+128|0;ba=h+124|0;ca=h+120|0;da=h+116|0;ea=h+112|0;fa=h+108|0;ga=h+104|0;ha=h+100|0;ia=h+96|0;ja=h+92|0;ka=h+88|0;la=h+84|0;ma=h+80|0;na=h+76|0;oa=h+72|0;pa=h+68|0;qa=h+64|0;ra=h+60|0;sa=h+56|0;ta=h+52|0;ua=h+48|0;va=h+44|0;wa=h+40|0;xa=h+36|0;ya=h+32|0;za=h+28|0;Aa=h+24|0;Ba=h+20|0;Ca=h+16|0;Da=h+12|0;Ea=h+8|0;Fa=h+4|0;Ga=h;c[Ca>>2]=a;c[Da>>2]=b;c[Ea>>2]=e;c[Fa>>2]=f;c[Ga>>2]=g;switch(c[(c[Da>>2]|0)+16>>2]|0){case 7:case 6:{g=c[Da>>2]|0;f=c[Ea>>2]|0;e=c[Fa>>2]|0;b=c[Ga>>2]|0;c[i>>2]=c[Ca>>2];c[j>>2]=g;c[k>>2]=f;c[m>>2]=e;c[n>>2]=b;c[o>>2]=6;c[p>>2]=0;c[q>>2]=c[(c[i>>2]|0)+44>>2];c[r>>2]=1<>2]|0)+4>>2];c[s>>2]=(c[r>>2]|0)-1;c[t>>2]=c[(c[i>>2]|0)+4>>2];c[u>>2]=c[(c[i>>2]|0)+8>>2];c[v>>2]=c[(c[i>>2]|0)+12>>2];c[w>>2]=(c[t>>2]|0)+(c[v>>2]|0);c[x>>2]=(c[u>>2]|0)+(c[v>>2]|0);c[y>>2]=c[(c[i>>2]|0)+16>>2];c[z>>2]=(c[k>>2]|0)-(c[t>>2]|0);if((c[z>>2]|0)>>>0>(c[r>>2]|0)>>>0)Ha=(c[z>>2]|0)-(c[r>>2]|0)|0;else Ha=0;c[A>>2]=Ha;c[B>>2]=1<>2]|0)+12>>2];c[C>>2]=3;c[D>>2]=mk(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[o>>2]|0)|0;while(1){if(!(((c[B>>2]|0)>>>0>0?(c[D>>2]|0)>>>0>(c[y>>2]|0)>>>0:0)|0))break;c[E>>2]=0;if(c[p>>2]|0?(c[D>>2]|0)>>>0<(c[v>>2]|0)>>>0:0){c[G>>2]=(c[u>>2]|0)+(c[D>>2]|0);o=Bk(c[G>>2]|0)|0;if((o|0)==(Bk(c[k>>2]|0)|0))c[E>>2]=(Lm((c[k>>2]|0)+4|0,(c[G>>2]|0)+4|0,c[m>>2]|0,c[x>>2]|0,c[w>>2]|0)|0)+4;}else Ia=38;if((Ia|0)==38?(Ia=0,c[F>>2]=(c[t>>2]|0)+(c[D>>2]|0),(d[(c[F>>2]|0)+(c[C>>2]|0)>>0]|0|0)==(d[(c[k>>2]|0)+(c[C>>2]|0)>>0]|0|0)):0)c[E>>2]=Qm(c[k>>2]|0,c[F>>2]|0,c[m>>2]|0)|0;if((c[E>>2]|0)>>>0>(c[C>>2]|0)>>>0?(c[C>>2]=c[E>>2],c[c[n>>2]>>2]=(c[z>>2]|0)-(c[D>>2]|0)+2,((c[k>>2]|0)+(c[E>>2]|0)|0)==(c[m>>2]|0)):0)break;if((c[D>>2]|0)>>>0<=(c[A>>2]|0)>>>0)break;c[D>>2]=c[(c[q>>2]|0)+((c[D>>2]&c[s>>2])<<2)>>2];c[B>>2]=(c[B>>2]|0)+-1;}c[Ba>>2]=c[C>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}case 5:{C=c[Da>>2]|0;B=c[Ea>>2]|0;s=c[Fa>>2]|0;D=c[Ga>>2]|0;c[H>>2]=c[Ca>>2];c[I>>2]=C;c[J>>2]=B;c[K>>2]=s;c[L>>2]=D;c[M>>2]=5;c[N>>2]=0;c[O>>2]=c[(c[H>>2]|0)+44>>2];c[P>>2]=1<>2]|0)+4>>2];c[Q>>2]=(c[P>>2]|0)-1;c[R>>2]=c[(c[H>>2]|0)+4>>2];c[S>>2]=c[(c[H>>2]|0)+8>>2];c[T>>2]=c[(c[H>>2]|0)+12>>2];c[U>>2]=(c[R>>2]|0)+(c[T>>2]|0);c[V>>2]=(c[S>>2]|0)+(c[T>>2]|0);c[W>>2]=c[(c[H>>2]|0)+16>>2];c[X>>2]=(c[J>>2]|0)-(c[R>>2]|0);if((c[X>>2]|0)>>>0>(c[P>>2]|0)>>>0)Ka=(c[X>>2]|0)-(c[P>>2]|0)|0;else Ka=0;c[Y>>2]=Ka;c[Z>>2]=1<>2]|0)+12>>2];c[_>>2]=3;c[$>>2]=mk(c[H>>2]|0,c[I>>2]|0,c[J>>2]|0,c[M>>2]|0)|0;while(1){if(!(((c[Z>>2]|0)>>>0>0?(c[$>>2]|0)>>>0>(c[W>>2]|0)>>>0:0)|0))break;c[aa>>2]=0;if(c[N>>2]|0?(c[$>>2]|0)>>>0<(c[T>>2]|0)>>>0:0){c[ca>>2]=(c[S>>2]|0)+(c[$>>2]|0);M=Bk(c[ca>>2]|0)|0;if((M|0)==(Bk(c[J>>2]|0)|0))c[aa>>2]=(Lm((c[J>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[K>>2]|0,c[V>>2]|0,c[U>>2]|0)|0)+4;}else Ia=23;if((Ia|0)==23?(Ia=0,c[ba>>2]=(c[R>>2]|0)+(c[$>>2]|0),(d[(c[ba>>2]|0)+(c[_>>2]|0)>>0]|0|0)==(d[(c[J>>2]|0)+(c[_>>2]|0)>>0]|0|0)):0)c[aa>>2]=Qm(c[J>>2]|0,c[ba>>2]|0,c[K>>2]|0)|0;if((c[aa>>2]|0)>>>0>(c[_>>2]|0)>>>0?(c[_>>2]=c[aa>>2],c[c[L>>2]>>2]=(c[X>>2]|0)-(c[$>>2]|0)+2,((c[J>>2]|0)+(c[aa>>2]|0)|0)==(c[K>>2]|0)):0)break;if((c[$>>2]|0)>>>0<=(c[Y>>2]|0)>>>0)break;c[$>>2]=c[(c[O>>2]|0)+((c[$>>2]&c[Q>>2])<<2)>>2];c[Z>>2]=(c[Z>>2]|0)+-1;}c[Ba>>2]=c[_>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}default:{_=c[Da>>2]|0;Da=c[Ea>>2]|0;Ea=c[Fa>>2]|0;Fa=c[Ga>>2]|0;c[da>>2]=c[Ca>>2];c[ea>>2]=_;c[fa>>2]=Da;c[ga>>2]=Ea;c[ha>>2]=Fa;c[ia>>2]=4;c[ja>>2]=0;c[ka>>2]=c[(c[da>>2]|0)+44>>2];c[la>>2]=1<>2]|0)+4>>2];c[ma>>2]=(c[la>>2]|0)-1;c[na>>2]=c[(c[da>>2]|0)+4>>2];c[oa>>2]=c[(c[da>>2]|0)+8>>2];c[pa>>2]=c[(c[da>>2]|0)+12>>2];c[qa>>2]=(c[na>>2]|0)+(c[pa>>2]|0);c[ra>>2]=(c[oa>>2]|0)+(c[pa>>2]|0);c[sa>>2]=c[(c[da>>2]|0)+16>>2];c[ta>>2]=(c[fa>>2]|0)-(c[na>>2]|0);if((c[ta>>2]|0)>>>0>(c[la>>2]|0)>>>0)La=(c[ta>>2]|0)-(c[la>>2]|0)|0;else La=0;c[ua>>2]=La;c[va>>2]=1<>2]|0)+12>>2];c[wa>>2]=3;c[xa>>2]=mk(c[da>>2]|0,c[ea>>2]|0,c[fa>>2]|0,c[ia>>2]|0)|0;while(1){if(!(((c[va>>2]|0)>>>0>0?(c[xa>>2]|0)>>>0>(c[sa>>2]|0)>>>0:0)|0))break;c[ya>>2]=0;if(c[ja>>2]|0?(c[xa>>2]|0)>>>0<(c[pa>>2]|0)>>>0:0){c[Aa>>2]=(c[oa>>2]|0)+(c[xa>>2]|0);ia=Bk(c[Aa>>2]|0)|0;if((ia|0)==(Bk(c[fa>>2]|0)|0))c[ya>>2]=(Lm((c[fa>>2]|0)+4|0,(c[Aa>>2]|0)+4|0,c[ga>>2]|0,c[ra>>2]|0,c[qa>>2]|0)|0)+4;}else Ia=8;if((Ia|0)==8?(Ia=0,c[za>>2]=(c[na>>2]|0)+(c[xa>>2]|0),(d[(c[za>>2]|0)+(c[wa>>2]|0)>>0]|0|0)==(d[(c[fa>>2]|0)+(c[wa>>2]|0)>>0]|0|0)):0)c[ya>>2]=Qm(c[fa>>2]|0,c[za>>2]|0,c[ga>>2]|0)|0;if((c[ya>>2]|0)>>>0>(c[wa>>2]|0)>>>0?(c[wa>>2]=c[ya>>2],c[c[ha>>2]>>2]=(c[ta>>2]|0)-(c[xa>>2]|0)+2,((c[fa>>2]|0)+(c[ya>>2]|0)|0)==(c[ga>>2]|0)):0)break;if((c[xa>>2]|0)>>>0<=(c[ua>>2]|0)>>>0)break;c[xa>>2]=c[(c[ka>>2]|0)+((c[xa>>2]&c[ma>>2])<<2)>>2];c[va>>2]=(c[va>>2]|0)+-1;}c[Ba>>2]=c[wa>>2];Ja=c[Ba>>2]|0;l=h;return Ja|0;}}return 0;}function un(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;h=l;l=l+32|0;i=h+24|0;j=h+20|0;k=h+16|0;m=h+12|0;n=h+8|0;o=h+4|0;p=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;if((c[m>>2]|0)>>>0<((c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+24>>2]|0)|0)>>>0){c[i>>2]=0;q=c[i>>2]|0;l=h;return q|0;}else{Wm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[p>>2]|0);c[i>>2]=Xm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,0)|0;q=c[i>>2]|0;l=h;return q|0;}return 0;}function vn(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,m=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;f=wn(c[h>>2]|0,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,1,0)|0;l=g;return f|0;}function wn(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0;i=l;l=l+160|0;j=i+48|0;k=i+40|0;m=i+36|0;n=i+32|0;o=i+28|0;p=i+24|0;q=i+20|0;r=i+16|0;s=i+12|0;t=i+8|0;u=i+4|0;v=i;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=(c[m>>2]|0)+472+8;c[u>>2]=0;if(!(c[c[m>>2]>>2]|0)){c[k>>2]=-60;w=c[k>>2]|0;l=i;return w|0;}do{if(c[r>>2]|0?(c[c[m>>2]>>2]|0)==1:0){h=c[n>>2]|0;g=c[o>>2]|0;f=(c[m>>2]|0)+116|0;e=(c[m>>2]|0)+240|0;d=eE(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;e=y;b=c[(c[m>>2]|0)+220>>2]|0;a=j;x=f;f=a+104|0;do{c[a>>2]=c[x>>2];a=a+4|0;x=x+4|0;}while((a|0)<(f|0));c[u>>2]=xn(h,g,j,d,e,b)|0;x=(Ph(c[u>>2]|0)|0)!=0;a=c[u>>2]|0;if(!x){c[o>>2]=(c[o>>2]|0)-a;c[n>>2]=(c[n>>2]|0)+(c[u>>2]|0);c[c[m>>2]>>2]=2;break;}c[k>>2]=a;w=c[k>>2]|0;l=i;return w|0;}}while(0);if(!(c[q>>2]|0)){c[k>>2]=c[u>>2];w=c[k>>2]|0;l=i;return w|0;}if(!(Mj(c[t>>2]|0,c[p>>2]|0,c[q>>2]|0)|0))c[(c[t>>2]|0)+24>>2]=c[(c[t>>2]|0)+12>>2];if(c[(c[m>>2]|0)+116+68>>2]|0)Mj((c[m>>2]|0)+408|0,c[p>>2]|0,c[q>>2]|0)|0;t=c[m>>2]|0;j=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;if(c[r>>2]|0)z=yn(t,j,n,o,p,c[s>>2]|0)|0;else z=zn(t,j,n,o,p)|0;c[v>>2]=z;if(Ph(c[v>>2]|0)|0){c[k>>2]=c[v>>2];w=c[k>>2]|0;l=i;return w|0;}z=(c[m>>2]|0)+248|0;p=z;o=dE(c[p>>2]|0,c[p+4>>2]|0,c[q>>2]|0,0)|0;q=z;c[q>>2]=o;c[q+4>>2]=y;q=(c[m>>2]|0)+256|0;o=q;z=dE(c[o>>2]|0,c[o+4>>2]|0,(c[v>>2]|0)+(c[u>>2]|0)|0,0)|0;o=q;c[o>>2]=z;c[o+4>>2]=y;if(c[(c[m>>2]|0)+116+32>>2]|0?(o=(c[m>>2]|0)+248|0,z=dE(c[o>>2]|0,c[o+4>>2]|0,1,0)|0,o=y,q=(c[m>>2]|0)+240|0,m=c[q+4>>2]|0,o>>>0>m>>>0|((o|0)==(m|0)?z>>>0>(c[q>>2]|0)>>>0:0)):0){c[k>>2]=-72;w=c[k>>2]|0;l=i;return w|0;}c[k>>2]=(c[v>>2]|0)+(c[u>>2]|0);w=c[k>>2]|0;l=i;return w|0;}function xn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;i=l;l=l+64|0;j=i+52|0;k=i+48|0;m=i+44|0;n=i;o=i+40|0;p=i+36|0;q=i+32|0;r=i+28|0;s=i+24|0;t=i+20|0;u=i+16|0;v=i+57|0;w=i+12|0;x=i+56|0;y=i+8|0;c[k>>2]=b;c[m>>2]=d;d=n;c[d>>2]=f;c[d+4>>2]=g;c[o>>2]=h;c[p>>2]=c[k>>2];c[q>>2]=((c[o>>2]|0)>>>0>0&1)+((c[o>>2]|0)>>>0>=256&1)+((c[o>>2]|0)>>>0>=65536&1);c[r>>2]=c[e+32+8>>2]|0?0:c[q>>2]|0;c[s>>2]=(c[e+32+4>>2]|0)>>>0>0&1;c[t>>2]=1<>2];if(c[e+32>>2]|0){q=n;h=c[q+4>>2]|0;z=0>h>>>0|(0==(h|0)?(c[t>>2]|0)>>>0>=(c[q>>2]|0)>>>0:0);}else z=0;c[u>>2]=z&1;a[v>>0]=(c[e+4>>2]|0)-10<<3;if(c[e+32>>2]|0){z=n;q=c[z+4>>2]|0;t=n;h=c[t+4>>2]|0;g=n;d=c[g+4>>2]|0;A=((q>>>0>0|(q|0)==0&(c[z>>2]|0)>>>0>=256)&1)+((h>>>0>0|(h|0)==0&(c[t>>2]|0)>>>0>=65792)&1)+((d>>>0>0|(d|0)==0&(c[g>>2]|0)>>>0>=4294967295)&1)|0;}else A=0;c[w>>2]=A;a[x>>0]=(c[r>>2]|0)+(c[s>>2]<<2)+(c[u>>2]<<5)+(c[w>>2]<<6);c[y>>2]=0;if((c[m>>2]|0)>>>0<18){c[j>>2]=-70;B=c[j>>2]|0;l=i;return B|0;}if(!(c[e>>2]|0)){Pl(c[k>>2]|0,-47205080);c[y>>2]=4;}k=a[x>>0]|0;x=c[p>>2]|0;e=c[y>>2]|0;c[y>>2]=e+1;a[x+e>>0]=k;if(!(c[u>>2]|0)){k=a[v>>0]|0;v=c[p>>2]|0;e=c[y>>2]|0;c[y>>2]=e+1;a[v+e>>0]=k;}switch(c[r>>2]|0){case 3:{Pl((c[p>>2]|0)+(c[y>>2]|0)|0,c[o>>2]|0);c[y>>2]=(c[y>>2]|0)+4;break;}case 1:{a[(c[p>>2]|0)+(c[y>>2]|0)>>0]=c[o>>2];c[y>>2]=(c[y>>2]|0)+1;break;}case 2:{xl((c[p>>2]|0)+(c[y>>2]|0)|0,c[o>>2]&65535);c[y>>2]=(c[y>>2]|0)+2;break;}default:{}}switch(c[w>>2]|0){case 3:{w=n;Ql((c[p>>2]|0)+(c[y>>2]|0)|0,c[w>>2]|0,c[w+4>>2]|0);c[y>>2]=(c[y>>2]|0)+8;break;}case 1:{w=(c[p>>2]|0)+(c[y>>2]|0)|0;o=n;xl(w,(eE(c[o>>2]|0,c[o+4>>2]|0,256,0)|0)&65535);c[y>>2]=(c[y>>2]|0)+2;break;}case 2:{Pl((c[p>>2]|0)+(c[y>>2]|0)|0,c[n>>2]|0);c[y>>2]=(c[y>>2]|0)+4;break;}default:if(c[u>>2]|0){u=c[n>>2]&255;n=c[p>>2]|0;p=c[y>>2]|0;c[y>>2]=p+1;a[n+p>>0]=u;}}c[j>>2]=c[y>>2];B=c[j>>2]|0;l=i;return B|0;}function yn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;h=l;l=l+112|0;i=h+80|0;j=h+76|0;k=h+72|0;m=h+68|0;n=h+64|0;o=h+60|0;p=h+56|0;q=h+52|0;r=h+48|0;s=h+44|0;t=h+40|0;u=h+36|0;v=h+32|0;w=h+28|0;x=h+24|0;y=h+20|0;z=h+16|0;A=h+12|0;B=h+8|0;C=h+4|0;D=h;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=c[(c[k>>2]|0)+232>>2];c[s>>2]=c[p>>2];c[t>>2]=c[o>>2];c[u>>2]=c[m>>2];c[v>>2]=c[u>>2];c[w>>2]=1<>2]|0)+116+4>>2];if(c[p>>2]|0?(c[(c[k>>2]|0)+116+32+4>>2]|0)!=0:0)Nh((c[k>>2]|0)+264|0,c[o>>2]|0,c[p>>2]|0)|0;while(1){if(!(c[s>>2]|0)){E=24;break;}c[x>>2]=(c[k>>2]|0)+472+8;c[y>>2]=c[q>>2]&(c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0;if((c[n>>2]|0)>>>0<6){E=6;break;}if((c[s>>2]|0)>>>0<(c[r>>2]|0)>>>0)c[r>>2]=c[s>>2];p=c[x>>2]|0;o=(c[t>>2]|0)+(c[r>>2]|0)|0;c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];c[i+16>>2]=c[p+16>>2];if(ro(i,o)|0){c[z>>2]=vj(c[(c[k>>2]|0)+116+4+4>>2]|0,c[(c[k>>2]|0)+116+4+24>>2]|0)|0;c[A>>2]=so(c[x>>2]|0,c[z>>2]|0,c[w>>2]|0,c[t>>2]|0)|0;to(c[k>>2]|0,c[A>>2]|0);if((c[(c[x>>2]|0)+24>>2]|0)>>>0<(c[A>>2]|0)>>>0)c[(c[x>>2]|0)+24>>2]=0;else{o=(c[x>>2]|0)+24|0;c[o>>2]=(c[o>>2]|0)-(c[A>>2]|0);}c[(c[x>>2]|0)+20>>2]=0;}uo(c[x>>2]|0,(c[t>>2]|0)+(c[r>>2]|0)|0,c[w>>2]|0,(c[x>>2]|0)+20|0);if((c[(c[x>>2]|0)+24>>2]|0)>>>0<(c[(c[x>>2]|0)+16>>2]|0)>>>0)c[(c[x>>2]|0)+24>>2]=c[(c[x>>2]|0)+16>>2];c[B>>2]=zn(c[k>>2]|0,(c[v>>2]|0)+3|0,(c[n>>2]|0)-3|0,c[t>>2]|0,c[r>>2]|0)|0;o=(Ph(c[B>>2]|0)|0)!=0;F=c[B>>2]|0;if(o){E=17;break;}o=c[y>>2]|0;if(!F){c[C>>2]=o+0+(c[r>>2]<<3);if(((c[r>>2]|0)+3|0)>>>0>(c[n>>2]|0)>>>0){E=20;break;}Pl(c[v>>2]|0,c[C>>2]|0);mE((c[v>>2]|0)+3|0,c[t>>2]|0,c[r>>2]|0)|0;c[B>>2]=3+(c[r>>2]|0);}else{c[D>>2]=o+4+(c[B>>2]<<3);wl(c[v>>2]|0,c[D>>2]|0);c[B>>2]=(c[B>>2]|0)+3;}c[t>>2]=(c[t>>2]|0)+(c[r>>2]|0);c[s>>2]=(c[s>>2]|0)-(c[r>>2]|0);c[v>>2]=(c[v>>2]|0)+(c[B>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[B>>2]|0);}if((E|0)==6){c[j>>2]=-70;G=c[j>>2]|0;l=h;return G|0;}else if((E|0)==17){c[j>>2]=F;G=c[j>>2]|0;l=h;return G|0;}else if((E|0)==20){c[j>>2]=-70;G=c[j>>2]|0;l=h;return G|0;}else if((E|0)==24){if(c[q>>2]|0?(c[v>>2]|0)>>>0>(c[u>>2]|0)>>>0:0)c[c[k>>2]>>2]=3;c[j>>2]=(c[v>>2]|0)-(c[u>>2]|0);G=c[j>>2]|0;l=h;return G|0;}return 0;}function zn(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,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;g=l;l=l+112|0;h=g+92|0;i=g+88|0;j=g+84|0;k=g+80|0;m=g+76|0;n=g+72|0;o=g+68|0;p=g+64|0;q=g+60|0;r=g+56|0;s=g+52|0;t=g+48|0;u=g+44|0;v=g+40|0;w=g+24|0;x=g+16|0;y=g+12|0;z=g+8|0;A=g+4|0;B=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=(c[j>>2]|0)+472+8;f=c[j>>2]|0;if((c[o>>2]|0)>>>0<7){An(f+456|0,c[o>>2]|0,c[(c[j>>2]|0)+116+4+16>>2]|0);c[i>>2]=0;C=c[i>>2]|0;l=g;return C|0;}Bn(f+368|0);c[q>>2]=c[(c[p>>2]|0)+4>>2];c[r>>2]=c[n>>2];c[s>>2]=(c[r>>2]|0)-(c[q>>2]|0);if((c[s>>2]|0)>>>0>((c[(c[p>>2]|0)+24>>2]|0)+384|0)>>>0){if(192<((c[s>>2]|0)-(c[(c[p>>2]|0)+24>>2]|0)-384|0)>>>0)D=192;else D=(c[s>>2]|0)-(c[(c[p>>2]|0)+24>>2]|0)-384|0;c[(c[p>>2]|0)+24>>2]=(c[s>>2]|0)-D;}D=c[p>>2]|0;c[h>>2]=c[D>>2];c[h+4>>2]=c[D+4>>2];c[h+8>>2]=c[D+8>>2];c[h+12>>2]=c[D+12>>2];c[h+16>>2]=c[D+16>>2];c[t>>2]=Cn(h)|0;c[v>>2]=0;while(1){E=c[j>>2]|0;if((c[v>>2]|0)>=3)break;c[(c[(c[j>>2]|0)+472+4>>2]|0)+4580+(c[v>>2]<<2)>>2]=c[(c[E+472>>2]|0)+4580+(c[v>>2]<<2)>>2];c[v>>2]=(c[v>>2]|0)+1;}v=c[j>>2]|0;do{if((c[E+456+4>>2]|0)>>>0<(c[(c[j>>2]|0)+456+8>>2]|0)>>>0)c[u>>2]=Dn(v+456|0,c[p>>2]|0,(c[j>>2]|0)+368|0,(c[(c[j>>2]|0)+472+4>>2]|0)+4580|0,(c[j>>2]|0)+116+4|0,c[n>>2]|0,c[o>>2]|0,c[t>>2]|0)|0;else{if(!(c[v+116+68>>2]|0)){c[y>>2]=Wl(c[(c[j>>2]|0)+116+4+24>>2]|0,c[t>>2]|0)|0;c[u>>2]=uc[c[y>>2]&31](c[p>>2]|0,(c[j>>2]|0)+368|0,(c[(c[j>>2]|0)+472+4>>2]|0)+4580|0,(c[j>>2]|0)+116+4|0,c[n>>2]|0,c[o>>2]|0)|0;break;};c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w>>2]=c[(c[j>>2]|0)+448>>2];c[w+12>>2]=c[(c[j>>2]|0)+452>>2];c[x>>2]=En((c[j>>2]|0)+408|0,w,(c[j>>2]|0)+116+68|0,c[n>>2]|0,c[o>>2]|0)|0;if(!(wj(c[x>>2]|0)|0)){c[u>>2]=Dn(w,c[p>>2]|0,(c[j>>2]|0)+368|0,(c[(c[j>>2]|0)+472+4>>2]|0)+4580|0,(c[j>>2]|0)+116+4|0,c[n>>2]|0,c[o>>2]|0,c[t>>2]|0)|0;break;}c[i>>2]=c[x>>2];C=c[i>>2]|0;l=g;return C|0;}}while(0);c[z>>2]=(c[n>>2]|0)+(c[o>>2]|0)+(0-(c[u>>2]|0));Fn((c[j>>2]|0)+368|0,c[z>>2]|0,c[u>>2]|0);c[A>>2]=Gn((c[j>>2]|0)+368|0,c[(c[j>>2]|0)+472>>2]|0,c[(c[j>>2]|0)+472+4>>2]|0,(c[j>>2]|0)+116|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[(c[j>>2]|0)+588>>2]|0,c[(c[j>>2]|0)+8>>2]|0)|0;o=(Ph(c[A>>2]|0)|0)!=0;if(o|(c[A>>2]|0)==0){c[i>>2]=c[A>>2];C=c[i>>2]|0;l=g;return C|0;}else{c[B>>2]=c[(c[j>>2]|0)+472>>2];c[(c[j>>2]|0)+472>>2]=c[(c[j>>2]|0)+472+4>>2];c[(c[j>>2]|0)+472+4>>2]=c[B>>2];c[i>>2]=c[A>>2];C=c[i>>2]|0;l=g;return C|0;}return 0;}function An(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;while(1){if((c[g>>2]|0)>>>0<=0){j=12;break;}if((c[(c[f>>2]|0)+4>>2]|0)>>>0>=(c[(c[f>>2]|0)+8>>2]|0)>>>0){j=12;break;}c[i>>2]=(c[c[f>>2]>>2]|0)+((c[(c[f>>2]|0)+4>>2]|0)*12|0);if((c[g>>2]|0)>>>0<=(c[(c[i>>2]|0)+4>>2]|0)>>>0){j=5;break;}c[g>>2]=(c[g>>2]|0)-(c[(c[i>>2]|0)+4>>2]|0);c[(c[i>>2]|0)+4>>2]=0;if((c[g>>2]|0)>>>0<(c[(c[i>>2]|0)+8>>2]|0)>>>0){j=7;break;}c[g>>2]=(c[g>>2]|0)-(c[(c[i>>2]|0)+8>>2]|0);c[(c[i>>2]|0)+8>>2]=0;d=(c[f>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)+1;}if((j|0)==5){d=(c[i>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)-(c[g>>2]|0);l=e;return;}else if((j|0)==7){d=(c[i>>2]|0)+8|0;c[d>>2]=(c[d>>2]|0)-(c[g>>2]|0);if((c[(c[i>>2]|0)+8>>2]|0)>>>0>=(c[h>>2]|0)>>>0){l=e;return;}if(((c[(c[f>>2]|0)+4>>2]|0)+1|0)>>>0<(c[(c[f>>2]|0)+8>>2]|0)>>>0){h=(c[i>>2]|0)+12+4|0;c[h>>2]=(c[h>>2]|0)+(c[(c[i>>2]|0)+8>>2]|0);}i=(c[f>>2]|0)+4|0;c[i>>2]=(c[i>>2]|0)+1;l=e;return;}else if((j|0)==12){l=e;return;}}function Bn(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+8>>2];c[(c[d>>2]|0)+4>>2]=c[c[d>>2]>>2];c[(c[d>>2]|0)+28>>2]=0;l=b;return;}function Cn(a){a=a|0;return(c[a+16>>2]|0)>>>0<(c[a+12>>2]|0)>>>0|0;}function Dn(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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;j=l;l=l+80|0;k=j+76|0;m=j+72|0;n=j+68|0;o=j+64|0;p=j+60|0;q=j+56|0;r=j+52|0;s=j+48|0;t=j+44|0;u=j+40|0;v=j+36|0;w=j+32|0;x=j+28|0;y=j+24|0;z=j+12|0;A=j+8|0;B=j+4|0;C=j;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;c[t>>2]=c[(c[p>>2]|0)+16>>2];c[u>>2]=Wl(c[(c[p>>2]|0)+24>>2]|0,c[s>>2]|0)|0;c[v>>2]=c[(c[m>>2]|0)+4>>2];c[w>>2]=c[q>>2];c[x>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[y>>2]=c[w>>2];while(1){if((c[(c[k>>2]|0)+4>>2]|0)>>>0>=(c[(c[k>>2]|0)+8>>2]|0)>>>0)break;if((c[y>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;lo(z,c[k>>2]|0,(c[x>>2]|0)-(c[y>>2]|0)|0,c[t>>2]|0);if(!(c[z>>2]|0))break;mo(c[m>>2]|0,c[y>>2]|0);no(c[m>>2]|0,c[p>>2]|0,c[y>>2]|0)|0;c[B>>2]=uc[c[u>>2]&31](c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[y>>2]|0,c[z+4>>2]|0)|0;c[y>>2]=(c[y>>2]|0)+(c[z+4>>2]|0);c[(c[m>>2]|0)+24>>2]=(c[y>>2]|0)-(c[v>>2]|0);c[A>>2]=2;while(1){if((c[A>>2]|0)<=0)break;c[(c[o>>2]|0)+(c[A>>2]<<2)>>2]=c[(c[o>>2]|0)+((c[A>>2]|0)-1<<2)>>2];c[A>>2]=(c[A>>2]|0)+-1;}c[c[o>>2]>>2]=c[z>>2];oo(c[n>>2]|0,c[B>>2]|0,(c[y>>2]|0)+(0-(c[B>>2]|0))|0,(c[z>>2]|0)+2|0,(c[z+8>>2]|0)-3|0);c[y>>2]=(c[y>>2]|0)+(c[z+8>>2]|0);}mo(c[m>>2]|0,c[y>>2]|0);no(c[m>>2]|0,c[p>>2]|0,c[y>>2]|0)|0;c[C>>2]=uc[c[u>>2]&31](c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[y>>2]|0,(c[x>>2]|0)-(c[y>>2]|0)|0)|0;c[(c[m>>2]|0)+24>>2]=(c[x>>2]|0)-(c[v>>2]|0);l=j;return c[C>>2]|0;}function En(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,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;g=l;l=l+112|0;h=g+84|0;i=g+80|0;j=g+76|0;k=g+72|0;m=g+68|0;n=g+64|0;o=g+60|0;p=g+56|0;q=g+52|0;r=g+48|0;s=g+40|0;t=g+36|0;u=g+32|0;v=g+28|0;w=g+24|0;x=g+20|0;y=g+16|0;z=g+12|0;A=g+8|0;B=g+4|0;C=g;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=1<>2]|0)+20>>2];c[q>>2]=c[n>>2];c[r>>2]=(c[q>>2]|0)+(c[o>>2]|0);c[g+44>>2]=1048576;c[s>>2]=(((c[o>>2]|0)>>>0)/1048576|0)+((((c[o>>2]|0)>>>0)%1048576|0|0)!=0&1);c[u>>2]=0;c[t>>2]=0;while(1){if((c[t>>2]|0)>>>0>=(c[s>>2]|0)>>>0){D=12;break;}if((c[(c[k>>2]|0)+8>>2]|0)>>>0>=(c[(c[k>>2]|0)+12>>2]|0)>>>0){D=12;break;}c[v>>2]=(c[q>>2]|0)+(c[t>>2]<<20);c[w>>2]=(c[r>>2]|0)-(c[v>>2]|0);c[x>>2]=(c[w>>2]|0)>>>0<1048576?c[r>>2]|0:(c[v>>2]|0)+1048576|0;c[y>>2]=(c[x>>2]|0)-(c[v>>2]|0);c[A>>2]=c[(c[k>>2]|0)+8>>2];o=c[j>>2]|0;f=c[x>>2]|0;c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];c[h+12>>2]=c[o+12>>2];c[h+16>>2]=c[o+16>>2];if(On(h,f)|0){c[B>>2]=1<>2]|0)+4>>2];c[C>>2]=Pn(c[j>>2]|0,0,c[p>>2]|0,c[n>>2]|0)|0;Qn(c[(c[j>>2]|0)+20>>2]|0,c[B>>2]|0,c[C>>2]|0);}Rn(c[j>>2]|0,c[x>>2]|0,c[p>>2]|0,0);c[z>>2]=Sn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[v>>2]|0,c[y>>2]|0)|0;if(Ph(c[z>>2]|0)|0){D=7;break;}if((c[A>>2]|0)>>>0<(c[(c[k>>2]|0)+8>>2]|0)>>>0){f=(c[c[k>>2]>>2]|0)+((c[A>>2]|0)*12|0)+4|0;c[f>>2]=(c[f>>2]|0)+(c[u>>2]|0);c[u>>2]=c[z>>2];}else c[u>>2]=(c[u>>2]|0)+(c[y>>2]|0);c[t>>2]=(c[t>>2]|0)+1;}if((D|0)==7){c[i>>2]=c[z>>2];E=c[i>>2]|0;l=g;return E|0;}else if((D|0)==12){c[i>>2]=0;E=c[i>>2]|0;l=g;return E|0;}return 0;}function Fn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;mE(c[(c[f>>2]|0)+12>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;g=(c[f>>2]|0)+12|0;c[g>>2]=(c[g>>2]|0)+(c[h>>2]|0);l=e;return;}function Gn(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=l;l=l+48|0;m=k+44|0;n=k+40|0;o=k+36|0;p=k+32|0;q=k+28|0;r=k+24|0;s=k+20|0;t=k+16|0;u=k+12|0;v=k+8|0;w=k+4|0;x=k;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;c[v>>2]=j;c[w>>2]=Hn(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;if(((c[w>>2]|0)==-70?(c[t>>2]|0)>>>0<=(c[s>>2]|0)>>>0:0)|0){c[m>>2]=0;y=c[m>>2]|0;l=k;return y|0;}if(Ph(c[w>>2]|0)|0){c[m>>2]=c[w>>2];y=c[m>>2]|0;l=k;return y|0;}s=c[t>>2]|0;c[x>>2]=s-(In(c[t>>2]|0)|0);if((c[w>>2]|0)>>>0>=(c[x>>2]|0)>>>0){c[m>>2]=0;y=c[m>>2]|0;l=k;return y|0;}if((c[(c[p>>2]|0)+4568>>2]|0)==2)c[(c[p>>2]|0)+4568>>2]=1;c[m>>2]=c[w>>2];y=c[m>>2]|0;l=k;return y|0;}function Hn(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,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;k=l;l=l+368|0;m=k+364|0;n=k+360|0;o=k+356|0;p=k+352|0;q=k+348|0;r=k+344|0;s=k+340|0;t=k+336|0;u=k+332|0;v=k+328|0;w=k;x=k+324|0;y=k+320|0;z=k+316|0;A=k+312|0;B=k+308|0;C=k+304|0;D=k+300|0;E=k+296|0;F=k+292|0;G=k+288|0;H=k+284|0;I=k+280|0;J=k+276|0;K=k+272|0;L=k+268|0;M=k+264|0;N=k+260|0;O=k+256|0;P=k+252|0;Q=k+248|0;R=k+244|0;S=k+240|0;T=k+236|0;U=k+232|0;V=k+228|0;W=k+224|0;X=k+220|0;Y=k+216|0;Z=k+212|0;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=i;c[u>>2]=j;j=c[(c[q>>2]|0)+4>>2]|0;i=(Il()|0)!=0;c[v>>2]=j>>>0>(i?25:57)>>>0&1;c[x>>2]=(c[p>>2]|0)+3248;c[y>>2]=(c[p>>2]|0)+1024;c[z>>2]=(c[p>>2]|0)+1796;c[D>>2]=c[c[n>>2]>>2];c[E>>2]=c[(c[n>>2]|0)+24>>2];c[F>>2]=c[(c[n>>2]|0)+16>>2];c[G>>2]=c[(c[n>>2]|0)+20>>2];c[H>>2]=c[r>>2];c[I>>2]=(c[H>>2]|0)+(c[s>>2]|0);c[J>>2]=c[H>>2];c[K>>2]=((c[(c[n>>2]|0)+4>>2]|0)-(c[c[n>>2]>>2]|0)|0)/8|0;c[M>>2]=c[(c[n>>2]|0)+8>>2];c[N>>2]=(c[(c[n>>2]|0)+12>>2]|0)-(c[M>>2]|0);c[O>>2]=Jn(c[o>>2]|0,c[p>>2]|0,c[(c[q>>2]|0)+4+24>>2]|0,c[(c[q>>2]|0)+48>>2]|0,c[J>>2]|0,c[s>>2]|0,c[M>>2]|0,c[N>>2]|0,c[t>>2]|0,c[u>>2]|0)|0;N=(Ph(c[O>>2]|0)|0)!=0;M=c[O>>2]|0;if(N){c[m>>2]=M;_=c[m>>2]|0;l=k;return _|0;}c[J>>2]=(c[J>>2]|0)+M;if(((c[I>>2]|0)-(c[J>>2]|0)|0)<4){c[m>>2]=-70;_=c[m>>2]|0;l=k;return _|0;}M=c[K>>2]|0;do{if((c[K>>2]|0)>>>0>=127){if(M>>>0<32512){a[c[J>>2]>>0]=((c[K>>2]|0)>>>8)+128;a[(c[J>>2]|0)+1>>0]=c[K>>2];c[J>>2]=(c[J>>2]|0)+2;break;}else{a[c[J>>2]>>0]=-1;xl((c[J>>2]|0)+1|0,(c[K>>2]|0)-32512&65535);c[J>>2]=(c[J>>2]|0)+3;break;}}else{N=c[J>>2]|0;c[J>>2]=N+1;a[N>>0]=M;}}while(0);if(!(c[K>>2]|0)){mE((c[p>>2]|0)+3248|0,(c[o>>2]|0)+3248|0,1316)|0;c[(c[p>>2]|0)+4576>>2]=c[(c[o>>2]|0)+4576>>2];mE((c[p>>2]|0)+1024|0,(c[o>>2]|0)+1024|0,772)|0;c[(c[p>>2]|0)+4568>>2]=c[(c[o>>2]|0)+4568>>2];mE((c[p>>2]|0)+1796|0,(c[o>>2]|0)+1796|0,1452)|0;c[(c[p>>2]|0)+4572>>2]=c[(c[o>>2]|0)+4572>>2];c[m>>2]=(c[J>>2]|0)-(c[H>>2]|0);_=c[m>>2]|0;l=k;return _|0;}M=c[J>>2]|0;c[J>>2]=M+1;c[L>>2]=M;zl(c[n>>2]|0);c[P>>2]=35;c[Q>>2]=_h(w,P,c[F>>2]|0,c[K>>2]|0,c[t>>2]|0)|0;c[(c[p>>2]|0)+4576>>2]=c[(c[o>>2]|0)+4576>>2];c[A>>2]=Kn((c[p>>2]|0)+4576|0,c[Q>>2]|0,c[K>>2]|0,6,1)|0;c[R>>2]=Ln(c[J>>2]|0,(c[I>>2]|0)-(c[J>>2]|0)|0,c[x>>2]|0,9,c[A>>2]|0,w,c[P>>2]|0,c[F>>2]|0,c[K>>2]|0,3200,6,35,(c[o>>2]|0)+3248|0,1316,c[t>>2]|0,6144)|0;P=(Ph(c[R>>2]|0)|0)!=0;Q=c[R>>2]|0;if(P){c[m>>2]=Q;_=c[m>>2]|0;l=k;return _|0;}c[J>>2]=(c[J>>2]|0)+Q;c[S>>2]=31;c[T>>2]=_h(w,S,c[E>>2]|0,c[K>>2]|0,c[t>>2]|0)|0;c[U>>2]=(c[S>>2]|0)>>>0<=28?1:0;c[(c[p>>2]|0)+4568>>2]=c[(c[o>>2]|0)+4568>>2];c[B>>2]=Kn((c[p>>2]|0)+4568|0,c[T>>2]|0,c[K>>2]|0,5,c[U>>2]|0)|0;c[V>>2]=Ln(c[J>>2]|0,(c[I>>2]|0)-(c[J>>2]|0)|0,c[y>>2]|0,8,c[B>>2]|0,w,c[S>>2]|0,c[E>>2]|0,c[K>>2]|0,3280,5,28,(c[o>>2]|0)+1024|0,772,c[t>>2]|0,6144)|0;S=(Ph(c[V>>2]|0)|0)!=0;U=c[V>>2]|0;if(S){c[m>>2]=U;_=c[m>>2]|0;l=k;return _|0;}c[J>>2]=(c[J>>2]|0)+U;c[W>>2]=52;c[X>>2]=_h(w,W,c[G>>2]|0,c[K>>2]|0,c[t>>2]|0)|0;c[(c[p>>2]|0)+4572>>2]=c[(c[o>>2]|0)+4572>>2];c[C>>2]=Kn((c[p>>2]|0)+4572|0,c[X>>2]|0,c[K>>2]|0,6,1)|0;c[Y>>2]=Ln(c[J>>2]|0,(c[I>>2]|0)-(c[J>>2]|0)|0,c[z>>2]|0,9,c[C>>2]|0,w,c[W>>2]|0,c[G>>2]|0,c[K>>2]|0,3344,6,52,(c[o>>2]|0)+1796|0,1452,c[t>>2]|0,6144)|0;t=(Ph(c[Y>>2]|0)|0)!=0;o=c[Y>>2]|0;if(t){c[m>>2]=o;_=c[m>>2]|0;l=k;return _|0;}c[J>>2]=(c[J>>2]|0)+o;a[c[L>>2]>>0]=(c[A>>2]<<6)+(c[B>>2]<<4)+(c[C>>2]<<2);c[Z>>2]=Cl(c[J>>2]|0,(c[I>>2]|0)-(c[J>>2]|0)|0,c[z>>2]|0,c[G>>2]|0,c[y>>2]|0,c[E>>2]|0,c[x>>2]|0,c[F>>2]|0,c[D>>2]|0,c[K>>2]|0,c[v>>2]|0,c[u>>2]|0)|0;u=(Ph(c[Z>>2]|0)|0)!=0;v=c[Z>>2]|0;if(u){c[m>>2]=v;_=c[m>>2]|0;l=k;return _|0;}else{c[J>>2]=(c[J>>2]|0)+v;c[m>>2]=(c[J>>2]|0)-(c[H>>2]|0);_=c[m>>2]|0;l=k;return _|0;}return 0;}function In(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return((c[d>>2]|0)>>>6)+2|0;}function Jn(b,d,e,f,g,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,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=l;l=l+96|0;o=n+88|0;p=n+84|0;q=n+80|0;r=n+76|0;s=n+72|0;t=n+68|0;u=n+64|0;v=n+60|0;w=n+56|0;x=n+52|0;y=n+48|0;z=n+44|0;A=n+40|0;B=n+36|0;C=n+32|0;D=n+28|0;E=n+24|0;F=n+20|0;G=n+16|0;H=n+12|0;I=n+8|0;J=n+4|0;K=n;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=i;c[w>>2]=j;c[x>>2]=k;c[y>>2]=m;c[z>>2]=In(c[w>>2]|0)|0;c[A>>2]=3+((c[w>>2]|0)>>>0>=1024&1)+((c[w>>2]|0)>>>0>=16384&1);c[B>>2]=c[t>>2];c[C>>2]=(c[w>>2]|0)>>>0<256&1;c[D>>2]=2;c[(c[q>>2]|0)+4564>>2]=c[(c[p>>2]|0)+4564>>2];mE(c[q>>2]|0,c[p>>2]|0,1024)|0;if(c[s>>2]|0){c[o>>2]=Mn(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;L=c[o>>2]|0;l=n;return L|0;}c[F>>2]=(c[(c[p>>2]|0)+4564>>2]|0)==2?6:63;if((c[w>>2]|0)>>>0<=(c[F>>2]|0)>>>0){c[o>>2]=Mn(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;L=c[o>>2]|0;l=n;return L|0;}if((c[u>>2]|0)>>>0<((c[A>>2]|0)+1|0)>>>0){c[o>>2]=-70;L=c[o>>2]|0;l=n;return L|0;}c[G>>2]=c[(c[p>>2]|0)+4564>>2];c[H>>2]=(c[r>>2]|0)>>>0<4?(c[w>>2]|0)>>>0<=1024&1:0;if((c[G>>2]|0)==2&(c[A>>2]|0)==3)c[C>>2]=1;r=(c[B>>2]|0)+(c[A>>2]|0)|0;F=(c[u>>2]|0)-(c[A>>2]|0)|0;s=c[v>>2]|0;m=c[w>>2]|0;k=c[x>>2]|0;x=c[q>>2]|0;j=c[H>>2]|0;H=c[y>>2]|0;if(c[C>>2]|0)M=jj(r,F,s,m,255,11,k,6144,x,G,j,H)|0;else M=kj(r,F,s,m,255,11,k,6144,x,G,j,H)|0;c[E>>2]=M;if(c[G>>2]|0)c[D>>2]=3;G=(c[E>>2]|0)==0?1:(c[E>>2]|0)>>>0>=((c[w>>2]|0)-(c[z>>2]|0)|0)>>>0;if(G|(wj(c[E>>2]|0)|0)|0){mE(c[q>>2]|0,c[p>>2]|0,1024)|0;c[o>>2]=Mn(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;L=c[o>>2]|0;l=n;return L|0;}if((c[E>>2]|0)==1){mE(c[q>>2]|0,c[p>>2]|0,1024)|0;c[o>>2]=Nn(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0;L=c[o>>2]|0;l=n;return L|0;}if((c[D>>2]|0)==2)c[(c[q>>2]|0)+4564>>2]=1;switch(c[A>>2]|0){case 3:{c[I>>2]=(c[D>>2]|0)+((((c[C>>2]|0)!=0^1)&1)<<2)+(c[w>>2]<<4)+(c[E>>2]<<14);wl(c[B>>2]|0,c[I>>2]|0);break;}case 4:{c[J>>2]=(c[D>>2]|0)+8+(c[w>>2]<<4)+(c[E>>2]<<18);Pl(c[B>>2]|0,c[J>>2]|0);break;}case 5:{c[K>>2]=(c[D>>2]|0)+12+(c[w>>2]<<4)+(c[E>>2]<<22);Pl(c[B>>2]|0,c[K>>2]|0);a[(c[B>>2]|0)+4>>0]=(c[E>>2]|0)>>>10;break;}default:{}}c[o>>2]=(c[A>>2]|0)+(c[E>>2]|0);L=c[o>>2]|0;l=n;return L|0;}function Kn(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,m=0,n=0,o=0;g=l;l=l+32|0;h=g+20|0;i=g+16|0;j=g+12|0;k=g+8|0;m=g+4|0;n=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if((c[j>>2]|0)==(c[k>>2]|0)?(c[n>>2]|0)==0|(c[k>>2]|0)>>>0>2:0){c[c[i>>2]>>2]=1;c[h>>2]=1;o=c[h>>2]|0;l=g;return o|0;}if(c[n>>2]|0?(c[k>>2]|0)>>>0<1e3?(c[c[i>>2]>>2]|0)==2:0:0){c[h>>2]=3;o=c[h>>2]|0;l=g;return o|0;}do{if(c[n>>2]|0){if((c[k>>2]|0)>>>0>=64?(c[j>>2]|0)>>>0>=(c[k>>2]|0)>>>((c[m>>2]|0)-1|0)>>>0:0)break;c[c[i>>2]>>2]=0;c[h>>2]=0;o=c[h>>2]|0;l=g;return o|0;}}while(0);c[c[i>>2]>>2]=1;c[h>>2]=2;o=c[h>>2]|0;l=g;return o|0;}function Ln(b,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;var u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;u=l;l=l+224|0;v=u+208|0;w=u+204|0;x=u+200|0;y=u+196|0;z=u+192|0;A=u+188|0;B=u+184|0;C=u+180|0;D=u+176|0;E=u+172|0;F=u+168|0;G=u+164|0;H=u+160|0;I=u+156|0;J=u+152|0;K=u+148|0;L=u+144|0;M=u+140|0;N=u+136|0;O=u+132|0;P=u+128|0;Q=u;R=u+124|0;S=u+120|0;T=u+116|0;U=u+112|0;V=u+108|0;c[w>>2]=b;c[x>>2]=e;c[y>>2]=f;c[z>>2]=g;c[A>>2]=h;c[B>>2]=i;c[C>>2]=j;c[D>>2]=k;c[E>>2]=m;c[F>>2]=n;c[G>>2]=o;c[H>>2]=p;c[I>>2]=q;c[J>>2]=r;c[K>>2]=s;c[L>>2]=t;c[M>>2]=c[w>>2];c[N>>2]=(c[M>>2]|0)+(c[x>>2]|0);switch(c[A>>2]|0){case 1:{a[c[M>>2]>>0]=a[c[D>>2]>>0]|0;c[O>>2]=ii(c[y>>2]|0,c[C>>2]&255)|0;if(wj(c[O>>2]|0)|0){c[v>>2]=c[O>>2];W=c[v>>2]|0;l=u;return W|0;}else{c[v>>2]=1;W=c[v>>2]|0;l=u;return W|0;}break;}case 3:{mE(c[y>>2]|0,c[I>>2]|0,c[J>>2]|0)|0;c[v>>2]=0;W=c[v>>2]|0;l=u;return W|0;}case 0:{c[P>>2]=Uh(c[y>>2]|0,c[F>>2]|0,c[H>>2]|0,c[G>>2]|0,c[K>>2]|0,c[L>>2]|0)|0;if(wj(c[P>>2]|0)|0){c[v>>2]=c[P>>2];W=c[v>>2]|0;l=u;return W|0;}else{c[v>>2]=0;W=c[v>>2]|0;l=u;return W|0;}break;}case 2:{c[R>>2]=c[E>>2];c[S>>2]=ei(c[z>>2]|0,c[E>>2]|0,c[C>>2]|0)|0;if((c[(c[B>>2]|0)+((d[(c[D>>2]|0)+((c[E>>2]|0)-1)>>0]|0)<<2)>>2]|0)>>>0>1){z=(c[B>>2]|0)+((d[(c[D>>2]|0)+((c[E>>2]|0)-1)>>0]|0)<<2)|0;c[z>>2]=(c[z>>2]|0)+-1;c[R>>2]=(c[R>>2]|0)+-1;}c[T>>2]=fi(Q,c[S>>2]|0,c[B>>2]|0,c[R>>2]|0,c[C>>2]|0)|0;if(wj(c[T>>2]|0)|0){c[v>>2]=c[T>>2];W=c[v>>2]|0;l=u;return W|0;}c[U>>2]=Xh(c[M>>2]|0,(c[N>>2]|0)-(c[M>>2]|0)|0,Q,c[C>>2]|0,c[S>>2]|0)|0;if(Zg(c[U>>2]|0)|0){c[v>>2]=c[U>>2];W=c[v>>2]|0;l=u;return W|0;}c[V>>2]=Uh(c[y>>2]|0,Q,c[C>>2]|0,c[S>>2]|0,c[K>>2]|0,c[L>>2]|0)|0;if(wj(c[V>>2]|0)|0){c[v>>2]=c[V>>2];W=c[v>>2]|0;l=u;return W|0;}else{c[v>>2]=c[U>>2];W=c[v>>2]|0;l=u;return W|0;}break;}default:{c[v>>2]=-1;W=c[v>>2]|0;l=u;return W|0;}}return 0;}function Mn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+32|0;h=g+24|0;i=g+20|0;j=g+16|0;k=g+12|0;m=g+8|0;n=g+4|0;o=g;c[i>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=c[i>>2];c[o>>2]=1+((c[m>>2]|0)>>>0>31&1)+((c[m>>2]|0)>>>0>4095&1);if(((c[m>>2]|0)+(c[o>>2]|0)|0)>>>0>(c[j>>2]|0)>>>0){c[h>>2]=-70;p=c[h>>2]|0;l=g;return p|0;}switch(c[o>>2]|0){case 1:{a[c[n>>2]>>0]=0+(c[m>>2]<<3);break;}case 2:{xl(c[n>>2]|0,4+(c[m>>2]<<4)&65535);break;}case 3:{Pl(c[n>>2]|0,12+(c[m>>2]<<4)|0);break;}default:{}}mE((c[n>>2]|0)+(c[o>>2]|0)|0,c[k>>2]|0,c[m>>2]|0)|0;c[h>>2]=(c[m>>2]|0)+(c[o>>2]|0);p=c[h>>2]|0;l=g;return p|0;}function Nn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+32|0;h=g+20|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=b;c[g+16>>2]=d;c[i>>2]=e;c[j>>2]=f;c[k>>2]=c[h>>2];c[m>>2]=1+((c[j>>2]|0)>>>0>31&1)+((c[j>>2]|0)>>>0>4095&1);switch(c[m>>2]|0){case 1:{a[c[k>>2]>>0]=1+(c[j>>2]<<3);break;}case 2:{xl(c[k>>2]|0,5+(c[j>>2]<<4)&65535);break;}case 3:{Pl(c[k>>2]|0,13+(c[j>>2]<<4)|0);break;}default:{}}a[(c[k>>2]|0)+(c[m>>2]|0)>>0]=a[c[i>>2]>>0]|0;l=g;return(c[m>>2]|0)+1|0;}function On(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;c[f>>2]=(c[e>>2]|0)-(c[a+4>>2]|0);l=d;return(c[f>>2]|0)>>>0>2684354560|0;}function Pn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(1<>2])-1;c[m>>2]=(c[j>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);c[n>>2]=(c[m>>2]&c[k>>2])+(c[i>>2]|0);c[o>>2]=(c[m>>2]|0)-(c[n>>2]|0);n=(c[g>>2]|0)+4|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);n=(c[g>>2]|0)+8|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);n=(c[g>>2]|0)+16|0;c[n>>2]=(c[n>>2]|0)-(c[o>>2]|0);n=(c[g>>2]|0)+12|0;c[n>>2]=(c[n>>2]|0)-(c[o>>2]|0);l=f;return c[o>>2]|0;}function Qn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=0;while(1){if((c[i>>2]|0)>>>0>=(c[g>>2]|0)>>>0)break;if((c[(c[f>>2]|0)+(c[i>>2]<<3)>>2]|0)>>>0<(c[h>>2]|0)>>>0)c[(c[f>>2]|0)+(c[i>>2]<<3)>>2]=0;else{d=(c[f>>2]|0)+(c[i>>2]<<3)|0;c[d>>2]=(c[d>>2]|0)-(c[h>>2]|0);}c[i>>2]=(c[i>>2]|0)+1;}l=e;return;}function Rn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);if(c[j>>2]|0)o=c[c[j>>2]>>2]|0;else o=0;c[m>>2]=o;if((c[k>>2]|0)>>>0<=((c[i>>2]|0)+(c[m>>2]|0)|0)>>>0){l=f;return;}c[n>>2]=(c[k>>2]|0)-(c[i>>2]|0);if((c[(c[g>>2]|0)+16>>2]|0)>>>0<(c[n>>2]|0)>>>0)c[(c[g>>2]|0)+16>>2]=c[n>>2];if((c[(c[g>>2]|0)+12>>2]|0)>>>0<(c[(c[g>>2]|0)+16>>2]|0)>>>0)c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+16>>2];if(!(c[j>>2]|0)){l=f;return;}c[c[j>>2]>>2]=0;l=f;return;}function Sn(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=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;h=l;l=l+224|0;i=h+200|0;j=h+192|0;k=h+188|0;m=h+184|0;n=h+180|0;o=h+176|0;p=h+172|0;q=h+168|0;r=h+164|0;s=h+8|0;t=h+160|0;u=h+156|0;v=h+152|0;w=h+148|0;x=h+144|0;z=h+140|0;A=h+136|0;B=h+132|0;C=h+128|0;D=h+124|0;E=h+120|0;F=h+116|0;G=h+112|0;H=h+108|0;I=h+104|0;J=h+100|0;K=h+96|0;L=h;M=h+92|0;N=h+88|0;O=h+84|0;P=h+80|0;Q=h+76|0;R=h+72|0;S=h+68|0;T=h+64|0;U=h+60|0;V=h+56|0;W=h+52|0;X=h+48|0;Y=h+44|0;Z=h+40|0;_=h+36|0;$=h+32|0;aa=h+28|0;ba=h+24|0;ca=h+20|0;da=h+16|0;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;g=c[k>>2]|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[q>>2]=Tn(i)|0;c[r>>2]=c[(c[n>>2]|0)+12>>2];g=(c[k>>2]|0)+32|0;f=c[g+4>>2]|0;e=s;c[e>>2]=c[g>>2];c[e+4>>2]=f;c[t>>2]=(c[(c[n>>2]|0)+4>>2]|0)-(c[(c[n>>2]|0)+8>>2]|0);c[u>>2]=1<>2]|0)+8>>2];c[v>>2]=c[(c[n>>2]|0)+16>>2];c[w>>2]=(1<>2]|0)+16>>2])-1;c[x>>2]=c[(c[k>>2]|0)+12>>2];if(c[q>>2]|0)ea=c[(c[k>>2]|0)+16>>2]|0;else ea=c[x>>2]|0;c[z>>2]=ea;c[A>>2]=c[(c[k>>2]|0)+4>>2];if(c[q>>2]|0)fa=c[(c[k>>2]|0)+8>>2]|0;else fa=0;c[B>>2]=fa;c[C>>2]=c[q>>2]|0?(c[B>>2]|0)+(c[z>>2]|0)|0:0;c[D>>2]=c[q>>2]|0?(c[B>>2]|0)+(c[x>>2]|0)|0:0;c[E>>2]=(c[A>>2]|0)+(c[x>>2]|0);c[F>>2]=c[o>>2];c[G>>2]=(c[F>>2]|0)+(c[p>>2]|0);c[H>>2]=(c[G>>2]|0)+(0-((c[r>>2]|0)>>>0>8?c[r>>2]|0:8));c[I>>2]=c[F>>2];c[J>>2]=c[F>>2];c[K>>2]=0;p=L;c[p>>2]=0;c[p+4>>2]=0;while(1){if((c[J>>2]|0)>>>0>(c[H>>2]|0)>>>0){ga=32;break;}c[N>>2]=(c[J>>2]|0)-(c[A>>2]|0);c[O>>2]=0;c[P>>2]=0;c[Q>>2]=0;if((c[J>>2]|0)!=(c[F>>2]|0)){p=L;o=s;fa=Un(c[p>>2]|0,c[p+4>>2]|0,a[c[K>>2]>>0]|0,a[(c[K>>2]|0)+(c[r>>2]|0)>>0]|0,c[o>>2]|0,c[o+4>>2]|0)|0;o=L;c[o>>2]=fa;c[o+4>>2]=y;}else{o=Vn(c[J>>2]|0,c[r>>2]|0)|0;fa=L;c[fa>>2]=o;c[fa+4>>2]=y;}c[K>>2]=c[J>>2];fa=L;o=Wn(c[fa>>2]|0,c[fa+4>>2]|0,c[t>>2]|0,c[v>>2]|0)|0;if((o|0)!=(c[w>>2]|0)){c[J>>2]=(c[J>>2]|0)+1;continue;}o=c[k>>2]|0;fa=L;p=Xn(c[fa>>2]|0,c[fa+4>>2]|0,c[t>>2]|0)|0;fa=c[n>>2]|0;c[i>>2]=c[fa>>2];c[i+4>>2]=c[fa+4>>2];c[i+8>>2]=c[fa+8>>2];c[i+12>>2]=c[fa+12>>2];c[i+16>>2]=c[fa+16>>2];c[i+20>>2]=c[fa+20>>2];c[R>>2]=Yn(o,p,i)|0;c[T>>2]=0;p=L;c[U>>2]=Zn(c[p>>2]|0,c[p+4>>2]|0,c[t>>2]|0)|0;c[S>>2]=c[R>>2];while(1){if((c[S>>2]|0)>>>0>=((c[R>>2]|0)+(c[u>>2]<<3)|0)>>>0)break;do{if((c[(c[S>>2]|0)+4>>2]|0)==(c[U>>2]|0)?(c[c[S>>2]>>2]|0)>>>0>(c[z>>2]|0)>>>0:0){if(c[q>>2]|0){c[Y>>2]=(c[c[S>>2]>>2]|0)>>>0<(c[x>>2]|0)>>>0?c[B>>2]|0:c[A>>2]|0;c[Z>>2]=(c[Y>>2]|0)+(c[c[S>>2]>>2]|0);c[_>>2]=(c[c[S>>2]>>2]|0)>>>0<(c[x>>2]|0)>>>0?c[D>>2]|0:c[G>>2]|0;c[$>>2]=(c[c[S>>2]>>2]|0)>>>0<(c[x>>2]|0)>>>0?c[C>>2]|0:c[E>>2]|0;c[V>>2]=_n(c[J>>2]|0,c[Z>>2]|0,c[G>>2]|0,c[_>>2]|0,c[E>>2]|0)|0;if((c[V>>2]|0)>>>0<(c[r>>2]|0)>>>0)break;c[W>>2]=$n(c[J>>2]|0,c[I>>2]|0,c[Z>>2]|0,c[$>>2]|0)|0;c[X>>2]=(c[V>>2]|0)+(c[W>>2]|0);}else{c[aa>>2]=(c[A>>2]|0)+(c[c[S>>2]>>2]|0);c[V>>2]=ao(c[J>>2]|0,c[aa>>2]|0,c[G>>2]|0)|0;if((c[V>>2]|0)>>>0<(c[r>>2]|0)>>>0)break;c[W>>2]=$n(c[J>>2]|0,c[I>>2]|0,c[aa>>2]|0,c[E>>2]|0)|0;c[X>>2]=(c[V>>2]|0)+(c[W>>2]|0);}if((c[X>>2]|0)>>>0>(c[T>>2]|0)>>>0){c[T>>2]=c[X>>2];c[O>>2]=c[V>>2];c[P>>2]=c[W>>2];c[Q>>2]=c[S>>2];}}}while(0);c[S>>2]=(c[S>>2]|0)+8;}if(!(c[Q>>2]|0)){p=c[k>>2]|0;o=L;fa=c[o>>2]|0;ea=c[o+4>>2]|0;o=c[t>>2]|0;f=c[N>>2]|0;e=c[n>>2]|0;c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];c[i+16>>2]=c[e+16>>2];c[i+20>>2]=c[e+20>>2];bo(p,fa,ea,o,f,i);c[J>>2]=(c[J>>2]|0)+1;continue;}c[M>>2]=(c[O>>2]|0)+(c[P>>2]|0);c[J>>2]=(c[J>>2]|0)+(0-(c[P>>2]|0));c[ba>>2]=c[c[Q>>2]>>2];c[ca>>2]=(c[N>>2]|0)-(c[ba>>2]|0);c[da>>2]=(c[c[m>>2]>>2]|0)+((c[(c[m>>2]|0)+8>>2]|0)*12|0);if((c[(c[m>>2]|0)+8>>2]|0)==(c[(c[m>>2]|0)+12>>2]|0)){ga=28;break;}c[(c[da>>2]|0)+4>>2]=(c[J>>2]|0)-(c[I>>2]|0);c[(c[da>>2]|0)+8>>2]=c[M>>2];c[c[da>>2]>>2]=c[ca>>2];f=(c[m>>2]|0)+8|0;c[f>>2]=(c[f>>2]|0)+1;f=c[k>>2]|0;o=L;ea=c[o>>2]|0;fa=c[o+4>>2]|0;o=c[t>>2]|0;p=(c[K>>2]|0)-(c[A>>2]|0)|0;e=c[n>>2]|0;c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];c[i+16>>2]=c[e+16>>2];c[i+20>>2]=c[e+20>>2];bo(f,ea,fa,o,p,i);if(((c[J>>2]|0)+(c[M>>2]|0)|0)>>>0<=(c[H>>2]|0)>>>0){p=c[k>>2]|0;o=L;fa=c[o>>2]|0;ea=c[o+4>>2]|0;o=c[K>>2]|0;f=(c[J>>2]|0)+(c[M>>2]|0)|0;e=c[A>>2]|0;g=c[t>>2]|0;d=c[n>>2]|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];c[i+20>>2]=c[d+20>>2];d=co(p,fa,ea,o,f,e,g,i)|0;g=L;c[g>>2]=d;c[g+4>>2]=y;c[K>>2]=(c[J>>2]|0)+(c[M>>2]|0)+-1;}c[J>>2]=(c[J>>2]|0)+(c[M>>2]|0);c[I>>2]=c[J>>2];}if((ga|0)==28){c[j>>2]=-70;ha=c[j>>2]|0;l=h;return ha|0;}else if((ga|0)==32){c[j>>2]=(c[G>>2]|0)-(c[I>>2]|0);ha=c[j>>2]|0;l=h;return ha|0;}return 0;}function Tn(a){a=a|0;return(c[a+16>>2]|0)>>>0<(c[a+12>>2]|0)>>>0|0;}function Un(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0;j=l;l=l+32|0;k=j+8|0;m=j+17|0;n=j+16|0;o=j;p=k;c[p>>2]=b;c[p+4>>2]=e;a[m>>0]=f;a[n>>0]=g;g=o;c[g>>2]=h;c[g+4>>2]=i;i=(d[m>>0]|0)+10|0;m=o;o=cE(i|0,((i|0)<0)<<31>>31|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=k;i=eE(c[m>>2]|0,c[m+4>>2]|0,o|0,y|0)|0;o=k;c[o>>2]=i;c[o+4>>2]=y;o=k;i=cE(c[o>>2]|0,c[o+4>>2]|0,-1213897629,-820265764)|0;o=k;c[o>>2]=i;c[o+4>>2]=y;o=(d[n>>0]|0)+10|0;n=k;i=dE(c[n>>2]|0,c[n+4>>2]|0,o|0,((o|0)<0)<<31>>31|0)|0;o=k;c[o>>2]=i;c[o+4>>2]=y;o=k;y=c[o+4>>2]|0;l=j;return c[o>>2]|0;}function Vn(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+32|0;f=e+16|0;g=e+12|0;h=e;i=e+8|0;c[f>>2]=a;c[g>>2]=b;b=h;c[b>>2]=0;c[b+4>>2]=0;c[i>>2]=0;while(1){b=h;j=c[b>>2]|0;k=c[b+4>>2]|0;if((c[i>>2]|0)>>>0>=(c[g>>2]|0)>>>0)break;b=cE(j|0,k|0,-1213897629,-820265764)|0;a=h;c[a>>2]=b;c[a+4>>2]=y;a=(d[(c[f>>2]|0)+(c[i>>2]|0)>>0]|0)+10|0;b=h;m=dE(c[b>>2]|0,c[b+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;a=h;c[a>>2]=m;c[a+4>>2]=y;c[i>>2]=(c[i>>2]|0)+1;}y=k;l=e;return j|0;}function Wn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+16|0;h=f;i=f+12|0;j=f+8|0;k=h;c[k>>2]=a;c[k+4>>2]=b;c[i>>2]=d;c[j>>2]=e;e=h;h=c[e>>2]|0;d=c[e+4>>2]|0;if((32-(c[i>>2]|0)|0)>>>0<(c[j>>2]|0)>>>0){c[g>>2]=h&(1<>2])-1;m=c[g>>2]|0;l=f;return m|0;}else{e=iE(h|0,d|0,32-(c[i>>2]|0)-(c[j>>2]|0)|0)|0;c[g>>2]=e&(1<>2])-1;m=c[g>>2]|0;l=f;return m|0;}return 0;}function Xn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;if(!(c[g>>2]|0)){i=0;l=e;return i|0;}d=f;f=iE(c[d>>2]|0,c[d+4>>2]|0,64-(c[g>>2]|0)|0)|0;i=f;l=e;return i|0;}function Yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=a;c[g>>2]=b;l=e;return(c[(c[f>>2]|0)+20>>2]|0)+(c[g>>2]<>2]<<3)|0;}function Zn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=e+8|0;h=f;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;d=f;f=iE(c[d>>2]|0,c[d+4>>2]|0,32-(c[g>>2]|0)|0)|0;l=e;return f|0;}function _n(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,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;if(((c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0)>>>0<(c[k>>2]|0)>>>0)q=(c[i>>2]|0)+((c[m>>2]|0)-(c[j>>2]|0))|0;else q=c[k>>2]|0;c[o>>2]=q;c[p>>2]=ao(c[i>>2]|0,c[j>>2]|0,c[o>>2]|0)|0;o=c[p>>2]|0;if(((c[j>>2]|0)+(c[p>>2]|0)|0)!=(c[m>>2]|0)){c[h>>2]=o;r=c[h>>2]|0;l=g;return r|0;}else{c[h>>2]=o+(ao((c[i>>2]|0)+(c[p>>2]|0)|0,c[n>>2]|0,c[k>>2]|0)|0);r=c[h>>2]|0;l=g;return r|0;}return 0;}function $n(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;g=l;l=l+32|0;h=g+16|0;i=g+12|0;j=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;while(1){if((c[h>>2]|0)>>>0<=(c[i>>2]|0)>>>0){n=6;break;}if((c[j>>2]|0)>>>0<=(c[k>>2]|0)>>>0){n=6;break;}if((d[(c[h>>2]|0)+-1>>0]|0|0)!=(d[(c[j>>2]|0)+-1>>0]|0|0)){n=6;break;}c[h>>2]=(c[h>>2]|0)+-1;c[j>>2]=(c[j>>2]|0)+-1;c[m>>2]=(c[m>>2]|0)+1;}if((n|0)==6){l=g;return c[m>>2]|0;}return 0;}function ao(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[h>>2]=a;c[i>>2]=b;c[j>>2]=e;c[k>>2]=c[h>>2];c[m>>2]=(c[j>>2]|0)+-3;a:do{if((c[h>>2]|0)>>>0<(c[m>>2]|0)>>>0){e=fo(c[i>>2]|0)|0;c[n>>2]=e^(fo(c[h>>2]|0)|0);if(c[n>>2]|0){c[g>>2]=go(c[n>>2]|0)|0;p=c[g>>2]|0;l=f;return p|0;}c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;while(1){if((c[h>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break a;e=fo(c[i>>2]|0)|0;c[o>>2]=e^(fo(c[h>>2]|0)|0);if(c[o>>2]|0)break;c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}e=go(c[o>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+e;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}}while(0);if((ho()|0?(c[h>>2]|0)>>>0<((c[j>>2]|0)+-3|0)>>>0:0)?(o=io(c[i>>2]|0)|0,(o|0)==(io(c[h>>2]|0)|0)):0){c[h>>2]=(c[h>>2]|0)+4;c[i>>2]=(c[i>>2]|0)+4;}if((c[h>>2]|0)>>>0<((c[j>>2]|0)+-1|0)>>>0?(o=(jo(c[i>>2]|0)|0)&65535,(o|0)==((jo(c[h>>2]|0)|0)&65535|0)):0){c[h>>2]=(c[h>>2]|0)+2;c[i>>2]=(c[i>>2]|0)+2;}if((c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?(d[c[i>>2]>>0]|0|0)==(d[c[h>>2]>>0]|0|0):0)c[h>>2]=(c[h>>2]|0)+1;c[g>>2]=(c[h>>2]|0)-(c[k>>2]|0);p=c[g>>2]|0;l=f;return p|0;}function bo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+80|0;i=h+56|0;j=h+48|0;k=h+40|0;m=h;n=h+36|0;o=h+32|0;p=h+28|0;q=h+24|0;r=h+20|0;s=h+16|0;t=h+8|0;c[k>>2]=a;a=m;c[a>>2]=b;c[a+4>>2]=d;c[n>>2]=e;c[o>>2]=f;f=m;c[p>>2]=Wn(c[f>>2]|0,c[f+4>>2]|0,c[n>>2]|0,c[g+16>>2]|0)|0;c[q>>2]=(1<>2])-1;if((c[p>>2]|0)!=(c[q>>2]|0)){l=h;return;}q=m;c[r>>2]=Xn(c[q>>2]|0,c[q+4>>2]|0,c[n>>2]|0)|0;q=m;c[s>>2]=Zn(c[q>>2]|0,c[q+4>>2]|0,c[n>>2]|0)|0;c[t>>2]=c[o>>2];c[t+4>>2]=c[s>>2];s=c[k>>2]|0;k=c[r>>2]|0;c[j>>2]=c[t>>2];c[j+4>>2]=c[t+4>>2];c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[i+20>>2]=c[g+20>>2];eo(s,k,j,i);l=h;return;}function co(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;k=l;l=l+64|0;m=k+40|0;n=k+36|0;o=k+8|0;p=k+32|0;q=k+28|0;r=k+24|0;s=k+20|0;t=k;u=k+16|0;c[n>>2]=b;b=o;c[b>>2]=d;c[b+4>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=i;i=o;o=c[i+4>>2]|0;h=t;c[h>>2]=c[i>>2];c[h+4>>2]=o;c[u>>2]=(c[p>>2]|0)+1;while(1){p=t;v=c[p>>2]|0;w=c[p+4>>2]|0;if((c[u>>2]|0)>>>0>=(c[q>>2]|0)>>>0)break;p=(c[n>>2]|0)+32|0;o=Un(v,w,a[(c[u>>2]|0)+-1>>0]|0,a[(c[u>>2]|0)+((c[j+12>>2]|0)-1)>>0]|0,c[p>>2]|0,c[p+4>>2]|0)|0;p=t;c[p>>2]=o;c[p+4>>2]=y;p=c[n>>2]|0;o=t;h=c[o>>2]|0;i=c[o+4>>2]|0;o=c[s>>2]|0;g=(c[u>>2]|0)-(c[r>>2]|0)|0;c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];c[m+12>>2]=c[j+12>>2];c[m+16>>2]=c[j+16>>2];c[m+20>>2]=c[j+20>>2];bo(p,h,i,o,g,m);c[u>>2]=(c[u>>2]|0)+1;}y=w;l=k;return v|0;}function eo(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0;h=l;l=l+48|0;i=h+16|0;j=h+8|0;k=h+4|0;m=h;c[j>>2]=b;c[k>>2]=e;c[m>>2]=c[(c[j>>2]|0)+24>>2];e=c[j>>2]|0;j=c[k>>2]|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[i+20>>2]=c[g+20>>2];b=Yn(e,j,i)|0;i=b+((d[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0)<<3)|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];f=(c[m>>2]|0)+(c[k>>2]|0)|0;a[f>>0]=(a[f>>0]|0)+1<<24>>24;f=(c[m>>2]|0)+(c[k>>2]|0)|0;a[f>>0]=(d[f>>0]|0)&(1<>2])-1;l=h;return;}function fo(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function go(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=l;l=l+16|0;d=b+4|0;e=b;c[e>>2]=a;a=(ko()|0)!=0;f=(ho()|0)!=0;g=c[e>>2]|0;do{if(a){if(f){e=ob(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(fE(g|0)|0)>>3;break;}}else if(f){e=lE(g|0,0,0)|0;c[d>>2]=e>>3;break;}else{c[d>>2]=(Q(g|0)|0)>>3;break;}}while(0);l=b;return c[d>>2]|0;}function ho(){return 0;}function io(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0;}function jo(a){a=a|0;var b=0,e=0;b=l;l=l+16|0;e=b;c[e>>2]=a;a=c[e>>2]|0;l=b;return d[a>>0]|d[a+1>>0]<<8|0;}function ko(){return d[11936]|0|0;}function lo(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=l;l=l+32|0;g=f+20|0;h=f+16|0;i=f+12|0;j=f;c[g>>2]=b;c[h>>2]=d;c[i>>2]=e;e=(c[c[g>>2]>>2]|0)+((c[(c[g>>2]|0)+4>>2]|0)*12|0)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];if((c[h>>2]|0)>>>0>=((c[j+4>>2]|0)+(c[j+8>>2]|0)|0)>>>0){e=(c[g>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+1;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}if((c[h>>2]|0)>>>0>(c[j+4>>2]|0)>>>0){if((c[h>>2]|0)>>>0<((c[j+4>>2]|0)+(c[j+8>>2]|0)|0)>>>0?(c[j+8>>2]=(c[h>>2]|0)-(c[j+4>>2]|0),(c[j+8>>2]|0)>>>0<(c[i>>2]|0)>>>0):0)c[j>>2]=0;}else c[j>>2]=0;An(c[g>>2]|0,c[h>>2]|0,c[i>>2]|0);c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];l=f;return;}function mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;f=d+4|0;g=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(c[f>>2]|0)-(c[(c[e>>2]|0)+4>>2]|0);if((c[g>>2]|0)>>>0<=((c[(c[e>>2]|0)+24>>2]|0)+1024|0)>>>0){l=d;return;}if(512<((c[g>>2]|0)-(c[(c[e>>2]|0)+24>>2]|0)-1024|0)>>>0)h=512;else h=(c[g>>2]|0)-(c[(c[e>>2]|0)+24>>2]|0)-1024|0;c[(c[e>>2]|0)+24>>2]=(c[g>>2]|0)-h;l=d;return;}function no(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e+12|0;g=e+8|0;h=e+4|0;i=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[h>>2];switch(c[(c[g>>2]|0)+24>>2]|0){case 1:{Nj(c[f>>2]|0,c[g>>2]|0,c[i>>2]|0);c[(c[f>>2]|0)+24>>2]=(c[i>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0);l=e;return 0;}case 2:{Oj(c[f>>2]|0,c[g>>2]|0,c[i>>2]|0);c[(c[f>>2]|0)+24>>2]=(c[i>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0);l=e;return 0;}default:{l=e;return 0;}}return 0;}function oo(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=l;l=l+32|0;i=h+16|0;j=h+12|0;k=h+8|0;m=h+4|0;n=h;c[i>>2]=a;c[j>>2]=d;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;po(c[(c[i>>2]|0)+12>>2]|0,c[k>>2]|0,c[j>>2]|0);k=(c[i>>2]|0)+12|0;c[k>>2]=(c[k>>2]|0)+(c[j>>2]|0);if((c[j>>2]|0)>>>0>65535){c[(c[i>>2]|0)+28>>2]=1;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;}b[(c[(c[i>>2]|0)+4>>2]|0)+4>>1]=c[j>>2];c[c[(c[i>>2]|0)+4>>2]>>2]=(c[m>>2]|0)+1;if((c[n>>2]|0)>>>0<=65535){o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}c[(c[i>>2]|0)+28>>2]=2;c[(c[i>>2]|0)+32>>2]=((c[(c[i>>2]|0)+4>>2]|0)-(c[c[i>>2]>>2]|0)|0)/8|0;o=c[n>>2]|0;p=o&65535;q=c[i>>2]|0;r=q+4|0;s=c[r>>2]|0;t=s+6|0;b[t>>1]=p;u=c[i>>2]|0;v=u+4|0;w=c[v>>2]|0;x=w+8|0;c[v>>2]=x;l=h;return;}function po(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+32|0;f=e+20|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[i>>2]=c[g>>2];c[j>>2]=c[f>>2];c[k>>2]=(c[j>>2]|0)+(c[h>>2]|0);do{qo(c[j>>2]|0,c[i>>2]|0);c[j>>2]=(c[j>>2]|0)+8;c[i>>2]=(c[i>>2]|0)+8;}while((c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0);l=e;return;}function qo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;f=c[g>>2]|0;a[d>>0]=a[f>>0]|0;a[d+1>>0]=a[f+1>>0]|0;a[d+2>>0]=a[f+2>>0]|0;a[d+3>>0]=a[f+3>>0]|0;a[d+4>>0]=a[f+4>>0]|0;a[d+5>>0]=a[f+5>>0]|0;a[d+6>>0]=a[f+6>>0]|0;a[d+7>>0]=a[f+7>>0]|0;l=e;return;}function ro(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=b;c[f>>2]=(c[e>>2]|0)-(c[a+4>>2]|0);l=d;return(c[f>>2]|0)>>>0>2684354560|0;}function so(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+28|0;h=f+24|0;i=f+20|0;j=f+16|0;k=f+12|0;m=f+8|0;n=f+4|0;o=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(1<>2])-1;c[m>>2]=(c[j>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);c[n>>2]=(c[m>>2]&c[k>>2])+(c[i>>2]|0);c[o>>2]=(c[m>>2]|0)-(c[n>>2]|0);n=(c[g>>2]|0)+4|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);n=(c[g>>2]|0)+8|0;c[n>>2]=(c[n>>2]|0)+(c[o>>2]|0);n=(c[g>>2]|0)+16|0;c[n>>2]=(c[n>>2]|0)-(c[o>>2]|0);n=(c[g>>2]|0)+12|0;c[n>>2]=(c[n>>2]|0)-(c[o>>2]|0);l=f;return c[o>>2]|0;}function to(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=l;l=l+32|0;e=d+20|0;f=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;c[e>>2]=a;c[f>>2]=b;c[g>>2]=(c[e>>2]|0)+472+8;c[h>>2]=1<>2]|0)+116+4+8>>2];vo(c[(c[g>>2]|0)+36>>2]|0,c[h>>2]|0,c[f>>2]|0);do{if((c[(c[e>>2]|0)+116+4+24>>2]|0)!=1){c[i>>2]=1<>2]|0)+116+4+4>>2];h=c[(c[g>>2]|0)+44>>2]|0;b=c[i>>2]|0;a=c[f>>2]|0;if((c[(c[e>>2]|0)+116+4+24>>2]|0)==6){wo(h,b,a);break;}else{vo(h,b,a);break;}}}while(0);if(!(c[(c[g>>2]|0)+32>>2]|0)){l=d;return;}c[j>>2]=1<>2]|0)+32>>2];vo(c[(c[g>>2]|0)+40>>2]|0,c[j>>2]|0,c[f>>2]|0);l=d;return;}function uo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f+24|0;h=f+20|0;i=f+16|0;j=f+12|0;k=f+8|0;m=f+4|0;n=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0);if(c[j>>2]|0)o=c[c[j>>2]>>2]|0;else o=0;c[m>>2]=o;if((c[k>>2]|0)>>>0<=((c[i>>2]|0)+(c[m>>2]|0)|0)>>>0){l=f;return;}c[n>>2]=(c[k>>2]|0)-(c[i>>2]|0);if((c[(c[g>>2]|0)+16>>2]|0)>>>0<(c[n>>2]|0)>>>0)c[(c[g>>2]|0)+16>>2]=c[n>>2];if((c[(c[g>>2]|0)+12>>2]|0)>>>0<(c[(c[g>>2]|0)+16>>2]|0)>>>0)c[(c[g>>2]|0)+12>>2]=c[(c[g>>2]|0)+16>>2];if(!(c[j>>2]|0)){l=f;return;}c[c[j>>2]>>2]=0;l=f;return;}function vo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;e=l;l=l+48|0;f=e+44|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;d=c[q>>2]|0;q=c[r>>2]|0;c[f>>2]=c[p>>2];c[g>>2]=d;c[h>>2]=q;c[i>>2]=0;c[j>>2]=(c[g>>2]|0)/16|0;c[k>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=16)break;if(c[i>>2]|0){c[o>>2]=(c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]|0)==1?c[h>>2]|0:0;g=(c[f>>2]|0)+(c[k>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)+(c[o>>2]|0);}if((c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>0<(c[h>>2]|0)>>>0)c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]=0;else{g=(c[f>>2]|0)+(c[k>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)-(c[h>>2]|0);}c[k>>2]=(c[k>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1;}c[m>>2]=(c[m>>2]|0)+1;}l=e;return;}function wo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;e=l;l=l+48|0;f=e+44|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e+24|0;m=e+20|0;n=e+16|0;o=e+12|0;p=e+8|0;q=e+4|0;r=e;c[p>>2]=a;c[q>>2]=b;c[r>>2]=d;d=c[q>>2]|0;q=c[r>>2]|0;c[f>>2]=c[p>>2];c[g>>2]=d;c[h>>2]=q;c[i>>2]=1;c[j>>2]=(c[g>>2]|0)/16|0;c[k>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){if((c[n>>2]|0)>=16)break;if(c[i>>2]|0){c[o>>2]=(c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]|0)==1?c[h>>2]|0:0;g=(c[f>>2]|0)+(c[k>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)+(c[o>>2]|0);}if((c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]|0)>>>0<(c[h>>2]|0)>>>0)c[(c[f>>2]|0)+(c[k>>2]<<2)>>2]=0;else{g=(c[f>>2]|0)+(c[k>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)-(c[h>>2]|0);}c[k>>2]=(c[k>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+1;}c[m>>2]=(c[m>>2]|0)+1;}l=e;return;}function xo(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;k=l;l=l+160|0;m=k+48|0;n=k+40|0;o=k+36|0;p=k+32|0;q=k+28|0;r=k+24|0;s=k+20|0;t=k;u=k+16|0;v=k+12|0;w=k+8|0;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=f;f=t;c[f>>2]=h;c[f+4>>2]=i;c[u>>2]=j;if(c[s>>2]|0?(c[(c[s>>2]|0)+8>>2]|0)>>>0>0:0){x=(c[o>>2]|0)+12|0;y=g;z=x+104|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0;}while((x|0)<(z|0));j=c[o>>2]|0;i=c[s>>2]|0;s=c[g+4>>2]|0;f=g+32|0;h=t;e=c[h>>2]|0;d=c[h+4>>2]|0;h=c[u>>2]|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[n>>2]=yo(j,i,s,m,e,d,h)|0;A=c[n>>2]|0;l=k;return A|0;}h=c[o>>2]|0;d=t;t=c[d>>2]|0;e=c[d+4>>2]|0;d=c[u>>2]|0;x=m;y=g;z=x+104|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0;}while((x|0)<(z|0));c[v>>2]=ml(h,m,t,e,0,d)|0;if(wj(c[v>>2]|0)|0){c[n>>2]=c[v>>2];A=c[n>>2]|0;l=k;return A|0;}c[w>>2]=Ej(c[(c[o>>2]|0)+472>>2]|0,(c[o>>2]|0)+472+8|0,g,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[(c[o>>2]|0)+588>>2]|0)|0;r=(Ph(c[w>>2]|0)|0)!=0;q=c[w>>2]|0;if(r){c[n>>2]=q;A=c[n>>2]|0;l=k;return A|0;}else{c[(c[o>>2]|0)+220>>2]=q;c[n>>2]=0;A=c[n>>2]|0;l=k;return A|0;}return 0;}function yo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;i=l;l=l+256|0;j=i+152|0;k=i+148|0;m=i+144|0;n=i+140|0;o=i;p=i+136|0;q=i+32|0;r=i+28|0;s=i+24|0;t=i+20|0;u=i+16|0;v=i+12|0;w=i+8|0;c[k>>2]=a;c[m>>2]=b;c[n>>2]=d;d=o;c[d>>2]=f;c[d+4>>2]=g;c[p>>2]=h;h=q;g=(c[k>>2]|0)+12|0;d=h+104|0;do{c[h>>2]=c[g>>2];h=h+4|0;g=g+4|0;}while((h|0)<(d|0));f=q+4|0;b=(c[m>>2]|0)+4720|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];if(c[n>>2]|0)c[q+4>>2]=c[n>>2];n=q+32|0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];e=c[k>>2]|0;n=o;o=c[n>>2]|0;b=c[n+4>>2]|0;n=c[p>>2]|0;h=j;g=q;d=h+104|0;do{c[h>>2]=c[g>>2];h=h+4|0;g=g+4|0;}while((h|0)<(d|0));ml(e,j,o,b,1,n)|0;if((c[(c[m>>2]|0)+4720+24>>2]|0)==1)x=0;else x=1<>2]|0)+4720+4>>2];c[r>>2]=x;c[s>>2]=1<>2]|0)+4720+8>>2];c[t>>2]=(c[r>>2]|0)+(c[s>>2]|0)<<2;mE(c[(c[k>>2]|0)+472+8+36>>2]|0,c[(c[m>>2]|0)+20+36>>2]|0,c[t>>2]|0)|0;c[u>>2]=1<>2]|0)+472+8+32>>2];oE(c[(c[k>>2]|0)+472+8+40>>2]|0,0,c[u>>2]<<2|0)|0;c[v>>2]=(c[m>>2]|0)+20;c[w>>2]=(c[k>>2]|0)+472+8;u=c[w>>2]|0;t=c[v>>2]|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[(c[w>>2]|0)+24>>2]=c[(c[v>>2]|0)+24>>2];c[(c[w>>2]|0)+28>>2]=c[(c[v>>2]|0)+28>>2];c[(c[w>>2]|0)+20>>2]=c[(c[v>>2]|0)+20>>2];c[(c[k>>2]|0)+220>>2]=c[(c[m>>2]|0)+4760>>2];mE(c[(c[k>>2]|0)+472>>2]|0,(c[m>>2]|0)+128|0,4592)|0;l=i;return 0;}function zo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+112|0;f=e;g=f;h=b;b=g+104|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0;}while((g|0)<(b|0));i=f+4|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];c[i+20>>2]=c[d+20>>2];c[i+24>>2]=c[d+24>>2];i=f+32|0;j=d+28|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[f+44>>2]=3;g=a;h=f;b=g+104|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0;}while((g|0)<(b|0));l=e;return;}function Ao(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,m=0;g=l;l=l+96|0;h=g+84|0;i=g;j=g+80|0;k=g+40|0;m=g+8|0;c[h>>2]=b;b=i;c[b>>2]=d;c[b+4>>2]=e;c[j>>2]=f;f=i;sj(m,c[h>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[j>>2]|0);j=k;f=j+40|0;do{c[j>>2]=0;j=j+4|0;}while((j|0)<(f|0));c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];c[k+28>>2]=1;j=a;a=k;f=j+40|0;do{c[j>>2]=c[a>>2];j=j+4|0;a=a+4|0;}while((j|0)<(f|0));l=g;return;}function Bo(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,m=0,n=0,o=0,p=0,q=0;g=l;l=l+32|0;h=g+28|0;i=g+24|0;j=g+20|0;k=g+16|0;m=g+12|0;n=g+8|0;o=g+4|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[p>>2]=wn(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,1,1)|0;if(Ph(c[p>>2]|0)|0){c[h>>2]=c[p>>2];q=c[h>>2]|0;l=g;return q|0;}c[o>>2]=Co(c[i>>2]|0,(c[j>>2]|0)+(c[p>>2]|0)|0,(c[k>>2]|0)-(c[p>>2]|0)|0)|0;if(Ph(c[o>>2]|0)|0){c[h>>2]=c[o>>2];q=c[h>>2]|0;l=g;return q|0;}if(c[(c[i>>2]|0)+116+32>>2]|0?(k=(c[i>>2]|0)+240|0,j=c[k>>2]|0,n=c[k+4>>2]|0,k=(c[i>>2]|0)+248|0,i=dE(c[k>>2]|0,c[k+4>>2]|0,1,0)|0,(j|0)!=(i|0)|(n|0)!=(y|0)):0){c[h>>2]=-72;q=c[h>>2]|0;l=g;return q|0;}c[h>>2]=(c[p>>2]|0)+(c[o>>2]|0);q=c[h>>2]|0;l=g;return q|0;}function Co(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=l;l=l+144|0;f=e+40|0;g=e+32|0;h=e+28|0;i=e+24|0;j=e+20|0;k=e+16|0;m=e+12|0;n=e+8|0;o=e+4|0;p=e;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;c[k>>2]=c[i>>2];c[m>>2]=c[k>>2];c[n>>2]=0;if(!(c[c[h>>2]>>2]|0)){c[g>>2]=-60;q=c[g>>2]|0;l=e;return q|0;}do{if((c[c[h>>2]>>2]|0)==1){d=c[i>>2]|0;b=c[j>>2]|0;a=f;r=(c[h>>2]|0)+116|0;s=a+104|0;do{c[a>>2]=c[r>>2];a=a+4|0;r=r+4|0;}while((a|0)<(s|0));c[n>>2]=xn(d,b,f,0,0,0)|0;r=(Ph(c[n>>2]|0)|0)!=0;a=c[n>>2]|0;if(!r){c[j>>2]=(c[j>>2]|0)-a;c[m>>2]=(c[m>>2]|0)+(c[n>>2]|0);c[c[h>>2]>>2]=2;break;}c[g>>2]=a;q=c[g>>2]|0;l=e;return q|0;}}while(0);do{if((c[c[h>>2]>>2]|0)!=3){c[o>>2]=1;if((c[j>>2]|0)>>>0>=4){Pl(c[m>>2]|0,1);c[m>>2]=(c[m>>2]|0)+3;c[j>>2]=(c[j>>2]|0)-3;break;}c[g>>2]=-70;q=c[g>>2]|0;l=e;return q|0;}}while(0);do{if(c[(c[h>>2]|0)+116+32+4>>2]|0){o=Oh((c[h>>2]|0)+264|0)|0;c[p>>2]=o;if((c[j>>2]|0)>>>0>=4){Pl(c[m>>2]|0,c[p>>2]|0);c[m>>2]=(c[m>>2]|0)+4;break;}c[g>>2]=-70;q=c[g>>2]|0;l=e;return q|0;}}while(0);c[c[h>>2]>>2]=0;c[g>>2]=(c[m>>2]|0)-(c[k>>2]|0);q=c[g>>2]|0;l=e;return q|0;}function Do(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=l;l=l+144|0;k=j+40|0;m=j+32|0;n=j+28|0;o=j+24|0;p=j+20|0;q=j+16|0;r=j+12|0;s=j+8|0;t=j+4|0;u=j;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;h=c[n>>2]|0;g=c[s>>2]|0;s=c[t>>2]|0;t=c[r>>2]|0;f=k;e=i;i=f+104|0;do{c[f>>2]=c[e>>2];f=f+4|0;e=e+4|0;}while((f|0)<(i|0));c[u>>2]=xo(h,g,s,0,0,k,t,0,0)|0;if(wj(c[u>>2]|0)|0){c[m>>2]=c[u>>2];v=c[m>>2]|0;l=j;return v|0;}else{c[m>>2]=Bo(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;v=c[m>>2]|0;l=j;return v|0;}return 0;}function Eo(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=l;l=l+400|0;k=j+288|0;m=j+176|0;n=j+280|0;o=j+168|0;p=j+164|0;q=j+160|0;r=j+156|0;s=j+152|0;t=j+148|0;u=j+144|0;v=j+104|0;w=j;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=i;Ao(v,c[u>>2]|0,c[r>>2]|0?c[r>>2]|0:1,0,c[s>>2]|0?c[t>>2]|0:0);i=m;h=(c[n>>2]|0)+12|0;g=i+104|0;do{c[i>>2]=c[h>>2];i=i+4|0;h=h+4|0;}while((i|0)<(g|0));i=k;h=v;g=i+40|0;do{c[i>>2]=c[h>>2];i=i+4|0;h=h+4|0;}while((i|0)<(g|0));zo(w,m,k);xj(w,1e3,(c[u>>2]|0)>=0&1)|0;u=c[n>>2]|0;n=c[o>>2]|0;o=c[p>>2]|0;p=c[q>>2]|0;q=c[r>>2]|0;r=c[s>>2]|0;s=c[t>>2]|0;i=k;h=w;g=i+104|0;do{c[i>>2]=c[h>>2];i=i+4|0;h=h+4|0;}while((i|0)<(g|0));h=Do(u,n,o,p,q,r,s,k)|0;l=j;return h|0;}function Fo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;h=l;l=l+32|0;i=h+20|0;j=h+16|0;k=h+12|0;m=h+8|0;n=h+4|0;o=h;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;g=Eo(c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,0,0,c[o>>2]|0)|0;l=h;return g|0;}function Go(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,m=0,n=0,o=0,p=0;g=l;l=l+704|0;h=g+680|0;i=g+676|0;j=g+672|0;k=g+668|0;m=g+664|0;n=g+660|0;o=g+656|0;p=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;oE(p|0,0,656)|0;f=p+352|0;c[f>>2]=c[5406];c[f+4>>2]=c[5407];c[f+8>>2]=c[5408];c[o>>2]=Fo(p,c[i>>2]|0,c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;n=c[p+224>>2]|0;c[h>>2]=c[5406];c[h+4>>2]=c[5407];c[h+8>>2]=c[5408];Th(n,h);l=g;return c[o>>2]|0;}function Ho(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=l;l=l+80|0;f=e+68|0;g=e+40|0;h=e+36|0;i=e+32|0;j=e+28|0;k=e;c[h>>2]=a;c[i>>2]=b;c[j>>2]=d;sj(k,c[j>>2]|0,0,0,c[i>>2]|0);j=c[h>>2]|0;h=c[i>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];c[g+20>>2]=c[k+20>>2];c[g+24>>2]=c[k+24>>2];c[f>>2]=c[5406];c[f+4>>2]=c[5407];c[f+8>>2]=c[5408];k=zj(j,h,0,0,g,f)|0;l=e;return k|0;}function Io(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=(c[e>>2]|0)+4720|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];l=d;return;}function Jo(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=l;l=l+272|0;h=g+168|0;i=g+160|0;j=g+156|0;k=g+152|0;m=g;n=g+48|0;o=g+16|0;p=g+12|0;q=g+8|0;c[j>>2]=a;c[k>>2]=b;b=m;c[b>>2]=e;c[b+4>>2]=f;if(!(c[k>>2]|0)){c[i>>2]=-32;r=c[i>>2]|0;l=g;return r|0;}f=n;b=(c[j>>2]|0)+12|0;e=f+104|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0;}while((f|0)<(e|0));a=n+4|0;Io(o,c[k>>2]|0);c[a>>2]=c[o>>2];c[a+4>>2]=c[o+4>>2];c[a+8>>2]=c[o+8>>2];c[a+12>>2]=c[o+12>>2];c[a+16>>2]=c[o+16>>2];c[a+20>>2]=c[o+20>>2];c[a+24>>2]=c[o+24>>2];o=m;if((c[o>>2]|0)!=-1?1:(c[o+4>>2]|0)!=-1){o=m;a=c[o+4>>2]|0;s=a>>>0<0|(a|0)==0&(c[o>>2]|0)>>>0<524288;o=m;a=c[o+4>>2]|0;a=s?c[o>>2]|0:524288;c[p>>2]=a;if((c[p>>2]|0)>>>0>1)t=(uj((c[p>>2]|0)-1|0)|0)+1|0;else t=1;c[q>>2]=t;c[n+4>>2]=(c[n+4>>2]|0)>>>0>(c[q>>2]|0)>>>0?c[n+4>>2]|0:c[q>>2]|0;}q=n+32|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];d=c[j>>2]|0;j=c[k>>2]|0;k=m;m=c[k>>2]|0;q=c[k+4>>2]|0;f=h;b=n;e=f+104|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0;}while((f|0)<(e|0));c[i>>2]=xo(d,0,0,0,j,h,m,q,0)|0;r=c[i>>2]|0;l=g;return r|0;}function hy(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,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;g=l;l=l+112|0;h=g+100|0;i=g+96|0;j=g+92|0;k=g+88|0;m=g+84|0;n=g+80|0;o=g+76|0;p=g+72|0;q=g+68|0;r=g+64|0;s=g+60|0;t=g+56|0;u=g+52|0;v=g+48|0;w=g+44|0;x=g+40|0;y=g+36|0;z=g+32|0;A=g+28|0;B=g+24|0;C=g+20|0;D=g+16|0;E=g+12|0;F=g+8|0;G=g+4|0;H=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=c[o>>2];c[q>>2]=(c[o>>2]|0)+(c[c[n>>2]>>2]|0);c[r>>2]=c[j>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[r>>2]|0)+(c[c[k>>2]>>2]|0);c[u>>2]=1;a:while(1){if(!(c[u>>2]|0)){I=48;break;}switch(c[(c[i>>2]|0)+80>>2]|0){case 0:{I=4;break a;break;}case 1:{c[v>>2]=yq((c[i>>2]|0)+8|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;j=(mr(c[v>>2]|0)|0)!=0;J=c[v>>2]|0;if(j){I=6;break a;}K=c[i>>2]|0;if(J|0){I=8;break a;}c[K+80>>2]=3;break;}case 2:{c[w>>2]=ry((c[i>>2]|0)+84+(c[(c[i>>2]|0)+76>>2]|0)|0,5-(c[(c[i>>2]|0)+76>>2]|0)|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;j=(c[i>>2]|0)+76|0;c[j>>2]=(c[j>>2]|0)+(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[w>>2]|0);c[w>>2]=yq((c[i>>2]|0)+8|0,(c[i>>2]|0)+84|0,c[(c[i>>2]|0)+76>>2]|0)|0;j=(mr(c[w>>2]|0)|0)!=0;L=c[w>>2]|0;if(j){I=11;break a;}if(L|0){I=13;break a;}else I=14;break;}case 3:{I=14;break;}case 4:{I=23;break;}case 5:{I=33;break;}case 6:{I=42;break;}default:{I=46;break a;}}do{if((I|0)==14){I=0;c[x>>2]=1<>2]|0)+8+8>>2];c[y>>2]=131072;if((c[(c[i>>2]|0)+52>>2]|0)>>>0<(c[y>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+48>>2]|0),c[(c[i>>2]|0)+52>>2]=c[y>>2],j=Cy(c[y>>2]|0)|0,c[(c[i>>2]|0)+48>>2]=j,(c[(c[i>>2]|0)+48>>2]|0)==0):0){I=16;break a;}if((c[(c[i>>2]|0)+64>>2]|0)>>>0<(c[x>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+60>>2]|0),c[(c[i>>2]|0)+64>>2]=c[x>>2],j=Cy(c[x>>2]|0)|0,c[(c[i>>2]|0)+60>>2]=j,(c[(c[i>>2]|0)+60>>2]|0)==0):0){I=19;break a;}j=c[i>>2]|0;if(c[(c[i>>2]|0)+76>>2]|0){mE(c[j+48>>2]|0,(c[i>>2]|0)+84|0,c[(c[i>>2]|0)+76>>2]|0)|0;c[(c[i>>2]|0)+56>>2]=c[(c[i>>2]|0)+76>>2];c[(c[i>>2]|0)+76>>2]=0;c[(c[i>>2]|0)+80>>2]=5;break;}else{c[j+80>>2]=4;I=23;break;}}}while(0);do{if((I|0)==23){I=0;c[z>>2]=sy(c[c[i>>2]>>2]|0)|0;if(!(c[z>>2]|0)){c[(c[i>>2]|0)+80>>2]=0;c[u>>2]=0;break;}if(((c[q>>2]|0)-(c[p>>2]|0)|0)>>>0<(c[z>>2]|0)>>>0){if((c[p>>2]|0)==(c[q>>2]|0)){c[u>>2]=0;break;}else{c[(c[i>>2]|0)+80>>2]=5;I=33;break;}}else{c[A>>2]=ty(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+60>>2]|0)+(c[(c[i>>2]|0)+68>>2]|0)|0,(c[(c[i>>2]|0)+64>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0)|0,c[p>>2]|0,c[z>>2]|0)|0;if(mr(c[A>>2]|0)|0){I=27;break a;}c[p>>2]=(c[p>>2]|0)+(c[z>>2]|0);if(!(c[A>>2]|0))break;c[(c[i>>2]|0)+72>>2]=(c[(c[i>>2]|0)+68>>2]|0)+(c[A>>2]|0);c[(c[i>>2]|0)+80>>2]=6;break;}}}while(0);do{if((I|0)==33){I=0;c[B>>2]=sy(c[c[i>>2]>>2]|0)|0;c[C>>2]=(c[B>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0);if((c[C>>2]|0)>>>0>((c[(c[i>>2]|0)+52>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0)|0)>>>0){I=34;break a;}c[D>>2]=ry((c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0,c[C>>2]|0,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;c[p>>2]=(c[p>>2]|0)+(c[D>>2]|0);j=(c[i>>2]|0)+56|0;c[j>>2]=(c[j>>2]|0)+(c[D>>2]|0);if((c[D>>2]|0)>>>0<(c[C>>2]|0)>>>0){c[u>>2]=0;break;}c[E>>2]=ty(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+60>>2]|0)+(c[(c[i>>2]|0)+68>>2]|0)|0,(c[(c[i>>2]|0)+64>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0)|0,c[(c[i>>2]|0)+48>>2]|0,c[B>>2]|0)|0;if(mr(c[E>>2]|0)|0){I=38;break a;}c[(c[i>>2]|0)+56>>2]=0;j=c[i>>2]|0;if(c[E>>2]|0){c[(c[i>>2]|0)+72>>2]=(c[j+68>>2]|0)+(c[E>>2]|0);c[(c[i>>2]|0)+80>>2]=6;I=42;break;}else{c[j+80>>2]=4;break;}}}while(0);do{if((I|0)==42){I=0;c[F>>2]=(c[(c[i>>2]|0)+72>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0);c[G>>2]=ry(c[s>>2]|0,(c[t>>2]|0)-(c[s>>2]|0)|0,(c[(c[i>>2]|0)+60>>2]|0)+(c[(c[i>>2]|0)+68>>2]|0)|0,c[F>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[G>>2]|0);j=(c[i>>2]|0)+68|0;c[j>>2]=(c[j>>2]|0)+(c[G>>2]|0);if((c[G>>2]|0)!=(c[F>>2]|0)){c[u>>2]=0;break;}c[(c[i>>2]|0)+80>>2]=4;if(((c[(c[i>>2]|0)+68>>2]|0)+131072|0)>>>0>(c[(c[i>>2]|0)+64>>2]|0)>>>0){c[(c[i>>2]|0)+72>>2]=0;c[(c[i>>2]|0)+68>>2]=0;}}}while(0);}switch(I|0){case 4:{c[h>>2]=-62;M=c[h>>2]|0;l=g;return M|0;}case 6:{c[h>>2]=J;M=c[h>>2]|0;l=g;return M|0;}case 8:{mE(K+84+(c[(c[i>>2]|0)+76>>2]|0)|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;m=(c[i>>2]|0)+76|0;c[m>>2]=(c[m>>2]|0)+(c[c[n>>2]>>2]|0);c[c[k>>2]>>2]=0;c[(c[i>>2]|0)+80>>2]=2;c[h>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+76>>2]|0);M=c[h>>2]|0;l=g;return M|0;}case 11:{c[h>>2]=L;M=c[h>>2]|0;l=g;return M|0;}case 13:{c[c[k>>2]>>2]=0;c[h>>2]=(c[w>>2]|0)-(c[(c[i>>2]|0)+76>>2]|0);M=c[h>>2]|0;l=g;return M|0;}case 16:{c[h>>2]=-64;M=c[h>>2]|0;l=g;return M|0;}case 19:{c[h>>2]=-64;M=c[h>>2]|0;l=g;return M|0;}case 27:{c[h>>2]=c[A>>2];M=c[h>>2]|0;l=g;return M|0;}case 34:{c[h>>2]=-20;M=c[h>>2]|0;l=g;return M|0;}case 38:{c[h>>2]=c[E>>2];M=c[h>>2]|0;l=g;return M|0;}case 46:{c[h>>2]=-1;M=c[h>>2]|0;l=g;return M|0;}case 48:{c[c[n>>2]>>2]=(c[p>>2]|0)-(c[o>>2]|0);c[c[k>>2]>>2]=(c[s>>2]|0)-(c[r>>2]|0);c[H>>2]=sy(c[c[i>>2]>>2]|0)|0;if((c[H>>2]|0)>>>0>3)c[H>>2]=(c[H>>2]|0)+3;c[H>>2]=(c[H>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0);c[h>>2]=c[H>>2];M=c[h>>2]|0;l=g;return M|0;}}return 0;}function iy(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,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;g=l;l=l+128|0;h=g+116|0;i=g+112|0;j=g+108|0;k=g+104|0;m=g+100|0;n=g+96|0;o=g+92|0;p=g+88|0;q=g+84|0;r=g+80|0;s=g+76|0;t=g+72|0;u=g+68|0;v=g+64|0;w=g+60|0;x=g+56|0;y=g+52|0;z=g+48|0;A=g+44|0;B=g+40|0;C=g+36|0;D=g+32|0;E=g+28|0;F=g+24|0;G=g+20|0;H=g+16|0;I=g+12|0;J=g+8|0;K=g+4|0;L=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=(c[o>>2]|0)+(c[c[n>>2]>>2]|0);c[q>>2]=c[o>>2];c[r>>2]=c[j>>2];c[s>>2]=(c[r>>2]|0)+(c[c[k>>2]>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=1;a:while(1){if(!(c[u>>2]|0)){M=50;break;}b:do{switch(c[(c[i>>2]|0)+24>>2]|0){case 0:{M=4;break a;break;}case 1:{c[v>>2]=zq((c[i>>2]|0)+8|0,(c[i>>2]|0)+60|0,c[(c[i>>2]|0)+76>>2]|0)|0;if(c[v>>2]|0){c[w>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+76>>2]|0);if(jr(c[v>>2]|0)|0){M=7;break a;}N=(c[i>>2]|0)+60+(c[(c[i>>2]|0)+76>>2]|0)|0;O=c[q>>2]|0;if((c[w>>2]|0)>>>0>((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0){M=9;break a;}mE(N|0,O|0,c[w>>2]|0)|0;c[(c[i>>2]|0)+76>>2]=c[v>>2];c[q>>2]=(c[q>>2]|0)+(c[w>>2]|0);break b;}c[x>>2]=oy(c[c[i>>2]>>2]|0)|0;c[y>>2]=py(c[c[i>>2]>>2]|0,0,0,(c[i>>2]|0)+60|0,c[x>>2]|0)|0;if(jr(c[y>>2]|0)|0){M=12;break a;}if((c[x>>2]|0)>>>0<(c[(c[i>>2]|0)+76>>2]|0)>>>0?(c[z>>2]=oy(c[c[i>>2]>>2]|0)|0,c[A>>2]=py(c[c[i>>2]>>2]|0,0,0,(c[i>>2]|0)+60+(c[x>>2]|0)|0,c[z>>2]|0)|0,jr(c[A>>2]|0)|0):0){M=15;break a;}if((1<>2]|0)+8+8>>2]|0)<131072)P=1<>2]|0)+8+8>>2];else P=131072;c[B>>2]=P;c[(c[i>>2]|0)+56>>2]=c[B>>2];if((c[(c[i>>2]|0)+32>>2]|0)>>>0<(c[B>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+28>>2]|0),c[(c[i>>2]|0)+32>>2]=c[B>>2],j=Cy(c[B>>2]|0)|0,c[(c[i>>2]|0)+28>>2]=j,(c[(c[i>>2]|0)+28>>2]|0)==0):0){M=20;break a;}c[C>>2]=(1<>2]|0)+8+8>>2])+(c[B>>2]|0)+16;if((c[(c[i>>2]|0)+44>>2]|0)>>>0<(c[C>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+40>>2]|0),c[(c[i>>2]|0)+44>>2]=c[C>>2],j=Cy(c[C>>2]|0)|0,c[(c[i>>2]|0)+40>>2]=j,(c[(c[i>>2]|0)+40>>2]|0)==0):0){M=23;break a;}c[(c[i>>2]|0)+24>>2]=2;M=25;break;}case 2:{M=25;break;}case 3:{M=35;break;}case 4:{M=44;break;}default:{M=48;break a;}}}while(0);do{if((M|0)==25){M=0;c[D>>2]=oy(c[c[i>>2]>>2]|0)|0;if(!(c[D>>2]|0)){c[(c[i>>2]|0)+24>>2]=0;c[u>>2]=0;break;}if(((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0<(c[D>>2]|0)>>>0){if((c[q>>2]|0)==(c[p>>2]|0)){c[u>>2]=0;break;}else{c[(c[i>>2]|0)+24>>2]=3;M=35;break;}}else{c[E>>2]=py(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+40>>2]|0)+(c[(c[i>>2]|0)+48>>2]|0)|0,(c[(c[i>>2]|0)+44>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0)|0,c[q>>2]|0,c[D>>2]|0)|0;if(jr(c[E>>2]|0)|0){M=29;break a;}c[q>>2]=(c[q>>2]|0)+(c[D>>2]|0);if(!(c[E>>2]|0))break;c[(c[i>>2]|0)+52>>2]=(c[(c[i>>2]|0)+48>>2]|0)+(c[E>>2]|0);c[(c[i>>2]|0)+24>>2]=4;break;}}}while(0);do{if((M|0)==35){M=0;c[F>>2]=oy(c[c[i>>2]>>2]|0)|0;c[G>>2]=(c[F>>2]|0)-(c[(c[i>>2]|0)+36>>2]|0);if((c[G>>2]|0)>>>0>((c[(c[i>>2]|0)+32>>2]|0)-(c[(c[i>>2]|0)+36>>2]|0)|0)>>>0){M=36;break a;}c[H>>2]=qy((c[(c[i>>2]|0)+28>>2]|0)+(c[(c[i>>2]|0)+36>>2]|0)|0,c[G>>2]|0,c[q>>2]|0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0;c[q>>2]=(c[q>>2]|0)+(c[H>>2]|0);j=(c[i>>2]|0)+36|0;c[j>>2]=(c[j>>2]|0)+(c[H>>2]|0);if((c[H>>2]|0)>>>0<(c[G>>2]|0)>>>0){c[u>>2]=0;break;}c[I>>2]=py(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+40>>2]|0)+(c[(c[i>>2]|0)+48>>2]|0)|0,(c[(c[i>>2]|0)+44>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0)|0,c[(c[i>>2]|0)+28>>2]|0,c[F>>2]|0)|0;if(jr(c[I>>2]|0)|0){M=40;break a;}c[(c[i>>2]|0)+36>>2]=0;j=c[i>>2]|0;if(c[I>>2]|0){c[(c[i>>2]|0)+52>>2]=(c[j+48>>2]|0)+(c[I>>2]|0);c[(c[i>>2]|0)+24>>2]=4;M=44;break;}else{c[j+24>>2]=2;break;}}}while(0);do{if((M|0)==44){M=0;c[J>>2]=(c[(c[i>>2]|0)+52>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0);c[K>>2]=qy(c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,(c[(c[i>>2]|0)+40>>2]|0)+(c[(c[i>>2]|0)+48>>2]|0)|0,c[J>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[K>>2]|0);j=(c[i>>2]|0)+48|0;c[j>>2]=(c[j>>2]|0)+(c[K>>2]|0);if((c[K>>2]|0)!=(c[J>>2]|0)){c[u>>2]=0;break;}c[(c[i>>2]|0)+24>>2]=2;if(((c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0)>>>0>(c[(c[i>>2]|0)+44>>2]|0)>>>0){c[(c[i>>2]|0)+52>>2]=0;c[(c[i>>2]|0)+48>>2]=0;}}}while(0);}switch(M|0){case 4:{c[h>>2]=-62;Q=c[h>>2]|0;l=g;return Q|0;}case 7:{c[h>>2]=c[v>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 9:{mE(N|0,O|0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0;O=(c[i>>2]|0)+76|0;c[O>>2]=(c[O>>2]|0)+((c[p>>2]|0)-(c[q>>2]|0));c[q>>2]=c[p>>2];c[u>>2]=0;c[c[k>>2]>>2]=0;c[h>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+76>>2]|0)+3;Q=c[h>>2]|0;l=g;return Q|0;}case 12:{c[h>>2]=c[y>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 15:{c[h>>2]=c[A>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 20:{c[h>>2]=-64;Q=c[h>>2]|0;l=g;return Q|0;}case 23:{c[h>>2]=-64;Q=c[h>>2]|0;l=g;return Q|0;}case 29:{c[h>>2]=c[E>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 36:{c[h>>2]=-20;Q=c[h>>2]|0;l=g;return Q|0;}case 40:{c[h>>2]=c[I>>2];Q=c[h>>2]|0;l=g;return Q|0;}case 48:{c[h>>2]=-1;Q=c[h>>2]|0;l=g;return Q|0;}case 50:{c[c[n>>2]>>2]=(c[q>>2]|0)-(c[o>>2]|0);c[c[k>>2]>>2]=(c[t>>2]|0)-(c[r>>2]|0);c[L>>2]=oy(c[c[i>>2]>>2]|0)|0;if((c[L>>2]|0)>>>0>3)c[L>>2]=(c[L>>2]|0)+3;c[L>>2]=(c[L>>2]|0)-(c[(c[i>>2]|0)+36>>2]|0);c[h>>2]=c[L>>2];Q=c[h>>2]|0;l=g;return Q|0;}}return 0;}function jy(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,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;g=l;l=l+128|0;h=g+124|0;i=g+120|0;j=g+116|0;k=g+112|0;m=g+108|0;n=g+104|0;o=g+100|0;p=g+96|0;q=g+92|0;r=g+88|0;s=g+84|0;t=g+80|0;u=g+76|0;v=g+72|0;w=g+68|0;x=g+64|0;y=g+60|0;z=g+56|0;A=g+52|0;B=g+48|0;C=g+44|0;D=g+40|0;E=g+36|0;F=g+32|0;G=g+28|0;H=g+24|0;I=g+20|0;J=g+16|0;K=g+12|0;L=g+8|0;M=g+4|0;N=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=(c[o>>2]|0)+(c[c[n>>2]>>2]|0);c[q>>2]=c[o>>2];c[r>>2]=c[j>>2];c[s>>2]=(c[r>>2]|0)+(c[c[k>>2]>>2]|0);c[t>>2]=c[r>>2];c[u>>2]=1;a:while(1){if(!(c[u>>2]|0)){O=54;break;}b:do{switch(c[(c[i>>2]|0)+32>>2]|0){case 0:{O=4;break a;break;}case 1:{c[v>>2]=Aq((c[i>>2]|0)+8|0,(c[i>>2]|0)+68|0,c[(c[i>>2]|0)+88>>2]|0)|0;j=(hr(c[v>>2]|0)|0)!=0;P=c[v>>2]|0;if(j){O=6;break a;}if(P|0){c[w>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+88>>2]|0);Q=(c[i>>2]|0)+68+(c[(c[i>>2]|0)+88>>2]|0)|0;R=c[q>>2]|0;if((c[w>>2]|0)>>>0>((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0){O=9;break a;}mE(Q|0,R|0,c[w>>2]|0)|0;c[(c[i>>2]|0)+88>>2]=c[v>>2];c[q>>2]=(c[q>>2]|0)+(c[w>>2]|0);break b;}c[x>>2]=ky(c[c[i>>2]>>2]|0)|0;c[y>>2]=ly(c[c[i>>2]>>2]|0,0,0,(c[i>>2]|0)+68|0,c[x>>2]|0)|0;if(hr(c[y>>2]|0)|0){O=12;break a;}if((c[x>>2]|0)>>>0<(c[(c[i>>2]|0)+88>>2]|0)>>>0?(c[z>>2]=ky(c[c[i>>2]>>2]|0)|0,c[A>>2]=ly(c[c[i>>2]>>2]|0,0,0,(c[i>>2]|0)+68+(c[x>>2]|0)|0,c[z>>2]|0)|0,hr(c[A>>2]|0)|0):0){O=15;break a;}if((c[(c[i>>2]|0)+8+8>>2]|0)>>>0>1024)S=c[(c[i>>2]|0)+8+8>>2]|0;else S=1024;c[(c[i>>2]|0)+8+8>>2]=S;if((c[(c[i>>2]|0)+8+8>>2]|0)>>>0<131072)T=c[(c[i>>2]|0)+8+8>>2]|0;else T=131072;c[B>>2]=T;c[(c[i>>2]|0)+64>>2]=c[B>>2];if((c[(c[i>>2]|0)+40>>2]|0)>>>0<(c[B>>2]|0)>>>0?(xc[c[(c[i>>2]|0)+92+4>>2]&31](c[(c[i>>2]|0)+92+8>>2]|0,c[(c[i>>2]|0)+36>>2]|0),c[(c[i>>2]|0)+40>>2]=c[B>>2],j=qc[c[(c[i>>2]|0)+92>>2]&63](c[(c[i>>2]|0)+92+8>>2]|0,c[B>>2]|0)|0,c[(c[i>>2]|0)+36>>2]=j,(c[(c[i>>2]|0)+36>>2]|0)==0):0){O=22;break a;}c[C>>2]=(c[(c[i>>2]|0)+8+8>>2]|0)+(c[B>>2]|0)+16;if((c[(c[i>>2]|0)+52>>2]|0)>>>0<(c[C>>2]|0)>>>0?(xc[c[(c[i>>2]|0)+92+4>>2]&31](c[(c[i>>2]|0)+92+8>>2]|0,c[(c[i>>2]|0)+48>>2]|0),c[(c[i>>2]|0)+52>>2]=c[C>>2],j=qc[c[(c[i>>2]|0)+92>>2]&63](c[(c[i>>2]|0)+92+8>>2]|0,c[C>>2]|0)|0,c[(c[i>>2]|0)+48>>2]=j,(c[(c[i>>2]|0)+48>>2]|0)==0):0){O=25;break a;}c[(c[i>>2]|0)+32>>2]=2;O=27;break;}case 2:{O=27;break;}case 3:{O=39;break;}case 4:{O=48;break;}default:{O=52;break a;}}}while(0);do{if((O|0)==27){O=0;c[D>>2]=ky(c[c[i>>2]>>2]|0)|0;if(!(c[D>>2]|0)){c[(c[i>>2]|0)+32>>2]=0;c[u>>2]=0;break;}if(((c[p>>2]|0)-(c[q>>2]|0)|0)>>>0<(c[D>>2]|0)>>>0)if((c[q>>2]|0)==(c[p>>2]|0)){c[u>>2]=0;break;}else{c[(c[i>>2]|0)+32>>2]=3;O=39;break;}c[E>>2]=my(c[c[i>>2]>>2]|0)|0;if(c[E>>2]|0)U=0;else U=(c[(c[i>>2]|0)+52>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0)|0;c[F>>2]=ly(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0,U,c[q>>2]|0,c[D>>2]|0)|0;if(hr(c[F>>2]|0)|0){O=33;break a;}c[q>>2]=(c[q>>2]|0)+(c[D>>2]|0);if((c[F>>2]|0)!=0|(c[E>>2]|0)!=0){c[(c[i>>2]|0)+60>>2]=(c[(c[i>>2]|0)+56>>2]|0)+(c[F>>2]|0);c[(c[i>>2]|0)+32>>2]=4;}}}while(0);do{if((O|0)==39){O=0;c[G>>2]=ky(c[c[i>>2]>>2]|0)|0;c[H>>2]=(c[G>>2]|0)-(c[(c[i>>2]|0)+44>>2]|0);if((c[H>>2]|0)>>>0>((c[(c[i>>2]|0)+40>>2]|0)-(c[(c[i>>2]|0)+44>>2]|0)|0)>>>0){O=40;break a;}c[I>>2]=ny((c[(c[i>>2]|0)+36>>2]|0)+(c[(c[i>>2]|0)+44>>2]|0)|0,c[H>>2]|0,c[q>>2]|0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0;c[q>>2]=(c[q>>2]|0)+(c[I>>2]|0);j=(c[i>>2]|0)+44|0;c[j>>2]=(c[j>>2]|0)+(c[I>>2]|0);if((c[I>>2]|0)>>>0<(c[H>>2]|0)>>>0){c[u>>2]=0;break;}c[J>>2]=my(c[c[i>>2]>>2]|0)|0;c[K>>2]=ly(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0,(c[(c[i>>2]|0)+52>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0)|0,c[(c[i>>2]|0)+36>>2]|0,c[G>>2]|0)|0;if(hr(c[K>>2]|0)|0){O=44;break a;}c[(c[i>>2]|0)+44>>2]=0;j=c[i>>2]|0;if((c[K>>2]|0)!=0|(c[J>>2]|0)!=0){c[(c[i>>2]|0)+60>>2]=(c[j+56>>2]|0)+(c[K>>2]|0);c[(c[i>>2]|0)+32>>2]=4;O=48;break;}else{c[j+32>>2]=2;break;}}}while(0);do{if((O|0)==48){O=0;c[L>>2]=(c[(c[i>>2]|0)+60>>2]|0)-(c[(c[i>>2]|0)+56>>2]|0);c[M>>2]=ny(c[t>>2]|0,(c[s>>2]|0)-(c[t>>2]|0)|0,(c[(c[i>>2]|0)+48>>2]|0)+(c[(c[i>>2]|0)+56>>2]|0)|0,c[L>>2]|0)|0;c[t>>2]=(c[t>>2]|0)+(c[M>>2]|0);j=(c[i>>2]|0)+56|0;c[j>>2]=(c[j>>2]|0)+(c[M>>2]|0);if((c[M>>2]|0)!=(c[L>>2]|0)){c[u>>2]=0;break;}c[(c[i>>2]|0)+32>>2]=2;if(((c[(c[i>>2]|0)+56>>2]|0)+(c[(c[i>>2]|0)+64>>2]|0)|0)>>>0>(c[(c[i>>2]|0)+52>>2]|0)>>>0){c[(c[i>>2]|0)+60>>2]=0;c[(c[i>>2]|0)+56>>2]=0;}}}while(0);}switch(O|0){case 4:{c[h>>2]=-62;V=c[h>>2]|0;l=g;return V|0;}case 6:{c[h>>2]=P;V=c[h>>2]|0;l=g;return V|0;}case 9:{mE(Q|0,R|0,(c[p>>2]|0)-(c[q>>2]|0)|0)|0;R=(c[i>>2]|0)+88|0;c[R>>2]=(c[R>>2]|0)+((c[p>>2]|0)-(c[q>>2]|0));c[c[k>>2]>>2]=0;c[h>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+88>>2]|0)+3;V=c[h>>2]|0;l=g;return V|0;}case 12:{c[h>>2]=c[y>>2];V=c[h>>2]|0;l=g;return V|0;}case 15:{c[h>>2]=c[A>>2];V=c[h>>2]|0;l=g;return V|0;}case 22:{c[h>>2]=-64;V=c[h>>2]|0;l=g;return V|0;}case 25:{c[h>>2]=-64;V=c[h>>2]|0;l=g;return V|0;}case 33:{c[h>>2]=c[F>>2];V=c[h>>2]|0;l=g;return V|0;}case 40:{c[h>>2]=-20;V=c[h>>2]|0;l=g;return V|0;}case 44:{c[h>>2]=c[K>>2];V=c[h>>2]|0;l=g;return V|0;}case 52:{c[h>>2]=-1;V=c[h>>2]|0;l=g;return V|0;}case 54:{c[c[n>>2]>>2]=(c[q>>2]|0)-(c[o>>2]|0);c[c[k>>2]>>2]=(c[t>>2]|0)-(c[r>>2]|0);c[N>>2]=ky(c[c[i>>2]>>2]|0)|0;c[N>>2]=(c[N>>2]|0)-(c[(c[i>>2]|0)+44>>2]|0);c[h>>2]=c[N>>2];V=c[h>>2]|0;l=g;return V|0;}}return 0;}function ky(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+21536>>2]|0;}function ly(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0;i=l;l=l+80|0;j=i+64|0;k=i+60|0;m=i+56|0;n=i+52|0;o=i+48|0;p=i+44|0;q=i+40|0;r=i+32|0;s=i+24|0;t=i;u=i+20|0;v=i+16|0;w=i+12|0;x=i+8|0;c[k>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if((c[p>>2]|0)!=(c[(c[k>>2]|0)+21536>>2]|0)){c[j>>2]=-72;z=c[j>>2]|0;l=i;return z|0;}if(c[n>>2]|0)us(c[k>>2]|0,c[m>>2]|0);a:do{switch(c[(c[k>>2]|0)+21580>>2]|0){case 0:{if((c[p>>2]|0)!=5){c[j>>2]=-72;z=c[j>>2]|0;l=i;return z|0;}if(((Bq(c[o>>2]|0)|0)&-16|0)==407710288){h=(c[k>>2]|0)+152788|0;g=c[o>>2]|0;a[h>>0]=a[g>>0]|0;a[h+1>>0]=a[g+1>>0]|0;a[h+2>>0]=a[g+2>>0]|0;a[h+3>>0]=a[g+3>>0]|0;a[h+4>>0]=a[g+4>>0]|0;c[(c[k>>2]|0)+21536>>2]=3;c[(c[k>>2]|0)+21580>>2]=4;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}g=Cq(c[o>>2]|0,5)|0;c[(c[k>>2]|0)+21680>>2]=g;g=(hr(c[(c[k>>2]|0)+21680>>2]|0)|0)!=0;h=c[k>>2]|0;if(g){c[j>>2]=c[h+21680>>2];z=c[j>>2]|0;l=i;return z|0;}g=h+152788|0;h=c[o>>2]|0;a[g>>0]=a[h>>0]|0;a[g+1>>0]=a[h+1>>0]|0;a[g+2>>0]=a[h+2>>0]|0;a[g+3>>0]=a[h+3>>0]|0;a[g+4>>0]=a[h+4>>0]|0;h=c[k>>2]|0;if((c[(c[k>>2]|0)+21680>>2]|0)>>>0<=5){c[h+21536>>2]=0;break a;}c[(c[k>>2]|0)+21536>>2]=(c[h+21680>>2]|0)-5;c[(c[k>>2]|0)+21580>>2]=1;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}case 1:break;case 2:{c[s>>2]=ir(c[o>>2]|0,3,r)|0;if(hr(c[s>>2]|0)|0){c[j>>2]=c[s>>2];z=c[j>>2]|0;l=i;return z|0;}if((c[r>>2]|0)==3){if(c[(c[k>>2]|0)+21552+16>>2]|0?(h=Oh((c[k>>2]|0)+21592|0)|0,g=t,c[g>>2]=h,c[g+4>>2]=y,g=t,h=iE(c[g>>2]|0,c[g+4>>2]|0,11)|0,c[u>>2]=h&4194303,c[v>>2]=c[o>>2],c[w>>2]=(d[(c[v>>2]|0)+2>>0]|0)+((d[(c[v>>2]|0)+1>>0]|0)<<8)+(((d[c[v>>2]>>0]|0)&63)<<16),(c[w>>2]|0)!=(c[u>>2]|0)):0){c[j>>2]=-22;z=c[j>>2]|0;l=i;return z|0;}c[(c[k>>2]|0)+21536>>2]=0;c[(c[k>>2]|0)+21580>>2]=0;}else{c[(c[k>>2]|0)+21536>>2]=c[s>>2];c[(c[k>>2]|0)+21576>>2]=c[r>>2];c[(c[k>>2]|0)+21580>>2]=3;}c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}case 3:{switch(c[(c[k>>2]|0)+21576>>2]|0){case 0:{c[x>>2]=xs(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;break;}case 1:{c[x>>2]=ys(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;break;}case 2:{c[j>>2]=-1;z=c[j>>2]|0;l=i;return z|0;}case 3:{c[x>>2]=0;break;}default:{c[j>>2]=-1;z=c[j>>2]|0;l=i;return z|0;}}c[(c[k>>2]|0)+21580>>2]=2;c[(c[k>>2]|0)+21536>>2]=3;c[(c[k>>2]|0)+21520>>2]=(c[m>>2]|0)+(c[x>>2]|0);if(hr(c[x>>2]|0)|0){c[j>>2]=c[x>>2];z=c[j>>2]|0;l=i;return z|0;}if(c[(c[k>>2]|0)+21552+16>>2]|0)Nh((c[k>>2]|0)+21592|0,c[m>>2]|0,c[x>>2]|0)|0;c[j>>2]=c[x>>2];z=c[j>>2]|0;l=i;return z|0;}case 4:{mE((c[k>>2]|0)+152788+5|0,c[o>>2]|0,c[(c[k>>2]|0)+21536>>2]|0)|0;h=Bq((c[k>>2]|0)+152788+4|0)|0;c[(c[k>>2]|0)+21536>>2]=h;c[(c[k>>2]|0)+21580>>2]=5;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}case 5:{c[(c[k>>2]|0)+21536>>2]=0;c[(c[k>>2]|0)+21580>>2]=0;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}default:{c[j>>2]=-1;z=c[j>>2]|0;l=i;return z|0;}}}while(0);mE((c[k>>2]|0)+152788+5|0,c[o>>2]|0,c[(c[k>>2]|0)+21536>>2]|0)|0;c[q>>2]=ws(c[k>>2]|0,(c[k>>2]|0)+152788|0,c[(c[k>>2]|0)+21680>>2]|0)|0;if(hr(c[q>>2]|0)|0){c[j>>2]=c[q>>2];z=c[j>>2]|0;l=i;return z|0;}else{c[(c[k>>2]|0)+21536>>2]=3;c[(c[k>>2]|0)+21580>>2]=2;c[j>>2]=0;z=c[j>>2]|0;l=i;return z|0;}return 0;}function my(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return(c[(c[d>>2]|0)+21580>>2]|0)==5|0;}function ny(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function oy(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+21536>>2]|0;}function py(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+40|0;j=h+36|0;k=h+32|0;m=h+28|0;n=h+24|0;o=h+20|0;p=h+16|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[o>>2]|0)!=(c[(c[j>>2]|0)+21536>>2]|0)){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}if(c[m>>2]|0)Kt(c[j>>2]|0,c[k>>2]|0);a:do{switch(c[(c[j>>2]|0)+21564>>2]|0){case 0:{if((c[o>>2]|0)!=5){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}g=Nq(c[n>>2]|0,5)|0;c[(c[j>>2]|0)+21540>>2]=g;g=(jr(c[(c[j>>2]|0)+21540>>2]|0)|0)!=0;f=c[j>>2]|0;if(g){c[i>>2]=c[f+21540>>2];t=c[i>>2]|0;l=h;return t|0;}g=f+152660|0;f=c[n>>2]|0;a[g>>0]=a[f>>0]|0;a[g+1>>0]=a[f+1>>0]|0;a[g+2>>0]=a[f+2>>0]|0;a[g+3>>0]=a[f+3>>0]|0;a[g+4>>0]=a[f+4>>0]|0;f=c[j>>2]|0;if((c[(c[j>>2]|0)+21540>>2]|0)>>>0<=5){c[f+21536>>2]=0;break a;}c[(c[j>>2]|0)+21536>>2]=(c[f+21540>>2]|0)-5;c[(c[j>>2]|0)+21564>>2]=1;c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}case 1:break;case 2:{c[r>>2]=kr(c[n>>2]|0,3,q)|0;if(jr(c[r>>2]|0)|0){c[i>>2]=c[r>>2];t=c[i>>2]|0;l=h;return t|0;}if((c[q>>2]|0)==3){c[(c[j>>2]|0)+21536>>2]=0;c[(c[j>>2]|0)+21564>>2]=0;}else{c[(c[j>>2]|0)+21536>>2]=c[r>>2];c[(c[j>>2]|0)+21560>>2]=c[q>>2];c[(c[j>>2]|0)+21564>>2]=3;}c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}case 3:{switch(c[(c[j>>2]|0)+21560>>2]|0){case 0:{c[s>>2]=Nt(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 1:{c[s>>2]=Ot(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 2:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 3:{c[s>>2]=0;break;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}c[(c[j>>2]|0)+21564>>2]=2;c[(c[j>>2]|0)+21536>>2]=3;c[(c[j>>2]|0)+21520>>2]=(c[k>>2]|0)+(c[s>>2]|0);c[i>>2]=c[s>>2];t=c[i>>2]|0;l=h;return t|0;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}}while(0);mE((c[j>>2]|0)+152660+5|0,c[n>>2]|0,c[(c[j>>2]|0)+21536>>2]|0)|0;c[p>>2]=Mt(c[j>>2]|0,(c[j>>2]|0)+152660|0,c[(c[j>>2]|0)+21540>>2]|0)|0;if(jr(c[p>>2]|0)|0){c[i>>2]=c[p>>2];t=c[i>>2]|0;l=h;return t|0;}else{c[(c[j>>2]|0)+21536>>2]=3;c[(c[j>>2]|0)+21564>>2]=2;c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}return 0;}function qy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function ry(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function sy(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+26656>>2]|0;}function ty(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+40|0;j=h+36|0;k=h+32|0;m=h+28|0;n=h+24|0;o=h+20|0;p=h+16|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[o>>2]|0)!=(c[(c[j>>2]|0)+26656>>2]|0)){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}Tu(c[j>>2]|0,c[k>>2]|0);a:do{switch(c[(c[j>>2]|0)+26708>>2]|0){case 0:{if((c[o>>2]|0)!=5){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}g=Vu(c[j>>2]|0,c[n>>2]|0,5)|0;c[(c[j>>2]|0)+26660>>2]=g;g=(mr(c[(c[j>>2]|0)+26660>>2]|0)|0)!=0;f=c[j>>2]|0;if(g){c[i>>2]=c[f+26660>>2];t=c[i>>2]|0;l=h;return t|0;}g=f+157804|0;f=c[n>>2]|0;a[g>>0]=a[f>>0]|0;a[g+1>>0]=a[f+1>>0]|0;a[g+2>>0]=a[f+2>>0]|0;a[g+3>>0]=a[f+3>>0]|0;a[g+4>>0]=a[f+4>>0]|0;if((c[(c[j>>2]|0)+26660>>2]|0)>>>0<=5){c[(c[j>>2]|0)+26656>>2]=0;break a;}c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 1:break;case 2:{c[r>>2]=lr(c[n>>2]|0,3,q)|0;if(mr(c[r>>2]|0)|0){c[i>>2]=c[r>>2];t=c[i>>2]|0;l=h;return t|0;}if((c[q>>2]|0)==3){c[(c[j>>2]|0)+26656>>2]=0;c[(c[j>>2]|0)+26708>>2]=0;}else{c[(c[j>>2]|0)+26656>>2]=c[r>>2];c[(c[j>>2]|0)+26704>>2]=c[q>>2];c[(c[j>>2]|0)+26708>>2]=3;}c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}case 3:{switch(c[(c[j>>2]|0)+26704>>2]|0){case 0:{c[s>>2]=Xu(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 1:{c[s>>2]=Yu(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 2:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 3:{c[s>>2]=0;break;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}c[(c[j>>2]|0)+26708>>2]=2;c[(c[j>>2]|0)+26656>>2]=3;c[(c[j>>2]|0)+26640>>2]=(c[k>>2]|0)+(c[s>>2]|0);c[i>>2]=c[s>>2];t=c[i>>2]|0;l=h;return t|0;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}}while(0);c[p>>2]=Wu(c[j>>2]|0,(c[j>>2]|0)+157804|0,c[(c[j>>2]|0)+26660>>2]|0)|0;if(mr(c[p>>2]|0)|0){c[i>>2]=c[p>>2];t=c[i>>2]|0;l=h;return t|0;}else{c[(c[j>>2]|0)+26656>>2]=3;c[(c[j>>2]|0)+26708>>2]=2;c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}return 0;}function uy(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,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;g=l;l=l+112|0;h=g+100|0;i=g+96|0;j=g+92|0;k=g+88|0;m=g+84|0;n=g+80|0;o=g+76|0;p=g+72|0;q=g+68|0;r=g+64|0;s=g+60|0;t=g+56|0;u=g+52|0;v=g+48|0;w=g+44|0;x=g+40|0;y=g+36|0;z=g+32|0;A=g+28|0;B=g+24|0;C=g+20|0;D=g+16|0;E=g+12|0;F=g+8|0;G=g+4|0;H=g;c[i>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=c[m>>2];c[p>>2]=c[o>>2];c[q>>2]=(c[o>>2]|0)+(c[c[n>>2]>>2]|0);c[r>>2]=c[j>>2];c[s>>2]=c[r>>2];c[t>>2]=(c[r>>2]|0)+(c[c[k>>2]>>2]|0);c[u>>2]=1;a:while(1){if(!(c[u>>2]|0)){I=50;break;}switch(c[(c[i>>2]|0)+80>>2]|0){case 0:{I=4;break a;break;}case 1:{c[v>>2]=sx((c[i>>2]|0)+8|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;j=(rr(c[v>>2]|0)|0)!=0;J=c[v>>2]|0;if(j){I=6;break a;}K=c[i>>2]|0;if(J|0){I=8;break a;}c[K+80>>2]=3;break;}case 2:{c[w>>2]=vy((c[i>>2]|0)+84+(c[(c[i>>2]|0)+68>>2]|0)|0,5-(c[(c[i>>2]|0)+68>>2]|0)|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;j=(c[i>>2]|0)+68|0;c[j>>2]=(c[j>>2]|0)+(c[w>>2]|0);c[p>>2]=(c[p>>2]|0)+(c[w>>2]|0);c[w>>2]=sx((c[i>>2]|0)+8|0,(c[i>>2]|0)+84|0,c[(c[i>>2]|0)+68>>2]|0)|0;j=(rr(c[w>>2]|0)|0)!=0;L=c[w>>2]|0;if(j){I=11;break a;}if(L|0){I=13;break a;}else I=14;break;}case 3:{I=14;break;}case 4:{I=25;break;}case 5:{I=35;break;}case 6:{I=44;break;}default:{I=48;break a;}}do{if((I|0)==14){I=0;c[x>>2]=1<>2]|0)+8+8>>2];c[y>>2]=131072;if((c[(c[i>>2]|0)+44>>2]|0)>>>0<131072?(Dy(c[(c[i>>2]|0)+40>>2]|0),c[(c[i>>2]|0)+44>>2]=131072,j=Cy(131072)|0,c[(c[i>>2]|0)+40>>2]=j,(c[(c[i>>2]|0)+40>>2]|0)==0):0){I=16;break a;}if((c[(c[i>>2]|0)+56>>2]|0)>>>0<(c[x>>2]|0)>>>0?(Dy(c[(c[i>>2]|0)+52>>2]|0),c[(c[i>>2]|0)+56>>2]=c[x>>2],j=Cy(c[x>>2]|0)|0,c[(c[i>>2]|0)+52>>2]=j,(c[(c[i>>2]|0)+52>>2]|0)==0):0){I=19;break a;}if(c[(c[i>>2]|0)+76>>2]|0)lw(c[c[i>>2]>>2]|0,c[(c[i>>2]|0)+72>>2]|0,c[(c[i>>2]|0)+76>>2]|0);j=c[i>>2]|0;if(c[(c[i>>2]|0)+68>>2]|0){mE(c[j+40>>2]|0,(c[i>>2]|0)+84|0,c[(c[i>>2]|0)+68>>2]|0)|0;c[(c[i>>2]|0)+48>>2]=c[(c[i>>2]|0)+68>>2];c[(c[i>>2]|0)+68>>2]=0;c[(c[i>>2]|0)+80>>2]=5;break;}else{c[j+80>>2]=4;I=25;break;}}}while(0);do{if((I|0)==25){I=0;c[z>>2]=wy(c[c[i>>2]>>2]|0)|0;if(!(c[z>>2]|0)){c[(c[i>>2]|0)+80>>2]=0;c[u>>2]=0;break;}if(((c[q>>2]|0)-(c[p>>2]|0)|0)>>>0<(c[z>>2]|0)>>>0){if((c[p>>2]|0)==(c[q>>2]|0)){c[u>>2]=0;break;}else{c[(c[i>>2]|0)+80>>2]=5;I=35;break;}}else{c[A>>2]=xy(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+52>>2]|0)+(c[(c[i>>2]|0)+60>>2]|0)|0,(c[(c[i>>2]|0)+56>>2]|0)-(c[(c[i>>2]|0)+60>>2]|0)|0,c[p>>2]|0,c[z>>2]|0)|0;if(rr(c[A>>2]|0)|0){I=29;break a;}c[p>>2]=(c[p>>2]|0)+(c[z>>2]|0);if(!(c[A>>2]|0))break;c[(c[i>>2]|0)+64>>2]=(c[(c[i>>2]|0)+60>>2]|0)+(c[A>>2]|0);c[(c[i>>2]|0)+80>>2]=6;break;}}}while(0);do{if((I|0)==35){I=0;c[B>>2]=wy(c[c[i>>2]>>2]|0)|0;c[C>>2]=(c[B>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0);if((c[C>>2]|0)>>>0>((c[(c[i>>2]|0)+44>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0)|0)>>>0){I=36;break a;}c[D>>2]=vy((c[(c[i>>2]|0)+40>>2]|0)+(c[(c[i>>2]|0)+48>>2]|0)|0,c[C>>2]|0,c[p>>2]|0,(c[q>>2]|0)-(c[p>>2]|0)|0)|0;c[p>>2]=(c[p>>2]|0)+(c[D>>2]|0);j=(c[i>>2]|0)+48|0;c[j>>2]=(c[j>>2]|0)+(c[D>>2]|0);if((c[D>>2]|0)>>>0<(c[C>>2]|0)>>>0){c[u>>2]=0;break;}c[E>>2]=xy(c[c[i>>2]>>2]|0,(c[(c[i>>2]|0)+52>>2]|0)+(c[(c[i>>2]|0)+60>>2]|0)|0,(c[(c[i>>2]|0)+56>>2]|0)-(c[(c[i>>2]|0)+60>>2]|0)|0,c[(c[i>>2]|0)+40>>2]|0,c[B>>2]|0)|0;if(rr(c[E>>2]|0)|0){I=40;break a;}c[(c[i>>2]|0)+48>>2]=0;j=c[i>>2]|0;if(c[E>>2]|0){c[(c[i>>2]|0)+64>>2]=(c[j+60>>2]|0)+(c[E>>2]|0);c[(c[i>>2]|0)+80>>2]=6;I=44;break;}else{c[j+80>>2]=4;break;}}}while(0);do{if((I|0)==44){I=0;c[F>>2]=(c[(c[i>>2]|0)+64>>2]|0)-(c[(c[i>>2]|0)+60>>2]|0);c[G>>2]=vy(c[s>>2]|0,(c[t>>2]|0)-(c[s>>2]|0)|0,(c[(c[i>>2]|0)+52>>2]|0)+(c[(c[i>>2]|0)+60>>2]|0)|0,c[F>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[G>>2]|0);j=(c[i>>2]|0)+60|0;c[j>>2]=(c[j>>2]|0)+(c[G>>2]|0);if((c[G>>2]|0)!=(c[F>>2]|0)){c[u>>2]=0;break;}c[(c[i>>2]|0)+80>>2]=4;if(((c[(c[i>>2]|0)+60>>2]|0)+131072|0)>>>0>(c[(c[i>>2]|0)+56>>2]|0)>>>0){c[(c[i>>2]|0)+64>>2]=0;c[(c[i>>2]|0)+60>>2]=0;}}}while(0);}switch(I|0){case 4:{c[h>>2]=-62;M=c[h>>2]|0;l=g;return M|0;}case 6:{c[h>>2]=J;M=c[h>>2]|0;l=g;return M|0;}case 8:{mE(K+84+(c[(c[i>>2]|0)+68>>2]|0)|0,c[m>>2]|0,c[c[n>>2]>>2]|0)|0;m=(c[i>>2]|0)+68|0;c[m>>2]=(c[m>>2]|0)+(c[c[n>>2]>>2]|0);c[c[k>>2]>>2]=0;c[(c[i>>2]|0)+80>>2]=2;c[h>>2]=(c[v>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0);M=c[h>>2]|0;l=g;return M|0;}case 11:{c[h>>2]=L;M=c[h>>2]|0;l=g;return M|0;}case 13:{c[c[k>>2]>>2]=0;c[h>>2]=(c[w>>2]|0)-(c[(c[i>>2]|0)+68>>2]|0);M=c[h>>2]|0;l=g;return M|0;}case 16:{c[h>>2]=-64;M=c[h>>2]|0;l=g;return M|0;}case 19:{c[h>>2]=-64;M=c[h>>2]|0;l=g;return M|0;}case 29:{c[h>>2]=c[A>>2];M=c[h>>2]|0;l=g;return M|0;}case 36:{c[h>>2]=-20;M=c[h>>2]|0;l=g;return M|0;}case 40:{c[h>>2]=c[E>>2];M=c[h>>2]|0;l=g;return M|0;}case 48:{c[h>>2]=-1;M=c[h>>2]|0;l=g;return M|0;}case 50:{c[c[n>>2]>>2]=(c[p>>2]|0)-(c[o>>2]|0);c[c[k>>2]>>2]=(c[s>>2]|0)-(c[r>>2]|0);c[H>>2]=wy(c[c[i>>2]>>2]|0)|0;if((c[H>>2]|0)>>>0>3)c[H>>2]=(c[H>>2]|0)+3;c[H>>2]=(c[H>>2]|0)-(c[(c[i>>2]|0)+48>>2]|0);c[h>>2]=c[H>>2];M=c[h>>2]|0;l=g;return M|0;}}return 0;}function vy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;g=f+16|0;h=f+12|0;i=f+8|0;j=f+4|0;k=f;c[g>>2]=a;c[h>>2]=b;c[i>>2]=d;c[j>>2]=e;c[k>>2]=(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0?c[h>>2]|0:c[j>>2]|0;mE(c[g>>2]|0,c[i>>2]|0,c[k>>2]|0)|0;l=f;return c[k>>2]|0;}function wy(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;l=b;return c[(c[d>>2]|0)+10268>>2]|0;}function xy(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+40|0;j=h+36|0;k=h+32|0;m=h+28|0;n=h+24|0;o=h+20|0;p=h+16|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;if((c[o>>2]|0)!=(c[(c[j>>2]|0)+10268>>2]|0)){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}yy(c[j>>2]|0,c[k>>2]|0);a:do{switch(c[(c[j>>2]|0)+10316>>2]|0){case 0:{if((c[o>>2]|0)!=5){c[i>>2]=-72;t=c[i>>2]|0;l=h;return t|0;}g=mw(c[j>>2]|0,c[n>>2]|0,5)|0;c[(c[j>>2]|0)+10272>>2]=g;g=(rr(c[(c[j>>2]|0)+10272>>2]|0)|0)!=0;f=c[j>>2]|0;if(g){c[i>>2]=c[f+10272>>2];t=c[i>>2]|0;l=h;return t|0;}g=f+141408|0;f=c[n>>2]|0;a[g>>0]=a[f>>0]|0;a[g+1>>0]=a[f+1>>0]|0;a[g+2>>0]=a[f+2>>0]|0;a[g+3>>0]=a[f+3>>0]|0;a[g+4>>0]=a[f+4>>0]|0;if((c[(c[j>>2]|0)+10272>>2]|0)>>>0<=5){c[(c[j>>2]|0)+10268>>2]=0;break a;}c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 1:break;case 2:{c[r>>2]=qr(c[n>>2]|0,3,q)|0;if(rr(c[r>>2]|0)|0){c[i>>2]=c[r>>2];t=c[i>>2]|0;l=h;return t|0;}if((c[q>>2]|0)==3){c[(c[j>>2]|0)+10268>>2]=0;c[(c[j>>2]|0)+10316>>2]=0;}else{c[(c[j>>2]|0)+10268>>2]=c[r>>2];c[(c[j>>2]|0)+10312>>2]=c[q>>2];c[(c[j>>2]|0)+10316>>2]=3;}c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}case 3:{switch(c[(c[j>>2]|0)+10312>>2]|0){case 0:{c[s>>2]=ow(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 1:{c[s>>2]=pw(c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;break;}case 2:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}case 3:{c[s>>2]=0;break;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}c[(c[j>>2]|0)+10316>>2]=2;c[(c[j>>2]|0)+10268>>2]=3;c[(c[j>>2]|0)+10252>>2]=(c[k>>2]|0)+(c[s>>2]|0);c[i>>2]=c[s>>2];t=c[i>>2]|0;l=h;return t|0;}default:{c[i>>2]=-1;t=c[i>>2]|0;l=h;return t|0;}}}while(0);c[p>>2]=nw(c[j>>2]|0,(c[j>>2]|0)+141408|0,c[(c[j>>2]|0)+10272>>2]|0)|0;if(rr(c[p>>2]|0)|0){c[i>>2]=c[p>>2];t=c[i>>2]|0;l=h;return t|0;}else{c[(c[j>>2]|0)+10268>>2]=3;c[(c[j>>2]|0)+10316>>2]=2;c[i>>2]=0;t=c[i>>2]|0;l=h;return t|0;}return 0;}function yy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)==(c[(c[e>>2]|0)+10252>>2]|0)){l=d;return;}c[(c[e>>2]|0)+10264>>2]=c[(c[e>>2]|0)+10252>>2];c[(c[e>>2]|0)+10260>>2]=(c[f>>2]|0)+(0-((c[(c[e>>2]|0)+10252>>2]|0)-(c[(c[e>>2]|0)+10256>>2]|0)));c[(c[e>>2]|0)+10256>>2]=c[f>>2];c[(c[e>>2]|0)+10252>>2]=c[f>>2];l=d;return;}function zy(){Ay(0);return;}function Ay(a){a=a|0;Wa(10928,20112);La(10944,20117,1,1,0);Sa(10952,19886,1,-128,127);Sa(10968,19891,1,-128,127);Sa(10960,19903,1,0,255);Sa(10976,19917,2,-32768,32767);Sa(10984,19923,2,0,65535);Sa(10992,20122,4,-2147483648,2147483647);Sa(11e3,20126,4,0,-1);Sa(11008,20139,4,-2147483648,2147483647);Sa(11016,20144,4,0,-1);Qa(11024,20168,4);Qa(11032,20280,8);Ua(10624,19495);Ua(10648,16561);Va(10672,4,16594);Pa(9840,16607);Ta(10696,0,16623);Ta(10704,0,16653);Ta(10712,1,16690);Ta(10720,2,16729);Ta(10728,3,16760);Ta(10736,4,16800);Ta(10744,5,16829);Ta(10752,4,16867);Ta(10760,5,16897);Ta(10704,0,16936);Ta(10712,1,16968);Ta(10720,2,17001);Ta(10728,3,17034);Ta(10736,4,17068);Ta(10744,5,17101);Ta(10768,6,17135);Ta(10776,7,17166);Ta(10784,7,17198);return;}function By(a){a=a|0;return Oz(c[a+4>>2]|0)|0;}function Cy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;b=l;l=l+16|0;d=b;do{if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[5418]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=21712+(i<<1<<2)|0;k=j+8|0;m=c[k>>2]|0;n=m+8|0;o=c[n>>2]|0;if((o|0)==(j|0))c[5418]=g&~(1<>2]=j;c[k>>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;l=b;return p|0;}n=c[5420]|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;k=m>>>h;m=k>>>1&1;j=(i|o|f|h|m)+(k>>>m)|0;m=21712+(j<<1<<2)|0;k=m+8|0;h=c[k>>2]|0;f=h+8|0;o=c[f>>2]|0;if((o|0)==(m|0)){i=g&~(1<>2]=m;c[k>>2]=o;q=g;}o=j<<3;j=o-e|0;c[h+4>>2]=e|3;k=h+e|0;c[k+4>>2]=j|1;c[h+o>>2]=j;if(n|0){o=c[5423]|0;h=n>>>3;m=21712+(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[5420]=j;c[5423]=k;p=f;l=b;return p|0;}f=c[5419]|0;if(f){k=(f&0-f)+-1|0;j=k>>>12&16;m=k>>>j;k=m>>>5&8;o=m>>>k;m=o>>>2&4;i=o>>>m;o=i>>>1&2;h=i>>>o;i=h>>>1&1;t=c[21976+((k|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;k=c[j>>2]|0;if(!k){v=h+16|0;w=c[v>>2]|0;if(!w){x=0;break;}else{y=w;z=v;}}else{y=k;z=j;}j=y;k=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;k=D;}c[k>>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=21976+(m<<2)|0;if((h|0)==(c[v>>2]|0)){c[v>>2]=x;if(!x){c[5419]=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[5423]|0;t=n>>>3;m=21712+(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[5420]=o;c[5423]=i;}p=h+8|0;l=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[5419]|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[21976+(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[21976+((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[5420]|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=21976+(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=21712+(o<<1<<2)|0;t=c[5418]|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=21976+(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;l=b;return p|0;}else G=f;}else G=f;}else G=-1;}while(0);X=c[5420]|0;if(X>>>0>=G>>>0){ha=X-G|0;ia=c[5423]|0;if(ha>>>0>15){Y=ia+G|0;c[5423]=Y;c[5420]=ha;c[Y+4>>2]=ha|1;c[ia+X>>2]=ha;c[ia+4>>2]=G|3;}else{c[5420]=0;c[5423]=0;c[ia+4>>2]=X|3;ha=ia+X+4|0;c[ha>>2]=c[ha>>2]|1;}p=ia+8|0;l=b;return p|0;}ia=c[5421]|0;if(ia>>>0>G>>>0){ha=ia-G|0;c[5421]=ha;X=c[5424]|0;Y=X+G|0;c[5424]=Y;c[Y+4>>2]=ha|1;c[X+4>>2]=G|3;p=X+8|0;l=b;return p|0;}if(!(c[5536]|0)){c[5538]=4096;c[5537]=4096;c[5539]=-1;c[5540]=-1;c[5541]=0;c[5529]=0;c[5536]=d&-16^1431655768;ja=4096;}else ja=c[5538]|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;l=b;return p|0;}ga=c[5528]|0;if(ga|0?(da=c[5526]|0,ea=da+ja|0,ea>>>0<=da>>>0|ea>>>0>ga>>>0):0){p=0;l=b;return p|0;}d:do{if(!(c[5529]&4)){ga=c[5424]|0;e:do{if(ga){ea=22120;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=pE(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=pE(0)|0;if((ga|0)!=(-1|0)?(f=ga,da=c[5537]|0,fa=da+-1|0,_=((fa&f|0)==0?0:(fa+f&0-da)-f|0)+ja|0,f=c[5526]|0,da=_+f|0,_>>>0>G>>>0&_>>>0<2147483647):0){fa=c[5528]|0;if(fa|0?da>>>0<=f>>>0|da>>>0>fa>>>0:0){ka=0;break;}fa=pE(_|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[5538]|0;ga=X-oa+fa&0-fa;if(ga>>>0>=2147483647){la=oa;ma=na;M=145;break d;}if((pE(ga|0)|0)==(-1|0)){pE(_|0)|0;ka=0;break;}else{la=ga+oa|0;ma=na;M=145;break d;}}}while(0);c[5529]=c[5529]|4;pa=ka;M=143;}else{pa=0;M=143;}}while(0);if(((M|0)==143?ja>>>0<2147483647:0)?(ka=pE(ja|0)|0,ja=pE(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[5526]|0)+la|0;c[5526]=ka;if(ka>>>0>(c[5527]|0)>>>0)c[5527]=ka;ka=c[5424]|0;f:do{if(ka){pa=22120;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[5421]|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[5424]=oa;c[5421]=X;c[oa+4>>2]=X|1;c[ka+na+4>>2]=40;c[5425]=c[5540];break;}if(ma>>>0<(c[5422]|0)>>>0)c[5422]=ma;na=ma+la|0;X=22120;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[5421]|0)+d|0;c[5421]=Y;c[5424]=pa;c[pa+4>>2]=Y|1;}else{if((c[5423]|0)==(ja|0)){Y=(c[5420]|0)+d|0;c[5420]=Y;c[5423]=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[5418]=c[5418]&~(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=21976+(_<<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[5419]=c[5419]&~(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=21712+(ha<<1<<2)|0;ea=c[5418]|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=21976+(Ba<<2)|0;c[pa+28>>2]=Ba;ia=pa+16|0;c[ia+4>>2]=0;c[ia>>2]=0;ia=c[5419]|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;l=b;return p|0;}pa=22120;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[5424]=na;c[5421]=Y;c[na+4>>2]=Y|1;c[ma+ja+4>>2]=40;c[5425]=c[5540];ja=pa+4|0;c[ja>>2]=27;c[d>>2]=c[5530];c[d+4>>2]=c[5531];c[d+8>>2]=c[5532];c[d+12>>2]=c[5533];c[5530]=ma;c[5531]=la;c[5533]=0;c[5532]=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=21712+(Y<<1<<2)|0;X=c[5418]|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=21976+(Ha<<2)|0;c[ka+28>>2]=Ha;c[ka+20>>2]=0;c[oa>>2]=0;X=c[5419]|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[5422]|0;if((Y|0)==0|ma>>>0>>0)c[5422]=ma;c[5530]=ma;c[5531]=la;c[5533]=0;c[5427]=c[5536];c[5426]=-1;c[5431]=21712;c[5430]=21712;c[5433]=21720;c[5432]=21720;c[5435]=21728;c[5434]=21728;c[5437]=21736;c[5436]=21736;c[5439]=21744;c[5438]=21744;c[5441]=21752;c[5440]=21752;c[5443]=21760;c[5442]=21760;c[5445]=21768;c[5444]=21768;c[5447]=21776;c[5446]=21776;c[5449]=21784;c[5448]=21784;c[5451]=21792;c[5450]=21792;c[5453]=21800;c[5452]=21800;c[5455]=21808;c[5454]=21808;c[5457]=21816;c[5456]=21816;c[5459]=21824;c[5458]=21824;c[5461]=21832;c[5460]=21832;c[5463]=21840;c[5462]=21840;c[5465]=21848;c[5464]=21848;c[5467]=21856;c[5466]=21856;c[5469]=21864;c[5468]=21864;c[5471]=21872;c[5470]=21872;c[5473]=21880;c[5472]=21880;c[5475]=21888;c[5474]=21888;c[5477]=21896;c[5476]=21896;c[5479]=21904;c[5478]=21904;c[5481]=21912;c[5480]=21912;c[5483]=21920;c[5482]=21920;c[5485]=21928;c[5484]=21928;c[5487]=21936;c[5486]=21936;c[5489]=21944;c[5488]=21944;c[5491]=21952;c[5490]=21952;c[5493]=21960;c[5492]=21960;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[5424]=d;c[5421]=pa;c[d+4>>2]=pa|1;c[ma+Y+4>>2]=40;c[5425]=c[5540];}}while(0);ma=c[5421]|0;if(ma>>>0>G>>>0){la=ma-G|0;c[5421]=la;ma=c[5424]|0;ka=ma+G|0;c[5424]=ka;c[ka+4>>2]=la|1;c[ma+4>>2]=G|3;p=ma+8|0;l=b;return p|0;}}c[(My()|0)>>2]=12;p=0;l=b;return p|0;}function Dy(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[5422]|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[5423]|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[5420]=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[5418]=c[5418]&~(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=21976+(j<<2)|0;if((c[k>>2]|0)==(h|0)){c[k>>2]=r;if(!r){c[5419]=c[5419]&~(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[5424]|0)==(f|0)){r=(c[5421]|0)+m|0;c[5421]=r;c[5424]=l;c[l+4>>2]=r|1;if((l|0)!=(c[5423]|0))return;c[5423]=0;c[5420]=0;return;}if((c[5423]|0)==(f|0)){r=(c[5420]|0)+m|0;c[5420]=r;c[5423]=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[5418]=c[5418]&~(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=21976+(t<<2)|0;if((c[h>>2]|0)==(f|0)){c[h>>2]=y;if(!y){c[5419]=c[5419]&~(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[5423]|0)){c[5420]=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=21712+(m<<1<<2)|0;a=c[5418]|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=21976+(G<<2)|0;c[l+28>>2]=G;c[l+20>>2]=0;c[l+16>>2]=0;F=c[5419]|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[5426]|0)+-1|0;c[5426]=l;if(l|0)return;l=22128;while(1){H=c[l>>2]|0;if(!H)break;else l=H+8|0;}c[5426]=-1;return;}function Ey(a,b){a=a|0;b=b|0;var d=0,e=0;if(a){d=N(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=Cy(e)|0;if(!d)return d|0;if(!(c[d+-4>>2]&3))return d|0;oE(d|0,0,e|0)|0;return d|0;}function Fy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!a){d=Cy(b)|0;return d|0;}if(b>>>0>4294967231){c[(My()|0)>>2]=12;d=0;return d|0;}e=Gy(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(e|0){d=e+8|0;return d|0;}e=Cy(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;mE(e|0,a|0,(g>>>0>>0?g:b)|0)|0;Dy(a);d=e;return d|0;}function Gy(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[5538]<<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;Hy(j,i);h=a;return h|0;}if((c[5424]|0)==(g|0)){i=(c[5421]|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[5424]=k;c[5421]=j;h=a;return h|0;}if((c[5423]|0)==(g|0)){j=(c[5420]|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[5420]=o;c[5423]=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[5418]=c[5418]&~(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=21976+(i<<2)|0;if((c[m>>2]|0)==(g|0)){c[m>>2]=r;if(!r){c[5419]=c[5419]&~(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;Hy(r,f);h=a;return h|0;}return 0;}function Hy(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[5423]|0)==(g|0)){i=d+4|0;j=c[i>>2]|0;if((j&3|0)!=3){k=g;l=h;break;}c[5420]=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[5418]=c[5418]&~(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=21976+(i<<2)|0;if((c[j>>2]|0)==(g|0)){c[j>>2]=p;if(!p){c[5419]=c[5419]&~(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[5424]|0)==(d|0)){p=(c[5421]|0)+l|0;c[5421]=p;c[5424]=k;c[k+4>>2]=p|1;if((k|0)!=(c[5423]|0))return;c[5423]=0;c[5420]=0;return;}if((c[5423]|0)==(d|0)){p=(c[5420]|0)+l|0;c[5420]=p;c[5423]=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[5418]=c[5418]&~(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=21976+(r<<2)|0;if((c[h>>2]|0)==(d|0)){c[h>>2]=w;if(!w){c[5419]=c[5419]&~(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[5423]|0)){c[5420]=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=21712+(l<<1<<2)|0;b=c[5418]|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=21976+(E<<2)|0;c[k+28>>2]=E;c[k+20>>2]=0;c[k+16>>2]=0;D=c[5419]|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 Iy(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=Oy(c[a+60>>2]|0)|0;a=Ly(Ja(6,d|0)|0)|0;l=b;return a|0;}function Jy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;g=f;c[b+36>>2]=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,Ia(54,g|0)|0):0)a[b+75>>0]=-1;g=Ny(b,d,e)|0;l=f;return g|0;}function Ky(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((Ly(Da(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1;}else h=c[g>>2]|0;l=e;return h|0;}function Ly(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(My()|0)>>2]=0-a;b=-1;}else b=a;return b|0;}function My(){return 22232;}function Ny(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+48|0;f=e+32|0;g=e+16|0;h=e;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;k=a+20|0;m=(c[k>>2]|0)-j|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=m+d|0;m=a+60|0;c[g>>2]=c[m>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=Ly(Fa(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=Ly(Fa(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[k>>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[k>>2]=a;w=d;}l=e;return w|0;}function Oy(a){a=a|0;return a|0;}function Py(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+32|0;g=f+16|0;h=f;c[h>>2]=d;i=h+4|0;j=b+48|0;k=c[j>>2]|0;c[i>>2]=e-((k|0)!=0&1);m=b+44|0;c[h+8>>2]=c[m>>2];c[h+12>>2]=k;c[g>>2]=c[b+60>>2];c[g+4>>2]=h;c[g+8>>2]=2;h=Ly(Ea(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;k=i;c[b+8>>2]=k+(h-g);if(!(c[j>>2]|0))n=e;else{c[m>>2]=k+1;a[d+(e+-1)>>0]=a[k>>0]|0;n=e;}}else n=h;}else{c[b>>2]=c[b>>2]|h&48^16;n=h;}l=f;return n|0;}function Qy(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;a:do{if(!d)e=0;else{f=b;g=d;h=c;while(1){i=a[f>>0]|0;j=a[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a;}else{f=f+1|0;h=h+1|0;}}e=(i&255)-(j&255)|0;}}while(0);return e|0;}function Ry(b,c){b=b|0;c=c|0;var d=0;d=Xy(b,c)|0;return((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0;}function Sy(a){a=a|0;return(a+-48|0)>>>0<10|0;}function Ty(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 Uy(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=N(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 Vy(a){a=a|0;return 0;}function Wy(a){a=a|0;return;}function Xy(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+(Ty(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=N(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 Yy(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=Zy(c[b>>2]|0,c[b+4>>2]|0,a)|0;return((d|0)==0?a:d)|0;}function Zy(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=_y(c[b+8>>2]|0,f)|0;h=_y(c[b+12>>2]|0,f)|0;i=_y(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=_y(c[b+(q<<2)>>2]|0,f)|0;s=_y(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=$y(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=_y(c[b+(m<<2)>>2]|0,f)|0;j=_y(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 _y(a,b){a=a|0;b=b|0;var c=0;c=kE(a|0)|0;return((b|0)==0?a:c)|0;}function $y(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 az(){return 12260;}function bz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f;c[g>>2]=e;e=cz(a,b,d,g)|0;l=f;return e|0;}function cz(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+128|0;h=g+124|0;i=g;j=i;k=12504;m=j+124|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0;}while((j|0)<(m|0));if((d+-1|0)>>>0>2147483646){if(!d){n=h;o=1;p=4;}else{c[(My()|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=dz(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;}}l=g;return q|0;}function dz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+224|0;g=f+208|0;h=f+160|0;i=f+80|0;j=f;k=h;m=k+40|0;do{c[k>>2]=0;k=k+4|0;}while((k|0)<(m|0));c[g>>2]=c[e>>2];if((ez(0,d,g,i,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=Vy(b)|0;else o=0;e=c[b>>2]|0;k=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=j;q=b+28|0;c[q>>2]=j;r=b+20|0;c[r>>2]=j;c[e>>2]=80;s=b+16|0;c[s>>2]=j+80;j=ez(b,d,g,i,h)|0;if(!p)t=j;else{rc[c[b+36>>2]&31](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=ez(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|k;if(o|0)Wy(b);n=(h&32|0)==0?t:-1;}l=f;return n|0;}function ez(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,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=l;l=l+64|0;k=j+56|0;m=j+40|0;n=j;o=j+48|0;p=j+60|0;c[k>>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;x=u;while(1){do{if((x|0)>-1){if((w|0)>(2147483647-x|0)){c[(My()|0)>>2]=75;z=-1;break;}else{z=w+x|0;break;}}else z=x;}while(0);A=c[k>>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[k>>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[k>>2]=F;if((a[F>>0]|0)!=37){E=G;break;}else D=G;}}}while(0);w=E-A|0;if(e)fz(d,A,w);if(!w)break;else x=z;}x=(Sy(a[(c[k>>2]|0)+1>>0]|0)|0)==0;w=c[k>>2]|0;if(!x?(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;}x=w+J|0;c[k>>2]=x;w=a[x>>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((Sy(a[M+1>>0]|0)|0)!=0?(B=c[k>>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[k>>2]|0)+1|0;}c[k>>2]=P;w=(N|0)<0;S=w?0-N|0:N;T=w?K|8192:K;U=O;V=P;}else{w=gz(k)|0;if((w|0)<0){Q=-1;break;}S=w;T=K;U=I;V=c[k>>2]|0;}do{if((a[V>>0]|0)==46){w=V+1|0;if((a[w>>0]|0)!=42){c[k>>2]=w;w=gz(k)|0;W=w;X=c[k>>2]|0;break;}if(Sy(a[V+2>>0]|0)|0?(w=c[k>>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[k>>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[k>>2]|0)+2|0;c[k>>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[k>>2]=B;Z=a[(a[w>>0]|0)+-65+(7456+(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;x=c[F+4>>2]|0;G=m;c[G>>2]=c[F>>2];c[G+4>>2]=x;C=54;break;}if(!e){Q=0;break a;}hz(m,_,f);$=c[k>>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;x=(D|0)!=0&(w&15|0)==3?w&-33:w;w=T&-65537;G=(T&8192|0)==0?T:w;e:do{switch(x|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=x;ca=W;da=G;C=67;break;}case 111:{F=m;ea=c[F>>2]|0;fa=c[F+4>>2]|0;F=jz(ea,fa,q)|0;ga=r-F|0;ha=F;ia=0;ja=17834;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=eE(0,0,ea|0,ga|0)|0;F=y;oa=m;c[oa>>2]=fa;c[oa+4>>2]=F;pa=1;qa=17834;ra=fa;sa=F;C=72;break e;}else{pa=(G&2049|0)!=0&1;qa=(G&2048|0)==0?(G&1|0)==0?17834:17836:17835;ra=ea;sa=ga;C=72;break e;}break;}case 117:{ga=m;pa=0;qa=17834;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=17834;wa=1;xa=w;ya=r;break;}case 109:{za=lz(c[(My()|0)>>2]|0)|0;C=77;break;}case 115:{ga=c[m>>2]|0;za=(ga|0)==0?17844: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){mz(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=oz(d,+h[m>>3],S,W,G,x)|0;break d;break;}default:{ta=A;ua=0;va=17834;wa=W;xa=G;ya=r;}}}while(0);f:do{if((C|0)==67){C=0;x=m;ga=c[x>>2]|0;ea=c[x+4>>2]|0;x=iz(ga,ea,q,ba&32)|0;F=(da&8|0)==0|(ga|0)==0&(ea|0)==0;ha=x;ia=F?0:2;ja=F?17834:17834+(ba>>>4)|0;ka=ca;la=da;ma=ga;na=ea;C=73;}else if((C|0)==72){C=0;ha=kz(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=Uy(za,0,W)|0;ga=(ea|0)==0;ta=za;ua=0;va=17834;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;}x=nz(p,F)|0;Da=(x|0)<0;if(Da|x>>>0>(Aa-ga|0)>>>0){C=85;break;}F=x+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;}mz(d,32,S,Ca,G);if(!Ca){Ba=0;C=91;}else{ea=c[m>>2]|0;F=0;while(1){x=c[ea>>2]|0;if(!x){Ba=Ca;C=91;break f;}fa=nz(p,x)|0;F=fa+F|0;if((F|0)>(Ca|0)){Ba=Ca;C=91;break f;}fz(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;mz(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;mz(d,32,ga,w,xa);fz(d,va,ua);mz(d,48,ga,w,xa^65536);mz(d,48,ea,F,0);fz(d,ta,F);mz(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;hz(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);l=j;return Q|0;}function fz(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))xz(b,d,a)|0;return;}function gz(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;if(!(Sy(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(!(Sy(a[h>>0]|0)|0)){d=g;break;}else e=g;}}return d|0;}function hz(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 iz(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[7920+(c&15)>>0]|0|f;c=iE(c|0,e|0,4)|0;e=y;if((c|0)==0&(e|0)==0){g=b;break;}else h=b;}}return g|0;}function jz(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=iE(c|0,d|0,3)|0;d=y;if((c|0)==0&(d|0)==0){e=b;break;}else f=b;}}return e|0;}function kz(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=hE(f|0,g|0,10,0)|0;h=g;g=y;i=cE(f|0,g|0,10,0)|0;j=eE(c|0,h|0,i|0,y|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 lz(a){a=a|0;return vz(a,c[(uz()|0)+188>>2]|0)|0;}function mz(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;oE(g|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{fz(a,g,256);d=d+-256|0;}while(d>>>0>255);h=b&255;}else h=e;fz(a,g,h);}l=f;return;}function nz(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=sz(a,b,0)|0;return c|0;}function oz(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0,x=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,M=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=l;l=l+560|0;k=j+32|0;m=j+536|0;n=j;o=n;p=j+540|0;c[m>>2]=0;q=p+12|0;r=pz(e)|0;s=y;if((s|0)<0){t=-e;u=pz(t)|0;v=t;w=1;x=17851;z=y;A=u;}else{v=e;w=(h&2049|0)!=0&1;x=(h&2048|0)==0?(h&1|0)==0?17852:17857:17854;z=s;A=r;}do{if(0==0&(z&2146435072|0)==2146435072){r=(i&32|0)!=0;A=w+3|0;mz(b,32,f,A,h&-65537);fz(b,x,w);fz(b,v!=v|0.0!=0.0?r?17878:17882:r?17870:17874,3);mz(b,32,f,A,h^8192);B=A;}else{e=+qz(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?x:x+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=kz(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[7920+K>>0];J=(J-+(K|0))*16.0;if((L-o|0)==1?!(E&(G&J==0.0)):0){a[L>>0]=46;M=I+2|0;}else M=L;if(!(J!=0.0))break;else I=M;}I=M;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;mz(b,32,f,G,h);fz(b,u,C);mz(b,48,f,G,h^65536);E=I-o|0;fz(b,n,E);I=P-Q|0;mz(b,48,O-(E+I)|0,0,0);fz(b,D,I);mz(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?k:k+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=jE(c[K>>2]|0,0,s|0)|0;U=dE(T|0,y|0,L|0,0)|0;T=y;L=hE(U|0,T|0,1e9,0)|0;V=cE(L|0,y|0,1e9,0)|0;W=eE(U|0,T|0,V|0,y|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=N(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-(N(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[x>>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=kz(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;mz(b,32,f,C,h);fz(b,x,w);mz(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=kz(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){oE(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;fz(b,Da,U-Da|0);u=u+4|0;}while(u>>>0<=I>>>0);if(!((h&8|0)==0&(G^1)))fz(b,18964,1);if(u>>>0>>0&(za|0)>0){I=za;U=u;while(1){r=kz(c[U>>2]|0,0,V)|0;if(r>>>0>n>>>0){oE(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;fz(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;mz(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=kz(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;fz(b,Ga,1);if(V&(T|0)<1){Ha=A;break;}fz(b,18964,1);Ha=A;}else{if(Ga>>>0<=n>>>0){Ha=Ga;break;}oE(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;fz(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;mz(b,48,Ia+18|0,18,0);fz(b,Aa,q-Aa|0);}mz(b,32,f,C,h^8192);B=C;}}while(0);l=j;return((B|0)<(f|0)?f:B)|0;}function pz(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;y=c[j+4>>2]|0;return b|0;}function qz(a,b){a=+a;b=b|0;return+ +rz(a,b);}function rz(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=iE(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){g=+rz(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 sz(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[(tz()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break;}else{c[(My()|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[(My()|0)>>2]=84;f=-1;break;}}else f=1;}while(0);return f|0;}function tz(){return az()|0;}function uz(){return az()|0;}function vz(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[7936+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=8032;else{i=f;g=5;}if((g|0)==5){g=8032;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 wz(j,c[e+20>>2]|0)|0;}function wz(a,b){a=a|0;b=b|0;return Yy(a,b)|0;}function xz(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(!(yz(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=rc[c[e+36>>2]&31](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=rc[c[e+36>>2]&31](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);mE(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 yz(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 zz(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;mE(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0;}function Az(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=dz(c[3e3]|0,a,e)|0;l=d;return b|0;}function Bz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j){if(!(yz(b)|0)){k=c[i>>2]|0;m=4;}else n=-1;}else{k=j;m=4;}do{if((m|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0>>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((rc[c[b+36>>2]&31](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1;}}while(0);l=f;return n|0;}function Cz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+48|0;f=e+32|0;g=e+16|0;h=e;if(Ry(17886,a[d>>0]|0)|0){i=Dz(d)|0;c[h>>2]=b;c[h+4>>2]=i|32768;c[h+8>>2]=438;b=Ly(Ha(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;Ga(221,g|0)|0;}g=Ez(b,d)|0;if(!g){c[f>>2]=b;Ja(6,f|0)|0;j=0;}else j=g;}else j=0;}else{c[(My()|0)>>2]=22;j=0;}l=e;return j|0;}function Dz(b){b=b|0;var c=0,d=0,e=0,f=0;c=(Ry(b,43)|0)==0;d=a[b>>0]|0;e=c?d<<24>>24!=114&1:2;c=(Ry(b,120)|0)==0;f=c?e:e|128;e=(Ry(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 Ez(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+64|0;f=e+40|0;g=e+24|0;h=e+16|0;i=e;j=e+56|0;if(Ry(17886,a[d>>0]|0)|0){k=Cy(1156)|0;if(!k)m=0;else{oE(k|0,0,124)|0;if(!(Ry(d,43)|0))c[k>>2]=(a[d>>0]|0)==114?8:4;if(Ry(d,101)|0){c[i>>2]=b;c[i+4>>2]=2;c[i+8>>2]=1;Ga(221,i|0)|0;}if((a[d>>0]|0)==97){c[h>>2]=b;c[h+4>>2]=3;d=Ga(221,h|0)|0;if(!(d&1024)){c[g>>2]=b;c[g+4>>2]=4;c[g+8>>2]=d|1024;Ga(221,g|0)|0;}g=c[k>>2]|128;c[k>>2]=g;n=g;}else n=c[k>>2]|0;c[k+60>>2]=b;c[k+44>>2]=k+132;c[k+48>>2]=1024;g=k+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,(Ia(54,f|0)|0)==0):0)a[g>>0]=10;c[k+32>>2]=22;c[k+36>>2]=3;c[k+40>>2]=2;c[k+12>>2]=29;if(!(c[5543]|0))c[k+76>>2]=-1;Fz(k)|0;m=k;}}else{c[(My()|0)>>2]=22;m=0;}l=e;return m|0;}function Fz(a){a=a|0;var b=0,d=0;b=Gz()|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;Hz();return a|0;}function Gz(){Aa(22236);return 22244;}function Hz(){Ka(22236);return;}function Iz(){return az()|0;}function Jz(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=Mz(a)|0;break;}d=(Vy(a)|0)==0;e=Mz(a)|0;if(d)b=e;else{Wy(a);b=e;}}else{if(!(c[3032]|0))f=0;else f=Jz(c[3032]|0)|0;e=c[(Gz()|0)>>2]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=Vy(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=Mz(d)|0|e;else i=e;if(h|0)Wy(d);d=c[d+56>>2]|0;if(!d){g=i;break;}else e=i;}}Hz();b=g;}}while(0);return b|0;}function Kz(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=Vy(a)|0;else b=0;Lz(a);d=(c[a>>2]&1|0)!=0;if(!d){e=Gz()|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;Hz();}h=Jz(a)|0;e=pc[c[a+12>>2]&63](a)|0|h;h=c[a+92>>2]|0;if(h|0)Dy(h);if(d){if(b|0)Wy(a);}else Dy(a);return e|0;}function Lz(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=(Iz()|0)+232|0;else e=a+116|0;c[e>>2]=b;}return;}function Mz(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?(rc[c[a+36>>2]&31](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)rc[c[a+40>>2]&31](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 Nz(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?(Vy(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=Bz(d,b)|0;Wy(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=Bz(d,b)|0;}}while(0);return j|0;}function Oz(a){a=a|0;var b=0,c=0,d=0;b=(Ty(a)|0)+1|0;c=Cy(b)|0;if(!c)d=0;else d=mE(c|0,a|0,b|0)|0;return d|0;}function Pz(a){a=a|0;return(a+-65|0)>>>0<26|0;}function Qz(a){a=a|0;return(((a|32)+-97|0)>>>0<6|(Sy(a)|0)!=0)&1|0;}function Rz(a){a=a|0;return;}function Sz(a){a=a|0;Rz(a);Vz(a);return;}function Tz(a){a=a|0;return 17890;}function Uz(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){a=Cy(b)|0;if(a|0){c=a;break;}a=ZD()|0;if(!a){c=0;break;}vc[a&3]();}return c|0;}function Vz(a){a=a|0;Dy(a);return;}function Wz(a){a=a|0;lb();}function Xz(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+48|0;b=a+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=Yz()|0;if(a|0?(h=c[a>>2]|0,h|0):0){a=h+48|0;i=c[a>>2]|0;j=c[a+4>>2]|0;if(!((i&-256|0)==1126902528&(j|0)==1129074247)){c[d>>2]=18077;Zz(18027,d);}if((i|0)==1126902529&(j|0)==1129074247)k=c[h+44>>2]|0;else k=h+80|0;c[g>>2]=k;k=c[h>>2]|0;h=c[k+4>>2]|0;if(rc[c[(c[2704]|0)+16>>2]&31](10816,k,g)|0){k=c[g>>2]|0;g=pc[c[(c[k>>2]|0)+8>>2]&63](k)|0;c[f>>2]=18077;c[f+4>>2]=h;c[f+8>>2]=g;Zz(17941,f);}else{c[e>>2]=18077;c[e+4>>2]=h;Zz(17986,e);}}Zz(18065,b);}function Yz(){var a=0,b=0;a=l;l=l+16|0;if(!(rb(22248,3)|0)){b=pb(c[5563]|0)|0;l=a;return b|0;}else Zz(18216,a);return 0;}function Zz(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=c[3033]|0;dz(b,a,e)|0;Nz(10,b)|0;lb();}function _z(a){a=a|0;return;}function $z(a){a=a|0;_z(a);Vz(a);return;}function aA(a){a=a|0;return;}function bA(a){a=a|0;return;}function cA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+64|0;f=e;if(!(gA(a,b,0)|0)){if((b|0)!=0?(g=kA(b,10840,10824,0)|0,(g|0)!=0):0){b=f+4|0;h=b+52|0;do{c[b>>2]=0;b=b+4|0;}while((b|0)<(h|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;zc[c[(c[g>>2]|0)+28>>2]&7](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1;}else i=0;j=i;}else j=0;}else j=1;l=e;return j|0;}function dA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(gA(a,c[b+8>>2]|0,g)|0)jA(0,b,d,e,f);return;}function eA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;do{if(!(gA(b,c[d+8>>2]|0,g)|0)){if(gA(b,c[d>>2]|0,g)|0){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;h=d+40|0;c[h>>2]=(c[h>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break;}if((f|0)==1)c[d+32>>2]=1;}}else iA(0,d,e,f);}while(0);return;}function fA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(gA(a,c[b+8>>2]|0,0)|0)hA(0,b,d,e);return;}function gA(a,b,c){a=a|0;b=b|0;c=c|0;return(a|0)==(b|0)|0;}function hA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=d+16|0;g=c[b>>2]|0;do{if(g){if((g|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break;}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f;}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;}}while(0);return;}function iA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((c[b+4>>2]|0)==(d|0)?(d=b+28|0,(c[d>>2]|0)!=1):0)c[d>>2]=e;return;}function jA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;a[d+53>>0]=1;do{if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;if(!h){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break;}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54>>0]=1;break;}h=d+24|0;b=c[h>>2]|0;if((b|0)==2){c[h>>2]=g;i=g;}else i=b;if((i|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1;}}while(0);return;}function kA(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;h=l;l=l+64|0;i=h;j=c[d>>2]|0;k=d+(c[j+-8>>2]|0)|0;m=c[j+-4>>2]|0;c[i>>2]=f;c[i+4>>2]=d;c[i+8>>2]=e;c[i+12>>2]=g;g=i+16|0;e=i+20|0;d=i+24|0;j=i+28|0;n=i+32|0;o=i+40|0;p=g;q=p+36|0;do{c[p>>2]=0;p=p+4|0;}while((p|0)<(q|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do{if(gA(m,f,0)|0){c[i+48>>2]=1;Bc[c[(c[m>>2]|0)+20>>2]&3](m,i,k,k,1,0);r=(c[d>>2]|0)==1?k:0;}else{Ac[c[(c[m>>2]|0)+24>>2]&3](m,i,k,1,0);switch(c[i+36>>2]|0){case 0:{r=(c[o>>2]|0)==1&(c[j>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break;}case 1:break;default:{r=0;break a;}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[j>>2]|0)==1&(c[n>>2]|0)==1):0){r=0;break;}r=c[g>>2]|0;}}while(0);l=h;return r|0;}function lA(a){a=a|0;_z(a);Vz(a);return;}function mA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if(gA(a,c[b+8>>2]|0,g)|0)jA(0,b,d,e,f);else{h=c[a+8>>2]|0;Bc[c[(c[h>>2]|0)+20>>2]&3](h,b,d,e,f,g);}return;}function nA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;do{if(!(gA(b,c[d+8>>2]|0,g)|0)){if(!(gA(b,c[d>>2]|0,g)|0)){h=c[b+8>>2]|0;Ac[c[(c[h>>2]|0)+24>>2]&3](h,d,e,f,g);break;}if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4)break;j=d+52|0;a[j>>0]=0;k=d+53|0;a[k>>0]=0;l=c[b+8>>2]|0;Bc[c[(c[l>>2]|0)+20>>2]&3](l,d,e,e,1,g);if(a[k>>0]|0){if(!(a[j>>0]|0)){m=1;n=11;}else n=15;}else{m=0;n=11;}do{if((n|0)==11){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(m){n=15;break;}else{o=4;break;}}if(m)n=15;else o=4;}}while(0);if((n|0)==15)o=3;c[i>>2]=o;break;}if((f|0)==1)c[d+32>>2]=1;}else iA(0,d,e,f);}while(0);return;}function oA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(gA(a,c[b+8>>2]|0,0)|0)hA(0,b,d,e);else{f=c[a+8>>2]|0;zc[c[(c[f>>2]|0)+28>>2]&7](f,b,d,e);}return;}function pA(a){a=a|0;return;}function qA(){var a=0;a=l;l=l+16|0;if(!(qb(22252,72)|0)){l=a;return;}else Zz(18265,a);}function rA(a){a=a|0;var b=0;b=l;l=l+16|0;Dy(a);if(!(sb(c[5563]|0,0)|0)){l=b;return;}else Zz(18315,b);}function sA(){var a=0,b=0;a=Yz()|0;if((a|0?(b=c[a>>2]|0,b|0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)tA(c[b+12>>2]|0);tA(uA()|0);}function tA(a){a=a|0;var b=0;b=l;l=l+16|0;vc[a&3]();Zz(18368,b);}function uA(){var a=0;a=c[3162]|0;c[3162]=a+0;return a|0;}function vA(a){a=a|0;return;}function wA(a){a=a|0;_z(a);Vz(a);return;}function xA(a,b,c){a=a|0;b=b|0;c=c|0;return gA(a,b,0)|0;}function yA(a){a=a|0;_z(a);Vz(a);return;}function zA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+64|0;f=e;c[d>>2]=c[c[d>>2]>>2];if(!(AA(a,b,0)|0)){if(((b|0)!=0?(g=kA(b,10840,10896,0)|0,(g|0)!=0):0)?(c[g+8>>2]&~c[a+8>>2]|0)==0:0){b=a+12|0;a=g+12|0;if(!(gA(c[b>>2]|0,c[a>>2]|0,0)|0)?!(gA(c[b>>2]|0,10928,0)|0):0){g=c[b>>2]|0;if((((g|0)!=0?(b=kA(g,10840,10824,0)|0,(b|0)!=0):0)?(g=c[a>>2]|0,(g|0)!=0):0)?(a=kA(g,10840,10824,0)|0,(a|0)!=0):0){g=f+4|0;h=g+52|0;do{c[g>>2]=0;g=g+4|0;}while((g|0)<(h|0));c[f>>2]=a;c[f+8>>2]=b;c[f+12>>2]=-1;c[f+48>>2]=1;zc[c[(c[a>>2]|0)+28>>2]&7](a,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1;}else i=0;j=i;}else j=0;}else j=1;}else j=0;}else j=1;l=e;return j|0;}function AA(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(gA(a,b,0)|0)d=1;else d=gA(b,10936,0)|0;return d|0;}function BA(a){a=a|0;_z(a);Vz(a);return;}function CA(a,b,c){a=a|0;b=b|0;c=c|0;return 0;}function DA(a){a=a|0;_z(a);Vz(a);return;}function EA(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(gA(b,c[d+8>>2]|0,h)|0)jA(0,d,e,f,g);else{i=d+52|0;j=a[i>>0]|0;k=d+53|0;l=a[k>>0]|0;m=c[b+12>>2]|0;n=b+16+(m<<3)|0;a[i>>0]=0;a[k>>0]=0;IA(b+16|0,d,e,f,g,h);a:do{if((m|0)>1){o=d+24|0;p=b+8|0;q=d+54|0;r=b+24|0;do{if(a[q>>0]|0)break a;if(!(a[i>>0]|0)){if(a[k>>0]|0?(c[p>>2]&1|0)==0:0)break a;}else{if((c[o>>2]|0)==1)break a;if(!(c[p>>2]&2))break a;}a[i>>0]=0;a[k>>0]=0;IA(r,d,e,f,g,h);r=r+8|0;}while(r>>>0>>0);}}while(0);a[i>>0]=j;a[k>>0]=l;}return;}function FA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;a:do{if(!(gA(b,c[d+8>>2]|0,g)|0)){if(!(gA(b,c[d>>2]|0,g)|0)){h=c[b+12>>2]|0;i=b+16+(h<<3)|0;JA(b+16|0,d,e,f,g);j=b+24|0;if((h|0)<=1)break;h=c[b+8>>2]|0;if((h&2|0)==0?(k=d+36|0,(c[k>>2]|0)!=1):0){if(!(h&1)){h=d+54|0;l=j;while(1){if(a[h>>0]|0)break a;if((c[k>>2]|0)==1)break a;JA(l,d,e,f,g);l=l+8|0;if(l>>>0>=i>>>0)break a;}}l=d+24|0;h=d+54|0;m=j;while(1){if(a[h>>0]|0)break a;if((c[k>>2]|0)==1?(c[l>>2]|0)==1:0)break a;JA(m,d,e,f,g);m=m+8|0;if(m>>>0>=i>>>0)break a;}}m=d+54|0;l=j;while(1){if(a[m>>0]|0)break a;JA(l,d,e,f,g);l=l+8|0;if(l>>>0>=i>>>0)break a;}}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;l=d+44|0;if((c[l>>2]|0)==4)break;m=b+16+(c[b+12>>2]<<3)|0;j=d+52|0;k=d+53|0;h=d+54|0;n=b+8|0;o=d+24|0;p=0;q=b+16|0;r=0;b:while(1){if(q>>>0>=m>>>0){s=p;t=18;break;}a[j>>0]=0;a[k>>0]=0;IA(q,d,e,e,1,g);if(a[h>>0]|0){s=p;t=18;break;}do{if(a[k>>0]|0){if(!(a[j>>0]|0))if(!(c[n>>2]&1)){s=1;t=18;break b;}else{u=1;v=r;break;}if((c[o>>2]|0)==1){t=23;break b;}if(!(c[n>>2]&2)){t=23;break b;}else{u=1;v=1;}}else{u=p;v=r;}}while(0);p=u;q=q+8|0;r=v;}do{if((t|0)==18){if((!r?(c[i>>2]=e,q=d+40|0,c[q>>2]=(c[q>>2]|0)+1,(c[d+36>>2]|0)==1):0)?(c[o>>2]|0)==2:0){a[h>>0]=1;if(s){t=23;break;}else{w=4;break;}}if(s)t=23;else w=4;}}while(0);if((t|0)==23)w=3;c[l>>2]=w;break;}if((f|0)==1)c[d+32>>2]=1;}else iA(0,d,e,f);}while(0);return;}function GA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do{if(!(gA(b,c[d+8>>2]|0,0)|0)){g=c[b+12>>2]|0;h=b+16+(g<<3)|0;HA(b+16|0,d,e,f);if((g|0)>1){g=d+54|0;i=b+24|0;do{HA(i,d,e,f);if(a[g>>0]|0)break a;i=i+8|0;}while(i>>>0>>0);}}else hA(0,d,e,f);}while(0);return;}function HA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[a+4>>2]|0;g=f>>8;if(!(f&1))h=g;else h=c[(c[d>>2]|0)+g>>2]|0;g=c[a>>2]|0;zc[c[(c[g>>2]|0)+28>>2]&7](g,b,d+h|0,(f&2|0)==0?2:e);return;}function IA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+4>>2]|0;i=h>>8;if(!(h&1))j=i;else j=c[(c[e>>2]|0)+i>>2]|0;i=c[a>>2]|0;Bc[c[(c[i>>2]|0)+20>>2]&3](i,b,d,e+j|0,(h&2|0)==0?2:f,g);return;}function JA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a+4>>2]|0;h=g>>8;if(!(g&1))i=h;else i=c[(c[d>>2]|0)+h>>2]|0;h=c[a>>2]|0;Ac[c[(c[h>>2]|0)+24>>2]&3](h,b,d+i|0,(g&2|0)==0?2:e,f);return;}function KA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,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=l;l=l+4192|0;h=g+4176|0;i=g;j=g+4112|0;if((b|0)!=0?(k=(d|0)!=0,m=(e|0)==0,!(k&m)):0){if(k)n=c[e>>2]|0;else n=0;LA(i);MA(j,i);k=j+48|0;o=j+61|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;a[k+12>>0]=0;a[o>>0]=1;k=j+32|0;p=j+36|0;q=c[p>>2]|0;if(q>>>0<(c[j+40>>2]|0)>>>0){NA(h,i);c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=c[h>>2];c[p>>2]=(c[p>>2]|0)+16;}else OA(k,i);q=j+62|0;a[q>>0]=0;a[j+63>>0]=1;c[h>>2]=0;r=b+(Ty(b)|0)|0;PA(b,r,j,h);s=c[h>>2]|0;do{if(!((s|0)!=0|(a[q>>0]|0)==0)){t=c[k>>2]|0;if((t|0)!=(c[p>>2]|0)?(c[t>>2]|0)!=(c[t+4>>2]|0):0){a[q>>0]=0;a[o>>0]=0;t=c[j>>2]|0;u=j+4|0;v=c[u>>2]|0;while(1){if((v|0)==(t|0))break;w=v+-24|0;QA(w);v=w;}c[u>>2]=t;v=c[j+16>>2]|0;w=j+20|0;x=c[w>>2]|0;while(1){if((x|0)==(v|0))break;y=x+-16|0;RA(y);x=y;}c[w>>2]=v;PA(b,r,j,h);if(!(a[q>>0]|0)){z=c[h>>2]|0;A=22;break;}else{c[h>>2]=-2;B=0;C=-2;break;}}else A=23;}else{z=s;A=22;}}while(0);if((A|0)==22)if(!z)A=23;else{B=0;C=z;}do{if((A|0)==23){z=j+4|0;s=SA((c[z>>2]|0)+-24|0)|0;q=s+1|0;if(q>>>0>n>>>0){r=Fy(d,q)|0;if(!r){c[h>>2]=-1;B=0;C=-1;break;}if(m)D=r;else{c[e>>2]=q;D=r;}}else if(!d){B=0;C=0;break;}else D=d;r=c[z>>2]|0;q=r+-12|0;b=a[q+11>>0]|0;o=b<<24>>24<0;TA(r+-24|0,o?c[q>>2]|0:q,o?c[r+-8>>2]|0:b&255)|0;b=(c[z>>2]|0)+-24|0;if((a[b+11>>0]|0)<0)E=c[b>>2]|0;else E=b;mE(D|0,E|0,s|0)|0;a[D+s>>0]=0;B=D;C=0;}}while(0);if(f|0)c[f>>2]=C;UA(j);VA(i);F=B;}else if(!f)F=0;else{c[f>>2]=-3;F=0;}l=g;return F|0;}function LA(a){a=a|0;c[a+4096>>2]=a;return;}function MA(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;SD(e,b);c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[e>>2];NA(e,b);TD(a+16|0,e);UD(e,b);VD(a+32|0,e);l=d;return;}function NA(a,b){a=a|0;b=b|0;c[a>>2]=b;return;}function OA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+32|0;e=d+20|0;f=d;g=a+4|0;h=((c[g>>2]|0)-(c[a>>2]|0)>>4)+1|0;i=qD(a)|0;if(i>>>0>>0)Wz(a);else{j=c[a>>2]|0;k=(c[a+8>>2]|0)-j|0;m=k>>3;rD(f,k>>4>>>0>>1>>>0?m>>>0>>0?h:m:i,(c[g>>2]|0)-j>>4,a+12|0);j=f+8|0;g=c[j>>2]|0;NA(e,b);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=c[e>>2];c[j>>2]=g+16;sD(a,f);tD(f);l=d;return;}}function PA(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;a:do{if(b>>>0>>0){b:do{if((a[b>>0]|0)!=95){if((mB(b,d,e)|0)!=(d|0)){c[f>>2]=-2;break a;}}else{if((d-b|0)<=3){c[f>>2]=-2;break a;}switch(a[b+1>>0]|0){case 90:{g=b+2|0;h=jB(g,d,e)|0;if(!((h|0)==(g|0)|(h|0)==(d|0))?(a[h>>0]|0)==46:0)i=kB(h,d,e)|0;else i=h;if((i|0)==(d|0))break b;c[f>>2]=-2;break a;break;}case 95:{j=11;break;}default:{}}if(((j|0)==11?(a[b+2>>0]|0)==95:0)?(a[b+3>>0]|0)==90:0){h=b+4|0;g=jB(h,d,e)|0;if((g|0)==(h|0)|(g|0)==(d|0)){c[f>>2]=-2;break a;}if((lB(g,d,e)|0)==(d|0))break;c[f>>2]=-2;break a;}c[f>>2]=-2;break a;}}while(0);if((c[f>>2]|0)==0?(c[e>>2]|0)==(c[e+4>>2]|0):0)c[f>>2]=-2;}else c[f>>2]=-2;}while(0);return;}function QA(a){a=a|0;iB(a+12|0);iB(a);return;}function RA(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-24|0;QA(f);e=f;}c[d>>2]=b;b=c[a>>2]|0;hB(a+12|0,b,((c[a+8>>2]|0)-b|0)/24|0);}return;}function SA(b){b=b|0;var d=0,e=0,f=0;d=a[b+11>>0]|0;if(d<<24>>24<0)e=c[b+4>>2]|0;else e=d&255;d=a[b+12+11>>0]|0;if(d<<24>>24<0)f=c[b+16>>2]|0;else f=d&255;return f+e|0;}function TA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+16|0;g=f;h=b+11|0;i=a[h>>0]|0;j=i<<24>>24<0;if(j){k=c[b+4>>2]|0;m=(c[b+8>>2]&2147483647)+-1|0;}else{k=i&255;m=10;}if((m-k|0)>>>0>=e>>>0){if(e|0){if(j)n=c[b>>2]|0;else n=b;bB(n+k|0,d,e)|0;j=k+e|0;if((a[h>>0]|0)<0)c[b+4>>2]=j;else a[h>>0]=j;a[g>>0]=0;cB(n+j|0,g);}}else dB(b,m,k+e-m|0,k,k,0,e,d);l=f;return b|0;}function UA(a){a=a|0;WA(a+32|0);XA(a+16|0);RA(a);return;}function VA(a){a=a|0;c[a+4096>>2]=0;return;}function WA(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-16|0;XA(f);e=f;}c[d>>2]=b;b=c[a>>2]|0;aB(a+12|0,b,(c[a+8>>2]|0)-b>>4);}return;}function XA(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-16|0;RA(f);e=f;}c[d>>2]=b;b=c[a>>2]|0;YA(a+12|0,b,(c[a+8>>2]|0)-b>>4);}return;}function YA(a,b,d){a=a|0;b=b|0;d=d|0;ZA(c[a>>2]|0,b,d<<4);return;}function ZA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(_A(a,b)|0){e=b+($A(d)|0)|0;d=a+4096|0;if((e|0)==(c[d>>2]|0))c[d>>2]=b;}else Dy(b);return;}function _A(a,b){a=a|0;b=b|0;return(a+4096|0)>>>0>=b>>>0&a>>>0<=b>>>0|0;}function $A(a){a=a|0;return a+15&-16|0;}function aB(a,b,d){a=a|0;b=b|0;d=d|0;ZA(c[a>>2]|0,b,d<<4);return;}function bB(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)mE(a|0,b|0,c|0)|0;return a|0;}function cB(b,c){b=b|0;c=c|0;a[b>>0]=a[c>>0]|0;return;}function dB(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;k=l;l=l+16|0;m=k;if((-18-d|0)>>>0>>0)eB(b);if((a[b+11>>0]|0)<0)n=c[b>>2]|0;else n=b;if(d>>>0<2147483623){o=e+d|0;e=d<<1;p=o>>>0>>0?e:o;q=p>>>0<11?11:p+16&-16;}else q=-17;p=fB(q)|0;if(g|0)bB(p,n,g)|0;if(i|0)bB(p+g|0,j,i)|0;j=f-h|0;f=j-g|0;if(f|0)bB(p+g+i|0,n+g+h|0,f)|0;if((d|0)!=10)gB(n);c[b>>2]=p;c[b+8>>2]=q|-2147483648;q=j+i|0;c[b+4>>2]=q;a[m>>0]=0;cB(p+q|0,m);l=k;return;}function eB(a){a=a|0;lb();}function fB(a){a=a|0;return Cy(a)|0;}function gB(a){a=a|0;Dy(a);return;}function hB(a,b,d){a=a|0;b=b|0;d=d|0;ZA(c[a>>2]|0,b,d*24|0);return;}function iB(b){b=b|0;if((a[b+11>>0]|0)<0)gB(c[b>>2]|0);return;}function jB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,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;f=l;l=l+64|0;g=f+48|0;h=f+40|0;i=f+32|0;j=f+24|0;k=f+12|0;m=f;if((b|0)!=(d|0)){n=e+56|0;MD(h,n);c[n>>2]=(c[n>>2]|0)+1;o=e+61|0;ND(i,o);if((c[n>>2]|0)>>>0>1)a[o>>0]=1;a:do{switch(a[b>>0]|0){case 84:case 71:{p=OD(b,d,e)|0;q=1;break;}default:{n=MB(b,d,e)|0;r=c[e+48>>2]|0;s=c[e+52>>2]|0;b:do{if((n|0)!=(b|0)){if((n|0)!=(d|0)){switch(a[n>>0]|0){case 46:case 69:{t=n;break b;break;}default:{}}ND(j,o);a[o>>0]=0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;u=0;while(1){if((u|0)==3)break;c[k+(u<<2)>>2]=0;u=u+1|0;}u=e+4|0;v=c[u>>2]|0;c:do{if((c[e>>2]|0)!=(v|0)){w=v+-24|0;x=a[w+11>>0]|0;y=x<<24>>24<0;if(y)z=c[v+-20>>2]|0;else z=x&255;if(z){if(!(a[e+60>>0]|0)){if(y){A=c[w>>2]|0;B=c[v+-20>>2]|0;}else{A=w;B=x&255;}if((a[A+B+-1>>0]|0)==62){if(y){C=c[v+-20>>2]|0;D=c[w>>2]|0;}else{C=x&255;D=w;}if((a[D+(C+-2)>>0]|0)!=45){if(y){E=c[v+-20>>2]|0;F=c[w>>2]|0;}else{E=x&255;F=w;}if((a[F+(E+-2)>>0]|0)!=62){x=mB(n,d,e)|0;if((x|0)==(n|0)){G=b;H=0;break;}y=c[u>>2]|0;I=y;if(((y-(c[e>>2]|0)|0)/24|0)>>>0<2){G=b;H=0;break;}y=I+-24|0;c[m>>2]=c[y>>2];c[m+4>>2]=c[y+4>>2];c[m+8>>2]=c[y+8>>2];J=0;while(1){if((J|0)==3)break;c[y+(J<<2)>>2]=0;J=J+1|0;}J=I+-12|0;y=k+11|0;if((a[y>>0]|0)<0){K=c[k>>2]|0;a[g>>0]=0;cB(K,g);c[k+4>>2]=0;}else{a[g>>0]=0;cB(k,g);a[y>>0]=0;}TB(k);c[k>>2]=c[J>>2];c[k+4>>2]=c[J+4>>2];c[k+8>>2]=c[J+8>>2];K=0;while(1){if((K|0)==3)break;c[J+(K<<2)>>2]=0;K=K+1|0;}K=a[y>>0]|0;if(!((K<<24>>24<0?c[k+4>>2]|0:K&255)|0))NC(m,32);K=c[u>>2]|0;J=0;while(1){if((J|0)==-1)break;I=J+-1|0;QA(K+(I*24|0)|0);J=I;}c[u>>2]=K+-24;J=a[m+11>>0]|0;y=J<<24>>24<0;zD(K+-48|0,0,y?c[m>>2]|0:m,y?c[m+4>>2]|0:J&255)|0;iB(m);L=x;M=(c[u>>2]|0)+-24|0;}else{L=n;M=w;}}else{L=n;M=w;}}else{L=n;M=w;}}else{L=n;M=w;}NC(M,40);if((L|0)!=(d|0)?(a[L>>0]|0)==118:0){N=L+1|0;O=c[e>>2]|0;P=c[u>>2]|0;}else Q=50;do{if((Q|0)==50){J=g+11|0;y=g+4|0;I=m+11|0;R=m+4|0;S=1;T=L;d:while(1){U=T;while(1){V=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;W=mB(U,d,e)|0;X=c[u>>2]|0;Y=c[e>>2]|0;Z=(X-Y|0)/24|0;if((W|0)==(U|0)){Q=74;break d;}if(Z>>>0>V>>>0)break;else U=W;}c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;_=0;while(1){if((_|0)==3)break;c[g+(_<<2)>>2]=0;_=_+1|0;}_=V;while(1){if(_>>>0>=Z>>>0)break;$=a[J>>0]|0;if(($<<24>>24<0?c[y>>2]|0:$&255)|0)qB(g,18897)|0;FB(m,(c[e>>2]|0)+(_*24|0)|0);$=a[I>>0]|0;aa=$<<24>>24<0;TA(g,aa?c[m>>2]|0:m,aa?c[R>>2]|0:$&255)|0;iB(m);_=_+1|0;}_=V;while(1){if(_>>>0>=Z>>>0)break;$=c[u>>2]|0;aa=0;while(1){if((aa|0)==-1)break;ba=aa+-1|0;QA($+(ba*24|0)|0);aa=ba;}c[u>>2]=$+-24;_=_+1|0;}_=a[J>>0]|0;aa=c[y>>2]|0;ba=_&255;if(!((_<<24>>24<0?aa:ba)|0))ca=S;else{da=c[u>>2]|0;if((c[e>>2]|0)==(da|0)){Q=86;break;}if(S){ea=ba;fa=da;ga=_;ha=aa;}else{qB(da+-24|0,18897)|0;da=a[J>>0]|0;ea=da&255;fa=c[u>>2]|0;ga=da;ha=c[y>>2]|0;}da=ga<<24>>24<0;TA(fa+-24|0,da?c[g>>2]|0:g,da?ha:ea)|0;ca=0;}iB(g);S=ca;T=W;}if((Q|0)==74){N=U;O=Y;P=X;break;}else if((Q|0)==86){iB(g);G=b;H=0;break c;}}}while(0);if((O|0)!=(P|0)){NC(P+-24|0,41);if(r&1|0)qB((c[u>>2]|0)+-24|0,18620)|0;if(r&2|0)qB((c[u>>2]|0)+-24|0,18627)|0;if(r&4|0)qB((c[u>>2]|0)+-24|0,18637)|0;switch(s|0){case 1:{qB((c[u>>2]|0)+-24|0,20101)|0;break;}case 2:{qB((c[u>>2]|0)+-24|0,20104)|0;break;}default:{}}w=a[k+11>>0]|0;x=w<<24>>24<0;TA((c[u>>2]|0)+-24|0,x?c[k>>2]|0:k,x?c[k+4>>2]|0:w&255)|0;G=N;H=1;}else{G=b;H=0;}}else{G=b;H=0;}}else{G=b;H=0;}}while(0);iB(k);PD(j);if(H)t=G;else{p=G;q=0;break a;}}else t=d;}else t=b;}while(0);p=t;q=1;}}}while(0);PD(i);QD(h);if(q){ia=p;Q=90;}else ja=b;}else{ia=b;Q=90;}if((Q|0)==90)ja=ia;l=f;return ja|0;}function kB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+48|0;g=f+24|0;h=f+12|0;i=f;if(((b|0)!=(d|0)?(a[b>>0]|0)==46:0)?(j=e+4|0,(c[e>>2]|0)!=(c[j>>2]|0)):0){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;QC(i,b,d);pB(i,0,18670)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];e=0;while(1){if((e|0)==3)break;c[i+(e<<2)>>2]=0;e=e+1|0;}qB(h,18673)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];e=0;while(1){if((e|0)==3)break;c[h+(e<<2)>>2]=0;e=e+1|0;}e=a[g+11>>0]|0;k=e<<24>>24<0;TA((c[j>>2]|0)+-24|0,k?c[g>>2]|0:g,k?c[g+4>>2]|0:e&255)|0;iB(g);iB(h);iB(i);m=d;}else m=b;l=f;return m|0;}function lB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;a:do{if((d-b|0)>12){f=0;g=b;while(1){if(f>>>0>=13)break;if((a[g>>0]|0)!=(a[20306+f>>0]|0)){h=b;break a;}f=f+1|0;g=g+1|0;}b:do{if((g|0)==(d|0))i=d;else{if((a[g>>0]|0)==95){f=g+1|0;if((f|0)==(d|0)){h=b;break a;}if(((a[f>>0]|0)+-48|0)>>>0>=10){h=b;break a;}j=g+2|0;}else j=g;f=j;while(1){if((f|0)==(d|0)){i=d;break b;}if(((a[f>>0]|0)+-48|0)>>>0>=10){i=f;break b;}f=f+1|0;}}}while(0);g=c[e+4>>2]|0;if((c[e>>2]|0)!=(g|0)){pB(g+-24|0,0,20320)|0;h=i;}else h=b;}else h=b;}while(0);return h|0;}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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;f=l;l=l+144|0;g=f+128|0;h=f+104|0;i=f+40|0;j=f+88|0;k=f+24|0;m=f+76|0;n=f+12|0;o=f;p=f+64|0;a:do{if((b|0)!=(d|0)){switch(a[b>>0]|0){case 75:case 86:case 114:{c[g>>2]=0;q=nB(b,d,g)|0;b:do{if((q|0)!=(b|0)?(r=(a[q>>0]|0)==70,s=e+4|0,t=((c[s>>2]|0)-(c[e>>2]|0)|0)/24|0,u=mB(q,d,e)|0,v=((c[s>>2]|0)-(c[e>>2]|0)|0)/24|0,(u|0)!=(q|0)):0){s=e+20|0;w=c[s>>2]|0;if(r){x=0;while(1){if((x|0)==-1)break;y=x+-1|0;RA(w+(y<<4)|0);x=y;}x=w+-16|0;c[s>>2]=x;z=x;}else z=w;x=c[e+12>>2]|0;c[h>>2]=x;if(z>>>0<(c[e+24>>2]|0)>>>0){c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=x;c[s>>2]=(c[s>>2]|0)+16;}else oB(e+16|0,h);x=c[g>>2]|0;y=(x&1|0)==0;A=(x&2|0)==0;B=(x&4|0)==0;x=t;while(1){if(x>>>0>=v>>>0){C=u;break b;}if(r){D=c[e>>2]|0;E=D+(x*24|0)+12|0;F=a[E+11>>0]|0;G=F<<24>>24<0;if(G){H=c[D+(x*24|0)+16>>2]|0;I=c[E>>2]|0;}else{H=F&255;I=E;}J=H+-2|0;if((a[I+J>>0]|0)==38)K=H+-3|0;else{if(G){L=c[E>>2]|0;M=c[D+(x*24|0)+16>>2]|0;}else{L=E;M=F&255;}K=(a[L+M+-1>>0]|0)==38?J:H;}if(y)N=K;else{pB(E,K,18620)|0;N=K+6|0;}if(A)O=N;else{pB((c[e>>2]|0)+(x*24|0)+12|0,N,18627)|0;O=N+9|0;}if(!B)pB((c[e>>2]|0)+(x*24|0)+12|0,O,18637)|0;}else{if(!y)qB((c[e>>2]|0)+(x*24|0)|0,18620)|0;if(!A)qB((c[e>>2]|0)+(x*24|0)|0,18627)|0;if(!B)qB((c[e>>2]|0)+(x*24|0)|0,18637)|0;}E=c[s>>2]|0;J=(c[e>>2]|0)+(x*24|0)|0;F=E+-12|0;D=c[F>>2]|0;if((D|0)==(c[E+-8>>2]|0))sB(E+-16|0,J);else{rB(D,J);c[F>>2]=(c[F>>2]|0)+24;}x=x+1|0;}}else C=b;}while(0);P=C;break a;break;}default:{}}q=tB(b,d,e)|0;if((q|0)==(b|0)){c:do{switch(a[b>>0]|0){case 65:{x=uB(b,d,e)|0;if((x|0)==(b|0)){P=b;break a;}s=c[e+4>>2]|0;if((c[e>>2]|0)==(s|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,s+-24|0,h);s=e+20|0;B=c[s>>2]|0;if(B>>>0<(c[e+24>>2]|0)>>>0){c[B>>2]=0;A=B+4|0;c[A>>2]=0;y=B+8|0;c[y>>2]=0;c[B+12>>2]=c[g+12>>2];c[B>>2]=c[g>>2];B=g+4|0;c[A>>2]=c[B>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[B>>2]=0;c[g>>2]=0;c[s>>2]=(c[s>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=x;break a;break;}case 67:{x=b+1|0;s=mB(x,d,e)|0;if((s|0)==(x|0)){P=b;break a;}x=e+4|0;B=c[x>>2]|0;if((c[e>>2]|0)==(B|0)){P=b;break a;}qB(B+-24|0,18647)|0;B=(c[x>>2]|0)+-24|0;c[h>>2]=c[e+12>>2];vB(g,B,h);B=e+20|0;x=c[B>>2]|0;if(x>>>0<(c[e+24>>2]|0)>>>0){c[x>>2]=0;A=x+4|0;c[A>>2]=0;y=x+8|0;c[y>>2]=0;c[x+12>>2]=c[g+12>>2];c[x>>2]=c[g>>2];x=g+4|0;c[A>>2]=c[x>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[x>>2]=0;c[g>>2]=0;c[B>>2]=(c[B>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=s;break a;break;}case 70:{s=xB(b,d,e)|0;if((s|0)==(b|0)){P=b;break a;}B=c[e+4>>2]|0;if((c[e>>2]|0)==(B|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,B+-24|0,h);B=e+20|0;x=c[B>>2]|0;if(x>>>0<(c[e+24>>2]|0)>>>0){c[x>>2]=0;A=x+4|0;c[A>>2]=0;y=x+8|0;c[y>>2]=0;c[x+12>>2]=c[g+12>>2];c[x>>2]=c[g>>2];x=g+4|0;c[A>>2]=c[x>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[x>>2]=0;c[g>>2]=0;c[B>>2]=(c[B>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=s;break a;break;}case 71:{s=b+1|0;B=mB(s,d,e)|0;if((B|0)==(s|0)){P=b;break a;}s=e+4|0;x=c[s>>2]|0;if((c[e>>2]|0)==(x|0)){P=b;break a;}qB(x+-24|0,18656)|0;x=(c[s>>2]|0)+-24|0;c[h>>2]=c[e+12>>2];vB(g,x,h);x=e+20|0;s=c[x>>2]|0;if(s>>>0<(c[e+24>>2]|0)>>>0){c[s>>2]=0;A=s+4|0;c[A>>2]=0;y=s+8|0;c[y>>2]=0;c[s+12>>2]=c[g+12>>2];c[s>>2]=c[g>>2];s=g+4|0;c[A>>2]=c[s>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[s>>2]=0;c[g>>2]=0;c[x>>2]=(c[x>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=B;break a;break;}case 77:{B=yB(b,d,e)|0;if((B|0)==(b|0)){P=b;break a;}x=c[e+4>>2]|0;if((c[e>>2]|0)==(x|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,x+-24|0,h);x=e+20|0;s=c[x>>2]|0;if(s>>>0<(c[e+24>>2]|0)>>>0){c[s>>2]=0;A=s+4|0;c[A>>2]=0;y=s+8|0;c[y>>2]=0;c[s+12>>2]=c[g+12>>2];c[s>>2]=c[g>>2];s=g+4|0;c[A>>2]=c[s>>2];A=g+8|0;c[y>>2]=c[A>>2];c[A>>2]=0;c[s>>2]=0;c[g>>2]=0;c[x>>2]=(c[x>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=B;break a;break;}case 79:{B=e+4|0;x=((c[B>>2]|0)-(c[e>>2]|0)|0)/24|0;s=b+1|0;A=mB(s,d,e)|0;y=((c[B>>2]|0)-(c[e>>2]|0)|0)/24|0;if((A|0)==(s|0)){P=b;break a;}s=c[e+12>>2]|0;c[g>>2]=s;B=e+20|0;r=c[B>>2]|0;if(r>>>0<(c[e+24>>2]|0)>>>0){c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=s;c[B>>2]=(c[B>>2]|0)+16;}else oB(e+16|0,g);s=g+11|0;r=g+4|0;u=x;while(1){if(u>>>0>=y>>>0){P=A;break a;}zB(g,(c[e>>2]|0)+(u*24|0)+12|0,2);x=AB(18667)|0;v=a[s>>0]|0;if((x|0)==((v<<24>>24<0?c[r>>2]|0:v&255)|0))Q=(BB(g,18667,x)|0)==0;else Q=0;iB(g);x=c[e>>2]|0;v=x+(u*24|0)|0;if(!Q){t=x+(u*24|0)+12|0;if((a[t+11>>0]|0)<0)R=c[t>>2]|0;else R=t;if((a[R>>0]|0)==40){qB(v,18675)|0;pB((c[e>>2]|0)+(u*24|0)+12|0,0,18673)|0;}}else{qB(v,18670)|0;pB((c[e>>2]|0)+(u*24|0)+12|0,0,18673)|0;}qB((c[e>>2]|0)+(u*24|0)|0,18677)|0;v=c[B>>2]|0;t=(c[e>>2]|0)+(u*24|0)|0;x=v+-12|0;w=c[x>>2]|0;if((w|0)==(c[v+-8>>2]|0))sB(v+-16|0,t);else{rB(w,t);c[x>>2]=(c[x>>2]|0)+24;}u=u+1|0;}break;}case 80:{u=e+4|0;B=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;r=b+1|0;s=mB(r,d,e)|0;A=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;if((s|0)==(r|0)){P=b;break a;}u=c[e+12>>2]|0;c[g>>2]=u;y=e+20|0;x=c[y>>2]|0;if(x>>>0<(c[e+24>>2]|0)>>>0){c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=u;c[y>>2]=(c[y>>2]|0)+16;}else oB(e+16|0,g);u=g+11|0;x=g+4|0;t=g+11|0;w=g+4|0;v=B;while(1){if(v>>>0>=A>>>0){P=s;break a;}zB(g,(c[e>>2]|0)+(v*24|0)+12|0,2);B=AB(18667)|0;F=a[u>>0]|0;if((B|0)==((F<<24>>24<0?c[x>>2]|0:F&255)|0))S=(BB(g,18667,B)|0)==0;else S=0;iB(g);B=c[e>>2]|0;F=B+(v*24|0)|0;if(!S){J=B+(v*24|0)+12|0;if((a[J+11>>0]|0)<0)T=c[J>>2]|0;else T=J;if((a[T>>0]|0)==40){qB(F,18675)|0;pB((c[e>>2]|0)+(v*24|0)+12|0,0,18673)|0;}}else{qB(F,18670)|0;pB((c[e>>2]|0)+(v*24|0)+12|0,0,18673)|0;}if((a[r>>0]|0)==85){zB(g,(c[e>>2]|0)+(v*24|0)|0,12);F=AB(18680)|0;J=a[t>>0]|0;if((F|0)==((J<<24>>24<0?c[w>>2]|0:J&255)|0))U=(BB(g,18680,F)|0)!=0;else U=1;iB(g);F=(c[e>>2]|0)+(v*24|0)|0;if(U){V=F;W=113;}else CB(F);}else{V=(c[e>>2]|0)+(v*24|0)|0;W=113;}if((W|0)==113){W=0;qB(V,18693)|0;}F=c[y>>2]|0;J=(c[e>>2]|0)+(v*24|0)|0;B=F+-12|0;D=c[B>>2]|0;if((D|0)==(c[F+-8>>2]|0))sB(F+-16|0,J);else{rB(D,J);c[B>>2]=(c[B>>2]|0)+24;}v=v+1|0;}break;}case 82:{v=e+4|0;y=((c[v>>2]|0)-(c[e>>2]|0)|0)/24|0;w=b+1|0;t=mB(w,d,e)|0;r=((c[v>>2]|0)-(c[e>>2]|0)|0)/24|0;if((t|0)==(w|0)){P=b;break a;}w=c[e+12>>2]|0;c[g>>2]=w;v=e+20|0;x=c[v>>2]|0;if(x>>>0<(c[e+24>>2]|0)>>>0){c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=w;c[v>>2]=(c[v>>2]|0)+16;}else oB(e+16|0,g);w=g+11|0;x=g+4|0;u=y;while(1){if(u>>>0>=r>>>0){P=t;break a;}zB(g,(c[e>>2]|0)+(u*24|0)+12|0,2);y=AB(18667)|0;s=a[w>>0]|0;if((y|0)==((s<<24>>24<0?c[x>>2]|0:s&255)|0))X=(BB(g,18667,y)|0)==0;else X=0;iB(g);y=c[e>>2]|0;s=y+(u*24|0)|0;if(!X){A=y+(u*24|0)+12|0;if((a[A+11>>0]|0)<0)Y=c[A>>2]|0;else Y=A;if((a[Y>>0]|0)==40){qB(s,18675)|0;pB((c[e>>2]|0)+(u*24|0)+12|0,0,18673)|0;}}else{qB(s,18670)|0;pB((c[e>>2]|0)+(u*24|0)+12|0,0,18673)|0;}qB((c[e>>2]|0)+(u*24|0)|0,18695)|0;s=c[v>>2]|0;A=(c[e>>2]|0)+(u*24|0)|0;y=s+-12|0;B=c[y>>2]|0;if((B|0)==(c[s+-8>>2]|0))sB(s+-16|0,A);else{rB(B,A);c[y>>2]=(c[y>>2]|0)+24;}u=u+1|0;}break;}case 84:{u=e+4|0;v=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;x=DB(b,d,e)|0;w=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;if((x|0)==(b|0)){P=b;break a;}t=e+16|0;r=e+12|0;y=c[r>>2]|0;c[g>>2]=y;A=e+20|0;B=c[A>>2]|0;s=e+24|0;if(B>>>0<(c[s>>2]|0)>>>0){c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=y;c[A>>2]=(c[A>>2]|0)+16;}else oB(t,g);y=v;while(1){if(y>>>0>=w>>>0)break;B=c[A>>2]|0;J=(c[e>>2]|0)+(y*24|0)|0;D=B+-12|0;F=c[D>>2]|0;if((F|0)==(c[B+-8>>2]|0))sB(B+-16|0,J);else{rB(F,J);c[D>>2]=(c[D>>2]|0)+24;}y=y+1|0;}if(!((w|0)==(v+1|0)&(a[e+63>>0]|0)!=0)){P=x;break a;}y=EB(x,d,e)|0;if((y|0)==(x|0)){P=x;break a;}FB(g,(c[u>>2]|0)+-24|0);D=c[u>>2]|0;J=0;while(1){if((J|0)==-1)break;F=J+-1|0;QA(D+(F*24|0)|0);J=F;}c[u>>2]=D+-24;J=a[g+11>>0]|0;x=J<<24>>24<0;TA(D+-48|0,x?c[g>>2]|0:g,x?c[g+4>>2]|0:J&255)|0;J=(c[u>>2]|0)+-24|0;c[i>>2]=c[r>>2];vB(h,J,i);J=c[A>>2]|0;if(J>>>0<(c[s>>2]|0)>>>0){c[J>>2]=0;x=J+4|0;c[x>>2]=0;v=J+8|0;c[v>>2]=0;c[J+12>>2]=c[h+12>>2];c[J>>2]=c[h>>2];J=h+4|0;c[x>>2]=c[J>>2];x=h+8|0;c[v>>2]=c[x>>2];c[x>>2]=0;c[J>>2]=0;c[h>>2]=0;c[A>>2]=(c[A>>2]|0)+16;}else wB(t,h);RA(h);iB(g);P=y;break a;break;}case 85:{J=b+1|0;if((J|0)==(d|0)){P=b;break a;}x=GB(J,d,e)|0;if((x|0)==(J|0)){P=b;break a;}J=mB(x,d,e)|0;if((J|0)==(x|0)){P=b;break a;}x=e+4|0;v=c[x>>2]|0;if(((v-(c[e>>2]|0)|0)/24|0)>>>0<2){P=b;break a;}FB(g,v+-24|0);v=c[x>>2]|0;w=0;while(1){if((w|0)==-1)break;F=w+-1|0;QA(v+(F*24|0)|0);w=F;}c[x>>2]=v+-24;zB(h,v+-48|0,9);w=AB(18697)|0;y=a[h+11>>0]|0;if((w|0)==((y<<24>>24<0?c[h+4>>2]|0:y&255)|0)){y=(BB(h,18697,w)|0)==0;iB(h);if(y){FB(h,(c[x>>2]|0)+-24|0);y=c[x>>2]|0;w=0;while(1){if((w|0)==-1)break;t=w+-1|0;QA(y+(t*24|0)|0);w=t;}c[x>>2]=y+-24;w=h+11|0;v=a[w>>0]|0;t=v<<24>>24<0;A=h+4|0;s=t?c[h>>2]|0:h;r=GB(s+9|0,s+(t?c[A>>2]|0:v&255)|0,e)|0;if((r|0)==(((a[w>>0]|0)<0?c[h>>2]|0:h)+9|0)){HB(k,g,18707);r=a[w>>0]|0;w=r<<24>>24<0;TA(k,w?c[h>>2]|0:h,w?c[A>>2]|0:r&255)|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];r=0;while(1){if((r|0)==3)break;c[k+(r<<2)>>2]=0;r=r+1|0;}IB(i,p);r=c[x>>2]|0;if(r>>>0<(c[e+8>>2]|0)>>>0){KB(r,i);c[x>>2]=(c[x>>2]|0)+24;}else LB(e,i);QA(i);iB(p);iB(k);}else{HB(n,g,18709);FB(o,(c[x>>2]|0)+-24|0);r=a[o+11>>0]|0;y=r<<24>>24<0;TA(n,y?c[o>>2]|0:o,y?c[o+4>>2]|0:r&255)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];r=0;while(1){if((r|0)==3)break;c[n+(r<<2)>>2]=0;r=r+1|0;}qB(k,18711)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];r=0;while(1){if((r|0)==3)break;c[k+(r<<2)>>2]=0;r=r+1|0;}IB(i,m);JB((c[x>>2]|0)+-24|0,i);QA(i);iB(m);iB(k);iB(o);iB(n);}iB(h);}else W=167;}else{iB(h);W=167;}if((W|0)==167){HB(i,g,18707);FB(k,(c[x>>2]|0)+-24|0);r=a[k+11>>0]|0;y=r<<24>>24<0;TA(i,y?c[k>>2]|0:k,y?c[k+4>>2]|0:r&255)|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];r=0;while(1){if((r|0)==3)break;c[i+(r<<2)>>2]=0;r=r+1|0;}IB(h,j);JB((c[x>>2]|0)+-24|0,h);QA(h);iB(j);iB(k);iB(i);}r=(c[x>>2]|0)+-24|0;c[i>>2]=c[e+12>>2];vB(h,r,i);r=e+20|0;y=c[r>>2]|0;if(y>>>0<(c[e+24>>2]|0)>>>0){c[y>>2]=0;A=y+4|0;c[A>>2]=0;w=y+8|0;c[w>>2]=0;c[y+12>>2]=c[h+12>>2];c[y>>2]=c[h>>2];y=h+4|0;c[A>>2]=c[y>>2];A=h+8|0;c[w>>2]=c[A>>2];c[A>>2]=0;c[y>>2]=0;c[h>>2]=0;c[r>>2]=(c[r>>2]|0)+16;}else wB(e+16|0,h);RA(h);iB(g);P=J;break a;break;}case 83:{r=b+1|0;if((r|0)!=(d|0)?(a[r>>0]|0)==116:0){r=MB(b,d,e)|0;if((r|0)==(b|0)){P=b;break a;}y=c[e+4>>2]|0;if((c[e>>2]|0)==(y|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,y+-24|0,h);y=e+20|0;A=c[y>>2]|0;if(A>>>0<(c[e+24>>2]|0)>>>0){c[A>>2]=0;w=A+4|0;c[w>>2]=0;v=A+8|0;c[v>>2]=0;c[A+12>>2]=c[g+12>>2];c[A>>2]=c[g>>2];A=g+4|0;c[w>>2]=c[A>>2];w=g+8|0;c[v>>2]=c[w>>2];c[w>>2]=0;c[A>>2]=0;c[g>>2]=0;c[y>>2]=(c[y>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=r;break a;}r=NB(b,d,e)|0;if((r|0)==(b|0)){P=b;break a;}y=EB(r,d,e)|0;if((y|0)==(r|0)){P=r;break a;}A=e+4|0;w=c[A>>2]|0;if(((w-(c[e>>2]|0)|0)/24|0)>>>0<2){P=r;break a;}FB(g,w+-24|0);w=c[A>>2]|0;r=0;while(1){if((r|0)==-1)break;v=r+-1|0;QA(w+(v*24|0)|0);r=v;}c[A>>2]=w+-24;r=a[g+11>>0]|0;J=r<<24>>24<0;TA(w+-48|0,J?c[g>>2]|0:g,J?c[g+4>>2]|0:r&255)|0;r=(c[A>>2]|0)+-24|0;c[i>>2]=c[e+12>>2];vB(h,r,i);r=e+20|0;J=c[r>>2]|0;if(J>>>0<(c[e+24>>2]|0)>>>0){c[J>>2]=0;x=J+4|0;c[x>>2]=0;v=J+8|0;c[v>>2]=0;c[J+12>>2]=c[h+12>>2];c[J>>2]=c[h>>2];J=h+4|0;c[x>>2]=c[J>>2];x=h+8|0;c[v>>2]=c[x>>2];c[x>>2]=0;c[J>>2]=0;c[h>>2]=0;c[r>>2]=(c[r>>2]|0)+16;}else wB(e+16|0,h);RA(h);iB(g);P=y;break a;break;}case 68:{r=b+1|0;if((r|0)!=(d|0))switch(a[r>>0]|0){case 112:{r=e+4|0;J=((c[r>>2]|0)-(c[e>>2]|0)|0)/24|0;x=b+2|0;v=mB(x,d,e)|0;t=((c[r>>2]|0)-(c[e>>2]|0)|0)/24|0;if((v|0)==(x|0))break c;x=c[e+12>>2]|0;c[g>>2]=x;r=e+20|0;s=c[r>>2]|0;if(s>>>0<(c[e+24>>2]|0)>>>0){c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=x;c[r>>2]=(c[r>>2]|0)+16;}else oB(e+16|0,g);x=J;while(1){if(x>>>0>=t>>>0){P=v;break a;}J=c[r>>2]|0;s=(c[e>>2]|0)+(x*24|0)|0;u=J+-12|0;D=c[u>>2]|0;if((D|0)==(c[J+-8>>2]|0))sB(J+-16|0,s);else{rB(D,s);c[u>>2]=(c[u>>2]|0)+24;}x=x+1|0;}break;}case 84:case 116:{x=OB(b,d,e)|0;if((x|0)==(b|0))break c;r=c[e+4>>2]|0;if((c[e>>2]|0)==(r|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,r+-24|0,h);r=e+20|0;v=c[r>>2]|0;if(v>>>0<(c[e+24>>2]|0)>>>0){c[v>>2]=0;t=v+4|0;c[t>>2]=0;y=v+8|0;c[y>>2]=0;c[v+12>>2]=c[g+12>>2];c[v>>2]=c[g>>2];v=g+4|0;c[t>>2]=c[v>>2];t=g+8|0;c[y>>2]=c[t>>2];c[t>>2]=0;c[v>>2]=0;c[g>>2]=0;c[r>>2]=(c[r>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=x;break a;break;}case 118:{x=PB(b,d,e)|0;if((x|0)==(b|0))break c;r=c[e+4>>2]|0;if((c[e>>2]|0)==(r|0)){P=b;break a;}c[h>>2]=c[e+12>>2];vB(g,r+-24|0,h);r=e+20|0;v=c[r>>2]|0;if(v>>>0<(c[e+24>>2]|0)>>>0){c[v>>2]=0;t=v+4|0;c[t>>2]=0;y=v+8|0;c[y>>2]=0;c[v+12>>2]=c[g+12>>2];c[v>>2]=c[g>>2];v=g+4|0;c[t>>2]=c[v>>2];t=g+8|0;c[y>>2]=c[t>>2];c[t>>2]=0;c[v>>2]=0;c[g>>2]=0;c[r>>2]=(c[r>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=x;break a;break;}default:break c;}break;}default:{}}}while(0);x=tB(b,d,e)|0;if((x|0)==(b|0)){r=MB(b,d,e)|0;if((r|0)!=(b|0)?(v=c[e+4>>2]|0,(c[e>>2]|0)!=(v|0)):0){c[h>>2]=c[e+12>>2];vB(g,v+-24|0,h);v=e+20|0;t=c[v>>2]|0;if(t>>>0<(c[e+24>>2]|0)>>>0){c[t>>2]=0;y=t+4|0;c[y>>2]=0;A=t+8|0;c[A>>2]=0;c[t+12>>2]=c[g+12>>2];c[t>>2]=c[g>>2];t=g+4|0;c[y>>2]=c[t>>2];y=g+8|0;c[A>>2]=c[y>>2];c[y>>2]=0;c[t>>2]=0;c[g>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(e+16|0,g);RA(g);P=r;}else P=b;}else P=x;}else P=q;}else P=b;}while(0);l=f;return P|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;c[e>>2]=0;if((b|0)!=(d|0)){d=a[b>>0]|0;if(d<<24>>24==114){c[e>>2]=4;f=b+1|0;g=f;h=4;i=a[f>>0]|0;}else{g=b;h=0;i=d;}if(i<<24>>24==86){d=h|2;c[e>>2]=d;f=g+1|0;j=f;k=a[f>>0]|0;l=d;}else{j=g;k=i;l=h;}if(k<<24>>24==75){c[e>>2]=l|1;m=j+1|0;}else m=j;}else m=b;return m|0;}function oB(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;d=l;l=l+32|0;e=d;f=a+4|0;g=((c[f>>2]|0)-(c[a>>2]|0)>>4)+1|0;h=AD(a)|0;if(h>>>0>>0)Wz(a);else{i=c[a>>2]|0;j=(c[a+8>>2]|0)-i|0;k=j>>3;BD(e,j>>4>>>0>>1>>>0?k>>>0>>0?g:k:h,(c[f>>2]|0)-i>>4,a+12|0);i=e+8|0;f=c[i>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=c[b>>2];c[i>>2]=f+16;CD(a,e);DD(e);l=d;return;}}function pB(a,b,c){a=a|0;b=b|0;c=c|0;return zD(a,b,c,AB(c)|0)|0;}function qB(a,b){a=a|0;b=b|0;return TA(a,b,AB(b)|0)|0;}function rB(a,b){a=a|0;b=b|0;TC(a,b);TC(a+12|0,b+12|0);return;}function sB(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;d=l;l=l+32|0;e=d;f=a+4|0;g=(((c[f>>2]|0)-(c[a>>2]|0)|0)/24|0)+1|0;h=XC(a)|0;if(h>>>0>>0)Wz(a);else{i=c[a>>2]|0;j=((c[a+8>>2]|0)-i|0)/24|0;k=j<<1;YC(e,j>>>0>>1>>>0?k>>>0>>0?g:k:h,((c[f>>2]|0)-i|0)/24|0,a+12|0);i=e+8|0;f=c[i>>2]|0;rB(f,b);c[i>>2]=f+24;ZC(a,e);_C(e);l=d;return;}}function tB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+32|0;g=f;a:do{if((b|0)==(d|0))h=b;else do{switch(a[b>>0]|0){case 118:{cD(g,20112);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 119:{HD(g);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 98:{cD(g,20117);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 99:{cD(g,19886);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 97:{JC(g,19891);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 104:{gD(g,19903);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 115:{sC(g,19917);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 116:{KC(g,19923);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 105:{ID(g,20122);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 106:{LC(g,20126);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 108:{cD(g,20139);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 109:{gD(g,20144);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 120:{GC(g,20158);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 121:{JD(g);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 110:{KD(g,19952);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 111:{HC(g,19961);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 102:{sC(g,20168);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 100:{LD(g);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 101:{JC(g,20174);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 103:{FC(g,20186);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 122:{ID(g,20197);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);h=b+1|0;break a;break;}case 117:{i=b+1|0;j=GB(i,d,e)|0;h=(j|0)==(i|0)?b:j;break a;break;}case 68:{j=b+1|0;if((j|0)==(d|0)){h=b;break a;}switch(a[j>>0]|0){case 100:{GC(g,20201);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 101:{FC(g,20211);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 102:{GC(g,20222);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 104:{GC(g,20232);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 105:{KD(g,20242);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 115:{KD(g,20251);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 97:{cD(g,20260);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}case 110:{KC(g,20265);j=e+4|0;i=c[j>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);h=b+2|0;break a;break;}default:{h=b;break a;}}break;}default:{h=b;break a;}}}while(0);}while(0);l=f;return h|0;}function uB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;f=l;l=l+112|0;g=f+96|0;h=f+72|0;i=f+48|0;j=f+36|0;k=f+24|0;m=f+12|0;n=f;do{if(((b|0)!=(d|0)?(a[b>>0]|0)==65:0)?(o=b+1|0,(o|0)!=(d|0)):0){p=a[o>>0]|0;if(p<<24>>24==95){q=b+2|0;r=mB(q,d,e)|0;if((r|0)==(q|0)){s=b;break;}q=e+4|0;t=c[q>>2]|0;if((c[e>>2]|0)==(t|0)){s=b;break;}zB(g,t+-12|0,2);t=AB(18667)|0;u=a[g+11>>0]|0;if((t|0)==((u<<24>>24<0?c[g+4>>2]|0:u&255)|0)){u=(BB(g,18667,t)|0)==0;iB(g);if(u)GD((c[q>>2]|0)+-12|0);}else iB(g);pB((c[q>>2]|0)+-12|0,0,20108)|0;s=r;break;}if((p+-49&255)<9){p=QB(o,d)|0;if((p|0)==(d|0)){s=b;break;}if((a[p>>0]|0)!=95){s=b;break;}r=p+1|0;q=mB(r,d,e)|0;if((q|0)==(r|0)){s=b;break;}r=e+4|0;u=c[r>>2]|0;if((c[e>>2]|0)==(u|0)){s=b;break;}zB(g,u+-12|0,2);u=AB(18667)|0;t=a[g+11>>0]|0;if((u|0)==((t<<24>>24<0?c[g+4>>2]|0:t&255)|0)){t=(BB(g,18667,u)|0)==0;iB(g);if(t)GD((c[r>>2]|0)+-12|0);}else iB(g);t=(c[r>>2]|0)+-12|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;QC(i,o,p);pB(i,0,18667)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];p=0;while(1){if((p|0)==3)break;c[i+(p<<2)>>2]=0;p=p+1|0;}qB(h,18722)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];p=0;while(1){if((p|0)==3)break;c[h+(p<<2)>>2]=0;p=p+1|0;}p=a[g+11>>0]|0;r=p<<24>>24<0;zD(t,0,r?c[g>>2]|0:g,r?c[g+4>>2]|0:p&255)|0;iB(g);iB(h);iB(i);s=q;break;}p=SB(o,d,e)|0;if(((!((p|0)==(o|0)|(p|0)==(d|0))?(a[p>>0]|0)==95:0)?(r=p+1|0,p=mB(r,d,e)|0,(p|0)!=(r|0)):0)?(r=e+4|0,u=c[r>>2]|0,((u-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){KB(h,u+-24|0);u=c[r>>2]|0;v=0;while(1){if((v|0)==-1)break;w=v+-1|0;QA(u+(w*24|0)|0);v=w;}c[r>>2]=u+-24;KB(i,u+-48|0);v=c[r>>2]|0;o=v+-24|0;q=o+11|0;if((a[q>>0]|0)<0){t=c[o>>2]|0;a[g>>0]=0;cB(t,g);c[v+-20>>2]=0;}else{a[g>>0]=0;cB(o,g);a[q>>0]=0;}TB(o);c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];o=0;while(1){if((o|0)==3)break;c[h+(o<<2)>>2]=0;o=o+1|0;}o=h+12|0;zB(g,o,2);u=AB(18667)|0;q=a[g+11>>0]|0;if((u|0)==((q<<24>>24<0?c[g+4>>2]|0:q&255)|0)){q=(BB(g,18667,u)|0)==0;iB(g);if(q)GD(o);}else iB(g);FB(n,i);pB(n,0,18667)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];q=0;while(1){if((q|0)==3)break;c[n+(q<<2)>>2]=0;q=q+1|0;}qB(m,18722)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];q=0;while(1){if((q|0)==3)break;c[m+(q<<2)>>2]=0;q=q+1|0;}q=a[o+11>>0]|0;u=q<<24>>24<0;TA(k,u?c[o>>2]|0:o,u?c[h+16>>2]|0:q&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];q=0;while(1){if((q|0)==3)break;c[k+(q<<2)>>2]=0;q=q+1|0;}q=c[r>>2]|0;o=q+-12|0;u=o+11|0;if((a[u>>0]|0)<0){v=c[o>>2]|0;a[g>>0]=0;cB(v,g);c[q+-8>>2]=0;}else{a[g>>0]=0;cB(o,g);a[u>>0]=0;}TB(o);c[o>>2]=c[j>>2];c[o+4>>2]=c[j+4>>2];c[o+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}iB(j);iB(k);iB(m);iB(n);QA(i);QA(h);s=p;}else s=b;}else s=b;}while(0);l=f;return s|0;}function vB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[d>>2];FD(a);rB(c[e>>2]|0,b);c[e>>2]=(c[e>>2]|0)+24;return;}function wB(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;d=l;l=l+32|0;e=d;f=a+4|0;g=((c[f>>2]|0)-(c[a>>2]|0)>>4)+1|0;h=AD(a)|0;if(h>>>0>>0)Wz(a);else{i=c[a>>2]|0;j=(c[a+8>>2]|0)-i|0;k=j>>3;BD(e,j>>4>>>0>>1>>>0?k>>>0>>0?g:k:h,(c[f>>2]|0)-i>>4,a+12|0);i=e+8|0;f=c[i>>2]|0;c[f>>2]=0;h=f+4|0;c[h>>2]=0;k=f+8|0;c[k>>2]=0;c[f+12>>2]=c[b+12>>2];c[f>>2]=c[b>>2];g=b+4|0;c[h>>2]=c[g>>2];h=b+8|0;c[k>>2]=c[h>>2];c[h>>2]=0;c[g>>2]=0;c[b>>2]=0;c[i>>2]=f+16;CD(a,e);DD(e);l=d;return;}}function xB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;f=l;l=l+32|0;g=f+12|0;h=f;do{if(((b|0)!=(d|0)?(a[b>>0]|0)==70:0)?(i=b+1|0,(i|0)!=(d|0)):0){if((a[i>>0]|0)==89){j=b+2|0;if((j|0)==(d|0)){k=b;break;}else m=j;}else m=i;i=mB(m,d,e)|0;if((i|0)!=(m|0)){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18675,AB(18675)|0);j=e+4|0;n=g+11|0;o=g+4|0;p=h+11|0;q=h+4|0;r=0;s=i;a:while(1){t=s;b:while(1){if((t|0)==(d|0)){u=11;break a;}switch(a[t>>0]|0){case 69:{u=16;break a;break;}case 118:{v=t+1|0;break;}case 82:{i=t+1|0;if((i|0)!=(d|0)?(a[i>>0]|0)==69:0){w=1;x=i;break b;}else u=23;break;}case 79:{i=t+1|0;if((i|0)!=(d|0)?(a[i>>0]|0)==69:0){w=2;x=i;break b;}else u=23;break;}default:u=23;}c:do{if((u|0)==23){u=0;i=((c[j>>2]|0)-(c[e>>2]|0)|0)/24|0;y=mB(t,d,e)|0;z=((c[j>>2]|0)-(c[e>>2]|0)|0)/24|0;if((y|0)==(t|0)|(y|0)==(d|0))break a;A=i;while(1){if(A>>>0>=z>>>0)break;B=a[n>>0]|0;if((B<<24>>24<0?c[o>>2]|0:B&255)>>>0>1)qB(g,18897)|0;FB(h,(c[e>>2]|0)+(A*24|0)|0);B=a[p>>0]|0;C=B<<24>>24<0;TA(g,C?c[h>>2]|0:h,C?c[q>>2]|0:B&255)|0;iB(h);A=A+1|0;}A=i;while(1){if(A>>>0>=z>>>0){v=y;break c;}B=c[j>>2]|0;C=0;while(1){if((C|0)==-1)break;D=C+-1|0;QA(B+(D*24|0)|0);C=D;}c[j>>2]=B+-24;A=A+1|0;}}}while(0);t=v;}r=w;s=x;}if((u|0)==11){s=c[j>>2]|0;q=0;while(1){if((q|0)==-1)break;p=q+-1|0;QA(s+(p*24|0)|0);q=p;}c[j>>2]=s+-24;}else if((u|0)==16){q=t+1|0;qB(g,18673)|0;switch(r&3){case 1:{qB(g,20101)|0;break;}case 2:{qB(g,20104)|0;break;}default:{}}p=c[j>>2]|0;if((c[e>>2]|0)!=(p|0)){qB(p+-24|0,18707)|0;p=a[n>>0]|0;A=p<<24>>24<0;zD((c[j>>2]|0)+-12|0,0,A?c[g>>2]|0:g,A?c[o>>2]|0:p&255)|0;iB(g);k=q;break;}}iB(g);k=b;}else k=b;}else k=b;}while(0);l=f;return k|0;}function yB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+112|0;g=f+96|0;h=f+72|0;i=f+48|0;j=f+36|0;k=f+24|0;m=f+12|0;n=f;if(((((b|0)!=(d|0)?(a[b>>0]|0)==77:0)?(o=b+1|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=mB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){KB(h,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;KB(i,d+-48|0);d=h+12|0;a:do{if((a[((a[d+11>>0]|0)<0?c[d>>2]|0:d)>>0]|0)==40){qB(h,18675)|0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];e=0;while(1){if((e|0)==3)break;c[h+(e<<2)>>2]=0;e=e+1|0;}FB(n,i);e=a[n+11>>0]|0;q=e<<24>>24<0;TA(m,q?c[n>>2]|0:n,q?c[n+4>>2]|0:e&255)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];e=0;while(1){if((e|0)==3)break;c[m+(e<<2)>>2]=0;e=e+1|0;}qB(k,20097)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];e=0;while(1){if((e|0)==3)break;c[k+(e<<2)>>2]=0;e=e+1|0;}e=c[p>>2]|0;q=e+-24|0;r=q+11|0;if((a[r>>0]|0)<0){s=c[q>>2]|0;a[g>>0]=0;cB(s,g);c[e+-20>>2]=0;}else{a[g>>0]=0;cB(q,g);a[r>>0]=0;}TB(q);c[q>>2]=c[j>>2];c[q+4>>2]=c[j+4>>2];c[q+8>>2]=c[j+8>>2];q=0;while(1){if((q|0)==3)break;c[j+(q<<2)>>2]=0;q=q+1|0;}iB(j);iB(k);iB(n);iB(m);pB(d,0,18673)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];q=0;while(1){if((q|0)==3)break;c[d+(q<<2)>>2]=0;q=q+1|0;}q=c[p>>2]|0;r=q+-12|0;e=r+11|0;if((a[e>>0]|0)<0){s=c[r>>2]|0;a[g>>0]=0;cB(s,g);c[q+-8>>2]=0;}else{a[g>>0]=0;cB(r,g);a[e>>0]=0;}TB(r);c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];r=0;while(1){if((r|0)==3)break;c[j+(r<<2)>>2]=0;r=r+1|0;}iB(j);}else{qB(h,18707)|0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];r=0;while(1){if((r|0)==3)break;c[h+(r<<2)>>2]=0;r=r+1|0;}FB(n,i);r=a[n+11>>0]|0;e=r<<24>>24<0;TA(m,e?c[n>>2]|0:n,e?c[n+4>>2]|0:r&255)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];r=0;while(1){if((r|0)==3)break;c[m+(r<<2)>>2]=0;r=r+1|0;}qB(k,20097)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];r=0;while(1){if((r|0)==3)break;c[k+(r<<2)>>2]=0;r=r+1|0;}r=c[p>>2]|0;e=r+-24|0;q=e+11|0;if((a[q>>0]|0)<0){s=c[e>>2]|0;a[g>>0]=0;cB(s,g);c[r+-20>>2]=0;}else{a[g>>0]=0;cB(e,g);a[q>>0]=0;}TB(e);c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];e=0;while(1){if((e|0)==3)break;c[j+(e<<2)>>2]=0;e=e+1|0;}iB(j);iB(k);iB(n);iB(m);e=c[p>>2]|0;q=e+-12|0;r=q+11|0;if((a[r>>0]|0)<0){s=c[q>>2]|0;a[g>>0]=0;cB(s,g);c[e+-8>>2]=0;}else{a[g>>0]=0;cB(q,g);a[r>>0]=0;}TB(q);c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];q=0;while(1){if((q|0)==3)break a;c[d+(q<<2)>>2]=0;q=q+1|0;}}}while(0);QA(i);QA(h);t=o;}else t=b;l=f;return t|0;}function zB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=a[d+11>>0]|0;g=f<<24>>24<0;h=g?c[d+4>>2]|0:f&255;RB(b,g?c[d>>2]|0:d,h>>>0>>0?h:e);return;}function AB(a){a=a|0;return Ty(a)|0;}function BB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=a[b+11>>0]|0;g=f<<24>>24<0;if(g)h=c[b+4>>2]|0;else h=f&255;if((e|0)==-1)xD(b);if(g)i=c[b>>2]|0;else i=b;b=h>>>0>e>>>0;g=yD(i,d,b?e:h)|0;if(!g)return(h>>>0>>0?-1:b&1)|0;else return g|0;return 0;}function CB(a){a=a|0;wD(a,AB(20094)|0);return;}function DB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+48|0;g=f+16|0;h=f;a:do{if((d-b|0)>1?(a[b>>0]|0)==84:0){i=a[b+1>>0]|0;if(i<<24>>24==95){j=c[e+36>>2]|0;if((c[e+32>>2]|0)==(j|0)){k=b;break;}m=c[j+-16>>2]|0;if((m|0)==(c[j+-12>>2]|0)){vD(g);j=e+4|0;n=c[j>>2]|0;if(n>>>0<(c[e+8>>2]|0)>>>0){KB(n,g);c[j>>2]=(c[j>>2]|0)+24;}else LB(e,g);QA(g);a[e+62>>0]=1;k=b+2|0;break;}j=c[m+4>>2]|0;n=e+4|0;o=e+8|0;p=c[m>>2]|0;while(1){if((p|0)==(j|0))break;m=c[n>>2]|0;if((m|0)==(c[o>>2]|0))sB(e,p);else{rB(m,p);c[n>>2]=(c[n>>2]|0)+24;}p=p+24|0;}k=b+2|0;break;}p=(i<<24>>24)+-48|0;if(p>>>0<10){n=p;p=b+2|0;while(1){if((p|0)==(d|0)){k=b;break a;}q=a[p>>0]|0;o=(q<<24>>24)+-48|0;if(o>>>0>=10)break;n=o+(n*10|0)|0;p=p+1|0;}if(q<<24>>24==95?(i=c[e+36>>2]|0,(c[e+32>>2]|0)!=(i|0)):0){o=n+1|0;j=c[i+-16>>2]|0;m=j;if(o>>>0>=(c[i+-12>>2]|0)-j>>4>>>0){j=p+1|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;QC(h,b,j);IB(g,h);i=e+4|0;r=c[i>>2]|0;if(r>>>0<(c[e+8>>2]|0)>>>0){KB(r,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);iB(h);a[e+62>>0]=1;k=j;break;}j=c[m+(o<<4)+4>>2]|0;i=e+4|0;r=e+8|0;s=c[m+(o<<4)>>2]|0;while(1){if((s|0)==(j|0))break;o=c[i>>2]|0;if((o|0)==(c[r>>2]|0))sB(e,s);else{rB(o,s);c[i>>2]=(c[i>>2]|0)+24;}s=s+24|0;}k=p+1|0;}else k=b;}else k=b;}else k=b;}while(0);l=f;return k|0;}function EB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,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;f=l;l=l+64|0;g=f+32|0;h=f+16|0;i=f+12|0;j=f;do{if((d-b|0)>1?(a[b>>0]|0)==73:0){k=e+61|0;m=e+36|0;if(a[k>>0]|0){n=c[m>>2]|0;o=c[n+-16>>2]|0;p=n+-12|0;n=c[p>>2]|0;while(1){if((n|0)==(o|0))break;q=n+-16|0;RA(q);n=q;}c[p>>2]=o;}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;RB(h,18709,AB(18709)|0);n=e+4|0;q=e+12|0;r=e+40|0;s=e+32|0;t=h+11|0;u=h+4|0;v=g+11|0;w=g+4|0;x=b+1|0;while(1){if((a[x>>0]|0)==69)break;if(a[k>>0]|0){c[i>>2]=c[q>>2];y=c[m>>2]|0;if(y>>>0<(c[r>>2]|0)>>>0){nD(g,i);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=c[g>>2];c[m>>2]=(c[m>>2]|0)+16;}else oD(s,i);}y=((c[n>>2]|0)-(c[e>>2]|0)|0)/24|0;z=pD(x,d,e)|0;A=((c[n>>2]|0)-(c[e>>2]|0)|0)/24|0;if(a[k>>0]|0){B=c[m>>2]|0;C=0;while(1){if((C|0)==-1)break;D=C+-1|0;XA(B+(D<<4)|0);C=D;}c[m>>2]=B+-16;}if((z|0)==(x|0)|(z|0)==(d|0)){E=53;break;}a:do{if(a[k>>0]|0){C=c[m>>2]|0;D=c[q>>2]|0;c[g>>2]=D;F=C+-12|0;G=c[F>>2]|0;if(G>>>0<(c[C+-8>>2]|0)>>>0){c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+12>>2]=D;c[F>>2]=(c[F>>2]|0)+16;}else oB(C+-16|0,g);C=y;while(1){if(C>>>0>=A>>>0)break a;F=c[(c[m>>2]|0)+-12>>2]|0;D=(c[e>>2]|0)+(C*24|0)|0;G=F+-12|0;H=c[G>>2]|0;if((H|0)==(c[F+-8>>2]|0))sB(F+-16|0,D);else{rB(H,D);c[G>>2]=(c[G>>2]|0)+24;}C=C+1|0;}}}while(0);B=y;while(1){if(B>>>0>=A>>>0)break;C=a[t>>0]|0;if((C<<24>>24<0?c[u>>2]|0:C&255)>>>0>1)qB(h,18897)|0;FB(g,(c[e>>2]|0)+(B*24|0)|0);C=a[v>>0]|0;G=C<<24>>24<0;TA(h,G?c[g>>2]|0:g,G?c[w>>2]|0:C&255)|0;iB(g);B=B+1|0;}B=A;while(1){if((B|0)==(y|0))break;C=c[n>>2]|0;G=0;while(1){if((G|0)==-1)break;D=G+-1|0;QA(C+(D*24|0)|0);G=D;}c[n>>2]=C+-24;B=B+-1|0;}x=z;}if((E|0)==53){iB(h);I=b;break;}w=x+1|0;v=a[t>>0]|0;m=v<<24>>24<0;if((a[(m?c[h>>2]|0:h)+(m?c[u>>2]|0:v&255)+-1>>0]|0)==62)qB(h,20088)|0;else qB(h,18711)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];v=0;while(1){if((v|0)==3)break;c[h+(v<<2)>>2]=0;v=v+1|0;}IB(g,j);v=c[n>>2]|0;if(v>>>0<(c[e+8>>2]|0)>>>0){KB(v,g);c[n>>2]=(c[n>>2]|0)+24;}else LB(e,g);QA(g);iB(j);iB(h);I=w;}else I=b;}while(0);l=f;return I|0;}function FB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=d+12|0;f=a[e+11>>0]|0;g=f<<24>>24<0;TA(d,g?c[e>>2]|0:e,g?c[d+16>>2]|0:f&255)|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0;}return;}function GB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;f=l;l=l+64|0;g=f+40|0;h=f+16|0;i=f;a:do{if(((b|0)!=(d|0)?(j=(a[b>>0]|0)+-48|0,j>>>0<10):0)?(k=b+1|0,(k|0)!=(d|0)):0){m=j;j=k;while(1){k=(a[j>>0]|0)+-48|0;if(k>>>0>=10)break;n=j+1|0;if((n|0)==(d|0)){o=b;break a;}m=k+(m*10|0)|0;j=n;}if((d-j|0)>>>0>=m>>>0){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,j,m);zB(h,g,10);n=AB(20055)|0;k=a[h+11>>0]|0;if((n|0)==((k<<24>>24<0?c[h+4>>2]|0:k&255)|0))p=(BB(h,20055,n)|0)==0;else p=0;iB(h);if(p){mD(h);n=e+4|0;k=c[n>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,h);c[n>>2]=(c[n>>2]|0)+24;}else LB(e,h);QA(h);}else{c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];n=0;while(1){if((n|0)==3)break;c[g+(n<<2)>>2]=0;n=n+1|0;}IB(h,i);n=e+4|0;k=c[n>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,h);c[n>>2]=(c[n>>2]|0)+24;}else LB(e,h);QA(h);iB(i);}iB(g);o=j+m|0;}else o=b;}else o=b;}while(0);l=f;return o|0;}function HB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0;}f=d+11|0;g=a[f>>0]|0;h=g<<24>>24<0?c[d+4>>2]|0:g&255;g=AB(e)|0;VB(b,(a[f>>0]|0)<0?c[d>>2]|0:d,h,h+g|0);TA(b,e,g)|0;return;}function IB(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0;}d=a+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[d+(a<<2)>>2]=0;a=a+1|0;}return;}function JB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=b+11|0;if((a[g>>0]|0)<0){h=c[b>>2]|0;a[f>>0]=0;cB(h,f);c[b+4>>2]=0;}else{a[f>>0]=0;cB(b,f);a[g>>0]=0;}TB(b);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];g=0;while(1){if((g|0)==3)break;c[d+(g<<2)>>2]=0;g=g+1|0;}g=b+12|0;h=d+12|0;d=g+11|0;if((a[d>>0]|0)<0){i=c[g>>2]|0;a[f>>0]=0;cB(i,f);c[b+16>>2]=0;}else{a[f>>0]=0;cB(g,f);a[d>>0]=0;}TB(g);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0;}l=e;return;}function KB(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0;}d=a+12|0;a=b+12|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0;}return;}function LB(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;d=l;l=l+32|0;e=d;f=a+4|0;g=(((c[f>>2]|0)-(c[a>>2]|0)|0)/24|0)+1|0;h=XC(a)|0;if(h>>>0>>0)Wz(a);else{i=c[a>>2]|0;j=((c[a+8>>2]|0)-i|0)/24|0;k=j<<1;YC(e,j>>>0>>1>>>0?k>>>0>>0?g:k:h,((c[f>>2]|0)-i|0)/24|0,a+12|0);i=e+8|0;f=c[i>>2]|0;KB(f,b);c[i>>2]=f+24;ZC(a,e);_C(e);l=d;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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+32|0;g=f+8|0;h=f;a:do{if((d-b|0)>1){i=(a[b>>0]|0)==76?b+1|0:b;switch(a[i>>0]|0){case 78:{j=hD(i,d,e)|0;k=(j|0)==(i|0)?b:j;break a;break;}case 90:{j=iD(i,d,e)|0;k=(j|0)==(i|0)?b:j;break a;break;}default:{j=jD(i,d,e)|0;if((j|0)==(i|0)){m=NB(i,d,e)|0;if((m|0)==(i|0)|(m|0)==(d|0)){k=b;break a;}if((a[m>>0]|0)!=73){k=b;break a;}i=EB(m,d,e)|0;if((i|0)==(m|0)){k=b;break a;}m=e+4|0;n=c[m>>2]|0;if(((n-(c[e>>2]|0)|0)/24|0)>>>0<2){k=b;break a;}FB(g,n+-24|0);n=c[m>>2]|0;o=0;while(1){if((o|0)==-1)break;p=o+-1|0;QA(n+(p*24|0)|0);o=p;}c[m>>2]=n+-24;o=a[g+11>>0]|0;p=o<<24>>24<0;TA(n+-48|0,p?c[g>>2]|0:g,p?c[g+4>>2]|0:o&255)|0;iB(g);k=i;break a;}if((j|0)==(d|0)){k=d;break a;}if((a[j>>0]|0)!=73){k=j;break a;}o=e+4|0;p=c[o>>2]|0;if((c[e>>2]|0)==(p|0)){k=b;break a;}c[h>>2]=c[e+12>>2];vB(g,p+-24|0,h);p=e+20|0;q=c[p>>2]|0;if(q>>>0<(c[e+24>>2]|0)>>>0){c[q>>2]=0;r=q+4|0;c[r>>2]=0;s=q+8|0;c[s>>2]=0;c[q+12>>2]=c[g+12>>2];c[q>>2]=c[g>>2];q=g+4|0;c[r>>2]=c[q>>2];r=g+8|0;c[s>>2]=c[r>>2];c[r>>2]=0;c[q>>2]=0;c[g>>2]=0;c[p>>2]=(c[p>>2]|0)+16;}else wB(e+16|0,g);RA(g);p=EB(j,d,e)|0;if((p|0)==(j|0)){k=b;break a;}q=c[o>>2]|0;if(((q-(c[e>>2]|0)|0)/24|0)>>>0<2){k=b;break a;}FB(g,q+-24|0);q=c[o>>2]|0;r=0;while(1){if((r|0)==-1)break;s=r+-1|0;QA(q+(s*24|0)|0);r=s;}c[o>>2]=q+-24;r=a[g+11>>0]|0;j=r<<24>>24<0;TA(q+-48|0,j?c[g>>2]|0:g,j?c[g+4>>2]|0:r&255)|0;iB(g);k=p;break a;}}}else k=b;}while(0);l=f;return k|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,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+32|0;g=f;a:do{if((d-b|0)>1?(a[b>>0]|0)==83:0){h=a[b+1>>0]|0;switch(h|0){case 97:{KC(g,20001);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 98:{HC(g,20016);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 115:{JC(g,19495);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 105:{LC(g,19591);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 111:{LC(g,19668);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 100:{gD(g,19745);i=e+4|0;j=c[i>>2]|0;if(j>>>0<(c[e+8>>2]|0)>>>0){KB(j,g);c[i>>2]=(c[i>>2]|0)+24;}else LB(e,g);QA(g);k=b+2|0;break a;break;}case 95:{i=c[e+16>>2]|0;if((i|0)==(c[e+20>>2]|0)){k=b;break a;}j=c[i+4>>2]|0;m=e+4|0;n=e+8|0;o=c[i>>2]|0;while(1){if((o|0)==(j|0))break;i=c[m>>2]|0;if((i|0)==(c[n>>2]|0))sB(e,o);else{rB(i,o);c[m>>2]=(c[m>>2]|0)+24;}o=o+24|0;}k=b+2|0;break a;break;}default:{o=h+-48|0;m=o>>>0<10;if(!m?(Pz(h)|0)==0:0){k=b;break a;}n=b+2|0;j=m?o:h+-55|0;while(1){if((n|0)==(d|0)){k=b;break a;}p=a[n>>0]|0;o=p<<24>>24;m=o+-48|0;i=m>>>0<10;if(!i?(Pz(o)|0)==0:0)break;n=n+1|0;j=(i?m:o+-55|0)+(j*36|0)|0;}if(p<<24>>24!=95){k=b;break a;}h=j+1|0;o=c[e+16>>2]|0;m=o;if(h>>>0>=(c[e+20>>2]|0)-o>>4>>>0){k=b;break a;}o=c[m+(h<<4)+4>>2]|0;i=e+4|0;q=e+8|0;r=c[m+(h<<4)>>2]|0;while(1){if((r|0)==(o|0))break;h=c[i>>2]|0;if((h|0)==(c[q>>2]|0))sB(e,r);else{rB(h,r);c[i>>2]=(c[i>>2]|0)+24;}r=r+24|0;}k=n+1|0;break a;}}}else k=b;}while(0);l=f;return k|0;}function OB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;a:do{if((d-b|0)>3?(a[b>>0]|0)==68:0){switch(a[b+1>>0]|0){case 84:case 116:break;default:{k=b;break a;}}m=b+2|0;n=SB(m,d,e)|0;if((!((n|0)==(m|0)|(n|0)==(d|0))?(a[n>>0]|0)==69:0)?(m=e+4|0,o=c[m>>2]|0,(c[e>>2]|0)!=(o|0)):0){FB(j,o+-24|0);pB(j,0,19991)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];o=0;while(1){if((o|0)==3)break;c[i+(o<<2)>>2]=0;o=o+1|0;}IB(g,h);JB((c[m>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);k=n+1|0;}else k=b;}else k=b;}while(0);l=f;return k|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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f;j=f+24|0;a:do{if(((d-b|0)>3?(a[b>>0]|0)==68:0)?(a[b+1>>0]|0)==118:0){k=b+2|0;m=a[k>>0]|0;if((m+-49&255)<9){n=QB(k,d)|0;if((n|0)==(d|0)){o=b;break;}if((a[n>>0]|0)!=95){o=b;break;}p=n-k|0;q=n+1|0;if((q|0)==(d|0)){o=b;break;}if((a[q>>0]|0)!=112){r=mB(q,d,e)|0;if((r|0)==(q|0)){o=b;break;}q=e+4|0;if((c[e>>2]|0)==(c[q>>2]|0)){o=b;break;};c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;RB(i,k,p);pB(i,0,18713)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];s=0;while(1){if((s|0)==3)break;c[i+(s<<2)>>2]=0;s=s+1|0;}qB(h,18722)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];s=0;while(1){if((s|0)==3)break;c[h+(s<<2)>>2]=0;s=s+1|0;}s=a[g+11>>0]|0;t=s<<24>>24<0;TA((c[q>>2]|0)+-24|0,t?c[g>>2]|0:g,t?c[g+4>>2]|0:s&255)|0;iB(g);iB(h);iB(i);o=r;break;}s=n+2|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;RB(i,k,p);pB(i,0,18724)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];t=0;while(1){if((t|0)==3)break;c[i+(t<<2)>>2]=0;t=t+1|0;}qB(h,18722)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];t=0;while(1){if((t|0)==3)break;c[h+(t<<2)>>2]=0;t=t+1|0;}IB(g,j);t=e+4|0;p=c[t>>2]|0;if(p>>>0<(c[e+8>>2]|0)>>>0){KB(p,g);c[t>>2]=(c[t>>2]|0)+24;}else LB(e,g);QA(g);iB(j);iB(h);iB(i);o=s;break;};c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;t=0;while(1){if((t|0)==3)break;c[h+(t<<2)>>2]=0;t=t+1|0;}if(m<<24>>24!=95?(t=SB(k,d,e)|0,(t|0)!=(k|0)):0){s=e+4|0;p=c[s>>2]|0;if((c[e>>2]|0)!=(p|0)){FB(i,p+-24|0);p=h+11|0;if((a[p>>0]|0)<0){n=c[h>>2]|0;a[g>>0]=0;cB(n,g);c[h+4>>2]=0;}else{a[g>>0]=0;cB(h,g);a[p>>0]=0;}TB(h);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];p=0;while(1){if((p|0)==3)break;c[i+(p<<2)>>2]=0;p=p+1|0;}iB(i);p=c[s>>2]|0;m=0;while(1){if((m|0)==-1)break;n=m+-1|0;QA(p+(n*24|0)|0);m=n;}c[s>>2]=p+-24;u=t;v=44;}}else{u=k;v=44;}do{if((v|0)==44){if((((u|0)!=(d|0)?(a[u>>0]|0)==95:0)?(m=u+1|0,(m|0)!=(d|0)):0)?(n=mB(m,d,e)|0,(n|0)!=(m|0)):0){m=e+4|0;if((c[e>>2]|0)==(c[m>>2]|0))break;UB(i,18713,h);qB(i,18722)|0;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];r=0;while(1){if((r|0)==3)break;c[i+(r<<2)>>2]=0;r=r+1|0;}r=a[g+11>>0]|0;q=r<<24>>24<0;TA((c[m>>2]|0)+-24|0,q?c[g>>2]|0:g,q?c[g+4>>2]|0:r&255)|0;iB(g);iB(i);w=n;}else w=b;iB(h);o=w;break a;}}while(0);iB(h);o=b;}else o=b;}while(0);l=f;return o|0;}function QB(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a:do{if((b|0)!=(c|0)?(d=(a[b>>0]|0)==110?b+1|0:b,(d|0)!=(c|0)):0){e=a[d>>0]|0;if(e<<24>>24==48){f=d+1|0;break;}if((e+-49&255)<9){e=d;while(1){d=e+1|0;if((d|0)==(c|0)){f=c;break a;}if(((a[d>>0]|0)+-48|0)>>>0<10)e=d;else{f=d;break;}}}else f=b;}else f=b;}while(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,j=0;f=l;l=l+16|0;g=f;if(e>>>0>4294967279)eB(b);if(e>>>0<11){a[b+11>>0]=e;h=b;}else{i=e+16&-16;j=fB(i)|0;c[b>>2]=j;c[b+8>>2]=i|-2147483648;c[b+4>>2]=e;h=j;}bB(h,d,e)|0;a[g>>0]=0;cB(h+e|0,g);l=f;return;}function SB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;f=l;l=l+208|0;g=f+176|0;h=f+112|0;i=f+88|0;j=f+64|0;k=f+48|0;m=f+160|0;n=f+36|0;o=f+148|0;p=f+136|0;q=f+124|0;r=f+24|0;s=f+12|0;t=f;u=d;v=u-b|0;a:do{if((v|0)>1){if((v|0)>3?(a[b>>0]|0)==103:0){w=(a[b+1>>0]|0)==115;x=w?b+2|0:b;y=w;}else{x=b;y=0;}do{switch(a[x>>0]|0){case 76:{z=WB(b,d,e)|0;break a;break;}case 84:{z=DB(b,d,e)|0;break a;break;}case 102:{z=XB(b,d,e)|0;break a;break;}case 97:{switch(a[x+1>>0]|0){case 97:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18677,AB(18677)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 100:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18695,AB(18695)|0);w=ZB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 110:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18695,AB(18695)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 78:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18738,AB(18738)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 83:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18741,AB(18741)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 116:{z=_B(b,d,e)|0;break a;break;}case 122:{z=$B(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}case 99:{switch(a[x+1>>0]|0){case 99:{z=aC(b,d,e)|0;break a;break;}case 108:{z=bC(b,d,e)|0;break a;break;}case 109:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18743,AB(18743)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 111:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18745,AB(18745)|0);A=ZB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 118:{z=cC(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}case 100:{switch(a[x+1>>0]|0){case 97:{A=x+2|0;w=SB(A,d,e)|0;if((w|0)==(A|0)){z=b;break a;}A=e+4|0;if((c[e>>2]|0)==(c[A>>2]|0)){z=b;break a;};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;b:do{if(y)RB(j,18747,AB(18747)|0);else{B=0;while(1){if((B|0)==3)break b;c[j+(B<<2)>>2]=0;B=B+1|0;}}}while(0);qB(j,18750)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];B=0;while(1){if((B|0)==3)break;c[j+(B<<2)>>2]=0;B=B+1|0;}FB(k,(c[A>>2]|0)+-24|0);B=a[k+11>>0]|0;C=B<<24>>24<0;TA(i,C?c[k>>2]|0:k,C?c[k+4>>2]|0:B&255)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];B=0;while(1){if((B|0)==3)break;c[i+(B<<2)>>2]=0;B=B+1|0;}B=c[A>>2]|0;C=B+-24|0;D=C+11|0;if((a[D>>0]|0)<0){E=c[C>>2]|0;a[g>>0]=0;cB(E,g);c[B+-20>>2]=0;}else{a[g>>0]=0;cB(C,g);a[D>>0]=0;}TB(C);c[C>>2]=c[h>>2];c[C+4>>2]=c[h+4>>2];c[C+8>>2]=c[h+8>>2];C=0;while(1){if((C|0)==3)break;c[h+(C<<2)>>2]=0;C=C+1|0;}iB(h);iB(k);iB(i);iB(j);z=w;break a;break;}case 99:{z=dC(b,d,e)|0;break a;break;}case 101:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18693,AB(18693)|0);A=ZB(C,d,g,e)|0;iB(g);z=(A|0)==(C|0)?b:A;break a;break;}case 108:{A=x+2|0;C=SB(A,d,e)|0;if((C|0)==(A|0)){z=b;break a;}A=e+4|0;if((c[e>>2]|0)==(c[A>>2]|0)){z=b;break a;};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c:do{if(y)RB(j,18747,AB(18747)|0);else{D=0;while(1){if((D|0)==3)break c;c[j+(D<<2)>>2]=0;D=D+1|0;}}}while(0);qB(j,18760)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];w=0;while(1){if((w|0)==3)break;c[j+(w<<2)>>2]=0;w=w+1|0;}FB(k,(c[A>>2]|0)+-24|0);w=a[k+11>>0]|0;D=w<<24>>24<0;TA(i,D?c[k>>2]|0:k,D?c[k+4>>2]|0:w&255)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];w=0;while(1){if((w|0)==3)break;c[i+(w<<2)>>2]=0;w=w+1|0;}w=c[A>>2]|0;D=w+-24|0;B=D+11|0;if((a[B>>0]|0)<0){E=c[D>>2]|0;a[g>>0]=0;cB(E,g);c[w+-20>>2]=0;}else{a[g>>0]=0;cB(D,g);a[B>>0]=0;}TB(D);c[D>>2]=c[h>>2];c[D+4>>2]=c[h+4>>2];c[D+8>>2]=c[h+8>>2];D=0;while(1){if((D|0)==3)break;c[h+(D<<2)>>2]=0;D=D+1|0;}iB(h);iB(k);iB(i);iB(j);z=C;break a;break;}case 110:{z=eC(b,d,e)|0;break a;break;}case 115:{z=fC(b,d,e)|0;break a;break;}case 116:{z=gC(b,d,e)|0;break a;break;}case 118:{D=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18768,AB(18768)|0);A=YB(D,d,g,e)|0;iB(g);z=(A|0)==(D|0)?b:A;break a;break;}case 86:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18770,AB(18770)|0);D=YB(A,d,g,e)|0;iB(g);z=(D|0)==(A|0)?b:D;break a;break;}default:{z=b;break a;}}break;}case 101:{switch(a[x+1>>0]|0){case 111:{D=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18773,AB(18773)|0);A=YB(D,d,g,e)|0;iB(g);z=(A|0)==(D|0)?b:A;break a;break;}case 79:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18775,AB(18775)|0);D=YB(A,d,g,e)|0;iB(g);z=(D|0)==(A|0)?b:D;break a;break;}case 113:{D=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18778,AB(18778)|0);A=YB(D,d,g,e)|0;iB(g);z=(A|0)==(D|0)?b:A;break a;break;}default:{z=b;break a;}}break;}case 103:{switch(a[x+1>>0]|0){case 101:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18781,AB(18781)|0);D=YB(A,d,g,e)|0;iB(g);z=(D|0)==(A|0)?b:D;break a;break;}case 116:{D=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18711,AB(18711)|0);A=YB(D,d,g,e)|0;iB(g);z=(A|0)==(D|0)?b:A;break a;break;}default:{z=b;break a;}}break;}case 105:{if((a[x+1>>0]|0)!=120){z=b;break a;}A=b+2|0;D=SB(A,d,e)|0;if((D|0)==(A|0)){z=b;break a;}A=SB(D,d,e)|0;B=e+4|0;if((A|0)==(D|0)){D=c[B>>2]|0;w=0;while(1){if((w|0)==-1)break;E=w+-1|0;QA(D+(E*24|0)|0);w=E;}c[B>>2]=D+-24;z=b;break a;}w=c[B>>2]|0;if(((w-(c[e>>2]|0)|0)/24|0)>>>0<2){z=b;break a;}FB(g,w+-24|0);w=c[B>>2]|0;C=0;while(1){if((C|0)==-1)break;E=C+-1|0;QA(w+(E*24|0)|0);C=E;}c[B>>2]=w+-24;FB(h,w+-48|0);UB(n,18675,h);qB(n,18784)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];C=0;while(1){if((C|0)==3)break;c[n+(C<<2)>>2]=0;C=C+1|0;}C=a[g+11>>0]|0;w=C<<24>>24<0;TA(k,w?c[g>>2]|0:g,w?c[g+4>>2]|0:C&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];C=0;while(1){if((C|0)==3)break;c[k+(C<<2)>>2]=0;C=C+1|0;}qB(j,18722)|0;c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];C=0;while(1){if((C|0)==3)break;c[j+(C<<2)>>2]=0;C=C+1|0;}IB(i,m);JB((c[B>>2]|0)+-24|0,i);QA(i);iB(m);iB(j);iB(k);iB(n);iB(h);iB(g);z=A;break a;break;}case 108:{switch(a[x+1>>0]|0){case 101:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18787,AB(18787)|0);w=YB(C,d,g,e)|0;iB(g);z=(w|0)==(C|0)?b:w;break a;break;}case 115:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18790,AB(18790)|0);C=YB(w,d,g,e)|0;iB(g);z=(C|0)==(w|0)?b:C;break a;break;}case 83:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18793,AB(18793)|0);w=YB(C,d,g,e)|0;iB(g);z=(w|0)==(C|0)?b:w;break a;break;}case 116:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18709,AB(18709)|0);C=YB(w,d,g,e)|0;iB(g);z=(C|0)==(w|0)?b:C;break a;break;}default:{z=b;break a;}}break;}case 109:{switch(a[x+1>>0]|0){case 105:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18797,AB(18797)|0);w=YB(C,d,g,e)|0;iB(g);z=(w|0)==(C|0)?b:w;break a;break;}case 73:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18799,AB(18799)|0);C=YB(w,d,g,e)|0;iB(g);z=(C|0)==(w|0)?b:C;break a;break;}case 108:{C=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18693,AB(18693)|0);w=YB(C,d,g,e)|0;iB(g);z=(w|0)==(C|0)?b:w;break a;break;}case 76:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18802,AB(18802)|0);C=YB(w,d,g,e)|0;iB(g);z=(C|0)==(w|0)?b:C;break a;break;}case 109:{C=b+2|0;if((C|0)!=(d|0)?(a[C>>0]|0)==95:0){w=b+3|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18805,AB(18805)|0);D=ZB(w,d,g,e)|0;iB(g);z=(D|0)==(w|0)?b:D;break a;}D=SB(C,d,e)|0;if((D|0)==(C|0)){z=b;break a;}C=e+4|0;w=c[C>>2]|0;if((c[e>>2]|0)==(w|0)){z=b;break a;}FB(i,w+-24|0);pB(i,0,18675)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];w=0;while(1){if((w|0)==3)break;c[i+(w<<2)>>2]=0;w=w+1|0;}qB(h,18808)|0;c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];w=0;while(1){if((w|0)==3)break;c[h+(w<<2)>>2]=0;w=w+1|0;}IB(g,o);JB((c[C>>2]|0)+-24|0,g);QA(g);iB(o);iB(h);iB(i);z=D;break a;break;}default:{z=b;break a;}}break;}case 110:{switch(a[x+1>>0]|0){case 119:case 97:{z=hC(b,d,e)|0;break a;break;}case 101:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18812,AB(18812)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 103:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18797,AB(18797)|0);w=ZB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 116:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18815,AB(18815)|0);A=ZB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 120:{A=b+2|0;w=iC(A,d,e)|0;z=(w|0)==(A|0)?b:w;break a;break;}default:{z=b;break a;}}break;}case 111:{switch(a[x+1>>0]|0){case 110:{z=eC(b,d,e)|0;break a;break;}case 111:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18817,AB(18817)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 114:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18820,AB(18820)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 82:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18822,AB(18822)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}default:{z=b;break a;}}break;}case 112:{switch(a[x+1>>0]|0){case 109:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18825,AB(18825)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 108:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18829,AB(18829)|0);A=YB(w,d,g,e)|0;iB(g);z=(A|0)==(w|0)?b:A;break a;break;}case 76:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18831,AB(18831)|0);w=YB(A,d,g,e)|0;iB(g);z=(w|0)==(A|0)?b:w;break a;break;}case 112:{w=b+2|0;if((w|0)!=(d|0)?(a[w>>0]|0)==95:0){A=b+3|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18834,AB(18834)|0);B=ZB(A,d,g,e)|0;iB(g);z=(B|0)==(A|0)?b:B;break a;}B=SB(w,d,e)|0;if((B|0)==(w|0)){z=b;break a;}w=e+4|0;A=c[w>>2]|0;if((c[e>>2]|0)==(A|0)){z=b;break a;}FB(i,A+-24|0);pB(i,0,18675)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];A=0;while(1){if((A|0)==3)break;c[i+(A<<2)>>2]=0;A=A+1|0;}qB(h,18837)|0;c[p>>2]=c[h>>2];c[p+4>>2]=c[h+4>>2];c[p+8>>2]=c[h+8>>2];A=0;while(1){if((A|0)==3)break;c[h+(A<<2)>>2]=0;A=A+1|0;}IB(g,p);JB((c[w>>2]|0)+-24|0,g);QA(g);iB(p);iB(h);iB(i);z=B;break a;break;}case 115:{A=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18829,AB(18829)|0);D=ZB(A,d,g,e)|0;iB(g);z=(D|0)==(A|0)?b:D;break a;break;}case 116:{z=jC(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}case 113:{if((a[x+1>>0]|0)!=117){z=b;break a;}D=b+2|0;A=SB(D,d,e)|0;if((A|0)==(D|0)){z=b;break a;}D=SB(A,d,e)|0;if((D|0)==(A|0)){A=e+4|0;C=c[A>>2]|0;E=0;while(1){if((E|0)==-1)break;F=E+-1|0;QA(C+(F*24|0)|0);E=F;}c[A>>2]=C+-24;z=b;break a;}E=SB(D,d,e)|0;B=e+4|0;if((E|0)==(D|0)){w=c[B>>2]|0;F=0;while(1){if((F|0)==-1)break;G=F+-1|0;QA(w+(G*24|0)|0);F=G;}F=w+-24|0;c[B>>2]=F;D=0;while(1){if((D|0)==-1)break;C=D+-1|0;QA(F+(C*24|0)|0);D=C;}c[B>>2]=w+-48;z=b;break a;}D=c[B>>2]|0;if(((D-(c[e>>2]|0)|0)/24|0)>>>0<3){z=b;break a;}FB(g,D+-24|0);D=c[B>>2]|0;F=0;while(1){if((F|0)==-1)break;C=F+-1|0;QA(D+(C*24|0)|0);F=C;}c[B>>2]=D+-24;FB(h,D+-48|0);F=c[B>>2]|0;w=0;while(1){if((w|0)==-1)break;C=w+-1|0;QA(F+(C*24|0)|0);w=C;}c[B>>2]=F+-24;FB(i,F+-48|0);UB(t,18675,i);qB(t,18841)|0;c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];w=0;while(1){if((w|0)==3)break;c[t+(w<<2)>>2]=0;w=w+1|0;}w=a[h+11>>0]|0;F=w<<24>>24<0;TA(s,F?c[h>>2]|0:h,F?c[h+4>>2]|0:w&255)|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];w=0;while(1){if((w|0)==3)break;c[s+(w<<2)>>2]=0;w=w+1|0;}qB(r,18847)|0;c[n>>2]=c[r>>2];c[n+4>>2]=c[r+4>>2];c[n+8>>2]=c[r+8>>2];w=0;while(1){if((w|0)==3)break;c[r+(w<<2)>>2]=0;w=w+1|0;}w=a[g+11>>0]|0;F=w<<24>>24<0;TA(n,F?c[g>>2]|0:g,F?c[g+4>>2]|0:w&255)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];w=0;while(1){if((w|0)==3)break;c[n+(w<<2)>>2]=0;w=w+1|0;}qB(k,18673)|0;c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];w=0;while(1){if((w|0)==3)break;c[k+(w<<2)>>2]=0;w=w+1|0;}IB(j,q);JB((c[B>>2]|0)+-24|0,j);QA(j);iB(q);iB(k);iB(n);iB(r);iB(s);iB(t);iB(i);iB(h);iB(g);z=E;break a;break;}case 114:{switch(a[x+1>>0]|0){case 99:{z=kC(b,d,e)|0;break a;break;}case 109:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18853,AB(18853)|0);F=YB(w,d,g,e)|0;iB(g);z=(F|0)==(w|0)?b:F;break a;break;}case 77:{F=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18855,AB(18855)|0);w=YB(F,d,g,e)|0;iB(g);z=(w|0)==(F|0)?b:w;break a;break;}case 115:{w=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18858,AB(18858)|0);F=YB(w,d,g,e)|0;iB(g);z=(F|0)==(w|0)?b:F;break a;break;}case 83:{F=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18861,AB(18861)|0);w=YB(F,d,g,e)|0;iB(g);z=(w|0)==(F|0)?b:w;break a;break;}default:{z=b;break a;}}break;}case 115:{switch(a[x+1>>0]|0){case 99:{z=lC(b,d,e)|0;break a;break;}case 112:{z=mC(b,d,e)|0;break a;break;}case 114:{z=eC(b,d,e)|0;break a;break;}case 116:{z=nC(b,d,e)|0;break a;break;}case 122:{z=oC(b,d,e)|0;break a;break;}case 90:{if((u-x|0)<=2){z=b;break a;}switch(a[x+2>>0]|0){case 84:{z=pC(b,d,e)|0;break a;break;}case 102:{z=qC(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}default:{z=b;break a;}}break;}case 116:{switch(a[x+1>>0]|0){case 105:case 101:{z=rC(b,d,e)|0;break a;break;}case 114:{sC(g,18865);w=e+4|0;F=c[w>>2]|0;if(F>>>0<(c[e+8>>2]|0)>>>0){KB(F,g);c[w>>2]=(c[w>>2]|0)+24;}else LB(e,g);QA(g);z=b+2|0;break a;break;}case 119:{z=tC(b,d,e)|0;break a;break;}default:{z=b;break a;}}break;}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{z=eC(b,d,e)|0;break a;break;}default:{z=b;break a;}}}while(0);}else z=b;}while(0);l=f;return z|0;}function TB(b){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;d=b+11|0;e=a[d>>0]|0;f=e<<24>>24<0;if(f){g=c[b+4>>2]|0;h=(c[b+8>>2]&2147483647)+-1|0;}else{g=e&255;h=10;}i=g>>>0<11;j=i?10:(g+16&-16)+-1|0;a:do{if((j|0)!=(h|0)){do{if(i){k=c[b>>2]|0;if(f){l=0;m=k;n=b;o=12;}else{bB(b,k,(e&255)+1|0)|0;gB(k);o=15;}}else{k=j+1|0;p=fB(k)|0;if(j>>>0<=h>>>0&(p|0)==0)break a;q=a[d>>0]|0;if(q<<24>>24<0){l=1;m=c[b>>2]|0;n=p;o=12;break;}else{bB(p,b,(q&255)+1|0)|0;r=p;s=k;t=b+4|0;o=14;break;}}}while(0);if((o|0)==12){k=b+4|0;bB(n,m,(c[k>>2]|0)+1|0)|0;gB(m);if(l){r=n;s=j+1|0;t=k;o=14;}else o=15;}if((o|0)==14){c[b+8>>2]=s|-2147483648;c[t>>2]=g;c[b>>2]=r;break;}else if((o|0)==15){a[d>>0]=g;break;}}}while(0);return;}function UB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0;}f=AB(d)|0;g=e+11|0;h=a[g>>0]|0;i=h<<24>>24<0?c[e+4>>2]|0:h&255;VB(b,d,f,i+f|0);TA(b,(a[g>>0]|0)<0?c[e>>2]|0:e,i)|0;return;}function VB(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;g=l;l=l+16|0;h=g;if(f>>>0>4294967279)eB(b);if(f>>>0<11){a[b+11>>0]=e;i=b;}else{j=f+16&-16;f=fB(j)|0;c[b>>2]=f;c[b+8>>2]=j|-2147483648;c[b+4>>2]=e;i=f;}bB(i,d,e)|0;a[h>>0]=0;cB(i+e|0,h);l=g;return;}function WB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+96|0;g=f+64|0;h=f+48|0;i=f+36|0;j=f+24|0;k=f+12|0;m=f;a:do{if((d-b|0)>3?(a[b>>0]|0)==76:0){n=b+1|0;do{switch(a[n>>0]|0){case 84:{o=b;break a;break;}case 119:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19867,AB(19867)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 98:{if((a[b+3>>0]|0)!=69){o=b;break a;}switch(a[b+2>>0]|0){case 48:{sC(g,19875);q=e+4|0;p=c[q>>2]|0;if(p>>>0<(c[e+8>>2]|0)>>>0){KB(p,g);c[q>>2]=(c[q>>2]|0)+24;}else LB(e,g);QA(g);o=b+4|0;break a;break;}case 49:{cD(g,19881);q=e+4|0;p=c[q>>2]|0;if(p>>>0<(c[e+8>>2]|0)>>>0){KB(p,g);c[q>>2]=(c[q>>2]|0)+24;}else LB(e,g);QA(g);o=b+4|0;break a;break;}default:{o=b;break a;}}break;}case 99:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19886,AB(19886)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 97:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19891,AB(19891)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 104:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19903,AB(19903)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 115:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19917,AB(19917)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 116:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19923,AB(19923)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 105:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,22268,AB(22268)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 106:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19938,AB(19938)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 108:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19940,AB(19940)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 109:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19942,AB(19942)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 120:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19945,AB(19945)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 121:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19948,AB(19948)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 110:{p=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19952,AB(19952)|0);q=bD(p,d,g,e)|0;iB(g);o=(q|0)==(p|0)?b:q;break a;break;}case 111:{q=b+2|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,19961,AB(19961)|0);p=bD(q,d,g,e)|0;iB(g);o=(p|0)==(q|0)?b:p;break a;break;}case 102:{p=b+2|0;q=dD(p,d,e)|0;o=(q|0)==(p|0)?b:q;break a;break;}case 100:{q=b+2|0;p=eD(q,d,e)|0;o=(p|0)==(q|0)?b:p;break a;break;}case 101:{p=b+2|0;q=fD(p,d,e)|0;o=(q|0)==(p|0)?b:q;break a;break;}case 95:{if((a[b+2>>0]|0)!=90){o=b;break a;}q=b+3|0;p=jB(q,d,e)|0;if((p|0)==(q|0)|(p|0)==(d|0)){o=b;break a;}o=(a[p>>0]|0)==69?p+1|0:b;break a;break;}default:{p=mB(n,d,e)|0;if((p|0)==(n|0)|(p|0)==(d|0)){o=b;break a;}if((a[p>>0]|0)==69){o=p+1|0;break a;}q=p;while(1){if((q|0)==(d|0)){o=b;break a;}r=a[q>>0]|0;if(((r<<24>>24)+-48|0)>>>0>=10)break;q=q+1|0;}if(!((q|0)!=(p|0)&r<<24>>24==69)){o=b;break a;}s=e+4|0;t=c[s>>2]|0;if((c[e>>2]|0)==(t|0)){o=b;break a;}FB(k,t+-24|0);pB(k,0,18675)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];t=0;while(1){if((t|0)==3)break;c[k+(t<<2)>>2]=0;t=t+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];t=0;while(1){if((t|0)==3)break;c[j+(t<<2)>>2]=0;t=t+1|0;}c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;QC(m,p,q);t=a[m+11>>0]|0;u=t<<24>>24<0;TA(i,u?c[m>>2]|0:m,u?c[m+4>>2]|0:t&255)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];t=0;while(1){if((t|0)==3)break;c[i+(t<<2)>>2]=0;t=t+1|0;}IB(g,h);JB((c[s>>2]|0)+-24|0,g);QA(g);iB(h);iB(m);iB(i);iB(j);iB(k);o=q+1|0;break a;}}}while(0);}else o=b;}while(0);l=f;return o|0;}function XB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+80|0;g=f+64|0;h=f+40|0;i=f+12|0;j=f+24|0;k=f;a:do{if((d-b|0)>2?(a[b>>0]|0)==102:0){switch(a[b+1>>0]|0){case 112:{m=nB(b+2|0,d,g)|0;n=QB(m,d)|0;if((n|0)!=(d|0)?(a[n>>0]|0)==95:0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;QC(j,m,n);pB(j,0,19864)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];m=0;while(1){if((m|0)==3)break;c[j+(m<<2)>>2]=0;m=m+1|0;}IB(h,i);m=e+4|0;o=c[m>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){KB(o,h);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,h);QA(h);iB(i);iB(j);p=n+1|0;}else p=b;q=p;break a;break;}case 76:break;default:{q=b;break a;}}m=QB(b+2|0,d)|0;if((((m|0)!=(d|0)?(a[m>>0]|0)==112:0)?(o=nB(m+1|0,d,g)|0,m=QB(o,d)|0,(m|0)!=(d|0)):0)?(a[m>>0]|0)==95:0){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;QC(j,o,m);pB(j,0,19864)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}IB(h,k);o=e+4|0;n=c[o>>2]|0;if(n>>>0<(c[e+8>>2]|0)>>>0){KB(n,h);c[o>>2]=(c[o>>2]|0)+24;}else LB(e,h);QA(h);iB(k);iB(j);r=m+1|0;}else r=b;q=r;}else q=b;}while(0);l=f;return q|0;}function YB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=l;l=l+96|0;h=g+84|0;i=g+72|0;j=g+60|0;k=g+48|0;m=g+36|0;n=g+24|0;o=g+12|0;p=g;q=SB(b,d,f)|0;do{if((q|0)!=(b|0)){r=SB(q,d,f)|0;s=f+4|0;if((r|0)==(q|0)){t=c[s>>2]|0;u=0;while(1){if((u|0)==-1)break;v=u+-1|0;QA(t+(v*24|0)|0);u=v;}c[s>>2]=t+-24;w=b;break;}u=c[s>>2]|0;if(((u-(c[f>>2]|0)|0)/24|0)>>>0>=2){FB(i,u+-24|0);u=c[s>>2]|0;v=0;while(1){if((v|0)==-1)break;x=v+-1|0;QA(u+(x*24|0)|0);v=x;}c[s>>2]=u+-24;FB(j,u+-48|0);v=c[s>>2]|0;t=v+-24|0;x=t+11|0;if((a[x>>0]|0)<0){y=c[t>>2]|0;a[h>>0]=0;cB(y,h);c[v+-20>>2]=0;}else{a[h>>0]=0;cB(t,h);a[x>>0]=0;}x=AB(18711)|0;v=e+11|0;y=a[v>>0]|0;z=e+4|0;if((x|0)==((y<<24>>24<0?c[z>>2]|0:y&255)|0)?(BB(e,18711,x)|0)==0:0)NC(t,40);UB(p,18675,j);qB(p,18961)|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];x=0;while(1){if((x|0)==3)break;c[p+(x<<2)>>2]=0;x=x+1|0;}x=a[v>>0]|0;s=x<<24>>24<0;TA(o,s?c[e>>2]|0:e,s?c[z>>2]|0:x&255)|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];x=0;while(1){if((x|0)==3)break;c[o+(x<<2)>>2]=0;x=x+1|0;}qB(n,18670)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];x=0;while(1){if((x|0)==3)break;c[n+(x<<2)>>2]=0;x=x+1|0;}x=a[i+11>>0]|0;s=x<<24>>24<0;TA(m,s?c[i>>2]|0:i,s?c[i+4>>2]|0:x&255)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];x=0;while(1){if((x|0)==3)break;c[m+(x<<2)>>2]=0;x=x+1|0;}qB(k,18673)|0;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];x=0;while(1){if((x|0)==3)break;c[k+(x<<2)>>2]=0;x=x+1|0;}x=a[h+11>>0]|0;s=x<<24>>24<0;TA(t,s?c[h>>2]|0:h,s?c[h+4>>2]|0:x&255)|0;iB(h);iB(k);iB(m);iB(n);iB(o);iB(p);x=AB(18711)|0;s=a[v>>0]|0;if((x|0)==((s<<24>>24<0?c[z>>2]|0:s&255)|0)?(BB(e,18711,x)|0)==0:0)NC(t,41);iB(j);iB(i);w=r;}else w=b;}else w=b;}while(0);l=g;return w|0;}function ZB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+64|0;h=g+48|0;i=g+36|0;j=g+24|0;k=g+12|0;m=g;n=SB(b,d,f)|0;if((n|0)!=(b|0)?(d=f+4|0,(c[f>>2]|0)!=(c[d>>2]|0)):0){HB(k,e,18675);FB(m,(c[d>>2]|0)+-24|0);e=a[m+11>>0]|0;f=e<<24>>24<0;TA(k,f?c[m>>2]|0:m,f?c[m+4>>2]|0:e&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];e=0;while(1){if((e|0)==3)break;c[k+(e<<2)>>2]=0;e=e+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];e=0;while(1){if((e|0)==3)break;c[j+(e<<2)>>2]=0;e=e+1|0;}e=c[d>>2]|0;d=e+-24|0;f=d+11|0;if((a[f>>0]|0)<0){o=c[d>>2]|0;a[h>>0]=0;cB(o,h);c[e+-20>>2]=0;}else{a[h>>0]=0;cB(d,h);a[f>>0]=0;}TB(d);c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];c[d+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}iB(i);iB(j);iB(m);iB(k);p=n;}else p=b;l=g;return p|0;}function _B(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+48|0;g=f+36|0;h=f+24|0;i=f+12|0;j=f;if(((((d-b|0)>2?(a[b>>0]|0)==97:0)?(a[b+1>>0]|0)==116:0)?(k=b+2|0,m=mB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,19854)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}d=c[k>>2]|0;k=d+-24|0;e=k+11|0;if((a[e>>0]|0)<0){n=c[k>>2]|0;a[g>>0]=0;cB(n,g);c[d+-20>>2]=0;}else{a[g>>0]=0;cB(k,g);a[e>>0]=0;}TB(k);c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];k=0;while(1){if((k|0)==3)break;c[h+(k<<2)>>2]=0;k=k+1|0;}iB(h);iB(i);iB(j);o=m;}else o=b;l=f;return o|0;}function $B(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+48|0;g=f+36|0;h=f+24|0;i=f+12|0;j=f;if(((((d-b|0)>2?(a[b>>0]|0)==97:0)?(a[b+1>>0]|0)==122:0)?(k=b+2|0,m=SB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,19854)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}d=c[k>>2]|0;k=d+-24|0;e=k+11|0;if((a[e>>0]|0)<0){n=c[k>>2]|0;a[g>>0]=0;cB(n,g);c[d+-20>>2]=0;}else{a[g>>0]=0;cB(k,g);a[e>>0]=0;}TB(k);c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];k=0;while(1){if((k|0)==3)break;c[h+(k<<2)>>2]=0;k=k+1|0;}iB(h);iB(i);iB(j);o=m;}else o=b;l=f;return o|0;}function aC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;if((((((d-b|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==99:0)?(o=b+2|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=SB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;FB(n,d+-48|0);pB(n,0,19842)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0;}qB(m,18922)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0;}d=a[g+11>>0]|0;e=d<<24>>24<0;TA(k,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}IB(h,i);JB((c[p>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);r=o;}else r=b;l=f;return r|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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=l;l=l+32|0;g=f+12|0;h=f;a:do{if(((((d-b|0)>3?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==108:0)?(i=b+2|0,j=SB(i,d,e)|0,!((j|0)==(i|0)|(j|0)==(d|0))):0)?(i=e+4|0,k=c[i>>2]|0,(c[e>>2]|0)!=(k|0)):0){m=k+-12|0;n=a[m+11>>0]|0;o=n<<24>>24<0;TA(k+-24|0,o?c[m>>2]|0:m,o?c[k+-8>>2]|0:n&255)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[h+(n<<2)>>2]=0;n=n+1|0;}n=c[i>>2]|0;k=n+-12|0;o=k+11|0;if((a[o>>0]|0)<0){m=c[k>>2]|0;a[g>>0]=0;cB(m,g);c[n+-8>>2]=0;}else{a[g>>0]=0;cB(k,g);a[o>>0]=0;}TB(k);c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];k=0;while(1){if((k|0)==3)break;c[h+(k<<2)>>2]=0;k=k+1|0;}iB(h);qB((c[i>>2]|0)+-24|0,18675)|0;k=g+11|0;o=g+4|0;n=0;m=j;while(1){if((a[m>>0]|0)==69)break;p=SB(m,d,e)|0;if((p|0)==(m|0)|(p|0)==(d|0)){q=b;break a;}r=c[i>>2]|0;if((c[e>>2]|0)==(r|0)){q=b;break a;}FB(g,r+-24|0);r=c[i>>2]|0;s=0;while(1){if((s|0)==-1)break;t=s+-1|0;QA(r+(t*24|0)|0);s=t;}s=r+-24|0;c[i>>2]=s;t=a[k>>0]|0;u=t<<24>>24<0;v=u?c[o>>2]|0:t&255;if(v){if((c[e>>2]|0)==(s|0)){w=0;x=b;y=m;}else{TA(r+-48|0,u?c[g>>2]|0:g,v)|0;w=1;x=n;y=p;}}else{w=1;x=n;y=p;}iB(g);if(w){n=x;m=y;}else{q=x;break a;}}n=c[i>>2]|0;if((c[e>>2]|0)!=(n|0)){qB(n+-24|0,18673)|0;q=m+1|0;}else q=b;}else q=b;}while(0);l=f;return q|0;}function cC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;a:do{if((((d-b|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==118:0)?(o=e+63|0,p=a[o>>0]|0,a[o>>0]=0,q=b+2|0,r=mB(q,d,e)|0,a[o>>0]=p,!((r|0)==(q|0)|(r|0)==(d|0))):0){if((a[r>>0]|0)!=95){q=SB(r,d,e)|0;if((q|0)==(r|0)){s=b;break;}else t=q;}else{q=r+1|0;if((q|0)==(d|0)){s=b;break;}r=a[q>>0]|0;b:do{if(r<<24>>24==69){p=e+4|0;o=c[p>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[o+20>>2]=0;VC(o);c[p>>2]=(c[p>>2]|0)+24;u=q;break;}else{WC(e);u=q;break;}}else{p=q;o=r;while(1){if(o<<24>>24==69){u=p;break b;}v=SB(p,d,e)|0;if((v|0)==(p|0)|(v|0)==(d|0)){s=b;break a;}p=v;o=a[v>>0]|0;}}}while(0);t=u+1|0;}r=e+4|0;q=c[r>>2]|0;if(((q-(c[e>>2]|0)|0)/24|0)>>>0>=2){FB(g,q+-24|0);q=c[r>>2]|0;o=0;while(1){if((o|0)==-1)break;p=o+-1|0;QA(q+(p*24|0)|0);o=p;}c[r>>2]=q+-24;FB(n,q+-48|0);pB(n,0,18675)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];o=0;while(1){if((o|0)==3)break;c[n+(o<<2)>>2]=0;o=o+1|0;}qB(m,19839)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];o=0;while(1){if((o|0)==3)break;c[m+(o<<2)>>2]=0;o=o+1|0;}o=a[g+11>>0]|0;q=o<<24>>24<0;TA(k,q?c[g>>2]|0:g,q?c[g+4>>2]|0:o&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];o=0;while(1){if((o|0)==3)break;c[k+(o<<2)>>2]=0;o=o+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}IB(h,i);JB((c[r>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);s=t;}else s=b;}else s=b;}while(0);l=f;return s|0;}function dC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==99:0)?(o=b+2|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=SB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;FB(n,d+-48|0);pB(n,0,19825)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0;}qB(m,18922)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0;}d=a[g+11>>0]|0;e=d<<24>>24<0;TA(k,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}IB(h,i);JB((c[p>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);r=o;}else r=b;l=f;return r|0;}function eC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;f=l;l=l+32|0;g=f+12|0;h=f;i=d;a:do{if((i-b|0)>2){if((a[b>>0]|0)==103){j=(a[b+1>>0]|0)==115;k=j;m=j?b+2|0:b;}else{k=0;m=b;}j=xC(m,d,e)|0;if((j|0)!=(m|0)){if(!k){n=j;break;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){n=b;break;}pB(o+-24|0,0,18747)|0;n=j;break;}if(((i-m|0)>2?(a[m>>0]|0)==115:0)?(a[m+1>>0]|0)==114:0){j=m+2|0;if((a[j>>0]|0)==78){o=m+3|0;p=yC(o,d,e)|0;if((p|0)==(o|0)|(p|0)==(d|0)){n=b;break;}o=EB(p,d,e)|0;q=e+4|0;do{if((o|0)==(p|0)){r=p;s=e;}else{t=c[q>>2]|0;if(((t-(c[e>>2]|0)|0)/24|0)>>>0<2){n=b;break a;}FB(g,t+-24|0);t=c[q>>2]|0;u=0;while(1){if((u|0)==-1)break;v=u+-1|0;QA(t+(v*24|0)|0);u=v;}c[q>>2]=t+-24;u=a[g+11>>0]|0;v=u<<24>>24<0;TA(t+-48|0,v?c[g>>2]|0:g,v?c[g+4>>2]|0:u&255)|0;if((o|0)!=(d|0)){iB(g);r=o;s=e;break;}u=c[q>>2]|0;v=0;while(1){if((v|0)==-1)break;w=v+-1|0;QA(u+(w*24|0)|0);v=w;}c[q>>2]=u+-24;iB(g);n=b;break a;}}while(0);o=h+11|0;p=h+4|0;v=r;while(1){if((a[v>>0]|0)==69)break;t=zC(v,d,e)|0;if((t|0)==(v|0)|(t|0)==(d|0)){n=b;break a;}w=c[q>>2]|0;if(((w-(c[s>>2]|0)|0)/24|0)>>>0<2){n=b;break a;}FB(g,w+-24|0);w=c[q>>2]|0;x=0;while(1){if((x|0)==-1)break;y=x+-1|0;QA(w+(y*24|0)|0);x=y;}c[q>>2]=w+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];x=0;while(1){if((x|0)==3)break;c[g+(x<<2)>>2]=0;x=x+1|0;}x=a[o>>0]|0;w=x<<24>>24<0;TA((c[q>>2]|0)+-24|0,w?c[h>>2]|0:h,w?c[p>>2]|0:x&255)|0;iB(h);iB(g);v=t;}p=v+1|0;o=xC(p,d,e)|0;if((o|0)==(p|0)){p=c[q>>2]|0;if((c[e>>2]|0)==(p|0)){n=b;break;}x=0;while(1){if((x|0)==-1)break;w=x+-1|0;QA(p+(w*24|0)|0);x=w;}c[q>>2]=p+-24;n=b;break;}x=c[q>>2]|0;if(((x-(c[s>>2]|0)|0)/24|0)>>>0<2){n=b;break;}FB(g,x+-24|0);x=c[q>>2]|0;v=0;while(1){if((v|0)==-1)break;w=v+-1|0;QA(x+(w*24|0)|0);v=w;}c[q>>2]=x+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];v=0;while(1){if((v|0)==3)break;c[g+(v<<2)>>2]=0;v=v+1|0;}v=a[h+11>>0]|0;x=v<<24>>24<0;TA((c[q>>2]|0)+-24|0,x?c[h>>2]|0:h,x?c[h+4>>2]|0:v&255)|0;iB(h);iB(g);n=o;break;}v=yC(j,d,e)|0;if((v|0)!=(j|0)){x=EB(v,d,e)|0;if((x|0)==(v|0))z=v;else{v=e+4|0;p=c[v>>2]|0;if(((p-(c[e>>2]|0)|0)/24|0)>>>0<2){n=b;break;}FB(g,p+-24|0);p=c[v>>2]|0;w=0;while(1){if((w|0)==-1)break;u=w+-1|0;QA(p+(u*24|0)|0);w=u;}c[v>>2]=p+-24;w=a[g+11>>0]|0;o=w<<24>>24<0;TA(p+-48|0,o?c[g>>2]|0:g,o?c[g+4>>2]|0:w&255)|0;iB(g);z=x;}w=xC(z,d,e)|0;if((w|0)==(z|0)){o=e+4|0;q=c[o>>2]|0;if((c[e>>2]|0)==(q|0)){n=b;break;}u=0;while(1){if((u|0)==-1)break;y=u+-1|0;QA(q+(y*24|0)|0);u=y;}c[o>>2]=q+-24;n=b;break;}u=e+4|0;x=c[u>>2]|0;if(((x-(c[e>>2]|0)|0)/24|0)>>>0<2){n=b;break;}FB(g,x+-24|0);x=c[u>>2]|0;p=0;while(1){if((p|0)==-1)break;v=p+-1|0;QA(x+(v*24|0)|0);p=v;}c[u>>2]=x+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];p=0;while(1){if((p|0)==3)break;c[g+(p<<2)>>2]=0;p=p+1|0;}p=a[h+11>>0]|0;x=p<<24>>24<0;TA((c[u>>2]|0)+-24|0,x?c[h>>2]|0:h,x?c[h+4>>2]|0:p&255)|0;iB(h);iB(g);n=w;break;}p=zC(j,d,e)|0;if(!((p|0)==(j|0)|(p|0)==(d|0))){if(k){x=e+4|0;q=c[x>>2]|0;if((c[e>>2]|0)==(q|0)){n=b;break;}pB(q+-24|0,0,18747)|0;A=x;}else A=e+4|0;x=h+11|0;q=h+4|0;o=p;while(1){if((a[o>>0]|0)==69)break;p=zC(o,d,e)|0;if((p|0)==(o|0)|(p|0)==(d|0)){n=b;break a;}v=c[A>>2]|0;if(((v-(c[e>>2]|0)|0)/24|0)>>>0<2){n=b;break a;}FB(g,v+-24|0);v=c[A>>2]|0;y=0;while(1){if((y|0)==-1)break;B=y+-1|0;QA(v+(B*24|0)|0);y=B;}c[A>>2]=v+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];y=0;while(1){if((y|0)==3)break;c[g+(y<<2)>>2]=0;y=y+1|0;}y=a[x>>0]|0;v=y<<24>>24<0;TA((c[A>>2]|0)+-24|0,v?c[h>>2]|0:h,v?c[q>>2]|0:y&255)|0;iB(h);iB(g);o=p;}q=o+1|0;x=xC(q,d,e)|0;if((x|0)==(q|0)){q=c[A>>2]|0;if((c[e>>2]|0)==(q|0)){n=b;break;}j=0;while(1){if((j|0)==-1)break;w=j+-1|0;QA(q+(w*24|0)|0);j=w;}c[A>>2]=q+-24;n=b;break;}j=c[A>>2]|0;if(((j-(c[e>>2]|0)|0)/24|0)>>>0>=2){FB(g,j+-24|0);j=c[A>>2]|0;o=0;while(1){if((o|0)==-1)break;w=o+-1|0;QA(j+(w*24|0)|0);o=w;}c[A>>2]=j+-24;pB(g,0,18747)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];o=0;while(1){if((o|0)==3)break;c[g+(o<<2)>>2]=0;o=o+1|0;}o=a[h+11>>0]|0;j=o<<24>>24<0;TA((c[A>>2]|0)+-24|0,j?c[h>>2]|0:h,j?c[h+4>>2]|0:o&255)|0;iB(h);iB(g);n=x;}else n=b;}else n=b;}else n=b;}else n=b;}while(0);l=f;return n|0;}function fC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+12|0;h=f;if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==115:0)?(i=b+2|0,j=SB(i,d,e)|0,(j|0)!=(i|0)):0)?(i=SB(j,d,e)|0,(i|0)!=(j|0)):0)?(j=e+4|0,d=c[j>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[j>>2]|0;e=0;while(1){if((e|0)==-1)break;k=e+-1|0;QA(d+(k*24|0)|0);e=k;}c[j>>2]=d+-24;UB(h,18966,g);d=a[h+11>>0]|0;e=d<<24>>24<0;TA((c[j>>2]|0)+-24|0,e?c[h>>2]|0:h,e?c[h+4>>2]|0:d&255)|0;iB(h);iB(g);m=i;}else m=b;l=f;return m|0;}function gC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f+12|0;h=f;if((((((d-b|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==116:0)?(i=b+2|0,j=SB(i,d,e)|0,(j|0)!=(i|0)):0)?(i=eC(j,d,e)|0,(i|0)!=(j|0)):0)?(j=e+4|0,d=c[j>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[j>>2]|0;e=0;while(1){if((e|0)==-1)break;k=e+-1|0;QA(d+(k*24|0)|0);e=k;}c[j>>2]=d+-24;UB(h,18964,g);d=a[h+11>>0]|0;e=d<<24>>24<0;TA((c[j>>2]|0)+-24|0,e?c[h>>2]|0:h,e?c[h+4>>2]|0:d&255)|0;iB(h);iB(g);m=i;}else m=b;l=f;return m|0;}function hC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,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;f=l;l=l+112|0;g=f+88|0;h=f+76|0;i=f+64|0;j=f+40|0;k=f+16|0;m=f;n=f+52|0;o=d;a:do{if((o-b|0)>3){p=a[b>>0]|0;if(p<<24>>24==103){q=(a[b+1>>0]|0)==115;r=q?b+2|0:b;s=q;t=r;u=a[r>>0]|0;}else{s=0;t=b;u=p;}if(u<<24>>24==110){p=a[t+1>>0]|0;switch(p<<24>>24){case 97:case 119:break;default:{v=b;break a;}}r=p<<24>>24==97;p=t+2|0;b:do{if((p|0)!=(d|0)){q=0;w=p;while(1){if((a[w>>0]|0)==95)break;x=SB(w,d,e)|0;if((x|0)==(w|0)|(x|0)==(d|0))break b;else{q=1;w=x;}}x=w+1|0;y=mB(x,d,e)|0;if(!((y|0)==(x|0)|(y|0)==(d|0))){x=a[y>>0]|0;c:do{if(!((o-y|0)>2&x<<24>>24==112)){if(x<<24>>24==69){z=0;A=y;}else break b;}else{if((a[y+1>>0]|0)!=105)break b;B=y+2|0;while(1){if((a[B>>0]|0)==69){z=1;A=B;break c;}C=B;B=SB(B,d,e)|0;if((B|0)==(C|0)|(B|0)==(d|0))break b;}}}while(0);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;y=0;while(1){if((y|0)==3)break;c[h+(y<<2)>>2]=0;y=y+1|0;}if(z){y=e+4|0;x=c[y>>2]|0;if((c[e>>2]|0)==(x|0)){D=b;E=1;}else{FB(i,x+-24|0);x=h+11|0;if((a[x>>0]|0)<0){w=c[h>>2]|0;a[g>>0]=0;cB(w,g);c[h+4>>2]=0;}else{a[g>>0]=0;cB(h,g);a[x>>0]=0;}TB(h);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];x=0;while(1){if((x|0)==3)break;c[i+(x<<2)>>2]=0;x=x+1|0;}iB(i);x=c[y>>2]|0;w=0;while(1){if((w|0)==-1)break;B=w+-1|0;QA(x+(B*24|0)|0);w=B;}w=x+-24|0;c[y>>2]=w;F=y;G=e;H=w;I=33;}}else{w=e+4|0;F=w;G=e;H=c[w>>2]|0;I=33;}if((I|0)==33)if((c[G>>2]|0)==(H|0)){D=b;E=1;}else{FB(i,H+-24|0);w=c[F>>2]|0;B=0;while(1){if((B|0)==-1)break;C=B+-1|0;QA(w+(C*24|0)|0);B=C;}B=w+-24|0;c[F>>2]=B;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;y=0;while(1){if((y|0)==3)break;c[j+(y<<2)>>2]=0;y=y+1|0;}if(q){if((c[G>>2]|0)==(B|0)){J=b;K=1;}else{FB(k,w+-48|0);y=j+11|0;if((a[y>>0]|0)<0){x=c[j>>2]|0;a[g>>0]=0;cB(x,g);c[j+4>>2]=0;}else{a[g>>0]=0;cB(j,g);a[y>>0]=0;}TB(j);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];y=0;while(1){if((y|0)==3)break;c[k+(y<<2)>>2]=0;y=y+1|0;}iB(k);y=c[F>>2]|0;w=0;while(1){if((w|0)==-1)break;B=w+-1|0;QA(y+(B*24|0)|0);w=B;}c[F>>2]=y+-24;I=52;}}else I=52;if((I|0)==52){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;w=0;while(1){if((w|0)==3)break;c[g+(w<<2)>>2]=0;w=w+1|0;}if(s)uC(g,18747);if(r)qB(g,18957)|0;else qB(g,18707)|0;if(q){UB(m,18675,j);qB(m,18961)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];w=0;while(1){if((w|0)==3)break;c[m+(w<<2)>>2]=0;w=w+1|0;}w=a[k+11>>0]|0;q=w<<24>>24<0;TA(g,q?c[k>>2]|0:k,q?c[k+4>>2]|0:w&255)|0;iB(k);iB(m);}w=a[i+11>>0]|0;q=w<<24>>24<0;TA(g,q?c[i>>2]|0:i,q?c[i+4>>2]|0:w&255)|0;if(z){UB(m,18670,h);qB(m,18673)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];w=0;while(1){if((w|0)==3)break;c[m+(w<<2)>>2]=0;w=w+1|0;}w=a[k+11>>0]|0;q=w<<24>>24<0;TA(g,q?c[k>>2]|0:k,q?c[k+4>>2]|0:w&255)|0;iB(k);iB(m);};c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];w=0;while(1){if((w|0)==3)break;c[g+(w<<2)>>2]=0;w=w+1|0;}IB(k,n);w=c[F>>2]|0;if(w>>>0<(c[e+8>>2]|0)>>>0){KB(w,k);c[F>>2]=(c[F>>2]|0)+24;}else LB(e,k);QA(k);iB(n);iB(g);J=A+1|0;K=0;}iB(j);iB(i);D=J;E=K;}iB(h);if(!E){v=D;break a;}}}}while(0);v=b;}else v=b;}else v=b;}while(0);l=f;return v|0;}function iC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+48|0;g=f+36|0;h=f+24|0;i=f+12|0;j=f;k=SB(b,d,e)|0;if((k|0)!=(b|0)?(d=e+4|0,m=c[d>>2]|0,(c[e>>2]|0)!=(m|0)):0){FB(j,m+-24|0);pB(j,0,18946)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];m=0;while(1){if((m|0)==3)break;c[j+(m<<2)>>2]=0;m=m+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];m=0;while(1){if((m|0)==3)break;c[i+(m<<2)>>2]=0;m=m+1|0;}m=c[d>>2]|0;d=m+-24|0;e=d+11|0;if((a[e>>0]|0)<0){n=c[d>>2]|0;a[g>>0]=0;cB(n,g);c[m+-20>>2]=0;}else{a[g>>0]=0;cB(d,g);a[e>>0]=0;}TB(d);c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];d=0;while(1){if((d|0)==3)break;c[h+(d<<2)>>2]=0;d=d+1|0;}iB(h);iB(i);iB(j);o=k;}else o=b;l=f;return o|0;}function jC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;g=f;if((((((d-b|0)>2?(a[b>>0]|0)==112:0)?(a[b+1>>0]|0)==116:0)?(h=b+2|0,i=SB(h,d,e)|0,(i|0)!=(h|0)):0)?(h=SB(i,d,e)|0,(h|0)!=(i|0)):0)?(i=e+4|0,d=c[i>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[i>>2]|0;e=0;while(1){if((e|0)==-1)break;j=e+-1|0;QA(d+(j*24|0)|0);e=j;}c[i>>2]=d+-24;qB(d+-48|0,18943)|0;d=a[g+11>>0]|0;e=d<<24>>24<0;TA((c[i>>2]|0)+-24|0,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;iB(g);k=h;}else k=b;l=f;return k|0;}function kC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;if((((((d-b|0)>2?(a[b>>0]|0)==114:0)?(a[b+1>>0]|0)==99:0)?(o=b+2|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=SB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;FB(n,d+-48|0);pB(n,0,18925)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0;}qB(m,18922)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0;}d=a[g+11>>0]|0;e=d<<24>>24<0;TA(k,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}IB(h,i);JB((c[p>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);r=o;}else r=b;l=f;return r|0;}function lC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+112|0;g=f+88|0;h=f+64|0;i=f+36|0;j=f+48|0;k=f+24|0;m=f+12|0;n=f;if((((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==99:0)?(o=b+2|0,p=mB(o,d,e)|0,(p|0)!=(o|0)):0)?(o=SB(p,d,e)|0,(o|0)!=(p|0)):0)?(p=e+4|0,d=c[p>>2]|0,((d-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){FB(g,d+-24|0);d=c[p>>2]|0;e=0;while(1){if((e|0)==-1)break;q=e+-1|0;QA(d+(q*24|0)|0);e=q;}c[p>>2]=d+-24;FB(n,d+-48|0);pB(n,0,18909)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0;}qB(m,18922)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];d=0;while(1){if((d|0)==3)break;c[m+(d<<2)>>2]=0;d=d+1|0;}d=a[g+11>>0]|0;e=d<<24>>24<0;TA(k,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];d=0;while(1){if((d|0)==3)break;c[k+(d<<2)>>2]=0;d=d+1|0;}qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}IB(h,i);JB((c[p>>2]|0)+-24|0,h);QA(h);iB(i);iB(j);iB(k);iB(m);iB(n);iB(g);r=o;}else r=b;l=f;return r|0;}function mC(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(((c-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==112:0){e=b+2|0;f=SB(e,c,d)|0;g=(f|0)==(e|0)?b:f;}else g=b;return g|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,m=0,n=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==116:0)?(k=b+2|0,m=mB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,18900)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}IB(g,h);JB((c[k>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);n=m;}else n=b;l=f;return n|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,k=0,m=0,n=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==122:0)?(k=b+2|0,m=SB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,18900)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}IB(g,h);JB((c[k>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);n=m;}else n=b;l=f;return n|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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+64|0;g=f+48|0;h=f+24|0;i=f;j=f+12|0;if(((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(k=b+2|0,(a[k>>0]|0)==84):0)?(m=e+4|0,n=((c[m>>2]|0)-(c[e>>2]|0)|0)/24|0,o=DB(k,d,e)|0,d=((c[m>>2]|0)-(c[e>>2]|0)|0)/24|0,(o|0)!=(k|0)):0){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;RB(g,18886,AB(18886)|0);a:do{if((n|0)!=(d|0)){FB(h,(c[e>>2]|0)+(n*24|0)|0);k=a[h+11>>0]|0;p=k<<24>>24<0;TA(g,p?c[h>>2]|0:h,p?c[h+4>>2]|0:k&255)|0;iB(h);k=h+11|0;p=h+4|0;q=n;while(1){r=q+1|0;if((r|0)==(d|0))break a;FB(i,(c[e>>2]|0)+(r*24|0)|0);pB(i,0,18897)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];s=0;while(1){if((s|0)==3)break;c[i+(s<<2)>>2]=0;s=s+1|0;}s=a[k>>0]|0;t=s<<24>>24<0;TA(g,t?c[h>>2]|0:h,t?c[p>>2]|0:s&255)|0;iB(h);iB(i);q=r;}}}while(0);qB(g,18673)|0;i=d;while(1){if((i|0)==(n|0))break;d=c[m>>2]|0;q=0;while(1){if((q|0)==-1)break;p=q+-1|0;QA(d+(p*24|0)|0);q=p;}c[m>>2]=d+-24;i=i+-1|0;}c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];i=0;while(1){if((i|0)==3)break;c[g+(i<<2)>>2]=0;i=i+1|0;}IB(h,j);i=c[m>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,h);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,h);QA(h);iB(j);iB(g);u=o;}else u=b;l=f;return u|0;}function qC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;if((((((d-b|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(k=b+2|0,(a[k>>0]|0)==102):0)?(m=XB(k,d,e)|0,(m|0)!=(k|0)):0)?(k=e+4|0,d=c[k>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(j,d+-24|0);pB(j,0,18886)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];d=0;while(1){if((d|0)==3)break;c[j+(d<<2)>>2]=0;d=d+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}IB(g,h);JB((c[k>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);n=m;}else n=b;l=f;return n|0;}function rC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+64|0;g=f+40|0;h=f+12|0;i=f+24|0;j=f;a:do{if((d-b|0)>2?(a[b>>0]|0)==116:0){k=a[b+1>>0]|0;switch(k<<24>>24){case 105:case 101:break;default:{m=b;break a;}}n=b+2|0;if(k<<24>>24==101)o=SB(n,d,e)|0;else o=mB(n,d,e)|0;if((o|0)!=(n|0)?(n=e+4|0,k=c[n>>2]|0,(c[e>>2]|0)!=(k|0)):0){FB(j,k+-24|0);pB(j,0,18878)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];k=0;while(1){if((k|0)==3)break;c[j+(k<<2)>>2]=0;k=k+1|0;}qB(i,18673)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];k=0;while(1){if((k|0)==3)break;c[i+(k<<2)>>2]=0;k=k+1|0;}IB(g,h);JB((c[n>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);iB(j);m=o;}else m=b;}else m=b;}while(0);l=f;return m|0;}function sC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,5);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function tC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+48|0;g=f+24|0;h=f;i=f+12|0;if(((((d-b|0)>2?(a[b>>0]|0)==116:0)?(a[b+1>>0]|0)==119:0)?(j=b+2|0,k=SB(j,d,e)|0,(k|0)!=(j|0)):0)?(j=e+4|0,d=c[j>>2]|0,(c[e>>2]|0)!=(d|0)):0){FB(i,d+-24|0);pB(i,0,18871)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0;}IB(g,h);JB((c[j>>2]|0)+-24|0,g);QA(g);iB(h);iB(i);m=k;}else m=b;l=f;return m|0;}function uC(a,b){a=a|0;b=b|0;vC(a,b,AB(b)|0);return;}function vC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+16|0;g=f;h=b+11|0;i=a[h>>0]|0;j=i<<24>>24<0;if(j)k=(c[b+8>>2]&2147483647)+-1|0;else k=10;do{if(k>>>0>=e>>>0){if(j)m=c[b>>2]|0;else m=b;wC(m,d,e)|0;a[g>>0]=0;cB(m+e|0,g);if((a[h>>0]|0)<0){c[b+4>>2]=e;break;}else{a[h>>0]=e;break;}}else{if(j)n=c[b+4>>2]|0;else n=i&255;dB(b,k,e-k|0,n,0,n,e,d);}}while(0);l=f;return;}function wC(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)nE(a|0,b|0,c|0)|0;return a|0;}function xC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+16|0;g=f;a:do{if((d-b|0)>1){h=a[b>>0]|0;switch(h<<24>>24){case 100:case 111:{if((a[b+1>>0]|0)==110){i=b+2|0;if(h<<24>>24!=111){h=UC(i,d,e)|0;j=(h|0)==(i|0)?b:h;break a;}h=EC(i,d,e)|0;if((h|0)==(i|0)){j=b;break a;}i=EB(h,d,e)|0;if((i|0)==(h|0)){j=h;break a;}h=e+4|0;k=c[h>>2]|0;if(((k-(c[e>>2]|0)|0)/24|0)>>>0<2){j=i;break a;}FB(g,k+-24|0);k=c[h>>2]|0;m=0;while(1){if((m|0)==-1)break;n=m+-1|0;QA(k+(n*24|0)|0);m=n;}c[h>>2]=k+-24;m=a[g+11>>0]|0;n=m<<24>>24<0;TA(k+-48|0,n?c[g>>2]|0:g,n?c[g+4>>2]|0:m&255)|0;iB(g);j=i;break a;}break;}default:{}}m=AC(b,d,e)|0;if((m|0)==(b|0)){n=EC(b,d,e)|0;if((n|0)!=(b|0)){o=EB(n,d,e)|0;if((o|0)!=(n|0)){p=e+4|0;q=c[p>>2]|0;if(((q-(c[e>>2]|0)|0)/24|0)>>>0<2)j=o;else{FB(g,q+-24|0);q=c[p>>2]|0;r=0;while(1){if((r|0)==-1)break;s=r+-1|0;QA(q+(s*24|0)|0);r=s;}c[p>>2]=q+-24;r=a[g+11>>0]|0;i=r<<24>>24<0;TA(q+-48|0,i?c[g>>2]|0:g,i?c[g+4>>2]|0:r&255)|0;iB(g);j=o;}}else j=n;}else j=b;}else j=m;}else j=b;}while(0);l=f;return j|0;}function yC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+32|0;g=f+8|0;h=f;a:do{if((b|0)==(d|0))i=b;else switch(a[b>>0]|0){case 84:{j=e+4|0;k=((c[j>>2]|0)-(c[e>>2]|0)|0)/24|0;m=DB(b,d,e)|0;n=c[j>>2]|0;o=(n-(c[e>>2]|0)|0)/24|0;p=n;if((m|0)!=(b|0)&(o|0)==(k+1|0)){c[h>>2]=c[e+12>>2];vB(g,p+-24|0,h);n=e+20|0;q=c[n>>2]|0;if(q>>>0<(c[e+24>>2]|0)>>>0){c[q>>2]=0;r=q+4|0;c[r>>2]=0;s=q+8|0;c[s>>2]=0;c[q+12>>2]=c[g+12>>2];c[q>>2]=c[g>>2];q=g+4|0;c[r>>2]=c[q>>2];r=g+8|0;c[s>>2]=c[r>>2];c[r>>2]=0;c[q>>2]=0;c[g>>2]=0;c[n>>2]=(c[n>>2]|0)+16;}else wB(e+16|0,g);RA(g);i=m;break a;}m=o;o=p;while(1){if((m|0)==(k|0)){i=b;break a;}p=0;while(1){if((p|0)==-1)break;n=p+-1|0;QA(o+(n*24|0)|0);p=n;}p=o+-24|0;c[j>>2]=p;m=m+-1|0;o=p;}break;}case 68:{o=OB(b,d,e)|0;if((o|0)==(b|0)){i=b;break a;}m=c[e+4>>2]|0;if((c[e>>2]|0)==(m|0)){i=b;break a;}c[h>>2]=c[e+12>>2];vB(g,m+-24|0,h);m=e+20|0;j=c[m>>2]|0;if(j>>>0<(c[e+24>>2]|0)>>>0){c[j>>2]=0;k=j+4|0;c[k>>2]=0;p=j+8|0;c[p>>2]=0;c[j+12>>2]=c[g+12>>2];c[j>>2]=c[g>>2];j=g+4|0;c[k>>2]=c[j>>2];k=g+8|0;c[p>>2]=c[k>>2];c[k>>2]=0;c[j>>2]=0;c[g>>2]=0;c[m>>2]=(c[m>>2]|0)+16;}else wB(e+16|0,g);RA(g);i=o;break a;break;}case 83:{o=NB(b,d,e)|0;if((o|0)!=(b|0)){i=o;break a;}if((d-b|0)<=2){i=b;break a;}if((a[b+1>>0]|0)!=116){i=b;break a;}o=b+2|0;m=BC(o,d,e)|0;if((m|0)==(o|0)){i=b;break a;}o=e+4|0;j=c[o>>2]|0;if((c[e>>2]|0)==(j|0)){i=b;break a;}pB(j+-24|0,0,18969)|0;j=(c[o>>2]|0)+-24|0;c[h>>2]=c[e+12>>2];vB(g,j,h);j=e+20|0;o=c[j>>2]|0;if(o>>>0<(c[e+24>>2]|0)>>>0){c[o>>2]=0;k=o+4|0;c[k>>2]=0;p=o+8|0;c[p>>2]=0;c[o+12>>2]=c[g+12>>2];c[o>>2]=c[g>>2];o=g+4|0;c[k>>2]=c[o>>2];k=g+8|0;c[p>>2]=c[k>>2];c[k>>2]=0;c[o>>2]=0;c[g>>2]=0;c[j>>2]=(c[j>>2]|0)+16;}else wB(e+16|0,g);RA(g);i=m;break a;break;}default:{i=b;break a;}}}while(0);l=f;return i|0;}function zC(a,b,c){a=a|0;b=b|0;c=c|0;return AC(a,b,c)|0;}function AC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+16|0;g=f;if((b|0)!=(d|0)?(h=GB(b,d,e)|0,(h|0)!=(b|0)):0){i=EB(h,d,e)|0;if((i|0)!=(h|0)){d=e+4|0;j=c[d>>2]|0;if(((j-(c[e>>2]|0)|0)/24|0)>>>0<2)k=b;else{FB(g,j+-24|0);j=c[d>>2]|0;e=0;while(1){if((e|0)==-1)break;m=e+-1|0;QA(j+(m*24|0)|0);e=m;}c[d>>2]=j+-24;d=a[g+11>>0]|0;e=d<<24>>24<0;TA(j+-48|0,e?c[g>>2]|0:g,e?c[g+4>>2]|0:d&255)|0;iB(g);k=i;}}else k=h;}else k=b;l=f;return k|0;}function BC(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;a:do{if((b|0)==(c|0))e=b;else switch(a[b>>0]|0){case 68:case 67:{e=CC(b,c,d)|0;break a;break;}case 85:{e=DC(b,c,d)|0;break a;break;}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{e=GB(b,c,d)|0;break a;break;}default:return EC(b,c,d)|0;}}while(0);return e|0;}function CC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+64|0;g=f+40|0;h=f+24|0;i=f;j=f+12|0;a:do{if((d-b|0)>1?(k=e+4|0,m=c[k>>2]|0,(c[e>>2]|0)!=(m|0)):0){switch(a[b>>0]|0){case 67:{switch(a[b+1>>0]|0){case 53:case 51:case 50:case 49:break;default:{n=b;break a;}}SC(h,m+-24|0);IB(g,h);o=c[k>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){KB(o,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);iB(h);a[e+60>>0]=1;n=b+2|0;break a;break;}case 68:break;default:{n=b;break a;}}switch(a[b+1>>0]|0){case 53:case 50:case 49:case 48:break;default:{n=b;break a;}}SC(j,m+-24|0);pB(j,0,18745)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];m=0;while(1){if((m|0)==3)break;c[j+(m<<2)>>2]=0;m=m+1|0;}IB(g,i);m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);iB(i);iB(j);a[e+60>>0]=1;n=b+2|0;}else n=b;}while(0);l=f;return n|0;}function Zl(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+140|0;u=i+136|0;v=i+132|0;w=i+128|0;x=i+124|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+72|0;L=i+68|0;M=i+64|0;N=i+60|0;O=i+56|0;P=i+52|0;Q=i+48|0;R=i+44|0;S=i+40|0;T=i+36|0;U=i+32|0;V=i+28|0;W=i+24|0;X=i+20|0;Y=i+16|0;Z=i+12|0;_=i+8|0;$=i+4|0;aa=i;c[X>>2]=a;c[Y>>2]=b;c[Z>>2]=e;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;h=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;c[j>>2]=c[X>>2];c[k>>2]=h;c[m>>2]=Y;c[n>>2]=Z;c[o>>2]=_;c[p>>2]=$;c[q>>2]=0;c[r>>2]=0;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+12>>2]|0);c[y>>2]=c[q>>2]|0?5:4;c[z>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[m>>2]|0)+4>>2];c[B>>2]=0;c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[x>>2]|0)&1);c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[C>>2]=(c[t>>2]|0)-(c[x>>2]|0);if((c[A>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[A>>2];c[A>>2]=0;}if((c[z>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[z>>2];c[z>>2]=0;}while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[D>>2]=0;c[E>>2]=0;c[F>>2]=(c[t>>2]|0)+1;C=(c[z>>2]|0)>>>0>0&1;q=Bk((c[t>>2]|0)+1|0)|0;if(!(C&(q|0)==(Bk((c[t>>2]|0)+1+(0-(c[z>>2]|0))|0)|0)|0?(c[D>>2]=(Qm((c[t>>2]|0)+1+4|0,(c[t>>2]|0)+1+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[G>>2]=99999999;c[H>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,G)|0;if((c[H>>2]|0)>>>0>(c[D>>2]|0)>>>0){c[D>>2]=c[H>>2];c[F>>2]=c[t>>2];c[E>>2]=c[G>>2];}if((c[D>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;if(((c[E>>2]|0?(q=(c[z>>2]|0)>>>0>0&1,C=Bk(c[t>>2]|0)|0,q&(C|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[I>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[J>>2]=(c[I>>2]|0)*3,C=(c[D>>2]|0)*3|0,c[K>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[I>>2]|0)>>>0>=4):0)?(c[J>>2]|0)>(c[K>>2]|0):0){c[D>>2]=c[I>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}c[L>>2]=99999999;c[M>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,L)|0;C=c[M>>2]<<2;c[N>>2]=C-(Mm((c[L>>2]|0)+1|0)|0);C=c[D>>2]<<2;c[O>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+4;if((c[M>>2]|0)>>>0>=4?(c[N>>2]|0)>(c[O>>2]|0):0){c[D>>2]=c[M>>2];c[E>>2]=c[L>>2];c[F>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;do{if((c[E>>2]|0?(C=(c[z>>2]|0)>>>0>0&1,q=Bk(c[t>>2]|0)|0,C&(q|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[P>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[Q>>2]=c[P>>2]<<2,q=c[D>>2]<<2,c[R>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[P>>2]|0)>>>0>=4):0){if((c[Q>>2]|0)<=(c[R>>2]|0))break;c[D>>2]=c[P>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}}while(0);c[S>>2]=99999999;c[T>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,S)|0;q=c[T>>2]<<2;c[U>>2]=q-(Mm((c[S>>2]|0)+1|0)|0);q=c[D>>2]<<2;c[V>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+7;if((c[T>>2]|0)>>>0<4)break a;if((c[U>>2]|0)<=(c[V>>2]|0))break a;c[D>>2]=c[T>>2];c[E>>2]=c[S>>2];c[F>>2]=c[t>>2];}}while(0);if(c[E>>2]|0){while(1){if(!(((c[F>>2]|0)>>>0>(c[u>>2]|0)>>>0?((c[F>>2]|0)+(0-((c[E>>2]|0)-2))|0)>>>0>(c[x>>2]|0)>>>0:0)|0))break;if((d[(c[F>>2]|0)+-1>>0]|0|0)!=(d[(c[F>>2]|0)+(0-((c[E>>2]|0)-2))+-1>>0]|0|0))break;c[F>>2]=(c[F>>2]|0)+-1;c[D>>2]=(c[D>>2]|0)+1;}c[A>>2]=c[z>>2];c[z>>2]=(c[E>>2]|0)-2;}}c[W>>2]=(c[F>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[W>>2]|0,c[u>>2]|0,c[E>>2]|0,(c[D>>2]|0)-3|0);q=(c[F>>2]|0)+(c[D>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if(!(((c[A>>2]|0)>>>0>0?(c[t>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk((c[t>>2]|0)+(0-(c[A>>2]|0))|0)|0))break;c[D>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[A>>2]|0))|0,c[v>>2]|0)|0)+4;c[E>>2]=c[A>>2];c[A>>2]=c[z>>2];c[z>>2]=c[E>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[D>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[D>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[z>>2]|0?c[z>>2]|0:c[B>>2]|0;c[(c[m>>2]|0)+4>>2]=c[A>>2]|0?c[A>>2]|0:c[B>>2]|0;l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function _l(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+140|0;u=i+136|0;v=i+132|0;w=i+128|0;x=i+124|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+72|0;L=i+68|0;M=i+64|0;N=i+60|0;O=i+56|0;P=i+52|0;Q=i+48|0;R=i+44|0;S=i+40|0;T=i+36|0;U=i+32|0;V=i+28|0;W=i+24|0;X=i+20|0;Y=i+16|0;Z=i+12|0;_=i+8|0;$=i+4|0;aa=i;c[X>>2]=a;c[Y>>2]=b;c[Z>>2]=e;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;h=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;c[j>>2]=c[X>>2];c[k>>2]=h;c[m>>2]=Y;c[n>>2]=Z;c[o>>2]=_;c[p>>2]=$;c[q>>2]=0;c[r>>2]=1;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+12>>2]|0);c[y>>2]=c[q>>2]|0?5:4;c[z>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[m>>2]|0)+4>>2];c[B>>2]=0;c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[x>>2]|0)&1);c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[C>>2]=(c[t>>2]|0)-(c[x>>2]|0);if((c[A>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[A>>2];c[A>>2]=0;}if((c[z>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[z>>2];c[z>>2]=0;}while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[D>>2]=0;c[E>>2]=0;c[F>>2]=(c[t>>2]|0)+1;C=(c[z>>2]|0)>>>0>0&1;q=Bk((c[t>>2]|0)+1|0)|0;if(!(C&(q|0)==(Bk((c[t>>2]|0)+1+(0-(c[z>>2]|0))|0)|0)|0?(c[D>>2]=(Qm((c[t>>2]|0)+1+4|0,(c[t>>2]|0)+1+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[G>>2]=99999999;c[H>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,G)|0;if((c[H>>2]|0)>>>0>(c[D>>2]|0)>>>0){c[D>>2]=c[H>>2];c[F>>2]=c[t>>2];c[E>>2]=c[G>>2];}if((c[D>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;if(((c[E>>2]|0?(q=(c[z>>2]|0)>>>0>0&1,C=Bk(c[t>>2]|0)|0,q&(C|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[I>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[J>>2]=(c[I>>2]|0)*3,C=(c[D>>2]|0)*3|0,c[K>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[I>>2]|0)>>>0>=4):0)?(c[J>>2]|0)>(c[K>>2]|0):0){c[D>>2]=c[I>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}c[L>>2]=99999999;c[M>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,L)|0;C=c[M>>2]<<2;c[N>>2]=C-(Mm((c[L>>2]|0)+1|0)|0);C=c[D>>2]<<2;c[O>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+4;if((c[M>>2]|0)>>>0>=4?(c[N>>2]|0)>(c[O>>2]|0):0){c[D>>2]=c[M>>2];c[E>>2]=c[L>>2];c[F>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;do{if((c[E>>2]|0?(C=(c[z>>2]|0)>>>0>0&1,q=Bk(c[t>>2]|0)|0,C&(q|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[P>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[Q>>2]=c[P>>2]<<2,q=c[D>>2]<<2,c[R>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[P>>2]|0)>>>0>=4):0){if((c[Q>>2]|0)<=(c[R>>2]|0))break;c[D>>2]=c[P>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}}while(0);c[S>>2]=99999999;c[T>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,S)|0;q=c[T>>2]<<2;c[U>>2]=q-(Mm((c[S>>2]|0)+1|0)|0);q=c[D>>2]<<2;c[V>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+7;if((c[T>>2]|0)>>>0<4)break a;if((c[U>>2]|0)<=(c[V>>2]|0))break a;c[D>>2]=c[T>>2];c[E>>2]=c[S>>2];c[F>>2]=c[t>>2];}}while(0);if(c[E>>2]|0){while(1){if(!(((c[F>>2]|0)>>>0>(c[u>>2]|0)>>>0?((c[F>>2]|0)+(0-((c[E>>2]|0)-2))|0)>>>0>(c[x>>2]|0)>>>0:0)|0))break;if((d[(c[F>>2]|0)+-1>>0]|0|0)!=(d[(c[F>>2]|0)+(0-((c[E>>2]|0)-2))+-1>>0]|0|0))break;c[F>>2]=(c[F>>2]|0)+-1;c[D>>2]=(c[D>>2]|0)+1;}c[A>>2]=c[z>>2];c[z>>2]=(c[E>>2]|0)-2;}}c[W>>2]=(c[F>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[W>>2]|0,c[u>>2]|0,c[E>>2]|0,(c[D>>2]|0)-3|0);q=(c[F>>2]|0)+(c[D>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if(!(((c[A>>2]|0)>>>0>0?(c[t>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk((c[t>>2]|0)+(0-(c[A>>2]|0))|0)|0))break;c[D>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[A>>2]|0))|0,c[v>>2]|0)|0)+4;c[E>>2]=c[A>>2];c[A>>2]=c[z>>2];c[z>>2]=c[E>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[D>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[D>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[z>>2]|0?c[z>>2]|0:c[B>>2]|0;c[(c[m>>2]|0)+4>>2]=c[A>>2]|0?c[A>>2]|0:c[B>>2]|0;l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function $l(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+140|0;u=i+136|0;v=i+132|0;w=i+128|0;x=i+124|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+72|0;L=i+68|0;M=i+64|0;N=i+60|0;O=i+56|0;P=i+52|0;Q=i+48|0;R=i+44|0;S=i+40|0;T=i+36|0;U=i+32|0;V=i+28|0;W=i+24|0;X=i+20|0;Y=i+16|0;Z=i+12|0;_=i+8|0;$=i+4|0;aa=i;c[X>>2]=a;c[Y>>2]=b;c[Z>>2]=e;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;h=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;c[j>>2]=c[X>>2];c[k>>2]=h;c[m>>2]=Y;c[n>>2]=Z;c[o>>2]=_;c[p>>2]=$;c[q>>2]=0;c[r>>2]=2;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+12>>2]|0);c[y>>2]=c[q>>2]|0?5:4;c[z>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[m>>2]|0)+4>>2];c[B>>2]=0;c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[x>>2]|0)&1);c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[C>>2]=(c[t>>2]|0)-(c[x>>2]|0);if((c[A>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[A>>2];c[A>>2]=0;}if((c[z>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[z>>2];c[z>>2]=0;}while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[D>>2]=0;c[E>>2]=0;c[F>>2]=(c[t>>2]|0)+1;C=(c[z>>2]|0)>>>0>0&1;q=Bk((c[t>>2]|0)+1|0)|0;if(!(C&(q|0)==(Bk((c[t>>2]|0)+1+(0-(c[z>>2]|0))|0)|0)|0?(c[D>>2]=(Qm((c[t>>2]|0)+1+4|0,(c[t>>2]|0)+1+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[G>>2]=99999999;c[H>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,G)|0;if((c[H>>2]|0)>>>0>(c[D>>2]|0)>>>0){c[D>>2]=c[H>>2];c[F>>2]=c[t>>2];c[E>>2]=c[G>>2];}if((c[D>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;if(((c[E>>2]|0?(q=(c[z>>2]|0)>>>0>0&1,C=Bk(c[t>>2]|0)|0,q&(C|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[I>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[J>>2]=(c[I>>2]|0)*3,C=(c[D>>2]|0)*3|0,c[K>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[I>>2]|0)>>>0>=4):0)?(c[J>>2]|0)>(c[K>>2]|0):0){c[D>>2]=c[I>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}c[L>>2]=99999999;c[M>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,L)|0;C=c[M>>2]<<2;c[N>>2]=C-(Mm((c[L>>2]|0)+1|0)|0);C=c[D>>2]<<2;c[O>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+4;if((c[M>>2]|0)>>>0>=4?(c[N>>2]|0)>(c[O>>2]|0):0){c[D>>2]=c[M>>2];c[E>>2]=c[L>>2];c[F>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;do{if((c[E>>2]|0?(C=(c[z>>2]|0)>>>0>0&1,q=Bk(c[t>>2]|0)|0,C&(q|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[P>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[Q>>2]=c[P>>2]<<2,q=c[D>>2]<<2,c[R>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[P>>2]|0)>>>0>=4):0){if((c[Q>>2]|0)<=(c[R>>2]|0))break;c[D>>2]=c[P>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}}while(0);c[S>>2]=99999999;c[T>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,S)|0;q=c[T>>2]<<2;c[U>>2]=q-(Mm((c[S>>2]|0)+1|0)|0);q=c[D>>2]<<2;c[V>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+7;if((c[T>>2]|0)>>>0<4)break a;if((c[U>>2]|0)<=(c[V>>2]|0))break a;c[D>>2]=c[T>>2];c[E>>2]=c[S>>2];c[F>>2]=c[t>>2];}}while(0);if(c[E>>2]|0){while(1){if(!(((c[F>>2]|0)>>>0>(c[u>>2]|0)>>>0?((c[F>>2]|0)+(0-((c[E>>2]|0)-2))|0)>>>0>(c[x>>2]|0)>>>0:0)|0))break;if((d[(c[F>>2]|0)+-1>>0]|0|0)!=(d[(c[F>>2]|0)+(0-((c[E>>2]|0)-2))+-1>>0]|0|0))break;c[F>>2]=(c[F>>2]|0)+-1;c[D>>2]=(c[D>>2]|0)+1;}c[A>>2]=c[z>>2];c[z>>2]=(c[E>>2]|0)-2;}}c[W>>2]=(c[F>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[W>>2]|0,c[u>>2]|0,c[E>>2]|0,(c[D>>2]|0)-3|0);q=(c[F>>2]|0)+(c[D>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if(!(((c[A>>2]|0)>>>0>0?(c[t>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk((c[t>>2]|0)+(0-(c[A>>2]|0))|0)|0))break;c[D>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[A>>2]|0))|0,c[v>>2]|0)|0)+4;c[E>>2]=c[A>>2];c[A>>2]=c[z>>2];c[z>>2]=c[E>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[D>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[D>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[z>>2]|0?c[z>>2]|0:c[B>>2]|0;c[(c[m>>2]|0)+4>>2]=c[A>>2]|0?c[A>>2]|0:c[B>>2]|0;l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function am(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;i=l;l=l+192|0;j=i+176|0;k=i+172|0;m=i+168|0;n=i+164|0;o=i+160|0;p=i+156|0;q=i+152|0;r=i+148|0;s=i+144|0;t=i+140|0;u=i+136|0;v=i+132|0;w=i+128|0;x=i+124|0;y=i+120|0;z=i+116|0;A=i+112|0;B=i+108|0;C=i+104|0;D=i+100|0;E=i+96|0;F=i+92|0;G=i+88|0;H=i+84|0;I=i+80|0;J=i+76|0;K=i+72|0;L=i+68|0;M=i+64|0;N=i+60|0;O=i+56|0;P=i+52|0;Q=i+48|0;R=i+44|0;S=i+40|0;T=i+36|0;U=i+32|0;V=i+28|0;W=i+24|0;X=i+20|0;Y=i+16|0;Z=i+12|0;_=i+8|0;$=i+4|0;aa=i;c[X>>2]=a;c[Y>>2]=b;c[Z>>2]=e;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;h=c[Y>>2]|0;Y=c[Z>>2]|0;Z=c[_>>2]|0;_=c[$>>2]|0;$=c[aa>>2]|0;c[j>>2]=c[X>>2];c[k>>2]=h;c[m>>2]=Y;c[n>>2]=Z;c[o>>2]=_;c[p>>2]=$;c[q>>2]=1;c[r>>2]=2;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(c[(c[j>>2]|0)+12>>2]|0);c[y>>2]=c[q>>2]|0?5:4;c[z>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[m>>2]|0)+4>>2];c[B>>2]=0;c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[x>>2]|0)&1);c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[C>>2]=(c[t>>2]|0)-(c[x>>2]|0);if((c[A>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[A>>2];c[A>>2]=0;}if((c[z>>2]|0)>>>0>(c[C>>2]|0)>>>0){c[B>>2]=c[z>>2];c[z>>2]=0;}while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[D>>2]=0;c[E>>2]=0;c[F>>2]=(c[t>>2]|0)+1;C=(c[z>>2]|0)>>>0>0&1;q=Bk((c[t>>2]|0)+1|0)|0;if(!(C&(q|0)==(Bk((c[t>>2]|0)+1+(0-(c[z>>2]|0))|0)|0)|0?(c[D>>2]=(Qm((c[t>>2]|0)+1+4|0,(c[t>>2]|0)+1+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[G>>2]=99999999;c[H>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,G)|0;if((c[H>>2]|0)>>>0>(c[D>>2]|0)>>>0){c[D>>2]=c[H>>2];c[F>>2]=c[t>>2];c[E>>2]=c[G>>2];}if((c[D>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;if(((c[E>>2]|0?(q=(c[z>>2]|0)>>>0>0&1,C=Bk(c[t>>2]|0)|0,q&(C|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[I>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[J>>2]=(c[I>>2]|0)*3,C=(c[D>>2]|0)*3|0,c[K>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[I>>2]|0)>>>0>=4):0)?(c[J>>2]|0)>(c[K>>2]|0):0){c[D>>2]=c[I>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}c[L>>2]=99999999;c[M>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,L)|0;C=c[M>>2]<<2;c[N>>2]=C-(Mm((c[L>>2]|0)+1|0)|0);C=c[D>>2]<<2;c[O>>2]=C-(Mm((c[E>>2]|0)+1|0)|0)+4;if((c[M>>2]|0)>>>0>=4?(c[N>>2]|0)>(c[O>>2]|0):0){c[D>>2]=c[M>>2];c[E>>2]=c[L>>2];c[F>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;do{if((c[E>>2]|0?(C=(c[z>>2]|0)>>>0>0&1,q=Bk(c[t>>2]|0)|0,C&(q|0)==(Bk((c[t>>2]|0)+(0-(c[z>>2]|0))|0)|0)|0):0)?(c[P>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[z>>2]|0))|0,c[v>>2]|0)|0)+4,c[Q>>2]=c[P>>2]<<2,q=c[D>>2]<<2,c[R>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+1,(c[P>>2]|0)>>>0>=4):0){if((c[Q>>2]|0)<=(c[R>>2]|0))break;c[D>>2]=c[P>>2];c[E>>2]=0;c[F>>2]=c[t>>2];}}while(0);c[S>>2]=99999999;c[T>>2]=tc[c[y>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,S)|0;q=c[T>>2]<<2;c[U>>2]=q-(Mm((c[S>>2]|0)+1|0)|0);q=c[D>>2]<<2;c[V>>2]=q-(Mm((c[E>>2]|0)+1|0)|0)+7;if((c[T>>2]|0)>>>0<4)break a;if((c[U>>2]|0)<=(c[V>>2]|0))break a;c[D>>2]=c[T>>2];c[E>>2]=c[S>>2];c[F>>2]=c[t>>2];}}while(0);if(c[E>>2]|0){while(1){if(!(((c[F>>2]|0)>>>0>(c[u>>2]|0)>>>0?((c[F>>2]|0)+(0-((c[E>>2]|0)-2))|0)>>>0>(c[x>>2]|0)>>>0:0)|0))break;if((d[(c[F>>2]|0)+-1>>0]|0|0)!=(d[(c[F>>2]|0)+(0-((c[E>>2]|0)-2))+-1>>0]|0|0))break;c[F>>2]=(c[F>>2]|0)+-1;c[D>>2]=(c[D>>2]|0)+1;}c[A>>2]=c[z>>2];c[z>>2]=(c[E>>2]|0)-2;}}c[W>>2]=(c[F>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[W>>2]|0,c[u>>2]|0,c[E>>2]|0,(c[D>>2]|0)-3|0);q=(c[F>>2]|0)+(c[D>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if(!(((c[A>>2]|0)>>>0>0?(c[t>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk((c[t>>2]|0)+(0-(c[A>>2]|0))|0)|0))break;c[D>>2]=(Qm((c[t>>2]|0)+4|0,(c[t>>2]|0)+4+(0-(c[A>>2]|0))|0,c[v>>2]|0)|0)+4;c[E>>2]=c[A>>2];c[A>>2]=c[z>>2];c[z>>2]=c[E>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[D>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[D>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[z>>2]|0?c[z>>2]|0:c[B>>2]|0;c[(c[m>>2]|0)+4>>2]=c[A>>2]|0?c[A>>2]|0:c[B>>2]|0;l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function bm(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=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,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,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,Zc=0,_c=0,$c=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,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,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,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0;i=l;l=l+2144|0;j=i+2136|0;k=i+2132|0;m=i+2128|0;n=i+2124|0;o=i+2120|0;p=i+2116|0;q=i+2112|0;r=i+2108|0;s=i+2104|0;t=i+2100|0;u=i+2096|0;v=i+2092|0;w=i+2088|0;x=i+2084|0;y=i+2080|0;z=i+2076|0;A=i+2072|0;B=i+2068|0;C=i+2064|0;D=i+2060|0;E=i+2056|0;F=i+2052|0;G=i+2048|0;H=i+2044|0;I=i+2040|0;J=i+2036|0;K=i+2032|0;L=i+2028|0;M=i+2024|0;N=i+2020|0;O=i+2016|0;P=i+2012|0;Q=i+2008|0;R=i+2004|0;S=i+2e3|0;T=i+1996|0;U=i+1992|0;V=i+1988|0;W=i+1984|0;X=i+1980|0;Y=i+1976|0;Z=i+1972|0;_=i+1968|0;$=i+1964|0;aa=i+1960|0;ba=i+1956|0;ca=i+1952|0;da=i+1948|0;ea=i+1944|0;fa=i+1940|0;ga=i+1936|0;ha=i+1932|0;ia=i+1928|0;ja=i+1924|0;ka=i+1920|0;la=i+1916|0;ma=i+1912|0;na=i+1908|0;oa=i+1904|0;pa=i+1900|0;qa=i+1896|0;ra=i+1892|0;sa=i+1888|0;ta=i+1884|0;ua=i+1880|0;va=i+1876|0;wa=i+1872|0;xa=i+1868|0;ya=i+1864|0;za=i+1860|0;Aa=i+1856|0;Ba=i+1852|0;Ca=i+1848|0;Da=i+1844|0;Ea=i+1840|0;Fa=i+1836|0;Ga=i+1832|0;Ha=i+1828|0;Ia=i+1824|0;Ja=i+1820|0;Ka=i+1816|0;La=i+1812|0;Ma=i+1808|0;Na=i+1804|0;Oa=i+1800|0;Pa=i+1796|0;Qa=i+1792|0;Ra=i+1788|0;Sa=i+1784|0;Ta=i+1780|0;Ua=i+1776|0;Va=i+1772|0;Wa=i+1768|0;Xa=i+1764|0;Ya=i+1760|0;Za=i+1756|0;_a=i+1752|0;$a=i+1748|0;ab=i+1744|0;bb=i+1740|0;cb=i+1736|0;db=i+1732|0;eb=i+1728|0;fb=i+1724|0;gb=i+1720|0;hb=i+1716|0;ib=i+1712|0;jb=i+1708|0;kb=i+1704|0;lb=i+1700|0;mb=i+1696|0;nb=i+1692|0;ob=i+1688|0;pb=i+1684|0;qb=i+1680|0;rb=i+1676|0;sb=i+1672|0;tb=i+1668|0;ub=i+1664|0;vb=i+1660|0;wb=i+1656|0;xb=i+1652|0;yb=i+1648|0;zb=i+1644|0;Ab=i+1640|0;Bb=i+1636|0;Cb=i+1632|0;Db=i+1628|0;Eb=i+1624|0;Fb=i+1620|0;Gb=i+1616|0;Hb=i+1612|0;Ib=i+1608|0;Jb=i+1604|0;Kb=i+1600|0;Lb=i+1596|0;Mb=i+1592|0;Nb=i+1588|0;Ob=i+1584|0;Pb=i+1580|0;Qb=i+1576|0;Rb=i+1572|0;Sb=i+1568|0;Tb=i+1564|0;Ub=i+1560|0;Vb=i+1556|0;Wb=i+1552|0;Xb=i+1548|0;Yb=i+1544|0;Zb=i+1540|0;_b=i+1536|0;$b=i+1532|0;ac=i+1528|0;bc=i+1524|0;cc=i+1520|0;dc=i+1516|0;ec=i+1512|0;fc=i+1508|0;gc=i+1504|0;hc=i+1500|0;ic=i+1496|0;jc=i+1492|0;kc=i+1488|0;lc=i+1484|0;mc=i+1480|0;nc=i+1476|0;oc=i+1472|0;pc=i+1468|0;qc=i+1464|0;rc=i+1460|0;sc=i+1456|0;tc=i+1452|0;uc=i+1448|0;vc=i+1444|0;wc=i+1440|0;xc=i+1436|0;yc=i+1432|0;zc=i+1428|0;Ac=i+1424|0;Bc=i+1420|0;Cc=i+1416|0;Dc=i+1412|0;Ec=i+1408|0;Fc=i+1404|0;Gc=i+1400|0;Hc=i+1396|0;Ic=i+1392|0;Jc=i+1388|0;Kc=i+1384|0;Lc=i+1380|0;Mc=i+1376|0;Nc=i+1372|0;Oc=i+1368|0;Pc=i+1364|0;Qc=i+1360|0;Rc=i+1356|0;Sc=i+1352|0;Tc=i+1348|0;Uc=i+1344|0;Vc=i+1340|0;Wc=i+1336|0;Xc=i+1332|0;Yc=i+1328|0;Zc=i+1324|0;_c=i+1320|0;$c=i+1316|0;ad=i+1312|0;bd=i+1308|0;cd=i+1304|0;dd=i+1300|0;ed=i+1296|0;fd=i+1292|0;gd=i+1288|0;hd=i+1284|0;id=i+1280|0;jd=i+1276|0;kd=i+1272|0;ld=i+1268|0;md=i+1264|0;nd=i+1260|0;od=i+1256|0;pd=i+1252|0;qd=i+1248|0;rd=i+1244|0;sd=i+1240|0;td=i+1236|0;ud=i+1232|0;vd=i+1228|0;wd=i+1224|0;xd=i+1220|0;yd=i+1216|0;zd=i+1212|0;Ad=i+1208|0;Bd=i+1204|0;Cd=i+1200|0;Dd=i+1196|0;Ed=i+1192|0;Fd=i+1188|0;Gd=i+1184|0;Hd=i+1180|0;Id=i+1176|0;Jd=i+1172|0;Kd=i+1168|0;Ld=i+1164|0;Md=i+1160|0;Nd=i+1156|0;Od=i+1152|0;Pd=i+1148|0;Qd=i+1144|0;Rd=i+1140|0;Sd=i+1136|0;Td=i+1132|0;Ud=i+1128|0;Vd=i+1124|0;Wd=i+1120|0;Xd=i+1116|0;Yd=i+1112|0;Zd=i+1108|0;_d=i+1104|0;$d=i+1100|0;ae=i+1096|0;be=i+1092|0;ce=i+1088|0;de=i+1084|0;ee=i+1080|0;fe=i+1076|0;ge=i+1072|0;he=i+1068|0;ie=i+1064|0;je=i+1060|0;ke=i+1056|0;le=i+1052|0;me=i+1048|0;ne=i+1044|0;oe=i+1040|0;pe=i+1036|0;qe=i+1032|0;re=i+1028|0;se=i+1024|0;te=i+1020|0;ue=i+1016|0;ve=i+1012|0;we=i+1008|0;xe=i+1004|0;ye=i+1e3|0;ze=i+996|0;Ae=i+992|0;Be=i+988|0;Ce=i+984|0;De=i+980|0;Ee=i+976|0;Fe=i+972|0;Ge=i+968|0;He=i+964|0;Ie=i+960|0;Je=i+956|0;Ke=i+952|0;Le=i+948|0;Me=i+944|0;Ne=i+940|0;Oe=i+936|0;Pe=i+932|0;Qe=i+928|0;Re=i+924|0;Se=i+920|0;Te=i+916|0;Ue=i+912|0;Ve=i+908|0;We=i+904|0;Xe=i+900|0;Ye=i+896|0;Ze=i+892|0;_e=i+888|0;$e=i+884|0;af=i+880|0;bf=i+876|0;cf=i+872|0;df=i+868|0;ef=i+864|0;ff=i+860|0;gf=i+856|0;hf=i+852|0;jf=i+848|0;kf=i+844|0;lf=i+840|0;mf=i+836|0;nf=i+832|0;of=i+828|0;pf=i+824|0;qf=i+820|0;rf=i+816|0;sf=i+812|0;tf=i+808|0;uf=i+804|0;vf=i+800|0;wf=i+796|0;xf=i+792|0;yf=i+788|0;zf=i+784|0;Af=i+780|0;Bf=i+776|0;Cf=i+772|0;Df=i+768|0;Ef=i+764|0;Ff=i+760|0;Gf=i+756|0;Hf=i+752|0;If=i+748|0;Jf=i+744|0;Kf=i+740|0;Lf=i+736|0;Mf=i+732|0;Nf=i+728|0;Of=i+724|0;Pf=i+720|0;Qf=i+716|0;Rf=i+712|0;Sf=i+708|0;Tf=i+704|0;Uf=i+700|0;Vf=i+696|0;Wf=i+692|0;Xf=i+688|0;Yf=i+684|0;Zf=i+680|0;_f=i+676|0;$f=i+672|0;ag=i+668|0;bg=i+664|0;cg=i+660|0;dg=i+656|0;eg=i+652|0;fg=i+648|0;gg=i+644|0;hg=i+640|0;ig=i+636|0;jg=i+632|0;kg=i+628|0;lg=i+624|0;mg=i+620|0;ng=i+616|0;og=i+612|0;pg=i+608|0;qg=i+604|0;rg=i+600|0;sg=i+596|0;tg=i+592|0;ug=i+588|0;vg=i+584|0;wg=i+580|0;xg=i+576|0;yg=i+572|0;zg=i+568|0;Ag=i+564|0;Bg=i+560|0;Cg=i+556|0;Dg=i+552|0;Eg=i+548|0;Fg=i+544|0;Gg=i+540|0;Hg=i+536|0;Ig=i+532|0;Jg=i+528|0;Kg=i+524|0;Lg=i+520|0;Mg=i+516|0;Ng=i+512|0;Og=i+508|0;Pg=i+504|0;Qg=i+500|0;Rg=i+496|0;Sg=i+492|0;Tg=i+488|0;Ug=i+484|0;Vg=i+480|0;Wg=i+476|0;Xg=i+472|0;Yg=i+468|0;Zg=i+464|0;_g=i+460|0;$g=i+456|0;ah=i+452|0;bh=i+448|0;ch=i+444|0;dh=i+440|0;eh=i+436|0;fh=i+432|0;gh=i+428|0;hh=i+424|0;ih=i+420|0;jh=i+416|0;kh=i+412|0;lh=i+408|0;mh=i+404|0;nh=i+400|0;oh=i+396|0;ph=i+392|0;qh=i+388|0;rh=i+384|0;sh=i+380|0;th=i+376|0;uh=i+372|0;vh=i+368|0;wh=i+364|0;xh=i+360|0;yh=i+356|0;zh=i+352|0;Ah=i+348|0;Bh=i+344|0;Ch=i+340|0;Dh=i+336|0;Eh=i+332|0;Fh=i+328|0;Gh=i+324|0;Hh=i+320|0;Ih=i+316|0;Jh=i+312|0;Kh=i+308|0;Lh=i+304|0;Mh=i+300|0;Nh=i+296|0;Oh=i+292|0;Ph=i+288|0;Qh=i+284|0;Rh=i+280|0;Sh=i+276|0;Th=i+272|0;Uh=i+268|0;Vh=i+264|0;Wh=i+260|0;Xh=i+256|0;Yh=i+252|0;Zh=i+248|0;_h=i+244|0;$h=i+240|0;ai=i+236|0;bi=i+232|0;ci=i+228|0;di=i+216|0;ei=i+212|0;fi=i+208|0;gi=i+204|0;hi=i+200|0;ii=i+196|0;ji=i+192|0;ki=i+188|0;li=i+184|0;mi=i+180|0;ni=i+176|0;oi=i+172|0;pi=i+168|0;qi=i+164|0;ri=i+160|0;si=i+148|0;ti=i+144|0;ui=i+140|0;vi=i+136|0;wi=i+132|0;xi=i+128|0;yi=i+124|0;zi=i+120|0;Ai=i+116|0;Bi=i+112|0;Ci=i+108|0;Di=i+104|0;Ei=i+100|0;Fi=i+88|0;Gi=i+84|0;Hi=i+80|0;Ii=i+76|0;Ji=i+72|0;Ki=i+68|0;Li=i+64|0;Mi=i+60|0;Ni=i+56|0;Oi=i+52|0;Pi=i+48|0;Qi=i+44|0;Ri=i+40|0;Si=i+36|0;Ti=i+32|0;Ui=i+28|0;Vi=i+24|0;Wi=i+20|0;Xi=i+16|0;Yi=i+12|0;Zi=i+8|0;_i=i+4|0;$i=i;c[Wi>>2]=a;c[Xi>>2]=b;c[Yi>>2]=e;c[Zi>>2]=f;c[_i>>2]=g;c[$i>>2]=h;h=c[Xi>>2]|0;Xi=c[Yi>>2]|0;Yi=c[Zi>>2]|0;Zi=c[_i>>2]|0;_i=c[$i>>2]|0;c[Lh>>2]=c[Wi>>2];c[Mh>>2]=h;c[Nh>>2]=Xi;c[Oh>>2]=Yi;c[Ph>>2]=Zi;c[Qh>>2]=_i;c[Rh>>2]=0;c[Sh>>2]=0;c[Th>>2]=(c[Lh>>2]|0)+48;c[Uh>>2]=c[Ph>>2];c[Vh>>2]=c[Uh>>2];c[Wh>>2]=c[Uh>>2];c[Xh>>2]=(c[Uh>>2]|0)+(c[Qh>>2]|0);c[Yh>>2]=(c[Xh>>2]|0)+-8;c[Zh>>2]=c[(c[Lh>>2]|0)+4>>2];c[_h>>2]=(c[Zh>>2]|0)+(c[(c[Lh>>2]|0)+12>>2]|0);if((c[(c[Oh>>2]|0)+20>>2]|0)>>>0<4095)aj=c[(c[Oh>>2]|0)+20>>2]|0;else aj=4095;c[$h>>2]=aj;c[ai>>2]=(c[(c[Oh>>2]|0)+16>>2]|0)==3?3:4;c[bi>>2]=c[(c[Th>>2]|0)+20>>2];c[ci>>2]=c[(c[Th>>2]|0)+16>>2];c[(c[Lh>>2]|0)+28>>2]=c[(c[Lh>>2]|0)+24>>2];lm(c[Th>>2]|0,c[Ph>>2]|0,c[Qh>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+((c[Vh>>2]|0)==(c[_h>>2]|0)&1);c[di>>2]=0;c[di+4>>2]=0;c[di+8>>2]=0;while(1){if((c[Vh>>2]|0)>>>0>=(c[Yh>>2]|0)>>>0)break;c[fi>>2]=0;c[ii>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[ji>>2]=((c[ii>>2]|0)!=0^1)&1;_h=c[Oh>>2]|0;Qh=c[Vh>>2]|0;Ph=c[Xh>>2]|0;aj=c[Sh>>2]|0;Zh=c[Nh>>2]|0;Uh=c[ji>>2]|0;_i=c[ci>>2]|0;Zi=c[ai>>2]|0;c[Bh>>2]=c[Lh>>2];c[Ch>>2]=_h;c[Dh>>2]=Qh;c[Eh>>2]=Ph;c[Fh>>2]=aj;c[Gh>>2]=Zh;c[Hh>>2]=Uh;c[Ih>>2]=_i;c[Jh>>2]=Zi;c[Kh>>2]=c[(c[Ch>>2]|0)+16>>2];a:do{if((c[Dh>>2]|0)>>>0<((c[(c[Bh>>2]|0)+4>>2]|0)+(c[(c[Bh>>2]|0)+24>>2]|0)|0)>>>0)c[Ah>>2]=0;else{Zi=c[Ch>>2]|0;_i=c[Dh>>2]|0;Uh=c[Eh>>2]|0;Zh=c[Kh>>2]|0;aj=c[Fh>>2]|0;c[rh>>2]=c[Bh>>2];c[sh>>2]=Zi;c[th>>2]=_i;c[uh>>2]=Uh;c[vh>>2]=Zh;c[wh>>2]=aj;c[xh>>2]=c[(c[rh>>2]|0)+4>>2];c[yh>>2]=(c[th>>2]|0)-(c[xh>>2]|0);c[zh>>2]=c[(c[rh>>2]|0)+24>>2];while(1){if((c[zh>>2]|0)>>>0>=(c[yh>>2]|0)>>>0)break;aj=Rj(c[rh>>2]|0,c[sh>>2]|0,(c[xh>>2]|0)+(c[zh>>2]|0)|0,c[uh>>2]|0,c[vh>>2]|0,c[wh>>2]|0)|0;c[zh>>2]=(c[zh>>2]|0)+aj;}c[(c[rh>>2]|0)+24>>2]=c[yh>>2];switch(c[Kh>>2]|0){case 3:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[wg>>2]=c[Bh>>2];c[xg>>2]=aj;c[yg>>2]=Zh;c[zg>>2]=Uh;c[Ag>>2]=_i;c[Bg>>2]=Zi;c[Cg>>2]=Ph;c[Dg>>2]=Qh;c[Eg>>2]=_h;c[Fg>>2]=3;if((c[(c[xg>>2]|0)+20>>2]|0)>>>0<4095)bj=c[(c[xg>>2]|0)+20>>2]|0;else bj=4095;c[Gg>>2]=bj;c[Hg>>2]=c[(c[wg>>2]|0)+4>>2];c[Ig>>2]=(c[yg>>2]|0)-(c[Hg>>2]|0);c[Jg>>2]=c[(c[xg>>2]|0)+8>>2];c[Kg>>2]=(c[Fg>>2]|0)==3?3:4;c[Lg>>2]=c[(c[wg>>2]|0)+36>>2];c[Mg>>2]=Sj(c[yg>>2]|0,c[Jg>>2]|0,c[Fg>>2]|0)|0;c[Ng>>2]=c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2];c[Og>>2]=c[(c[wg>>2]|0)+44>>2];c[Pg>>2]=(c[(c[xg>>2]|0)+4>>2]|0)-1;c[Qg>>2]=(1<>2])-1;c[Rg>>2]=0;c[Sg>>2]=0;c[Tg>>2]=c[(c[wg>>2]|0)+8>>2];c[Ug>>2]=c[(c[wg>>2]|0)+12>>2];c[Vg>>2]=(c[Tg>>2]|0)+(c[Ug>>2]|0);c[Wg>>2]=(c[Hg>>2]|0)+(c[Ug>>2]|0);if((c[Qg>>2]|0)>>>0>=(c[Ig>>2]|0)>>>0)cj=0;else cj=(c[Ig>>2]|0)-(c[Qg>>2]|0)|0;c[Xg>>2]=cj;c[Yg>>2]=c[(c[wg>>2]|0)+16>>2];c[Zg>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2);c[_g>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2)+4;c[$g>>2]=(c[Ig>>2]|0)+8+1;c[bh>>2]=0;c[ch>>2]=1<>2]|0)+12>>2];c[dh>>2]=(c[Eg>>2]|0)-1;c[eh>>2]=3+(c[Cg>>2]|0);c[fh>>2]=c[Cg>>2];while(1){if((c[fh>>2]|0)>>>0>=(c[eh>>2]|0)>>>0){dj=31;break;}_h=c[Bg>>2]|0;if((c[fh>>2]|0)==3)ej=(c[_h>>2]|0)-1|0;else ej=c[_h+(c[fh>>2]<<2)>>2]|0;c[gh>>2]=ej;c[hh>>2]=(c[Ig>>2]|0)-(c[gh>>2]|0);c[ih>>2]=0;if(((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Ug>>2]|0)|0)>>>0){_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0;if((_h|0)==(mm((c[yg>>2]|0)+(0-(c[gh>>2]|0))|0,c[Kg>>2]|0)|0)){_h=Tj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[yg>>2]|0)+(c[Kg>>2]|0)+(0-(c[gh>>2]|0))|0,c[zg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}else{c[jh>>2]=(c[Tg>>2]|0)+(c[hh>>2]|0);if((c[Ag>>2]|0?(((c[Ug>>2]|0)-1-(c[hh>>2]|0)|0)>>>0>=3?((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Yg>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0,(_h|0)==(mm(c[jh>>2]|0,c[Kg>>2]|0)|0)):0){_h=Uj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[jh>>2]|0)+(c[Kg>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}if((c[ih>>2]|0)>>>0>(c[dh>>2]|0)>>>0?(c[dh>>2]=c[ih>>2],c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[fh>>2]|0)-(c[Cg>>2]|0),c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ih>>2],c[bh>>2]=(c[bh>>2]|0)+1,((c[ih>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[ih>>2]|0)|0)==(c[zg>>2]|0))|0):0){dj=29;break;}c[fh>>2]=(c[fh>>2]|0)+1;}do{if((dj|0)==29){dj=0;c[vg>>2]=c[bh>>2];}else if((dj|0)==31){dj=0;if(((c[Fg>>2]|0)==3?(c[dh>>2]|0)>>>0<(c[Fg>>2]|0)>>>0:0)?(c[kh>>2]=nm(c[wg>>2]|0,c[yg>>2]|0)|0,((c[kh>>2]|0)>>>0>(c[Yg>>2]|0)>>>0?((c[Ig>>2]|0)-(c[kh>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ag>>2]|0?(c[kh>>2]|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[nh>>2]=(c[Tg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Uj(c[yg>>2]|0,c[nh>>2]|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;}else{c[mh>>2]=(c[Hg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Tj(c[yg>>2]|0,c[mh>>2]|0,c[zg>>2]|0)|0;}if((c[lh>>2]|0)>>>0>=(c[Fg>>2]|0)>>>0?(c[dh>>2]=c[lh>>2],c[c[Dg>>2]>>2]=(c[Ig>>2]|0)-(c[kh>>2]|0)+2,c[(c[Dg>>2]|0)+4>>2]=c[lh>>2],c[bh>>2]=1,((c[lh>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[lh>>2]|0)|0)==(c[zg>>2]|0))|0):0){c[(c[wg>>2]|0)+24>>2]=(c[Ig>>2]|0)+1;c[vg>>2]=1;break;}}c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2]=c[Ig>>2];while(1){_h=c[ch>>2]|0;c[ch>>2]=_h+-1;if(!_h)break;if((c[Ng>>2]|0)>>>0<=(c[Yg>>2]|0)>>>0)break;c[oh>>2]=(c[Og>>2]|0)+((c[Ng>>2]&c[Qg>>2])<<1<<2);c[ph>>2]=(c[Rg>>2]|0)>>>0<(c[Sg>>2]|0)>>>0?c[Rg>>2]|0:c[Sg>>2]|0;if(c[Ag>>2]|0?((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[qh>>2]=(c[Tg>>2]|0)+(c[Ng>>2]|0);_h=Uj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;if(((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0>=(c[Ug>>2]|0)>>>0)c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);}else{c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);_h=Tj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;}if((c[ph>>2]|0)>>>0>(c[dh>>2]|0)>>>0){if((c[ph>>2]|0)>>>0>((c[$g>>2]|0)-(c[Ng>>2]|0)|0)>>>0)c[$g>>2]=(c[Ng>>2]|0)+(c[ph>>2]|0);c[dh>>2]=c[ph>>2];c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[Ig>>2]|0)-(c[Ng>>2]|0)+2;c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ph>>2];c[bh>>2]=(c[bh>>2]|0)+1;if((c[ph>>2]|0)>>>0>4096)break;if(((c[yg>>2]|0)+(c[ph>>2]|0)|0)==(c[zg>>2]|0))break;}_h=c[Ng>>2]|0;if((d[(c[qh>>2]|0)+(c[ph>>2]|0)>>0]|0|0)<(d[(c[yg>>2]|0)+(c[ph>>2]|0)>>0]|0|0)){c[c[Zg>>2]>>2]=_h;c[Rg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=56;break;}c[Zg>>2]=(c[oh>>2]|0)+4;c[Ng>>2]=c[(c[oh>>2]|0)+4>>2];}else{c[c[_g>>2]>>2]=_h;c[Sg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=59;break;}c[_g>>2]=c[oh>>2];c[Ng>>2]=c[c[oh>>2]>>2];}}if((dj|0)==56){dj=0;c[Zg>>2]=ah;}else if((dj|0)==59){dj=0;c[_g>>2]=ah;}c[c[_g>>2]>>2]=0;c[c[Zg>>2]>>2]=0;c[(c[wg>>2]|0)+24>>2]=(c[$g>>2]|0)-8;c[vg>>2]=c[bh>>2];}}while(0);c[Ah>>2]=c[vg>>2];break a;break;}case 7:case 6:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Hd>>2]=c[Bh>>2];c[Id>>2]=_h;c[Jd>>2]=Qh;c[Kd>>2]=Ph;c[Ld>>2]=Zi;c[Md>>2]=_i;c[Nd>>2]=Uh;c[Od>>2]=Zh;c[Pd>>2]=aj;c[Qd>>2]=6;if((c[(c[Id>>2]|0)+20>>2]|0)>>>0<4095)fj=c[(c[Id>>2]|0)+20>>2]|0;else fj=4095;c[Rd>>2]=fj;c[Sd>>2]=c[(c[Hd>>2]|0)+4>>2];c[Td>>2]=(c[Jd>>2]|0)-(c[Sd>>2]|0);c[Ud>>2]=c[(c[Id>>2]|0)+8>>2];c[Vd>>2]=(c[Qd>>2]|0)==3?3:4;c[Wd>>2]=c[(c[Hd>>2]|0)+36>>2];c[Xd>>2]=Sj(c[Jd>>2]|0,c[Ud>>2]|0,c[Qd>>2]|0)|0;c[Yd>>2]=c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2];c[Zd>>2]=c[(c[Hd>>2]|0)+44>>2];c[_d>>2]=(c[(c[Id>>2]|0)+4>>2]|0)-1;c[$d>>2]=(1<>2])-1;c[ae>>2]=0;c[be>>2]=0;c[ce>>2]=c[(c[Hd>>2]|0)+8>>2];c[de>>2]=c[(c[Hd>>2]|0)+12>>2];c[ee>>2]=(c[ce>>2]|0)+(c[de>>2]|0);c[fe>>2]=(c[Sd>>2]|0)+(c[de>>2]|0);if((c[$d>>2]|0)>>>0>=(c[Td>>2]|0)>>>0)gj=0;else gj=(c[Td>>2]|0)-(c[$d>>2]|0)|0;c[ge>>2]=gj;c[he>>2]=c[(c[Hd>>2]|0)+16>>2];c[ie>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2);c[je>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2)+4;c[ke>>2]=(c[Td>>2]|0)+8+1;c[me>>2]=0;c[ne>>2]=1<>2]|0)+12>>2];c[oe>>2]=(c[Pd>>2]|0)-1;c[pe>>2]=3+(c[Nd>>2]|0);c[qe>>2]=c[Nd>>2];while(1){if((c[qe>>2]|0)>>>0>=(c[pe>>2]|0)>>>0){dj=190;break;}aj=c[Md>>2]|0;if((c[qe>>2]|0)==3)hj=(c[aj>>2]|0)-1|0;else hj=c[aj+(c[qe>>2]<<2)>>2]|0;c[re>>2]=hj;c[se>>2]=(c[Td>>2]|0)-(c[re>>2]|0);c[te>>2]=0;if(((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[de>>2]|0)|0)>>>0){aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0;if((aj|0)==(mm((c[Jd>>2]|0)+(0-(c[re>>2]|0))|0,c[Vd>>2]|0)|0)){aj=Tj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[Jd>>2]|0)+(c[Vd>>2]|0)+(0-(c[re>>2]|0))|0,c[Kd>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}else{c[ue>>2]=(c[ce>>2]|0)+(c[se>>2]|0);if((c[Ld>>2]|0?(((c[de>>2]|0)-1-(c[se>>2]|0)|0)>>>0>=3?((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[he>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0,(aj|0)==(mm(c[ue>>2]|0,c[Vd>>2]|0)|0)):0){aj=Uj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[ue>>2]|0)+(c[Vd>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}if((c[te>>2]|0)>>>0>(c[oe>>2]|0)>>>0?(c[oe>>2]=c[te>>2],c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[qe>>2]|0)-(c[Nd>>2]|0),c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[te>>2],c[me>>2]=(c[me>>2]|0)+1,((c[te>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[te>>2]|0)|0)==(c[Kd>>2]|0))|0):0){dj=188;break;}c[qe>>2]=(c[qe>>2]|0)+1;}do{if((dj|0)==188){dj=0;c[Gd>>2]=c[me>>2];}else if((dj|0)==190){dj=0;if(((c[Qd>>2]|0)==3?(c[oe>>2]|0)>>>0<(c[Qd>>2]|0)>>>0:0)?(c[ve>>2]=nm(c[Hd>>2]|0,c[Jd>>2]|0)|0,((c[ve>>2]|0)>>>0>(c[he>>2]|0)>>>0?((c[Td>>2]|0)-(c[ve>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ld>>2]|0?(c[ve>>2]|0)>>>0<(c[de>>2]|0)>>>0:0){c[ye>>2]=(c[ce>>2]|0)+(c[ve>>2]|0);c[we>>2]=Uj(c[Jd>>2]|0,c[ye>>2]|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;}else{c[xe>>2]=(c[Sd>>2]|0)+(c[ve>>2]|0);c[we>>2]=Tj(c[Jd>>2]|0,c[xe>>2]|0,c[Kd>>2]|0)|0;}if((c[we>>2]|0)>>>0>=(c[Qd>>2]|0)>>>0?(c[oe>>2]=c[we>>2],c[c[Od>>2]>>2]=(c[Td>>2]|0)-(c[ve>>2]|0)+2,c[(c[Od>>2]|0)+4>>2]=c[we>>2],c[me>>2]=1,((c[we>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[we>>2]|0)|0)==(c[Kd>>2]|0))|0):0){c[(c[Hd>>2]|0)+24>>2]=(c[Td>>2]|0)+1;c[Gd>>2]=1;break;}}c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2]=c[Td>>2];while(1){aj=c[ne>>2]|0;c[ne>>2]=aj+-1;if(!aj)break;if((c[Yd>>2]|0)>>>0<=(c[he>>2]|0)>>>0)break;c[ze>>2]=(c[Zd>>2]|0)+((c[Yd>>2]&c[$d>>2])<<1<<2);c[Ae>>2]=(c[ae>>2]|0)>>>0<(c[be>>2]|0)>>>0?c[ae>>2]|0:c[be>>2]|0;if(c[Ld>>2]|0?((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0<(c[de>>2]|0)>>>0:0){c[Be>>2]=(c[ce>>2]|0)+(c[Yd>>2]|0);aj=Uj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;if(((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0>=(c[de>>2]|0)>>>0)c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);}else{c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);aj=Tj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;}if((c[Ae>>2]|0)>>>0>(c[oe>>2]|0)>>>0){if((c[Ae>>2]|0)>>>0>((c[ke>>2]|0)-(c[Yd>>2]|0)|0)>>>0)c[ke>>2]=(c[Yd>>2]|0)+(c[Ae>>2]|0);c[oe>>2]=c[Ae>>2];c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[Td>>2]|0)-(c[Yd>>2]|0)+2;c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[Ae>>2];c[me>>2]=(c[me>>2]|0)+1;if((c[Ae>>2]|0)>>>0>4096)break;if(((c[Jd>>2]|0)+(c[Ae>>2]|0)|0)==(c[Kd>>2]|0))break;}aj=c[Yd>>2]|0;if((d[(c[Be>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)<(d[(c[Jd>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)){c[c[ie>>2]>>2]=aj;c[ae>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=215;break;}c[ie>>2]=(c[ze>>2]|0)+4;c[Yd>>2]=c[(c[ze>>2]|0)+4>>2];}else{c[c[je>>2]>>2]=aj;c[be>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=218;break;}c[je>>2]=c[ze>>2];c[Yd>>2]=c[c[ze>>2]>>2];}}if((dj|0)==215){dj=0;c[ie>>2]=le;}else if((dj|0)==218){dj=0;c[je>>2]=le;}c[c[je>>2]>>2]=0;c[c[ie>>2]>>2]=0;c[(c[Hd>>2]|0)+24>>2]=(c[ke>>2]|0)-8;c[Gd>>2]=c[me>>2];}}while(0);c[Ah>>2]=c[Gd>>2];break a;break;}case 5:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[De>>2]=c[Bh>>2];c[Ee>>2]=aj;c[Fe>>2]=Zh;c[Ge>>2]=Uh;c[He>>2]=_i;c[Ie>>2]=Zi;c[Je>>2]=Ph;c[Ke>>2]=Qh;c[Le>>2]=_h;c[Me>>2]=5;if((c[(c[Ee>>2]|0)+20>>2]|0)>>>0<4095)ij=c[(c[Ee>>2]|0)+20>>2]|0;else ij=4095;c[Ne>>2]=ij;c[Oe>>2]=c[(c[De>>2]|0)+4>>2];c[Pe>>2]=(c[Fe>>2]|0)-(c[Oe>>2]|0);c[Qe>>2]=c[(c[Ee>>2]|0)+8>>2];c[Re>>2]=(c[Me>>2]|0)==3?3:4;c[Se>>2]=c[(c[De>>2]|0)+36>>2];c[Te>>2]=Sj(c[Fe>>2]|0,c[Qe>>2]|0,c[Me>>2]|0)|0;c[Ue>>2]=c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2];c[Ve>>2]=c[(c[De>>2]|0)+44>>2];c[We>>2]=(c[(c[Ee>>2]|0)+4>>2]|0)-1;c[Xe>>2]=(1<>2])-1;c[Ye>>2]=0;c[Ze>>2]=0;c[_e>>2]=c[(c[De>>2]|0)+8>>2];c[$e>>2]=c[(c[De>>2]|0)+12>>2];c[af>>2]=(c[_e>>2]|0)+(c[$e>>2]|0);c[bf>>2]=(c[Oe>>2]|0)+(c[$e>>2]|0);if((c[Xe>>2]|0)>>>0>=(c[Pe>>2]|0)>>>0)jj=0;else jj=(c[Pe>>2]|0)-(c[Xe>>2]|0)|0;c[cf>>2]=jj;c[df>>2]=c[(c[De>>2]|0)+16>>2];c[ef>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2);c[ff>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2)+4;c[gf>>2]=(c[Pe>>2]|0)+8+1;c[jf>>2]=0;c[kf>>2]=1<>2]|0)+12>>2];c[lf>>2]=(c[Le>>2]|0)-1;c[mf>>2]=3+(c[Je>>2]|0);c[nf>>2]=c[Je>>2];while(1){if((c[nf>>2]|0)>>>0>=(c[mf>>2]|0)>>>0){dj=137;break;}_h=c[Ie>>2]|0;if((c[nf>>2]|0)==3)kj=(c[_h>>2]|0)-1|0;else kj=c[_h+(c[nf>>2]<<2)>>2]|0;c[of>>2]=kj;c[pf>>2]=(c[Pe>>2]|0)-(c[of>>2]|0);c[qf>>2]=0;if(((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[$e>>2]|0)|0)>>>0){_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0;if((_h|0)==(mm((c[Fe>>2]|0)+(0-(c[of>>2]|0))|0,c[Re>>2]|0)|0)){_h=Tj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[Fe>>2]|0)+(c[Re>>2]|0)+(0-(c[of>>2]|0))|0,c[Ge>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}else{c[rf>>2]=(c[_e>>2]|0)+(c[pf>>2]|0);if((c[He>>2]|0?(((c[$e>>2]|0)-1-(c[pf>>2]|0)|0)>>>0>=3?((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[df>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0,(_h|0)==(mm(c[rf>>2]|0,c[Re>>2]|0)|0)):0){_h=Uj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[rf>>2]|0)+(c[Re>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}if((c[qf>>2]|0)>>>0>(c[lf>>2]|0)>>>0?(c[lf>>2]=c[qf>>2],c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[nf>>2]|0)-(c[Je>>2]|0),c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[qf>>2],c[jf>>2]=(c[jf>>2]|0)+1,((c[qf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[qf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){dj=135;break;}c[nf>>2]=(c[nf>>2]|0)+1;}do{if((dj|0)==135){dj=0;c[Ce>>2]=c[jf>>2];}else if((dj|0)==137){dj=0;if(((c[Me>>2]|0)==3?(c[lf>>2]|0)>>>0<(c[Me>>2]|0)>>>0:0)?(c[sf>>2]=nm(c[De>>2]|0,c[Fe>>2]|0)|0,((c[sf>>2]|0)>>>0>(c[df>>2]|0)>>>0?((c[Pe>>2]|0)-(c[sf>>2]|0)|0)>>>0<262144:0)|0):0){if(c[He>>2]|0?(c[sf>>2]|0)>>>0<(c[$e>>2]|0)>>>0:0){c[vf>>2]=(c[_e>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Uj(c[Fe>>2]|0,c[vf>>2]|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;}else{c[uf>>2]=(c[Oe>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Tj(c[Fe>>2]|0,c[uf>>2]|0,c[Ge>>2]|0)|0;}if((c[tf>>2]|0)>>>0>=(c[Me>>2]|0)>>>0?(c[lf>>2]=c[tf>>2],c[c[Ke>>2]>>2]=(c[Pe>>2]|0)-(c[sf>>2]|0)+2,c[(c[Ke>>2]|0)+4>>2]=c[tf>>2],c[jf>>2]=1,((c[tf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[tf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){c[(c[De>>2]|0)+24>>2]=(c[Pe>>2]|0)+1;c[Ce>>2]=1;break;}}c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2]=c[Pe>>2];while(1){_h=c[kf>>2]|0;c[kf>>2]=_h+-1;if(!_h)break;if((c[Ue>>2]|0)>>>0<=(c[df>>2]|0)>>>0)break;c[wf>>2]=(c[Ve>>2]|0)+((c[Ue>>2]&c[Xe>>2])<<1<<2);c[xf>>2]=(c[Ye>>2]|0)>>>0<(c[Ze>>2]|0)>>>0?c[Ye>>2]|0:c[Ze>>2]|0;if(c[He>>2]|0?((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0<(c[$e>>2]|0)>>>0:0){c[yf>>2]=(c[_e>>2]|0)+(c[Ue>>2]|0);_h=Uj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;if(((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0>=(c[$e>>2]|0)>>>0)c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);}else{c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);_h=Tj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;}if((c[xf>>2]|0)>>>0>(c[lf>>2]|0)>>>0){if((c[xf>>2]|0)>>>0>((c[gf>>2]|0)-(c[Ue>>2]|0)|0)>>>0)c[gf>>2]=(c[Ue>>2]|0)+(c[xf>>2]|0);c[lf>>2]=c[xf>>2];c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[Pe>>2]|0)-(c[Ue>>2]|0)+2;c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[xf>>2];c[jf>>2]=(c[jf>>2]|0)+1;if((c[xf>>2]|0)>>>0>4096)break;if(((c[Fe>>2]|0)+(c[xf>>2]|0)|0)==(c[Ge>>2]|0))break;}_h=c[Ue>>2]|0;if((d[(c[yf>>2]|0)+(c[xf>>2]|0)>>0]|0|0)<(d[(c[Fe>>2]|0)+(c[xf>>2]|0)>>0]|0|0)){c[c[ef>>2]>>2]=_h;c[Ye>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=162;break;}c[ef>>2]=(c[wf>>2]|0)+4;c[Ue>>2]=c[(c[wf>>2]|0)+4>>2];}else{c[c[ff>>2]>>2]=_h;c[Ze>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=165;break;}c[ff>>2]=c[wf>>2];c[Ue>>2]=c[c[wf>>2]>>2];}}if((dj|0)==162){dj=0;c[ef>>2]=hf;}else if((dj|0)==165){dj=0;c[ff>>2]=hf;}c[c[ff>>2]>>2]=0;c[c[ef>>2]>>2]=0;c[(c[De>>2]|0)+24>>2]=(c[gf>>2]|0)-8;c[Ce>>2]=c[jf>>2];}}while(0);c[Ah>>2]=c[Ce>>2];break a;break;}default:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Af>>2]=c[Bh>>2];c[Bf>>2]=_h;c[Cf>>2]=Qh;c[Df>>2]=Ph;c[Ef>>2]=Zi;c[Ff>>2]=_i;c[Gf>>2]=Uh;c[Hf>>2]=Zh;c[If>>2]=aj;c[Jf>>2]=4;if((c[(c[Bf>>2]|0)+20>>2]|0)>>>0<4095)lj=c[(c[Bf>>2]|0)+20>>2]|0;else lj=4095;c[Kf>>2]=lj;c[Lf>>2]=c[(c[Af>>2]|0)+4>>2];c[Mf>>2]=(c[Cf>>2]|0)-(c[Lf>>2]|0);c[Nf>>2]=c[(c[Bf>>2]|0)+8>>2];c[Of>>2]=(c[Jf>>2]|0)==3?3:4;c[Pf>>2]=c[(c[Af>>2]|0)+36>>2];c[Qf>>2]=Sj(c[Cf>>2]|0,c[Nf>>2]|0,c[Jf>>2]|0)|0;c[Rf>>2]=c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2];c[Sf>>2]=c[(c[Af>>2]|0)+44>>2];c[Tf>>2]=(c[(c[Bf>>2]|0)+4>>2]|0)-1;c[Uf>>2]=(1<>2])-1;c[Vf>>2]=0;c[Wf>>2]=0;c[Xf>>2]=c[(c[Af>>2]|0)+8>>2];c[Yf>>2]=c[(c[Af>>2]|0)+12>>2];c[Zf>>2]=(c[Xf>>2]|0)+(c[Yf>>2]|0);c[_f>>2]=(c[Lf>>2]|0)+(c[Yf>>2]|0);if((c[Uf>>2]|0)>>>0>=(c[Mf>>2]|0)>>>0)mj=0;else mj=(c[Mf>>2]|0)-(c[Uf>>2]|0)|0;c[$f>>2]=mj;c[ag>>2]=c[(c[Af>>2]|0)+16>>2];c[bg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2);c[cg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2)+4;c[dg>>2]=(c[Mf>>2]|0)+8+1;c[fg>>2]=0;c[gg>>2]=1<>2]|0)+12>>2];c[hg>>2]=(c[If>>2]|0)-1;c[ig>>2]=3+(c[Gf>>2]|0);c[jg>>2]=c[Gf>>2];while(1){if((c[jg>>2]|0)>>>0>=(c[ig>>2]|0)>>>0){dj=84;break;}aj=c[Ff>>2]|0;if((c[jg>>2]|0)==3)nj=(c[aj>>2]|0)-1|0;else nj=c[aj+(c[jg>>2]<<2)>>2]|0;c[kg>>2]=nj;c[lg>>2]=(c[Mf>>2]|0)-(c[kg>>2]|0);c[mg>>2]=0;if(((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[Yf>>2]|0)|0)>>>0){aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0;if((aj|0)==(mm((c[Cf>>2]|0)+(0-(c[kg>>2]|0))|0,c[Of>>2]|0)|0)){aj=Tj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[Cf>>2]|0)+(c[Of>>2]|0)+(0-(c[kg>>2]|0))|0,c[Df>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}else{c[ng>>2]=(c[Xf>>2]|0)+(c[lg>>2]|0);if((c[Ef>>2]|0?(((c[Yf>>2]|0)-1-(c[lg>>2]|0)|0)>>>0>=3?((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[ag>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0,(aj|0)==(mm(c[ng>>2]|0,c[Of>>2]|0)|0)):0){aj=Uj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[ng>>2]|0)+(c[Of>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}if((c[mg>>2]|0)>>>0>(c[hg>>2]|0)>>>0?(c[hg>>2]=c[mg>>2],c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[jg>>2]|0)-(c[Gf>>2]|0),c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[mg>>2],c[fg>>2]=(c[fg>>2]|0)+1,((c[mg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[mg>>2]|0)|0)==(c[Df>>2]|0))|0):0){dj=82;break;}c[jg>>2]=(c[jg>>2]|0)+1;}do{if((dj|0)==82){dj=0;c[zf>>2]=c[fg>>2];}else if((dj|0)==84){dj=0;if(((c[Jf>>2]|0)==3?(c[hg>>2]|0)>>>0<(c[Jf>>2]|0)>>>0:0)?(c[og>>2]=nm(c[Af>>2]|0,c[Cf>>2]|0)|0,((c[og>>2]|0)>>>0>(c[ag>>2]|0)>>>0?((c[Mf>>2]|0)-(c[og>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ef>>2]|0?(c[og>>2]|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[rg>>2]=(c[Xf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Uj(c[Cf>>2]|0,c[rg>>2]|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;}else{c[qg>>2]=(c[Lf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Tj(c[Cf>>2]|0,c[qg>>2]|0,c[Df>>2]|0)|0;}if((c[pg>>2]|0)>>>0>=(c[Jf>>2]|0)>>>0?(c[hg>>2]=c[pg>>2],c[c[Hf>>2]>>2]=(c[Mf>>2]|0)-(c[og>>2]|0)+2,c[(c[Hf>>2]|0)+4>>2]=c[pg>>2],c[fg>>2]=1,((c[pg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[pg>>2]|0)|0)==(c[Df>>2]|0))|0):0){c[(c[Af>>2]|0)+24>>2]=(c[Mf>>2]|0)+1;c[zf>>2]=1;break;}}c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2]=c[Mf>>2];while(1){aj=c[gg>>2]|0;c[gg>>2]=aj+-1;if(!aj)break;if((c[Rf>>2]|0)>>>0<=(c[ag>>2]|0)>>>0)break;c[sg>>2]=(c[Sf>>2]|0)+((c[Rf>>2]&c[Uf>>2])<<1<<2);c[tg>>2]=(c[Vf>>2]|0)>>>0<(c[Wf>>2]|0)>>>0?c[Vf>>2]|0:c[Wf>>2]|0;if(c[Ef>>2]|0?((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[ug>>2]=(c[Xf>>2]|0)+(c[Rf>>2]|0);aj=Uj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;if(((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0>=(c[Yf>>2]|0)>>>0)c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);}else{c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);aj=Tj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;}if((c[tg>>2]|0)>>>0>(c[hg>>2]|0)>>>0){if((c[tg>>2]|0)>>>0>((c[dg>>2]|0)-(c[Rf>>2]|0)|0)>>>0)c[dg>>2]=(c[Rf>>2]|0)+(c[tg>>2]|0);c[hg>>2]=c[tg>>2];c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[Mf>>2]|0)-(c[Rf>>2]|0)+2;c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[tg>>2];c[fg>>2]=(c[fg>>2]|0)+1;if((c[tg>>2]|0)>>>0>4096)break;if(((c[Cf>>2]|0)+(c[tg>>2]|0)|0)==(c[Df>>2]|0))break;}aj=c[Rf>>2]|0;if((d[(c[ug>>2]|0)+(c[tg>>2]|0)>>0]|0|0)<(d[(c[Cf>>2]|0)+(c[tg>>2]|0)>>0]|0|0)){c[c[bg>>2]>>2]=aj;c[Vf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=109;break;}c[bg>>2]=(c[sg>>2]|0)+4;c[Rf>>2]=c[(c[sg>>2]|0)+4>>2];}else{c[c[cg>>2]>>2]=aj;c[Wf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=112;break;}c[cg>>2]=c[sg>>2];c[Rf>>2]=c[c[sg>>2]>>2];}}if((dj|0)==109){dj=0;c[bg>>2]=eg;}else if((dj|0)==112){dj=0;c[cg>>2]=eg;}c[c[cg>>2]>>2]=0;c[c[bg>>2]>>2]=0;c[(c[Af>>2]|0)+24>>2]=(c[dg>>2]|0)-8;c[zf>>2]=c[fg>>2];}}while(0);c[Ah>>2]=c[zf>>2];break a;}}}}while(0);c[ki>>2]=c[Ah>>2];if(!(c[ki>>2]|0)){c[Vh>>2]=(c[Vh>>2]|0)+1;continue;}c[li>>2]=0;while(1){if((c[li>>2]|0)>>>0>=3)break;c[(c[bi>>2]|0)+16+(c[li>>2]<<2)>>2]=c[(c[Nh>>2]|0)+(c[li>>2]<<2)>>2];c[li>>2]=(c[li>>2]|0)+1;}c[(c[bi>>2]|0)+8>>2]=1;c[(c[bi>>2]|0)+12>>2]=c[ii>>2];c[mi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)+4>>2];do{if((c[mi>>2]|0)>>>0<=(c[$h>>2]|0)>>>0){c[ni>>2]=om(di,c[Wh>>2]|0,c[ii>>2]|0,c[Th>>2]|0)|0;c[oi>>2]=0;while(1){if((c[oi>>2]|0)>>>0>=(c[ai>>2]|0)>>>0)break;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=1073741824;c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=0;while(1){if((c[pi>>2]|0)>>>0>=(c[ki>>2]|0)>>>0)break;c[qi>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)>>2];c[ri>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)+4>>2];pm(si,c[Nh>>2]|0,c[qi>>2]|0,c[ji>>2]|0);while(1){if((c[oi>>2]|0)>>>0>(c[ri>>2]|0)>>>0)break;aj=c[ni>>2]|0;Zh=c[oi>>2]|0;Uh=c[Th>>2]|0;_i=c[Rh>>2]|0;c[yd>>2]=c[qi>>2];c[zd>>2]=Zh;c[Ad>>2]=Uh;c[Bd>>2]=_i;c[Dd>>2]=qm((c[yd>>2]|0)+1|0)|0;c[Ed>>2]=(c[zd>>2]|0)-3;if(c[(c[Ad>>2]|0)+56>>2]|0){_i=(qm((c[Ed>>2]|0)+1|0)|0)+16|0;c[xd>>2]=_i+(c[Dd>>2]|0);}else{_i=(c[Dd>>2]|0)+(c[(c[Ad>>2]|0)+52>>2]|0)|0;c[Cd>>2]=_i-(qm((c[(c[(c[Ad>>2]|0)+12>>2]|0)+(c[Dd>>2]<<2)>>2]|0)+1|0)|0);if((c[Bd>>2]|0)<2&(c[Dd>>2]|0)>>>0>=20)c[Cd>>2]=(c[Cd>>2]|0)+((c[Dd>>2]|0)-19<<1);c[Fd>>2]=rm(c[Ed>>2]|0)|0;_i=(c[5840+(c[Fd>>2]<<2)>>2]|0)+(c[(c[Ad>>2]|0)+48>>2]|0)|0;Uh=_i-(qm((c[(c[(c[Ad>>2]|0)+8>>2]|0)+(c[Fd>>2]<<2)>>2]|0)+1|0)|0)|0;c[Cd>>2]=(c[Cd>>2]|0)+Uh;c[xd>>2]=c[Cd>>2];}c[ti>>2]=aj+(c[xd>>2]|0);c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=c[oi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+4>>2]=c[qi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+12>>2]=c[ii>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=c[ti>>2];aj=(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+16|0;c[aj>>2]=c[si>>2];c[aj+4>>2]=c[si+4>>2];c[aj+8>>2]=c[si+8>>2];c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=(c[pi>>2]|0)+1;}c[fi>>2]=(c[oi>>2]|0)-1;c[ei>>2]=1;b:while(1){if((c[ei>>2]|0)>>>0>(c[fi>>2]|0)>>>0){dj=504;break;}c[ui>>2]=(c[Vh>>2]|0)+(c[ei>>2]|0);if((c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+8>>2]|0)==1)oj=(c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+12>>2]|0)+1|0;else oj=1;c[vi>>2]=oj;if((c[ei>>2]|0)>>>0>(c[vi>>2]|0)>>>0){aj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[vi>>2]|0)|0)*28|0)>>2]|0;c[wi>>2]=aj+(sm((c[ui>>2]|0)+(0-(c[vi>>2]|0))|0,c[vi>>2]|0,c[Th>>2]|0)|0);}else c[wi>>2]=tm(di,c[Wh>>2]|0,c[vi>>2]|0,c[Th>>2]|0)|0;if((c[wi>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0)){c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+4>>2]=0;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]=c[vi>>2];c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]=c[wi>>2];aj=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Uh=(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+16|0;c[aj>>2]=c[Uh>>2];c[aj+4>>2]=c[Uh+4>>2];c[aj+8>>2]=c[Uh+8>>2];}c:do{if((c[ui>>2]|0)>>>0<=(c[Yh>>2]|0)>>>0){if((c[ei>>2]|0)==(c[fi>>2]|0)){dj=504;break b;}if((c[Rh>>2]|0)==0?(c[(c[bi>>2]|0)+(((c[ei>>2]|0)+1|0)*28|0)>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0):0)break;c[xi>>2]=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)!=1&1;if((c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)==1)pj=c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]|0;else pj=0;c[yi>>2]=pj;if((c[ei>>2]|0)>>>0>(c[yi>>2]|0)>>>0)qj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[yi>>2]|0)|0)*28|0)>>2]|0;else qj=0;c[zi>>2]=qj;Uh=c[zi>>2]|0;c[Ai>>2]=Uh+(um((c[ui>>2]|0)+(0-(c[yi>>2]|0))|0,c[yi>>2]|0,c[Th>>2]|0)|0);Uh=c[Oh>>2]|0;aj=c[ui>>2]|0;_i=c[Xh>>2]|0;Zh=c[Sh>>2]|0;Zi=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Ph=c[xi>>2]|0;Qh=c[ci>>2]|0;_h=c[ai>>2]|0;c[nd>>2]=c[Lh>>2];c[od>>2]=Uh;c[pd>>2]=aj;c[qd>>2]=_i;c[rd>>2]=Zh;c[sd>>2]=Zi;c[td>>2]=Ph;c[ud>>2]=Qh;c[vd>>2]=_h;c[wd>>2]=c[(c[od>>2]|0)+16>>2];d:do{if((c[pd>>2]|0)>>>0<((c[(c[nd>>2]|0)+4>>2]|0)+(c[(c[nd>>2]|0)+24>>2]|0)|0)>>>0)c[md>>2]=0;else{_h=c[od>>2]|0;Qh=c[pd>>2]|0;Ph=c[qd>>2]|0;Zi=c[wd>>2]|0;Zh=c[rd>>2]|0;c[dd>>2]=c[nd>>2];c[ed>>2]=_h;c[fd>>2]=Qh;c[gd>>2]=Ph;c[hd>>2]=Zi;c[id>>2]=Zh;c[jd>>2]=c[(c[dd>>2]|0)+4>>2];c[kd>>2]=(c[fd>>2]|0)-(c[jd>>2]|0);c[ld>>2]=c[(c[dd>>2]|0)+24>>2];while(1){if((c[ld>>2]|0)>>>0>=(c[kd>>2]|0)>>>0)break;Zh=Rj(c[dd>>2]|0,c[ed>>2]|0,(c[jd>>2]|0)+(c[ld>>2]|0)|0,c[gd>>2]|0,c[hd>>2]|0,c[id>>2]|0)|0;c[ld>>2]=(c[ld>>2]|0)+Zh;}c[(c[dd>>2]|0)+24>>2]=c[kd>>2];switch(c[wd>>2]|0){case 3:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[ic>>2]=c[nd>>2];c[jc>>2]=Zh;c[kc>>2]=Zi;c[lc>>2]=Ph;c[mc>>2]=Qh;c[nc>>2]=_h;c[oc>>2]=_i;c[pc>>2]=aj;c[qc>>2]=Uh;c[rc>>2]=3;if((c[(c[jc>>2]|0)+20>>2]|0)>>>0<4095)rj=c[(c[jc>>2]|0)+20>>2]|0;else rj=4095;c[sc>>2]=rj;c[tc>>2]=c[(c[ic>>2]|0)+4>>2];c[uc>>2]=(c[kc>>2]|0)-(c[tc>>2]|0);c[vc>>2]=c[(c[jc>>2]|0)+8>>2];c[wc>>2]=(c[rc>>2]|0)==3?3:4;c[xc>>2]=c[(c[ic>>2]|0)+36>>2];c[yc>>2]=Sj(c[kc>>2]|0,c[vc>>2]|0,c[rc>>2]|0)|0;c[zc>>2]=c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2];c[Ac>>2]=c[(c[ic>>2]|0)+44>>2];c[Bc>>2]=(c[(c[jc>>2]|0)+4>>2]|0)-1;c[Cc>>2]=(1<>2])-1;c[Dc>>2]=0;c[Ec>>2]=0;c[Fc>>2]=c[(c[ic>>2]|0)+8>>2];c[Gc>>2]=c[(c[ic>>2]|0)+12>>2];c[Hc>>2]=(c[Fc>>2]|0)+(c[Gc>>2]|0);c[Ic>>2]=(c[tc>>2]|0)+(c[Gc>>2]|0);if((c[Cc>>2]|0)>>>0>=(c[uc>>2]|0)>>>0)sj=0;else sj=(c[uc>>2]|0)-(c[Cc>>2]|0)|0;c[Jc>>2]=sj;c[Kc>>2]=c[(c[ic>>2]|0)+16>>2];c[Lc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2);c[Mc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2)+4;c[Nc>>2]=(c[uc>>2]|0)+8+1;c[Pc>>2]=0;c[Qc>>2]=1<>2]|0)+12>>2];c[Rc>>2]=(c[qc>>2]|0)-1;c[Sc>>2]=3+(c[oc>>2]|0);c[Tc>>2]=c[oc>>2];while(1){if((c[Tc>>2]|0)>>>0>=(c[Sc>>2]|0)>>>0){dj=287;break;}Uh=c[nc>>2]|0;if((c[Tc>>2]|0)==3)tj=(c[Uh>>2]|0)-1|0;else tj=c[Uh+(c[Tc>>2]<<2)>>2]|0;c[Uc>>2]=tj;c[Vc>>2]=(c[uc>>2]|0)-(c[Uc>>2]|0);c[Wc>>2]=0;do{if(((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Gc>>2]|0)|0)>>>0){Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm((c[kc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[wc>>2]|0)|0))break;Uh=Tj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[kc>>2]|0)+(c[wc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[lc>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}else{c[Xc>>2]=(c[Fc>>2]|0)+(c[Vc>>2]|0);if(!(c[mc>>2]|0))break;if(!((((c[Gc>>2]|0)-1-(c[Vc>>2]|0)|0)>>>0>=3?((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Kc>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm(c[Xc>>2]|0,c[wc>>2]|0)|0))break;Uh=Uj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[Xc>>2]|0)+(c[wc>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}}while(0);if((c[Wc>>2]|0)>>>0>(c[Rc>>2]|0)>>>0?(c[Rc>>2]=c[Wc>>2],c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[Tc>>2]|0)-(c[oc>>2]|0),c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[Wc>>2],c[Pc>>2]=(c[Pc>>2]|0)+1,((c[Wc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Wc>>2]|0)|0)==(c[lc>>2]|0))|0):0){dj=285;break;}c[Tc>>2]=(c[Tc>>2]|0)+1;}e:do{if((dj|0)==285){dj=0;c[hc>>2]=c[Pc>>2];}else if((dj|0)==287){dj=0;do{if((c[rc>>2]|0)==3){if((c[Rc>>2]|0)>>>0>=(c[rc>>2]|0)>>>0)break;c[Yc>>2]=nm(c[ic>>2]|0,c[kc>>2]|0)|0;if(!(((c[Yc>>2]|0)>>>0>(c[Kc>>2]|0)>>>0?((c[uc>>2]|0)-(c[Yc>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[mc>>2]|0){if((c[Yc>>2]|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=292;break;}c[$c>>2]=(c[Fc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Uj(c[kc>>2]|0,c[$c>>2]|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;}else dj=292;}while(0);if((dj|0)==292){dj=0;c[_c>>2]=(c[tc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Tj(c[kc>>2]|0,c[_c>>2]|0,c[lc>>2]|0)|0;}if((c[Zc>>2]|0)>>>0<(c[rc>>2]|0)>>>0)break;c[Rc>>2]=c[Zc>>2];c[c[pc>>2]>>2]=(c[uc>>2]|0)-(c[Yc>>2]|0)+2;c[(c[pc>>2]|0)+4>>2]=c[Zc>>2];c[Pc>>2]=1;if(!(((c[Zc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Zc>>2]|0)|0)==(c[lc>>2]|0))|0))break;c[(c[ic>>2]|0)+24>>2]=(c[uc>>2]|0)+1;c[hc>>2]=1;break e;}}while(0);c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2]=c[uc>>2];while(1){Uh=c[Qc>>2]|0;c[Qc>>2]=Uh+-1;if(!Uh)break;if((c[zc>>2]|0)>>>0<=(c[Kc>>2]|0)>>>0)break;c[ad>>2]=(c[Ac>>2]|0)+((c[zc>>2]&c[Cc>>2])<<1<<2);c[bd>>2]=(c[Dc>>2]|0)>>>0<(c[Ec>>2]|0)>>>0?c[Dc>>2]|0:c[Ec>>2]|0;do{if(c[mc>>2]|0){if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=302;break;}c[cd>>2]=(c[Fc>>2]|0)+(c[zc>>2]|0);Uh=Uj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0<(c[Gc>>2]|0)>>>0)break;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);}else dj=302;}while(0);if((dj|0)==302){dj=0;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);Uh=Tj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;}if((c[bd>>2]|0)>>>0>(c[Rc>>2]|0)>>>0){if((c[bd>>2]|0)>>>0>((c[Nc>>2]|0)-(c[zc>>2]|0)|0)>>>0)c[Nc>>2]=(c[zc>>2]|0)+(c[bd>>2]|0);c[Rc>>2]=c[bd>>2];c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[uc>>2]|0)-(c[zc>>2]|0)+2;c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[bd>>2];c[Pc>>2]=(c[Pc>>2]|0)+1;if((c[bd>>2]|0)>>>0>4096)break;if(((c[kc>>2]|0)+(c[bd>>2]|0)|0)==(c[lc>>2]|0))break;}Uh=c[zc>>2]|0;if((d[(c[cd>>2]|0)+(c[bd>>2]|0)>>0]|0|0)<(d[(c[kc>>2]|0)+(c[bd>>2]|0)>>0]|0|0)){c[c[Lc>>2]>>2]=Uh;c[Dc>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=312;break;}c[Lc>>2]=(c[ad>>2]|0)+4;c[zc>>2]=c[(c[ad>>2]|0)+4>>2];}else{c[c[Mc>>2]>>2]=Uh;c[Ec>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=315;break;}c[Mc>>2]=c[ad>>2];c[zc>>2]=c[c[ad>>2]>>2];}}if((dj|0)==312){dj=0;c[Lc>>2]=Oc;}else if((dj|0)==315){dj=0;c[Mc>>2]=Oc;}c[c[Mc>>2]>>2]=0;c[c[Lc>>2]>>2]=0;c[(c[ic>>2]|0)+24>>2]=(c[Nc>>2]|0)-8;c[hc>>2]=c[Pc>>2];}}while(0);c[md>>2]=c[hc>>2];break d;break;}case 7:case 6:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[u>>2]=c[nd>>2];c[v>>2]=Uh;c[w>>2]=aj;c[x>>2]=_i;c[y>>2]=_h;c[z>>2]=Qh;c[A>>2]=Ph;c[B>>2]=Zi;c[C>>2]=Zh;c[D>>2]=6;if((c[(c[v>>2]|0)+20>>2]|0)>>>0<4095)uj=c[(c[v>>2]|0)+20>>2]|0;else uj=4095;c[E>>2]=uj;c[F>>2]=c[(c[u>>2]|0)+4>>2];c[G>>2]=(c[w>>2]|0)-(c[F>>2]|0);c[H>>2]=c[(c[v>>2]|0)+8>>2];c[I>>2]=(c[D>>2]|0)==3?3:4;c[J>>2]=c[(c[u>>2]|0)+36>>2];c[K>>2]=Sj(c[w>>2]|0,c[H>>2]|0,c[D>>2]|0)|0;c[L>>2]=c[(c[J>>2]|0)+(c[K>>2]<<2)>>2];c[M>>2]=c[(c[u>>2]|0)+44>>2];c[N>>2]=(c[(c[v>>2]|0)+4>>2]|0)-1;c[O>>2]=(1<>2])-1;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=c[(c[u>>2]|0)+8>>2];c[S>>2]=c[(c[u>>2]|0)+12>>2];c[T>>2]=(c[R>>2]|0)+(c[S>>2]|0);c[U>>2]=(c[F>>2]|0)+(c[S>>2]|0);if((c[O>>2]|0)>>>0>=(c[G>>2]|0)>>>0)vj=0;else vj=(c[G>>2]|0)-(c[O>>2]|0)|0;c[V>>2]=vj;c[W>>2]=c[(c[u>>2]|0)+16>>2];c[X>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2);c[Y>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2)+4;c[Z>>2]=(c[G>>2]|0)+8+1;c[$>>2]=0;c[aa>>2]=1<>2]|0)+12>>2];c[ba>>2]=(c[C>>2]|0)-1;c[ca>>2]=3+(c[A>>2]|0);c[da>>2]=c[A>>2];while(1){if((c[da>>2]|0)>>>0>=(c[ca>>2]|0)>>>0){dj=446;break;}Zh=c[z>>2]|0;if((c[da>>2]|0)==3)wj=(c[Zh>>2]|0)-1|0;else wj=c[Zh+(c[da>>2]<<2)>>2]|0;c[ea>>2]=wj;c[fa>>2]=(c[G>>2]|0)-(c[ea>>2]|0);c[ga>>2]=0;do{if(((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[S>>2]|0)|0)>>>0){Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm((c[w>>2]|0)+(0-(c[ea>>2]|0))|0,c[I>>2]|0)|0))break;Zh=Tj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[w>>2]|0)+(c[I>>2]|0)+(0-(c[ea>>2]|0))|0,c[x>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}else{c[ha>>2]=(c[R>>2]|0)+(c[fa>>2]|0);if(!(c[y>>2]|0))break;if(!((((c[S>>2]|0)-1-(c[fa>>2]|0)|0)>>>0>=3?((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[W>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm(c[ha>>2]|0,c[I>>2]|0)|0))break;Zh=Uj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[ha>>2]|0)+(c[I>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}}while(0);if((c[ga>>2]|0)>>>0>(c[ba>>2]|0)>>>0?(c[ba>>2]=c[ga>>2],c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[da>>2]|0)-(c[A>>2]|0),c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[ga>>2],c[$>>2]=(c[$>>2]|0)+1,((c[ga>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ga>>2]|0)|0)==(c[x>>2]|0))|0):0){dj=444;break;}c[da>>2]=(c[da>>2]|0)+1;}f:do{if((dj|0)==444){dj=0;c[t>>2]=c[$>>2];}else if((dj|0)==446){dj=0;do{if((c[D>>2]|0)==3){if((c[ba>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[ia>>2]=nm(c[u>>2]|0,c[w>>2]|0)|0;if(!(((c[ia>>2]|0)>>>0>(c[W>>2]|0)>>>0?((c[G>>2]|0)-(c[ia>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[y>>2]|0){if((c[ia>>2]|0)>>>0>=(c[S>>2]|0)>>>0){dj=451;break;}c[la>>2]=(c[R>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Uj(c[w>>2]|0,c[la>>2]|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;}else dj=451;}while(0);if((dj|0)==451){dj=0;c[ka>>2]=(c[F>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Tj(c[w>>2]|0,c[ka>>2]|0,c[x>>2]|0)|0;}if((c[ja>>2]|0)>>>0<(c[D>>2]|0)>>>0)break;c[ba>>2]=c[ja>>2];c[c[B>>2]>>2]=(c[G>>2]|0)-(c[ia>>2]|0)+2;c[(c[B>>2]|0)+4>>2]=c[ja>>2];c[$>>2]=1;if(!(((c[ja>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ja>>2]|0)|0)==(c[x>>2]|0))|0))break;c[(c[u>>2]|0)+24>>2]=(c[G>>2]|0)+1;c[t>>2]=1;break f;}}while(0);c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[G>>2];while(1){Zh=c[aa>>2]|0;c[aa>>2]=Zh+-1;if(!Zh)break;if((c[L>>2]|0)>>>0<=(c[W>>2]|0)>>>0)break;c[ma>>2]=(c[M>>2]|0)+((c[L>>2]&c[O>>2])<<1<<2);c[na>>2]=(c[P>>2]|0)>>>0<(c[Q>>2]|0)>>>0?c[P>>2]|0:c[Q>>2]|0;do{if(c[y>>2]|0){if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0>=(c[S>>2]|0)>>>0){dj=461;break;}c[oa>>2]=(c[R>>2]|0)+(c[L>>2]|0);Zh=Uj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0<(c[S>>2]|0)>>>0)break;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);}else dj=461;}while(0);if((dj|0)==461){dj=0;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);Zh=Tj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;}if((c[na>>2]|0)>>>0>(c[ba>>2]|0)>>>0){if((c[na>>2]|0)>>>0>((c[Z>>2]|0)-(c[L>>2]|0)|0)>>>0)c[Z>>2]=(c[L>>2]|0)+(c[na>>2]|0);c[ba>>2]=c[na>>2];c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[G>>2]|0)-(c[L>>2]|0)+2;c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[na>>2];c[$>>2]=(c[$>>2]|0)+1;if((c[na>>2]|0)>>>0>4096)break;if(((c[w>>2]|0)+(c[na>>2]|0)|0)==(c[x>>2]|0))break;}Zh=c[L>>2]|0;if((d[(c[oa>>2]|0)+(c[na>>2]|0)>>0]|0|0)<(d[(c[w>>2]|0)+(c[na>>2]|0)>>0]|0|0)){c[c[X>>2]>>2]=Zh;c[P>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=471;break;}c[X>>2]=(c[ma>>2]|0)+4;c[L>>2]=c[(c[ma>>2]|0)+4>>2];}else{c[c[Y>>2]>>2]=Zh;c[Q>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=474;break;}c[Y>>2]=c[ma>>2];c[L>>2]=c[c[ma>>2]>>2];}}if((dj|0)==471){dj=0;c[X>>2]=_;}else if((dj|0)==474){dj=0;c[Y>>2]=_;}c[c[Y>>2]>>2]=0;c[c[X>>2]>>2]=0;c[(c[u>>2]|0)+24>>2]=(c[Z>>2]|0)-8;c[t>>2]=c[$>>2];}}while(0);c[md>>2]=c[t>>2];break d;break;}case 5:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[qa>>2]=c[nd>>2];c[ra>>2]=Zh;c[sa>>2]=Zi;c[ta>>2]=Ph;c[ua>>2]=Qh;c[va>>2]=_h;c[wa>>2]=_i;c[xa>>2]=aj;c[ya>>2]=Uh;c[za>>2]=5;if((c[(c[ra>>2]|0)+20>>2]|0)>>>0<4095)xj=c[(c[ra>>2]|0)+20>>2]|0;else xj=4095;c[Aa>>2]=xj;c[Ba>>2]=c[(c[qa>>2]|0)+4>>2];c[Ca>>2]=(c[sa>>2]|0)-(c[Ba>>2]|0);c[Da>>2]=c[(c[ra>>2]|0)+8>>2];c[Ea>>2]=(c[za>>2]|0)==3?3:4;c[Fa>>2]=c[(c[qa>>2]|0)+36>>2];c[Ga>>2]=Sj(c[sa>>2]|0,c[Da>>2]|0,c[za>>2]|0)|0;c[Ha>>2]=c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2];c[Ia>>2]=c[(c[qa>>2]|0)+44>>2];c[Ja>>2]=(c[(c[ra>>2]|0)+4>>2]|0)-1;c[Ka>>2]=(1<>2])-1;c[La>>2]=0;c[Ma>>2]=0;c[Na>>2]=c[(c[qa>>2]|0)+8>>2];c[Oa>>2]=c[(c[qa>>2]|0)+12>>2];c[Pa>>2]=(c[Na>>2]|0)+(c[Oa>>2]|0);c[Qa>>2]=(c[Ba>>2]|0)+(c[Oa>>2]|0);if((c[Ka>>2]|0)>>>0>=(c[Ca>>2]|0)>>>0)yj=0;else yj=(c[Ca>>2]|0)-(c[Ka>>2]|0)|0;c[Ra>>2]=yj;c[Sa>>2]=c[(c[qa>>2]|0)+16>>2];c[Ta>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2);c[Ua>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2)+4;c[Va>>2]=(c[Ca>>2]|0)+8+1;c[Xa>>2]=0;c[Ya>>2]=1<>2]|0)+12>>2];c[Za>>2]=(c[ya>>2]|0)-1;c[_a>>2]=3+(c[wa>>2]|0);c[$a>>2]=c[wa>>2];while(1){if((c[$a>>2]|0)>>>0>=(c[_a>>2]|0)>>>0){dj=393;break;}Uh=c[va>>2]|0;if((c[$a>>2]|0)==3)zj=(c[Uh>>2]|0)-1|0;else zj=c[Uh+(c[$a>>2]<<2)>>2]|0;c[ab>>2]=zj;c[bb>>2]=(c[Ca>>2]|0)-(c[ab>>2]|0);c[cb>>2]=0;do{if(((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Oa>>2]|0)|0)>>>0){Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm((c[sa>>2]|0)+(0-(c[ab>>2]|0))|0,c[Ea>>2]|0)|0))break;Uh=Tj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[sa>>2]|0)+(c[Ea>>2]|0)+(0-(c[ab>>2]|0))|0,c[ta>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}else{c[db>>2]=(c[Na>>2]|0)+(c[bb>>2]|0);if(!(c[ua>>2]|0))break;if(!((((c[Oa>>2]|0)-1-(c[bb>>2]|0)|0)>>>0>=3?((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Sa>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm(c[db>>2]|0,c[Ea>>2]|0)|0))break;Uh=Uj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[db>>2]|0)+(c[Ea>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}}while(0);if((c[cb>>2]|0)>>>0>(c[Za>>2]|0)>>>0?(c[Za>>2]=c[cb>>2],c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[$a>>2]|0)-(c[wa>>2]|0),c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[cb>>2],c[Xa>>2]=(c[Xa>>2]|0)+1,((c[cb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[cb>>2]|0)|0)==(c[ta>>2]|0))|0):0){dj=391;break;}c[$a>>2]=(c[$a>>2]|0)+1;}g:do{if((dj|0)==391){dj=0;c[pa>>2]=c[Xa>>2];}else if((dj|0)==393){dj=0;do{if((c[za>>2]|0)==3){if((c[Za>>2]|0)>>>0>=(c[za>>2]|0)>>>0)break;c[eb>>2]=nm(c[qa>>2]|0,c[sa>>2]|0)|0;if(!(((c[eb>>2]|0)>>>0>(c[Sa>>2]|0)>>>0?((c[Ca>>2]|0)-(c[eb>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[ua>>2]|0){if((c[eb>>2]|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=398;break;}c[hb>>2]=(c[Na>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Uj(c[sa>>2]|0,c[hb>>2]|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;}else dj=398;}while(0);if((dj|0)==398){dj=0;c[gb>>2]=(c[Ba>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Tj(c[sa>>2]|0,c[gb>>2]|0,c[ta>>2]|0)|0;}if((c[fb>>2]|0)>>>0<(c[za>>2]|0)>>>0)break;c[Za>>2]=c[fb>>2];c[c[xa>>2]>>2]=(c[Ca>>2]|0)-(c[eb>>2]|0)+2;c[(c[xa>>2]|0)+4>>2]=c[fb>>2];c[Xa>>2]=1;if(!(((c[fb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[fb>>2]|0)|0)==(c[ta>>2]|0))|0))break;c[(c[qa>>2]|0)+24>>2]=(c[Ca>>2]|0)+1;c[pa>>2]=1;break g;}}while(0);c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2]=c[Ca>>2];while(1){Uh=c[Ya>>2]|0;c[Ya>>2]=Uh+-1;if(!Uh)break;if((c[Ha>>2]|0)>>>0<=(c[Sa>>2]|0)>>>0)break;c[ib>>2]=(c[Ia>>2]|0)+((c[Ha>>2]&c[Ka>>2])<<1<<2);c[jb>>2]=(c[La>>2]|0)>>>0<(c[Ma>>2]|0)>>>0?c[La>>2]|0:c[Ma>>2]|0;do{if(c[ua>>2]|0){if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=408;break;}c[kb>>2]=(c[Na>>2]|0)+(c[Ha>>2]|0);Uh=Uj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0<(c[Oa>>2]|0)>>>0)break;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);}else dj=408;}while(0);if((dj|0)==408){dj=0;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);Uh=Tj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;}if((c[jb>>2]|0)>>>0>(c[Za>>2]|0)>>>0){if((c[jb>>2]|0)>>>0>((c[Va>>2]|0)-(c[Ha>>2]|0)|0)>>>0)c[Va>>2]=(c[Ha>>2]|0)+(c[jb>>2]|0);c[Za>>2]=c[jb>>2];c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[Ca>>2]|0)-(c[Ha>>2]|0)+2;c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[jb>>2];c[Xa>>2]=(c[Xa>>2]|0)+1;if((c[jb>>2]|0)>>>0>4096)break;if(((c[sa>>2]|0)+(c[jb>>2]|0)|0)==(c[ta>>2]|0))break;}Uh=c[Ha>>2]|0;if((d[(c[kb>>2]|0)+(c[jb>>2]|0)>>0]|0|0)<(d[(c[sa>>2]|0)+(c[jb>>2]|0)>>0]|0|0)){c[c[Ta>>2]>>2]=Uh;c[La>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=418;break;}c[Ta>>2]=(c[ib>>2]|0)+4;c[Ha>>2]=c[(c[ib>>2]|0)+4>>2];}else{c[c[Ua>>2]>>2]=Uh;c[Ma>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=421;break;}c[Ua>>2]=c[ib>>2];c[Ha>>2]=c[c[ib>>2]>>2];}}if((dj|0)==418){dj=0;c[Ta>>2]=Wa;}else if((dj|0)==421){dj=0;c[Ua>>2]=Wa;}c[c[Ua>>2]>>2]=0;c[c[Ta>>2]>>2]=0;c[(c[qa>>2]|0)+24>>2]=(c[Va>>2]|0)-8;c[pa>>2]=c[Xa>>2];}}while(0);c[md>>2]=c[pa>>2];break d;break;}default:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[mb>>2]=c[nd>>2];c[nb>>2]=Uh;c[ob>>2]=aj;c[pb>>2]=_i;c[qb>>2]=_h;c[rb>>2]=Qh;c[sb>>2]=Ph;c[tb>>2]=Zi;c[ub>>2]=Zh;c[vb>>2]=4;if((c[(c[nb>>2]|0)+20>>2]|0)>>>0<4095)Aj=c[(c[nb>>2]|0)+20>>2]|0;else Aj=4095;c[wb>>2]=Aj;c[xb>>2]=c[(c[mb>>2]|0)+4>>2];c[yb>>2]=(c[ob>>2]|0)-(c[xb>>2]|0);c[zb>>2]=c[(c[nb>>2]|0)+8>>2];c[Ab>>2]=(c[vb>>2]|0)==3?3:4;c[Bb>>2]=c[(c[mb>>2]|0)+36>>2];c[Cb>>2]=Sj(c[ob>>2]|0,c[zb>>2]|0,c[vb>>2]|0)|0;c[Db>>2]=c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2];c[Eb>>2]=c[(c[mb>>2]|0)+44>>2];c[Fb>>2]=(c[(c[nb>>2]|0)+4>>2]|0)-1;c[Gb>>2]=(1<>2])-1;c[Hb>>2]=0;c[Ib>>2]=0;c[Jb>>2]=c[(c[mb>>2]|0)+8>>2];c[Kb>>2]=c[(c[mb>>2]|0)+12>>2];c[Lb>>2]=(c[Jb>>2]|0)+(c[Kb>>2]|0);c[Mb>>2]=(c[xb>>2]|0)+(c[Kb>>2]|0);if((c[Gb>>2]|0)>>>0>=(c[yb>>2]|0)>>>0)Bj=0;else Bj=(c[yb>>2]|0)-(c[Gb>>2]|0)|0;c[Nb>>2]=Bj;c[Ob>>2]=c[(c[mb>>2]|0)+16>>2];c[Pb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2);c[Qb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2)+4;c[Rb>>2]=(c[yb>>2]|0)+8+1;c[Tb>>2]=0;c[Ub>>2]=1<>2]|0)+12>>2];c[Vb>>2]=(c[ub>>2]|0)-1;c[Wb>>2]=3+(c[sb>>2]|0);c[Xb>>2]=c[sb>>2];while(1){if((c[Xb>>2]|0)>>>0>=(c[Wb>>2]|0)>>>0){dj=340;break;}Zh=c[rb>>2]|0;if((c[Xb>>2]|0)==3)Cj=(c[Zh>>2]|0)-1|0;else Cj=c[Zh+(c[Xb>>2]<<2)>>2]|0;c[Yb>>2]=Cj;c[Zb>>2]=(c[yb>>2]|0)-(c[Yb>>2]|0);c[_b>>2]=0;do{if(((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Kb>>2]|0)|0)>>>0){Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm((c[ob>>2]|0)+(0-(c[Yb>>2]|0))|0,c[Ab>>2]|0)|0))break;Zh=Tj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[ob>>2]|0)+(c[Ab>>2]|0)+(0-(c[Yb>>2]|0))|0,c[pb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}else{c[$b>>2]=(c[Jb>>2]|0)+(c[Zb>>2]|0);if(!(c[qb>>2]|0))break;if(!((((c[Kb>>2]|0)-1-(c[Zb>>2]|0)|0)>>>0>=3?((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Ob>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm(c[$b>>2]|0,c[Ab>>2]|0)|0))break;Zh=Uj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[$b>>2]|0)+(c[Ab>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}}while(0);if((c[_b>>2]|0)>>>0>(c[Vb>>2]|0)>>>0?(c[Vb>>2]=c[_b>>2],c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[Xb>>2]|0)-(c[sb>>2]|0),c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[_b>>2],c[Tb>>2]=(c[Tb>>2]|0)+1,((c[_b>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[_b>>2]|0)|0)==(c[pb>>2]|0))|0):0){dj=338;break;}c[Xb>>2]=(c[Xb>>2]|0)+1;}h:do{if((dj|0)==338){dj=0;c[lb>>2]=c[Tb>>2];}else if((dj|0)==340){dj=0;do{if((c[vb>>2]|0)==3){if((c[Vb>>2]|0)>>>0>=(c[vb>>2]|0)>>>0)break;c[ac>>2]=nm(c[mb>>2]|0,c[ob>>2]|0)|0;if(!(((c[ac>>2]|0)>>>0>(c[Ob>>2]|0)>>>0?((c[yb>>2]|0)-(c[ac>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[qb>>2]|0){if((c[ac>>2]|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=345;break;}c[dc>>2]=(c[Jb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Uj(c[ob>>2]|0,c[dc>>2]|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;}else dj=345;}while(0);if((dj|0)==345){dj=0;c[cc>>2]=(c[xb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Tj(c[ob>>2]|0,c[cc>>2]|0,c[pb>>2]|0)|0;}if((c[bc>>2]|0)>>>0<(c[vb>>2]|0)>>>0)break;c[Vb>>2]=c[bc>>2];c[c[tb>>2]>>2]=(c[yb>>2]|0)-(c[ac>>2]|0)+2;c[(c[tb>>2]|0)+4>>2]=c[bc>>2];c[Tb>>2]=1;if(!(((c[bc>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[bc>>2]|0)|0)==(c[pb>>2]|0))|0))break;c[(c[mb>>2]|0)+24>>2]=(c[yb>>2]|0)+1;c[lb>>2]=1;break h;}}while(0);c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2]=c[yb>>2];while(1){Zh=c[Ub>>2]|0;c[Ub>>2]=Zh+-1;if(!Zh)break;if((c[Db>>2]|0)>>>0<=(c[Ob>>2]|0)>>>0)break;c[ec>>2]=(c[Eb>>2]|0)+((c[Db>>2]&c[Gb>>2])<<1<<2);c[fc>>2]=(c[Hb>>2]|0)>>>0<(c[Ib>>2]|0)>>>0?c[Hb>>2]|0:c[Ib>>2]|0;do{if(c[qb>>2]|0){if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=355;break;}c[gc>>2]=(c[Jb>>2]|0)+(c[Db>>2]|0);Zh=Uj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0<(c[Kb>>2]|0)>>>0)break;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);}else dj=355;}while(0);if((dj|0)==355){dj=0;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);Zh=Tj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;}if((c[fc>>2]|0)>>>0>(c[Vb>>2]|0)>>>0){if((c[fc>>2]|0)>>>0>((c[Rb>>2]|0)-(c[Db>>2]|0)|0)>>>0)c[Rb>>2]=(c[Db>>2]|0)+(c[fc>>2]|0);c[Vb>>2]=c[fc>>2];c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[yb>>2]|0)-(c[Db>>2]|0)+2;c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[fc>>2];c[Tb>>2]=(c[Tb>>2]|0)+1;if((c[fc>>2]|0)>>>0>4096)break;if(((c[ob>>2]|0)+(c[fc>>2]|0)|0)==(c[pb>>2]|0))break;}Zh=c[Db>>2]|0;if((d[(c[gc>>2]|0)+(c[fc>>2]|0)>>0]|0|0)<(d[(c[ob>>2]|0)+(c[fc>>2]|0)>>0]|0|0)){c[c[Pb>>2]>>2]=Zh;c[Hb>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=365;break;}c[Pb>>2]=(c[ec>>2]|0)+4;c[Db>>2]=c[(c[ec>>2]|0)+4>>2];}else{c[c[Qb>>2]>>2]=Zh;c[Ib>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=368;break;}c[Qb>>2]=c[ec>>2];c[Db>>2]=c[c[ec>>2]>>2];}}if((dj|0)==365){dj=0;c[Pb>>2]=Sb;}else if((dj|0)==368){dj=0;c[Qb>>2]=Sb;}c[c[Qb>>2]>>2]=0;c[c[Pb>>2]>>2]=0;c[(c[mb>>2]|0)+24>>2]=(c[Rb>>2]|0)-8;c[lb>>2]=c[Tb>>2];}}while(0);c[md>>2]=c[lb>>2];break d;}}}}while(0);c[Bi>>2]=c[md>>2];if(c[Bi>>2]|0){c[Di>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)+4>>2];if(((c[Di>>2]|0)>>>0>(c[$h>>2]|0)>>>0?1:((c[ei>>2]|0)+(c[Di>>2]|0)|0)>>>0>=4096)|0){dj=481;break b;}c[Ci>>2]=0;while(1){if((c[Ci>>2]|0)>>>0>=(c[Bi>>2]|0)>>>0)break c;c[Ei>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)>>2];pm(Fi,(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0,c[Ei>>2]|0,c[xi>>2]|0);c[Gi>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)+4>>2];if((c[Ci>>2]|0)>>>0>0)Dj=(c[(c[ci>>2]|0)+((c[Ci>>2]|0)-1<<3)+4>>2]|0)+1|0;else Dj=c[ai>>2]|0;c[Hi>>2]=Dj;c[Ii>>2]=c[Gi>>2];i:while(1){if((c[Ii>>2]|0)>>>0<(c[Hi>>2]|0)>>>0)break;c[Ji>>2]=(c[ei>>2]|0)+(c[Ii>>2]|0);Zh=c[Ai>>2]|0;Zi=c[Ii>>2]|0;Ph=c[Th>>2]|0;Qh=c[Rh>>2]|0;c[k>>2]=c[Ei>>2];c[m>>2]=Zi;c[n>>2]=Ph;c[o>>2]=Qh;c[q>>2]=qm((c[k>>2]|0)+1|0)|0;c[r>>2]=(c[m>>2]|0)-3;if(c[(c[n>>2]|0)+56>>2]|0){Qh=(qm((c[r>>2]|0)+1|0)|0)+16|0;c[j>>2]=Qh+(c[q>>2]|0);}else{Qh=(c[q>>2]|0)+(c[(c[n>>2]|0)+52>>2]|0)|0;c[p>>2]=Qh-(qm((c[(c[(c[n>>2]|0)+12>>2]|0)+(c[q>>2]<<2)>>2]|0)+1|0)|0);if((c[o>>2]|0)<2&(c[q>>2]|0)>>>0>=20)c[p>>2]=(c[p>>2]|0)+((c[q>>2]|0)-19<<1);c[s>>2]=rm(c[r>>2]|0)|0;Qh=(c[5840+(c[s>>2]<<2)>>2]|0)+(c[(c[n>>2]|0)+48>>2]|0)|0;Ph=Qh-(qm((c[(c[(c[n>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0)+1|0)|0)|0;c[p>>2]=(c[p>>2]|0)+Ph;c[j>>2]=c[p>>2];}c[Ki>>2]=Zh+(c[j>>2]|0);do{if((c[Ji>>2]|0)>>>0<=(c[fi>>2]|0)>>>0){if((c[Ki>>2]|0)<(c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]|0)){dj=496;break;}if(!(c[Rh>>2]|0))break i;}else dj=496;}while(0);if((dj|0)==496){dj=0;while(1){if((c[fi>>2]|0)>>>0>=(c[Ji>>2]|0)>>>0)break;c[(c[bi>>2]|0)+(((c[fi>>2]|0)+1|0)*28|0)>>2]=1073741824;c[fi>>2]=(c[fi>>2]|0)+1;}c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+8>>2]=c[Ii>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+4>>2]=c[Ei>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+12>>2]=c[yi>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]=c[Ki>>2];Zh=(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+16|0;c[Zh>>2]=c[Fi>>2];c[Zh+4>>2]=c[Fi+4>>2];c[Zh+8>>2]=c[Fi+8>>2];}c[Ii>>2]=(c[Ii>>2]|0)+-1;}c[Ci>>2]=(c[Ci>>2]|0)+1;}}}}while(0);c[ei>>2]=(c[ei>>2]|0)+1;}if((dj|0)==481){dj=0;c[gi>>2]=c[Di>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)>>2];c[fi>>2]=(c[ei>>2]|0)+1;break;}else if((dj|0)==504){dj=0;c[gi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+8>>2];c[hi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+4>>2];c[ei>>2]=(c[fi>>2]|0)-(c[gi>>2]|0);break;}}else{c[gi>>2]=c[mi>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)>>2];c[ei>>2]=0;c[fi>>2]=1;}}while(0);c[Li>>2]=c[gi>>2];c[Mi>>2]=c[hi>>2];c[Ni>>2]=c[ei>>2];while(1){c[Oi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2];c[Pi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2]=c[Li>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2]=c[Mi>>2];c[Li>>2]=c[Oi>>2];c[Mi>>2]=c[Pi>>2];if((c[Oi>>2]|0)>>>0>(c[Ni>>2]|0)>>>0)break;c[Ni>>2]=(c[Ni>>2]|0)-(c[Oi>>2]|0);}c[Qi>>2]=0;while(1){if((c[Qi>>2]|0)>>>0>=(c[fi>>2]|0)>>>0)break;c[Ri>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[Si>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+8>>2];c[Ti>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+4>>2];if((c[Si>>2]|0)==1){c[Vh>>2]=(c[Vh>>2]|0)+1;c[Qi>>2]=(c[Qi>>2]|0)+1;continue;}c[Qi>>2]=(c[Qi>>2]|0)+(c[Si>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+(c[Si>>2]|0);if((c[Ti>>2]|0)>>>0<3){c[Ui>>2]=(c[Ti>>2]|0)+((c[Ri>>2]|0)==0&1);if(c[Ui>>2]|0){Zh=c[Nh>>2]|0;if((c[Ui>>2]|0)==3)Ej=(c[Zh>>2]|0)-1|0;else Ej=c[Zh+(c[Ui>>2]<<2)>>2]|0;c[Vi>>2]=Ej;if((c[Ui>>2]|0)>>>0>=2)c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=c[Vi>>2];}}else{c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=(c[Ti>>2]|0)-2;}vm(c[Th>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,c[Si>>2]|0);wm(c[Mh>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,(c[Si>>2]|0)-3|0);c[Wh>>2]=c[Vh>>2];}xm(c[Th>>2]|0);}l=i;return(c[Xh>>2]|0)-(c[Wh>>2]|0)|0;}function cm(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=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,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=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,Lb=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,_b=0,$b=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,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,Zc=0,_c=0,$c=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,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,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,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0,Gh=0,Hh=0,Ih=0,Jh=0,Kh=0,Lh=0,Mh=0,Nh=0,Oh=0,Ph=0,Qh=0,Rh=0,Sh=0,Th=0,Uh=0,Vh=0,Wh=0,Xh=0,Yh=0,Zh=0,_h=0,$h=0,ai=0,bi=0,ci=0,di=0,ei=0,fi=0,gi=0,hi=0,ii=0,ji=0,ki=0,li=0,mi=0,ni=0,oi=0,pi=0,qi=0,ri=0,si=0,ti=0,ui=0,vi=0,wi=0,xi=0,yi=0,zi=0,Ai=0,Bi=0,Ci=0,Di=0,Ei=0,Fi=0,Gi=0,Hi=0,Ii=0,Ji=0,Ki=0,Li=0,Mi=0,Ni=0,Oi=0,Pi=0,Qi=0,Ri=0,Si=0,Ti=0,Ui=0,Vi=0,Wi=0,Xi=0,Yi=0,Zi=0,_i=0,$i=0,aj=0,bj=0,cj=0,dj=0,ej=0,fj=0,gj=0,hj=0,ij=0,jj=0,kj=0,lj=0,mj=0,nj=0,oj=0,pj=0,qj=0,rj=0,sj=0,tj=0,uj=0,vj=0,wj=0,xj=0,yj=0,zj=0,Aj=0,Bj=0,Cj=0,Dj=0,Ej=0;i=l;l=l+2144|0;j=i+2136|0;k=i+2132|0;m=i+2128|0;n=i+2124|0;o=i+2120|0;p=i+2116|0;q=i+2112|0;r=i+2108|0;s=i+2104|0;t=i+2100|0;u=i+2096|0;v=i+2092|0;w=i+2088|0;x=i+2084|0;y=i+2080|0;z=i+2076|0;A=i+2072|0;B=i+2068|0;C=i+2064|0;D=i+2060|0;E=i+2056|0;F=i+2052|0;G=i+2048|0;H=i+2044|0;I=i+2040|0;J=i+2036|0;K=i+2032|0;L=i+2028|0;M=i+2024|0;N=i+2020|0;O=i+2016|0;P=i+2012|0;Q=i+2008|0;R=i+2004|0;S=i+2e3|0;T=i+1996|0;U=i+1992|0;V=i+1988|0;W=i+1984|0;X=i+1980|0;Y=i+1976|0;Z=i+1972|0;_=i+1968|0;$=i+1964|0;aa=i+1960|0;ba=i+1956|0;ca=i+1952|0;da=i+1948|0;ea=i+1944|0;fa=i+1940|0;ga=i+1936|0;ha=i+1932|0;ia=i+1928|0;ja=i+1924|0;ka=i+1920|0;la=i+1916|0;ma=i+1912|0;na=i+1908|0;oa=i+1904|0;pa=i+1900|0;qa=i+1896|0;ra=i+1892|0;sa=i+1888|0;ta=i+1884|0;ua=i+1880|0;va=i+1876|0;wa=i+1872|0;xa=i+1868|0;ya=i+1864|0;za=i+1860|0;Aa=i+1856|0;Ba=i+1852|0;Ca=i+1848|0;Da=i+1844|0;Ea=i+1840|0;Fa=i+1836|0;Ga=i+1832|0;Ha=i+1828|0;Ia=i+1824|0;Ja=i+1820|0;Ka=i+1816|0;La=i+1812|0;Ma=i+1808|0;Na=i+1804|0;Oa=i+1800|0;Pa=i+1796|0;Qa=i+1792|0;Ra=i+1788|0;Sa=i+1784|0;Ta=i+1780|0;Ua=i+1776|0;Va=i+1772|0;Wa=i+1768|0;Xa=i+1764|0;Ya=i+1760|0;Za=i+1756|0;_a=i+1752|0;$a=i+1748|0;ab=i+1744|0;bb=i+1740|0;cb=i+1736|0;db=i+1732|0;eb=i+1728|0;fb=i+1724|0;gb=i+1720|0;hb=i+1716|0;ib=i+1712|0;jb=i+1708|0;kb=i+1704|0;lb=i+1700|0;mb=i+1696|0;nb=i+1692|0;ob=i+1688|0;pb=i+1684|0;qb=i+1680|0;rb=i+1676|0;sb=i+1672|0;tb=i+1668|0;ub=i+1664|0;vb=i+1660|0;wb=i+1656|0;xb=i+1652|0;yb=i+1648|0;zb=i+1644|0;Ab=i+1640|0;Bb=i+1636|0;Cb=i+1632|0;Db=i+1628|0;Eb=i+1624|0;Fb=i+1620|0;Gb=i+1616|0;Hb=i+1612|0;Ib=i+1608|0;Jb=i+1604|0;Kb=i+1600|0;Lb=i+1596|0;Mb=i+1592|0;Nb=i+1588|0;Ob=i+1584|0;Pb=i+1580|0;Qb=i+1576|0;Rb=i+1572|0;Sb=i+1568|0;Tb=i+1564|0;Ub=i+1560|0;Vb=i+1556|0;Wb=i+1552|0;Xb=i+1548|0;Yb=i+1544|0;Zb=i+1540|0;_b=i+1536|0;$b=i+1532|0;ac=i+1528|0;bc=i+1524|0;cc=i+1520|0;dc=i+1516|0;ec=i+1512|0;fc=i+1508|0;gc=i+1504|0;hc=i+1500|0;ic=i+1496|0;jc=i+1492|0;kc=i+1488|0;lc=i+1484|0;mc=i+1480|0;nc=i+1476|0;oc=i+1472|0;pc=i+1468|0;qc=i+1464|0;rc=i+1460|0;sc=i+1456|0;tc=i+1452|0;uc=i+1448|0;vc=i+1444|0;wc=i+1440|0;xc=i+1436|0;yc=i+1432|0;zc=i+1428|0;Ac=i+1424|0;Bc=i+1420|0;Cc=i+1416|0;Dc=i+1412|0;Ec=i+1408|0;Fc=i+1404|0;Gc=i+1400|0;Hc=i+1396|0;Ic=i+1392|0;Jc=i+1388|0;Kc=i+1384|0;Lc=i+1380|0;Mc=i+1376|0;Nc=i+1372|0;Oc=i+1368|0;Pc=i+1364|0;Qc=i+1360|0;Rc=i+1356|0;Sc=i+1352|0;Tc=i+1348|0;Uc=i+1344|0;Vc=i+1340|0;Wc=i+1336|0;Xc=i+1332|0;Yc=i+1328|0;Zc=i+1324|0;_c=i+1320|0;$c=i+1316|0;ad=i+1312|0;bd=i+1308|0;cd=i+1304|0;dd=i+1300|0;ed=i+1296|0;fd=i+1292|0;gd=i+1288|0;hd=i+1284|0;id=i+1280|0;jd=i+1276|0;kd=i+1272|0;ld=i+1268|0;md=i+1264|0;nd=i+1260|0;od=i+1256|0;pd=i+1252|0;qd=i+1248|0;rd=i+1244|0;sd=i+1240|0;td=i+1236|0;ud=i+1232|0;vd=i+1228|0;wd=i+1224|0;xd=i+1220|0;yd=i+1216|0;zd=i+1212|0;Ad=i+1208|0;Bd=i+1204|0;Cd=i+1200|0;Dd=i+1196|0;Ed=i+1192|0;Fd=i+1188|0;Gd=i+1184|0;Hd=i+1180|0;Id=i+1176|0;Jd=i+1172|0;Kd=i+1168|0;Ld=i+1164|0;Md=i+1160|0;Nd=i+1156|0;Od=i+1152|0;Pd=i+1148|0;Qd=i+1144|0;Rd=i+1140|0;Sd=i+1136|0;Td=i+1132|0;Ud=i+1128|0;Vd=i+1124|0;Wd=i+1120|0;Xd=i+1116|0;Yd=i+1112|0;Zd=i+1108|0;_d=i+1104|0;$d=i+1100|0;ae=i+1096|0;be=i+1092|0;ce=i+1088|0;de=i+1084|0;ee=i+1080|0;fe=i+1076|0;ge=i+1072|0;he=i+1068|0;ie=i+1064|0;je=i+1060|0;ke=i+1056|0;le=i+1052|0;me=i+1048|0;ne=i+1044|0;oe=i+1040|0;pe=i+1036|0;qe=i+1032|0;re=i+1028|0;se=i+1024|0;te=i+1020|0;ue=i+1016|0;ve=i+1012|0;we=i+1008|0;xe=i+1004|0;ye=i+1e3|0;ze=i+996|0;Ae=i+992|0;Be=i+988|0;Ce=i+984|0;De=i+980|0;Ee=i+976|0;Fe=i+972|0;Ge=i+968|0;He=i+964|0;Ie=i+960|0;Je=i+956|0;Ke=i+952|0;Le=i+948|0;Me=i+944|0;Ne=i+940|0;Oe=i+936|0;Pe=i+932|0;Qe=i+928|0;Re=i+924|0;Se=i+920|0;Te=i+916|0;Ue=i+912|0;Ve=i+908|0;We=i+904|0;Xe=i+900|0;Ye=i+896|0;Ze=i+892|0;_e=i+888|0;$e=i+884|0;af=i+880|0;bf=i+876|0;cf=i+872|0;df=i+868|0;ef=i+864|0;ff=i+860|0;gf=i+856|0;hf=i+852|0;jf=i+848|0;kf=i+844|0;lf=i+840|0;mf=i+836|0;nf=i+832|0;of=i+828|0;pf=i+824|0;qf=i+820|0;rf=i+816|0;sf=i+812|0;tf=i+808|0;uf=i+804|0;vf=i+800|0;wf=i+796|0;xf=i+792|0;yf=i+788|0;zf=i+784|0;Af=i+780|0;Bf=i+776|0;Cf=i+772|0;Df=i+768|0;Ef=i+764|0;Ff=i+760|0;Gf=i+756|0;Hf=i+752|0;If=i+748|0;Jf=i+744|0;Kf=i+740|0;Lf=i+736|0;Mf=i+732|0;Nf=i+728|0;Of=i+724|0;Pf=i+720|0;Qf=i+716|0;Rf=i+712|0;Sf=i+708|0;Tf=i+704|0;Uf=i+700|0;Vf=i+696|0;Wf=i+692|0;Xf=i+688|0;Yf=i+684|0;Zf=i+680|0;_f=i+676|0;$f=i+672|0;ag=i+668|0;bg=i+664|0;cg=i+660|0;dg=i+656|0;eg=i+652|0;fg=i+648|0;gg=i+644|0;hg=i+640|0;ig=i+636|0;jg=i+632|0;kg=i+628|0;lg=i+624|0;mg=i+620|0;ng=i+616|0;og=i+612|0;pg=i+608|0;qg=i+604|0;rg=i+600|0;sg=i+596|0;tg=i+592|0;ug=i+588|0;vg=i+584|0;wg=i+580|0;xg=i+576|0;yg=i+572|0;zg=i+568|0;Ag=i+564|0;Bg=i+560|0;Cg=i+556|0;Dg=i+552|0;Eg=i+548|0;Fg=i+544|0;Gg=i+540|0;Hg=i+536|0;Ig=i+532|0;Jg=i+528|0;Kg=i+524|0;Lg=i+520|0;Mg=i+516|0;Ng=i+512|0;Og=i+508|0;Pg=i+504|0;Qg=i+500|0;Rg=i+496|0;Sg=i+492|0;Tg=i+488|0;Ug=i+484|0;Vg=i+480|0;Wg=i+476|0;Xg=i+472|0;Yg=i+468|0;Zg=i+464|0;_g=i+460|0;$g=i+456|0;ah=i+452|0;bh=i+448|0;ch=i+444|0;dh=i+440|0;eh=i+436|0;fh=i+432|0;gh=i+428|0;hh=i+424|0;ih=i+420|0;jh=i+416|0;kh=i+412|0;lh=i+408|0;mh=i+404|0;nh=i+400|0;oh=i+396|0;ph=i+392|0;qh=i+388|0;rh=i+384|0;sh=i+380|0;th=i+376|0;uh=i+372|0;vh=i+368|0;wh=i+364|0;xh=i+360|0;yh=i+356|0;zh=i+352|0;Ah=i+348|0;Bh=i+344|0;Ch=i+340|0;Dh=i+336|0;Eh=i+332|0;Fh=i+328|0;Gh=i+324|0;Hh=i+320|0;Ih=i+316|0;Jh=i+312|0;Kh=i+308|0;Lh=i+304|0;Mh=i+300|0;Nh=i+296|0;Oh=i+292|0;Ph=i+288|0;Qh=i+284|0;Rh=i+280|0;Sh=i+276|0;Th=i+272|0;Uh=i+268|0;Vh=i+264|0;Wh=i+260|0;Xh=i+256|0;Yh=i+252|0;Zh=i+248|0;_h=i+244|0;$h=i+240|0;ai=i+236|0;bi=i+232|0;ci=i+228|0;di=i+216|0;ei=i+212|0;fi=i+208|0;gi=i+204|0;hi=i+200|0;ii=i+196|0;ji=i+192|0;ki=i+188|0;li=i+184|0;mi=i+180|0;ni=i+176|0;oi=i+172|0;pi=i+168|0;qi=i+164|0;ri=i+160|0;si=i+148|0;ti=i+144|0;ui=i+140|0;vi=i+136|0;wi=i+132|0;xi=i+128|0;yi=i+124|0;zi=i+120|0;Ai=i+116|0;Bi=i+112|0;Ci=i+108|0;Di=i+104|0;Ei=i+100|0;Fi=i+88|0;Gi=i+84|0;Hi=i+80|0;Ii=i+76|0;Ji=i+72|0;Ki=i+68|0;Li=i+64|0;Mi=i+60|0;Ni=i+56|0;Oi=i+52|0;Pi=i+48|0;Qi=i+44|0;Ri=i+40|0;Si=i+36|0;Ti=i+32|0;Ui=i+28|0;Vi=i+24|0;Wi=i+20|0;Xi=i+16|0;Yi=i+12|0;Zi=i+8|0;_i=i+4|0;$i=i;c[Wi>>2]=a;c[Xi>>2]=b;c[Yi>>2]=e;c[Zi>>2]=f;c[_i>>2]=g;c[$i>>2]=h;h=c[Xi>>2]|0;Xi=c[Yi>>2]|0;Yi=c[Zi>>2]|0;Zi=c[_i>>2]|0;_i=c[$i>>2]|0;c[Lh>>2]=c[Wi>>2];c[Mh>>2]=h;c[Nh>>2]=Xi;c[Oh>>2]=Yi;c[Ph>>2]=Zi;c[Qh>>2]=_i;c[Rh>>2]=2;c[Sh>>2]=0;c[Th>>2]=(c[Lh>>2]|0)+48;c[Uh>>2]=c[Ph>>2];c[Vh>>2]=c[Uh>>2];c[Wh>>2]=c[Uh>>2];c[Xh>>2]=(c[Uh>>2]|0)+(c[Qh>>2]|0);c[Yh>>2]=(c[Xh>>2]|0)+-8;c[Zh>>2]=c[(c[Lh>>2]|0)+4>>2];c[_h>>2]=(c[Zh>>2]|0)+(c[(c[Lh>>2]|0)+12>>2]|0);if((c[(c[Oh>>2]|0)+20>>2]|0)>>>0<4095)aj=c[(c[Oh>>2]|0)+20>>2]|0;else aj=4095;c[$h>>2]=aj;c[ai>>2]=(c[(c[Oh>>2]|0)+16>>2]|0)==3?3:4;c[bi>>2]=c[(c[Th>>2]|0)+20>>2];c[ci>>2]=c[(c[Th>>2]|0)+16>>2];c[(c[Lh>>2]|0)+28>>2]=c[(c[Lh>>2]|0)+24>>2];lm(c[Th>>2]|0,c[Ph>>2]|0,c[Qh>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+((c[Vh>>2]|0)==(c[_h>>2]|0)&1);c[di>>2]=0;c[di+4>>2]=0;c[di+8>>2]=0;while(1){if((c[Vh>>2]|0)>>>0>=(c[Yh>>2]|0)>>>0)break;c[fi>>2]=0;c[ii>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[ji>>2]=((c[ii>>2]|0)!=0^1)&1;_h=c[Oh>>2]|0;Qh=c[Vh>>2]|0;Ph=c[Xh>>2]|0;aj=c[Sh>>2]|0;Zh=c[Nh>>2]|0;Uh=c[ji>>2]|0;_i=c[ci>>2]|0;Zi=c[ai>>2]|0;c[Bh>>2]=c[Lh>>2];c[Ch>>2]=_h;c[Dh>>2]=Qh;c[Eh>>2]=Ph;c[Fh>>2]=aj;c[Gh>>2]=Zh;c[Hh>>2]=Uh;c[Ih>>2]=_i;c[Jh>>2]=Zi;c[Kh>>2]=c[(c[Ch>>2]|0)+16>>2];a:do{if((c[Dh>>2]|0)>>>0<((c[(c[Bh>>2]|0)+4>>2]|0)+(c[(c[Bh>>2]|0)+24>>2]|0)|0)>>>0)c[Ah>>2]=0;else{Zi=c[Ch>>2]|0;_i=c[Dh>>2]|0;Uh=c[Eh>>2]|0;Zh=c[Kh>>2]|0;aj=c[Fh>>2]|0;c[rh>>2]=c[Bh>>2];c[sh>>2]=Zi;c[th>>2]=_i;c[uh>>2]=Uh;c[vh>>2]=Zh;c[wh>>2]=aj;c[xh>>2]=c[(c[rh>>2]|0)+4>>2];c[yh>>2]=(c[th>>2]|0)-(c[xh>>2]|0);c[zh>>2]=c[(c[rh>>2]|0)+24>>2];while(1){if((c[zh>>2]|0)>>>0>=(c[yh>>2]|0)>>>0)break;aj=Rj(c[rh>>2]|0,c[sh>>2]|0,(c[xh>>2]|0)+(c[zh>>2]|0)|0,c[uh>>2]|0,c[vh>>2]|0,c[wh>>2]|0)|0;c[zh>>2]=(c[zh>>2]|0)+aj;}c[(c[rh>>2]|0)+24>>2]=c[yh>>2];switch(c[Kh>>2]|0){case 3:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[wg>>2]=c[Bh>>2];c[xg>>2]=aj;c[yg>>2]=Zh;c[zg>>2]=Uh;c[Ag>>2]=_i;c[Bg>>2]=Zi;c[Cg>>2]=Ph;c[Dg>>2]=Qh;c[Eg>>2]=_h;c[Fg>>2]=3;if((c[(c[xg>>2]|0)+20>>2]|0)>>>0<4095)bj=c[(c[xg>>2]|0)+20>>2]|0;else bj=4095;c[Gg>>2]=bj;c[Hg>>2]=c[(c[wg>>2]|0)+4>>2];c[Ig>>2]=(c[yg>>2]|0)-(c[Hg>>2]|0);c[Jg>>2]=c[(c[xg>>2]|0)+8>>2];c[Kg>>2]=(c[Fg>>2]|0)==3?3:4;c[Lg>>2]=c[(c[wg>>2]|0)+36>>2];c[Mg>>2]=Sj(c[yg>>2]|0,c[Jg>>2]|0,c[Fg>>2]|0)|0;c[Ng>>2]=c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2];c[Og>>2]=c[(c[wg>>2]|0)+44>>2];c[Pg>>2]=(c[(c[xg>>2]|0)+4>>2]|0)-1;c[Qg>>2]=(1<>2])-1;c[Rg>>2]=0;c[Sg>>2]=0;c[Tg>>2]=c[(c[wg>>2]|0)+8>>2];c[Ug>>2]=c[(c[wg>>2]|0)+12>>2];c[Vg>>2]=(c[Tg>>2]|0)+(c[Ug>>2]|0);c[Wg>>2]=(c[Hg>>2]|0)+(c[Ug>>2]|0);if((c[Qg>>2]|0)>>>0>=(c[Ig>>2]|0)>>>0)cj=0;else cj=(c[Ig>>2]|0)-(c[Qg>>2]|0)|0;c[Xg>>2]=cj;c[Yg>>2]=c[(c[wg>>2]|0)+16>>2];c[Zg>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2);c[_g>>2]=(c[Og>>2]|0)+((c[Ig>>2]&c[Qg>>2])<<1<<2)+4;c[$g>>2]=(c[Ig>>2]|0)+8+1;c[bh>>2]=0;c[ch>>2]=1<>2]|0)+12>>2];c[dh>>2]=(c[Eg>>2]|0)-1;c[eh>>2]=3+(c[Cg>>2]|0);c[fh>>2]=c[Cg>>2];while(1){if((c[fh>>2]|0)>>>0>=(c[eh>>2]|0)>>>0){dj=31;break;}_h=c[Bg>>2]|0;if((c[fh>>2]|0)==3)ej=(c[_h>>2]|0)-1|0;else ej=c[_h+(c[fh>>2]<<2)>>2]|0;c[gh>>2]=ej;c[hh>>2]=(c[Ig>>2]|0)-(c[gh>>2]|0);c[ih>>2]=0;if(((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Ug>>2]|0)|0)>>>0){_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0;if((_h|0)==(mm((c[yg>>2]|0)+(0-(c[gh>>2]|0))|0,c[Kg>>2]|0)|0)){_h=Tj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[yg>>2]|0)+(c[Kg>>2]|0)+(0-(c[gh>>2]|0))|0,c[zg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}else{c[jh>>2]=(c[Tg>>2]|0)+(c[hh>>2]|0);if((c[Ag>>2]|0?(((c[Ug>>2]|0)-1-(c[hh>>2]|0)|0)>>>0>=3?((c[gh>>2]|0)-1|0)>>>0<((c[Ig>>2]|0)-(c[Yg>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[yg>>2]|0,c[Kg>>2]|0)|0,(_h|0)==(mm(c[jh>>2]|0,c[Kg>>2]|0)|0)):0){_h=Uj((c[yg>>2]|0)+(c[Kg>>2]|0)|0,(c[jh>>2]|0)+(c[Kg>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ih>>2]=_h+(c[Kg>>2]|0);}}if((c[ih>>2]|0)>>>0>(c[dh>>2]|0)>>>0?(c[dh>>2]=c[ih>>2],c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[fh>>2]|0)-(c[Cg>>2]|0),c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ih>>2],c[bh>>2]=(c[bh>>2]|0)+1,((c[ih>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[ih>>2]|0)|0)==(c[zg>>2]|0))|0):0){dj=29;break;}c[fh>>2]=(c[fh>>2]|0)+1;}do{if((dj|0)==29){dj=0;c[vg>>2]=c[bh>>2];}else if((dj|0)==31){dj=0;if(((c[Fg>>2]|0)==3?(c[dh>>2]|0)>>>0<(c[Fg>>2]|0)>>>0:0)?(c[kh>>2]=nm(c[wg>>2]|0,c[yg>>2]|0)|0,((c[kh>>2]|0)>>>0>(c[Yg>>2]|0)>>>0?((c[Ig>>2]|0)-(c[kh>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ag>>2]|0?(c[kh>>2]|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[nh>>2]=(c[Tg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Uj(c[yg>>2]|0,c[nh>>2]|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;}else{c[mh>>2]=(c[Hg>>2]|0)+(c[kh>>2]|0);c[lh>>2]=Tj(c[yg>>2]|0,c[mh>>2]|0,c[zg>>2]|0)|0;}if((c[lh>>2]|0)>>>0>=(c[Fg>>2]|0)>>>0?(c[dh>>2]=c[lh>>2],c[c[Dg>>2]>>2]=(c[Ig>>2]|0)-(c[kh>>2]|0)+2,c[(c[Dg>>2]|0)+4>>2]=c[lh>>2],c[bh>>2]=1,((c[lh>>2]|0)>>>0>(c[Gg>>2]|0)>>>0?1:((c[yg>>2]|0)+(c[lh>>2]|0)|0)==(c[zg>>2]|0))|0):0){c[(c[wg>>2]|0)+24>>2]=(c[Ig>>2]|0)+1;c[vg>>2]=1;break;}}c[(c[Lg>>2]|0)+(c[Mg>>2]<<2)>>2]=c[Ig>>2];while(1){_h=c[ch>>2]|0;c[ch>>2]=_h+-1;if(!_h)break;if((c[Ng>>2]|0)>>>0<=(c[Yg>>2]|0)>>>0)break;c[oh>>2]=(c[Og>>2]|0)+((c[Ng>>2]&c[Qg>>2])<<1<<2);c[ph>>2]=(c[Rg>>2]|0)>>>0<(c[Sg>>2]|0)>>>0?c[Rg>>2]|0:c[Sg>>2]|0;if(c[Ag>>2]|0?((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0<(c[Ug>>2]|0)>>>0:0){c[qh>>2]=(c[Tg>>2]|0)+(c[Ng>>2]|0);_h=Uj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0,c[Vg>>2]|0,c[Wg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;if(((c[Ng>>2]|0)+(c[ph>>2]|0)|0)>>>0>=(c[Ug>>2]|0)>>>0)c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);}else{c[qh>>2]=(c[Hg>>2]|0)+(c[Ng>>2]|0);_h=Tj((c[yg>>2]|0)+(c[ph>>2]|0)|0,(c[qh>>2]|0)+(c[ph>>2]|0)|0,c[zg>>2]|0)|0;c[ph>>2]=(c[ph>>2]|0)+_h;}if((c[ph>>2]|0)>>>0>(c[dh>>2]|0)>>>0){if((c[ph>>2]|0)>>>0>((c[$g>>2]|0)-(c[Ng>>2]|0)|0)>>>0)c[$g>>2]=(c[Ng>>2]|0)+(c[ph>>2]|0);c[dh>>2]=c[ph>>2];c[(c[Dg>>2]|0)+(c[bh>>2]<<3)>>2]=(c[Ig>>2]|0)-(c[Ng>>2]|0)+2;c[(c[Dg>>2]|0)+(c[bh>>2]<<3)+4>>2]=c[ph>>2];c[bh>>2]=(c[bh>>2]|0)+1;if((c[ph>>2]|0)>>>0>4096)break;if(((c[yg>>2]|0)+(c[ph>>2]|0)|0)==(c[zg>>2]|0))break;}_h=c[Ng>>2]|0;if((d[(c[qh>>2]|0)+(c[ph>>2]|0)>>0]|0|0)<(d[(c[yg>>2]|0)+(c[ph>>2]|0)>>0]|0|0)){c[c[Zg>>2]>>2]=_h;c[Rg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=56;break;}c[Zg>>2]=(c[oh>>2]|0)+4;c[Ng>>2]=c[(c[oh>>2]|0)+4>>2];}else{c[c[_g>>2]>>2]=_h;c[Sg>>2]=c[ph>>2];if((c[Ng>>2]|0)>>>0<=(c[Xg>>2]|0)>>>0){dj=59;break;}c[_g>>2]=c[oh>>2];c[Ng>>2]=c[c[oh>>2]>>2];}}if((dj|0)==56){dj=0;c[Zg>>2]=ah;}else if((dj|0)==59){dj=0;c[_g>>2]=ah;}c[c[_g>>2]>>2]=0;c[c[Zg>>2]>>2]=0;c[(c[wg>>2]|0)+24>>2]=(c[$g>>2]|0)-8;c[vg>>2]=c[bh>>2];}}while(0);c[Ah>>2]=c[vg>>2];break a;break;}case 7:case 6:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Hd>>2]=c[Bh>>2];c[Id>>2]=_h;c[Jd>>2]=Qh;c[Kd>>2]=Ph;c[Ld>>2]=Zi;c[Md>>2]=_i;c[Nd>>2]=Uh;c[Od>>2]=Zh;c[Pd>>2]=aj;c[Qd>>2]=6;if((c[(c[Id>>2]|0)+20>>2]|0)>>>0<4095)fj=c[(c[Id>>2]|0)+20>>2]|0;else fj=4095;c[Rd>>2]=fj;c[Sd>>2]=c[(c[Hd>>2]|0)+4>>2];c[Td>>2]=(c[Jd>>2]|0)-(c[Sd>>2]|0);c[Ud>>2]=c[(c[Id>>2]|0)+8>>2];c[Vd>>2]=(c[Qd>>2]|0)==3?3:4;c[Wd>>2]=c[(c[Hd>>2]|0)+36>>2];c[Xd>>2]=Sj(c[Jd>>2]|0,c[Ud>>2]|0,c[Qd>>2]|0)|0;c[Yd>>2]=c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2];c[Zd>>2]=c[(c[Hd>>2]|0)+44>>2];c[_d>>2]=(c[(c[Id>>2]|0)+4>>2]|0)-1;c[$d>>2]=(1<>2])-1;c[ae>>2]=0;c[be>>2]=0;c[ce>>2]=c[(c[Hd>>2]|0)+8>>2];c[de>>2]=c[(c[Hd>>2]|0)+12>>2];c[ee>>2]=(c[ce>>2]|0)+(c[de>>2]|0);c[fe>>2]=(c[Sd>>2]|0)+(c[de>>2]|0);if((c[$d>>2]|0)>>>0>=(c[Td>>2]|0)>>>0)gj=0;else gj=(c[Td>>2]|0)-(c[$d>>2]|0)|0;c[ge>>2]=gj;c[he>>2]=c[(c[Hd>>2]|0)+16>>2];c[ie>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2);c[je>>2]=(c[Zd>>2]|0)+((c[Td>>2]&c[$d>>2])<<1<<2)+4;c[ke>>2]=(c[Td>>2]|0)+8+1;c[me>>2]=0;c[ne>>2]=1<>2]|0)+12>>2];c[oe>>2]=(c[Pd>>2]|0)-1;c[pe>>2]=3+(c[Nd>>2]|0);c[qe>>2]=c[Nd>>2];while(1){if((c[qe>>2]|0)>>>0>=(c[pe>>2]|0)>>>0){dj=190;break;}aj=c[Md>>2]|0;if((c[qe>>2]|0)==3)hj=(c[aj>>2]|0)-1|0;else hj=c[aj+(c[qe>>2]<<2)>>2]|0;c[re>>2]=hj;c[se>>2]=(c[Td>>2]|0)-(c[re>>2]|0);c[te>>2]=0;if(((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[de>>2]|0)|0)>>>0){aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0;if((aj|0)==(mm((c[Jd>>2]|0)+(0-(c[re>>2]|0))|0,c[Vd>>2]|0)|0)){aj=Tj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[Jd>>2]|0)+(c[Vd>>2]|0)+(0-(c[re>>2]|0))|0,c[Kd>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}else{c[ue>>2]=(c[ce>>2]|0)+(c[se>>2]|0);if((c[Ld>>2]|0?(((c[de>>2]|0)-1-(c[se>>2]|0)|0)>>>0>=3?((c[re>>2]|0)-1|0)>>>0<((c[Td>>2]|0)-(c[he>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Jd>>2]|0,c[Vd>>2]|0)|0,(aj|0)==(mm(c[ue>>2]|0,c[Vd>>2]|0)|0)):0){aj=Uj((c[Jd>>2]|0)+(c[Vd>>2]|0)|0,(c[ue>>2]|0)+(c[Vd>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[te>>2]=aj+(c[Vd>>2]|0);}}if((c[te>>2]|0)>>>0>(c[oe>>2]|0)>>>0?(c[oe>>2]=c[te>>2],c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[qe>>2]|0)-(c[Nd>>2]|0),c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[te>>2],c[me>>2]=(c[me>>2]|0)+1,((c[te>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[te>>2]|0)|0)==(c[Kd>>2]|0))|0):0){dj=188;break;}c[qe>>2]=(c[qe>>2]|0)+1;}do{if((dj|0)==188){dj=0;c[Gd>>2]=c[me>>2];}else if((dj|0)==190){dj=0;if(((c[Qd>>2]|0)==3?(c[oe>>2]|0)>>>0<(c[Qd>>2]|0)>>>0:0)?(c[ve>>2]=nm(c[Hd>>2]|0,c[Jd>>2]|0)|0,((c[ve>>2]|0)>>>0>(c[he>>2]|0)>>>0?((c[Td>>2]|0)-(c[ve>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ld>>2]|0?(c[ve>>2]|0)>>>0<(c[de>>2]|0)>>>0:0){c[ye>>2]=(c[ce>>2]|0)+(c[ve>>2]|0);c[we>>2]=Uj(c[Jd>>2]|0,c[ye>>2]|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;}else{c[xe>>2]=(c[Sd>>2]|0)+(c[ve>>2]|0);c[we>>2]=Tj(c[Jd>>2]|0,c[xe>>2]|0,c[Kd>>2]|0)|0;}if((c[we>>2]|0)>>>0>=(c[Qd>>2]|0)>>>0?(c[oe>>2]=c[we>>2],c[c[Od>>2]>>2]=(c[Td>>2]|0)-(c[ve>>2]|0)+2,c[(c[Od>>2]|0)+4>>2]=c[we>>2],c[me>>2]=1,((c[we>>2]|0)>>>0>(c[Rd>>2]|0)>>>0?1:((c[Jd>>2]|0)+(c[we>>2]|0)|0)==(c[Kd>>2]|0))|0):0){c[(c[Hd>>2]|0)+24>>2]=(c[Td>>2]|0)+1;c[Gd>>2]=1;break;}}c[(c[Wd>>2]|0)+(c[Xd>>2]<<2)>>2]=c[Td>>2];while(1){aj=c[ne>>2]|0;c[ne>>2]=aj+-1;if(!aj)break;if((c[Yd>>2]|0)>>>0<=(c[he>>2]|0)>>>0)break;c[ze>>2]=(c[Zd>>2]|0)+((c[Yd>>2]&c[$d>>2])<<1<<2);c[Ae>>2]=(c[ae>>2]|0)>>>0<(c[be>>2]|0)>>>0?c[ae>>2]|0:c[be>>2]|0;if(c[Ld>>2]|0?((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0<(c[de>>2]|0)>>>0:0){c[Be>>2]=(c[ce>>2]|0)+(c[Yd>>2]|0);aj=Uj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0,c[ee>>2]|0,c[fe>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;if(((c[Yd>>2]|0)+(c[Ae>>2]|0)|0)>>>0>=(c[de>>2]|0)>>>0)c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);}else{c[Be>>2]=(c[Sd>>2]|0)+(c[Yd>>2]|0);aj=Tj((c[Jd>>2]|0)+(c[Ae>>2]|0)|0,(c[Be>>2]|0)+(c[Ae>>2]|0)|0,c[Kd>>2]|0)|0;c[Ae>>2]=(c[Ae>>2]|0)+aj;}if((c[Ae>>2]|0)>>>0>(c[oe>>2]|0)>>>0){if((c[Ae>>2]|0)>>>0>((c[ke>>2]|0)-(c[Yd>>2]|0)|0)>>>0)c[ke>>2]=(c[Yd>>2]|0)+(c[Ae>>2]|0);c[oe>>2]=c[Ae>>2];c[(c[Od>>2]|0)+(c[me>>2]<<3)>>2]=(c[Td>>2]|0)-(c[Yd>>2]|0)+2;c[(c[Od>>2]|0)+(c[me>>2]<<3)+4>>2]=c[Ae>>2];c[me>>2]=(c[me>>2]|0)+1;if((c[Ae>>2]|0)>>>0>4096)break;if(((c[Jd>>2]|0)+(c[Ae>>2]|0)|0)==(c[Kd>>2]|0))break;}aj=c[Yd>>2]|0;if((d[(c[Be>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)<(d[(c[Jd>>2]|0)+(c[Ae>>2]|0)>>0]|0|0)){c[c[ie>>2]>>2]=aj;c[ae>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=215;break;}c[ie>>2]=(c[ze>>2]|0)+4;c[Yd>>2]=c[(c[ze>>2]|0)+4>>2];}else{c[c[je>>2]>>2]=aj;c[be>>2]=c[Ae>>2];if((c[Yd>>2]|0)>>>0<=(c[ge>>2]|0)>>>0){dj=218;break;}c[je>>2]=c[ze>>2];c[Yd>>2]=c[c[ze>>2]>>2];}}if((dj|0)==215){dj=0;c[ie>>2]=le;}else if((dj|0)==218){dj=0;c[je>>2]=le;}c[c[je>>2]>>2]=0;c[c[ie>>2]>>2]=0;c[(c[Hd>>2]|0)+24>>2]=(c[ke>>2]|0)-8;c[Gd>>2]=c[me>>2];}}while(0);c[Ah>>2]=c[Gd>>2];break a;break;}case 5:{aj=c[Ch>>2]|0;Zh=c[Dh>>2]|0;Uh=c[Eh>>2]|0;_i=c[Fh>>2]|0;Zi=c[Gh>>2]|0;Ph=c[Hh>>2]|0;Qh=c[Ih>>2]|0;_h=c[Jh>>2]|0;c[De>>2]=c[Bh>>2];c[Ee>>2]=aj;c[Fe>>2]=Zh;c[Ge>>2]=Uh;c[He>>2]=_i;c[Ie>>2]=Zi;c[Je>>2]=Ph;c[Ke>>2]=Qh;c[Le>>2]=_h;c[Me>>2]=5;if((c[(c[Ee>>2]|0)+20>>2]|0)>>>0<4095)ij=c[(c[Ee>>2]|0)+20>>2]|0;else ij=4095;c[Ne>>2]=ij;c[Oe>>2]=c[(c[De>>2]|0)+4>>2];c[Pe>>2]=(c[Fe>>2]|0)-(c[Oe>>2]|0);c[Qe>>2]=c[(c[Ee>>2]|0)+8>>2];c[Re>>2]=(c[Me>>2]|0)==3?3:4;c[Se>>2]=c[(c[De>>2]|0)+36>>2];c[Te>>2]=Sj(c[Fe>>2]|0,c[Qe>>2]|0,c[Me>>2]|0)|0;c[Ue>>2]=c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2];c[Ve>>2]=c[(c[De>>2]|0)+44>>2];c[We>>2]=(c[(c[Ee>>2]|0)+4>>2]|0)-1;c[Xe>>2]=(1<>2])-1;c[Ye>>2]=0;c[Ze>>2]=0;c[_e>>2]=c[(c[De>>2]|0)+8>>2];c[$e>>2]=c[(c[De>>2]|0)+12>>2];c[af>>2]=(c[_e>>2]|0)+(c[$e>>2]|0);c[bf>>2]=(c[Oe>>2]|0)+(c[$e>>2]|0);if((c[Xe>>2]|0)>>>0>=(c[Pe>>2]|0)>>>0)jj=0;else jj=(c[Pe>>2]|0)-(c[Xe>>2]|0)|0;c[cf>>2]=jj;c[df>>2]=c[(c[De>>2]|0)+16>>2];c[ef>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2);c[ff>>2]=(c[Ve>>2]|0)+((c[Pe>>2]&c[Xe>>2])<<1<<2)+4;c[gf>>2]=(c[Pe>>2]|0)+8+1;c[jf>>2]=0;c[kf>>2]=1<>2]|0)+12>>2];c[lf>>2]=(c[Le>>2]|0)-1;c[mf>>2]=3+(c[Je>>2]|0);c[nf>>2]=c[Je>>2];while(1){if((c[nf>>2]|0)>>>0>=(c[mf>>2]|0)>>>0){dj=137;break;}_h=c[Ie>>2]|0;if((c[nf>>2]|0)==3)kj=(c[_h>>2]|0)-1|0;else kj=c[_h+(c[nf>>2]<<2)>>2]|0;c[of>>2]=kj;c[pf>>2]=(c[Pe>>2]|0)-(c[of>>2]|0);c[qf>>2]=0;if(((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[$e>>2]|0)|0)>>>0){_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0;if((_h|0)==(mm((c[Fe>>2]|0)+(0-(c[of>>2]|0))|0,c[Re>>2]|0)|0)){_h=Tj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[Fe>>2]|0)+(c[Re>>2]|0)+(0-(c[of>>2]|0))|0,c[Ge>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}else{c[rf>>2]=(c[_e>>2]|0)+(c[pf>>2]|0);if((c[He>>2]|0?(((c[$e>>2]|0)-1-(c[pf>>2]|0)|0)>>>0>=3?((c[of>>2]|0)-1|0)>>>0<((c[Pe>>2]|0)-(c[df>>2]|0)|0)>>>0:0)|0:0)?(_h=mm(c[Fe>>2]|0,c[Re>>2]|0)|0,(_h|0)==(mm(c[rf>>2]|0,c[Re>>2]|0)|0)):0){_h=Uj((c[Fe>>2]|0)+(c[Re>>2]|0)|0,(c[rf>>2]|0)+(c[Re>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[qf>>2]=_h+(c[Re>>2]|0);}}if((c[qf>>2]|0)>>>0>(c[lf>>2]|0)>>>0?(c[lf>>2]=c[qf>>2],c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[nf>>2]|0)-(c[Je>>2]|0),c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[qf>>2],c[jf>>2]=(c[jf>>2]|0)+1,((c[qf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[qf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){dj=135;break;}c[nf>>2]=(c[nf>>2]|0)+1;}do{if((dj|0)==135){dj=0;c[Ce>>2]=c[jf>>2];}else if((dj|0)==137){dj=0;if(((c[Me>>2]|0)==3?(c[lf>>2]|0)>>>0<(c[Me>>2]|0)>>>0:0)?(c[sf>>2]=nm(c[De>>2]|0,c[Fe>>2]|0)|0,((c[sf>>2]|0)>>>0>(c[df>>2]|0)>>>0?((c[Pe>>2]|0)-(c[sf>>2]|0)|0)>>>0<262144:0)|0):0){if(c[He>>2]|0?(c[sf>>2]|0)>>>0<(c[$e>>2]|0)>>>0:0){c[vf>>2]=(c[_e>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Uj(c[Fe>>2]|0,c[vf>>2]|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;}else{c[uf>>2]=(c[Oe>>2]|0)+(c[sf>>2]|0);c[tf>>2]=Tj(c[Fe>>2]|0,c[uf>>2]|0,c[Ge>>2]|0)|0;}if((c[tf>>2]|0)>>>0>=(c[Me>>2]|0)>>>0?(c[lf>>2]=c[tf>>2],c[c[Ke>>2]>>2]=(c[Pe>>2]|0)-(c[sf>>2]|0)+2,c[(c[Ke>>2]|0)+4>>2]=c[tf>>2],c[jf>>2]=1,((c[tf>>2]|0)>>>0>(c[Ne>>2]|0)>>>0?1:((c[Fe>>2]|0)+(c[tf>>2]|0)|0)==(c[Ge>>2]|0))|0):0){c[(c[De>>2]|0)+24>>2]=(c[Pe>>2]|0)+1;c[Ce>>2]=1;break;}}c[(c[Se>>2]|0)+(c[Te>>2]<<2)>>2]=c[Pe>>2];while(1){_h=c[kf>>2]|0;c[kf>>2]=_h+-1;if(!_h)break;if((c[Ue>>2]|0)>>>0<=(c[df>>2]|0)>>>0)break;c[wf>>2]=(c[Ve>>2]|0)+((c[Ue>>2]&c[Xe>>2])<<1<<2);c[xf>>2]=(c[Ye>>2]|0)>>>0<(c[Ze>>2]|0)>>>0?c[Ye>>2]|0:c[Ze>>2]|0;if(c[He>>2]|0?((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0<(c[$e>>2]|0)>>>0:0){c[yf>>2]=(c[_e>>2]|0)+(c[Ue>>2]|0);_h=Uj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0,c[af>>2]|0,c[bf>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;if(((c[Ue>>2]|0)+(c[xf>>2]|0)|0)>>>0>=(c[$e>>2]|0)>>>0)c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);}else{c[yf>>2]=(c[Oe>>2]|0)+(c[Ue>>2]|0);_h=Tj((c[Fe>>2]|0)+(c[xf>>2]|0)|0,(c[yf>>2]|0)+(c[xf>>2]|0)|0,c[Ge>>2]|0)|0;c[xf>>2]=(c[xf>>2]|0)+_h;}if((c[xf>>2]|0)>>>0>(c[lf>>2]|0)>>>0){if((c[xf>>2]|0)>>>0>((c[gf>>2]|0)-(c[Ue>>2]|0)|0)>>>0)c[gf>>2]=(c[Ue>>2]|0)+(c[xf>>2]|0);c[lf>>2]=c[xf>>2];c[(c[Ke>>2]|0)+(c[jf>>2]<<3)>>2]=(c[Pe>>2]|0)-(c[Ue>>2]|0)+2;c[(c[Ke>>2]|0)+(c[jf>>2]<<3)+4>>2]=c[xf>>2];c[jf>>2]=(c[jf>>2]|0)+1;if((c[xf>>2]|0)>>>0>4096)break;if(((c[Fe>>2]|0)+(c[xf>>2]|0)|0)==(c[Ge>>2]|0))break;}_h=c[Ue>>2]|0;if((d[(c[yf>>2]|0)+(c[xf>>2]|0)>>0]|0|0)<(d[(c[Fe>>2]|0)+(c[xf>>2]|0)>>0]|0|0)){c[c[ef>>2]>>2]=_h;c[Ye>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=162;break;}c[ef>>2]=(c[wf>>2]|0)+4;c[Ue>>2]=c[(c[wf>>2]|0)+4>>2];}else{c[c[ff>>2]>>2]=_h;c[Ze>>2]=c[xf>>2];if((c[Ue>>2]|0)>>>0<=(c[cf>>2]|0)>>>0){dj=165;break;}c[ff>>2]=c[wf>>2];c[Ue>>2]=c[c[wf>>2]>>2];}}if((dj|0)==162){dj=0;c[ef>>2]=hf;}else if((dj|0)==165){dj=0;c[ff>>2]=hf;}c[c[ff>>2]>>2]=0;c[c[ef>>2]>>2]=0;c[(c[De>>2]|0)+24>>2]=(c[gf>>2]|0)-8;c[Ce>>2]=c[jf>>2];}}while(0);c[Ah>>2]=c[Ce>>2];break a;break;}default:{_h=c[Ch>>2]|0;Qh=c[Dh>>2]|0;Ph=c[Eh>>2]|0;Zi=c[Fh>>2]|0;_i=c[Gh>>2]|0;Uh=c[Hh>>2]|0;Zh=c[Ih>>2]|0;aj=c[Jh>>2]|0;c[Af>>2]=c[Bh>>2];c[Bf>>2]=_h;c[Cf>>2]=Qh;c[Df>>2]=Ph;c[Ef>>2]=Zi;c[Ff>>2]=_i;c[Gf>>2]=Uh;c[Hf>>2]=Zh;c[If>>2]=aj;c[Jf>>2]=4;if((c[(c[Bf>>2]|0)+20>>2]|0)>>>0<4095)lj=c[(c[Bf>>2]|0)+20>>2]|0;else lj=4095;c[Kf>>2]=lj;c[Lf>>2]=c[(c[Af>>2]|0)+4>>2];c[Mf>>2]=(c[Cf>>2]|0)-(c[Lf>>2]|0);c[Nf>>2]=c[(c[Bf>>2]|0)+8>>2];c[Of>>2]=(c[Jf>>2]|0)==3?3:4;c[Pf>>2]=c[(c[Af>>2]|0)+36>>2];c[Qf>>2]=Sj(c[Cf>>2]|0,c[Nf>>2]|0,c[Jf>>2]|0)|0;c[Rf>>2]=c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2];c[Sf>>2]=c[(c[Af>>2]|0)+44>>2];c[Tf>>2]=(c[(c[Bf>>2]|0)+4>>2]|0)-1;c[Uf>>2]=(1<>2])-1;c[Vf>>2]=0;c[Wf>>2]=0;c[Xf>>2]=c[(c[Af>>2]|0)+8>>2];c[Yf>>2]=c[(c[Af>>2]|0)+12>>2];c[Zf>>2]=(c[Xf>>2]|0)+(c[Yf>>2]|0);c[_f>>2]=(c[Lf>>2]|0)+(c[Yf>>2]|0);if((c[Uf>>2]|0)>>>0>=(c[Mf>>2]|0)>>>0)mj=0;else mj=(c[Mf>>2]|0)-(c[Uf>>2]|0)|0;c[$f>>2]=mj;c[ag>>2]=c[(c[Af>>2]|0)+16>>2];c[bg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2);c[cg>>2]=(c[Sf>>2]|0)+((c[Mf>>2]&c[Uf>>2])<<1<<2)+4;c[dg>>2]=(c[Mf>>2]|0)+8+1;c[fg>>2]=0;c[gg>>2]=1<>2]|0)+12>>2];c[hg>>2]=(c[If>>2]|0)-1;c[ig>>2]=3+(c[Gf>>2]|0);c[jg>>2]=c[Gf>>2];while(1){if((c[jg>>2]|0)>>>0>=(c[ig>>2]|0)>>>0){dj=84;break;}aj=c[Ff>>2]|0;if((c[jg>>2]|0)==3)nj=(c[aj>>2]|0)-1|0;else nj=c[aj+(c[jg>>2]<<2)>>2]|0;c[kg>>2]=nj;c[lg>>2]=(c[Mf>>2]|0)-(c[kg>>2]|0);c[mg>>2]=0;if(((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[Yf>>2]|0)|0)>>>0){aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0;if((aj|0)==(mm((c[Cf>>2]|0)+(0-(c[kg>>2]|0))|0,c[Of>>2]|0)|0)){aj=Tj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[Cf>>2]|0)+(c[Of>>2]|0)+(0-(c[kg>>2]|0))|0,c[Df>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}else{c[ng>>2]=(c[Xf>>2]|0)+(c[lg>>2]|0);if((c[Ef>>2]|0?(((c[Yf>>2]|0)-1-(c[lg>>2]|0)|0)>>>0>=3?((c[kg>>2]|0)-1|0)>>>0<((c[Mf>>2]|0)-(c[ag>>2]|0)|0)>>>0:0)|0:0)?(aj=mm(c[Cf>>2]|0,c[Of>>2]|0)|0,(aj|0)==(mm(c[ng>>2]|0,c[Of>>2]|0)|0)):0){aj=Uj((c[Cf>>2]|0)+(c[Of>>2]|0)|0,(c[ng>>2]|0)+(c[Of>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[mg>>2]=aj+(c[Of>>2]|0);}}if((c[mg>>2]|0)>>>0>(c[hg>>2]|0)>>>0?(c[hg>>2]=c[mg>>2],c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[jg>>2]|0)-(c[Gf>>2]|0),c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[mg>>2],c[fg>>2]=(c[fg>>2]|0)+1,((c[mg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[mg>>2]|0)|0)==(c[Df>>2]|0))|0):0){dj=82;break;}c[jg>>2]=(c[jg>>2]|0)+1;}do{if((dj|0)==82){dj=0;c[zf>>2]=c[fg>>2];}else if((dj|0)==84){dj=0;if(((c[Jf>>2]|0)==3?(c[hg>>2]|0)>>>0<(c[Jf>>2]|0)>>>0:0)?(c[og>>2]=nm(c[Af>>2]|0,c[Cf>>2]|0)|0,((c[og>>2]|0)>>>0>(c[ag>>2]|0)>>>0?((c[Mf>>2]|0)-(c[og>>2]|0)|0)>>>0<262144:0)|0):0){if(c[Ef>>2]|0?(c[og>>2]|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[rg>>2]=(c[Xf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Uj(c[Cf>>2]|0,c[rg>>2]|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;}else{c[qg>>2]=(c[Lf>>2]|0)+(c[og>>2]|0);c[pg>>2]=Tj(c[Cf>>2]|0,c[qg>>2]|0,c[Df>>2]|0)|0;}if((c[pg>>2]|0)>>>0>=(c[Jf>>2]|0)>>>0?(c[hg>>2]=c[pg>>2],c[c[Hf>>2]>>2]=(c[Mf>>2]|0)-(c[og>>2]|0)+2,c[(c[Hf>>2]|0)+4>>2]=c[pg>>2],c[fg>>2]=1,((c[pg>>2]|0)>>>0>(c[Kf>>2]|0)>>>0?1:((c[Cf>>2]|0)+(c[pg>>2]|0)|0)==(c[Df>>2]|0))|0):0){c[(c[Af>>2]|0)+24>>2]=(c[Mf>>2]|0)+1;c[zf>>2]=1;break;}}c[(c[Pf>>2]|0)+(c[Qf>>2]<<2)>>2]=c[Mf>>2];while(1){aj=c[gg>>2]|0;c[gg>>2]=aj+-1;if(!aj)break;if((c[Rf>>2]|0)>>>0<=(c[ag>>2]|0)>>>0)break;c[sg>>2]=(c[Sf>>2]|0)+((c[Rf>>2]&c[Uf>>2])<<1<<2);c[tg>>2]=(c[Vf>>2]|0)>>>0<(c[Wf>>2]|0)>>>0?c[Vf>>2]|0:c[Wf>>2]|0;if(c[Ef>>2]|0?((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0<(c[Yf>>2]|0)>>>0:0){c[ug>>2]=(c[Xf>>2]|0)+(c[Rf>>2]|0);aj=Uj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0,c[Zf>>2]|0,c[_f>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;if(((c[Rf>>2]|0)+(c[tg>>2]|0)|0)>>>0>=(c[Yf>>2]|0)>>>0)c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);}else{c[ug>>2]=(c[Lf>>2]|0)+(c[Rf>>2]|0);aj=Tj((c[Cf>>2]|0)+(c[tg>>2]|0)|0,(c[ug>>2]|0)+(c[tg>>2]|0)|0,c[Df>>2]|0)|0;c[tg>>2]=(c[tg>>2]|0)+aj;}if((c[tg>>2]|0)>>>0>(c[hg>>2]|0)>>>0){if((c[tg>>2]|0)>>>0>((c[dg>>2]|0)-(c[Rf>>2]|0)|0)>>>0)c[dg>>2]=(c[Rf>>2]|0)+(c[tg>>2]|0);c[hg>>2]=c[tg>>2];c[(c[Hf>>2]|0)+(c[fg>>2]<<3)>>2]=(c[Mf>>2]|0)-(c[Rf>>2]|0)+2;c[(c[Hf>>2]|0)+(c[fg>>2]<<3)+4>>2]=c[tg>>2];c[fg>>2]=(c[fg>>2]|0)+1;if((c[tg>>2]|0)>>>0>4096)break;if(((c[Cf>>2]|0)+(c[tg>>2]|0)|0)==(c[Df>>2]|0))break;}aj=c[Rf>>2]|0;if((d[(c[ug>>2]|0)+(c[tg>>2]|0)>>0]|0|0)<(d[(c[Cf>>2]|0)+(c[tg>>2]|0)>>0]|0|0)){c[c[bg>>2]>>2]=aj;c[Vf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=109;break;}c[bg>>2]=(c[sg>>2]|0)+4;c[Rf>>2]=c[(c[sg>>2]|0)+4>>2];}else{c[c[cg>>2]>>2]=aj;c[Wf>>2]=c[tg>>2];if((c[Rf>>2]|0)>>>0<=(c[$f>>2]|0)>>>0){dj=112;break;}c[cg>>2]=c[sg>>2];c[Rf>>2]=c[c[sg>>2]>>2];}}if((dj|0)==109){dj=0;c[bg>>2]=eg;}else if((dj|0)==112){dj=0;c[cg>>2]=eg;}c[c[cg>>2]>>2]=0;c[c[bg>>2]>>2]=0;c[(c[Af>>2]|0)+24>>2]=(c[dg>>2]|0)-8;c[zf>>2]=c[fg>>2];}}while(0);c[Ah>>2]=c[zf>>2];break a;}}}}while(0);c[ki>>2]=c[Ah>>2];if(!(c[ki>>2]|0)){c[Vh>>2]=(c[Vh>>2]|0)+1;continue;}c[li>>2]=0;while(1){if((c[li>>2]|0)>>>0>=3)break;c[(c[bi>>2]|0)+16+(c[li>>2]<<2)>>2]=c[(c[Nh>>2]|0)+(c[li>>2]<<2)>>2];c[li>>2]=(c[li>>2]|0)+1;}c[(c[bi>>2]|0)+8>>2]=1;c[(c[bi>>2]|0)+12>>2]=c[ii>>2];c[mi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)+4>>2];do{if((c[mi>>2]|0)>>>0<=(c[$h>>2]|0)>>>0){c[ni>>2]=om(di,c[Wh>>2]|0,c[ii>>2]|0,c[Th>>2]|0)|0;c[oi>>2]=0;while(1){if((c[oi>>2]|0)>>>0>=(c[ai>>2]|0)>>>0)break;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=1073741824;c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=0;while(1){if((c[pi>>2]|0)>>>0>=(c[ki>>2]|0)>>>0)break;c[qi>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)>>2];c[ri>>2]=c[(c[ci>>2]|0)+(c[pi>>2]<<3)+4>>2];pm(si,c[Nh>>2]|0,c[qi>>2]|0,c[ji>>2]|0);while(1){if((c[oi>>2]|0)>>>0>(c[ri>>2]|0)>>>0)break;aj=c[ni>>2]|0;Zh=c[oi>>2]|0;Uh=c[Th>>2]|0;_i=c[Rh>>2]|0;c[yd>>2]=c[qi>>2];c[zd>>2]=Zh;c[Ad>>2]=Uh;c[Bd>>2]=_i;c[Dd>>2]=qm((c[yd>>2]|0)+1|0)|0;c[Ed>>2]=(c[zd>>2]|0)-3;if(c[(c[Ad>>2]|0)+56>>2]|0){_i=(qm((c[Ed>>2]|0)+1|0)|0)+16|0;c[xd>>2]=_i+(c[Dd>>2]|0);}else{_i=(c[Dd>>2]|0)+(c[(c[Ad>>2]|0)+52>>2]|0)|0;c[Cd>>2]=_i-(qm((c[(c[(c[Ad>>2]|0)+12>>2]|0)+(c[Dd>>2]<<2)>>2]|0)+1|0)|0);if((c[Bd>>2]|0)<2&(c[Dd>>2]|0)>>>0>=20)c[Cd>>2]=(c[Cd>>2]|0)+((c[Dd>>2]|0)-19<<1);c[Fd>>2]=rm(c[Ed>>2]|0)|0;_i=(c[5840+(c[Fd>>2]<<2)>>2]|0)+(c[(c[Ad>>2]|0)+48>>2]|0)|0;Uh=_i-(qm((c[(c[(c[Ad>>2]|0)+8>>2]|0)+(c[Fd>>2]<<2)>>2]|0)+1|0)|0)|0;c[Cd>>2]=(c[Cd>>2]|0)+Uh;c[xd>>2]=c[Cd>>2];}c[ti>>2]=aj+(c[xd>>2]|0);c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+8>>2]=c[oi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+4>>2]=c[qi>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+12>>2]=c[ii>>2];c[(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)>>2]=c[ti>>2];aj=(c[bi>>2]|0)+((c[oi>>2]|0)*28|0)+16|0;c[aj>>2]=c[si>>2];c[aj+4>>2]=c[si+4>>2];c[aj+8>>2]=c[si+8>>2];c[oi>>2]=(c[oi>>2]|0)+1;}c[pi>>2]=(c[pi>>2]|0)+1;}c[fi>>2]=(c[oi>>2]|0)-1;c[ei>>2]=1;b:while(1){if((c[ei>>2]|0)>>>0>(c[fi>>2]|0)>>>0){dj=504;break;}c[ui>>2]=(c[Vh>>2]|0)+(c[ei>>2]|0);if((c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+8>>2]|0)==1)oj=(c[(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+12>>2]|0)+1|0;else oj=1;c[vi>>2]=oj;if((c[ei>>2]|0)>>>0>(c[vi>>2]|0)>>>0){aj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[vi>>2]|0)|0)*28|0)>>2]|0;c[wi>>2]=aj+(sm((c[ui>>2]|0)+(0-(c[vi>>2]|0))|0,c[vi>>2]|0,c[Th>>2]|0)|0);}else c[wi>>2]=tm(di,c[Wh>>2]|0,c[vi>>2]|0,c[Th>>2]|0)|0;if((c[wi>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0)){c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]=1;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+4>>2]=0;c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]=c[vi>>2];c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]=c[wi>>2];aj=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Uh=(c[bi>>2]|0)+(((c[ei>>2]|0)-1|0)*28|0)+16|0;c[aj>>2]=c[Uh>>2];c[aj+4>>2]=c[Uh+4>>2];c[aj+8>>2]=c[Uh+8>>2];}c:do{if((c[ui>>2]|0)>>>0<=(c[Yh>>2]|0)>>>0){if((c[ei>>2]|0)==(c[fi>>2]|0)){dj=504;break b;}if((c[Rh>>2]|0)==0?(c[(c[bi>>2]|0)+(((c[ei>>2]|0)+1|0)*28|0)>>2]|0)<=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)>>2]|0):0)break;c[xi>>2]=(c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)!=1&1;if((c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+8>>2]|0)==1)pj=c[(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+12>>2]|0;else pj=0;c[yi>>2]=pj;if((c[ei>>2]|0)>>>0>(c[yi>>2]|0)>>>0)qj=c[(c[bi>>2]|0)+(((c[ei>>2]|0)-(c[yi>>2]|0)|0)*28|0)>>2]|0;else qj=0;c[zi>>2]=qj;Uh=c[zi>>2]|0;c[Ai>>2]=Uh+(um((c[ui>>2]|0)+(0-(c[yi>>2]|0))|0,c[yi>>2]|0,c[Th>>2]|0)|0);Uh=c[Oh>>2]|0;aj=c[ui>>2]|0;_i=c[Xh>>2]|0;Zh=c[Sh>>2]|0;Zi=(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0;Ph=c[xi>>2]|0;Qh=c[ci>>2]|0;_h=c[ai>>2]|0;c[nd>>2]=c[Lh>>2];c[od>>2]=Uh;c[pd>>2]=aj;c[qd>>2]=_i;c[rd>>2]=Zh;c[sd>>2]=Zi;c[td>>2]=Ph;c[ud>>2]=Qh;c[vd>>2]=_h;c[wd>>2]=c[(c[od>>2]|0)+16>>2];d:do{if((c[pd>>2]|0)>>>0<((c[(c[nd>>2]|0)+4>>2]|0)+(c[(c[nd>>2]|0)+24>>2]|0)|0)>>>0)c[md>>2]=0;else{_h=c[od>>2]|0;Qh=c[pd>>2]|0;Ph=c[qd>>2]|0;Zi=c[wd>>2]|0;Zh=c[rd>>2]|0;c[dd>>2]=c[nd>>2];c[ed>>2]=_h;c[fd>>2]=Qh;c[gd>>2]=Ph;c[hd>>2]=Zi;c[id>>2]=Zh;c[jd>>2]=c[(c[dd>>2]|0)+4>>2];c[kd>>2]=(c[fd>>2]|0)-(c[jd>>2]|0);c[ld>>2]=c[(c[dd>>2]|0)+24>>2];while(1){if((c[ld>>2]|0)>>>0>=(c[kd>>2]|0)>>>0)break;Zh=Rj(c[dd>>2]|0,c[ed>>2]|0,(c[jd>>2]|0)+(c[ld>>2]|0)|0,c[gd>>2]|0,c[hd>>2]|0,c[id>>2]|0)|0;c[ld>>2]=(c[ld>>2]|0)+Zh;}c[(c[dd>>2]|0)+24>>2]=c[kd>>2];switch(c[wd>>2]|0){case 3:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[ic>>2]=c[nd>>2];c[jc>>2]=Zh;c[kc>>2]=Zi;c[lc>>2]=Ph;c[mc>>2]=Qh;c[nc>>2]=_h;c[oc>>2]=_i;c[pc>>2]=aj;c[qc>>2]=Uh;c[rc>>2]=3;if((c[(c[jc>>2]|0)+20>>2]|0)>>>0<4095)rj=c[(c[jc>>2]|0)+20>>2]|0;else rj=4095;c[sc>>2]=rj;c[tc>>2]=c[(c[ic>>2]|0)+4>>2];c[uc>>2]=(c[kc>>2]|0)-(c[tc>>2]|0);c[vc>>2]=c[(c[jc>>2]|0)+8>>2];c[wc>>2]=(c[rc>>2]|0)==3?3:4;c[xc>>2]=c[(c[ic>>2]|0)+36>>2];c[yc>>2]=Sj(c[kc>>2]|0,c[vc>>2]|0,c[rc>>2]|0)|0;c[zc>>2]=c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2];c[Ac>>2]=c[(c[ic>>2]|0)+44>>2];c[Bc>>2]=(c[(c[jc>>2]|0)+4>>2]|0)-1;c[Cc>>2]=(1<>2])-1;c[Dc>>2]=0;c[Ec>>2]=0;c[Fc>>2]=c[(c[ic>>2]|0)+8>>2];c[Gc>>2]=c[(c[ic>>2]|0)+12>>2];c[Hc>>2]=(c[Fc>>2]|0)+(c[Gc>>2]|0);c[Ic>>2]=(c[tc>>2]|0)+(c[Gc>>2]|0);if((c[Cc>>2]|0)>>>0>=(c[uc>>2]|0)>>>0)sj=0;else sj=(c[uc>>2]|0)-(c[Cc>>2]|0)|0;c[Jc>>2]=sj;c[Kc>>2]=c[(c[ic>>2]|0)+16>>2];c[Lc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2);c[Mc>>2]=(c[Ac>>2]|0)+((c[uc>>2]&c[Cc>>2])<<1<<2)+4;c[Nc>>2]=(c[uc>>2]|0)+8+1;c[Pc>>2]=0;c[Qc>>2]=1<>2]|0)+12>>2];c[Rc>>2]=(c[qc>>2]|0)-1;c[Sc>>2]=3+(c[oc>>2]|0);c[Tc>>2]=c[oc>>2];while(1){if((c[Tc>>2]|0)>>>0>=(c[Sc>>2]|0)>>>0){dj=287;break;}Uh=c[nc>>2]|0;if((c[Tc>>2]|0)==3)tj=(c[Uh>>2]|0)-1|0;else tj=c[Uh+(c[Tc>>2]<<2)>>2]|0;c[Uc>>2]=tj;c[Vc>>2]=(c[uc>>2]|0)-(c[Uc>>2]|0);c[Wc>>2]=0;do{if(((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Gc>>2]|0)|0)>>>0){Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm((c[kc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[wc>>2]|0)|0))break;Uh=Tj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[kc>>2]|0)+(c[wc>>2]|0)+(0-(c[Uc>>2]|0))|0,c[lc>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}else{c[Xc>>2]=(c[Fc>>2]|0)+(c[Vc>>2]|0);if(!(c[mc>>2]|0))break;if(!((((c[Gc>>2]|0)-1-(c[Vc>>2]|0)|0)>>>0>=3?((c[Uc>>2]|0)-1|0)>>>0<((c[uc>>2]|0)-(c[Kc>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[kc>>2]|0,c[wc>>2]|0)|0;if((Uh|0)!=(mm(c[Xc>>2]|0,c[wc>>2]|0)|0))break;Uh=Uj((c[kc>>2]|0)+(c[wc>>2]|0)|0,(c[Xc>>2]|0)+(c[wc>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[Wc>>2]=Uh+(c[wc>>2]|0);}}while(0);if((c[Wc>>2]|0)>>>0>(c[Rc>>2]|0)>>>0?(c[Rc>>2]=c[Wc>>2],c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[Tc>>2]|0)-(c[oc>>2]|0),c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[Wc>>2],c[Pc>>2]=(c[Pc>>2]|0)+1,((c[Wc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Wc>>2]|0)|0)==(c[lc>>2]|0))|0):0){dj=285;break;}c[Tc>>2]=(c[Tc>>2]|0)+1;}e:do{if((dj|0)==285){dj=0;c[hc>>2]=c[Pc>>2];}else if((dj|0)==287){dj=0;do{if((c[rc>>2]|0)==3){if((c[Rc>>2]|0)>>>0>=(c[rc>>2]|0)>>>0)break;c[Yc>>2]=nm(c[ic>>2]|0,c[kc>>2]|0)|0;if(!(((c[Yc>>2]|0)>>>0>(c[Kc>>2]|0)>>>0?((c[uc>>2]|0)-(c[Yc>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[mc>>2]|0){if((c[Yc>>2]|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=292;break;}c[$c>>2]=(c[Fc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Uj(c[kc>>2]|0,c[$c>>2]|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;}else dj=292;}while(0);if((dj|0)==292){dj=0;c[_c>>2]=(c[tc>>2]|0)+(c[Yc>>2]|0);c[Zc>>2]=Tj(c[kc>>2]|0,c[_c>>2]|0,c[lc>>2]|0)|0;}if((c[Zc>>2]|0)>>>0<(c[rc>>2]|0)>>>0)break;c[Rc>>2]=c[Zc>>2];c[c[pc>>2]>>2]=(c[uc>>2]|0)-(c[Yc>>2]|0)+2;c[(c[pc>>2]|0)+4>>2]=c[Zc>>2];c[Pc>>2]=1;if(!(((c[Zc>>2]|0)>>>0>(c[sc>>2]|0)>>>0?1:((c[kc>>2]|0)+(c[Zc>>2]|0)|0)==(c[lc>>2]|0))|0))break;c[(c[ic>>2]|0)+24>>2]=(c[uc>>2]|0)+1;c[hc>>2]=1;break e;}}while(0);c[(c[xc>>2]|0)+(c[yc>>2]<<2)>>2]=c[uc>>2];while(1){Uh=c[Qc>>2]|0;c[Qc>>2]=Uh+-1;if(!Uh)break;if((c[zc>>2]|0)>>>0<=(c[Kc>>2]|0)>>>0)break;c[ad>>2]=(c[Ac>>2]|0)+((c[zc>>2]&c[Cc>>2])<<1<<2);c[bd>>2]=(c[Dc>>2]|0)>>>0<(c[Ec>>2]|0)>>>0?c[Dc>>2]|0:c[Ec>>2]|0;do{if(c[mc>>2]|0){if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0>=(c[Gc>>2]|0)>>>0){dj=302;break;}c[cd>>2]=(c[Fc>>2]|0)+(c[zc>>2]|0);Uh=Uj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0,c[Hc>>2]|0,c[Ic>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;if(((c[zc>>2]|0)+(c[bd>>2]|0)|0)>>>0<(c[Gc>>2]|0)>>>0)break;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);}else dj=302;}while(0);if((dj|0)==302){dj=0;c[cd>>2]=(c[tc>>2]|0)+(c[zc>>2]|0);Uh=Tj((c[kc>>2]|0)+(c[bd>>2]|0)|0,(c[cd>>2]|0)+(c[bd>>2]|0)|0,c[lc>>2]|0)|0;c[bd>>2]=(c[bd>>2]|0)+Uh;}if((c[bd>>2]|0)>>>0>(c[Rc>>2]|0)>>>0){if((c[bd>>2]|0)>>>0>((c[Nc>>2]|0)-(c[zc>>2]|0)|0)>>>0)c[Nc>>2]=(c[zc>>2]|0)+(c[bd>>2]|0);c[Rc>>2]=c[bd>>2];c[(c[pc>>2]|0)+(c[Pc>>2]<<3)>>2]=(c[uc>>2]|0)-(c[zc>>2]|0)+2;c[(c[pc>>2]|0)+(c[Pc>>2]<<3)+4>>2]=c[bd>>2];c[Pc>>2]=(c[Pc>>2]|0)+1;if((c[bd>>2]|0)>>>0>4096)break;if(((c[kc>>2]|0)+(c[bd>>2]|0)|0)==(c[lc>>2]|0))break;}Uh=c[zc>>2]|0;if((d[(c[cd>>2]|0)+(c[bd>>2]|0)>>0]|0|0)<(d[(c[kc>>2]|0)+(c[bd>>2]|0)>>0]|0|0)){c[c[Lc>>2]>>2]=Uh;c[Dc>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=312;break;}c[Lc>>2]=(c[ad>>2]|0)+4;c[zc>>2]=c[(c[ad>>2]|0)+4>>2];}else{c[c[Mc>>2]>>2]=Uh;c[Ec>>2]=c[bd>>2];if((c[zc>>2]|0)>>>0<=(c[Jc>>2]|0)>>>0){dj=315;break;}c[Mc>>2]=c[ad>>2];c[zc>>2]=c[c[ad>>2]>>2];}}if((dj|0)==312){dj=0;c[Lc>>2]=Oc;}else if((dj|0)==315){dj=0;c[Mc>>2]=Oc;}c[c[Mc>>2]>>2]=0;c[c[Lc>>2]>>2]=0;c[(c[ic>>2]|0)+24>>2]=(c[Nc>>2]|0)-8;c[hc>>2]=c[Pc>>2];}}while(0);c[md>>2]=c[hc>>2];break d;break;}case 7:case 6:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[u>>2]=c[nd>>2];c[v>>2]=Uh;c[w>>2]=aj;c[x>>2]=_i;c[y>>2]=_h;c[z>>2]=Qh;c[A>>2]=Ph;c[B>>2]=Zi;c[C>>2]=Zh;c[D>>2]=6;if((c[(c[v>>2]|0)+20>>2]|0)>>>0<4095)uj=c[(c[v>>2]|0)+20>>2]|0;else uj=4095;c[E>>2]=uj;c[F>>2]=c[(c[u>>2]|0)+4>>2];c[G>>2]=(c[w>>2]|0)-(c[F>>2]|0);c[H>>2]=c[(c[v>>2]|0)+8>>2];c[I>>2]=(c[D>>2]|0)==3?3:4;c[J>>2]=c[(c[u>>2]|0)+36>>2];c[K>>2]=Sj(c[w>>2]|0,c[H>>2]|0,c[D>>2]|0)|0;c[L>>2]=c[(c[J>>2]|0)+(c[K>>2]<<2)>>2];c[M>>2]=c[(c[u>>2]|0)+44>>2];c[N>>2]=(c[(c[v>>2]|0)+4>>2]|0)-1;c[O>>2]=(1<>2])-1;c[P>>2]=0;c[Q>>2]=0;c[R>>2]=c[(c[u>>2]|0)+8>>2];c[S>>2]=c[(c[u>>2]|0)+12>>2];c[T>>2]=(c[R>>2]|0)+(c[S>>2]|0);c[U>>2]=(c[F>>2]|0)+(c[S>>2]|0);if((c[O>>2]|0)>>>0>=(c[G>>2]|0)>>>0)vj=0;else vj=(c[G>>2]|0)-(c[O>>2]|0)|0;c[V>>2]=vj;c[W>>2]=c[(c[u>>2]|0)+16>>2];c[X>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2);c[Y>>2]=(c[M>>2]|0)+((c[G>>2]&c[O>>2])<<1<<2)+4;c[Z>>2]=(c[G>>2]|0)+8+1;c[$>>2]=0;c[aa>>2]=1<>2]|0)+12>>2];c[ba>>2]=(c[C>>2]|0)-1;c[ca>>2]=3+(c[A>>2]|0);c[da>>2]=c[A>>2];while(1){if((c[da>>2]|0)>>>0>=(c[ca>>2]|0)>>>0){dj=446;break;}Zh=c[z>>2]|0;if((c[da>>2]|0)==3)wj=(c[Zh>>2]|0)-1|0;else wj=c[Zh+(c[da>>2]<<2)>>2]|0;c[ea>>2]=wj;c[fa>>2]=(c[G>>2]|0)-(c[ea>>2]|0);c[ga>>2]=0;do{if(((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[S>>2]|0)|0)>>>0){Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm((c[w>>2]|0)+(0-(c[ea>>2]|0))|0,c[I>>2]|0)|0))break;Zh=Tj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[w>>2]|0)+(c[I>>2]|0)+(0-(c[ea>>2]|0))|0,c[x>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}else{c[ha>>2]=(c[R>>2]|0)+(c[fa>>2]|0);if(!(c[y>>2]|0))break;if(!((((c[S>>2]|0)-1-(c[fa>>2]|0)|0)>>>0>=3?((c[ea>>2]|0)-1|0)>>>0<((c[G>>2]|0)-(c[W>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[w>>2]|0,c[I>>2]|0)|0;if((Zh|0)!=(mm(c[ha>>2]|0,c[I>>2]|0)|0))break;Zh=Uj((c[w>>2]|0)+(c[I>>2]|0)|0,(c[ha>>2]|0)+(c[I>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[ga>>2]=Zh+(c[I>>2]|0);}}while(0);if((c[ga>>2]|0)>>>0>(c[ba>>2]|0)>>>0?(c[ba>>2]=c[ga>>2],c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[da>>2]|0)-(c[A>>2]|0),c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[ga>>2],c[$>>2]=(c[$>>2]|0)+1,((c[ga>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ga>>2]|0)|0)==(c[x>>2]|0))|0):0){dj=444;break;}c[da>>2]=(c[da>>2]|0)+1;}f:do{if((dj|0)==444){dj=0;c[t>>2]=c[$>>2];}else if((dj|0)==446){dj=0;do{if((c[D>>2]|0)==3){if((c[ba>>2]|0)>>>0>=(c[D>>2]|0)>>>0)break;c[ia>>2]=nm(c[u>>2]|0,c[w>>2]|0)|0;if(!(((c[ia>>2]|0)>>>0>(c[W>>2]|0)>>>0?((c[G>>2]|0)-(c[ia>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[y>>2]|0){if((c[ia>>2]|0)>>>0>=(c[S>>2]|0)>>>0){dj=451;break;}c[la>>2]=(c[R>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Uj(c[w>>2]|0,c[la>>2]|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;}else dj=451;}while(0);if((dj|0)==451){dj=0;c[ka>>2]=(c[F>>2]|0)+(c[ia>>2]|0);c[ja>>2]=Tj(c[w>>2]|0,c[ka>>2]|0,c[x>>2]|0)|0;}if((c[ja>>2]|0)>>>0<(c[D>>2]|0)>>>0)break;c[ba>>2]=c[ja>>2];c[c[B>>2]>>2]=(c[G>>2]|0)-(c[ia>>2]|0)+2;c[(c[B>>2]|0)+4>>2]=c[ja>>2];c[$>>2]=1;if(!(((c[ja>>2]|0)>>>0>(c[E>>2]|0)>>>0?1:((c[w>>2]|0)+(c[ja>>2]|0)|0)==(c[x>>2]|0))|0))break;c[(c[u>>2]|0)+24>>2]=(c[G>>2]|0)+1;c[t>>2]=1;break f;}}while(0);c[(c[J>>2]|0)+(c[K>>2]<<2)>>2]=c[G>>2];while(1){Zh=c[aa>>2]|0;c[aa>>2]=Zh+-1;if(!Zh)break;if((c[L>>2]|0)>>>0<=(c[W>>2]|0)>>>0)break;c[ma>>2]=(c[M>>2]|0)+((c[L>>2]&c[O>>2])<<1<<2);c[na>>2]=(c[P>>2]|0)>>>0<(c[Q>>2]|0)>>>0?c[P>>2]|0:c[Q>>2]|0;do{if(c[y>>2]|0){if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0>=(c[S>>2]|0)>>>0){dj=461;break;}c[oa>>2]=(c[R>>2]|0)+(c[L>>2]|0);Zh=Uj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0,c[T>>2]|0,c[U>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;if(((c[L>>2]|0)+(c[na>>2]|0)|0)>>>0<(c[S>>2]|0)>>>0)break;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);}else dj=461;}while(0);if((dj|0)==461){dj=0;c[oa>>2]=(c[F>>2]|0)+(c[L>>2]|0);Zh=Tj((c[w>>2]|0)+(c[na>>2]|0)|0,(c[oa>>2]|0)+(c[na>>2]|0)|0,c[x>>2]|0)|0;c[na>>2]=(c[na>>2]|0)+Zh;}if((c[na>>2]|0)>>>0>(c[ba>>2]|0)>>>0){if((c[na>>2]|0)>>>0>((c[Z>>2]|0)-(c[L>>2]|0)|0)>>>0)c[Z>>2]=(c[L>>2]|0)+(c[na>>2]|0);c[ba>>2]=c[na>>2];c[(c[B>>2]|0)+(c[$>>2]<<3)>>2]=(c[G>>2]|0)-(c[L>>2]|0)+2;c[(c[B>>2]|0)+(c[$>>2]<<3)+4>>2]=c[na>>2];c[$>>2]=(c[$>>2]|0)+1;if((c[na>>2]|0)>>>0>4096)break;if(((c[w>>2]|0)+(c[na>>2]|0)|0)==(c[x>>2]|0))break;}Zh=c[L>>2]|0;if((d[(c[oa>>2]|0)+(c[na>>2]|0)>>0]|0|0)<(d[(c[w>>2]|0)+(c[na>>2]|0)>>0]|0|0)){c[c[X>>2]>>2]=Zh;c[P>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=471;break;}c[X>>2]=(c[ma>>2]|0)+4;c[L>>2]=c[(c[ma>>2]|0)+4>>2];}else{c[c[Y>>2]>>2]=Zh;c[Q>>2]=c[na>>2];if((c[L>>2]|0)>>>0<=(c[V>>2]|0)>>>0){dj=474;break;}c[Y>>2]=c[ma>>2];c[L>>2]=c[c[ma>>2]>>2];}}if((dj|0)==471){dj=0;c[X>>2]=_;}else if((dj|0)==474){dj=0;c[Y>>2]=_;}c[c[Y>>2]>>2]=0;c[c[X>>2]>>2]=0;c[(c[u>>2]|0)+24>>2]=(c[Z>>2]|0)-8;c[t>>2]=c[$>>2];}}while(0);c[md>>2]=c[t>>2];break d;break;}case 5:{Zh=c[od>>2]|0;Zi=c[pd>>2]|0;Ph=c[qd>>2]|0;Qh=c[rd>>2]|0;_h=c[sd>>2]|0;_i=c[td>>2]|0;aj=c[ud>>2]|0;Uh=c[vd>>2]|0;c[qa>>2]=c[nd>>2];c[ra>>2]=Zh;c[sa>>2]=Zi;c[ta>>2]=Ph;c[ua>>2]=Qh;c[va>>2]=_h;c[wa>>2]=_i;c[xa>>2]=aj;c[ya>>2]=Uh;c[za>>2]=5;if((c[(c[ra>>2]|0)+20>>2]|0)>>>0<4095)xj=c[(c[ra>>2]|0)+20>>2]|0;else xj=4095;c[Aa>>2]=xj;c[Ba>>2]=c[(c[qa>>2]|0)+4>>2];c[Ca>>2]=(c[sa>>2]|0)-(c[Ba>>2]|0);c[Da>>2]=c[(c[ra>>2]|0)+8>>2];c[Ea>>2]=(c[za>>2]|0)==3?3:4;c[Fa>>2]=c[(c[qa>>2]|0)+36>>2];c[Ga>>2]=Sj(c[sa>>2]|0,c[Da>>2]|0,c[za>>2]|0)|0;c[Ha>>2]=c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2];c[Ia>>2]=c[(c[qa>>2]|0)+44>>2];c[Ja>>2]=(c[(c[ra>>2]|0)+4>>2]|0)-1;c[Ka>>2]=(1<>2])-1;c[La>>2]=0;c[Ma>>2]=0;c[Na>>2]=c[(c[qa>>2]|0)+8>>2];c[Oa>>2]=c[(c[qa>>2]|0)+12>>2];c[Pa>>2]=(c[Na>>2]|0)+(c[Oa>>2]|0);c[Qa>>2]=(c[Ba>>2]|0)+(c[Oa>>2]|0);if((c[Ka>>2]|0)>>>0>=(c[Ca>>2]|0)>>>0)yj=0;else yj=(c[Ca>>2]|0)-(c[Ka>>2]|0)|0;c[Ra>>2]=yj;c[Sa>>2]=c[(c[qa>>2]|0)+16>>2];c[Ta>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2);c[Ua>>2]=(c[Ia>>2]|0)+((c[Ca>>2]&c[Ka>>2])<<1<<2)+4;c[Va>>2]=(c[Ca>>2]|0)+8+1;c[Xa>>2]=0;c[Ya>>2]=1<>2]|0)+12>>2];c[Za>>2]=(c[ya>>2]|0)-1;c[_a>>2]=3+(c[wa>>2]|0);c[$a>>2]=c[wa>>2];while(1){if((c[$a>>2]|0)>>>0>=(c[_a>>2]|0)>>>0){dj=393;break;}Uh=c[va>>2]|0;if((c[$a>>2]|0)==3)zj=(c[Uh>>2]|0)-1|0;else zj=c[Uh+(c[$a>>2]<<2)>>2]|0;c[ab>>2]=zj;c[bb>>2]=(c[Ca>>2]|0)-(c[ab>>2]|0);c[cb>>2]=0;do{if(((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Oa>>2]|0)|0)>>>0){Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm((c[sa>>2]|0)+(0-(c[ab>>2]|0))|0,c[Ea>>2]|0)|0))break;Uh=Tj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[sa>>2]|0)+(c[Ea>>2]|0)+(0-(c[ab>>2]|0))|0,c[ta>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}else{c[db>>2]=(c[Na>>2]|0)+(c[bb>>2]|0);if(!(c[ua>>2]|0))break;if(!((((c[Oa>>2]|0)-1-(c[bb>>2]|0)|0)>>>0>=3?((c[ab>>2]|0)-1|0)>>>0<((c[Ca>>2]|0)-(c[Sa>>2]|0)|0)>>>0:0)|0))break;Uh=mm(c[sa>>2]|0,c[Ea>>2]|0)|0;if((Uh|0)!=(mm(c[db>>2]|0,c[Ea>>2]|0)|0))break;Uh=Uj((c[sa>>2]|0)+(c[Ea>>2]|0)|0,(c[db>>2]|0)+(c[Ea>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[cb>>2]=Uh+(c[Ea>>2]|0);}}while(0);if((c[cb>>2]|0)>>>0>(c[Za>>2]|0)>>>0?(c[Za>>2]=c[cb>>2],c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[$a>>2]|0)-(c[wa>>2]|0),c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[cb>>2],c[Xa>>2]=(c[Xa>>2]|0)+1,((c[cb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[cb>>2]|0)|0)==(c[ta>>2]|0))|0):0){dj=391;break;}c[$a>>2]=(c[$a>>2]|0)+1;}g:do{if((dj|0)==391){dj=0;c[pa>>2]=c[Xa>>2];}else if((dj|0)==393){dj=0;do{if((c[za>>2]|0)==3){if((c[Za>>2]|0)>>>0>=(c[za>>2]|0)>>>0)break;c[eb>>2]=nm(c[qa>>2]|0,c[sa>>2]|0)|0;if(!(((c[eb>>2]|0)>>>0>(c[Sa>>2]|0)>>>0?((c[Ca>>2]|0)-(c[eb>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[ua>>2]|0){if((c[eb>>2]|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=398;break;}c[hb>>2]=(c[Na>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Uj(c[sa>>2]|0,c[hb>>2]|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;}else dj=398;}while(0);if((dj|0)==398){dj=0;c[gb>>2]=(c[Ba>>2]|0)+(c[eb>>2]|0);c[fb>>2]=Tj(c[sa>>2]|0,c[gb>>2]|0,c[ta>>2]|0)|0;}if((c[fb>>2]|0)>>>0<(c[za>>2]|0)>>>0)break;c[Za>>2]=c[fb>>2];c[c[xa>>2]>>2]=(c[Ca>>2]|0)-(c[eb>>2]|0)+2;c[(c[xa>>2]|0)+4>>2]=c[fb>>2];c[Xa>>2]=1;if(!(((c[fb>>2]|0)>>>0>(c[Aa>>2]|0)>>>0?1:((c[sa>>2]|0)+(c[fb>>2]|0)|0)==(c[ta>>2]|0))|0))break;c[(c[qa>>2]|0)+24>>2]=(c[Ca>>2]|0)+1;c[pa>>2]=1;break g;}}while(0);c[(c[Fa>>2]|0)+(c[Ga>>2]<<2)>>2]=c[Ca>>2];while(1){Uh=c[Ya>>2]|0;c[Ya>>2]=Uh+-1;if(!Uh)break;if((c[Ha>>2]|0)>>>0<=(c[Sa>>2]|0)>>>0)break;c[ib>>2]=(c[Ia>>2]|0)+((c[Ha>>2]&c[Ka>>2])<<1<<2);c[jb>>2]=(c[La>>2]|0)>>>0<(c[Ma>>2]|0)>>>0?c[La>>2]|0:c[Ma>>2]|0;do{if(c[ua>>2]|0){if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0>=(c[Oa>>2]|0)>>>0){dj=408;break;}c[kb>>2]=(c[Na>>2]|0)+(c[Ha>>2]|0);Uh=Uj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0,c[Pa>>2]|0,c[Qa>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;if(((c[Ha>>2]|0)+(c[jb>>2]|0)|0)>>>0<(c[Oa>>2]|0)>>>0)break;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);}else dj=408;}while(0);if((dj|0)==408){dj=0;c[kb>>2]=(c[Ba>>2]|0)+(c[Ha>>2]|0);Uh=Tj((c[sa>>2]|0)+(c[jb>>2]|0)|0,(c[kb>>2]|0)+(c[jb>>2]|0)|0,c[ta>>2]|0)|0;c[jb>>2]=(c[jb>>2]|0)+Uh;}if((c[jb>>2]|0)>>>0>(c[Za>>2]|0)>>>0){if((c[jb>>2]|0)>>>0>((c[Va>>2]|0)-(c[Ha>>2]|0)|0)>>>0)c[Va>>2]=(c[Ha>>2]|0)+(c[jb>>2]|0);c[Za>>2]=c[jb>>2];c[(c[xa>>2]|0)+(c[Xa>>2]<<3)>>2]=(c[Ca>>2]|0)-(c[Ha>>2]|0)+2;c[(c[xa>>2]|0)+(c[Xa>>2]<<3)+4>>2]=c[jb>>2];c[Xa>>2]=(c[Xa>>2]|0)+1;if((c[jb>>2]|0)>>>0>4096)break;if(((c[sa>>2]|0)+(c[jb>>2]|0)|0)==(c[ta>>2]|0))break;}Uh=c[Ha>>2]|0;if((d[(c[kb>>2]|0)+(c[jb>>2]|0)>>0]|0|0)<(d[(c[sa>>2]|0)+(c[jb>>2]|0)>>0]|0|0)){c[c[Ta>>2]>>2]=Uh;c[La>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=418;break;}c[Ta>>2]=(c[ib>>2]|0)+4;c[Ha>>2]=c[(c[ib>>2]|0)+4>>2];}else{c[c[Ua>>2]>>2]=Uh;c[Ma>>2]=c[jb>>2];if((c[Ha>>2]|0)>>>0<=(c[Ra>>2]|0)>>>0){dj=421;break;}c[Ua>>2]=c[ib>>2];c[Ha>>2]=c[c[ib>>2]>>2];}}if((dj|0)==418){dj=0;c[Ta>>2]=Wa;}else if((dj|0)==421){dj=0;c[Ua>>2]=Wa;}c[c[Ua>>2]>>2]=0;c[c[Ta>>2]>>2]=0;c[(c[qa>>2]|0)+24>>2]=(c[Va>>2]|0)-8;c[pa>>2]=c[Xa>>2];}}while(0);c[md>>2]=c[pa>>2];break d;break;}default:{Uh=c[od>>2]|0;aj=c[pd>>2]|0;_i=c[qd>>2]|0;_h=c[rd>>2]|0;Qh=c[sd>>2]|0;Ph=c[td>>2]|0;Zi=c[ud>>2]|0;Zh=c[vd>>2]|0;c[mb>>2]=c[nd>>2];c[nb>>2]=Uh;c[ob>>2]=aj;c[pb>>2]=_i;c[qb>>2]=_h;c[rb>>2]=Qh;c[sb>>2]=Ph;c[tb>>2]=Zi;c[ub>>2]=Zh;c[vb>>2]=4;if((c[(c[nb>>2]|0)+20>>2]|0)>>>0<4095)Aj=c[(c[nb>>2]|0)+20>>2]|0;else Aj=4095;c[wb>>2]=Aj;c[xb>>2]=c[(c[mb>>2]|0)+4>>2];c[yb>>2]=(c[ob>>2]|0)-(c[xb>>2]|0);c[zb>>2]=c[(c[nb>>2]|0)+8>>2];c[Ab>>2]=(c[vb>>2]|0)==3?3:4;c[Bb>>2]=c[(c[mb>>2]|0)+36>>2];c[Cb>>2]=Sj(c[ob>>2]|0,c[zb>>2]|0,c[vb>>2]|0)|0;c[Db>>2]=c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2];c[Eb>>2]=c[(c[mb>>2]|0)+44>>2];c[Fb>>2]=(c[(c[nb>>2]|0)+4>>2]|0)-1;c[Gb>>2]=(1<>2])-1;c[Hb>>2]=0;c[Ib>>2]=0;c[Jb>>2]=c[(c[mb>>2]|0)+8>>2];c[Kb>>2]=c[(c[mb>>2]|0)+12>>2];c[Lb>>2]=(c[Jb>>2]|0)+(c[Kb>>2]|0);c[Mb>>2]=(c[xb>>2]|0)+(c[Kb>>2]|0);if((c[Gb>>2]|0)>>>0>=(c[yb>>2]|0)>>>0)Bj=0;else Bj=(c[yb>>2]|0)-(c[Gb>>2]|0)|0;c[Nb>>2]=Bj;c[Ob>>2]=c[(c[mb>>2]|0)+16>>2];c[Pb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2);c[Qb>>2]=(c[Eb>>2]|0)+((c[yb>>2]&c[Gb>>2])<<1<<2)+4;c[Rb>>2]=(c[yb>>2]|0)+8+1;c[Tb>>2]=0;c[Ub>>2]=1<>2]|0)+12>>2];c[Vb>>2]=(c[ub>>2]|0)-1;c[Wb>>2]=3+(c[sb>>2]|0);c[Xb>>2]=c[sb>>2];while(1){if((c[Xb>>2]|0)>>>0>=(c[Wb>>2]|0)>>>0){dj=340;break;}Zh=c[rb>>2]|0;if((c[Xb>>2]|0)==3)Cj=(c[Zh>>2]|0)-1|0;else Cj=c[Zh+(c[Xb>>2]<<2)>>2]|0;c[Yb>>2]=Cj;c[Zb>>2]=(c[yb>>2]|0)-(c[Yb>>2]|0);c[_b>>2]=0;do{if(((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Kb>>2]|0)|0)>>>0){Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm((c[ob>>2]|0)+(0-(c[Yb>>2]|0))|0,c[Ab>>2]|0)|0))break;Zh=Tj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[ob>>2]|0)+(c[Ab>>2]|0)+(0-(c[Yb>>2]|0))|0,c[pb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}else{c[$b>>2]=(c[Jb>>2]|0)+(c[Zb>>2]|0);if(!(c[qb>>2]|0))break;if(!((((c[Kb>>2]|0)-1-(c[Zb>>2]|0)|0)>>>0>=3?((c[Yb>>2]|0)-1|0)>>>0<((c[yb>>2]|0)-(c[Ob>>2]|0)|0)>>>0:0)|0))break;Zh=mm(c[ob>>2]|0,c[Ab>>2]|0)|0;if((Zh|0)!=(mm(c[$b>>2]|0,c[Ab>>2]|0)|0))break;Zh=Uj((c[ob>>2]|0)+(c[Ab>>2]|0)|0,(c[$b>>2]|0)+(c[Ab>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[_b>>2]=Zh+(c[Ab>>2]|0);}}while(0);if((c[_b>>2]|0)>>>0>(c[Vb>>2]|0)>>>0?(c[Vb>>2]=c[_b>>2],c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[Xb>>2]|0)-(c[sb>>2]|0),c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[_b>>2],c[Tb>>2]=(c[Tb>>2]|0)+1,((c[_b>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[_b>>2]|0)|0)==(c[pb>>2]|0))|0):0){dj=338;break;}c[Xb>>2]=(c[Xb>>2]|0)+1;}h:do{if((dj|0)==338){dj=0;c[lb>>2]=c[Tb>>2];}else if((dj|0)==340){dj=0;do{if((c[vb>>2]|0)==3){if((c[Vb>>2]|0)>>>0>=(c[vb>>2]|0)>>>0)break;c[ac>>2]=nm(c[mb>>2]|0,c[ob>>2]|0)|0;if(!(((c[ac>>2]|0)>>>0>(c[Ob>>2]|0)>>>0?((c[yb>>2]|0)-(c[ac>>2]|0)|0)>>>0<262144:0)|0))break;do{if(c[qb>>2]|0){if((c[ac>>2]|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=345;break;}c[dc>>2]=(c[Jb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Uj(c[ob>>2]|0,c[dc>>2]|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;}else dj=345;}while(0);if((dj|0)==345){dj=0;c[cc>>2]=(c[xb>>2]|0)+(c[ac>>2]|0);c[bc>>2]=Tj(c[ob>>2]|0,c[cc>>2]|0,c[pb>>2]|0)|0;}if((c[bc>>2]|0)>>>0<(c[vb>>2]|0)>>>0)break;c[Vb>>2]=c[bc>>2];c[c[tb>>2]>>2]=(c[yb>>2]|0)-(c[ac>>2]|0)+2;c[(c[tb>>2]|0)+4>>2]=c[bc>>2];c[Tb>>2]=1;if(!(((c[bc>>2]|0)>>>0>(c[wb>>2]|0)>>>0?1:((c[ob>>2]|0)+(c[bc>>2]|0)|0)==(c[pb>>2]|0))|0))break;c[(c[mb>>2]|0)+24>>2]=(c[yb>>2]|0)+1;c[lb>>2]=1;break h;}}while(0);c[(c[Bb>>2]|0)+(c[Cb>>2]<<2)>>2]=c[yb>>2];while(1){Zh=c[Ub>>2]|0;c[Ub>>2]=Zh+-1;if(!Zh)break;if((c[Db>>2]|0)>>>0<=(c[Ob>>2]|0)>>>0)break;c[ec>>2]=(c[Eb>>2]|0)+((c[Db>>2]&c[Gb>>2])<<1<<2);c[fc>>2]=(c[Hb>>2]|0)>>>0<(c[Ib>>2]|0)>>>0?c[Hb>>2]|0:c[Ib>>2]|0;do{if(c[qb>>2]|0){if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0>=(c[Kb>>2]|0)>>>0){dj=355;break;}c[gc>>2]=(c[Jb>>2]|0)+(c[Db>>2]|0);Zh=Uj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0,c[Lb>>2]|0,c[Mb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;if(((c[Db>>2]|0)+(c[fc>>2]|0)|0)>>>0<(c[Kb>>2]|0)>>>0)break;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);}else dj=355;}while(0);if((dj|0)==355){dj=0;c[gc>>2]=(c[xb>>2]|0)+(c[Db>>2]|0);Zh=Tj((c[ob>>2]|0)+(c[fc>>2]|0)|0,(c[gc>>2]|0)+(c[fc>>2]|0)|0,c[pb>>2]|0)|0;c[fc>>2]=(c[fc>>2]|0)+Zh;}if((c[fc>>2]|0)>>>0>(c[Vb>>2]|0)>>>0){if((c[fc>>2]|0)>>>0>((c[Rb>>2]|0)-(c[Db>>2]|0)|0)>>>0)c[Rb>>2]=(c[Db>>2]|0)+(c[fc>>2]|0);c[Vb>>2]=c[fc>>2];c[(c[tb>>2]|0)+(c[Tb>>2]<<3)>>2]=(c[yb>>2]|0)-(c[Db>>2]|0)+2;c[(c[tb>>2]|0)+(c[Tb>>2]<<3)+4>>2]=c[fc>>2];c[Tb>>2]=(c[Tb>>2]|0)+1;if((c[fc>>2]|0)>>>0>4096)break;if(((c[ob>>2]|0)+(c[fc>>2]|0)|0)==(c[pb>>2]|0))break;}Zh=c[Db>>2]|0;if((d[(c[gc>>2]|0)+(c[fc>>2]|0)>>0]|0|0)<(d[(c[ob>>2]|0)+(c[fc>>2]|0)>>0]|0|0)){c[c[Pb>>2]>>2]=Zh;c[Hb>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=365;break;}c[Pb>>2]=(c[ec>>2]|0)+4;c[Db>>2]=c[(c[ec>>2]|0)+4>>2];}else{c[c[Qb>>2]>>2]=Zh;c[Ib>>2]=c[fc>>2];if((c[Db>>2]|0)>>>0<=(c[Nb>>2]|0)>>>0){dj=368;break;}c[Qb>>2]=c[ec>>2];c[Db>>2]=c[c[ec>>2]>>2];}}if((dj|0)==365){dj=0;c[Pb>>2]=Sb;}else if((dj|0)==368){dj=0;c[Qb>>2]=Sb;}c[c[Qb>>2]>>2]=0;c[c[Pb>>2]>>2]=0;c[(c[mb>>2]|0)+24>>2]=(c[Rb>>2]|0)-8;c[lb>>2]=c[Tb>>2];}}while(0);c[md>>2]=c[lb>>2];break d;}}}}while(0);c[Bi>>2]=c[md>>2];if(c[Bi>>2]|0){c[Di>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)+4>>2];if(((c[Di>>2]|0)>>>0>(c[$h>>2]|0)>>>0?1:((c[ei>>2]|0)+(c[Di>>2]|0)|0)>>>0>=4096)|0){dj=481;break b;}c[Ci>>2]=0;while(1){if((c[Ci>>2]|0)>>>0>=(c[Bi>>2]|0)>>>0)break c;c[Ei>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)>>2];pm(Fi,(c[bi>>2]|0)+((c[ei>>2]|0)*28|0)+16|0,c[Ei>>2]|0,c[xi>>2]|0);c[Gi>>2]=c[(c[ci>>2]|0)+(c[Ci>>2]<<3)+4>>2];if((c[Ci>>2]|0)>>>0>0)Dj=(c[(c[ci>>2]|0)+((c[Ci>>2]|0)-1<<3)+4>>2]|0)+1|0;else Dj=c[ai>>2]|0;c[Hi>>2]=Dj;c[Ii>>2]=c[Gi>>2];i:while(1){if((c[Ii>>2]|0)>>>0<(c[Hi>>2]|0)>>>0)break;c[Ji>>2]=(c[ei>>2]|0)+(c[Ii>>2]|0);Zh=c[Ai>>2]|0;Zi=c[Ii>>2]|0;Ph=c[Th>>2]|0;Qh=c[Rh>>2]|0;c[k>>2]=c[Ei>>2];c[m>>2]=Zi;c[n>>2]=Ph;c[o>>2]=Qh;c[q>>2]=qm((c[k>>2]|0)+1|0)|0;c[r>>2]=(c[m>>2]|0)-3;if(c[(c[n>>2]|0)+56>>2]|0){Qh=(qm((c[r>>2]|0)+1|0)|0)+16|0;c[j>>2]=Qh+(c[q>>2]|0);}else{Qh=(c[q>>2]|0)+(c[(c[n>>2]|0)+52>>2]|0)|0;c[p>>2]=Qh-(qm((c[(c[(c[n>>2]|0)+12>>2]|0)+(c[q>>2]<<2)>>2]|0)+1|0)|0);if((c[o>>2]|0)<2&(c[q>>2]|0)>>>0>=20)c[p>>2]=(c[p>>2]|0)+((c[q>>2]|0)-19<<1);c[s>>2]=rm(c[r>>2]|0)|0;Qh=(c[5840+(c[s>>2]<<2)>>2]|0)+(c[(c[n>>2]|0)+48>>2]|0)|0;Ph=Qh-(qm((c[(c[(c[n>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0)+1|0)|0)|0;c[p>>2]=(c[p>>2]|0)+Ph;c[j>>2]=c[p>>2];}c[Ki>>2]=Zh+(c[j>>2]|0);do{if((c[Ji>>2]|0)>>>0<=(c[fi>>2]|0)>>>0){if((c[Ki>>2]|0)<(c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]|0)){dj=496;break;}if(!(c[Rh>>2]|0))break i;}else dj=496;}while(0);if((dj|0)==496){dj=0;while(1){if((c[fi>>2]|0)>>>0>=(c[Ji>>2]|0)>>>0)break;c[(c[bi>>2]|0)+(((c[fi>>2]|0)+1|0)*28|0)>>2]=1073741824;c[fi>>2]=(c[fi>>2]|0)+1;}c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+8>>2]=c[Ii>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+4>>2]=c[Ei>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+12>>2]=c[yi>>2];c[(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)>>2]=c[Ki>>2];Zh=(c[bi>>2]|0)+((c[Ji>>2]|0)*28|0)+16|0;c[Zh>>2]=c[Fi>>2];c[Zh+4>>2]=c[Fi+4>>2];c[Zh+8>>2]=c[Fi+8>>2];}c[Ii>>2]=(c[Ii>>2]|0)+-1;}c[Ci>>2]=(c[Ci>>2]|0)+1;}}}}while(0);c[ei>>2]=(c[ei>>2]|0)+1;}if((dj|0)==481){dj=0;c[gi>>2]=c[Di>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[Bi>>2]|0)-1<<3)>>2];c[fi>>2]=(c[ei>>2]|0)+1;break;}else if((dj|0)==504){dj=0;c[gi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+8>>2];c[hi>>2]=c[(c[bi>>2]|0)+((c[fi>>2]|0)*28|0)+4>>2];c[ei>>2]=(c[fi>>2]|0)-(c[gi>>2]|0);break;}}else{c[gi>>2]=c[mi>>2];c[hi>>2]=c[(c[ci>>2]|0)+((c[ki>>2]|0)-1<<3)>>2];c[ei>>2]=0;c[fi>>2]=1;}}while(0);c[Li>>2]=c[gi>>2];c[Mi>>2]=c[hi>>2];c[Ni>>2]=c[ei>>2];while(1){c[Oi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2];c[Pi>>2]=c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+8>>2]=c[Li>>2];c[(c[bi>>2]|0)+((c[Ni>>2]|0)*28|0)+4>>2]=c[Mi>>2];c[Li>>2]=c[Oi>>2];c[Mi>>2]=c[Pi>>2];if((c[Oi>>2]|0)>>>0>(c[Ni>>2]|0)>>>0)break;c[Ni>>2]=(c[Ni>>2]|0)-(c[Oi>>2]|0);}c[Qi>>2]=0;while(1){if((c[Qi>>2]|0)>>>0>=(c[fi>>2]|0)>>>0)break;c[Ri>>2]=(c[Vh>>2]|0)-(c[Wh>>2]|0);c[Si>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+8>>2];c[Ti>>2]=c[(c[bi>>2]|0)+((c[Qi>>2]|0)*28|0)+4>>2];if((c[Si>>2]|0)==1){c[Vh>>2]=(c[Vh>>2]|0)+1;c[Qi>>2]=(c[Qi>>2]|0)+1;continue;}c[Qi>>2]=(c[Qi>>2]|0)+(c[Si>>2]|0);c[Vh>>2]=(c[Vh>>2]|0)+(c[Si>>2]|0);if((c[Ti>>2]|0)>>>0<3){c[Ui>>2]=(c[Ti>>2]|0)+((c[Ri>>2]|0)==0&1);if(c[Ui>>2]|0){Zh=c[Nh>>2]|0;if((c[Ui>>2]|0)==3)Ej=(c[Zh>>2]|0)-1|0;else Ej=c[Zh+(c[Ui>>2]<<2)>>2]|0;c[Vi>>2]=Ej;if((c[Ui>>2]|0)>>>0>=2)c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=c[Vi>>2];}}else{c[(c[Nh>>2]|0)+8>>2]=c[(c[Nh>>2]|0)+4>>2];c[(c[Nh>>2]|0)+4>>2]=c[c[Nh>>2]>>2];c[c[Nh>>2]>>2]=(c[Ti>>2]|0)-2;}vm(c[Th>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,c[Si>>2]|0);wm(c[Mh>>2]|0,c[Ri>>2]|0,c[Wh>>2]|0,c[Ti>>2]|0,(c[Si>>2]|0)-3|0);c[Wh>>2]=c[Vh>>2];}xm(c[Th>>2]|0);}l=i;return(c[Xh>>2]|0)-(c[Wh>>2]|0)|0;}function dm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=l;l=l+48|0;i=h+36|0;j=h+32|0;k=h+28|0;m=h+24|0;n=h+20|0;o=h+16|0;p=h+12|0;q=h+8|0;r=h+4|0;s=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[(c[n>>2]|0)+8>>2];c[r>>2]=c[(c[n>>2]|0)+16>>2];c[s>>2]=c[(c[n>>2]|0)+20>>2];switch(c[r>>2]|0){case 7:{c[i>>2]=hn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[s>>2]|0,7)|0;t=c[i>>2]|0;l=h;return t|0;}case 5:{c[i>>2]=hn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[s>>2]|0,5)|0;t=c[i>>2]|0;l=h;return t|0;}case 6:{c[i>>2]=hn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[s>>2]|0,6)|0;t=c[i>>2]|0;l=h;return t|0;}default:{c[i>>2]=hn(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[s>>2]|0,4)|0;t=c[i>>2]|0;l=h;return t|0;}}return 0;}function em(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;h=l;l=l+32|0;i=h+28|0;j=h+24|0;k=h+20|0;m=h+16|0;n=h+12|0;o=h+8|0;p=h+4|0;q=h;c[j>>2]=a;c[k>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=c[(c[n>>2]|0)+16>>2];switch(c[q>>2]|0){case 7:{c[i>>2]=Zm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,7)|0;r=c[i>>2]|0;l=h;return r|0;}case 5:{c[i>>2]=Zm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,5)|0;r=c[i>>2]|0;l=h;return r|0;}case 6:{c[i>>2]=Zm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,6)|0;r=c[i>>2]|0;l=h;return r|0;}default:{c[i>>2]=Zm(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,4)|0;r=c[i>>2]|0;l=h;return r|0;}}return 0;}function fm(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;i=l;l=l+288|0;j=i+272|0;k=i+268|0;m=i+264|0;n=i+260|0;o=i+256|0;p=i+252|0;q=i+248|0;r=i+244|0;s=i+240|0;t=i+236|0;u=i+232|0;v=i+228|0;w=i+224|0;x=i+220|0;y=i+216|0;z=i+212|0;A=i+208|0;B=i+204|0;C=i+200|0;D=i+196|0;E=i+192|0;F=i+188|0;G=i+184|0;H=i+180|0;I=i+176|0;J=i+172|0;K=i+168|0;L=i+164|0;M=i+160|0;N=i+156|0;O=i+152|0;P=i+148|0;Q=i+144|0;R=i+140|0;S=i+136|0;T=i+132|0;U=i+128|0;V=i+124|0;W=i+120|0;X=i+116|0;Y=i+112|0;Z=i+108|0;_=i+104|0;$=i+100|0;aa=i+96|0;ba=i+92|0;ca=i+88|0;da=i+84|0;ea=i+80|0;fa=i+76|0;ga=i+72|0;ha=i+68|0;ia=i+64|0;ja=i+60|0;ka=i+56|0;la=i+52|0;ma=i+48|0;na=i+44|0;oa=i+40|0;pa=i+36|0;qa=i+32|0;ra=i+28|0;sa=i+24|0;ta=i+20|0;ua=i+16|0;va=i+12|0;wa=i+8|0;xa=i+4|0;ya=i;c[ta>>2]=a;c[ua>>2]=b;c[va>>2]=e;c[wa>>2]=f;c[xa>>2]=g;c[ya>>2]=h;h=c[ua>>2]|0;ua=c[va>>2]|0;va=c[wa>>2]|0;wa=c[xa>>2]|0;xa=c[ya>>2]|0;c[j>>2]=c[ta>>2];c[k>>2]=h;c[m>>2]=ua;c[n>>2]=va;c[o>>2]=wa;c[p>>2]=xa;c[q>>2]=0;c[r>>2]=0;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=c[(c[j>>2]|0)+4>>2];c[y>>2]=c[(c[j>>2]|0)+12>>2];c[z>>2]=c[(c[j>>2]|0)+16>>2];c[A>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[B>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=(c[B>>2]|0)+(c[y>>2]|0);c[D>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[E>>2]=c[q>>2]|0?7:6;c[F>>2]=c[c[m>>2]>>2];c[G>>2]=c[(c[m>>2]|0)+4>>2];c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[A>>2]|0)&1);while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[H>>2]=0;c[I>>2]=0;c[J>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[t>>2]|0)-(c[x>>2]|0);c[L>>2]=(c[K>>2]|0)+1-(c[F>>2]|0);c[M>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[N>>2]=(c[M>>2]|0)+(c[L>>2]|0);if(!((((c[L>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[L>>2]|0)|0)>>>0>=3:0)|0?(q=Bk((c[t>>2]|0)+1|0)|0,(q|0)==(Bk(c[N>>2]|0)|0)):0)?(c[O>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[H>>2]=(Lm((c[t>>2]|0)+1+4|0,(c[N>>2]|0)+4|0,c[v>>2]|0,c[O>>2]|0,c[A>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[P>>2]=99999999;c[Q>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,P)|0;if((c[Q>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[H>>2]=c[Q>>2];c[J>>2]=c[t>>2];c[I>>2]=c[P>>2];}if((c[H>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[R>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[S>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[T>>2]=(c[S>>2]|0)+(c[R>>2]|0),((c[R>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[R>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[T>>2]|0)|0)):0)?(c[U>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[V>>2]=(Lm((c[t>>2]|0)+4|0,(c[T>>2]|0)+4|0,c[v>>2]|0,c[U>>2]|0,c[A>>2]|0)|0)+4,c[W>>2]=(c[V>>2]|0)*3,q=(c[H>>2]|0)*3|0,c[X>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[V>>2]|0)>>>0>=4):0)?(c[W>>2]|0)>(c[X>>2]|0):0){c[H>>2]=c[V>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[Y>>2]=99999999;c[Z>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,Y)|0;q=c[Z>>2]<<2;c[_>>2]=q-(Mm((c[Y>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[$>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+4;if((c[Z>>2]|0)>>>0>=4?(c[_>>2]|0)>(c[$>>2]|0):0){c[H>>2]=c[Z>>2];c[I>>2]=c[Y>>2];c[J>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[aa>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[ba>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[ca>>2]=(c[ba>>2]|0)+(c[aa>>2]|0),((c[aa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[aa>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[ca>>2]|0)|0)):0)?(c[da>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[ea>>2]=(Lm((c[t>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[v>>2]|0,c[da>>2]|0,c[A>>2]|0)|0)+4,c[fa>>2]=c[ea>>2]<<2,q=c[H>>2]<<2,c[ga>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[ea>>2]|0)>>>0>=4):0)?(c[fa>>2]|0)>(c[ga>>2]|0):0){c[H>>2]=c[ea>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[ha>>2]=99999999;c[ia>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,ha)|0;q=c[ia>>2]<<2;c[ja>>2]=q-(Mm((c[ha>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[ka>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+7;if((c[ia>>2]|0)>>>0<4)break a;if((c[ja>>2]|0)<=(c[ka>>2]|0))break a;c[H>>2]=c[ia>>2];c[I>>2]=c[ha>>2];c[J>>2]=c[t>>2];}}while(0);if(c[I>>2]|0){c[la>>2]=(c[J>>2]|0)-(c[x>>2]|0)-((c[I>>2]|0)-2);c[ma>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?(c[B>>2]|0)+(c[la>>2]|0)|0:(c[x>>2]|0)+(c[la>>2]|0)|0;c[na>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[D>>2]|0:c[A>>2]|0;while(1){if((c[J>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;if((c[ma>>2]|0)>>>0<=(c[na>>2]|0)>>>0)break;if((d[(c[J>>2]|0)+-1>>0]|0|0)!=(d[(c[ma>>2]|0)+-1>>0]|0|0))break;c[J>>2]=(c[J>>2]|0)+-1;c[ma>>2]=(c[ma>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+1;}c[G>>2]=c[F>>2];c[F>>2]=(c[I>>2]|0)-2;}}c[oa>>2]=(c[J>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[oa>>2]|0,c[u>>2]|0,c[I>>2]|0,(c[H>>2]|0)-3|0);q=(c[J>>2]|0)+(c[H>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if((c[t>>2]|0)>>>0>(c[w>>2]|0)>>>0)break;c[pa>>2]=(c[t>>2]|0)-(c[x>>2]|0)-(c[G>>2]|0);c[qa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[ra>>2]=(c[qa>>2]|0)+(c[pa>>2]|0);if(!(((c[pa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[pa>>2]|0)|0)>>>0>=3:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk(c[ra>>2]|0)|0))break;c[sa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0;c[H>>2]=(Lm((c[t>>2]|0)+4|0,(c[ra>>2]|0)+4|0,c[v>>2]|0,c[sa>>2]|0,c[A>>2]|0)|0)+4;c[I>>2]=c[G>>2];c[G>>2]=c[F>>2];c[F>>2]=c[I>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[H>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[H>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[F>>2];c[(c[m>>2]|0)+4>>2]=c[G>>2];l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function gm(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;i=l;l=l+288|0;j=i+272|0;k=i+268|0;m=i+264|0;n=i+260|0;o=i+256|0;p=i+252|0;q=i+248|0;r=i+244|0;s=i+240|0;t=i+236|0;u=i+232|0;v=i+228|0;w=i+224|0;x=i+220|0;y=i+216|0;z=i+212|0;A=i+208|0;B=i+204|0;C=i+200|0;D=i+196|0;E=i+192|0;F=i+188|0;G=i+184|0;H=i+180|0;I=i+176|0;J=i+172|0;K=i+168|0;L=i+164|0;M=i+160|0;N=i+156|0;O=i+152|0;P=i+148|0;Q=i+144|0;R=i+140|0;S=i+136|0;T=i+132|0;U=i+128|0;V=i+124|0;W=i+120|0;X=i+116|0;Y=i+112|0;Z=i+108|0;_=i+104|0;$=i+100|0;aa=i+96|0;ba=i+92|0;ca=i+88|0;da=i+84|0;ea=i+80|0;fa=i+76|0;ga=i+72|0;ha=i+68|0;ia=i+64|0;ja=i+60|0;ka=i+56|0;la=i+52|0;ma=i+48|0;na=i+44|0;oa=i+40|0;pa=i+36|0;qa=i+32|0;ra=i+28|0;sa=i+24|0;ta=i+20|0;ua=i+16|0;va=i+12|0;wa=i+8|0;xa=i+4|0;ya=i;c[ta>>2]=a;c[ua>>2]=b;c[va>>2]=e;c[wa>>2]=f;c[xa>>2]=g;c[ya>>2]=h;h=c[ua>>2]|0;ua=c[va>>2]|0;va=c[wa>>2]|0;wa=c[xa>>2]|0;xa=c[ya>>2]|0;c[j>>2]=c[ta>>2];c[k>>2]=h;c[m>>2]=ua;c[n>>2]=va;c[o>>2]=wa;c[p>>2]=xa;c[q>>2]=0;c[r>>2]=1;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=c[(c[j>>2]|0)+4>>2];c[y>>2]=c[(c[j>>2]|0)+12>>2];c[z>>2]=c[(c[j>>2]|0)+16>>2];c[A>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[B>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=(c[B>>2]|0)+(c[y>>2]|0);c[D>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[E>>2]=c[q>>2]|0?7:6;c[F>>2]=c[c[m>>2]>>2];c[G>>2]=c[(c[m>>2]|0)+4>>2];c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[A>>2]|0)&1);while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[H>>2]=0;c[I>>2]=0;c[J>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[t>>2]|0)-(c[x>>2]|0);c[L>>2]=(c[K>>2]|0)+1-(c[F>>2]|0);c[M>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[N>>2]=(c[M>>2]|0)+(c[L>>2]|0);if(!((((c[L>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[L>>2]|0)|0)>>>0>=3:0)|0?(q=Bk((c[t>>2]|0)+1|0)|0,(q|0)==(Bk(c[N>>2]|0)|0)):0)?(c[O>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[H>>2]=(Lm((c[t>>2]|0)+1+4|0,(c[N>>2]|0)+4|0,c[v>>2]|0,c[O>>2]|0,c[A>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[P>>2]=99999999;c[Q>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,P)|0;if((c[Q>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[H>>2]=c[Q>>2];c[J>>2]=c[t>>2];c[I>>2]=c[P>>2];}if((c[H>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[R>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[S>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[T>>2]=(c[S>>2]|0)+(c[R>>2]|0),((c[R>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[R>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[T>>2]|0)|0)):0)?(c[U>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[V>>2]=(Lm((c[t>>2]|0)+4|0,(c[T>>2]|0)+4|0,c[v>>2]|0,c[U>>2]|0,c[A>>2]|0)|0)+4,c[W>>2]=(c[V>>2]|0)*3,q=(c[H>>2]|0)*3|0,c[X>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[V>>2]|0)>>>0>=4):0)?(c[W>>2]|0)>(c[X>>2]|0):0){c[H>>2]=c[V>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[Y>>2]=99999999;c[Z>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,Y)|0;q=c[Z>>2]<<2;c[_>>2]=q-(Mm((c[Y>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[$>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+4;if((c[Z>>2]|0)>>>0>=4?(c[_>>2]|0)>(c[$>>2]|0):0){c[H>>2]=c[Z>>2];c[I>>2]=c[Y>>2];c[J>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[aa>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[ba>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[ca>>2]=(c[ba>>2]|0)+(c[aa>>2]|0),((c[aa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[aa>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[ca>>2]|0)|0)):0)?(c[da>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[ea>>2]=(Lm((c[t>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[v>>2]|0,c[da>>2]|0,c[A>>2]|0)|0)+4,c[fa>>2]=c[ea>>2]<<2,q=c[H>>2]<<2,c[ga>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[ea>>2]|0)>>>0>=4):0)?(c[fa>>2]|0)>(c[ga>>2]|0):0){c[H>>2]=c[ea>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[ha>>2]=99999999;c[ia>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,ha)|0;q=c[ia>>2]<<2;c[ja>>2]=q-(Mm((c[ha>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[ka>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+7;if((c[ia>>2]|0)>>>0<4)break a;if((c[ja>>2]|0)<=(c[ka>>2]|0))break a;c[H>>2]=c[ia>>2];c[I>>2]=c[ha>>2];c[J>>2]=c[t>>2];}}while(0);if(c[I>>2]|0){c[la>>2]=(c[J>>2]|0)-(c[x>>2]|0)-((c[I>>2]|0)-2);c[ma>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?(c[B>>2]|0)+(c[la>>2]|0)|0:(c[x>>2]|0)+(c[la>>2]|0)|0;c[na>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[D>>2]|0:c[A>>2]|0;while(1){if((c[J>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;if((c[ma>>2]|0)>>>0<=(c[na>>2]|0)>>>0)break;if((d[(c[J>>2]|0)+-1>>0]|0|0)!=(d[(c[ma>>2]|0)+-1>>0]|0|0))break;c[J>>2]=(c[J>>2]|0)+-1;c[ma>>2]=(c[ma>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+1;}c[G>>2]=c[F>>2];c[F>>2]=(c[I>>2]|0)-2;}}c[oa>>2]=(c[J>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[oa>>2]|0,c[u>>2]|0,c[I>>2]|0,(c[H>>2]|0)-3|0);q=(c[J>>2]|0)+(c[H>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if((c[t>>2]|0)>>>0>(c[w>>2]|0)>>>0)break;c[pa>>2]=(c[t>>2]|0)-(c[x>>2]|0)-(c[G>>2]|0);c[qa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[ra>>2]=(c[qa>>2]|0)+(c[pa>>2]|0);if(!(((c[pa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[pa>>2]|0)|0)>>>0>=3:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk(c[ra>>2]|0)|0))break;c[sa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0;c[H>>2]=(Lm((c[t>>2]|0)+4|0,(c[ra>>2]|0)+4|0,c[v>>2]|0,c[sa>>2]|0,c[A>>2]|0)|0)+4;c[I>>2]=c[G>>2];c[G>>2]=c[F>>2];c[F>>2]=c[I>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[H>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[H>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[F>>2];c[(c[m>>2]|0)+4>>2]=c[G>>2];l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function hm(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;i=l;l=l+288|0;j=i+272|0;k=i+268|0;m=i+264|0;n=i+260|0;o=i+256|0;p=i+252|0;q=i+248|0;r=i+244|0;s=i+240|0;t=i+236|0;u=i+232|0;v=i+228|0;w=i+224|0;x=i+220|0;y=i+216|0;z=i+212|0;A=i+208|0;B=i+204|0;C=i+200|0;D=i+196|0;E=i+192|0;F=i+188|0;G=i+184|0;H=i+180|0;I=i+176|0;J=i+172|0;K=i+168|0;L=i+164|0;M=i+160|0;N=i+156|0;O=i+152|0;P=i+148|0;Q=i+144|0;R=i+140|0;S=i+136|0;T=i+132|0;U=i+128|0;V=i+124|0;W=i+120|0;X=i+116|0;Y=i+112|0;Z=i+108|0;_=i+104|0;$=i+100|0;aa=i+96|0;ba=i+92|0;ca=i+88|0;da=i+84|0;ea=i+80|0;fa=i+76|0;ga=i+72|0;ha=i+68|0;ia=i+64|0;ja=i+60|0;ka=i+56|0;la=i+52|0;ma=i+48|0;na=i+44|0;oa=i+40|0;pa=i+36|0;qa=i+32|0;ra=i+28|0;sa=i+24|0;ta=i+20|0;ua=i+16|0;va=i+12|0;wa=i+8|0;xa=i+4|0;ya=i;c[ta>>2]=a;c[ua>>2]=b;c[va>>2]=e;c[wa>>2]=f;c[xa>>2]=g;c[ya>>2]=h;h=c[ua>>2]|0;ua=c[va>>2]|0;va=c[wa>>2]|0;wa=c[xa>>2]|0;xa=c[ya>>2]|0;c[j>>2]=c[ta>>2];c[k>>2]=h;c[m>>2]=ua;c[n>>2]=va;c[o>>2]=wa;c[p>>2]=xa;c[q>>2]=0;c[r>>2]=2;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=c[(c[j>>2]|0)+4>>2];c[y>>2]=c[(c[j>>2]|0)+12>>2];c[z>>2]=c[(c[j>>2]|0)+16>>2];c[A>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[B>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=(c[B>>2]|0)+(c[y>>2]|0);c[D>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[E>>2]=c[q>>2]|0?7:6;c[F>>2]=c[c[m>>2]>>2];c[G>>2]=c[(c[m>>2]|0)+4>>2];c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[A>>2]|0)&1);while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[H>>2]=0;c[I>>2]=0;c[J>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[t>>2]|0)-(c[x>>2]|0);c[L>>2]=(c[K>>2]|0)+1-(c[F>>2]|0);c[M>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[N>>2]=(c[M>>2]|0)+(c[L>>2]|0);if(!((((c[L>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[L>>2]|0)|0)>>>0>=3:0)|0?(q=Bk((c[t>>2]|0)+1|0)|0,(q|0)==(Bk(c[N>>2]|0)|0)):0)?(c[O>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[H>>2]=(Lm((c[t>>2]|0)+1+4|0,(c[N>>2]|0)+4|0,c[v>>2]|0,c[O>>2]|0,c[A>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[P>>2]=99999999;c[Q>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,P)|0;if((c[Q>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[H>>2]=c[Q>>2];c[J>>2]=c[t>>2];c[I>>2]=c[P>>2];}if((c[H>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[R>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[S>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[T>>2]=(c[S>>2]|0)+(c[R>>2]|0),((c[R>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[R>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[T>>2]|0)|0)):0)?(c[U>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[V>>2]=(Lm((c[t>>2]|0)+4|0,(c[T>>2]|0)+4|0,c[v>>2]|0,c[U>>2]|0,c[A>>2]|0)|0)+4,c[W>>2]=(c[V>>2]|0)*3,q=(c[H>>2]|0)*3|0,c[X>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[V>>2]|0)>>>0>=4):0)?(c[W>>2]|0)>(c[X>>2]|0):0){c[H>>2]=c[V>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[Y>>2]=99999999;c[Z>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,Y)|0;q=c[Z>>2]<<2;c[_>>2]=q-(Mm((c[Y>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[$>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+4;if((c[Z>>2]|0)>>>0>=4?(c[_>>2]|0)>(c[$>>2]|0):0){c[H>>2]=c[Z>>2];c[I>>2]=c[Y>>2];c[J>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[aa>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[ba>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[ca>>2]=(c[ba>>2]|0)+(c[aa>>2]|0),((c[aa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[aa>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[ca>>2]|0)|0)):0)?(c[da>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[ea>>2]=(Lm((c[t>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[v>>2]|0,c[da>>2]|0,c[A>>2]|0)|0)+4,c[fa>>2]=c[ea>>2]<<2,q=c[H>>2]<<2,c[ga>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[ea>>2]|0)>>>0>=4):0)?(c[fa>>2]|0)>(c[ga>>2]|0):0){c[H>>2]=c[ea>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[ha>>2]=99999999;c[ia>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,ha)|0;q=c[ia>>2]<<2;c[ja>>2]=q-(Mm((c[ha>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[ka>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+7;if((c[ia>>2]|0)>>>0<4)break a;if((c[ja>>2]|0)<=(c[ka>>2]|0))break a;c[H>>2]=c[ia>>2];c[I>>2]=c[ha>>2];c[J>>2]=c[t>>2];}}while(0);if(c[I>>2]|0){c[la>>2]=(c[J>>2]|0)-(c[x>>2]|0)-((c[I>>2]|0)-2);c[ma>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?(c[B>>2]|0)+(c[la>>2]|0)|0:(c[x>>2]|0)+(c[la>>2]|0)|0;c[na>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[D>>2]|0:c[A>>2]|0;while(1){if((c[J>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;if((c[ma>>2]|0)>>>0<=(c[na>>2]|0)>>>0)break;if((d[(c[J>>2]|0)+-1>>0]|0|0)!=(d[(c[ma>>2]|0)+-1>>0]|0|0))break;c[J>>2]=(c[J>>2]|0)+-1;c[ma>>2]=(c[ma>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+1;}c[G>>2]=c[F>>2];c[F>>2]=(c[I>>2]|0)-2;}}c[oa>>2]=(c[J>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[oa>>2]|0,c[u>>2]|0,c[I>>2]|0,(c[H>>2]|0)-3|0);q=(c[J>>2]|0)+(c[H>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if((c[t>>2]|0)>>>0>(c[w>>2]|0)>>>0)break;c[pa>>2]=(c[t>>2]|0)-(c[x>>2]|0)-(c[G>>2]|0);c[qa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[ra>>2]=(c[qa>>2]|0)+(c[pa>>2]|0);if(!(((c[pa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[pa>>2]|0)|0)>>>0>=3:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk(c[ra>>2]|0)|0))break;c[sa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0;c[H>>2]=(Lm((c[t>>2]|0)+4|0,(c[ra>>2]|0)+4|0,c[v>>2]|0,c[sa>>2]|0,c[A>>2]|0)|0)+4;c[I>>2]=c[G>>2];c[G>>2]=c[F>>2];c[F>>2]=c[I>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[H>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[H>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[F>>2];c[(c[m>>2]|0)+4>>2]=c[G>>2];l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function im(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;i=l;l=l+288|0;j=i+272|0;k=i+268|0;m=i+264|0;n=i+260|0;o=i+256|0;p=i+252|0;q=i+248|0;r=i+244|0;s=i+240|0;t=i+236|0;u=i+232|0;v=i+228|0;w=i+224|0;x=i+220|0;y=i+216|0;z=i+212|0;A=i+208|0;B=i+204|0;C=i+200|0;D=i+196|0;E=i+192|0;F=i+188|0;G=i+184|0;H=i+180|0;I=i+176|0;J=i+172|0;K=i+168|0;L=i+164|0;M=i+160|0;N=i+156|0;O=i+152|0;P=i+148|0;Q=i+144|0;R=i+140|0;S=i+136|0;T=i+132|0;U=i+128|0;V=i+124|0;W=i+120|0;X=i+116|0;Y=i+112|0;Z=i+108|0;_=i+104|0;$=i+100|0;aa=i+96|0;ba=i+92|0;ca=i+88|0;da=i+84|0;ea=i+80|0;fa=i+76|0;ga=i+72|0;ha=i+68|0;ia=i+64|0;ja=i+60|0;ka=i+56|0;la=i+52|0;ma=i+48|0;na=i+44|0;oa=i+40|0;pa=i+36|0;qa=i+32|0;ra=i+28|0;sa=i+24|0;ta=i+20|0;ua=i+16|0;va=i+12|0;wa=i+8|0;xa=i+4|0;ya=i;c[ta>>2]=a;c[ua>>2]=b;c[va>>2]=e;c[wa>>2]=f;c[xa>>2]=g;c[ya>>2]=h;h=c[ua>>2]|0;ua=c[va>>2]|0;va=c[wa>>2]|0;wa=c[xa>>2]|0;xa=c[ya>>2]|0;c[j>>2]=c[ta>>2];c[k>>2]=h;c[m>>2]=ua;c[n>>2]=va;c[o>>2]=wa;c[p>>2]=xa;c[q>>2]=1;c[r>>2]=2;c[s>>2]=c[o>>2];c[t>>2]=c[s>>2];c[u>>2]=c[s>>2];c[v>>2]=(c[s>>2]|0)+(c[p>>2]|0);c[w>>2]=(c[v>>2]|0)+-8;c[x>>2]=c[(c[j>>2]|0)+4>>2];c[y>>2]=c[(c[j>>2]|0)+12>>2];c[z>>2]=c[(c[j>>2]|0)+16>>2];c[A>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[B>>2]=c[(c[j>>2]|0)+8>>2];c[C>>2]=(c[B>>2]|0)+(c[y>>2]|0);c[D>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[E>>2]=c[q>>2]|0?7:6;c[F>>2]=c[c[m>>2]>>2];c[G>>2]=c[(c[m>>2]|0)+4>>2];c[(c[j>>2]|0)+28>>2]=c[(c[j>>2]|0)+24>>2];c[t>>2]=(c[t>>2]|0)+((c[t>>2]|0)==(c[A>>2]|0)&1);while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;c[H>>2]=0;c[I>>2]=0;c[J>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[t>>2]|0)-(c[x>>2]|0);c[L>>2]=(c[K>>2]|0)+1-(c[F>>2]|0);c[M>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[N>>2]=(c[M>>2]|0)+(c[L>>2]|0);if(!((((c[L>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[L>>2]|0)|0)>>>0>=3:0)|0?(q=Bk((c[t>>2]|0)+1|0)|0,(q|0)==(Bk(c[N>>2]|0)|0)):0)?(c[O>>2]=(c[L>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[H>>2]=(Lm((c[t>>2]|0)+1+4|0,(c[N>>2]|0)+4|0,c[v>>2]|0,c[O>>2]|0,c[A>>2]|0)|0)+4,!(c[r>>2]|0)):0)){c[P>>2]=99999999;c[Q>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,P)|0;if((c[Q>>2]|0)>>>0>(c[H>>2]|0)>>>0){c[H>>2]=c[Q>>2];c[J>>2]=c[t>>2];c[I>>2]=c[P>>2];}if((c[H>>2]|0)>>>0<4){c[t>>2]=(c[t>>2]|0)+(((c[t>>2]|0)-(c[u>>2]|0)>>8)+1);continue;}a:do{if((c[r>>2]|0)>>>0>=1)while(1){if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[R>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[S>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[T>>2]=(c[S>>2]|0)+(c[R>>2]|0),((c[R>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[R>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[T>>2]|0)|0)):0)?(c[U>>2]=(c[R>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[V>>2]=(Lm((c[t>>2]|0)+4|0,(c[T>>2]|0)+4|0,c[v>>2]|0,c[U>>2]|0,c[A>>2]|0)|0)+4,c[W>>2]=(c[V>>2]|0)*3,q=(c[H>>2]|0)*3|0,c[X>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[V>>2]|0)>>>0>=4):0)?(c[W>>2]|0)>(c[X>>2]|0):0){c[H>>2]=c[V>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[Y>>2]=99999999;c[Z>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,Y)|0;q=c[Z>>2]<<2;c[_>>2]=q-(Mm((c[Y>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[$>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+4;if((c[Z>>2]|0)>>>0>=4?(c[_>>2]|0)>(c[$>>2]|0):0){c[H>>2]=c[Z>>2];c[I>>2]=c[Y>>2];c[J>>2]=c[t>>2];continue;}if((c[r>>2]|0)!=2)break a;if((c[t>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break a;c[t>>2]=(c[t>>2]|0)+1;c[K>>2]=(c[K>>2]|0)+1;if((((c[I>>2]|0?(c[aa>>2]=(c[K>>2]|0)-(c[F>>2]|0),c[ba>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0,c[ca>>2]=(c[ba>>2]|0)+(c[aa>>2]|0),((c[aa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[aa>>2]|0)|0)>>>0>=3:0)|0):0)?(q=Bk(c[t>>2]|0)|0,(q|0)==(Bk(c[ca>>2]|0)|0)):0)?(c[da>>2]=(c[aa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0,c[ea>>2]=(Lm((c[t>>2]|0)+4|0,(c[ca>>2]|0)+4|0,c[v>>2]|0,c[da>>2]|0,c[A>>2]|0)|0)+4,c[fa>>2]=c[ea>>2]<<2,q=c[H>>2]<<2,c[ga>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+1,(c[ea>>2]|0)>>>0>=4):0)?(c[fa>>2]|0)>(c[ga>>2]|0):0){c[H>>2]=c[ea>>2];c[I>>2]=0;c[J>>2]=c[t>>2];}c[ha>>2]=99999999;c[ia>>2]=tc[c[E>>2]&7](c[j>>2]|0,c[n>>2]|0,c[t>>2]|0,c[v>>2]|0,ha)|0;q=c[ia>>2]<<2;c[ja>>2]=q-(Mm((c[ha>>2]|0)+1|0)|0);q=c[H>>2]<<2;c[ka>>2]=q-(Mm((c[I>>2]|0)+1|0)|0)+7;if((c[ia>>2]|0)>>>0<4)break a;if((c[ja>>2]|0)<=(c[ka>>2]|0))break a;c[H>>2]=c[ia>>2];c[I>>2]=c[ha>>2];c[J>>2]=c[t>>2];}}while(0);if(c[I>>2]|0){c[la>>2]=(c[J>>2]|0)-(c[x>>2]|0)-((c[I>>2]|0)-2);c[ma>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?(c[B>>2]|0)+(c[la>>2]|0)|0:(c[x>>2]|0)+(c[la>>2]|0)|0;c[na>>2]=(c[la>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[D>>2]|0:c[A>>2]|0;while(1){if((c[J>>2]|0)>>>0<=(c[u>>2]|0)>>>0)break;if((c[ma>>2]|0)>>>0<=(c[na>>2]|0)>>>0)break;if((d[(c[J>>2]|0)+-1>>0]|0|0)!=(d[(c[ma>>2]|0)+-1>>0]|0|0))break;c[J>>2]=(c[J>>2]|0)+-1;c[ma>>2]=(c[ma>>2]|0)+-1;c[H>>2]=(c[H>>2]|0)+1;}c[G>>2]=c[F>>2];c[F>>2]=(c[I>>2]|0)-2;}}c[oa>>2]=(c[J>>2]|0)-(c[u>>2]|0);Nm(c[k>>2]|0,c[oa>>2]|0,c[u>>2]|0,c[I>>2]|0,(c[H>>2]|0)-3|0);q=(c[J>>2]|0)+(c[H>>2]|0)|0;c[t>>2]=q;c[u>>2]=q;while(1){if((c[t>>2]|0)>>>0>(c[w>>2]|0)>>>0)break;c[pa>>2]=(c[t>>2]|0)-(c[x>>2]|0)-(c[G>>2]|0);c[qa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[B>>2]|0:c[x>>2]|0;c[ra>>2]=(c[qa>>2]|0)+(c[pa>>2]|0);if(!(((c[pa>>2]|0)>>>0>(c[z>>2]|0)>>>0?((c[y>>2]|0)-1-(c[pa>>2]|0)|0)>>>0>=3:0)|0))break;q=Bk(c[t>>2]|0)|0;if((q|0)!=(Bk(c[ra>>2]|0)|0))break;c[sa>>2]=(c[pa>>2]|0)>>>0<(c[y>>2]|0)>>>0?c[C>>2]|0:c[v>>2]|0;c[H>>2]=(Lm((c[t>>2]|0)+4|0,(c[ra>>2]|0)+4|0,c[v>>2]|0,c[sa>>2]|0,c[A>>2]|0)|0)+4;c[I>>2]=c[G>>2];c[G>>2]=c[F>>2];c[F>>2]=c[I>>2];Nm(c[k>>2]|0,0,c[u>>2]|0,0,(c[H>>2]|0)-3|0);c[t>>2]=(c[t>>2]|0)+(c[H>>2]|0);c[u>>2]=c[t>>2];}}c[c[m>>2]>>2]=c[F>>2];c[(c[m>>2]|0)+4>>2]=c[G>>2];l=i;return(c[v>>2]|0)-(c[u>>2]|0)|0;}function DC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,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;f=l;l=l+80|0;g=f+56|0;h=f+40|0;i=f+28|0;j=f+12|0;k=f;m=f+24|0;a:do{if((d-b|0)>2?(a[b>>0]|0)==85:0){switch(a[b+1>>0]|0){case 116:{c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;RB(h,19476,AB(19476)|0);IB(g,h);n=e+4|0;o=c[n>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){KB(o,g);c[n>>2]=(c[n>>2]|0)+24;}else LB(e,g);QA(g);iB(h);o=b+2|0;if((o|0)==(d|0)){p=c[n>>2]|0;q=0;while(1){if((q|0)==-1)break;r=q+-1|0;QA(p+(r*24|0)|0);q=r;}c[n>>2]=p+-24;s=b;break a;}if(((a[o>>0]|0)+-48|0)>>>0<10){q=b+3|0;while(1){if((q|0)==(d|0)){t=d;break;}if(((a[q>>0]|0)+-48|0)>>>0>=10){t=q;break;}q=q+1|0;}MC((c[n>>2]|0)+-24|0,o,t);u=t;}else u=o;NC((c[n>>2]|0)+-24|0,39);if((u|0)!=(d|0)?(a[u>>0]|0)==95:0){s=u+1|0;break a;}q=c[n>>2]|0;p=0;while(1){if((p|0)==-1)break;r=p+-1|0;QA(q+(r*24|0)|0);p=r;}c[n>>2]=q+-24;s=b;break a;break;}case 108:break;default:{s=b;break a;}}c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;RB(i,19485,AB(19485)|0);IB(g,i);p=e+4|0;o=c[p>>2]|0;if(o>>>0<(c[e+8>>2]|0)>>>0){KB(o,g);c[p>>2]=(c[p>>2]|0)+24;}else LB(e,g);QA(g);iB(i);o=b+2|0;do{if((a[o>>0]|0)!=118){r=mB(o,d,e)|0;if((r|0)==(o|0)){v=c[p>>2]|0;w=0;while(1){if((w|0)==-1)break;x=w+-1|0;QA(v+(x*24|0)|0);w=x;}c[p>>2]=v+-24;s=b;break a;}w=c[p>>2]|0;if(((w-(c[e>>2]|0)|0)/24|0)>>>0<2){s=b;break a;}FB(j,w+-24|0);w=c[p>>2]|0;x=0;while(1){if((x|0)==-1)break;y=x+-1|0;QA(w+(y*24|0)|0);x=y;}c[p>>2]=w+-24;x=j+11|0;v=a[x>>0]|0;y=v<<24>>24<0;z=j+4|0;TA(w+-48|0,y?c[j>>2]|0:j,y?c[z>>2]|0:v&255)|0;v=r;while(1){y=mB(v,d,e)|0;if((y|0)==(v|0)){A=54;break;}B=c[p>>2]|0;if(((B-(c[e>>2]|0)|0)/24|0)>>>0<2){A=82;break;}FB(k,B+-24|0);if((a[x>>0]|0)<0){B=c[j>>2]|0;a[g>>0]=0;cB(B,g);c[z>>2]=0;}else{a[g>>0]=0;cB(j,g);a[x>>0]=0;}TB(j);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];B=0;while(1){if((B|0)==3)break;c[k+(B<<2)>>2]=0;B=B+1|0;}iB(k);B=c[p>>2]|0;C=0;while(1){if((C|0)==-1)break;D=C+-1|0;QA(B+(D*24|0)|0);C=D;}c[p>>2]=B+-24;C=a[x>>0]|0;if((C<<24>>24<0?c[z>>2]|0:C&255)|0){qB(B+-48|0,18897)|0;C=a[x>>0]|0;D=C<<24>>24<0;TA((c[p>>2]|0)+-24|0,D?c[j>>2]|0:j,D?c[z>>2]|0:C&255)|0;}v=y;}if((A|0)==54){qB((c[p>>2]|0)+-24|0,18673)|0;iB(j);E=v;break;}else if((A|0)==82){iB(j);s=b;break a;}}else{NC((c[p>>2]|0)+-24|0,41);E=b+3|0;}}while(0);if((E|0)!=(d|0)?(a[E>>0]|0)==69:0){o=E+1|0;if((o|0)==(d|0)){q=c[p>>2]|0;n=0;while(1){if((n|0)==-1)break;z=n+-1|0;QA(q+(z*24|0)|0);n=z;}c[p>>2]=q+-24;s=b;break;}if(((a[o>>0]|0)+-48|0)>>>0<10){n=E+2|0;while(1){if((n|0)==(d|0)){F=d;break;}if(((a[n>>0]|0)+-48|0)>>>0>=10){F=n;break;}n=n+1|0;}n=(c[p>>2]|0)+-24|0;if((a[n+11>>0]|0)<0)G=c[n>>2]|0;else G=n;c[m>>2]=G+7;c[g>>2]=c[m>>2];OC(n,g,o,F)|0;H=F;}else H=o;if((H|0)!=(d|0)?(a[H>>0]|0)==95:0){s=H+1|0;break;}n=c[p>>2]|0;q=0;while(1){if((q|0)==-1)break;z=q+-1|0;QA(n+(z*24|0)|0);q=z;}c[p>>2]=n+-24;s=b;break;}q=c[p>>2]|0;o=0;while(1){if((o|0)==-1)break;z=o+-1|0;QA(q+(z*24|0)|0);o=z;}c[p>>2]=q+-24;s=b;}else s=b;}while(0);l=f;return s|0;}function EC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+32|0;g=f;a:do{if((d-b|0)>1)do{switch(a[b>>0]|0){case 97:{switch(a[b+1>>0]|0){case 97:{FC(g,18975);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 110:case 100:{GC(g,18986);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 78:{FC(g,18996);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 83:{GC(g,19007);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 99:{switch(a[b+1>>0]|0){case 108:{FC(g,19017);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 109:{GC(g,19028);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 111:{GC(g,19038);h=e+4|0;i=c[h>>2]|0;if(i>>>0<(c[e+8>>2]|0)>>>0){KB(i,g);c[h>>2]=(c[h>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 118:{h=e+63|0;i=a[h>>0]|0;a[h>>0]=0;k=b+2|0;m=mB(k,d,e)|0;a[h>>0]=i;if((m|0)==(k|0)){j=b;break a;}k=c[e+4>>2]|0;if((c[e>>2]|0)==(k|0)){j=b;break a;}pB(k+-24|0,0,19048)|0;a[e+60>>0]=1;j=m;break a;break;}default:{j=b;break a;}}break;}case 100:{switch(a[b+1>>0]|0){case 97:{HC(g,19058);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 101:{GC(g,19076);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 108:{IC(g);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 118:{GC(g,19086);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 86:{FC(g,19096);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 101:{switch(a[b+1>>0]|0){case 111:{GC(g,19107);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 79:{FC(g,19117);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 113:{FC(g,19128);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 103:{switch(a[b+1>>0]|0){case 101:{FC(g,19139);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 116:{GC(g,19150);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 105:{if((a[b+1>>0]|0)!=120){j=b;break a;}FC(g,19160);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 108:{switch(a[b+1>>0]|0){case 101:{FC(g,19171);m=e+4|0;k=c[m>>2]|0;if(k>>>0<(c[e+8>>2]|0)>>>0){KB(k,g);c[m>>2]=(c[m>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 105:{m=b+2|0;k=GB(m,d,e)|0;if((k|0)==(m|0)){j=b;break a;}m=c[e+4>>2]|0;if((c[e>>2]|0)==(m|0)){j=b;break a;}pB(m+-24|0,0,19182)|0;j=k;break a;break;}case 115:{FC(g,19194);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 83:{JC(g,19205);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 116:{GC(g,19217);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 109:{switch(a[b+1>>0]|0){case 105:{GC(g,19227);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 73:{FC(g,19237);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 108:{GC(g,19076);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 76:{FC(g,19248);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 109:{FC(g,19259);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 110:{switch(a[b+1>>0]|0){case 97:{KC(g,19270);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 101:{FC(g,19285);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 103:{GC(g,19227);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 116:{GC(g,19296);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 119:{LC(g,19306);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 111:{switch(a[b+1>>0]|0){case 111:{FC(g,19319);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 114:{GC(g,19330);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 82:{FC(g,19340);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 112:{switch(a[b+1>>0]|0){case 109:{JC(g,19351);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 108:{GC(g,19363);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 76:{FC(g,19373);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 112:{FC(g,19384);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 115:{GC(g,19363);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 116:{FC(g,19395);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 113:{if((a[b+1>>0]|0)!=117){j=b;break a;}GC(g,19406);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 114:{switch(a[b+1>>0]|0){case 109:{GC(g,19416);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 77:{FC(g,19426);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 115:{FC(g,19437);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}case 83:{JC(g,19448);k=e+4|0;m=c[k>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[k>>2]=(c[k>>2]|0)+24;}else LB(e,g);QA(g);j=b+2|0;break a;break;}default:{j=b;break a;}}break;}case 118:{if(((a[b+1>>0]|0)+-48|0)>>>0>=10){j=b;break a;}k=b+2|0;m=GB(k,d,e)|0;if((m|0)==(k|0)){j=b;break a;}k=c[e+4>>2]|0;if((c[e>>2]|0)==(k|0)){j=b;break a;}pB(k+-24|0,0,19048)|0;j=m;break a;break;}default:{j=b;break a;}}}while(0);else j=b;}while(0);l=f;return j|0;}function FC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,10);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function GC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,9);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function HC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,17);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function IC(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,19460,15);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function JC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,11);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function KC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,14);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function LC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,12);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function MC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+16|0;g=d;h=f;i=b+11|0;j=a[i>>0]|0;k=j<<24>>24<0;if(k){m=c[b+4>>2]|0;n=(c[b+8>>2]&2147483647)+-1|0;}else{m=j&255;n=10;}o=e-g|0;do{if(o|0){if(k){p=c[b>>2]|0;q=c[b+4>>2]|0;}else{p=b;q=j&255;}if(PC(d,p,p+q|0)|0){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;QC(h,d,e);r=a[h+11>>0]|0;s=r<<24>>24<0;TA(b,s?c[h>>2]|0:h,s?c[h+4>>2]|0:r&255)|0;iB(h);break;}if((n-m|0)>>>0>>0)RC(b,n,m+o-n|0,m,m,0);if((a[i>>0]|0)<0)t=c[b>>2]|0;else t=b;r=e+(m-g)|0;s=t+m|0;u=d;while(1){if((u|0)==(e|0))break;cB(s,u);s=s+1|0;u=u+1|0;}a[h>>0]=0;cB(t+r|0,h);u=m+o|0;if((a[i>>0]|0)<0){c[b+4>>2]=u;break;}else{a[i>>0]=u;break;}}}while(0);l=f;return;}function NC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+16|0;f=e;g=e+1|0;a[f>>0]=d;d=b+11|0;h=a[d>>0]|0;i=h<<24>>24<0;if(i){j=c[b+4>>2]|0;k=(c[b+8>>2]&2147483647)+-1|0;}else{j=h&255;k=10;}if((j|0)==(k|0)){RC(b,k,1,k,k,0);if((a[d>>0]|0)<0)m=8;else m=7;}else if(i)m=8;else m=7;if((m|0)==7){a[d>>0]=j+1;n=b;}else if((m|0)==8){m=c[b>>2]|0;c[b+4>>2]=j+1;n=m;}m=n+j|0;cB(m,f);a[g>>0]=0;cB(m+1|0,g);l=e;return;}function OC(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,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;g=l;l=l+32|0;h=g+16|0;i=g+4|0;j=g;k=b+11|0;m=a[k>>0]|0;n=m<<24>>24<0;if(n)o=c[b>>2]|0;else o=b;p=c[d>>2]|0;d=p-o|0;o=f-e|0;do{if(!o){q=m;r=27;}else{if(n){s=c[b>>2]|0;t=c[b+4>>2]|0;}else{s=b;t=m&255;}if(PC(e,s,s+t|0)|0){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;QC(i,e,f);c[j>>2]=p;u=a[i+11>>0]|0;v=u<<24>>24<0;w=v?c[i>>2]|0:i;x=w+(v?c[i+4>>2]|0:u&255)|0;c[h>>2]=c[j>>2];u=OC(b,h,w,x)|0;iB(i);y=u;break;}u=a[k>>0]|0;x=u<<24>>24<0;if(x){z=c[b+4>>2]|0;A=(c[b+8>>2]&2147483647)+-1|0;}else{z=u&255;A=10;}if((A-z|0)>>>0>=o>>>0){if(x)B=c[b>>2]|0;else B=b;x=z-d|0;if(!x)C=B;else{u=B+d|0;wC(u+o|0,u,x)|0;C=B;}}else{RC(b,A,z+o-A|0,z,d,o);C=c[b>>2]|0;}x=z+o|0;if((a[k>>0]|0)<0)c[b+4>>2]=x;else a[k>>0]=x;a[h>>0]=0;cB(C+x|0,h);x=e;u=C+d|0;while(1){if((x|0)==(f|0))break;cB(u,x);x=x+1|0;u=u+1|0;}q=a[k>>0]|0;r=27;}}while(0);if((r|0)==27){if(q<<24>>24<0)D=c[b>>2]|0;else D=b;y=D+d|0;}l=g;return y|0;}function PC(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0>>0|0;}function QC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;f=l;l=l+16|0;g=d;h=f;i=e-g|0;if(i>>>0>4294967279)eB(b);if(i>>>0<11){a[b+11>>0]=i;j=b;}else{k=i+16&-16;m=fB(k)|0;c[b>>2]=m;c[b+8>>2]=k|-2147483648;c[b+4>>2]=i;j=m;}m=e-g|0;g=d;d=j;while(1){if((g|0)==(e|0))break;cB(d,g);g=g+1|0;d=d+1|0;}a[h>>0]=0;cB(j+m|0,h);l=f;return;}function RC(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;if((-17-d|0)>>>0>>0)eB(b);if((a[b+11>>0]|0)<0)i=c[b>>2]|0;else i=b;if(d>>>0<2147483623){j=e+d|0;e=d<<1;k=j>>>0>>0?e:j;l=k>>>0<11?11:k+16&-16;}else l=-17;k=fB(l)|0;if(g|0)bB(k,i,g)|0;j=f-g|0;if(j|0)bB(k+g+h|0,i+g|0,j)|0;if((d|0)!=10)gB(i);c[b>>2]=k;c[b+8>>2]=l|-2147483648;return;}function SC(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,s=0,t=0,u=0;e=d+11|0;f=a[e>>0]|0;g=d+4|0;a:do{if(!((f<<24>>24<0?c[g>>2]|0:f&255)|0))TC(b,d);else{h=AB(19495)|0;i=a[e>>0]|0;if((h|0)==((i<<24>>24<0?c[g>>2]|0:i&255)|0)?(BB(d,19495,h)|0)==0:0){uC(d,19507);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;RB(b,19578,AB(19578)|0);break;}h=AB(19591)|0;i=a[e>>0]|0;if((h|0)==((i<<24>>24<0?c[g>>2]|0:i&255)|0)?(BB(d,19591,h)|0)==0:0){uC(d,19604);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;RB(b,19654,AB(19654)|0);break;}h=AB(19668)|0;i=a[e>>0]|0;if((h|0)==((i<<24>>24<0?c[g>>2]|0:i&255)|0)?(BB(d,19668,h)|0)==0:0){uC(d,19681);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;RB(b,19731,AB(19731)|0);break;}h=AB(19745)|0;i=a[e>>0]|0;j=c[g>>2]|0;k=i&255;do{if((h|0)==((i<<24>>24<0?j:k)|0)){if(!(BB(d,19745,h)|0)){uC(d,19759);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;RB(b,19810,AB(19810)|0);break a;}else{l=a[e>>0]|0;m=l&255;n=l;o=c[g>>2]|0;break;}}else{m=k;n=i;o=j;}}while(0);j=n<<24>>24<0;i=j?c[d>>2]|0:d;k=i+(j?o:m)|0;do{if((a[k+-1>>0]|0)==62){j=1;h=k;b:while(1){p=h;c:while(1){q=p+-1|0;if((q|0)==(i|0))break b;switch(a[p+-2>>0]|0){case 60:{r=24;break c;break;}case 62:{r=25;break c;break;}default:p=q;}}if((r|0)==24){r=0;l=j+-1|0;if(!l){r=27;break;}else s=l;}else if((r|0)==25){r=0;s=j+1|0;}j=s;h=q;}if((r|0)==27){t=p+-2|0;break;};c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;h=0;while(1){if((h|0)==3)break a;c[b+(h<<2)>>2]=0;h=h+1|0;}}else t=k;}while(0);k=t;while(1){h=k+-1|0;if((h|0)==(i|0)){u=i;break;}if((a[h>>0]|0)==58){u=k;break;}else k=h;}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;QC(b,u,t);}}while(0);return;}function TC(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if((a[d+11>>0]|0)<0)RB(b,c[d>>2]|0,c[d+4>>2]|0);else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];}return;}function UC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((a|0)!=(b|0)){e=yC(a,b,d)|0;if((e|0)==(a|0))f=AC(a,b,d)|0;else f=e;if((f|0)!=(a|0)?(e=c[d+4>>2]|0,(c[d>>2]|0)!=(e|0)):0){pB(e+-24|0,0,18745)|0;g=f;}else g=a;}else g=a;return g|0;}function VC(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0;}b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function WC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;d=b;e=a+4|0;f=(((c[e>>2]|0)-(c[a>>2]|0)|0)/24|0)+1|0;g=XC(a)|0;if(g>>>0>>0)Wz(a);else{h=c[a>>2]|0;i=((c[a+8>>2]|0)-h|0)/24|0;j=i<<1;YC(d,i>>>0>>1>>>0?j>>>0>>0?f:j:g,((c[e>>2]|0)-h|0)/24|0,a+12|0);h=d+8|0;e=c[h>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;VC(e);c[h>>2]=e+24;ZC(a,d);_C(d);l=b;return;}}function XC(a){a=a|0;return 178956970;}function YC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)g=0;else g=$C(e,b)|0;c[a>>2]=g;e=g+(d*24|0)|0;c[a+8>>2]=e;c[a+4>>2]=e;c[f>>2]=g+(b*24|0);return;}function ZC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a>>2]|0;e=a+4|0;f=b+4|0;g=c[e>>2]|0;while(1){if((g|0)==(d|0))break;h=g+-24|0;KB((c[f>>2]|0)+-24|0,h);c[f>>2]=(c[f>>2]|0)+-24;g=h;}g=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=g;g=b+8|0;d=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=d;d=a+8|0;a=b+12|0;g=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=g;c[b>>2]=c[f>>2];return;}function _C(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;f=e+-24|0;c[d>>2]=f;QA(f);}d=c[a>>2]|0;if(d|0)hB(c[a+16>>2]|0,d,((c[a+12>>2]|0)-d|0)/24|0);return;}function $C(a,b){a=a|0;b=b|0;return aD(c[a>>2]|0,b*24|0)|0;}function aD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=$A(b)|0;b=a+4096|0;e=c[b>>2]|0;if((a+4096-e|0)>>>0>>0)f=Cy(d)|0;else{c[b>>2]=e+d;f=e;}return f|0;}function bD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;g=l;l=l+48|0;h=g+24|0;i=g;j=g+12|0;k=QB(b,d)|0;if(!((k|0)==(b|0)|(k|0)==(d|0))?(a[k>>0]|0)==69:0){d=e+11|0;m=a[d>>0]|0;n=e+4|0;do{if((m<<24>>24<0?c[n>>2]|0:m&255)>>>0<=3){o=f+4|0;p=c[o>>2]|0;if(p>>>0<(c[f+8>>2]|0)>>>0){c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;VC(p);c[o>>2]=(c[o>>2]|0)+24;break;}else{WC(f);break;}}else{UB(j,18675,e);qB(j,18673)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];o=0;while(1){if((o|0)==3)break;c[j+(o<<2)>>2]=0;o=o+1|0;}IB(h,i);o=f+4|0;p=c[o>>2]|0;if(p>>>0<(c[f+8>>2]|0)>>>0){KB(p,h);c[o>>2]=(c[o>>2]|0)+24;}else LB(f,h);QA(h);iB(i);iB(j);}}while(0);j=f+4|0;if((a[b>>0]|0)==110){NC((c[j>>2]|0)+-24|0,45);q=b+1|0;}else q=b;MC((c[j>>2]|0)+-24|0,q,k);q=a[d>>0]|0;d=q<<24>>24<0;f=d?c[n>>2]|0:q&255;if(f>>>0<4)TA((c[j>>2]|0)+-24|0,d?c[e>>2]|0:e,f)|0;r=k+1|0;}else r=b;l=g;return r|0;}function cD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,4);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function dD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+64|0;i=f+24|0;j=f+60|0;k=f;m=f+48|0;a:do{if((d-b|0)>>>0>8){n=0;o=j;while(1){p=a[b+n>>0]|0;q=p<<24>>24;if((n|0)==8){r=6;break;}if(!(Qz(q)|0))break;s=a[b+(n|1)>>0]|0;a[o>>0]=(((q+-48|0)>>>0<10?0:9)+q<<4)+s+((s+-48|0)>>>0<10?208:169);n=n+2|0;o=o+1|0;}do{if((r|0)==6){if(p<<24>>24==69){b:do{if((o|0)!=(j|0)){n=o;s=j;while(1){q=n+-1|0;if(s>>>0>=q>>>0)break b;t=a[s>>0]|0;a[s>>0]=a[q>>0]|0;a[q>>0]=t;n=q;s=s+1|0;}}}while(0);c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;h[i>>3]=+g[j>>2];s=bz(k,24,19987,i)|0;if(s>>>0>23)break;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;RB(m,k,s);IB(i,m);s=e+4|0;n=c[s>>2]|0;if(n>>>0<(c[e+8>>2]|0)>>>0){KB(n,i);c[s>>2]=(c[s>>2]|0)+24;}else LB(e,i);QA(i);iB(m);u=b+9|0;}else u=b;v=u;break a;}}while(0);v=b;}else v=b;}while(0);l=f;return v|0;}function eD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+80|0;g=f+40|0;i=f+32|0;j=f;k=f+64|0;a:do{if((d-b|0)>>>0>16){m=0;n=i;while(1){o=a[b+m>>0]|0;p=o<<24>>24;if((m|0)==16){q=6;break;}if(!(Qz(p)|0))break;r=a[b+(m|1)>>0]|0;a[n>>0]=(((p+-48|0)>>>0<10?0:9)+p<<4)+r+((r+-48|0)>>>0<10?208:169);m=m+2|0;n=n+1|0;}do{if((q|0)==6){if(o<<24>>24==69){b:do{if((n|0)!=(i|0)){m=n;r=i;while(1){p=m+-1|0;if(r>>>0>=p>>>0)break b;s=a[r>>0]|0;a[r>>0]=a[p>>0]|0;a[p>>0]=s;m=p;r=r+1|0;}}}while(0);c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;h[g>>3]=+h[i>>3];r=bz(j,32,19984,g)|0;if(r>>>0>31)break;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;RB(k,j,r);IB(g,k);r=e+4|0;m=c[r>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[r>>2]=(c[r>>2]|0)+24;}else LB(e,g);QA(g);iB(k);t=b+17|0;}else t=b;u=t;break a;}}while(0);u=b;}else u=b;}while(0);l=f;return u|0;}function fD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+96|0;g=f+48|0;i=f+40|0;j=f;k=f+72|0;a:do{if((d-b|0)>>>0>20){m=0;n=i;while(1){o=a[b+m>>0]|0;p=o<<24>>24;if((m|0)==20){q=6;break;}if(!(Qz(p)|0))break;r=a[b+(m|1)>>0]|0;a[n>>0]=(((p+-48|0)>>>0<10?0:9)+p<<4)+r+((r+-48|0)>>>0<10?208:169);m=m+2|0;n=n+1|0;}do{if((q|0)==6){if(o<<24>>24==69){b:do{if((n|0)!=(i|0)){m=n;r=i;while(1){p=m+-1|0;if(r>>>0>=p>>>0)break b;s=a[r>>0]|0;a[r>>0]=a[p>>0]|0;a[p>>0]=s;m=p;r=r+1|0;}}}while(0);r=j;m=r+40|0;do{c[r>>2]=0;r=r+4|0;}while((r|0)<(m|0));h[g>>3]=+h[i>>3];r=bz(j,40,19979,g)|0;if(r>>>0>39)break;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;RB(k,j,r);IB(g,k);r=e+4|0;m=c[r>>2]|0;if(m>>>0<(c[e+8>>2]|0)>>>0){KB(m,g);c[r>>2]=(c[r>>2]|0)+24;}else LB(e,g);QA(g);iB(k);t=b+21|0;}else t=b;u=t;break a;}}while(0);u=b;}else u=b;}while(0);l=f;return u|0;}function gD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,13);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function hD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,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;f=l;l=l+48|0;g=f+36|0;h=f+24|0;i=f+8|0;j=f;a:do{if((b|0)!=(d|0)?(a[b>>0]|0)==78:0){k=nB(b+1|0,d,g)|0;b:do{if((k|0)!=(d|0)){m=e+52|0;c[m>>2]=0;switch(a[k>>0]|0){case 82:{n=1;o=6;break;}case 79:{n=2;o=6;break;}default:p=k;}if((o|0)==6){c[m>>2]=n;p=k+1|0;}m=e+4|0;q=c[m>>2]|0;if(q>>>0<(c[e+8>>2]|0)>>>0){c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;VC(q);c[m>>2]=(c[m>>2]|0)+24;}else WC(e);if(((d-p|0)>1?(a[p>>0]|0)==83:0)?(a[p+1>>0]|0)==116:0){uC((c[m>>2]|0)+-24|0,20051);r=p+2|0;}else r=p;if((r|0)==(d|0)){q=c[m>>2]|0;s=0;while(1){if((s|0)==-1)break;t=s+-1|0;QA(q+(t*24|0)|0);s=t;}c[m>>2]=q+-24;break;}s=h+11|0;t=h+4|0;u=e+12|0;v=e+20|0;w=e+24|0;x=i+11|0;y=i+4|0;z=i+11|0;A=i+4|0;B=i+12|0;C=i+4|0;D=i+8|0;E=e+16|0;F=i+12|0;G=i+4|0;H=i+8|0;I=i+11|0;J=i+4|0;K=i+12|0;L=i+4|0;M=i+8|0;N=i+11|0;O=i+4|0;P=i+12|0;Q=i+4|0;R=i+8|0;S=i+12|0;T=i+4|0;U=i+8|0;V=0;W=r;c:while(1){X=W;d:while(1){Y=a[X>>0]|0;if(Y<<24>>24==69)break c;switch(Y<<24>>24|0){case 83:{o=23;break d;break;}case 84:{o=39;break d;break;}case 68:{o=53;break d;break;}case 73:{Y=EB(X,d,e)|0;if((Y|0)==(X|0)|(Y|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);Z=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;$=_+-1|0;QA(Z+($*24|0)|0);_=$;}c[m>>2]=Z+-24;_=a[s>>0]|0;$=_<<24>>24<0;TA(Z+-48|0,$?c[h>>2]|0:h,$?c[t>>2]|0:_&255)|0;_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;$=_+4|0;c[$>>2]=0;aa=_+8|0;c[aa>>2]=0;c[_+12>>2]=c[B>>2];c[_>>2]=c[i>>2];c[$>>2]=c[C>>2];c[aa>>2]=c[D>>2];c[D>>2]=0;c[C>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);iB(h);ba=Y;break;}case 76:{aa=X+1|0;if((aa|0)==(d|0))break b;else ba=aa;break;}default:{o=79;break d;}}X=ba;}e:do{if((o|0)==23){o=0;aa=X+1|0;if((aa|0)!=(d|0)?(a[aa>>0]|0)==116:0){o=79;break;}aa=NB(X,d,e)|0;if((aa|0)==(X|0)|(aa|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);$=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;ca=_+-1|0;QA($+(ca*24|0)|0);_=ca;}c[m>>2]=$+-24;_=$+-48|0;Y=a[_+11>>0]|0;if(Y<<24>>24<0)da=c[$+-44>>2]|0;else da=Y&255;if(!da)lD(_,h);else{UB(i,18747,h);_=a[I>>0]|0;Y=_<<24>>24<0;TA((c[m>>2]|0)+-24|0,Y?c[i>>2]|0:i,Y?c[J>>2]|0:_&255)|0;iB(i);_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;Y=_+4|0;c[Y>>2]=0;Z=_+8|0;c[Z>>2]=0;c[_+12>>2]=c[S>>2];c[_>>2]=c[i>>2];c[Y>>2]=c[T>>2];c[Z>>2]=c[U>>2];c[U>>2]=0;c[T>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);}iB(h);ea=aa;}else if((o|0)==39){o=0;Z=DB(X,d,e)|0;if((Z|0)==(X|0)|(Z|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);Y=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;ca=_+-1|0;QA(Y+(ca*24|0)|0);_=ca;}c[m>>2]=Y+-24;_=Y+-48|0;aa=a[_+11>>0]|0;if(aa<<24>>24<0)fa=c[Y+-44>>2]|0;else fa=aa&255;if(!fa)lD(_,h);else{UB(i,18747,h);_=a[z>>0]|0;aa=_<<24>>24<0;TA((c[m>>2]|0)+-24|0,aa?c[i>>2]|0:i,aa?c[A>>2]|0:_&255)|0;iB(i);}_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;aa=_+4|0;c[aa>>2]=0;$=_+8|0;c[$>>2]=0;c[_+12>>2]=c[K>>2];c[_>>2]=c[i>>2];c[aa>>2]=c[L>>2];c[$>>2]=c[M>>2];c[M>>2]=0;c[L>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);iB(h);ea=Z;}else if((o|0)==53){o=0;$=X+1|0;if(($|0)!=(d|0))switch(a[$>>0]|0){case 84:case 116:break;default:{o=79;break e;}}$=OB(X,d,e)|0;if(($|0)==(X|0)|($|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);aa=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;ca=_+-1|0;QA(aa+(ca*24|0)|0);_=ca;}c[m>>2]=aa+-24;_=aa+-48|0;Z=a[_+11>>0]|0;if(Z<<24>>24<0)ga=c[aa+-44>>2]|0;else ga=Z&255;if(!ga)lD(_,h);else{UB(i,18747,h);_=a[N>>0]|0;Z=_<<24>>24<0;TA((c[m>>2]|0)+-24|0,Z?c[i>>2]|0:i,Z?c[O>>2]|0:_&255)|0;iB(i);}_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;Z=_+4|0;c[Z>>2]=0;Y=_+8|0;c[Y>>2]=0;c[_+12>>2]=c[P>>2];c[_>>2]=c[i>>2];c[Z>>2]=c[Q>>2];c[Y>>2]=c[R>>2];c[R>>2]=0;c[Q>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);iB(h);ea=$;}}while(0);if((o|0)==79){o=0;Y=BC(X,d,e)|0;if((Y|0)==(X|0)|(Y|0)==(d|0))break b;FB(h,(c[m>>2]|0)+-24|0);Z=c[m>>2]|0;_=0;while(1){if((_|0)==-1)break;ca=_+-1|0;QA(Z+(ca*24|0)|0);_=ca;}c[m>>2]=Z+-24;_=Z+-48|0;ca=a[_+11>>0]|0;if(ca<<24>>24<0)ha=c[Z+-44>>2]|0;else ha=ca&255;if(!ha)lD(_,h);else{UB(i,18747,h);_=a[x>>0]|0;ca=_<<24>>24<0;TA((c[m>>2]|0)+-24|0,ca?c[i>>2]|0:i,ca?c[y>>2]|0:_&255)|0;iB(i);}_=(c[m>>2]|0)+-24|0;c[j>>2]=c[u>>2];vB(i,_,j);_=c[v>>2]|0;if(_>>>0<(c[w>>2]|0)>>>0){c[_>>2]=0;ca=_+4|0;c[ca>>2]=0;ia=_+8|0;c[ia>>2]=0;c[_+12>>2]=c[F>>2];c[_>>2]=c[i>>2];c[ca>>2]=c[G>>2];c[ia>>2]=c[H>>2];c[H>>2]=0;c[G>>2]=0;c[i>>2]=0;c[v>>2]=(c[v>>2]|0)+16;}else wB(E,i);RA(i);iB(h);ea=Y;}V=1;W=ea;}W=X+1|0;c[e+48>>2]=c[g>>2];if(V?(E=c[v>>2]|0,(c[e+16>>2]|0)!=(E|0)):0){G=0;while(1){if((G|0)==-1)break;H=G+-1|0;RA(E+(H<<4)|0);G=H;}c[v>>2]=E+-16;}ja=W;break a;}}while(0);ja=b;}else ja=b;}while(0);l=f;return ja|0;}function iD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+16|0;g=f;a:do{if(((((b|0)!=(d|0)?(a[b>>0]|0)==90:0)?(h=b+1|0,i=jB(h,d,e)|0,!((i|0)==(h|0)|(i|0)==(d|0))):0)?(a[i>>0]|0)==69:0)?(h=i+1|0,(h|0)!=(d|0)):0)switch(a[h>>0]|0){case 115:{j=kD(i+2|0,d)|0;k=c[e+4>>2]|0;if((c[e>>2]|0)==(k|0)){m=j;break a;}qB(k+-24|0,20034)|0;m=j;break a;break;}case 100:{j=i+2|0;if((j|0)==(d|0)){m=b;break a;}i=QB(j,d)|0;if((i|0)==(d|0)){m=b;break a;}if((a[i>>0]|0)!=95){m=b;break a;}j=i+1|0;i=MB(j,d,e)|0;k=e+4|0;if((i|0)==(j|0)){j=c[k>>2]|0;n=0;while(1){if((n|0)==-1)break;o=n+-1|0;QA(j+(o*24|0)|0);n=o;}c[k>>2]=j+-24;m=b;break a;}n=c[k>>2]|0;if(((n-(c[e>>2]|0)|0)/24|0)>>>0<2){m=b;break a;}FB(g,n+-24|0);n=c[k>>2]|0;o=0;while(1){if((o|0)==-1)break;p=o+-1|0;QA(n+(p*24|0)|0);o=p;}c[k>>2]=n+-24;qB(n+-48|0,18747)|0;o=a[g+11>>0]|0;j=o<<24>>24<0;TA((c[k>>2]|0)+-24|0,j?c[g>>2]|0:g,j?c[g+4>>2]|0:o&255)|0;iB(g);m=i;break a;break;}default:{o=MB(h,d,e)|0;if((o|0)==(h|0)){j=e+4|0;p=c[j>>2]|0;q=0;while(1){if((q|0)==-1)break;r=q+-1|0;QA(p+(r*24|0)|0);q=r;}c[j>>2]=p+-24;m=b;break a;}q=kD(o,d)|0;h=e+4|0;i=c[h>>2]|0;if(((i-(c[e>>2]|0)|0)/24|0)>>>0<2){m=q;break a;}FB(g,i+-24|0);i=c[h>>2]|0;k=0;while(1){if((k|0)==-1)break;n=k+-1|0;QA(i+(n*24|0)|0);k=n;}c[h>>2]=i+-24;qB(i+-48|0,18747)|0;k=a[g+11>>0]|0;o=k<<24>>24<0;TA((c[h>>2]|0)+-24|0,o?c[g>>2]|0:g,o?c[g+4>>2]|0:k&255)|0;iB(g);m=q;break a;}}else m=b;}while(0);l=f;return m|0;}function jD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((d-b|0)>1){if((a[b>>0]|0)==83?(a[b+1>>0]|0)==116:0){f=b+2|0;if((f|0)==(d|0)){g=0;h=d;}else{g=0;h=(a[f>>0]|0)==76?b+3|0:f;}}else{g=1;h=b;}f=BC(h,d,e)|0;d=(f|0)==(h|0);if(!(g|d)){g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))i=b;else{pB(g+-24|0,0,18969)|0;i=f;}}else i=d?b:f;}else i=b;return i|0;}function kD(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a:do{if((b|0)!=(c|0)){d=a[b>>0]|0;if(d<<24>>24!=95){if(((d<<24>>24)+-48|0)>>>0>=10){e=b;break;}d=b;while(1){f=d+1|0;if((f|0)==(c|0)){e=c;break a;}if(((a[f>>0]|0)+-48|0)>>>0<10)d=f;else{e=f;break a;}}}d=b+1|0;if((d|0)!=(c|0)){f=a[d>>0]|0;if(((f<<24>>24)+-48|0)>>>0<10){e=b+2|0;break;}if(f<<24>>24==95){f=b+2|0;while(1){if((f|0)==(c|0)){e=b;break a;}g=a[f>>0]|0;if(((g<<24>>24)+-48|0)>>>0>=10)break;f=f+1|0;}return(g<<24>>24==95?f+1|0:b)|0;}else e=b;}else e=b;}else e=b;}while(0);return e|0;}function lD(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d+11>>0]|0;f=e<<24>>24<0;vC(b,f?c[d>>2]|0:d,f?c[d+4>>2]|0:e&255);}return;}function mD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,20066,21);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function nD(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];return;}function oD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+32|0;e=d+20|0;f=d;g=a+4|0;h=((c[g>>2]|0)-(c[a>>2]|0)>>4)+1|0;i=qD(a)|0;if(i>>>0>>0)Wz(a);else{j=c[a>>2]|0;k=(c[a+8>>2]|0)-j|0;m=k>>3;rD(f,k>>4>>>0>>1>>>0?m>>>0>>0?h:m:i,(c[g>>2]|0)-j>>4,a+12|0);j=f+8|0;g=c[j>>2]|0;nD(e,b);c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=c[e>>2];c[j>>2]=g+16;sD(a,f);tD(f);l=d;return;}}function pD(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a:do{if((b|0)==(c|0))e=b;else switch(a[b>>0]|0){case 88:{f=b+1|0;g=SB(f,c,d)|0;if((g|0)==(f|0)|(g|0)==(c|0)){e=b;break a;}e=(a[g>>0]|0)==69?g+1|0:b;break a;break;}case 74:{g=b+1|0;if((g|0)==(c|0)){e=b;break a;}f=g;while(1){if((a[f>>0]|0)==69)break;g=pD(f,c,d)|0;if((g|0)==(f|0)){e=b;break a;}else f=g;}e=f+1|0;break a;break;}case 76:{g=b+1|0;if((g|0)!=(c|0)?(a[g>>0]|0)==90:0){g=b+2|0;h=jB(g,c,d)|0;if((h|0)==(g|0)|(h|0)==(c|0)){e=b;break a;}e=(a[h>>0]|0)==69?h+1|0:b;break a;}e=WB(b,c,d)|0;break a;break;}default:{e=mB(b,c,d)|0;break a;}}}while(0);return e|0;}function qD(a){a=a|0;return 268435455;}function rD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)g=0;else g=uD(e,b)|0;c[a>>2]=g;e=g+(d<<4)|0;c[a+8>>2]=e;c[a+4>>2]=e;c[f>>2]=g+(b<<4);return;}function sD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c[a>>2]|0;e=a+4|0;f=b+4|0;g=c[e>>2]|0;while(1){if((g|0)==(d|0))break;h=c[f>>2]|0;i=h+-16|0;j=g+-16|0;c[i>>2]=0;k=h+-12|0;c[k>>2]=0;l=h+-8|0;c[l>>2]=0;c[h+-4>>2]=c[g+-4>>2];c[i>>2]=c[j>>2];i=g+-12|0;c[k>>2]=c[i>>2];k=g+-8|0;c[l>>2]=c[k>>2];c[k>>2]=0;c[i>>2]=0;c[j>>2]=0;c[f>>2]=(c[f>>2]|0)+-16;g=j;}g=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=g;g=b+8|0;d=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=d;d=a+8|0;a=b+12|0;g=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=g;c[b>>2]=c[f>>2];return;}function tD(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;f=e+-16|0;c[d>>2]=f;XA(f);}d=c[a>>2]|0;if(d|0)aB(c[a+16>>2]|0,d,(c[a+12>>2]|0)-d>>4);return;}function uD(a,b){a=a|0;b=b|0;return aD(c[a>>2]|0,b<<4)|0;}function vD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,20091,2);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function wD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=l;l=l+16|0;f=e;g=b+11|0;h=a[g>>0]|0;i=h<<24>>24<0;if(i){j=c[b+4>>2]|0;k=j>>>0<11?j:11;m=j;n=(c[b+8>>2]&2147483647)+-1|0;}else{j=h&255;k=j>>>0<11?j:11;m=j;n=10;}if((k-m+n|0)>>>0>>0)dB(b,n,d-k+m-n|0,m,0,k,d,20094);else{if(i)o=c[b>>2]|0;else o=b;do{if((k|0)!=(d|0)){i=m-k|0;if(!i){p=k;q=0;r=20094;s=d;t=17;}else{if(k>>>0>d>>>0){wC(o,20094,d)|0;wC(o+d|0,o+k|0,i)|0;u=k;v=d;break;}do{if(o>>>0<20094>>>0&(o+m|0)>>>0>20094>>>0){if((o+k|0)>>>0>20094>>>0){wC(o,20094,k)|0;w=0;x=k;y=20094+d|0;z=d-k|0;break;}else{w=k;x=0;y=20094+(d-k)|0;z=d;break;}}else{w=k;x=0;y=20094;z=d;}}while(0);n=o+x|0;wC(n+z|0,n+w|0,i)|0;p=w;q=x;r=y;s=z;t=17;}}else{p=d;q=0;r=20094;s=d;t=17;}}while(0);if((t|0)==17){wC(o+q|0,r,s)|0;u=p;v=s;}s=v-u+m|0;if((a[g>>0]|0)<0)c[b+4>>2]=s;else a[g>>0]=s;a[f>>0]=0;cB(o+s|0,f);}l=e;return;}function xD(a){a=a|0;lb();}function yD(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(!c)d=0;else d=Qy(a,b,c)|0;return d|0;}function zD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;g=l;l=l+16|0;h=g;i=b+11|0;j=a[i>>0]|0;k=j<<24>>24<0;if(k)m=c[b+4>>2]|0;else m=j&255;if(m>>>0>>0)xD(b);if(k)n=(c[b+8>>2]&2147483647)+-1|0;else n=10;if((n-m|0)>>>0>=f>>>0){if(f|0){if(k)o=c[b>>2]|0;else o=b;k=m-d|0;j=o+d|0;if(!k)p=e;else{wC(j+f|0,j,k)|0;p=j>>>0<=e>>>0&(o+m|0)>>>0>e>>>0?e+f|0:e;}wC(j,p,f)|0;p=m+f|0;if((a[i>>0]|0)<0)c[b+4>>2]=p;else a[i>>0]=p;a[h>>0]=0;cB(o+p|0,h);}}else dB(b,n,m+f-n|0,m,d,0,f,e);l=g;return b|0;}function AD(a){a=a|0;return 268435455;}function BD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)g=0;else g=ED(e,b)|0;c[a>>2]=g;e=g+(d<<4)|0;c[a+8>>2]=e;c[a+4>>2]=e;c[f>>2]=g+(b<<4);return;}function CD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c[a>>2]|0;e=a+4|0;f=b+4|0;g=c[e>>2]|0;while(1){if((g|0)==(d|0))break;h=c[f>>2]|0;i=h+-16|0;j=g+-16|0;c[i>>2]=0;k=h+-12|0;c[k>>2]=0;l=h+-8|0;c[l>>2]=0;c[h+-4>>2]=c[g+-4>>2];c[i>>2]=c[j>>2];i=g+-12|0;c[k>>2]=c[i>>2];k=g+-8|0;c[l>>2]=c[k>>2];c[k>>2]=0;c[i>>2]=0;c[j>>2]=0;c[f>>2]=(c[f>>2]|0)+-16;g=j;}g=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=g;g=b+8|0;d=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=d;d=a+8|0;a=b+12|0;g=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=g;c[b>>2]=c[f>>2];return;}function DD(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;f=e+-16|0;c[d>>2]=f;RA(f);}d=c[a>>2]|0;if(d|0)YA(c[a+16>>2]|0,d,(c[a+12>>2]|0)-d>>4);return;}function ED(a,b){a=a|0;b=b|0;return aD(c[a>>2]|0,b<<4)|0;}function FD(a){a=a|0;var b=0;if(!(XC(a)|0))Wz(a);else{b=$C(a+12|0,1)|0;c[a+4>>2]=b;c[a>>2]=b;c[a+8>>2]=b+24;return;}}function GD(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;d=l;l=l+16|0;e=d;f=b+11|0;g=a[f>>0]|0;if(g<<24>>24<0){h=c[b>>2]|0;i=c[b+4>>2]|0;}else{h=b;i=g&255;}j=(i|0)!=0&1;k=i-j|0;if(!k)m=g;else{wC(h,h+j|0,k)|0;m=a[f>>0]|0;}if(m<<24>>24<0)c[b+4>>2]=k;else a[f>>0]=k;a[e>>0]=0;cB(h+k|0,e);l=d;return;}function HD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,19867,7);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function ID(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,3);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function JD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,20287,18);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function KD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,b,8);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function LD(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;RB(a,20280,6);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0;}return;}function MD(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=c[b>>2];return;}function ND(b,d){b=b|0;d=d|0;c[b>>2]=d;a[b+4>>0]=a[d>>0]|0;return;}function OD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=l;l=l+64|0;g=f+60|0;h=f+48|0;i=f+36|0;j=f+24|0;k=f+12|0;m=f;a:do{if((d-b|0)>2){switch(a[b>>0]|0){case 84:break;case 71:{switch(a[b+1>>0]|0){case 86:{n=b+2|0;o=MB(n,d,e)|0;if((o|0)==(n|0)){p=b;q=60;break a;}n=c[e+4>>2]|0;if((c[e>>2]|0)==(n|0)){r=b;break a;}pB(n+-24|0,0,20505)|0;p=o;q=60;break a;break;}case 82:{o=b+2|0;n=MB(o,d,e)|0;if((n|0)==(o|0)){p=b;q=60;break a;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){r=b;break a;}pB(o+-24|0,0,20525)|0;p=n;q=60;break a;break;}default:{p=b;q=60;break a;}}break;}default:{p=b;q=60;break a;}}n=b+1|0;switch(a[n>>0]|0){case 86:{o=b+2|0;s=mB(o,d,e)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){r=b;break a;}pB(o+-24|0,0,20354)|0;p=s;q=60;break a;break;}case 84:{s=b+2|0;o=mB(s,d,e)|0;if((o|0)==(s|0)){p=b;q=60;break a;}s=c[e+4>>2]|0;if((c[e>>2]|0)==(s|0)){r=b;break a;}pB(s+-24|0,0,20366)|0;p=o;q=60;break a;break;}case 73:{o=b+2|0;s=mB(o,d,e)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){r=b;break a;}pB(o+-24|0,0,20375)|0;p=s;q=60;break a;break;}case 83:{s=b+2|0;o=mB(s,d,e)|0;if((o|0)==(s|0)){p=b;q=60;break a;}s=c[e+4>>2]|0;if((c[e>>2]|0)==(s|0)){r=b;break a;}pB(s+-24|0,0,20389)|0;p=o;q=60;break a;break;}case 99:{o=b+2|0;s=RD(o,d)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=RD(s,d)|0;if((o|0)==(s|0)){p=b;q=60;break a;}s=jB(o,d,e)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=c[e+4>>2]|0;if((c[e>>2]|0)==(o|0)){r=b;break a;}pB(o+-24|0,0,20408)|0;p=s;q=60;break a;break;}case 67:{s=b+2|0;o=mB(s,d,e)|0;if((o|0)==(s|0)){p=b;q=60;break a;}s=QB(o,d)|0;if((s|0)==(o|0)|(s|0)==(d|0)){p=b;q=60;break a;}if((a[s>>0]|0)!=95){p=b;q=60;break a;}o=s+1|0;s=mB(o,d,e)|0;if((s|0)==(o|0)){p=b;q=60;break a;}o=e+4|0;t=c[o>>2]|0;if(((t-(c[e>>2]|0)|0)/24|0)>>>0<2){r=b;break a;}FB(h,t+-24|0);t=c[o>>2]|0;u=0;while(1){if((u|0)==-1)break;v=u+-1|0;QA(t+(v*24|0)|0);u=v;}c[o>>2]=t+-24;pB(h,0,20435)|0;c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];u=0;while(1){if((u|0)==3)break;c[h+(u<<2)>>2]=0;u=u+1|0;}qB(k,20460)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];u=0;while(1){if((u|0)==3)break;c[k+(u<<2)>>2]=0;u=u+1|0;}FB(m,(c[o>>2]|0)+-24|0);u=a[m+11>>0]|0;t=u<<24>>24<0;TA(j,t?c[m>>2]|0:m,t?c[m+4>>2]|0:u&255)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];u=0;while(1){if((u|0)==3)break;c[j+(u<<2)>>2]=0;u=u+1|0;}u=c[o>>2]|0;t=u+-24|0;v=t+11|0;if((a[v>>0]|0)<0){w=c[t>>2]|0;a[g>>0]=0;cB(w,g);c[u+-20>>2]=0;}else{a[g>>0]=0;cB(t,g);a[v>>0]=0;}TB(t);c[t>>2]=c[i>>2];c[t+4>>2]=c[i+4>>2];c[t+8>>2]=c[i+8>>2];t=0;while(1){if((t|0)==3)break;c[i+(t<<2)>>2]=0;t=t+1|0;}iB(i);iB(m);iB(j);iB(k);iB(h);p=s;q=60;break a;break;}default:{t=RD(n,d)|0;do{if((t|0)!=(n|0)){o=jB(t,d,e)|0;if((o|0)!=(t|0)){v=c[e+4>>2]|0;if((c[e>>2]|0)!=(v|0)){u=v+-24|0;if((a[b+2>>0]|0)==118){pB(u,0,20465)|0;x=0;y=o;break;}else{pB(u,0,20483)|0;x=0;y=o;break;}}else{x=1;y=b;}}else{x=0;y=b;}}else{x=3;y=b;}}while(0);switch(x&3){case 3:case 0:{p=y;q=60;break a;break;}default:{}}if(!x){p=y;q=60;break a;}else{r=b;break a;}}}}else{p=b;q=60;}}while(0);if((q|0)==60)r=p;l=f;return r|0;}function PD(b){b=b|0;a[c[b>>2]>>0]=a[b+4>>0]|0;return;}function QD(a){a=a|0;c[c[a>>2]>>2]=c[a+4>>2];return;}function RD(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a:do{if((b|0)!=(c|0)){switch(a[b>>0]|0){case 104:{d=b+1|0;e=QB(d,c)|0;if((e|0)==(d|0)|(e|0)==(c|0)){f=b;break a;}return((a[e>>0]|0)==95?e+1|0:b)|0;}case 118:break;default:{f=b;break a;}}e=b+1|0;d=QB(e,c)|0;if((!((d|0)==(e|0)|(d|0)==(c|0))?(a[d>>0]|0)==95:0)?(e=d+1|0,d=QB(e,c)|0,!((d|0)==(e|0)|(d|0)==(c|0))):0)f=(a[d>>0]|0)==95?d+1|0:b;else f=b;}else f=b;}while(0);return f|0;}function SD(a,b){a=a|0;b=b|0;c[a>>2]=b;return;}function TD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[b>>2];return;}function UD(a,b){a=a|0;b=b|0;c[a>>2]=b;return;}function VD(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=c[b>>2];return;}function WD(b){b=b|0;var c=0;if((a[b>>0]|0)==1)c=0;else{a[b>>0]=1;c=1;}return c|0;}function XD(a){a=a|0;return;}function YD(a){a=a|0;return;}function ZD(){var a=0;a=c[5564]|0;c[5564]=a+0;return a|0;}function _D(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;c[f>>2]=c[d>>2];g=rc[c[(c[a>>2]|0)+16>>2]&31](a,b,f)|0;if(g)c[d>>2]=c[f>>2];l=e;return g&1|0;}function $D(a){a=a|0;var b=0;if(!a)b=0;else b=(kA(a,10840,10896,0)|0)!=0&1;return b|0;}function aE(){}function bE(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=N(d,c)|0;f=a>>>16;a=(e>>>16)+(N(d,f)|0)|0;d=b>>>16;b=N(d,c)|0;return(y=(a>>>16)+(N(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0;}function cE(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=bE(e,a)|0;f=y;return(y=(N(b,a)|0)+(N(d,e)|0)+f|f&0,c|0|0)|0;}function dE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return(y=b+d+(e>>>0>>0|0)>>>0,e|0)|0;}function eE(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(y=e,a-c>>>0|0)|0;}function fE(a){a=a|0;return(a?31-(Q(a^a-1)|0)|0:32)|0;}function gE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,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(y=n,o)|0;}else{if(!m){n=0;o=0;return(y=n,o)|0;}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return(y=n,o)|0;}}m=(l|0)==0;do{if(j){if(!m){p=(Q(l|0)|0)-(Q(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;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(y=n,o)|0;}r=j-1|0;if(r&j|0){s=(Q(j|0)|0)+33-(Q(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(y=n,o)|0;}else{r=fE(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return(y=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(y=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(y=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>>>((fE(l|0)|0)>>>0);return(y=n,o)|0;}r=(Q(l|0)|0)-(Q(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;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(y=n,o)|0;}}while(0);if(!t){C=x;D=w;E=v;F=u;G=0;H=0;}else{b=d|0|0;d=k|e&0;e=dE(b|0,d|0,-1,-1)|0;k=y;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;eE(e|0,k|0,g|0,a|0)|0;i=y;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=eE(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=y;u=u-1|0;}while((u|0)!=0);C=h;D=x;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(y=n,o)|0;}function hE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return gE(a,b,c,d,0)|0;}function iE(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b>>>c;return a>>>c|(b&(1<>>c-32|0;}function jE(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0;}function lE(a,b,c){a=a|0;b=b|0;c=c|0;c=Q(b)|0;if((c|0)==32)c=c+(Q(a)|0)|0;y=0;return c|0;}function mE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return nb(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 nE(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0;}b=e;}else mE(b,c,d)|0;return b|0;}function oE(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 pE(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){V()|0;Ca(12);return-1;}c[i>>2]=d;if((d|0)>(U()|0)?(T()|0)==0:0){c[i>>2]=b;Ca(12);return-1;}return b|0;}function qE(a){a=a|0;return oc[a&7]()|0;}function rE(a,b){a=a|0;b=b|0;return pc[a&63](b|0)|0;}function sE(a,b,c){a=a|0;b=b|0;c=c|0;return qc[a&63](b|0,c|0)|0;}function tE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rc[a&31](b|0,c|0,d|0)|0;}function uE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return sc[a&15](b|0,c|0,d|0,e|0)|0;}function vE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return tc[a&7](b|0,c|0,d|0,e|0,f|0)|0;}function wE(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return uc[a&31](b|0,c|0,d|0,e|0,f|0,g|0)|0;}function xE(a){a=a|0;vc[a&3]();}function yE(a,b){a=a|0;b=b|0;wc[a&127](b|0);}function zE(a,b,c){a=a|0;b=b|0;c=c|0;xc[a&31](b|0,c|0);}function AE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;yc[a&7](b|0,c|0,d|0);}function BE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;zc[a&7](b|0,c|0,d|0,e|0);}function CE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Ac[a&3](b|0,c|0,d|0,e|0,f|0);}function DE(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Bc[a&3](b|0,c|0,d|0,e|0,f|0,g|0);}function EE(){R(0);return 0;}function FE(a){a=a|0;R(1);return 0;}function GE(a,b){a=a|0;b=b|0;R(2);return 0;}function HE(a,b,c){a=a|0;b=b|0;c=c|0;R(3);return 0;}function IE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;R(4);return 0;}function JE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;R(5);return 0;}function KE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;R(6);return 0;}function LE(){R(7);}function ME(a){a=a|0;R(8);}function NE(a,b){a=a|0;b=b|0;R(9);}function OE(a,b,c){a=a|0;b=b|0;c=c|0;R(10);}function PE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;R(11);}function QE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;R(12);}function RE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;R(13);}// EMSCRIPTEN_END_FUNCS var oc=[EE,Ce,Me,Ue,ge,EE,EE,EE];var pc=[FE,fd,ld,nd,td,vd,Bd,Ed,Kd,Md,Sd,Ud,_d,kf,qf,xf,Df,If,Of,Tf,Zf,fg,lg,og,ug,Fg,Lg,Og,Ug,Iy,Tz,qe,ve,Qc,Ae,De,Ke,Ne,Se,Ve,Wc,ee,he,Mc,Oo,Gx,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE,FE];var qc=[GE,kd,sd,Ad,Jd,Rd,Zd,pf,Cf,Nf,Yf,jg,kg,sg,tg,Jg,Kg,Sg,Tg,Ht,pe,Oc,ze,$e,af,Rc,Sc,Uc,Vc,We,Xc,Zc,_c,ke,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE,GE];var rc=[HE,Jy,Ky,Ny,zz,cA,xA,zA,CA,ue,Ee,Fe,cf,Oe,Pe,Tc,Re,Xe,Yc,Ze,le,ce,Py,HE,HE,HE,HE,HE,HE,HE,HE,HE];var sc=[IE,vu,wu,Kv,Lv,Xw,Yw,bf,He,df,rf,Qe,Ye,me,IE,IE];var tc=[JE,Ge,Ie,Je,tn,sn,Km,Jm];var uc=[KE,Xl,Yl,Zl,_l,$l,am,bm,cm,dm,em,fm,gm,hm,im,jm,km,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE,KE];var vc=[LE,Xz,Jc,qA];var wc=[ME,Cd,ed,hd,id,md,pd,qd,ud,xd,yd,Dd,Gd,Hd,Ld,Od,Pd,Td,Wd,Xd,hf,jf,mf,nf,vf,wf,zf,Af,Gf,Hf,Kf,Lf,Rf,Sf,Vf,Wf,dg,eg,hg,ig,ng,qg,rg,Dg,Eg,Hg,Ig,Ng,Qg,Rg,Rz,Sz,_z,$z,aA,bA,lA,wA,yA,BA,DA,ne,re,we,Be,Le,Te,fe,ef,sf,Ff,Qf,rA,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME,ME];var xc=[NE,gd,jd,od,rd,wd,zd,Fd,Id,Nd,Qd,Vd,Yd,lf,of,yf,Bf,Jf,Mf,Uf,Xf,gg,pg,Gg,Pg,It,Kc,Lc,Nc,$d,NE,NE];var yc=[OE,oe,ie,ae,be,OE,OE,OE];var zc=[PE,fA,oA,GA,je,PE,PE,PE];var Ac=[QE,eA,nA,FA];var Bc=[RE,dA,mA,EA];return{__GLOBAL__sub_I_bind_cpp:zy,__GLOBAL__sub_I_zstd_binding_cc:_e,___cxa_can_catch:_D,___cxa_demangle:KA,___cxa_is_pointer_type:$D,___errno_location:My,___getTypeName:By,___muldi3:cE,___udivdi3:hE,_bitshift64Lshr:iE,_bitshift64Shl:jE,_free:Dy,_i64Add:dE,_i64Subtract:eE,_llvm_bswap_i32:kE,_llvm_ctlz_i64:lE,_llvm_cttz_i32:fE,_malloc:Cy,_memcpy:mE,_memmove:nE,_memset:oE,_sbrk:pE,dynCall_i:qE,dynCall_ii:rE,dynCall_iii:sE,dynCall_iiii:tE,dynCall_iiiii:uE,dynCall_iiiiii:vE,dynCall_iiiiiii:wE,dynCall_v:xE,dynCall_vi:yE,dynCall_vii:zE,dynCall_viii:AE,dynCall_viiii:BE,dynCall_viiiii:CE,dynCall_viiiiii:DE,establishStackSpace:Fc,getTempRet0:Ic,runPostSets:aE,setTempRet0:Hc,setThrew:Gc,stackAlloc:Cc,stackRestore:Ec,stackSave:Dc};}(// EMSCRIPTEN_END_ASM Module.asmGlobalArg,Module.asmLibraryArg,buffer);var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var __GLOBAL__sub_I_zstd_binding_cc=Module["__GLOBAL__sub_I_zstd_binding_cc"]=asm["__GLOBAL__sub_I_zstd_binding_cc"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var ___cxa_demangle=Module["___cxa_demangle"]=asm["___cxa_demangle"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];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 _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=asm["_llvm_ctlz_i64"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _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_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];Module["asm"]=asm;Module["FS"]=FS;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{var doBrowserLoad=function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer;});};addRunDependency("memory initializer");var applyMemoryInitializer=function applyMemoryInitializer(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer");};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer);}else if(Module["memoryInitializerRequest"]){var useRequest=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;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller;};function run(args){args=args||Module["arguments"];if(runDependencies>0){return;}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("");},1);doRun();},1);}else{doRun();}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what);}if(what!==undefined){out(what);err(what);what=JSON.stringify(what);}else{what="";}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info.";}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()();}}Module["noExitRuntime"]=true;run();return Module;};}();if((typeof exports==='undefined'?'undefined':_typeof(exports))==='object'&&(typeof module==='undefined'?'undefined':_typeof(module))==='object')module.exports=Module;else if(typeof define==='function'&&define['amd'])define([],function(){return Module;});else if((typeof exports==='undefined'?'undefined':_typeof(exports))==='object')exports["Module"]=Module; }).call(this,require('_process'),require("buffer").Buffer,"/lib") },{"_process":126,"buffer":54,"crypto":63,"fs":9,"path":119}],7:[function(require,module,exports){ 'use strict';var _createClass=function(){function defineProperties(target,props){for(var i=0;i=0?rc:null;};var contentSizeImpl=function contentSizeImpl(src_vec){var rc=codec.contentSize(src_vec);return rc>=0?rc:null;};var ArrayBufferSink=function(){function ArrayBufferSink(initial_size){_classCallCheck(this,ArrayBufferSink);this._buffer=new ArrayBuffer(initial_size);this._array=new Uint8Array(this._buffer);this._offset=0;}_createClass(ArrayBufferSink,[{key:'concat',value:function concat(array){if(array.length+this._offset>this._array.length){this._grow(Math.max(this._array.length,array.length)*2);}this._array.set(array,this._offset);this._offset+=array.length;}},{key:'array',value:function array(){// NOTE: clone buffer to shrink to fit var buffer=ArrayBufferHelper.transfer(this._buffer,this._offset);return new Uint8Array(buffer);}},{key:'_grow',value:function _grow(new_size){this._buffer=ArrayBufferHelper.transfer(this._buffer,new_size);this._array=new Uint8Array(this._buffer);}}]);return ArrayBufferSink;}();var Generic=function(){function Generic(){_classCallCheck(this,Generic);}_createClass(Generic,[{key:'compressBound',value:function compressBound(content_bytes){return compressBoundImpl(content_bytes.length);}},{key:'contentSize',value:function contentSize(compressed_bytes){return withCppVector(function(src){binding.cloneToVector(src,compressed_bytes);return contentSizeImpl(src);});}}]);return Generic;}();var Simple=function(){function Simple(){_classCallCheck(this,Simple);}_createClass(Simple,[{key:'compress',value:function compress(content_bytes,compression_level){// use basic-api `compress`, to embed `frameContentSize`. var compressBound=compressBoundImpl(content_bytes.length);if(!compressBound)return null;compression_level=correctCompressionLevel(compression_level);return withCppVector(function(src){return withCppVector(function(dest){binding.cloneToVector(src,content_bytes);dest.resize(compressBound,0);var rc=codec.compress(dest,src,compression_level);if(rc<0)return null;// `rc` is compressed size dest.resize(rc,0);return binding.cloneAsTypedArray(dest);});});}},{key:'decompress',value:function decompress(compressed_bytes){// use streaming-api, to support data without `frameContentSize`. return withCppVector(function(src){return withCppVector(function(dest){binding.cloneToVector(src,compressed_bytes);var contentSize=contentSizeImpl(src);if(!contentSize)return null;dest.resize(contentSize,0);var rc=codec.decompress(dest,src);if(rc<0||rc!=contentSize)return null;// `rc` is compressed size return binding.cloneAsTypedArray(dest);});});}},{key:'compressUsingDict',value:function compressUsingDict(content_bytes,cdict){// use basic-api `compress`, to embed `frameContentSize`. var compressBound=compressBoundImpl(content_bytes.length);if(!compressBound)return null;return withCppVector(function(src){return withCppVector(function(dest){binding.cloneToVector(src,content_bytes);dest.resize(compressBound,0);var rc=codec.compressUsingDict(dest,src,cdict.get());if(rc<0)return null;// `rc` is original content size dest.resize(rc,0);return binding.cloneAsTypedArray(dest);});});}},{key:'decompressUsingDict',value:function decompressUsingDict(compressed_bytes,ddict){// use streaming-api, to support data without `frameContentSize`. return withCppVector(function(src){return withCppVector(function(dest){binding.cloneToVector(src,compressed_bytes);var contentSize=contentSizeImpl(src);if(!contentSize)return null;dest.resize(contentSize,0);var rc=codec.decompressUsingDict(dest,src,ddict.get());if(rc<0||rc!=contentSize)return null;// `rc` is compressed size return binding.cloneAsTypedArray(dest);});});}}]);return Simple;}();var Streaming=function(){function Streaming(){_classCallCheck(this,Streaming);}_createClass(Streaming,[{key:'compress',value:function compress(content_bytes,compression_level){return withBindingInstance(new binding.ZstdCompressStreamBinding(),function(stream){var initial_size=compressBoundImpl(content_bytes.length);var sink=new ArrayBufferSink(initial_size);var callback=function callback(compressed){sink.concat(compressed);};var level=correctCompressionLevel(compression_level);if(!stream.begin(level))return null;if(!stream.transform(content_bytes,callback))return null;if(!stream.end(callback))return null;return sink.array();});}},{key:'compressChunks',value:function compressChunks(chunks,size_hint,compression_level){return withBindingInstance(new binding.ZstdCompressStreamBinding(),function(stream){var initial_size=size_hint||constants.STREAMING_DEFAULT_BUFFER_SIZE;var sink=new ArrayBufferSink(initial_size);var callback=function callback(compressed){sink.concat(compressed);};var level=correctCompressionLevel(compression_level);if(!stream.begin(level))return null;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=chunks[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var chunk=_step.value;if(!stream.transform(chunk,callback))return null;}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}if(!stream.end(callback))return null;return sink.array();});}},{key:'compressUsingDict',value:function compressUsingDict(content_bytes,cdict){return withBindingInstance(new binding.ZstdCompressStreamBinding(),function(stream){var initial_size=compressBoundImpl(content_bytes.length);var sink=new ArrayBufferSink(initial_size);var callback=function callback(compressed){sink.concat(compressed);};if(!stream.beginUsingDict(cdict.get()))return null;if(!stream.transform(content_bytes,callback))return null;if(!stream.end(callback))return null;return sink.array();});}},{key:'compressChunksUsingDict',value:function compressChunksUsingDict(chunks,size_hint,cdict){return withBindingInstance(new binding.ZstdCompressStreamBinding(),function(stream){var initial_size=size_hint||constants.STREAMING_DEFAULT_BUFFER_SIZE;var sink=new ArrayBufferSink(initial_size);var callback=function callback(compressed){sink.concat(compressed);};if(!stream.beginUsingDict(cdict.get()))return null;var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=chunks[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var chunk=_step2.value;if(!stream.transform(chunk,callback))return null;}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}if(!stream.end(callback))return null;return sink.array();});}},{key:'decompress',value:function decompress(compressed_bytes,size_hint){var _this=this;return withBindingInstance(new binding.ZstdDecompressStreamBinding(),function(stream){var initial_size=size_hint||_this._estimateContentSize(compressed_bytes);var sink=new ArrayBufferSink(initial_size);var callback=function callback(decompressed){sink.concat(decompressed);};if(!stream.begin())return null;if(!stream.transform(compressed_bytes,callback))return null;if(!stream.end(callback))return null;return sink.array();});}},{key:'decompressChunks',value:function decompressChunks(chunks,size_hint){return withBindingInstance(new binding.ZstdDecompressStreamBinding(),function(stream){var initial_size=size_hint||constants.STREAMING_DEFAULT_BUFFER_SIZE;var sink=new ArrayBufferSink(initial_size);var callback=function callback(decompressed){sink.concat(decompressed);};if(!stream.begin())return null;var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=chunks[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var chunk=_step3.value;if(!stream.transform(chunk,callback))return null;}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}if(!stream.end(callback))return null;return sink.array();});}},{key:'decompressUsingDict',value:function decompressUsingDict(compressed_bytes,size_hint,ddict){var _this2=this;return withBindingInstance(new binding.ZstdDecompressStreamBinding(),function(stream){var initial_size=size_hint||_this2._estimateContentSize(compressed_bytes);var sink=new ArrayBufferSink(initial_size);var callback=function callback(decompressed){sink.concat(decompressed);};if(!stream.beginUsingDict(ddict.get()))return null;if(!stream.transform(compressed_bytes,callback))return null;if(!stream.end(callback))return null;return sink.array();});}},{key:'decompressChunksUsingDict',value:function decompressChunksUsingDict(chunks,size_hint,ddict){return withBindingInstance(new binding.ZstdDecompressStreamBinding(),function(stream){var initial_size=size_hint||constants.STREAMING_DEFAULT_BUFFER_SIZE;var sink=new ArrayBufferSink(initial_size);var callback=function callback(decompressed){sink.concat(decompressed);};if(!stream.beginUsingDict(ddict.get()))return null;var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=chunks[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var chunk=_step4.value;if(!stream.transform(chunk,callback))return null;}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}if(!stream.end(callback))return null;return sink.array();});}},{key:'_estimateContentSize',value:function _estimateContentSize(compressed_bytes){// REF: https://code.facebook.com/posts/1658392934479273/smaller-and-faster-data-compression-with-zstandard/ // with lzbench, ratio=3.11 .. 3.14. round up to integer return compressed_bytes.length*4;}}]);return Streaming;}();var ZstdCompressionDict=function(){function ZstdCompressionDict(dict_bytes,compression_level){_classCallCheck(this,ZstdCompressionDict);this.binding=binding.createCompressionDict(dict_bytes,compression_level);}_createClass(ZstdCompressionDict,[{key:'get',value:function get(){return this.binding;}},{key:'close',value:function close(){if(this.binding){this.binding.delete();}}},{key:'delete',value:function _delete(){this.close();}}]);return ZstdCompressionDict;}();var ZstdDecompressionDict=function(){function ZstdDecompressionDict(dict_bytes){_classCallCheck(this,ZstdDecompressionDict);this.binding=new binding.createDecompressionDict(dict_bytes);}_createClass(ZstdDecompressionDict,[{key:'get',value:function get(){return this.binding;}},{key:'close',value:function close(){if(this.binding){this.binding.delete();}}},{key:'delete',value:function _delete(){this.close();}}]);return ZstdDecompressionDict;}();var zstd={};zstd.Generic=Generic;zstd.Simple=Simple;zstd.Streaming=Streaming;zstd.Dict={};zstd.Dict.Compress=ZstdCompressionDict;zstd.Dict.Decompress=ZstdDecompressionDict;return zstd;};exports.run=function(f){return require('./module.js').run(function(binding){var zstd=onReady(binding);f(zstd);});}; },{"./constants.js":2,"./helpers.js":3,"./module.js":4}],8:[function(require,module,exports){ 'use strict';var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i> 6]; var primitive = (tag & 0x20) === 0; // Multi-octet tag - load if ((tag & 0x1f) === 0x1f) { var oct = tag; tag = 0; while ((oct & 0x80) === 0x80) { oct = buf.readUInt8(fail); if (buf.isError(oct)) return oct; tag <<= 7; tag |= oct & 0x7f; } } else { tag &= 0x1f; } var tagStr = der.tag[tag]; return { cls: cls, primitive: primitive, tag: tag, tagStr: tagStr }; } function derDecodeLen(buf, primitive, fail) { var len = buf.readUInt8(fail); if (buf.isError(len)) return len; // Indefinite form if (!primitive && len === 0x80) return null; // Definite form if ((len & 0x80) === 0) { // Short form return len; } // Long form var num = len & 0x7f; if (num > 4) return buf.error('length octect is too long'); len = 0; for (var i = 0; i < num; i++) { len <<= 8; var j = buf.readUInt8(fail); if (buf.isError(j)) return j; len |= j; } return len; } },{"../../asn1":10,"inherits":108}],19:[function(require,module,exports){ var decoders = exports; decoders.der = require('./der'); decoders.pem = require('./pem'); },{"./der":18,"./pem":20}],20:[function(require,module,exports){ var inherits = require('inherits'); var Buffer = require('buffer').Buffer; var DERDecoder = require('./der'); function PEMDecoder(entity) { DERDecoder.call(this, entity); this.enc = 'pem'; }; inherits(PEMDecoder, DERDecoder); module.exports = PEMDecoder; PEMDecoder.prototype.decode = function decode(data, options) { var lines = data.toString().split(/[\r\n]+/g); var label = options.label.toUpperCase(); var re = /^-----(BEGIN|END) ([^-]+)-----$/; var start = -1; var end = -1; for (var i = 0; i < lines.length; i++) { var match = lines[i].match(re); if (match === null) continue; if (match[2] !== label) continue; if (start === -1) { if (match[1] !== 'BEGIN') break; start = i; } else { if (match[1] !== 'END') break; end = i; break; } } if (start === -1 || end === -1) throw new Error('PEM section not found for: ' + label); var base64 = lines.slice(start + 1, end).join(''); // Remove excessive symbols base64.replace(/[^a-z0-9\+\/=]+/gi, ''); var input = new Buffer(base64, 'base64'); return DERDecoder.prototype.decode.call(this, input, options); }; },{"./der":18,"buffer":54,"inherits":108}],21:[function(require,module,exports){ var inherits = require('inherits'); var Buffer = require('buffer').Buffer; var asn1 = require('../../asn1'); var base = asn1.base; // Import DER constants var der = asn1.constants.der; function DEREncoder(entity) { this.enc = 'der'; this.name = entity.name; this.entity = entity; // Construct base tree this.tree = new DERNode(); this.tree._init(entity.body); }; module.exports = DEREncoder; DEREncoder.prototype.encode = function encode(data, reporter) { return this.tree._encode(data, reporter).join(); }; // Tree methods function DERNode(parent) { base.Node.call(this, 'der', parent); } inherits(DERNode, base.Node); DERNode.prototype._encodeComposite = function encodeComposite(tag, primitive, cls, content) { var encodedTag = encodeTag(tag, primitive, cls, this.reporter); // Short form if (content.length < 0x80) { var header = new Buffer(2); header[0] = encodedTag; header[1] = content.length; return this._createEncoderBuffer([ header, content ]); } // Long form // Count octets required to store length var lenOctets = 1; for (var i = content.length; i >= 0x100; i >>= 8) lenOctets++; var header = new Buffer(1 + 1 + lenOctets); header[0] = encodedTag; header[1] = 0x80 | lenOctets; for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) header[i] = j & 0xff; return this._createEncoderBuffer([ header, content ]); }; DERNode.prototype._encodeStr = function encodeStr(str, tag) { if (tag === 'bitstr') { return this._createEncoderBuffer([ str.unused | 0, str.data ]); } else if (tag === 'bmpstr') { var buf = new Buffer(str.length * 2); for (var i = 0; i < str.length; i++) { buf.writeUInt16BE(str.charCodeAt(i), i * 2); } return this._createEncoderBuffer(buf); } else if (tag === 'numstr') { if (!this._isNumstr(str)) { return this.reporter.error('Encoding of string type: numstr supports ' + 'only digits and space'); } return this._createEncoderBuffer(str); } else if (tag === 'printstr') { if (!this._isPrintstr(str)) { return this.reporter.error('Encoding of string type: printstr supports ' + 'only latin upper and lower case letters, ' + 'digits, space, apostrophe, left and rigth ' + 'parenthesis, plus sign, comma, hyphen, ' + 'dot, slash, colon, equal sign, ' + 'question mark'); } return this._createEncoderBuffer(str); } else if (/str$/.test(tag)) { return this._createEncoderBuffer(str); } else if (tag === 'objDesc') { return this._createEncoderBuffer(str); } else { return this.reporter.error('Encoding of string type: ' + tag + ' unsupported'); } }; DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) { if (typeof id === 'string') { if (!values) return this.reporter.error('string objid given, but no values map found'); if (!values.hasOwnProperty(id)) return this.reporter.error('objid not found in values map'); id = values[id].split(/[\s\.]+/g); for (var i = 0; i < id.length; i++) id[i] |= 0; } else if (Array.isArray(id)) { id = id.slice(); for (var i = 0; i < id.length; i++) id[i] |= 0; } if (!Array.isArray(id)) { return this.reporter.error('objid() should be either array or string, ' + 'got: ' + JSON.stringify(id)); } if (!relative) { if (id[1] >= 40) return this.reporter.error('Second objid identifier OOB'); id.splice(0, 2, id[0] * 40 + id[1]); } // Count number of octets var size = 0; for (var i = 0; i < id.length; i++) { var ident = id[i]; for (size++; ident >= 0x80; ident >>= 7) size++; } var objid = new Buffer(size); var offset = objid.length - 1; for (var i = id.length - 1; i >= 0; i--) { var ident = id[i]; objid[offset--] = ident & 0x7f; while ((ident >>= 7) > 0) objid[offset--] = 0x80 | (ident & 0x7f); } return this._createEncoderBuffer(objid); }; function two(num) { if (num < 10) return '0' + num; else return num; } DERNode.prototype._encodeTime = function encodeTime(time, tag) { var str; var date = new Date(time); if (tag === 'gentime') { str = [ two(date.getFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z' ].join(''); } else if (tag === 'utctime') { str = [ two(date.getFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z' ].join(''); } else { this.reporter.error('Encoding ' + tag + ' time is not supported yet'); } return this._encodeStr(str, 'octstr'); }; DERNode.prototype._encodeNull = function encodeNull() { return this._createEncoderBuffer(''); }; DERNode.prototype._encodeInt = function encodeInt(num, values) { if (typeof num === 'string') { if (!values) return this.reporter.error('String int or enum given, but no values map'); if (!values.hasOwnProperty(num)) { return this.reporter.error('Values map doesn\'t contain: ' + JSON.stringify(num)); } num = values[num]; } // Bignum, assume big endian if (typeof num !== 'number' && !Buffer.isBuffer(num)) { var numArray = num.toArray(); if (!num.sign && numArray[0] & 0x80) { numArray.unshift(0); } num = new Buffer(numArray); } if (Buffer.isBuffer(num)) { var size = num.length; if (num.length === 0) size++; var out = new Buffer(size); num.copy(out); if (num.length === 0) out[0] = 0 return this._createEncoderBuffer(out); } if (num < 0x80) return this._createEncoderBuffer(num); if (num < 0x100) return this._createEncoderBuffer([0, num]); var size = 1; for (var i = num; i >= 0x100; i >>= 8) size++; var out = new Array(size); for (var i = out.length - 1; i >= 0; i--) { out[i] = num & 0xff; num >>= 8; } if(out[0] & 0x80) { out.unshift(0); } return this._createEncoderBuffer(new Buffer(out)); }; DERNode.prototype._encodeBool = function encodeBool(value) { return this._createEncoderBuffer(value ? 0xff : 0); }; DERNode.prototype._use = function use(entity, obj) { if (typeof entity === 'function') entity = entity(obj); return entity._getEncoder('der').tree; }; DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) { var state = this._baseState; var i; if (state['default'] === null) return false; var data = dataBuffer.join(); if (state.defaultBuffer === undefined) state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join(); if (data.length !== state.defaultBuffer.length) return false; for (i=0; i < data.length; i++) if (data[i] !== state.defaultBuffer[i]) return false; return true; }; // Utility methods function encodeTag(tag, primitive, cls, reporter) { var res; if (tag === 'seqof') tag = 'seq'; else if (tag === 'setof') tag = 'set'; if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag]; else if (typeof tag === 'number' && (tag | 0) === tag) res = tag; else return reporter.error('Unknown tag: ' + tag); if (res >= 0x1f) return reporter.error('Multi-octet tag encoding unsupported'); if (!primitive) res |= 0x20; res |= (der.tagClassByName[cls || 'universal'] << 6); return res; } },{"../../asn1":10,"buffer":54,"inherits":108}],22:[function(require,module,exports){ var encoders = exports; encoders.der = require('./der'); encoders.pem = require('./pem'); },{"./der":21,"./pem":23}],23:[function(require,module,exports){ var inherits = require('inherits'); var DEREncoder = require('./der'); function PEMEncoder(entity) { DEREncoder.call(this, entity); this.enc = 'pem'; }; inherits(PEMEncoder, DEREncoder); module.exports = PEMEncoder; PEMEncoder.prototype.encode = function encode(data, options) { var buf = DEREncoder.prototype.encode.call(this, data); var p = buf.toString('base64'); var out = [ '-----BEGIN ' + options.label + '-----' ]; for (var i = 0; i < p.length; i += 64) out.push(p.slice(i, i + 64)); out.push('-----END ' + options.label + '-----'); return out.join('\n'); }; },{"./der":21,"inherits":108}],24:[function(require,module,exports){ 'use strict' exports.byteLength = byteLength exports.toByteArray = toByteArray exports.fromByteArray = fromByteArray var lookup = [] var revLookup = [] var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' for (var i = 0, len = code.length; i < len; ++i) { lookup[i] = code[i] revLookup[code.charCodeAt(i)] = i } revLookup['-'.charCodeAt(0)] = 62 revLookup['_'.charCodeAt(0)] = 63 function placeHoldersCount (b64) { var len = b64.length if (len % 4 > 0) { throw new Error('Invalid string. Length must be a multiple of 4') } // the number of equal signs (place holders) // if there are two placeholders, than the two characters before it // represent one byte // if there is only one, then the three characters before it represent 2 bytes // this is just a cheap hack to not do indexOf twice return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 } function byteLength (b64) { // base64 is 4/3 + up to two characters of the original data return (b64.length * 3 / 4) - placeHoldersCount(b64) } function toByteArray (b64) { var i, l, tmp, placeHolders, arr var len = b64.length placeHolders = placeHoldersCount(b64) arr = new Arr((len * 3 / 4) - placeHolders) // if there are placeholders, only get up to the last complete 4 chars l = placeHolders > 0 ? len - 4 : len var L = 0 for (i = 0; i < l; i += 4) { tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] arr[L++] = (tmp >> 16) & 0xFF arr[L++] = (tmp >> 8) & 0xFF arr[L++] = tmp & 0xFF } if (placeHolders === 2) { tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) arr[L++] = tmp & 0xFF } else if (placeHolders === 1) { tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) arr[L++] = (tmp >> 8) & 0xFF arr[L++] = tmp & 0xFF } return arr } function tripletToBase64 (num) { return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] } function encodeChunk (uint8, start, end) { var tmp var output = [] for (var i = start; i < end; i += 3) { tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) output.push(tripletToBase64(tmp)) } return output.join('') } function fromByteArray (uint8) { var tmp var len = uint8.length var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes var output = '' var parts = [] var maxChunkLength = 16383 // must be multiple of 3 // go through the array every three bytes, we'll deal with trailing stuff later for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) } // pad the end with zeros, but make sure to not forget the extra bytes if (extraBytes === 1) { tmp = uint8[len - 1] output += lookup[tmp >> 2] output += lookup[(tmp << 4) & 0x3F] output += '==' } else if (extraBytes === 2) { tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) output += lookup[tmp >> 10] output += lookup[(tmp >> 4) & 0x3F] output += lookup[(tmp << 2) & 0x3F] output += '=' } parts.push(output) return parts.join('') } },{}],25:[function(require,module,exports){ (function (module, exports) { 'use strict'; // Utils function assert (val, msg) { if (!val) throw new Error(msg || 'Assertion failed'); } // Could use `inherits` module, but don't want to move from single file // architecture yet. function inherits (ctor, superCtor) { ctor.super_ = superCtor; var TempCtor = function () {}; TempCtor.prototype = superCtor.prototype; ctor.prototype = new TempCtor(); ctor.prototype.constructor = ctor; } // BN function BN (number, base, endian) { if (BN.isBN(number)) { return number; } this.negative = 0; this.words = null; this.length = 0; // Reduction context this.red = null; if (number !== null) { if (base === 'le' || base === 'be') { endian = base; base = 10; } this._init(number || 0, base || 10, endian || 'be'); } } if (typeof module === 'object') { module.exports = BN; } else { exports.BN = BN; } BN.BN = BN; BN.wordSize = 26; var Buffer; try { Buffer = require('buffer').Buffer; } catch (e) { } BN.isBN = function isBN (num) { if (num instanceof BN) { return true; } return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); }; BN.max = function max (left, right) { if (left.cmp(right) > 0) return left; return right; }; BN.min = function min (left, right) { if (left.cmp(right) < 0) return left; return right; }; BN.prototype._init = function init (number, base, endian) { if (typeof number === 'number') { return this._initNumber(number, base, endian); } if (typeof number === 'object') { return this._initArray(number, base, endian); } if (base === 'hex') { base = 16; } assert(base === (base | 0) && base >= 2 && base <= 36); number = number.toString().replace(/\s+/g, ''); var start = 0; if (number[0] === '-') { start++; } if (base === 16) { this._parseHex(number, start); } else { this._parseBase(number, base, start); } if (number[0] === '-') { this.negative = 1; } this.strip(); if (endian !== 'le') return; this._initArray(this.toArray(), base, endian); }; BN.prototype._initNumber = function _initNumber (number, base, endian) { if (number < 0) { this.negative = 1; number = -number; } if (number < 0x4000000) { this.words = [ number & 0x3ffffff ]; this.length = 1; } else if (number < 0x10000000000000) { this.words = [ number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff ]; this.length = 2; } else { assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) this.words = [ number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff, 1 ]; this.length = 3; } if (endian !== 'le') return; // Reverse the bytes this._initArray(this.toArray(), base, endian); }; BN.prototype._initArray = function _initArray (number, base, endian) { // Perhaps a Uint8Array assert(typeof number.length === 'number'); if (number.length <= 0) { this.words = [ 0 ]; this.length = 1; return this; } this.length = Math.ceil(number.length / 3); this.words = new Array(this.length); for (var i = 0; i < this.length; i++) { this.words[i] = 0; } var j, w; var off = 0; if (endian === 'be') { for (i = number.length - 1, j = 0; i >= 0; i -= 3) { w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; off += 24; if (off >= 26) { off -= 26; j++; } } } else if (endian === 'le') { for (i = 0, j = 0; i < number.length; i += 3) { w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; off += 24; if (off >= 26) { off -= 26; j++; } } } return this.strip(); }; function parseHex (str, start, end) { var r = 0; var len = Math.min(str.length, end); for (var i = start; i < len; i++) { var c = str.charCodeAt(i) - 48; r <<= 4; // 'a' - 'f' if (c >= 49 && c <= 54) { r |= c - 49 + 0xa; // 'A' - 'F' } else if (c >= 17 && c <= 22) { r |= c - 17 + 0xa; // '0' - '9' } else { r |= c & 0xf; } } return r; } BN.prototype._parseHex = function _parseHex (number, start) { // Create possibly bigger array to ensure that it fits the number this.length = Math.ceil((number.length - start) / 6); this.words = new Array(this.length); for (var i = 0; i < this.length; i++) { this.words[i] = 0; } var j, w; // Scan 24-bit chunks and add them to the number var off = 0; for (i = number.length - 6, j = 0; i >= start; i -= 6) { w = parseHex(number, i, i + 6); this.words[j] |= (w << off) & 0x3ffffff; // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; off += 24; if (off >= 26) { off -= 26; j++; } } if (i + 6 !== start) { w = parseHex(number, start, i + 6); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; } this.strip(); }; function parseBase (str, start, end, mul) { var r = 0; var len = Math.min(str.length, end); for (var i = start; i < len; i++) { var c = str.charCodeAt(i) - 48; r *= mul; // 'a' if (c >= 49) { r += c - 49 + 0xa; // 'A' } else if (c >= 17) { r += c - 17 + 0xa; // '0' - '9' } else { r += c; } } return r; } BN.prototype._parseBase = function _parseBase (number, base, start) { // Initialize as zero this.words = [ 0 ]; this.length = 1; // Find length of limb in base for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { limbLen++; } limbLen--; limbPow = (limbPow / base) | 0; var total = number.length - start; var mod = total % limbLen; var end = Math.min(total, total - mod) + start; var word = 0; for (var i = start; i < end; i += limbLen) { word = parseBase(number, i, i + limbLen, base); this.imuln(limbPow); if (this.words[0] + word < 0x4000000) { this.words[0] += word; } else { this._iaddn(word); } } if (mod !== 0) { var pow = 1; word = parseBase(number, i, number.length, base); for (i = 0; i < mod; i++) { pow *= base; } this.imuln(pow); if (this.words[0] + word < 0x4000000) { this.words[0] += word; } else { this._iaddn(word); } } }; BN.prototype.copy = function copy (dest) { dest.words = new Array(this.length); for (var i = 0; i < this.length; i++) { dest.words[i] = this.words[i]; } dest.length = this.length; dest.negative = this.negative; dest.red = this.red; }; BN.prototype.clone = function clone () { var r = new BN(null); this.copy(r); return r; }; BN.prototype._expand = function _expand (size) { while (this.length < size) { this.words[this.length++] = 0; } return this; }; // Remove leading `0` from `this` BN.prototype.strip = function strip () { while (this.length > 1 && this.words[this.length - 1] === 0) { this.length--; } return this._normSign(); }; BN.prototype._normSign = function _normSign () { // -0 = 0 if (this.length === 1 && this.words[0] === 0) { this.negative = 0; } return this; }; BN.prototype.inspect = function inspect () { return (this.red ? ''; }; /* var zeros = []; var groupSizes = []; var groupBases = []; var s = ''; var i = -1; while (++i < BN.wordSize) { zeros[i] = s; s += '0'; } groupSizes[0] = 0; groupSizes[1] = 0; groupBases[0] = 0; groupBases[1] = 0; var base = 2 - 1; while (++base < 36 + 1) { var groupSize = 0; var groupBase = 1; while (groupBase < (1 << BN.wordSize) / base) { groupBase *= base; groupSize += 1; } groupSizes[base] = groupSize; groupBases[base] = groupBase; } */ var zeros = [ '', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000' ]; var groupSizes = [ 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 ]; var groupBases = [ 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 ]; BN.prototype.toString = function toString (base, padding) { base = base || 10; padding = padding | 0 || 1; var out; if (base === 16 || base === 'hex') { out = ''; var off = 0; var carry = 0; for (var i = 0; i < this.length; i++) { var w = this.words[i]; var word = (((w << off) | carry) & 0xffffff).toString(16); carry = (w >>> (24 - off)) & 0xffffff; if (carry !== 0 || i !== this.length - 1) { out = zeros[6 - word.length] + word + out; } else { out = word + out; } off += 2; if (off >= 26) { off -= 26; i--; } } if (carry !== 0) { out = carry.toString(16) + out; } while (out.length % padding !== 0) { out = '0' + out; } if (this.negative !== 0) { out = '-' + out; } return out; } if (base === (base | 0) && base >= 2 && base <= 36) { // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize); var groupBase = groupBases[base]; out = ''; var c = this.clone(); c.negative = 0; while (!c.isZero()) { var r = c.modn(groupBase).toString(base); c = c.idivn(groupBase); if (!c.isZero()) { out = zeros[groupSize - r.length] + r + out; } else { out = r + out; } } if (this.isZero()) { out = '0' + out; } while (out.length % padding !== 0) { out = '0' + out; } if (this.negative !== 0) { out = '-' + out; } return out; } assert(false, 'Base should be between 2 and 36'); }; BN.prototype.toNumber = function toNumber () { var ret = this.words[0]; if (this.length === 2) { ret += this.words[1] * 0x4000000; } else if (this.length === 3 && this.words[2] === 0x01) { // NOTE: at this stage it is known that the top bit is set ret += 0x10000000000000 + (this.words[1] * 0x4000000); } else if (this.length > 2) { assert(false, 'Number can only safely store up to 53 bits'); } return (this.negative !== 0) ? -ret : ret; }; BN.prototype.toJSON = function toJSON () { return this.toString(16); }; BN.prototype.toBuffer = function toBuffer (endian, length) { assert(typeof Buffer !== 'undefined'); return this.toArrayLike(Buffer, endian, length); }; BN.prototype.toArray = function toArray (endian, length) { return this.toArrayLike(Array, endian, length); }; BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) { var byteLength = this.byteLength(); var reqLength = length || Math.max(1, byteLength); assert(byteLength <= reqLength, 'byte array longer than desired length'); assert(reqLength > 0, 'Requested array length <= 0'); this.strip(); var littleEndian = endian === 'le'; var res = new ArrayType(reqLength); var b, i; var q = this.clone(); if (!littleEndian) { // Assume big-endian for (i = 0; i < reqLength - byteLength; i++) { res[i] = 0; } for (i = 0; !q.isZero(); i++) { b = q.andln(0xff); q.iushrn(8); res[reqLength - i - 1] = b; } } else { for (i = 0; !q.isZero(); i++) { b = q.andln(0xff); q.iushrn(8); res[i] = b; } for (; i < reqLength; i++) { res[i] = 0; } } return res; }; if (Math.clz32) { BN.prototype._countBits = function _countBits (w) { return 32 - Math.clz32(w); }; } else { BN.prototype._countBits = function _countBits (w) { var t = w; var r = 0; if (t >= 0x1000) { r += 13; t >>>= 13; } if (t >= 0x40) { r += 7; t >>>= 7; } if (t >= 0x8) { r += 4; t >>>= 4; } if (t >= 0x02) { r += 2; t >>>= 2; } return r + t; }; } BN.prototype._zeroBits = function _zeroBits (w) { // Short-cut if (w === 0) return 26; var t = w; var r = 0; if ((t & 0x1fff) === 0) { r += 13; t >>>= 13; } if ((t & 0x7f) === 0) { r += 7; t >>>= 7; } if ((t & 0xf) === 0) { r += 4; t >>>= 4; } if ((t & 0x3) === 0) { r += 2; t >>>= 2; } if ((t & 0x1) === 0) { r++; } return r; }; // Return number of used bits in a BN BN.prototype.bitLength = function bitLength () { var w = this.words[this.length - 1]; var hi = this._countBits(w); return (this.length - 1) * 26 + hi; }; function toBitArray (num) { var w = new Array(num.bitLength()); for (var bit = 0; bit < w.length; bit++) { var off = (bit / 26) | 0; var wbit = bit % 26; w[bit] = (num.words[off] & (1 << wbit)) >>> wbit; } return w; } // Number of trailing zero bits BN.prototype.zeroBits = function zeroBits () { if (this.isZero()) return 0; var r = 0; for (var i = 0; i < this.length; i++) { var b = this._zeroBits(this.words[i]); r += b; if (b !== 26) break; } return r; }; BN.prototype.byteLength = function byteLength () { return Math.ceil(this.bitLength() / 8); }; BN.prototype.toTwos = function toTwos (width) { if (this.negative !== 0) { return this.abs().inotn(width).iaddn(1); } return this.clone(); }; BN.prototype.fromTwos = function fromTwos (width) { if (this.testn(width - 1)) { return this.notn(width).iaddn(1).ineg(); } return this.clone(); }; BN.prototype.isNeg = function isNeg () { return this.negative !== 0; }; // Return negative clone of `this` BN.prototype.neg = function neg () { return this.clone().ineg(); }; BN.prototype.ineg = function ineg () { if (!this.isZero()) { this.negative ^= 1; } return this; }; // Or `num` with `this` in-place BN.prototype.iuor = function iuor (num) { while (this.length < num.length) { this.words[this.length++] = 0; } for (var i = 0; i < num.length; i++) { this.words[i] = this.words[i] | num.words[i]; } return this.strip(); }; BN.prototype.ior = function ior (num) { assert((this.negative | num.negative) === 0); return this.iuor(num); }; // Or `num` with `this` BN.prototype.or = function or (num) { if (this.length > num.length) return this.clone().ior(num); return num.clone().ior(this); }; BN.prototype.uor = function uor (num) { if (this.length > num.length) return this.clone().iuor(num); return num.clone().iuor(this); }; // And `num` with `this` in-place BN.prototype.iuand = function iuand (num) { // b = min-length(num, this) var b; if (this.length > num.length) { b = num; } else { b = this; } for (var i = 0; i < b.length; i++) { this.words[i] = this.words[i] & num.words[i]; } this.length = b.length; return this.strip(); }; BN.prototype.iand = function iand (num) { assert((this.negative | num.negative) === 0); return this.iuand(num); }; // And `num` with `this` BN.prototype.and = function and (num) { if (this.length > num.length) return this.clone().iand(num); return num.clone().iand(this); }; BN.prototype.uand = function uand (num) { if (this.length > num.length) return this.clone().iuand(num); return num.clone().iuand(this); }; // Xor `num` with `this` in-place BN.prototype.iuxor = function iuxor (num) { // a.length > b.length var a; var b; if (this.length > num.length) { a = this; b = num; } else { a = num; b = this; } for (var i = 0; i < b.length; i++) { this.words[i] = a.words[i] ^ b.words[i]; } if (this !== a) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } this.length = a.length; return this.strip(); }; BN.prototype.ixor = function ixor (num) { assert((this.negative | num.negative) === 0); return this.iuxor(num); }; // Xor `num` with `this` BN.prototype.xor = function xor (num) { if (this.length > num.length) return this.clone().ixor(num); return num.clone().ixor(this); }; BN.prototype.uxor = function uxor (num) { if (this.length > num.length) return this.clone().iuxor(num); return num.clone().iuxor(this); }; // Not ``this`` with ``width`` bitwidth BN.prototype.inotn = function inotn (width) { assert(typeof width === 'number' && width >= 0); var bytesNeeded = Math.ceil(width / 26) | 0; var bitsLeft = width % 26; // Extend the buffer with leading zeroes this._expand(bytesNeeded); if (bitsLeft > 0) { bytesNeeded--; } // Handle complete words for (var i = 0; i < bytesNeeded; i++) { this.words[i] = ~this.words[i] & 0x3ffffff; } // Handle the residue if (bitsLeft > 0) { this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft)); } // And remove leading zeroes return this.strip(); }; BN.prototype.notn = function notn (width) { return this.clone().inotn(width); }; // Set `bit` of `this` BN.prototype.setn = function setn (bit, val) { assert(typeof bit === 'number' && bit >= 0); var off = (bit / 26) | 0; var wbit = bit % 26; this._expand(off + 1); if (val) { this.words[off] = this.words[off] | (1 << wbit); } else { this.words[off] = this.words[off] & ~(1 << wbit); } return this.strip(); }; // Add `num` to `this` in-place BN.prototype.iadd = function iadd (num) { var r; // negative + positive if (this.negative !== 0 && num.negative === 0) { this.negative = 0; r = this.isub(num); this.negative ^= 1; return this._normSign(); // positive + negative } else if (this.negative === 0 && num.negative !== 0) { num.negative = 0; r = this.isub(num); num.negative = 1; return r._normSign(); } // a.length > b.length var a, b; if (this.length > num.length) { a = this; b = num; } else { a = num; b = this; } var carry = 0; for (var i = 0; i < b.length; i++) { r = (a.words[i] | 0) + (b.words[i] | 0) + carry; this.words[i] = r & 0x3ffffff; carry = r >>> 26; } for (; carry !== 0 && i < a.length; i++) { r = (a.words[i] | 0) + carry; this.words[i] = r & 0x3ffffff; carry = r >>> 26; } this.length = a.length; if (carry !== 0) { this.words[this.length] = carry; this.length++; // Copy the rest of the words } else if (a !== this) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } return this; }; // Add `num` to `this` BN.prototype.add = function add (num) { var res; if (num.negative !== 0 && this.negative === 0) { num.negative = 0; res = this.sub(num); num.negative ^= 1; return res; } else if (num.negative === 0 && this.negative !== 0) { this.negative = 0; res = num.sub(this); this.negative = 1; return res; } if (this.length > num.length) return this.clone().iadd(num); return num.clone().iadd(this); }; // Subtract `num` from `this` in-place BN.prototype.isub = function isub (num) { // this - (-num) = this + num if (num.negative !== 0) { num.negative = 0; var r = this.iadd(num); num.negative = 1; return r._normSign(); // -this - num = -(this + num) } else if (this.negative !== 0) { this.negative = 0; this.iadd(num); this.negative = 1; return this._normSign(); } // At this point both numbers are positive var cmp = this.cmp(num); // Optimization - zeroify if (cmp === 0) { this.negative = 0; this.length = 1; this.words[0] = 0; return this; } // a > b var a, b; if (cmp > 0) { a = this; b = num; } else { a = num; b = this; } var carry = 0; for (var i = 0; i < b.length; i++) { r = (a.words[i] | 0) - (b.words[i] | 0) + carry; carry = r >> 26; this.words[i] = r & 0x3ffffff; } for (; carry !== 0 && i < a.length; i++) { r = (a.words[i] | 0) + carry; carry = r >> 26; this.words[i] = r & 0x3ffffff; } // Copy rest of the words if (carry === 0 && i < a.length && a !== this) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } this.length = Math.max(this.length, i); if (a !== this) { this.negative = 1; } return this.strip(); }; // Subtract `num` from `this` BN.prototype.sub = function sub (num) { return this.clone().isub(num); }; function smallMulTo (self, num, out) { out.negative = num.negative ^ self.negative; var len = (self.length + num.length) | 0; out.length = len; len = (len - 1) | 0; // Peel one iteration (compiler can't do it, because of code complexity) var a = self.words[0] | 0; var b = num.words[0] | 0; var r = a * b; var lo = r & 0x3ffffff; var carry = (r / 0x4000000) | 0; out.words[0] = lo; for (var k = 1; k < len; k++) { // Sum all words with the same `i + j = k` and accumulate `ncarry`, // note that ncarry could be >= 0x3ffffff var ncarry = carry >>> 26; var rword = carry & 0x3ffffff; var maxJ = Math.min(k, num.length - 1); for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { var i = (k - j) | 0; a = self.words[i] | 0; b = num.words[j] | 0; r = a * b + rword; ncarry += (r / 0x4000000) | 0; rword = r & 0x3ffffff; } out.words[k] = rword | 0; carry = ncarry | 0; } if (carry !== 0) { out.words[k] = carry | 0; } else { out.length--; } return out.strip(); } // TODO(indutny): it may be reasonable to omit it for users who don't need // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit // multiplication (like elliptic secp256k1). var comb10MulTo = function comb10MulTo (self, num, out) { var a = self.words; var b = num.words; var o = out.words; var c = 0; var lo; var mid; var hi; var a0 = a[0] | 0; var al0 = a0 & 0x1fff; var ah0 = a0 >>> 13; var a1 = a[1] | 0; var al1 = a1 & 0x1fff; var ah1 = a1 >>> 13; var a2 = a[2] | 0; var al2 = a2 & 0x1fff; var ah2 = a2 >>> 13; var a3 = a[3] | 0; var al3 = a3 & 0x1fff; var ah3 = a3 >>> 13; var a4 = a[4] | 0; var al4 = a4 & 0x1fff; var ah4 = a4 >>> 13; var a5 = a[5] | 0; var al5 = a5 & 0x1fff; var ah5 = a5 >>> 13; var a6 = a[6] | 0; var al6 = a6 & 0x1fff; var ah6 = a6 >>> 13; var a7 = a[7] | 0; var al7 = a7 & 0x1fff; var ah7 = a7 >>> 13; var a8 = a[8] | 0; var al8 = a8 & 0x1fff; var ah8 = a8 >>> 13; var a9 = a[9] | 0; var al9 = a9 & 0x1fff; var ah9 = a9 >>> 13; var b0 = b[0] | 0; var bl0 = b0 & 0x1fff; var bh0 = b0 >>> 13; var b1 = b[1] | 0; var bl1 = b1 & 0x1fff; var bh1 = b1 >>> 13; var b2 = b[2] | 0; var bl2 = b2 & 0x1fff; var bh2 = b2 >>> 13; var b3 = b[3] | 0; var bl3 = b3 & 0x1fff; var bh3 = b3 >>> 13; var b4 = b[4] | 0; var bl4 = b4 & 0x1fff; var bh4 = b4 >>> 13; var b5 = b[5] | 0; var bl5 = b5 & 0x1fff; var bh5 = b5 >>> 13; var b6 = b[6] | 0; var bl6 = b6 & 0x1fff; var bh6 = b6 >>> 13; var b7 = b[7] | 0; var bl7 = b7 & 0x1fff; var bh7 = b7 >>> 13; var b8 = b[8] | 0; var bl8 = b8 & 0x1fff; var bh8 = b8 >>> 13; var b9 = b[9] | 0; var bl9 = b9 & 0x1fff; var bh9 = b9 >>> 13; out.negative = self.negative ^ num.negative; out.length = 19; /* k = 0 */ lo = Math.imul(al0, bl0); mid = Math.imul(al0, bh0); mid = (mid + Math.imul(ah0, bl0)) | 0; hi = Math.imul(ah0, bh0); var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0; w0 &= 0x3ffffff; /* k = 1 */ lo = Math.imul(al1, bl0); mid = Math.imul(al1, bh0); mid = (mid + Math.imul(ah1, bl0)) | 0; hi = Math.imul(ah1, bh0); lo = (lo + Math.imul(al0, bl1)) | 0; mid = (mid + Math.imul(al0, bh1)) | 0; mid = (mid + Math.imul(ah0, bl1)) | 0; hi = (hi + Math.imul(ah0, bh1)) | 0; var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0; w1 &= 0x3ffffff; /* k = 2 */ lo = Math.imul(al2, bl0); mid = Math.imul(al2, bh0); mid = (mid + Math.imul(ah2, bl0)) | 0; hi = Math.imul(ah2, bh0); lo = (lo + Math.imul(al1, bl1)) | 0; mid = (mid + Math.imul(al1, bh1)) | 0; mid = (mid + Math.imul(ah1, bl1)) | 0; hi = (hi + Math.imul(ah1, bh1)) | 0; lo = (lo + Math.imul(al0, bl2)) | 0; mid = (mid + Math.imul(al0, bh2)) | 0; mid = (mid + Math.imul(ah0, bl2)) | 0; hi = (hi + Math.imul(ah0, bh2)) | 0; var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0; w2 &= 0x3ffffff; /* k = 3 */ lo = Math.imul(al3, bl0); mid = Math.imul(al3, bh0); mid = (mid + Math.imul(ah3, bl0)) | 0; hi = Math.imul(ah3, bh0); lo = (lo + Math.imul(al2, bl1)) | 0; mid = (mid + Math.imul(al2, bh1)) | 0; mid = (mid + Math.imul(ah2, bl1)) | 0; hi = (hi + Math.imul(ah2, bh1)) | 0; lo = (lo + Math.imul(al1, bl2)) | 0; mid = (mid + Math.imul(al1, bh2)) | 0; mid = (mid + Math.imul(ah1, bl2)) | 0; hi = (hi + Math.imul(ah1, bh2)) | 0; lo = (lo + Math.imul(al0, bl3)) | 0; mid = (mid + Math.imul(al0, bh3)) | 0; mid = (mid + Math.imul(ah0, bl3)) | 0; hi = (hi + Math.imul(ah0, bh3)) | 0; var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0; w3 &= 0x3ffffff; /* k = 4 */ lo = Math.imul(al4, bl0); mid = Math.imul(al4, bh0); mid = (mid + Math.imul(ah4, bl0)) | 0; hi = Math.imul(ah4, bh0); lo = (lo + Math.imul(al3, bl1)) | 0; mid = (mid + Math.imul(al3, bh1)) | 0; mid = (mid + Math.imul(ah3, bl1)) | 0; hi = (hi + Math.imul(ah3, bh1)) | 0; lo = (lo + Math.imul(al2, bl2)) | 0; mid = (mid + Math.imul(al2, bh2)) | 0; mid = (mid + Math.imul(ah2, bl2)) | 0; hi = (hi + Math.imul(ah2, bh2)) | 0; lo = (lo + Math.imul(al1, bl3)) | 0; mid = (mid + Math.imul(al1, bh3)) | 0; mid = (mid + Math.imul(ah1, bl3)) | 0; hi = (hi + Math.imul(ah1, bh3)) | 0; lo = (lo + Math.imul(al0, bl4)) | 0; mid = (mid + Math.imul(al0, bh4)) | 0; mid = (mid + Math.imul(ah0, bl4)) | 0; hi = (hi + Math.imul(ah0, bh4)) | 0; var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0; w4 &= 0x3ffffff; /* k = 5 */ lo = Math.imul(al5, bl0); mid = Math.imul(al5, bh0); mid = (mid + Math.imul(ah5, bl0)) | 0; hi = Math.imul(ah5, bh0); lo = (lo + Math.imul(al4, bl1)) | 0; mid = (mid + Math.imul(al4, bh1)) | 0; mid = (mid + Math.imul(ah4, bl1)) | 0; hi = (hi + Math.imul(ah4, bh1)) | 0; lo = (lo + Math.imul(al3, bl2)) | 0; mid = (mid + Math.imul(al3, bh2)) | 0; mid = (mid + Math.imul(ah3, bl2)) | 0; hi = (hi + Math.imul(ah3, bh2)) | 0; lo = (lo + Math.imul(al2, bl3)) | 0; mid = (mid + Math.imul(al2, bh3)) | 0; mid = (mid + Math.imul(ah2, bl3)) | 0; hi = (hi + Math.imul(ah2, bh3)) | 0; lo = (lo + Math.imul(al1, bl4)) | 0; mid = (mid + Math.imul(al1, bh4)) | 0; mid = (mid + Math.imul(ah1, bl4)) | 0; hi = (hi + Math.imul(ah1, bh4)) | 0; lo = (lo + Math.imul(al0, bl5)) | 0; mid = (mid + Math.imul(al0, bh5)) | 0; mid = (mid + Math.imul(ah0, bl5)) | 0; hi = (hi + Math.imul(ah0, bh5)) | 0; var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0; w5 &= 0x3ffffff; /* k = 6 */ lo = Math.imul(al6, bl0); mid = Math.imul(al6, bh0); mid = (mid + Math.imul(ah6, bl0)) | 0; hi = Math.imul(ah6, bh0); lo = (lo + Math.imul(al5, bl1)) | 0; mid = (mid + Math.imul(al5, bh1)) | 0; mid = (mid + Math.imul(ah5, bl1)) | 0; hi = (hi + Math.imul(ah5, bh1)) | 0; lo = (lo + Math.imul(al4, bl2)) | 0; mid = (mid + Math.imul(al4, bh2)) | 0; mid = (mid + Math.imul(ah4, bl2)) | 0; hi = (hi + Math.imul(ah4, bh2)) | 0; lo = (lo + Math.imul(al3, bl3)) | 0; mid = (mid + Math.imul(al3, bh3)) | 0; mid = (mid + Math.imul(ah3, bl3)) | 0; hi = (hi + Math.imul(ah3, bh3)) | 0; lo = (lo + Math.imul(al2, bl4)) | 0; mid = (mid + Math.imul(al2, bh4)) | 0; mid = (mid + Math.imul(ah2, bl4)) | 0; hi = (hi + Math.imul(ah2, bh4)) | 0; lo = (lo + Math.imul(al1, bl5)) | 0; mid = (mid + Math.imul(al1, bh5)) | 0; mid = (mid + Math.imul(ah1, bl5)) | 0; hi = (hi + Math.imul(ah1, bh5)) | 0; lo = (lo + Math.imul(al0, bl6)) | 0; mid = (mid + Math.imul(al0, bh6)) | 0; mid = (mid + Math.imul(ah0, bl6)) | 0; hi = (hi + Math.imul(ah0, bh6)) | 0; var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0; w6 &= 0x3ffffff; /* k = 7 */ lo = Math.imul(al7, bl0); mid = Math.imul(al7, bh0); mid = (mid + Math.imul(ah7, bl0)) | 0; hi = Math.imul(ah7, bh0); lo = (lo + Math.imul(al6, bl1)) | 0; mid = (mid + Math.imul(al6, bh1)) | 0; mid = (mid + Math.imul(ah6, bl1)) | 0; hi = (hi + Math.imul(ah6, bh1)) | 0; lo = (lo + Math.imul(al5, bl2)) | 0; mid = (mid + Math.imul(al5, bh2)) | 0; mid = (mid + Math.imul(ah5, bl2)) | 0; hi = (hi + Math.imul(ah5, bh2)) | 0; lo = (lo + Math.imul(al4, bl3)) | 0; mid = (mid + Math.imul(al4, bh3)) | 0; mid = (mid + Math.imul(ah4, bl3)) | 0; hi = (hi + Math.imul(ah4, bh3)) | 0; lo = (lo + Math.imul(al3, bl4)) | 0; mid = (mid + Math.imul(al3, bh4)) | 0; mid = (mid + Math.imul(ah3, bl4)) | 0; hi = (hi + Math.imul(ah3, bh4)) | 0; lo = (lo + Math.imul(al2, bl5)) | 0; mid = (mid + Math.imul(al2, bh5)) | 0; mid = (mid + Math.imul(ah2, bl5)) | 0; hi = (hi + Math.imul(ah2, bh5)) | 0; lo = (lo + Math.imul(al1, bl6)) | 0; mid = (mid + Math.imul(al1, bh6)) | 0; mid = (mid + Math.imul(ah1, bl6)) | 0; hi = (hi + Math.imul(ah1, bh6)) | 0; lo = (lo + Math.imul(al0, bl7)) | 0; mid = (mid + Math.imul(al0, bh7)) | 0; mid = (mid + Math.imul(ah0, bl7)) | 0; hi = (hi + Math.imul(ah0, bh7)) | 0; var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0; w7 &= 0x3ffffff; /* k = 8 */ lo = Math.imul(al8, bl0); mid = Math.imul(al8, bh0); mid = (mid + Math.imul(ah8, bl0)) | 0; hi = Math.imul(ah8, bh0); lo = (lo + Math.imul(al7, bl1)) | 0; mid = (mid + Math.imul(al7, bh1)) | 0; mid = (mid + Math.imul(ah7, bl1)) | 0; hi = (hi + Math.imul(ah7, bh1)) | 0; lo = (lo + Math.imul(al6, bl2)) | 0; mid = (mid + Math.imul(al6, bh2)) | 0; mid = (mid + Math.imul(ah6, bl2)) | 0; hi = (hi + Math.imul(ah6, bh2)) | 0; lo = (lo + Math.imul(al5, bl3)) | 0; mid = (mid + Math.imul(al5, bh3)) | 0; mid = (mid + Math.imul(ah5, bl3)) | 0; hi = (hi + Math.imul(ah5, bh3)) | 0; lo = (lo + Math.imul(al4, bl4)) | 0; mid = (mid + Math.imul(al4, bh4)) | 0; mid = (mid + Math.imul(ah4, bl4)) | 0; hi = (hi + Math.imul(ah4, bh4)) | 0; lo = (lo + Math.imul(al3, bl5)) | 0; mid = (mid + Math.imul(al3, bh5)) | 0; mid = (mid + Math.imul(ah3, bl5)) | 0; hi = (hi + Math.imul(ah3, bh5)) | 0; lo = (lo + Math.imul(al2, bl6)) | 0; mid = (mid + Math.imul(al2, bh6)) | 0; mid = (mid + Math.imul(ah2, bl6)) | 0; hi = (hi + Math.imul(ah2, bh6)) | 0; lo = (lo + Math.imul(al1, bl7)) | 0; mid = (mid + Math.imul(al1, bh7)) | 0; mid = (mid + Math.imul(ah1, bl7)) | 0; hi = (hi + Math.imul(ah1, bh7)) | 0; lo = (lo + Math.imul(al0, bl8)) | 0; mid = (mid + Math.imul(al0, bh8)) | 0; mid = (mid + Math.imul(ah0, bl8)) | 0; hi = (hi + Math.imul(ah0, bh8)) | 0; var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0; w8 &= 0x3ffffff; /* k = 9 */ lo = Math.imul(al9, bl0); mid = Math.imul(al9, bh0); mid = (mid + Math.imul(ah9, bl0)) | 0; hi = Math.imul(ah9, bh0); lo = (lo + Math.imul(al8, bl1)) | 0; mid = (mid + Math.imul(al8, bh1)) | 0; mid = (mid + Math.imul(ah8, bl1)) | 0; hi = (hi + Math.imul(ah8, bh1)) | 0; lo = (lo + Math.imul(al7, bl2)) | 0; mid = (mid + Math.imul(al7, bh2)) | 0; mid = (mid + Math.imul(ah7, bl2)) | 0; hi = (hi + Math.imul(ah7, bh2)) | 0; lo = (lo + Math.imul(al6, bl3)) | 0; mid = (mid + Math.imul(al6, bh3)) | 0; mid = (mid + Math.imul(ah6, bl3)) | 0; hi = (hi + Math.imul(ah6, bh3)) | 0; lo = (lo + Math.imul(al5, bl4)) | 0; mid = (mid + Math.imul(al5, bh4)) | 0; mid = (mid + Math.imul(ah5, bl4)) | 0; hi = (hi + Math.imul(ah5, bh4)) | 0; lo = (lo + Math.imul(al4, bl5)) | 0; mid = (mid + Math.imul(al4, bh5)) | 0; mid = (mid + Math.imul(ah4, bl5)) | 0; hi = (hi + Math.imul(ah4, bh5)) | 0; lo = (lo + Math.imul(al3, bl6)) | 0; mid = (mid + Math.imul(al3, bh6)) | 0; mid = (mid + Math.imul(ah3, bl6)) | 0; hi = (hi + Math.imul(ah3, bh6)) | 0; lo = (lo + Math.imul(al2, bl7)) | 0; mid = (mid + Math.imul(al2, bh7)) | 0; mid = (mid + Math.imul(ah2, bl7)) | 0; hi = (hi + Math.imul(ah2, bh7)) | 0; lo = (lo + Math.imul(al1, bl8)) | 0; mid = (mid + Math.imul(al1, bh8)) | 0; mid = (mid + Math.imul(ah1, bl8)) | 0; hi = (hi + Math.imul(ah1, bh8)) | 0; lo = (lo + Math.imul(al0, bl9)) | 0; mid = (mid + Math.imul(al0, bh9)) | 0; mid = (mid + Math.imul(ah0, bl9)) | 0; hi = (hi + Math.imul(ah0, bh9)) | 0; var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0; w9 &= 0x3ffffff; /* k = 10 */ lo = Math.imul(al9, bl1); mid = Math.imul(al9, bh1); mid = (mid + Math.imul(ah9, bl1)) | 0; hi = Math.imul(ah9, bh1); lo = (lo + Math.imul(al8, bl2)) | 0; mid = (mid + Math.imul(al8, bh2)) | 0; mid = (mid + Math.imul(ah8, bl2)) | 0; hi = (hi + Math.imul(ah8, bh2)) | 0; lo = (lo + Math.imul(al7, bl3)) | 0; mid = (mid + Math.imul(al7, bh3)) | 0; mid = (mid + Math.imul(ah7, bl3)) | 0; hi = (hi + Math.imul(ah7, bh3)) | 0; lo = (lo + Math.imul(al6, bl4)) | 0; mid = (mid + Math.imul(al6, bh4)) | 0; mid = (mid + Math.imul(ah6, bl4)) | 0; hi = (hi + Math.imul(ah6, bh4)) | 0; lo = (lo + Math.imul(al5, bl5)) | 0; mid = (mid + Math.imul(al5, bh5)) | 0; mid = (mid + Math.imul(ah5, bl5)) | 0; hi = (hi + Math.imul(ah5, bh5)) | 0; lo = (lo + Math.imul(al4, bl6)) | 0; mid = (mid + Math.imul(al4, bh6)) | 0; mid = (mid + Math.imul(ah4, bl6)) | 0; hi = (hi + Math.imul(ah4, bh6)) | 0; lo = (lo + Math.imul(al3, bl7)) | 0; mid = (mid + Math.imul(al3, bh7)) | 0; mid = (mid + Math.imul(ah3, bl7)) | 0; hi = (hi + Math.imul(ah3, bh7)) | 0; lo = (lo + Math.imul(al2, bl8)) | 0; mid = (mid + Math.imul(al2, bh8)) | 0; mid = (mid + Math.imul(ah2, bl8)) | 0; hi = (hi + Math.imul(ah2, bh8)) | 0; lo = (lo + Math.imul(al1, bl9)) | 0; mid = (mid + Math.imul(al1, bh9)) | 0; mid = (mid + Math.imul(ah1, bl9)) | 0; hi = (hi + Math.imul(ah1, bh9)) | 0; var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0; w10 &= 0x3ffffff; /* k = 11 */ lo = Math.imul(al9, bl2); mid = Math.imul(al9, bh2); mid = (mid + Math.imul(ah9, bl2)) | 0; hi = Math.imul(ah9, bh2); lo = (lo + Math.imul(al8, bl3)) | 0; mid = (mid + Math.imul(al8, bh3)) | 0; mid = (mid + Math.imul(ah8, bl3)) | 0; hi = (hi + Math.imul(ah8, bh3)) | 0; lo = (lo + Math.imul(al7, bl4)) | 0; mid = (mid + Math.imul(al7, bh4)) | 0; mid = (mid + Math.imul(ah7, bl4)) | 0; hi = (hi + Math.imul(ah7, bh4)) | 0; lo = (lo + Math.imul(al6, bl5)) | 0; mid = (mid + Math.imul(al6, bh5)) | 0; mid = (mid + Math.imul(ah6, bl5)) | 0; hi = (hi + Math.imul(ah6, bh5)) | 0; lo = (lo + Math.imul(al5, bl6)) | 0; mid = (mid + Math.imul(al5, bh6)) | 0; mid = (mid + Math.imul(ah5, bl6)) | 0; hi = (hi + Math.imul(ah5, bh6)) | 0; lo = (lo + Math.imul(al4, bl7)) | 0; mid = (mid + Math.imul(al4, bh7)) | 0; mid = (mid + Math.imul(ah4, bl7)) | 0; hi = (hi + Math.imul(ah4, bh7)) | 0; lo = (lo + Math.imul(al3, bl8)) | 0; mid = (mid + Math.imul(al3, bh8)) | 0; mid = (mid + Math.imul(ah3, bl8)) | 0; hi = (hi + Math.imul(ah3, bh8)) | 0; lo = (lo + Math.imul(al2, bl9)) | 0; mid = (mid + Math.imul(al2, bh9)) | 0; mid = (mid + Math.imul(ah2, bl9)) | 0; hi = (hi + Math.imul(ah2, bh9)) | 0; var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0; w11 &= 0x3ffffff; /* k = 12 */ lo = Math.imul(al9, bl3); mid = Math.imul(al9, bh3); mid = (mid + Math.imul(ah9, bl3)) | 0; hi = Math.imul(ah9, bh3); lo = (lo + Math.imul(al8, bl4)) | 0; mid = (mid + Math.imul(al8, bh4)) | 0; mid = (mid + Math.imul(ah8, bl4)) | 0; hi = (hi + Math.imul(ah8, bh4)) | 0; lo = (lo + Math.imul(al7, bl5)) | 0; mid = (mid + Math.imul(al7, bh5)) | 0; mid = (mid + Math.imul(ah7, bl5)) | 0; hi = (hi + Math.imul(ah7, bh5)) | 0; lo = (lo + Math.imul(al6, bl6)) | 0; mid = (mid + Math.imul(al6, bh6)) | 0; mid = (mid + Math.imul(ah6, bl6)) | 0; hi = (hi + Math.imul(ah6, bh6)) | 0; lo = (lo + Math.imul(al5, bl7)) | 0; mid = (mid + Math.imul(al5, bh7)) | 0; mid = (mid + Math.imul(ah5, bl7)) | 0; hi = (hi + Math.imul(ah5, bh7)) | 0; lo = (lo + Math.imul(al4, bl8)) | 0; mid = (mid + Math.imul(al4, bh8)) | 0; mid = (mid + Math.imul(ah4, bl8)) | 0; hi = (hi + Math.imul(ah4, bh8)) | 0; lo = (lo + Math.imul(al3, bl9)) | 0; mid = (mid + Math.imul(al3, bh9)) | 0; mid = (mid + Math.imul(ah3, bl9)) | 0; hi = (hi + Math.imul(ah3, bh9)) | 0; var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0; w12 &= 0x3ffffff; /* k = 13 */ lo = Math.imul(al9, bl4); mid = Math.imul(al9, bh4); mid = (mid + Math.imul(ah9, bl4)) | 0; hi = Math.imul(ah9, bh4); lo = (lo + Math.imul(al8, bl5)) | 0; mid = (mid + Math.imul(al8, bh5)) | 0; mid = (mid + Math.imul(ah8, bl5)) | 0; hi = (hi + Math.imul(ah8, bh5)) | 0; lo = (lo + Math.imul(al7, bl6)) | 0; mid = (mid + Math.imul(al7, bh6)) | 0; mid = (mid + Math.imul(ah7, bl6)) | 0; hi = (hi + Math.imul(ah7, bh6)) | 0; lo = (lo + Math.imul(al6, bl7)) | 0; mid = (mid + Math.imul(al6, bh7)) | 0; mid = (mid + Math.imul(ah6, bl7)) | 0; hi = (hi + Math.imul(ah6, bh7)) | 0; lo = (lo + Math.imul(al5, bl8)) | 0; mid = (mid + Math.imul(al5, bh8)) | 0; mid = (mid + Math.imul(ah5, bl8)) | 0; hi = (hi + Math.imul(ah5, bh8)) | 0; lo = (lo + Math.imul(al4, bl9)) | 0; mid = (mid + Math.imul(al4, bh9)) | 0; mid = (mid + Math.imul(ah4, bl9)) | 0; hi = (hi + Math.imul(ah4, bh9)) | 0; var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0; w13 &= 0x3ffffff; /* k = 14 */ lo = Math.imul(al9, bl5); mid = Math.imul(al9, bh5); mid = (mid + Math.imul(ah9, bl5)) | 0; hi = Math.imul(ah9, bh5); lo = (lo + Math.imul(al8, bl6)) | 0; mid = (mid + Math.imul(al8, bh6)) | 0; mid = (mid + Math.imul(ah8, bl6)) | 0; hi = (hi + Math.imul(ah8, bh6)) | 0; lo = (lo + Math.imul(al7, bl7)) | 0; mid = (mid + Math.imul(al7, bh7)) | 0; mid = (mid + Math.imul(ah7, bl7)) | 0; hi = (hi + Math.imul(ah7, bh7)) | 0; lo = (lo + Math.imul(al6, bl8)) | 0; mid = (mid + Math.imul(al6, bh8)) | 0; mid = (mid + Math.imul(ah6, bl8)) | 0; hi = (hi + Math.imul(ah6, bh8)) | 0; lo = (lo + Math.imul(al5, bl9)) | 0; mid = (mid + Math.imul(al5, bh9)) | 0; mid = (mid + Math.imul(ah5, bl9)) | 0; hi = (hi + Math.imul(ah5, bh9)) | 0; var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0; w14 &= 0x3ffffff; /* k = 15 */ lo = Math.imul(al9, bl6); mid = Math.imul(al9, bh6); mid = (mid + Math.imul(ah9, bl6)) | 0; hi = Math.imul(ah9, bh6); lo = (lo + Math.imul(al8, bl7)) | 0; mid = (mid + Math.imul(al8, bh7)) | 0; mid = (mid + Math.imul(ah8, bl7)) | 0; hi = (hi + Math.imul(ah8, bh7)) | 0; lo = (lo + Math.imul(al7, bl8)) | 0; mid = (mid + Math.imul(al7, bh8)) | 0; mid = (mid + Math.imul(ah7, bl8)) | 0; hi = (hi + Math.imul(ah7, bh8)) | 0; lo = (lo + Math.imul(al6, bl9)) | 0; mid = (mid + Math.imul(al6, bh9)) | 0; mid = (mid + Math.imul(ah6, bl9)) | 0; hi = (hi + Math.imul(ah6, bh9)) | 0; var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0; w15 &= 0x3ffffff; /* k = 16 */ lo = Math.imul(al9, bl7); mid = Math.imul(al9, bh7); mid = (mid + Math.imul(ah9, bl7)) | 0; hi = Math.imul(ah9, bh7); lo = (lo + Math.imul(al8, bl8)) | 0; mid = (mid + Math.imul(al8, bh8)) | 0; mid = (mid + Math.imul(ah8, bl8)) | 0; hi = (hi + Math.imul(ah8, bh8)) | 0; lo = (lo + Math.imul(al7, bl9)) | 0; mid = (mid + Math.imul(al7, bh9)) | 0; mid = (mid + Math.imul(ah7, bl9)) | 0; hi = (hi + Math.imul(ah7, bh9)) | 0; var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0; w16 &= 0x3ffffff; /* k = 17 */ lo = Math.imul(al9, bl8); mid = Math.imul(al9, bh8); mid = (mid + Math.imul(ah9, bl8)) | 0; hi = Math.imul(ah9, bh8); lo = (lo + Math.imul(al8, bl9)) | 0; mid = (mid + Math.imul(al8, bh9)) | 0; mid = (mid + Math.imul(ah8, bl9)) | 0; hi = (hi + Math.imul(ah8, bh9)) | 0; var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0; w17 &= 0x3ffffff; /* k = 18 */ lo = Math.imul(al9, bl9); mid = Math.imul(al9, bh9); mid = (mid + Math.imul(ah9, bl9)) | 0; hi = Math.imul(ah9, bh9); var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0; w18 &= 0x3ffffff; o[0] = w0; o[1] = w1; o[2] = w2; o[3] = w3; o[4] = w4; o[5] = w5; o[6] = w6; o[7] = w7; o[8] = w8; o[9] = w9; o[10] = w10; o[11] = w11; o[12] = w12; o[13] = w13; o[14] = w14; o[15] = w15; o[16] = w16; o[17] = w17; o[18] = w18; if (c !== 0) { o[19] = c; out.length++; } return out; }; // Polyfill comb if (!Math.imul) { comb10MulTo = smallMulTo; } function bigMulTo (self, num, out) { out.negative = num.negative ^ self.negative; out.length = self.length + num.length; var carry = 0; var hncarry = 0; for (var k = 0; k < out.length - 1; k++) { // Sum all words with the same `i + j = k` and accumulate `ncarry`, // note that ncarry could be >= 0x3ffffff var ncarry = hncarry; hncarry = 0; var rword = carry & 0x3ffffff; var maxJ = Math.min(k, num.length - 1); for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { var i = k - j; var a = self.words[i] | 0; var b = num.words[j] | 0; var r = a * b; var lo = r & 0x3ffffff; ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; lo = (lo + rword) | 0; rword = lo & 0x3ffffff; ncarry = (ncarry + (lo >>> 26)) | 0; hncarry += ncarry >>> 26; ncarry &= 0x3ffffff; } out.words[k] = rword; carry = ncarry; ncarry = hncarry; } if (carry !== 0) { out.words[k] = carry; } else { out.length--; } return out.strip(); } function jumboMulTo (self, num, out) { var fftm = new FFTM(); return fftm.mulp(self, num, out); } BN.prototype.mulTo = function mulTo (num, out) { var res; var len = this.length + num.length; if (this.length === 10 && num.length === 10) { res = comb10MulTo(this, num, out); } else if (len < 63) { res = smallMulTo(this, num, out); } else if (len < 1024) { res = bigMulTo(this, num, out); } else { res = jumboMulTo(this, num, out); } return res; }; // Cooley-Tukey algorithm for FFT // slightly revisited to rely on looping instead of recursion function FFTM (x, y) { this.x = x; this.y = y; } FFTM.prototype.makeRBT = function makeRBT (N) { var t = new Array(N); var l = BN.prototype._countBits(N) - 1; for (var i = 0; i < N; i++) { t[i] = this.revBin(i, l, N); } return t; }; // Returns binary-reversed representation of `x` FFTM.prototype.revBin = function revBin (x, l, N) { if (x === 0 || x === N - 1) return x; var rb = 0; for (var i = 0; i < l; i++) { rb |= (x & 1) << (l - i - 1); x >>= 1; } return rb; }; // Performs "tweedling" phase, therefore 'emulating' // behaviour of the recursive algorithm FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { for (var i = 0; i < N; i++) { rtws[i] = rws[rbt[i]]; itws[i] = iws[rbt[i]]; } }; FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { this.permute(rbt, rws, iws, rtws, itws, N); for (var s = 1; s < N; s <<= 1) { var l = s << 1; var rtwdf = Math.cos(2 * Math.PI / l); var itwdf = Math.sin(2 * Math.PI / l); for (var p = 0; p < N; p += l) { var rtwdf_ = rtwdf; var itwdf_ = itwdf; for (var j = 0; j < s; j++) { var re = rtws[p + j]; var ie = itws[p + j]; var ro = rtws[p + j + s]; var io = itws[p + j + s]; var rx = rtwdf_ * ro - itwdf_ * io; io = rtwdf_ * io + itwdf_ * ro; ro = rx; rtws[p + j] = re + ro; itws[p + j] = ie + io; rtws[p + j + s] = re - ro; itws[p + j + s] = ie - io; /* jshint maxdepth : false */ if (j !== l) { rx = rtwdf * rtwdf_ - itwdf * itwdf_; itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; rtwdf_ = rx; } } } } }; FFTM.prototype.guessLen13b = function guessLen13b (n, m) { var N = Math.max(m, n) | 1; var odd = N & 1; var i = 0; for (N = N / 2 | 0; N; N = N >>> 1) { i++; } return 1 << i + 1 + odd; }; FFTM.prototype.conjugate = function conjugate (rws, iws, N) { if (N <= 1) return; for (var i = 0; i < N / 2; i++) { var t = rws[i]; rws[i] = rws[N - i - 1]; rws[N - i - 1] = t; t = iws[i]; iws[i] = -iws[N - i - 1]; iws[N - i - 1] = -t; } }; FFTM.prototype.normalize13b = function normalize13b (ws, N) { var carry = 0; for (var i = 0; i < N / 2; i++) { var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry; ws[i] = w & 0x3ffffff; if (w < 0x4000000) { carry = 0; } else { carry = w / 0x4000000 | 0; } } return ws; }; FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { var carry = 0; for (var i = 0; i < len; i++) { carry = carry + (ws[i] | 0); rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; } // Pad with zeroes for (i = 2 * len; i < N; ++i) { rws[i] = 0; } assert(carry === 0); assert((carry & ~0x1fff) === 0); }; FFTM.prototype.stub = function stub (N) { var ph = new Array(N); for (var i = 0; i < N; i++) { ph[i] = 0; } return ph; }; FFTM.prototype.mulp = function mulp (x, y, out) { var N = 2 * this.guessLen13b(x.length, y.length); var rbt = this.makeRBT(N); var _ = this.stub(N); var rws = new Array(N); var rwst = new Array(N); var iwst = new Array(N); var nrws = new Array(N); var nrwst = new Array(N); var niwst = new Array(N); var rmws = out.words; rmws.length = N; this.convert13b(x.words, x.length, rws, N); this.convert13b(y.words, y.length, nrws, N); this.transform(rws, _, rwst, iwst, N, rbt); this.transform(nrws, _, nrwst, niwst, N, rbt); for (var i = 0; i < N; i++) { var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; rwst[i] = rx; } this.conjugate(rwst, iwst, N); this.transform(rwst, iwst, rmws, _, N, rbt); this.conjugate(rmws, _, N); this.normalize13b(rmws, N); out.negative = x.negative ^ y.negative; out.length = x.length + y.length; return out.strip(); }; // Multiply `this` by `num` BN.prototype.mul = function mul (num) { var out = new BN(null); out.words = new Array(this.length + num.length); return this.mulTo(num, out); }; // Multiply employing FFT BN.prototype.mulf = function mulf (num) { var out = new BN(null); out.words = new Array(this.length + num.length); return jumboMulTo(this, num, out); }; // In-place Multiplication BN.prototype.imul = function imul (num) { return this.clone().mulTo(num, this); }; BN.prototype.imuln = function imuln (num) { assert(typeof num === 'number'); assert(num < 0x4000000); // Carry var carry = 0; for (var i = 0; i < this.length; i++) { var w = (this.words[i] | 0) * num; var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); carry >>= 26; carry += (w / 0x4000000) | 0; // NOTE: lo is 27bit maximum carry += lo >>> 26; this.words[i] = lo & 0x3ffffff; } if (carry !== 0) { this.words[i] = carry; this.length++; } return this; }; BN.prototype.muln = function muln (num) { return this.clone().imuln(num); }; // `this` * `this` BN.prototype.sqr = function sqr () { return this.mul(this); }; // `this` * `this` in-place BN.prototype.isqr = function isqr () { return this.imul(this.clone()); }; // Math.pow(`this`, `num`) BN.prototype.pow = function pow (num) { var w = toBitArray(num); if (w.length === 0) return new BN(1); // Skip leading zeroes var res = this; for (var i = 0; i < w.length; i++, res = res.sqr()) { if (w[i] !== 0) break; } if (++i < w.length) { for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { if (w[i] === 0) continue; res = res.mul(q); } } return res; }; // Shift-left in-place BN.prototype.iushln = function iushln (bits) { assert(typeof bits === 'number' && bits >= 0); var r = bits % 26; var s = (bits - r) / 26; var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); var i; if (r !== 0) { var carry = 0; for (i = 0; i < this.length; i++) { var newCarry = this.words[i] & carryMask; var c = ((this.words[i] | 0) - newCarry) << r; this.words[i] = c | carry; carry = newCarry >>> (26 - r); } if (carry) { this.words[i] = carry; this.length++; } } if (s !== 0) { for (i = this.length - 1; i >= 0; i--) { this.words[i + s] = this.words[i]; } for (i = 0; i < s; i++) { this.words[i] = 0; } this.length += s; } return this.strip(); }; BN.prototype.ishln = function ishln (bits) { // TODO(indutny): implement me assert(this.negative === 0); return this.iushln(bits); }; // Shift-right in-place // NOTE: `hint` is a lowest bit before trailing zeroes // NOTE: if `extended` is present - it will be filled with destroyed bits BN.prototype.iushrn = function iushrn (bits, hint, extended) { assert(typeof bits === 'number' && bits >= 0); var h; if (hint) { h = (hint - (hint % 26)) / 26; } else { h = 0; } var r = bits % 26; var s = Math.min((bits - r) / 26, this.length); var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); var maskedWords = extended; h -= s; h = Math.max(0, h); // Extended mode, copy masked part if (maskedWords) { for (var i = 0; i < s; i++) { maskedWords.words[i] = this.words[i]; } maskedWords.length = s; } if (s === 0) { // No-op, we should not move anything at all } else if (this.length > s) { this.length -= s; for (i = 0; i < this.length; i++) { this.words[i] = this.words[i + s]; } } else { this.words[0] = 0; this.length = 1; } var carry = 0; for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { var word = this.words[i] | 0; this.words[i] = (carry << (26 - r)) | (word >>> r); carry = word & mask; } // Push carried bits as a mask if (maskedWords && carry !== 0) { maskedWords.words[maskedWords.length++] = carry; } if (this.length === 0) { this.words[0] = 0; this.length = 1; } return this.strip(); }; BN.prototype.ishrn = function ishrn (bits, hint, extended) { // TODO(indutny): implement me assert(this.negative === 0); return this.iushrn(bits, hint, extended); }; // Shift-left BN.prototype.shln = function shln (bits) { return this.clone().ishln(bits); }; BN.prototype.ushln = function ushln (bits) { return this.clone().iushln(bits); }; // Shift-right BN.prototype.shrn = function shrn (bits) { return this.clone().ishrn(bits); }; BN.prototype.ushrn = function ushrn (bits) { return this.clone().iushrn(bits); }; // Test if n bit is set BN.prototype.testn = function testn (bit) { assert(typeof bit === 'number' && bit >= 0); var r = bit % 26; var s = (bit - r) / 26; var q = 1 << r; // Fast case: bit is much higher than all existing words if (this.length <= s) return false; // Check bit and return var w = this.words[s]; return !!(w & q); }; // Return only lowers bits of number (in-place) BN.prototype.imaskn = function imaskn (bits) { assert(typeof bits === 'number' && bits >= 0); var r = bits % 26; var s = (bits - r) / 26; assert(this.negative === 0, 'imaskn works only with positive numbers'); if (this.length <= s) { return this; } if (r !== 0) { s++; } this.length = Math.min(s, this.length); if (r !== 0) { var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); this.words[this.length - 1] &= mask; } return this.strip(); }; // Return only lowers bits of number BN.prototype.maskn = function maskn (bits) { return this.clone().imaskn(bits); }; // Add plain number `num` to `this` BN.prototype.iaddn = function iaddn (num) { assert(typeof num === 'number'); assert(num < 0x4000000); if (num < 0) return this.isubn(-num); // Possible sign change if (this.negative !== 0) { if (this.length === 1 && (this.words[0] | 0) < num) { this.words[0] = num - (this.words[0] | 0); this.negative = 0; return this; } this.negative = 0; this.isubn(num); this.negative = 1; return this; } // Add without checks return this._iaddn(num); }; BN.prototype._iaddn = function _iaddn (num) { this.words[0] += num; // Carry for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { this.words[i] -= 0x4000000; if (i === this.length - 1) { this.words[i + 1] = 1; } else { this.words[i + 1]++; } } this.length = Math.max(this.length, i + 1); return this; }; // Subtract plain number `num` from `this` BN.prototype.isubn = function isubn (num) { assert(typeof num === 'number'); assert(num < 0x4000000); if (num < 0) return this.iaddn(-num); if (this.negative !== 0) { this.negative = 0; this.iaddn(num); this.negative = 1; return this; } this.words[0] -= num; if (this.length === 1 && this.words[0] < 0) { this.words[0] = -this.words[0]; this.negative = 1; } else { // Carry for (var i = 0; i < this.length && this.words[i] < 0; i++) { this.words[i] += 0x4000000; this.words[i + 1] -= 1; } } return this.strip(); }; BN.prototype.addn = function addn (num) { return this.clone().iaddn(num); }; BN.prototype.subn = function subn (num) { return this.clone().isubn(num); }; BN.prototype.iabs = function iabs () { this.negative = 0; return this; }; BN.prototype.abs = function abs () { return this.clone().iabs(); }; BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) { var len = num.length + shift; var i; this._expand(len); var w; var carry = 0; for (i = 0; i < num.length; i++) { w = (this.words[i + shift] | 0) + carry; var right = (num.words[i] | 0) * mul; w -= right & 0x3ffffff; carry = (w >> 26) - ((right / 0x4000000) | 0); this.words[i + shift] = w & 0x3ffffff; } for (; i < this.length - shift; i++) { w = (this.words[i + shift] | 0) + carry; carry = w >> 26; this.words[i + shift] = w & 0x3ffffff; } if (carry === 0) return this.strip(); // Subtraction overflow assert(carry === -1); carry = 0; for (i = 0; i < this.length; i++) { w = -(this.words[i] | 0) + carry; carry = w >> 26; this.words[i] = w & 0x3ffffff; } this.negative = 1; return this.strip(); }; BN.prototype._wordDiv = function _wordDiv (num, mode) { var shift = this.length - num.length; var a = this.clone(); var b = num; // Normalize var bhi = b.words[b.length - 1] | 0; var bhiBits = this._countBits(bhi); shift = 26 - bhiBits; if (shift !== 0) { b = b.ushln(shift); a.iushln(shift); bhi = b.words[b.length - 1] | 0; } // Initialize quotient var m = a.length - b.length; var q; if (mode !== 'mod') { q = new BN(null); q.length = m + 1; q.words = new Array(q.length); for (var i = 0; i < q.length; i++) { q.words[i] = 0; } } var diff = a.clone()._ishlnsubmul(b, 1, m); if (diff.negative === 0) { a = diff; if (q) { q.words[m] = 1; } } for (var j = m - 1; j >= 0; j--) { var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max // (0x7ffffff) qj = Math.min((qj / bhi) | 0, 0x3ffffff); a._ishlnsubmul(b, qj, j); while (a.negative !== 0) { qj--; a.negative = 0; a._ishlnsubmul(b, 1, j); if (!a.isZero()) { a.negative ^= 1; } } if (q) { q.words[j] = qj; } } if (q) { q.strip(); } a.strip(); // Denormalize if (mode !== 'div' && shift !== 0) { a.iushrn(shift); } return { div: q || null, mod: a }; }; // NOTE: 1) `mode` can be set to `mod` to request mod only, // to `div` to request div only, or be absent to // request both div & mod // 2) `positive` is true if unsigned mod is requested BN.prototype.divmod = function divmod (num, mode, positive) { assert(!num.isZero()); if (this.isZero()) { return { div: new BN(0), mod: new BN(0) }; } var div, mod, res; if (this.negative !== 0 && num.negative === 0) { res = this.neg().divmod(num, mode); if (mode !== 'mod') { div = res.div.neg(); } if (mode !== 'div') { mod = res.mod.neg(); if (positive && mod.negative !== 0) { mod.iadd(num); } } return { div: div, mod: mod }; } if (this.negative === 0 && num.negative !== 0) { res = this.divmod(num.neg(), mode); if (mode !== 'mod') { div = res.div.neg(); } return { div: div, mod: res.mod }; } if ((this.negative & num.negative) !== 0) { res = this.neg().divmod(num.neg(), mode); if (mode !== 'div') { mod = res.mod.neg(); if (positive && mod.negative !== 0) { mod.isub(num); } } return { div: res.div, mod: mod }; } // Both numbers are positive at this point // Strip both numbers to approximate shift value if (num.length > this.length || this.cmp(num) < 0) { return { div: new BN(0), mod: this }; } // Very short reduction if (num.length === 1) { if (mode === 'div') { return { div: this.divn(num.words[0]), mod: null }; } if (mode === 'mod') { return { div: null, mod: new BN(this.modn(num.words[0])) }; } return { div: this.divn(num.words[0]), mod: new BN(this.modn(num.words[0])) }; } return this._wordDiv(num, mode); }; // Find `this` / `num` BN.prototype.div = function div (num) { return this.divmod(num, 'div', false).div; }; // Find `this` % `num` BN.prototype.mod = function mod (num) { return this.divmod(num, 'mod', false).mod; }; BN.prototype.umod = function umod (num) { return this.divmod(num, 'mod', true).mod; }; // Find Round(`this` / `num`) BN.prototype.divRound = function divRound (num) { var dm = this.divmod(num); // Fast case - exact division if (dm.mod.isZero()) return dm.div; var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; var half = num.ushrn(1); var r2 = num.andln(1); var cmp = mod.cmp(half); // Round down if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); }; BN.prototype.modn = function modn (num) { assert(num <= 0x3ffffff); var p = (1 << 26) % num; var acc = 0; for (var i = this.length - 1; i >= 0; i--) { acc = (p * acc + (this.words[i] | 0)) % num; } return acc; }; // In-place division by number BN.prototype.idivn = function idivn (num) { assert(num <= 0x3ffffff); var carry = 0; for (var i = this.length - 1; i >= 0; i--) { var w = (this.words[i] | 0) + carry * 0x4000000; this.words[i] = (w / num) | 0; carry = w % num; } return this.strip(); }; BN.prototype.divn = function divn (num) { return this.clone().idivn(num); }; BN.prototype.egcd = function egcd (p) { assert(p.negative === 0); assert(!p.isZero()); var x = this; var y = p.clone(); if (x.negative !== 0) { x = x.umod(p); } else { x = x.clone(); } // A * x + B * y = x var A = new BN(1); var B = new BN(0); // C * x + D * y = y var C = new BN(0); var D = new BN(1); var g = 0; while (x.isEven() && y.isEven()) { x.iushrn(1); y.iushrn(1); ++g; } var yp = y.clone(); var xp = x.clone(); while (!x.isZero()) { for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); if (i > 0) { x.iushrn(i); while (i-- > 0) { if (A.isOdd() || B.isOdd()) { A.iadd(yp); B.isub(xp); } A.iushrn(1); B.iushrn(1); } } for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); if (j > 0) { y.iushrn(j); while (j-- > 0) { if (C.isOdd() || D.isOdd()) { C.iadd(yp); D.isub(xp); } C.iushrn(1); D.iushrn(1); } } if (x.cmp(y) >= 0) { x.isub(y); A.isub(C); B.isub(D); } else { y.isub(x); C.isub(A); D.isub(B); } } return { a: C, b: D, gcd: y.iushln(g) }; }; // This is reduced incarnation of the binary EEA // above, designated to invert members of the // _prime_ fields F(p) at a maximal speed BN.prototype._invmp = function _invmp (p) { assert(p.negative === 0); assert(!p.isZero()); var a = this; var b = p.clone(); if (a.negative !== 0) { a = a.umod(p); } else { a = a.clone(); } var x1 = new BN(1); var x2 = new BN(0); var delta = b.clone(); while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); if (i > 0) { a.iushrn(i); while (i-- > 0) { if (x1.isOdd()) { x1.iadd(delta); } x1.iushrn(1); } } for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); if (j > 0) { b.iushrn(j); while (j-- > 0) { if (x2.isOdd()) { x2.iadd(delta); } x2.iushrn(1); } } if (a.cmp(b) >= 0) { a.isub(b); x1.isub(x2); } else { b.isub(a); x2.isub(x1); } } var res; if (a.cmpn(1) === 0) { res = x1; } else { res = x2; } if (res.cmpn(0) < 0) { res.iadd(p); } return res; }; BN.prototype.gcd = function gcd (num) { if (this.isZero()) return num.abs(); if (num.isZero()) return this.abs(); var a = this.clone(); var b = num.clone(); a.negative = 0; b.negative = 0; // Remove common factor of two for (var shift = 0; a.isEven() && b.isEven(); shift++) { a.iushrn(1); b.iushrn(1); } do { while (a.isEven()) { a.iushrn(1); } while (b.isEven()) { b.iushrn(1); } var r = a.cmp(b); if (r < 0) { // Swap `a` and `b` to make `a` always bigger than `b` var t = a; a = b; b = t; } else if (r === 0 || b.cmpn(1) === 0) { break; } a.isub(b); } while (true); return b.iushln(shift); }; // Invert number in the field F(num) BN.prototype.invm = function invm (num) { return this.egcd(num).a.umod(num); }; BN.prototype.isEven = function isEven () { return (this.words[0] & 1) === 0; }; BN.prototype.isOdd = function isOdd () { return (this.words[0] & 1) === 1; }; // And first word and num BN.prototype.andln = function andln (num) { return this.words[0] & num; }; // Increment at the bit position in-line BN.prototype.bincn = function bincn (bit) { assert(typeof bit === 'number'); var r = bit % 26; var s = (bit - r) / 26; var q = 1 << r; // Fast case: bit is much higher than all existing words if (this.length <= s) { this._expand(s + 1); this.words[s] |= q; return this; } // Add bit and propagate, if needed var carry = q; for (var i = s; carry !== 0 && i < this.length; i++) { var w = this.words[i] | 0; w += carry; carry = w >>> 26; w &= 0x3ffffff; this.words[i] = w; } if (carry !== 0) { this.words[i] = carry; this.length++; } return this; }; BN.prototype.isZero = function isZero () { return this.length === 1 && this.words[0] === 0; }; BN.prototype.cmpn = function cmpn (num) { var negative = num < 0; if (this.negative !== 0 && !negative) return -1; if (this.negative === 0 && negative) return 1; this.strip(); var res; if (this.length > 1) { res = 1; } else { if (negative) { num = -num; } assert(num <= 0x3ffffff, 'Number is too big'); var w = this.words[0] | 0; res = w === num ? 0 : w < num ? -1 : 1; } if (this.negative !== 0) return -res | 0; return res; }; // Compare two numbers and return: // 1 - if `this` > `num` // 0 - if `this` == `num` // -1 - if `this` < `num` BN.prototype.cmp = function cmp (num) { if (this.negative !== 0 && num.negative === 0) return -1; if (this.negative === 0 && num.negative !== 0) return 1; var res = this.ucmp(num); if (this.negative !== 0) return -res | 0; return res; }; // Unsigned comparison BN.prototype.ucmp = function ucmp (num) { // At this point both numbers have the same sign if (this.length > num.length) return 1; if (this.length < num.length) return -1; var res = 0; for (var i = this.length - 1; i >= 0; i--) { var a = this.words[i] | 0; var b = num.words[i] | 0; if (a === b) continue; if (a < b) { res = -1; } else if (a > b) { res = 1; } break; } return res; }; BN.prototype.gtn = function gtn (num) { return this.cmpn(num) === 1; }; BN.prototype.gt = function gt (num) { return this.cmp(num) === 1; }; BN.prototype.gten = function gten (num) { return this.cmpn(num) >= 0; }; BN.prototype.gte = function gte (num) { return this.cmp(num) >= 0; }; BN.prototype.ltn = function ltn (num) { return this.cmpn(num) === -1; }; BN.prototype.lt = function lt (num) { return this.cmp(num) === -1; }; BN.prototype.lten = function lten (num) { return this.cmpn(num) <= 0; }; BN.prototype.lte = function lte (num) { return this.cmp(num) <= 0; }; BN.prototype.eqn = function eqn (num) { return this.cmpn(num) === 0; }; BN.prototype.eq = function eq (num) { return this.cmp(num) === 0; }; // // A reduce context, could be using montgomery or something better, depending // on the `m` itself. // BN.red = function red (num) { return new Red(num); }; BN.prototype.toRed = function toRed (ctx) { assert(!this.red, 'Already a number in reduction context'); assert(this.negative === 0, 'red works only with positives'); return ctx.convertTo(this)._forceRed(ctx); }; BN.prototype.fromRed = function fromRed () { assert(this.red, 'fromRed works only with numbers in reduction context'); return this.red.convertFrom(this); }; BN.prototype._forceRed = function _forceRed (ctx) { this.red = ctx; return this; }; BN.prototype.forceRed = function forceRed (ctx) { assert(!this.red, 'Already a number in reduction context'); return this._forceRed(ctx); }; BN.prototype.redAdd = function redAdd (num) { assert(this.red, 'redAdd works only with red numbers'); return this.red.add(this, num); }; BN.prototype.redIAdd = function redIAdd (num) { assert(this.red, 'redIAdd works only with red numbers'); return this.red.iadd(this, num); }; BN.prototype.redSub = function redSub (num) { assert(this.red, 'redSub works only with red numbers'); return this.red.sub(this, num); }; BN.prototype.redISub = function redISub (num) { assert(this.red, 'redISub works only with red numbers'); return this.red.isub(this, num); }; BN.prototype.redShl = function redShl (num) { assert(this.red, 'redShl works only with red numbers'); return this.red.shl(this, num); }; BN.prototype.redMul = function redMul (num) { assert(this.red, 'redMul works only with red numbers'); this.red._verify2(this, num); return this.red.mul(this, num); }; BN.prototype.redIMul = function redIMul (num) { assert(this.red, 'redMul works only with red numbers'); this.red._verify2(this, num); return this.red.imul(this, num); }; BN.prototype.redSqr = function redSqr () { assert(this.red, 'redSqr works only with red numbers'); this.red._verify1(this); return this.red.sqr(this); }; BN.prototype.redISqr = function redISqr () { assert(this.red, 'redISqr works only with red numbers'); this.red._verify1(this); return this.red.isqr(this); }; // Square root over p BN.prototype.redSqrt = function redSqrt () { assert(this.red, 'redSqrt works only with red numbers'); this.red._verify1(this); return this.red.sqrt(this); }; BN.prototype.redInvm = function redInvm () { assert(this.red, 'redInvm works only with red numbers'); this.red._verify1(this); return this.red.invm(this); }; // Return negative clone of `this` % `red modulo` BN.prototype.redNeg = function redNeg () { assert(this.red, 'redNeg works only with red numbers'); this.red._verify1(this); return this.red.neg(this); }; BN.prototype.redPow = function redPow (num) { assert(this.red && !num.red, 'redPow(normalNum)'); this.red._verify1(this); return this.red.pow(this, num); }; // Prime numbers with efficient reduction var primes = { k256: null, p224: null, p192: null, p25519: null }; // Pseudo-Mersenne prime function MPrime (name, p) { // P = 2 ^ N - K this.name = name; this.p = new BN(p, 16); this.n = this.p.bitLength(); this.k = new BN(1).iushln(this.n).isub(this.p); this.tmp = this._tmp(); } MPrime.prototype._tmp = function _tmp () { var tmp = new BN(null); tmp.words = new Array(Math.ceil(this.n / 13)); return tmp; }; MPrime.prototype.ireduce = function ireduce (num) { // Assumes that `num` is less than `P^2` // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) var r = num; var rlen; do { this.split(r, this.tmp); r = this.imulK(r); r = r.iadd(this.tmp); rlen = r.bitLength(); } while (rlen > this.n); var cmp = rlen < this.n ? -1 : r.ucmp(this.p); if (cmp === 0) { r.words[0] = 0; r.length = 1; } else if (cmp > 0) { r.isub(this.p); } else { r.strip(); } return r; }; MPrime.prototype.split = function split (input, out) { input.iushrn(this.n, 0, out); }; MPrime.prototype.imulK = function imulK (num) { return num.imul(this.k); }; function K256 () { MPrime.call( this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); } inherits(K256, MPrime); K256.prototype.split = function split (input, output) { // 256 = 9 * 26 + 22 var mask = 0x3fffff; var outLen = Math.min(input.length, 9); for (var i = 0; i < outLen; i++) { output.words[i] = input.words[i]; } output.length = outLen; if (input.length <= 9) { input.words[0] = 0; input.length = 1; return; } // Shift by 9 limbs var prev = input.words[9]; output.words[output.length++] = prev & mask; for (i = 10; i < input.length; i++) { var next = input.words[i] | 0; input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22); prev = next; } prev >>>= 22; input.words[i - 10] = prev; if (prev === 0 && input.length > 10) { input.length -= 10; } else { input.length -= 9; } }; K256.prototype.imulK = function imulK (num) { // K = 0x1000003d1 = [ 0x40, 0x3d1 ] num.words[num.length] = 0; num.words[num.length + 1] = 0; num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 var lo = 0; for (var i = 0; i < num.length; i++) { var w = num.words[i] | 0; lo += w * 0x3d1; num.words[i] = lo & 0x3ffffff; lo = w * 0x40 + ((lo / 0x4000000) | 0); } // Fast length reduction if (num.words[num.length - 1] === 0) { num.length--; if (num.words[num.length - 1] === 0) { num.length--; } } return num; }; function P224 () { MPrime.call( this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); } inherits(P224, MPrime); function P192 () { MPrime.call( this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); } inherits(P192, MPrime); function P25519 () { // 2 ^ 255 - 19 MPrime.call( this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); } inherits(P25519, MPrime); P25519.prototype.imulK = function imulK (num) { // K = 0x13 var carry = 0; for (var i = 0; i < num.length; i++) { var hi = (num.words[i] | 0) * 0x13 + carry; var lo = hi & 0x3ffffff; hi >>>= 26; num.words[i] = lo; carry = hi; } if (carry !== 0) { num.words[num.length++] = carry; } return num; }; // Exported mostly for testing purposes, use plain name instead BN._prime = function prime (name) { // Cached version of prime if (primes[name]) return primes[name]; var prime; if (name === 'k256') { prime = new K256(); } else if (name === 'p224') { prime = new P224(); } else if (name === 'p192') { prime = new P192(); } else if (name === 'p25519') { prime = new P25519(); } else { throw new Error('Unknown prime ' + name); } primes[name] = prime; return prime; }; // // Base reduction engine // function Red (m) { if (typeof m === 'string') { var prime = BN._prime(m); this.m = prime.p; this.prime = prime; } else { assert(m.gtn(1), 'modulus must be greater than 1'); this.m = m; this.prime = null; } } Red.prototype._verify1 = function _verify1 (a) { assert(a.negative === 0, 'red works only with positives'); assert(a.red, 'red works only with red numbers'); }; Red.prototype._verify2 = function _verify2 (a, b) { assert((a.negative | b.negative) === 0, 'red works only with positives'); assert(a.red && a.red === b.red, 'red works only with red numbers'); }; Red.prototype.imod = function imod (a) { if (this.prime) return this.prime.ireduce(a)._forceRed(this); return a.umod(this.m)._forceRed(this); }; Red.prototype.neg = function neg (a) { if (a.isZero()) { return a.clone(); } return this.m.sub(a)._forceRed(this); }; Red.prototype.add = function add (a, b) { this._verify2(a, b); var res = a.add(b); if (res.cmp(this.m) >= 0) { res.isub(this.m); } return res._forceRed(this); }; Red.prototype.iadd = function iadd (a, b) { this._verify2(a, b); var res = a.iadd(b); if (res.cmp(this.m) >= 0) { res.isub(this.m); } return res; }; Red.prototype.sub = function sub (a, b) { this._verify2(a, b); var res = a.sub(b); if (res.cmpn(0) < 0) { res.iadd(this.m); } return res._forceRed(this); }; Red.prototype.isub = function isub (a, b) { this._verify2(a, b); var res = a.isub(b); if (res.cmpn(0) < 0) { res.iadd(this.m); } return res; }; Red.prototype.shl = function shl (a, num) { this._verify1(a); return this.imod(a.ushln(num)); }; Red.prototype.imul = function imul (a, b) { this._verify2(a, b); return this.imod(a.imul(b)); }; Red.prototype.mul = function mul (a, b) { this._verify2(a, b); return this.imod(a.mul(b)); }; Red.prototype.isqr = function isqr (a) { return this.imul(a, a.clone()); }; Red.prototype.sqr = function sqr (a) { return this.mul(a, a); }; Red.prototype.sqrt = function sqrt (a) { if (a.isZero()) return a.clone(); var mod3 = this.m.andln(3); assert(mod3 % 2 === 1); // Fast case if (mod3 === 3) { var pow = this.m.add(new BN(1)).iushrn(2); return this.pow(a, pow); } // Tonelli-Shanks algorithm (Totally unoptimized and slow) // // Find Q and S, that Q * 2 ^ S = (P - 1) var q = this.m.subn(1); var s = 0; while (!q.isZero() && q.andln(1) === 0) { s++; q.iushrn(1); } assert(!q.isZero()); var one = new BN(1).toRed(this); var nOne = one.redNeg(); // Find quadratic non-residue // NOTE: Max is such because of generalized Riemann hypothesis. var lpow = this.m.subn(1).iushrn(1); var z = this.m.bitLength(); z = new BN(2 * z * z).toRed(this); while (this.pow(z, lpow).cmp(nOne) !== 0) { z.redIAdd(nOne); } var c = this.pow(z, q); var r = this.pow(a, q.addn(1).iushrn(1)); var t = this.pow(a, q); var m = s; while (t.cmp(one) !== 0) { var tmp = t; for (var i = 0; tmp.cmp(one) !== 0; i++) { tmp = tmp.redSqr(); } assert(i < m); var b = this.pow(c, new BN(1).iushln(m - i - 1)); r = r.redMul(b); c = b.redSqr(); t = t.redMul(c); m = i; } return r; }; Red.prototype.invm = function invm (a) { var inv = a._invmp(this.m); if (inv.negative !== 0) { inv.negative = 0; return this.imod(inv).redNeg(); } else { return this.imod(inv); } }; Red.prototype.pow = function pow (a, num) { if (num.isZero()) return new BN(1).toRed(this); if (num.cmpn(1) === 0) return a.clone(); var windowSize = 4; var wnd = new Array(1 << windowSize); wnd[0] = new BN(1).toRed(this); wnd[1] = a; for (var i = 2; i < wnd.length; i++) { wnd[i] = this.mul(wnd[i - 1], a); } var res = wnd[0]; var current = 0; var currentLen = 0; var start = num.bitLength() % 26; if (start === 0) { start = 26; } for (i = num.length - 1; i >= 0; i--) { var word = num.words[i]; for (var j = start - 1; j >= 0; j--) { var bit = (word >> j) & 1; if (res !== wnd[0]) { res = this.sqr(res); } if (bit === 0 && current === 0) { currentLen = 0; continue; } current <<= 1; current |= bit; currentLen++; if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; res = this.mul(res, wnd[current]); currentLen = 0; current = 0; } start = 26; } return res; }; Red.prototype.convertTo = function convertTo (num) { var r = num.umod(this.m); return r === num ? r.clone() : r; }; Red.prototype.convertFrom = function convertFrom (num) { var res = num.clone(); res.red = null; return res; }; // // Montgomery method engine // BN.mont = function mont (num) { return new Mont(num); }; function Mont (m) { Red.call(this, m); this.shift = this.m.bitLength(); if (this.shift % 26 !== 0) { this.shift += 26 - (this.shift % 26); } this.r = new BN(1).iushln(this.shift); this.r2 = this.imod(this.r.sqr()); this.rinv = this.r._invmp(this.m); this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); this.minv = this.minv.umod(this.r); this.minv = this.r.sub(this.minv); } inherits(Mont, Red); Mont.prototype.convertTo = function convertTo (num) { return this.imod(num.ushln(this.shift)); }; Mont.prototype.convertFrom = function convertFrom (num) { var r = this.imod(num.mul(this.rinv)); r.red = null; return r; }; Mont.prototype.imul = function imul (a, b) { if (a.isZero() || b.isZero()) { a.words[0] = 0; a.length = 1; return a; } var t = a.imul(b); var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); var u = t.isub(c).iushrn(this.shift); var res = u; if (u.cmp(this.m) >= 0) { res = u.isub(this.m); } else if (u.cmpn(0) < 0) { res = u.iadd(this.m); } return res._forceRed(this); }; Mont.prototype.mul = function mul (a, b) { if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); var t = a.mul(b); var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); var u = t.isub(c).iushrn(this.shift); var res = u; if (u.cmp(this.m) >= 0) { res = u.isub(this.m); } else if (u.cmpn(0) < 0) { res = u.iadd(this.m); } return res._forceRed(this); }; Mont.prototype.invm = function invm (a) { // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R var res = this.imod(a._invmp(this.m).mul(this.r2)); return res._forceRed(this); }; })(typeof module === 'undefined' || module, this); },{"buffer":27}],26:[function(require,module,exports){ var r; module.exports = function rand(len) { if (!r) r = new Rand(null); return r.generate(len); }; function Rand(rand) { this.rand = rand; } module.exports.Rand = Rand; Rand.prototype.generate = function generate(len) { return this._rand(len); }; // Emulate crypto API using randy Rand.prototype._rand = function _rand(n) { if (this.rand.getBytes) return this.rand.getBytes(n); var res = new Uint8Array(n); for (var i = 0; i < res.length; i++) res[i] = this.rand.getByte(); return res; }; if (typeof self === 'object') { if (self.crypto && self.crypto.getRandomValues) { // Modern browsers Rand.prototype._rand = function _rand(n) { var arr = new Uint8Array(n); self.crypto.getRandomValues(arr); return arr; }; } else if (self.msCrypto && self.msCrypto.getRandomValues) { // IE Rand.prototype._rand = function _rand(n) { var arr = new Uint8Array(n); self.msCrypto.getRandomValues(arr); return arr; }; // Safari's WebWorkers do not have `crypto` } else if (typeof window === 'object') { // Old junk Rand.prototype._rand = function() { throw new Error('Not implemented yet'); }; } } else { // Node.js or Web worker with no crypto support try { var crypto = require('crypto'); if (typeof crypto.randomBytes !== 'function') throw new Error('Not supported'); Rand.prototype._rand = function _rand(n) { return crypto.randomBytes(n); }; } catch (e) { } } },{"crypto":27}],27:[function(require,module,exports){ arguments[4][9][0].apply(exports,arguments) },{"dup":9}],28:[function(require,module,exports){ (function (Buffer){ // based on the aes implimentation in triple sec // https://github.com/keybase/triplesec // which is in turn based on the one from crypto-js // https://code.google.com/p/crypto-js/ var uint_max = Math.pow(2, 32) function fixup_uint32 (x) { var ret, x_pos ret = x > uint_max || x < 0 ? (x_pos = Math.abs(x) % uint_max, x < 0 ? uint_max - x_pos : x_pos) : x return ret } function scrub_vec (v) { for (var i = 0; i < v.length; v++) { v[i] = 0 } return false } function Global () { this.SBOX = [] this.INV_SBOX = [] this.SUB_MIX = [[], [], [], []] this.INV_SUB_MIX = [[], [], [], []] this.init() this.RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36] } Global.prototype.init = function () { var d, i, sx, t, x, x2, x4, x8, xi, _i d = (function () { var _i, _results _results = [] for (i = _i = 0; _i < 256; i = ++_i) { if (i < 128) { _results.push(i << 1) } else { _results.push((i << 1) ^ 0x11b) } } return _results })() x = 0 xi = 0 for (i = _i = 0; _i < 256; i = ++_i) { sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63 this.SBOX[x] = sx this.INV_SBOX[sx] = x x2 = d[x] x4 = d[x2] x8 = d[x4] t = (d[sx] * 0x101) ^ (sx * 0x1010100) this.SUB_MIX[0][x] = (t << 24) | (t >>> 8) this.SUB_MIX[1][x] = (t << 16) | (t >>> 16) this.SUB_MIX[2][x] = (t << 8) | (t >>> 24) this.SUB_MIX[3][x] = t t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100) this.INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) this.INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) this.INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) this.INV_SUB_MIX[3][sx] = t if (x === 0) { x = xi = 1 } else { x = x2 ^ d[d[d[x8 ^ x2]]] xi ^= d[d[xi]] } } return true } var G = new Global() AES.blockSize = 4 * 4 AES.prototype.blockSize = AES.blockSize AES.keySize = 256 / 8 AES.prototype.keySize = AES.keySize function bufferToArray (buf) { var len = buf.length / 4 var out = new Array(len) var i = -1 while (++i < len) { out[i] = buf.readUInt32BE(i * 4) } return out } function AES (key) { this._key = bufferToArray(key) this._doReset() } AES.prototype._doReset = function () { var invKsRow, keySize, keyWords, ksRow, ksRows, t keyWords = this._key keySize = keyWords.length this._nRounds = keySize + 6 ksRows = (this._nRounds + 1) * 4 this._keySchedule = [] for (ksRow = 0; ksRow < ksRows; ksRow++) { this._keySchedule[ksRow] = ksRow < keySize ? keyWords[ksRow] : (t = this._keySchedule[ksRow - 1], (ksRow % keySize) === 0 ? (t = (t << 8) | (t >>> 24), t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff], t ^= G.RCON[(ksRow / keySize) | 0] << 24) : keySize > 6 && ksRow % keySize === 4 ? t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff] : void 0, this._keySchedule[ksRow - keySize] ^ t) } this._invKeySchedule = [] for (invKsRow = 0; invKsRow < ksRows; invKsRow++) { ksRow = ksRows - invKsRow t = this._keySchedule[ksRow - (invKsRow % 4 ? 0 : 4)] this._invKeySchedule[invKsRow] = invKsRow < 4 || ksRow <= 4 ? t : G.INV_SUB_MIX[0][G.SBOX[t >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[(t >>> 16) & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[(t >>> 8) & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[t & 0xff]] } return true } AES.prototype.encryptBlock = function (M) { M = bufferToArray(new Buffer(M)) var out = this._doCryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX) var buf = new Buffer(16) buf.writeUInt32BE(out[0], 0) buf.writeUInt32BE(out[1], 4) buf.writeUInt32BE(out[2], 8) buf.writeUInt32BE(out[3], 12) return buf } AES.prototype.decryptBlock = function (M) { M = bufferToArray(new Buffer(M)) var temp = [M[3], M[1]] M[1] = temp[0] M[3] = temp[1] var out = this._doCryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX) var buf = new Buffer(16) buf.writeUInt32BE(out[0], 0) buf.writeUInt32BE(out[3], 4) buf.writeUInt32BE(out[2], 8) buf.writeUInt32BE(out[1], 12) return buf } AES.prototype.scrub = function () { scrub_vec(this._keySchedule) scrub_vec(this._invKeySchedule) scrub_vec(this._key) } AES.prototype._doCryptBlock = function (M, keySchedule, SUB_MIX, SBOX) { var ksRow, s0, s1, s2, s3, t0, t1, t2, t3 s0 = M[0] ^ keySchedule[0] s1 = M[1] ^ keySchedule[1] s2 = M[2] ^ keySchedule[2] s3 = M[3] ^ keySchedule[3] ksRow = 4 for (var round = 1; round < this._nRounds; round++) { t0 = SUB_MIX[0][s0 >>> 24] ^ SUB_MIX[1][(s1 >>> 16) & 0xff] ^ SUB_MIX[2][(s2 >>> 8) & 0xff] ^ SUB_MIX[3][s3 & 0xff] ^ keySchedule[ksRow++] t1 = SUB_MIX[0][s1 >>> 24] ^ SUB_MIX[1][(s2 >>> 16) & 0xff] ^ SUB_MIX[2][(s3 >>> 8) & 0xff] ^ SUB_MIX[3][s0 & 0xff] ^ keySchedule[ksRow++] t2 = SUB_MIX[0][s2 >>> 24] ^ SUB_MIX[1][(s3 >>> 16) & 0xff] ^ SUB_MIX[2][(s0 >>> 8) & 0xff] ^ SUB_MIX[3][s1 & 0xff] ^ keySchedule[ksRow++] t3 = SUB_MIX[0][s3 >>> 24] ^ SUB_MIX[1][(s0 >>> 16) & 0xff] ^ SUB_MIX[2][(s1 >>> 8) & 0xff] ^ SUB_MIX[3][s2 & 0xff] ^ keySchedule[ksRow++] s0 = t0 s1 = t1 s2 = t2 s3 = t3 } t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++] t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++] t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++] t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++] return [ fixup_uint32(t0), fixup_uint32(t1), fixup_uint32(t2), fixup_uint32(t3) ] } exports.AES = AES }).call(this,require("buffer").Buffer) },{"buffer":54}],29:[function(require,module,exports){ (function (Buffer){ var aes = require('./aes') var Transform = require('cipher-base') var inherits = require('inherits') var GHASH = require('./ghash') var xor = require('buffer-xor') inherits(StreamCipher, Transform) module.exports = StreamCipher function StreamCipher (mode, key, iv, decrypt) { if (!(this instanceof StreamCipher)) { return new StreamCipher(mode, key, iv) } Transform.call(this) this._finID = Buffer.concat([iv, new Buffer([0, 0, 0, 1])]) iv = Buffer.concat([iv, new Buffer([0, 0, 0, 2])]) this._cipher = new aes.AES(key) this._prev = new Buffer(iv.length) this._cache = new Buffer('') this._secCache = new Buffer('') this._decrypt = decrypt this._alen = 0 this._len = 0 iv.copy(this._prev) this._mode = mode var h = new Buffer(4) h.fill(0) this._ghash = new GHASH(this._cipher.encryptBlock(h)) this._authTag = null this._called = false } StreamCipher.prototype._update = function (chunk) { if (!this._called && this._alen) { var rump = 16 - (this._alen % 16) if (rump < 16) { rump = new Buffer(rump) rump.fill(0) this._ghash.update(rump) } } this._called = true var out = this._mode.encrypt(this, chunk) if (this._decrypt) { this._ghash.update(chunk) } else { this._ghash.update(out) } this._len += chunk.length return out } StreamCipher.prototype._final = function () { if (this._decrypt && !this._authTag) { throw new Error('Unsupported state or unable to authenticate data') } var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID)) if (this._decrypt) { if (xorTest(tag, this._authTag)) { throw new Error('Unsupported state or unable to authenticate data') } } else { this._authTag = tag } this._cipher.scrub() } StreamCipher.prototype.getAuthTag = function getAuthTag () { if (!this._decrypt && Buffer.isBuffer(this._authTag)) { return this._authTag } else { throw new Error('Attempting to get auth tag in unsupported state') } } StreamCipher.prototype.setAuthTag = function setAuthTag (tag) { if (this._decrypt) { this._authTag = tag } else { throw new Error('Attempting to set auth tag in unsupported state') } } StreamCipher.prototype.setAAD = function setAAD (buf) { if (!this._called) { this._ghash.update(buf) this._alen += buf.length } else { throw new Error('Attempting to set AAD in unsupported state') } } function xorTest (a, b) { var out = 0 if (a.length !== b.length) { out++ } var len = Math.min(a.length, b.length) var i = -1 while (++i < len) { out += (a[i] ^ b[i]) } return out } }).call(this,require("buffer").Buffer) },{"./aes":28,"./ghash":33,"buffer":54,"buffer-xor":53,"cipher-base":55,"inherits":108}],30:[function(require,module,exports){ var ciphers = require('./encrypter') exports.createCipher = exports.Cipher = ciphers.createCipher exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv var deciphers = require('./decrypter') exports.createDecipher = exports.Decipher = deciphers.createDecipher exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv var modes = require('./modes') function getCiphers () { return Object.keys(modes) } exports.listCiphers = exports.getCiphers = getCiphers },{"./decrypter":31,"./encrypter":32,"./modes":34}],31:[function(require,module,exports){ (function (Buffer){ var aes = require('./aes') var Transform = require('cipher-base') var inherits = require('inherits') var modes = require('./modes') var StreamCipher = require('./streamCipher') var AuthCipher = require('./authCipher') var ebtk = require('evp_bytestokey') inherits(Decipher, Transform) function Decipher (mode, key, iv) { if (!(this instanceof Decipher)) { return new Decipher(mode, key, iv) } Transform.call(this) this._cache = new Splitter() this._last = void 0 this._cipher = new aes.AES(key) this._prev = new Buffer(iv.length) iv.copy(this._prev) this._mode = mode this._autopadding = true } Decipher.prototype._update = function (data) { this._cache.add(data) var chunk var thing var out = [] while ((chunk = this._cache.get(this._autopadding))) { thing = this._mode.decrypt(this, chunk) out.push(thing) } return Buffer.concat(out) } Decipher.prototype._final = function () { var chunk = this._cache.flush() if (this._autopadding) { return unpad(this._mode.decrypt(this, chunk)) } else if (chunk) { throw new Error('data not multiple of block length') } } Decipher.prototype.setAutoPadding = function (setTo) { this._autopadding = !!setTo return this } function Splitter () { if (!(this instanceof Splitter)) { return new Splitter() } this.cache = new Buffer('') } Splitter.prototype.add = function (data) { this.cache = Buffer.concat([this.cache, data]) } Splitter.prototype.get = function (autoPadding) { var out if (autoPadding) { if (this.cache.length > 16) { out = this.cache.slice(0, 16) this.cache = this.cache.slice(16) return out } } else { if (this.cache.length >= 16) { out = this.cache.slice(0, 16) this.cache = this.cache.slice(16) return out } } return null } Splitter.prototype.flush = function () { if (this.cache.length) { return this.cache } } function unpad (last) { var padded = last[15] var i = -1 while (++i < padded) { if (last[(i + (16 - padded))] !== padded) { throw new Error('unable to decrypt data') } } if (padded === 16) { return } return last.slice(0, 16 - padded) } var modelist = { ECB: require('./modes/ecb'), CBC: require('./modes/cbc'), CFB: require('./modes/cfb'), CFB8: require('./modes/cfb8'), CFB1: require('./modes/cfb1'), OFB: require('./modes/ofb'), CTR: require('./modes/ctr'), GCM: require('./modes/ctr') } function createDecipheriv (suite, password, iv) { var config = modes[suite.toLowerCase()] if (!config) { throw new TypeError('invalid suite type') } if (typeof iv === 'string') { iv = new Buffer(iv) } if (typeof password === 'string') { password = new Buffer(password) } if (password.length !== config.key / 8) { throw new TypeError('invalid key length ' + password.length) } if (iv.length !== config.iv) { throw new TypeError('invalid iv length ' + iv.length) } if (config.type === 'stream') { return new StreamCipher(modelist[config.mode], password, iv, true) } else if (config.type === 'auth') { return new AuthCipher(modelist[config.mode], password, iv, true) } return new Decipher(modelist[config.mode], password, iv) } function createDecipher (suite, password) { var config = modes[suite.toLowerCase()] if (!config) { throw new TypeError('invalid suite type') } var keys = ebtk(password, false, config.key, config.iv) return createDecipheriv(suite, keys.key, keys.iv) } exports.createDecipher = createDecipher exports.createDecipheriv = createDecipheriv }).call(this,require("buffer").Buffer) },{"./aes":28,"./authCipher":29,"./modes":34,"./modes/cbc":35,"./modes/cfb":36,"./modes/cfb1":37,"./modes/cfb8":38,"./modes/ctr":39,"./modes/ecb":40,"./modes/ofb":41,"./streamCipher":42,"buffer":54,"cipher-base":55,"evp_bytestokey":91,"inherits":108}],32:[function(require,module,exports){ (function (Buffer){ var aes = require('./aes') var Transform = require('cipher-base') var inherits = require('inherits') var modes = require('./modes') var ebtk = require('evp_bytestokey') var StreamCipher = require('./streamCipher') var AuthCipher = require('./authCipher') inherits(Cipher, Transform) function Cipher (mode, key, iv) { if (!(this instanceof Cipher)) { return new Cipher(mode, key, iv) } Transform.call(this) this._cache = new Splitter() this._cipher = new aes.AES(key) this._prev = new Buffer(iv.length) iv.copy(this._prev) this._mode = mode this._autopadding = true } Cipher.prototype._update = function (data) { this._cache.add(data) var chunk var thing var out = [] while ((chunk = this._cache.get())) { thing = this._mode.encrypt(this, chunk) out.push(thing) } return Buffer.concat(out) } Cipher.prototype._final = function () { var chunk = this._cache.flush() if (this._autopadding) { chunk = this._mode.encrypt(this, chunk) this._cipher.scrub() return chunk } else if (chunk.toString('hex') !== '10101010101010101010101010101010') { this._cipher.scrub() throw new Error('data not multiple of block length') } } Cipher.prototype.setAutoPadding = function (setTo) { this._autopadding = !!setTo return this } function Splitter () { if (!(this instanceof Splitter)) { return new Splitter() } this.cache = new Buffer('') } Splitter.prototype.add = function (data) { this.cache = Buffer.concat([this.cache, data]) } Splitter.prototype.get = function () { if (this.cache.length > 15) { var out = this.cache.slice(0, 16) this.cache = this.cache.slice(16) return out } return null } Splitter.prototype.flush = function () { var len = 16 - this.cache.length var padBuff = new Buffer(len) var i = -1 while (++i < len) { padBuff.writeUInt8(len, i) } var out = Buffer.concat([this.cache, padBuff]) return out } var modelist = { ECB: require('./modes/ecb'), CBC: require('./modes/cbc'), CFB: require('./modes/cfb'), CFB8: require('./modes/cfb8'), CFB1: require('./modes/cfb1'), OFB: require('./modes/ofb'), CTR: require('./modes/ctr'), GCM: require('./modes/ctr') } function createCipheriv (suite, password, iv) { var config = modes[suite.toLowerCase()] if (!config) { throw new TypeError('invalid suite type') } if (typeof iv === 'string') { iv = new Buffer(iv) } if (typeof password === 'string') { password = new Buffer(password) } if (password.length !== config.key / 8) { throw new TypeError('invalid key length ' + password.length) } if (iv.length !== config.iv) { throw new TypeError('invalid iv length ' + iv.length) } if (config.type === 'stream') { return new StreamCipher(modelist[config.mode], password, iv) } else if (config.type === 'auth') { return new AuthCipher(modelist[config.mode], password, iv) } return new Cipher(modelist[config.mode], password, iv) } function createCipher (suite, password) { var config = modes[suite.toLowerCase()] if (!config) { throw new TypeError('invalid suite type') } var keys = ebtk(password, false, config.key, config.iv) return createCipheriv(suite, keys.key, keys.iv) } exports.createCipheriv = createCipheriv exports.createCipher = createCipher }).call(this,require("buffer").Buffer) },{"./aes":28,"./authCipher":29,"./modes":34,"./modes/cbc":35,"./modes/cfb":36,"./modes/cfb1":37,"./modes/cfb8":38,"./modes/ctr":39,"./modes/ecb":40,"./modes/ofb":41,"./streamCipher":42,"buffer":54,"cipher-base":55,"evp_bytestokey":91,"inherits":108}],33:[function(require,module,exports){ (function (Buffer){ var zeros = new Buffer(16) zeros.fill(0) module.exports = GHASH function GHASH (key) { this.h = key this.state = new Buffer(16) this.state.fill(0) this.cache = new Buffer('') } // from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html // by Juho Vähä-Herttua GHASH.prototype.ghash = function (block) { var i = -1 while (++i < block.length) { this.state[i] ^= block[i] } this._multiply() } GHASH.prototype._multiply = function () { var Vi = toArray(this.h) var Zi = [0, 0, 0, 0] var j, xi, lsb_Vi var i = -1 while (++i < 128) { xi = (this.state[~~(i / 8)] & (1 << (7 - i % 8))) !== 0 if (xi) { // Z_i+1 = Z_i ^ V_i Zi = xor(Zi, Vi) } // Store the value of LSB(V_i) lsb_Vi = (Vi[3] & 1) !== 0 // V_i+1 = V_i >> 1 for (j = 3; j > 0; j--) { Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31) } Vi[0] = Vi[0] >>> 1 // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R if (lsb_Vi) { Vi[0] = Vi[0] ^ (0xe1 << 24) } } this.state = fromArray(Zi) } GHASH.prototype.update = function (buf) { this.cache = Buffer.concat([this.cache, buf]) var chunk while (this.cache.length >= 16) { chunk = this.cache.slice(0, 16) this.cache = this.cache.slice(16) this.ghash(chunk) } } GHASH.prototype.final = function (abl, bl) { if (this.cache.length) { this.ghash(Buffer.concat([this.cache, zeros], 16)) } this.ghash(fromArray([ 0, abl, 0, bl ])) return this.state } function toArray (buf) { return [ buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12) ] } function fromArray (out) { out = out.map(fixup_uint32) var buf = new Buffer(16) buf.writeUInt32BE(out[0], 0) buf.writeUInt32BE(out[1], 4) buf.writeUInt32BE(out[2], 8) buf.writeUInt32BE(out[3], 12) return buf } var uint_max = Math.pow(2, 32) function fixup_uint32 (x) { var ret, x_pos ret = x > uint_max || x < 0 ? (x_pos = Math.abs(x) % uint_max, x < 0 ? uint_max - x_pos : x_pos) : x return ret } function xor (a, b) { return [ a[0] ^ b[0], a[1] ^ b[1], a[2] ^ b[2], a[3] ^ b[3] ] } }).call(this,require("buffer").Buffer) },{"buffer":54}],34:[function(require,module,exports){ exports['aes-128-ecb'] = { cipher: 'AES', key: 128, iv: 0, mode: 'ECB', type: 'block' } exports['aes-192-ecb'] = { cipher: 'AES', key: 192, iv: 0, mode: 'ECB', type: 'block' } exports['aes-256-ecb'] = { cipher: 'AES', key: 256, iv: 0, mode: 'ECB', type: 'block' } exports['aes-128-cbc'] = { cipher: 'AES', key: 128, iv: 16, mode: 'CBC', type: 'block' } exports['aes-192-cbc'] = { cipher: 'AES', key: 192, iv: 16, mode: 'CBC', type: 'block' } exports['aes-256-cbc'] = { cipher: 'AES', key: 256, iv: 16, mode: 'CBC', type: 'block' } exports['aes128'] = exports['aes-128-cbc'] exports['aes192'] = exports['aes-192-cbc'] exports['aes256'] = exports['aes-256-cbc'] exports['aes-128-cfb'] = { cipher: 'AES', key: 128, iv: 16, mode: 'CFB', type: 'stream' } exports['aes-192-cfb'] = { cipher: 'AES', key: 192, iv: 16, mode: 'CFB', type: 'stream' } exports['aes-256-cfb'] = { cipher: 'AES', key: 256, iv: 16, mode: 'CFB', type: 'stream' } exports['aes-128-cfb8'] = { cipher: 'AES', key: 128, iv: 16, mode: 'CFB8', type: 'stream' } exports['aes-192-cfb8'] = { cipher: 'AES', key: 192, iv: 16, mode: 'CFB8', type: 'stream' } exports['aes-256-cfb8'] = { cipher: 'AES', key: 256, iv: 16, mode: 'CFB8', type: 'stream' } exports['aes-128-cfb1'] = { cipher: 'AES', key: 128, iv: 16, mode: 'CFB1', type: 'stream' } exports['aes-192-cfb1'] = { cipher: 'AES', key: 192, iv: 16, mode: 'CFB1', type: 'stream' } exports['aes-256-cfb1'] = { cipher: 'AES', key: 256, iv: 16, mode: 'CFB1', type: 'stream' } exports['aes-128-ofb'] = { cipher: 'AES', key: 128, iv: 16, mode: 'OFB', type: 'stream' } exports['aes-192-ofb'] = { cipher: 'AES', key: 192, iv: 16, mode: 'OFB', type: 'stream' } exports['aes-256-ofb'] = { cipher: 'AES', key: 256, iv: 16, mode: 'OFB', type: 'stream' } exports['aes-128-ctr'] = { cipher: 'AES', key: 128, iv: 16, mode: 'CTR', type: 'stream' } exports['aes-192-ctr'] = { cipher: 'AES', key: 192, iv: 16, mode: 'CTR', type: 'stream' } exports['aes-256-ctr'] = { cipher: 'AES', key: 256, iv: 16, mode: 'CTR', type: 'stream' } exports['aes-128-gcm'] = { cipher: 'AES', key: 128, iv: 12, mode: 'GCM', type: 'auth' } exports['aes-192-gcm'] = { cipher: 'AES', key: 192, iv: 12, mode: 'GCM', type: 'auth' } exports['aes-256-gcm'] = { cipher: 'AES', key: 256, iv: 12, mode: 'GCM', type: 'auth' } },{}],35:[function(require,module,exports){ var xor = require('buffer-xor') exports.encrypt = function (self, block) { var data = xor(block, self._prev) self._prev = self._cipher.encryptBlock(data) return self._prev } exports.decrypt = function (self, block) { var pad = self._prev self._prev = block var out = self._cipher.decryptBlock(block) return xor(out, pad) } },{"buffer-xor":53}],36:[function(require,module,exports){ (function (Buffer){ var xor = require('buffer-xor') exports.encrypt = function (self, data, decrypt) { var out = new Buffer('') var len while (data.length) { if (self._cache.length === 0) { self._cache = self._cipher.encryptBlock(self._prev) self._prev = new Buffer('') } if (self._cache.length <= data.length) { len = self._cache.length out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]) data = data.slice(len) } else { out = Buffer.concat([out, encryptStart(self, data, decrypt)]) break } } return out } function encryptStart (self, data, decrypt) { var len = data.length var out = xor(data, self._cache) self._cache = self._cache.slice(len) self._prev = Buffer.concat([self._prev, decrypt ? data : out]) return out } }).call(this,require("buffer").Buffer) },{"buffer":54,"buffer-xor":53}],37:[function(require,module,exports){ (function (Buffer){ function encryptByte (self, byteParam, decrypt) { var pad var i = -1 var len = 8 var out = 0 var bit, value while (++i < len) { pad = self._cipher.encryptBlock(self._prev) bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0 value = pad[0] ^ bit out += ((value & 0x80) >> (i % 8)) self._prev = shiftIn(self._prev, decrypt ? bit : value) } return out } exports.encrypt = function (self, chunk, decrypt) { var len = chunk.length var out = new Buffer(len) var i = -1 while (++i < len) { out[i] = encryptByte(self, chunk[i], decrypt) } return out } function shiftIn (buffer, value) { var len = buffer.length var i = -1 var out = new Buffer(buffer.length) buffer = Buffer.concat([buffer, new Buffer([value])]) while (++i < len) { out[i] = buffer[i] << 1 | buffer[i + 1] >> (7) } return out } }).call(this,require("buffer").Buffer) },{"buffer":54}],38:[function(require,module,exports){ (function (Buffer){ function encryptByte (self, byteParam, decrypt) { var pad = self._cipher.encryptBlock(self._prev) var out = pad[0] ^ byteParam self._prev = Buffer.concat([self._prev.slice(1), new Buffer([decrypt ? byteParam : out])]) return out } exports.encrypt = function (self, chunk, decrypt) { var len = chunk.length var out = new Buffer(len) var i = -1 while (++i < len) { out[i] = encryptByte(self, chunk[i], decrypt) } return out } }).call(this,require("buffer").Buffer) },{"buffer":54}],39:[function(require,module,exports){ (function (Buffer){ var xor = require('buffer-xor') function incr32 (iv) { var len = iv.length var item while (len--) { item = iv.readUInt8(len) if (item === 255) { iv.writeUInt8(0, len) } else { item++ iv.writeUInt8(item, len) break } } } function getBlock (self) { var out = self._cipher.encryptBlock(self._prev) incr32(self._prev) return out } exports.encrypt = function (self, chunk) { while (self._cache.length < chunk.length) { self._cache = Buffer.concat([self._cache, getBlock(self)]) } var pad = self._cache.slice(0, chunk.length) self._cache = self._cache.slice(chunk.length) return xor(chunk, pad) } }).call(this,require("buffer").Buffer) },{"buffer":54,"buffer-xor":53}],40:[function(require,module,exports){ exports.encrypt = function (self, block) { return self._cipher.encryptBlock(block) } exports.decrypt = function (self, block) { return self._cipher.decryptBlock(block) } },{}],41:[function(require,module,exports){ (function (Buffer){ var xor = require('buffer-xor') function getBlock (self) { self._prev = self._cipher.encryptBlock(self._prev) return self._prev } exports.encrypt = function (self, chunk) { while (self._cache.length < chunk.length) { self._cache = Buffer.concat([self._cache, getBlock(self)]) } var pad = self._cache.slice(0, chunk.length) self._cache = self._cache.slice(chunk.length) return xor(chunk, pad) } }).call(this,require("buffer").Buffer) },{"buffer":54,"buffer-xor":53}],42:[function(require,module,exports){ (function (Buffer){ var aes = require('./aes') var Transform = require('cipher-base') var inherits = require('inherits') inherits(StreamCipher, Transform) module.exports = StreamCipher function StreamCipher (mode, key, iv, decrypt) { if (!(this instanceof StreamCipher)) { return new StreamCipher(mode, key, iv) } Transform.call(this) this._cipher = new aes.AES(key) this._prev = new Buffer(iv.length) this._cache = new Buffer('') this._secCache = new Buffer('') this._decrypt = decrypt iv.copy(this._prev) this._mode = mode } StreamCipher.prototype._update = function (chunk) { return this._mode.encrypt(this, chunk, this._decrypt) } StreamCipher.prototype._final = function () { this._cipher.scrub() } }).call(this,require("buffer").Buffer) },{"./aes":28,"buffer":54,"cipher-base":55,"inherits":108}],43:[function(require,module,exports){ var ebtk = require('evp_bytestokey') var aes = require('browserify-aes/browser') var DES = require('browserify-des') var desModes = require('browserify-des/modes') var aesModes = require('browserify-aes/modes') function createCipher (suite, password) { var keyLen, ivLen suite = suite.toLowerCase() if (aesModes[suite]) { keyLen = aesModes[suite].key ivLen = aesModes[suite].iv } else if (desModes[suite]) { keyLen = desModes[suite].key * 8 ivLen = desModes[suite].iv } else { throw new TypeError('invalid suite type') } var keys = ebtk(password, false, keyLen, ivLen) return createCipheriv(suite, keys.key, keys.iv) } function createDecipher (suite, password) { var keyLen, ivLen suite = suite.toLowerCase() if (aesModes[suite]) { keyLen = aesModes[suite].key ivLen = aesModes[suite].iv } else if (desModes[suite]) { keyLen = desModes[suite].key * 8 ivLen = desModes[suite].iv } else { throw new TypeError('invalid suite type') } var keys = ebtk(password, false, keyLen, ivLen) return createDecipheriv(suite, keys.key, keys.iv) } function createCipheriv (suite, key, iv) { suite = suite.toLowerCase() if (aesModes[suite]) { return aes.createCipheriv(suite, key, iv) } else if (desModes[suite]) { return new DES({ key: key, iv: iv, mode: suite }) } else { throw new TypeError('invalid suite type') } } function createDecipheriv (suite, key, iv) { suite = suite.toLowerCase() if (aesModes[suite]) { return aes.createDecipheriv(suite, key, iv) } else if (desModes[suite]) { return new DES({ key: key, iv: iv, mode: suite, decrypt: true }) } else { throw new TypeError('invalid suite type') } } exports.createCipher = exports.Cipher = createCipher exports.createCipheriv = exports.Cipheriv = createCipheriv exports.createDecipher = exports.Decipher = createDecipher exports.createDecipheriv = exports.Decipheriv = createDecipheriv function getCiphers () { return Object.keys(desModes).concat(aes.getCiphers()) } exports.listCiphers = exports.getCiphers = getCiphers },{"browserify-aes/browser":30,"browserify-aes/modes":34,"browserify-des":44,"browserify-des/modes":45,"evp_bytestokey":91}],44:[function(require,module,exports){ (function (Buffer){ var CipherBase = require('cipher-base') var des = require('des.js') var inherits = require('inherits') var modes = { 'des-ede3-cbc': des.CBC.instantiate(des.EDE), 'des-ede3': des.EDE, 'des-ede-cbc': des.CBC.instantiate(des.EDE), 'des-ede': des.EDE, 'des-cbc': des.CBC.instantiate(des.DES), 'des-ecb': des.DES } modes.des = modes['des-cbc'] modes.des3 = modes['des-ede3-cbc'] module.exports = DES inherits(DES, CipherBase) function DES (opts) { CipherBase.call(this) var modeName = opts.mode.toLowerCase() var mode = modes[modeName] var type if (opts.decrypt) { type = 'decrypt' } else { type = 'encrypt' } var key = opts.key if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { key = Buffer.concat([key, key.slice(0, 8)]) } var iv = opts.iv this._des = mode.create({ key: key, iv: iv, type: type }) } DES.prototype._update = function (data) { return new Buffer(this._des.update(data)) } DES.prototype._final = function () { return new Buffer(this._des.final()) } }).call(this,require("buffer").Buffer) },{"buffer":54,"cipher-base":55,"des.js":64,"inherits":108}],45:[function(require,module,exports){ exports['des-ecb'] = { key: 8, iv: 0 } exports['des-cbc'] = exports.des = { key: 8, iv: 8 } exports['des-ede3-cbc'] = exports.des3 = { key: 24, iv: 8 } exports['des-ede3'] = { key: 24, iv: 0 } exports['des-ede-cbc'] = { key: 16, iv: 8 } exports['des-ede'] = { key: 16, iv: 0 } },{}],46:[function(require,module,exports){ (function (Buffer){ var bn = require('bn.js'); var randomBytes = require('randombytes'); module.exports = crt; function blind(priv) { var r = getr(priv); var blinder = r.toRed(bn.mont(priv.modulus)) .redPow(new bn(priv.publicExponent)).fromRed(); return { blinder: blinder, unblinder:r.invm(priv.modulus) }; } function crt(msg, priv) { var blinds = blind(priv); var len = priv.modulus.byteLength(); var mod = bn.mont(priv.modulus); var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus); var c1 = blinded.toRed(bn.mont(priv.prime1)); var c2 = blinded.toRed(bn.mont(priv.prime2)); var qinv = priv.coefficient; var p = priv.prime1; var q = priv.prime2; var m1 = c1.redPow(priv.exponent1); var m2 = c2.redPow(priv.exponent2); m1 = m1.fromRed(); m2 = m2.fromRed(); var h = m1.isub(m2).imul(qinv).umod(p); h.imul(q); m2.iadd(h); return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len)); } crt.getr = getr; function getr(priv) { var len = priv.modulus.byteLength(); var r = new bn(randomBytes(len)); while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) { r = new bn(randomBytes(len)); } return r; } }).call(this,require("buffer").Buffer) },{"bn.js":25,"buffer":54,"randombytes":133}],47:[function(require,module,exports){ module.exports = require('./browser/algorithms.json') },{"./browser/algorithms.json":48}],48:[function(require,module,exports){ module.exports={ "sha224WithRSAEncryption": { "sign": "rsa", "hash": "sha224", "id": "302d300d06096086480165030402040500041c" }, "RSA-SHA224": { "sign": "ecdsa/rsa", "hash": "sha224", "id": "302d300d06096086480165030402040500041c" }, "sha256WithRSAEncryption": { "sign": "rsa", "hash": "sha256", "id": "3031300d060960864801650304020105000420" }, "RSA-SHA256": { "sign": "ecdsa/rsa", "hash": "sha256", "id": "3031300d060960864801650304020105000420" }, "sha384WithRSAEncryption": { "sign": "rsa", "hash": "sha384", "id": "3041300d060960864801650304020205000430" }, "RSA-SHA384": { "sign": "ecdsa/rsa", "hash": "sha384", "id": "3041300d060960864801650304020205000430" }, "sha512WithRSAEncryption": { "sign": "rsa", "hash": "sha512", "id": "3051300d060960864801650304020305000440" }, "RSA-SHA512": { "sign": "ecdsa/rsa", "hash": "sha512", "id": "3051300d060960864801650304020305000440" }, "RSA-SHA1": { "sign": "rsa", "hash": "sha1", "id": "3021300906052b0e03021a05000414" }, "ecdsa-with-SHA1": { "sign": "ecdsa", "hash": "sha1", "id": "" }, "sha256": { "sign": "ecdsa", "hash": "sha256", "id": "" }, "sha224": { "sign": "ecdsa", "hash": "sha224", "id": "" }, "sha384": { "sign": "ecdsa", "hash": "sha384", "id": "" }, "sha512": { "sign": "ecdsa", "hash": "sha512", "id": "" }, "DSA-SHA": { "sign": "dsa", "hash": "sha1", "id": "" }, "DSA-SHA1": { "sign": "dsa", "hash": "sha1", "id": "" }, "DSA": { "sign": "dsa", "hash": "sha1", "id": "" }, "DSA-WITH-SHA224": { "sign": "dsa", "hash": "sha224", "id": "" }, "DSA-SHA224": { "sign": "dsa", "hash": "sha224", "id": "" }, "DSA-WITH-SHA256": { "sign": "dsa", "hash": "sha256", "id": "" }, "DSA-SHA256": { "sign": "dsa", "hash": "sha256", "id": "" }, "DSA-WITH-SHA384": { "sign": "dsa", "hash": "sha384", "id": "" }, "DSA-SHA384": { "sign": "dsa", "hash": "sha384", "id": "" }, "DSA-WITH-SHA512": { "sign": "dsa", "hash": "sha512", "id": "" }, "DSA-SHA512": { "sign": "dsa", "hash": "sha512", "id": "" }, "DSA-RIPEMD160": { "sign": "dsa", "hash": "rmd160", "id": "" }, "ripemd160WithRSA": { "sign": "rsa", "hash": "rmd160", "id": "3021300906052b2403020105000414" }, "RSA-RIPEMD160": { "sign": "rsa", "hash": "rmd160", "id": "3021300906052b2403020105000414" }, "md5WithRSAEncryption": { "sign": "rsa", "hash": "md5", "id": "3020300c06082a864886f70d020505000410" }, "RSA-MD5": { "sign": "rsa", "hash": "md5", "id": "3020300c06082a864886f70d020505000410" } } },{}],49:[function(require,module,exports){ module.exports={ "1.3.132.0.10": "secp256k1", "1.3.132.0.33": "p224", "1.2.840.10045.3.1.1": "p192", "1.2.840.10045.3.1.7": "p256", "1.3.132.0.34": "p384", "1.3.132.0.35": "p521" } },{}],50:[function(require,module,exports){ (function (Buffer){ var createHash = require('create-hash') var stream = require('stream') var inherits = require('inherits') var sign = require('./sign') var verify = require('./verify') var algorithms = require('./algorithms.json') Object.keys(algorithms).forEach(function (key) { algorithms[key].id = new Buffer(algorithms[key].id, 'hex') algorithms[key.toLowerCase()] = algorithms[key] }) function Sign (algorithm) { stream.Writable.call(this) var data = algorithms[algorithm] if (!data) throw new Error('Unknown message digest') this._hashType = data.hash this._hash = createHash(data.hash) this._tag = data.id this._signType = data.sign } inherits(Sign, stream.Writable) Sign.prototype._write = function _write (data, _, done) { this._hash.update(data) done() } Sign.prototype.update = function update (data, enc) { if (typeof data === 'string') data = new Buffer(data, enc) this._hash.update(data) return this } Sign.prototype.sign = function signMethod (key, enc) { this.end() var hash = this._hash.digest() var sig = sign(hash, key, this._hashType, this._signType, this._tag) return enc ? sig.toString(enc) : sig } function Verify (algorithm) { stream.Writable.call(this) var data = algorithms[algorithm] if (!data) throw new Error('Unknown message digest') this._hash = createHash(data.hash) this._tag = data.id this._signType = data.sign } inherits(Verify, stream.Writable) Verify.prototype._write = function _write (data, _, done) { this._hash.update(data) done() } Verify.prototype.update = function update (data, enc) { if (typeof data === 'string') data = new Buffer(data, enc) this._hash.update(data) return this } Verify.prototype.verify = function verifyMethod (key, sig, enc) { if (typeof sig === 'string') sig = new Buffer(sig, enc) this.end() var hash = this._hash.digest() return verify(sig, hash, key, this._signType, this._tag) } function createSign (algorithm) { return new Sign(algorithm) } function createVerify (algorithm) { return new Verify(algorithm) } module.exports = { Sign: createSign, Verify: createVerify, createSign: createSign, createVerify: createVerify } }).call(this,require("buffer").Buffer) },{"./algorithms.json":48,"./sign":51,"./verify":52,"buffer":54,"create-hash":58,"inherits":108,"stream":157}],51:[function(require,module,exports){ (function (Buffer){ // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var createHmac = require('create-hmac') var crt = require('browserify-rsa') var EC = require('elliptic').ec var BN = require('bn.js') var parseKeys = require('parse-asn1') var curves = require('./curves.json') function sign (hash, key, hashType, signType, tag) { var priv = parseKeys(key) if (priv.curve) { // rsa keys can be interpreted as ecdsa ones in openssl if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') return ecSign(hash, priv) } else if (priv.type === 'dsa') { if (signType !== 'dsa') throw new Error('wrong private key type') return dsaSign(hash, priv, hashType) } else { if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') } hash = Buffer.concat([tag, hash]) var len = priv.modulus.byteLength() var pad = [ 0, 1 ] while (hash.length + pad.length + 1 < len) pad.push(0xff) pad.push(0x00) var i = -1 while (++i < hash.length) pad.push(hash[i]) var out = crt(pad, priv) return out } function ecSign (hash, priv) { var curveId = curves[priv.curve.join('.')] if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.')) var curve = new EC(curveId) var key = curve.keyFromPrivate(priv.privateKey) var out = key.sign(hash) return new Buffer(out.toDER()) } function dsaSign (hash, priv, algo) { var x = priv.params.priv_key var p = priv.params.p var q = priv.params.q var g = priv.params.g var r = new BN(0) var k var H = bits2int(hash, q).mod(q) var s = false var kv = getKey(x, q, hash, algo) while (s === false) { k = makeKey(q, kv, algo) r = makeR(g, k, p, q) s = k.invm(q).imul(H.add(x.mul(r))).mod(q) if (s.cmpn(0) === 0) { s = false r = new BN(0) } } return toDER(r, s) } function toDER (r, s) { r = r.toArray() s = s.toArray() // Pad values if (r[0] & 0x80) r = [ 0 ].concat(r) if (s[0] & 0x80) s = [ 0 ].concat(s) var total = r.length + s.length + 4 var res = [ 0x30, total, 0x02, r.length ] res = res.concat(r, [ 0x02, s.length ], s) return new Buffer(res) } function getKey (x, q, hash, algo) { x = new Buffer(x.toArray()) if (x.length < q.byteLength()) { var zeros = new Buffer(q.byteLength() - x.length) zeros.fill(0) x = Buffer.concat([ zeros, x ]) } var hlen = hash.length var hbits = bits2octets(hash, q) var v = new Buffer(hlen) v.fill(1) var k = new Buffer(hlen) k.fill(0) k = createHmac(algo, k).update(v).update(new Buffer([ 0 ])).update(x).update(hbits).digest() v = createHmac(algo, k).update(v).digest() k = createHmac(algo, k).update(v).update(new Buffer([ 1 ])).update(x).update(hbits).digest() v = createHmac(algo, k).update(v).digest() return { k: k, v: v } } function bits2int (obits, q) { var bits = new BN(obits) var shift = (obits.length << 3) - q.bitLength() if (shift > 0) bits.ishrn(shift) return bits } function bits2octets (bits, q) { bits = bits2int(bits, q) bits = bits.mod(q) var out = new Buffer(bits.toArray()) if (out.length < q.byteLength()) { var zeros = new Buffer(q.byteLength() - out.length) zeros.fill(0) out = Buffer.concat([ zeros, out ]) } return out } function makeKey (q, kv, algo) { var t var k do { t = new Buffer(0) while (t.length * 8 < q.bitLength()) { kv.v = createHmac(algo, kv.k).update(kv.v).digest() t = Buffer.concat([ t, kv.v ]) } k = bits2int(t, q) kv.k = createHmac(algo, kv.k).update(kv.v).update(new Buffer([ 0 ])).digest() kv.v = createHmac(algo, kv.k).update(kv.v).digest() } while (k.cmp(q) !== -1) return k } function makeR (g, k, p, q) { return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q) } module.exports = sign module.exports.getKey = getKey module.exports.makeKey = makeKey }).call(this,require("buffer").Buffer) },{"./curves.json":49,"bn.js":25,"browserify-rsa":46,"buffer":54,"create-hmac":61,"elliptic":74,"parse-asn1":118}],52:[function(require,module,exports){ (function (Buffer){ // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var BN = require('bn.js') var EC = require('elliptic').ec var parseKeys = require('parse-asn1') var curves = require('./curves.json') function verify (sig, hash, key, signType, tag) { var pub = parseKeys(key) if (pub.type === 'ec') { // rsa keys can be interpreted as ecdsa ones in openssl if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') return ecVerify(sig, hash, pub) } else if (pub.type === 'dsa') { if (signType !== 'dsa') throw new Error('wrong public key type') return dsaVerify(sig, hash, pub) } else { if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') } hash = Buffer.concat([tag, hash]) var len = pub.modulus.byteLength() var pad = [ 1 ] var padNum = 0 while (hash.length + pad.length + 2 < len) { pad.push(0xff) padNum++ } pad.push(0x00) var i = -1 while (++i < hash.length) { pad.push(hash[i]) } pad = new Buffer(pad) var red = BN.mont(pub.modulus) sig = new BN(sig).toRed(red) sig = sig.redPow(new BN(pub.publicExponent)) sig = new Buffer(sig.fromRed().toArray()) var out = padNum < 8 ? 1 : 0 len = Math.min(sig.length, pad.length) if (sig.length !== pad.length) out = 1 i = -1 while (++i < len) out |= sig[i] ^ pad[i] return out === 0 } function ecVerify (sig, hash, pub) { var curveId = curves[pub.data.algorithm.curve.join('.')] if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')) var curve = new EC(curveId) var pubkey = pub.data.subjectPrivateKey.data return curve.verify(hash, sig, pubkey) } function dsaVerify (sig, hash, pub) { var p = pub.data.p var q = pub.data.q var g = pub.data.g var y = pub.data.pub_key var unpacked = parseKeys.signature.decode(sig, 'der') var s = unpacked.s var r = unpacked.r checkValue(s, q) checkValue(r, q) var montp = BN.mont(p) var w = s.invm(q) var v = g.toRed(montp) .redPow(new BN(hash).mul(w).mod(q)) .fromRed() .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) .mod(p) .mod(q) return v.cmp(r) === 0 } function checkValue (b, q) { if (b.cmpn(0) <= 0) throw new Error('invalid sig') if (b.cmp(q) >= q) throw new Error('invalid sig') } module.exports = verify }).call(this,require("buffer").Buffer) },{"./curves.json":49,"bn.js":25,"buffer":54,"elliptic":74,"parse-asn1":118}],53:[function(require,module,exports){ (function (Buffer){ module.exports = function xor (a, b) { var length = Math.min(a.length, b.length) var buffer = new Buffer(length) for (var i = 0; i < length; ++i) { buffer[i] = a[i] ^ b[i] } return buffer } }).call(this,require("buffer").Buffer) },{"buffer":54}],54:[function(require,module,exports){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ /* eslint-disable no-proto */ 'use strict' var base64 = require('base64-js') var ieee754 = require('ieee754') exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer exports.INSPECT_MAX_BYTES = 50 var K_MAX_LENGTH = 0x7fffffff exports.kMaxLength = K_MAX_LENGTH /** * If `Buffer.TYPED_ARRAY_SUPPORT`: * === true Use Uint8Array implementation (fastest) * === false Print warning and recommend using `buffer` v4.x which has an Object * implementation (most compatible, even IE6) * * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, * Opera 11.6+, iOS 4.2+. * * We report that the browser does not support typed arrays if the are not subclassable * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support * for __proto__ and has a buggy typed array implementation. */ Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && typeof console.error === 'function') { console.error( 'This browser lacks typed array (Uint8Array) support which is required by ' + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' ) } function typedArraySupport () { // Can typed array instances can be augmented? try { var arr = new Uint8Array(1) arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} return arr.foo() === 42 } catch (e) { return false } } function createBuffer (length) { if (length > K_MAX_LENGTH) { throw new RangeError('Invalid typed array length') } // Return an augmented `Uint8Array` instance var buf = new Uint8Array(length) buf.__proto__ = Buffer.prototype return buf } /** * The Buffer constructor returns instances of `Uint8Array` that have their * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of * `Uint8Array`, so the returned instances will have all the node `Buffer` methods * and the `Uint8Array` methods. Square bracket notation works as expected -- it * returns a single octet. * * The `Uint8Array` prototype remains unmodified. */ function Buffer (arg, encodingOrOffset, length) { // Common case. if (typeof arg === 'number') { if (typeof encodingOrOffset === 'string') { throw new Error( 'If encoding is specified then the first argument must be a string' ) } return allocUnsafe(arg) } return from(arg, encodingOrOffset, length) } // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) { Object.defineProperty(Buffer, Symbol.species, { value: null, configurable: true, enumerable: false, writable: false }) } Buffer.poolSize = 8192 // not used by this implementation function from (value, encodingOrOffset, length) { if (typeof value === 'number') { throw new TypeError('"value" argument must not be a number') } if (isArrayBuffer(value)) { return fromArrayBuffer(value, encodingOrOffset, length) } if (typeof value === 'string') { return fromString(value, encodingOrOffset) } return fromObject(value) } /** * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError * if value is a number. * Buffer.from(str[, encoding]) * Buffer.from(array) * Buffer.from(buffer) * Buffer.from(arrayBuffer[, byteOffset[, length]]) **/ Buffer.from = function (value, encodingOrOffset, length) { return from(value, encodingOrOffset, length) } // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: // https://github.com/feross/buffer/pull/148 Buffer.prototype.__proto__ = Uint8Array.prototype Buffer.__proto__ = Uint8Array function assertSize (size) { if (typeof size !== 'number') { throw new TypeError('"size" argument must be a number') } else if (size < 0) { throw new RangeError('"size" argument must not be negative') } } function alloc (size, fill, encoding) { assertSize(size) if (size <= 0) { return createBuffer(size) } if (fill !== undefined) { // Only pay attention to encoding if it's a string. This // prevents accidentally sending in a number that would // be interpretted as a start offset. return typeof encoding === 'string' ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill) } return createBuffer(size) } /** * Creates a new filled Buffer instance. * alloc(size[, fill[, encoding]]) **/ Buffer.alloc = function (size, fill, encoding) { return alloc(size, fill, encoding) } function allocUnsafe (size) { assertSize(size) return createBuffer(size < 0 ? 0 : checked(size) | 0) } /** * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. * */ Buffer.allocUnsafe = function (size) { return allocUnsafe(size) } /** * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. */ Buffer.allocUnsafeSlow = function (size) { return allocUnsafe(size) } function fromString (string, encoding) { if (typeof encoding !== 'string' || encoding === '') { encoding = 'utf8' } if (!Buffer.isEncoding(encoding)) { throw new TypeError('"encoding" must be a valid string encoding') } var length = byteLength(string, encoding) | 0 var buf = createBuffer(length) var actual = buf.write(string, encoding) if (actual !== length) { // Writing a hex string, for example, that contains invalid characters will // cause everything after the first invalid character to be ignored. (e.g. // 'abxxcd' will be treated as 'ab') buf = buf.slice(0, actual) } return buf } function fromArrayLike (array) { var length = array.length < 0 ? 0 : checked(array.length) | 0 var buf = createBuffer(length) for (var i = 0; i < length; i += 1) { buf[i] = array[i] & 255 } return buf } function fromArrayBuffer (array, byteOffset, length) { if (byteOffset < 0 || array.byteLength < byteOffset) { throw new RangeError('\'offset\' is out of bounds') } if (array.byteLength < byteOffset + (length || 0)) { throw new RangeError('\'length\' is out of bounds') } var buf if (byteOffset === undefined && length === undefined) { buf = new Uint8Array(array) } else if (length === undefined) { buf = new Uint8Array(array, byteOffset) } else { buf = new Uint8Array(array, byteOffset, length) } // Return an augmented `Uint8Array` instance buf.__proto__ = Buffer.prototype return buf } function fromObject (obj) { if (Buffer.isBuffer(obj)) { var len = checked(obj.length) | 0 var buf = createBuffer(len) if (buf.length === 0) { return buf } obj.copy(buf, 0, 0, len) return buf } if (obj) { if (isArrayBufferView(obj) || 'length' in obj) { if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { return createBuffer(0) } return fromArrayLike(obj) } if (obj.type === 'Buffer' && Array.isArray(obj.data)) { return fromArrayLike(obj.data) } } throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') } function checked (length) { // Note: cannot use `length < K_MAX_LENGTH` here because that fails when // length is NaN (which is otherwise coerced to zero.) if (length >= K_MAX_LENGTH) { throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') } return length | 0 } function SlowBuffer (length) { if (+length != length) { // eslint-disable-line eqeqeq length = 0 } return Buffer.alloc(+length) } Buffer.isBuffer = function isBuffer (b) { return b != null && b._isBuffer === true } Buffer.compare = function compare (a, b) { if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { throw new TypeError('Arguments must be Buffers') } if (a === b) return 0 var x = a.length var y = b.length for (var i = 0, len = Math.min(x, y); i < len; ++i) { if (a[i] !== b[i]) { x = a[i] y = b[i] break } } if (x < y) return -1 if (y < x) return 1 return 0 } Buffer.isEncoding = function isEncoding (encoding) { switch (String(encoding).toLowerCase()) { case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'latin1': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return true default: return false } } Buffer.concat = function concat (list, length) { if (!Array.isArray(list)) { throw new TypeError('"list" argument must be an Array of Buffers') } if (list.length === 0) { return Buffer.alloc(0) } var i if (length === undefined) { length = 0 for (i = 0; i < list.length; ++i) { length += list[i].length } } var buffer = Buffer.allocUnsafe(length) var pos = 0 for (i = 0; i < list.length; ++i) { var buf = list[i] if (!Buffer.isBuffer(buf)) { throw new TypeError('"list" argument must be an Array of Buffers') } buf.copy(buffer, pos) pos += buf.length } return buffer } function byteLength (string, encoding) { if (Buffer.isBuffer(string)) { return string.length } if (isArrayBufferView(string) || isArrayBuffer(string)) { return string.byteLength } if (typeof string !== 'string') { string = '' + string } var len = string.length if (len === 0) return 0 // Use a for loop to avoid recursion var loweredCase = false for (;;) { switch (encoding) { case 'ascii': case 'latin1': case 'binary': return len case 'utf8': case 'utf-8': case undefined: return utf8ToBytes(string).length case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return len * 2 case 'hex': return len >>> 1 case 'base64': return base64ToBytes(string).length default: if (loweredCase) return utf8ToBytes(string).length // assume utf8 encoding = ('' + encoding).toLowerCase() loweredCase = true } } } Buffer.byteLength = byteLength function slowToString (encoding, start, end) { var loweredCase = false // No need to verify that "this.length <= MAX_UINT32" since it's a read-only // property of a typed array. // This behaves neither like String nor Uint8Array in that we set start/end // to their upper/lower bounds if the value passed is out of range. // undefined is handled specially as per ECMA-262 6th Edition, // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. if (start === undefined || start < 0) { start = 0 } // Return early if start > this.length. Done here to prevent potential uint32 // coercion fail below. if (start > this.length) { return '' } if (end === undefined || end > this.length) { end = this.length } if (end <= 0) { return '' } // Force coersion to uint32. This will also coerce falsey/NaN values to 0. end >>>= 0 start >>>= 0 if (end <= start) { return '' } if (!encoding) encoding = 'utf8' while (true) { switch (encoding) { case 'hex': return hexSlice(this, start, end) case 'utf8': case 'utf-8': return utf8Slice(this, start, end) case 'ascii': return asciiSlice(this, start, end) case 'latin1': case 'binary': return latin1Slice(this, start, end) case 'base64': return base64Slice(this, start, end) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return utf16leSlice(this, start, end) default: if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) encoding = (encoding + '').toLowerCase() loweredCase = true } } } // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) // to detect a Buffer instance. It's not possible to use `instanceof Buffer` // reliably in a browserify context because there could be multiple different // copies of the 'buffer' package in use. This method works even for Buffer // instances that were created from another copy of the `buffer` package. // See: https://github.com/feross/buffer/issues/154 Buffer.prototype._isBuffer = true function swap (b, n, m) { var i = b[n] b[n] = b[m] b[m] = i } Buffer.prototype.swap16 = function swap16 () { var len = this.length if (len % 2 !== 0) { throw new RangeError('Buffer size must be a multiple of 16-bits') } for (var i = 0; i < len; i += 2) { swap(this, i, i + 1) } return this } Buffer.prototype.swap32 = function swap32 () { var len = this.length if (len % 4 !== 0) { throw new RangeError('Buffer size must be a multiple of 32-bits') } for (var i = 0; i < len; i += 4) { swap(this, i, i + 3) swap(this, i + 1, i + 2) } return this } Buffer.prototype.swap64 = function swap64 () { var len = this.length if (len % 8 !== 0) { throw new RangeError('Buffer size must be a multiple of 64-bits') } for (var i = 0; i < len; i += 8) { swap(this, i, i + 7) swap(this, i + 1, i + 6) swap(this, i + 2, i + 5) swap(this, i + 3, i + 4) } return this } Buffer.prototype.toString = function toString () { var length = this.length if (length === 0) return '' if (arguments.length === 0) return utf8Slice(this, 0, length) return slowToString.apply(this, arguments) } Buffer.prototype.equals = function equals (b) { if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') if (this === b) return true return Buffer.compare(this, b) === 0 } Buffer.prototype.inspect = function inspect () { var str = '' var max = exports.INSPECT_MAX_BYTES if (this.length > 0) { str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') if (this.length > max) str += ' ... ' } return '' } Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { if (!Buffer.isBuffer(target)) { throw new TypeError('Argument must be a Buffer') } if (start === undefined) { start = 0 } if (end === undefined) { end = target ? target.length : 0 } if (thisStart === undefined) { thisStart = 0 } if (thisEnd === undefined) { thisEnd = this.length } if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { throw new RangeError('out of range index') } if (thisStart >= thisEnd && start >= end) { return 0 } if (thisStart >= thisEnd) { return -1 } if (start >= end) { return 1 } start >>>= 0 end >>>= 0 thisStart >>>= 0 thisEnd >>>= 0 if (this === target) return 0 var x = thisEnd - thisStart var y = end - start var len = Math.min(x, y) var thisCopy = this.slice(thisStart, thisEnd) var targetCopy = target.slice(start, end) for (var i = 0; i < len; ++i) { if (thisCopy[i] !== targetCopy[i]) { x = thisCopy[i] y = targetCopy[i] break } } if (x < y) return -1 if (y < x) return 1 return 0 } // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, // OR the last index of `val` in `buffer` at offset <= `byteOffset`. // // Arguments: // - buffer - a Buffer to search // - val - a string, Buffer, or number // - byteOffset - an index into `buffer`; will be clamped to an int32 // - encoding - an optional encoding, relevant is val is a string // - dir - true for indexOf, false for lastIndexOf function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { // Empty buffer means no match if (buffer.length === 0) return -1 // Normalize byteOffset if (typeof byteOffset === 'string') { encoding = byteOffset byteOffset = 0 } else if (byteOffset > 0x7fffffff) { byteOffset = 0x7fffffff } else if (byteOffset < -0x80000000) { byteOffset = -0x80000000 } byteOffset = +byteOffset // Coerce to Number. if (numberIsNaN(byteOffset)) { // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer byteOffset = dir ? 0 : (buffer.length - 1) } // Normalize byteOffset: negative offsets start from the end of the buffer if (byteOffset < 0) byteOffset = buffer.length + byteOffset if (byteOffset >= buffer.length) { if (dir) return -1 else byteOffset = buffer.length - 1 } else if (byteOffset < 0) { if (dir) byteOffset = 0 else return -1 } // Normalize val if (typeof val === 'string') { val = Buffer.from(val, encoding) } // Finally, search either indexOf (if dir is true) or lastIndexOf if (Buffer.isBuffer(val)) { // Special case: looking for empty string/buffer always fails if (val.length === 0) { return -1 } return arrayIndexOf(buffer, val, byteOffset, encoding, dir) } else if (typeof val === 'number') { val = val & 0xFF // Search for a byte value [0-255] if (typeof Uint8Array.prototype.indexOf === 'function') { if (dir) { return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) } else { return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) } } return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) } throw new TypeError('val must be string, number or Buffer') } function arrayIndexOf (arr, val, byteOffset, encoding, dir) { var indexSize = 1 var arrLength = arr.length var valLength = val.length if (encoding !== undefined) { encoding = String(encoding).toLowerCase() if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') { if (arr.length < 2 || val.length < 2) { return -1 } indexSize = 2 arrLength /= 2 valLength /= 2 byteOffset /= 2 } } function read (buf, i) { if (indexSize === 1) { return buf[i] } else { return buf.readUInt16BE(i * indexSize) } } var i if (dir) { var foundIndex = -1 for (i = byteOffset; i < arrLength; i++) { if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { if (foundIndex === -1) foundIndex = i if (i - foundIndex + 1 === valLength) return foundIndex * indexSize } else { if (foundIndex !== -1) i -= i - foundIndex foundIndex = -1 } } } else { if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength for (i = byteOffset; i >= 0; i--) { var found = true for (var j = 0; j < valLength; j++) { if (read(arr, i + j) !== read(val, j)) { found = false break } } if (found) return i } } return -1 } Buffer.prototype.includes = function includes (val, byteOffset, encoding) { return this.indexOf(val, byteOffset, encoding) !== -1 } Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, true) } Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, false) } function hexWrite (buf, string, offset, length) { offset = Number(offset) || 0 var remaining = buf.length - offset if (!length) { length = remaining } else { length = Number(length) if (length > remaining) { length = remaining } } // must be an even number of digits var strLen = string.length if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') if (length > strLen / 2) { length = strLen / 2 } for (var i = 0; i < length; ++i) { var parsed = parseInt(string.substr(i * 2, 2), 16) if (numberIsNaN(parsed)) return i buf[offset + i] = parsed } return i } function utf8Write (buf, string, offset, length) { return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } function asciiWrite (buf, string, offset, length) { return blitBuffer(asciiToBytes(string), buf, offset, length) } function latin1Write (buf, string, offset, length) { return asciiWrite(buf, string, offset, length) } function base64Write (buf, string, offset, length) { return blitBuffer(base64ToBytes(string), buf, offset, length) } function ucs2Write (buf, string, offset, length) { return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) } Buffer.prototype.write = function write (string, offset, length, encoding) { // Buffer#write(string) if (offset === undefined) { encoding = 'utf8' length = this.length offset = 0 // Buffer#write(string, encoding) } else if (length === undefined && typeof offset === 'string') { encoding = offset length = this.length offset = 0 // Buffer#write(string, offset[, length][, encoding]) } else if (isFinite(offset)) { offset = offset >>> 0 if (isFinite(length)) { length = length >>> 0 if (encoding === undefined) encoding = 'utf8' } else { encoding = length length = undefined } } else { throw new Error( 'Buffer.write(string, encoding, offset[, length]) is no longer supported' ) } var remaining = this.length - offset if (length === undefined || length > remaining) length = remaining if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { throw new RangeError('Attempt to write outside buffer bounds') } if (!encoding) encoding = 'utf8' var loweredCase = false for (;;) { switch (encoding) { case 'hex': return hexWrite(this, string, offset, length) case 'utf8': case 'utf-8': return utf8Write(this, string, offset, length) case 'ascii': return asciiWrite(this, string, offset, length) case 'latin1': case 'binary': return latin1Write(this, string, offset, length) case 'base64': // Warning: maxLength not taken into account in base64Write return base64Write(this, string, offset, length) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return ucs2Write(this, string, offset, length) default: if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) encoding = ('' + encoding).toLowerCase() loweredCase = true } } } Buffer.prototype.toJSON = function toJSON () { return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) } } function base64Slice (buf, start, end) { if (start === 0 && end === buf.length) { return base64.fromByteArray(buf) } else { return base64.fromByteArray(buf.slice(start, end)) } } function utf8Slice (buf, start, end) { end = Math.min(buf.length, end) var res = [] var i = start while (i < end) { var firstByte = buf[i] var codePoint = null var bytesPerSequence = (firstByte > 0xEF) ? 4 : (firstByte > 0xDF) ? 3 : (firstByte > 0xBF) ? 2 : 1 if (i + bytesPerSequence <= end) { var secondByte, thirdByte, fourthByte, tempCodePoint switch (bytesPerSequence) { case 1: if (firstByte < 0x80) { codePoint = firstByte } break case 2: secondByte = buf[i + 1] if ((secondByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) if (tempCodePoint > 0x7F) { codePoint = tempCodePoint } } break case 3: secondByte = buf[i + 1] thirdByte = buf[i + 2] if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { codePoint = tempCodePoint } } break case 4: secondByte = buf[i + 1] thirdByte = buf[i + 2] fourthByte = buf[i + 3] if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { codePoint = tempCodePoint } } } } if (codePoint === null) { // we did not generate a valid codePoint so insert a // replacement char (U+FFFD) and advance only 1 byte codePoint = 0xFFFD bytesPerSequence = 1 } else if (codePoint > 0xFFFF) { // encode to utf16 (surrogate pair dance) codePoint -= 0x10000 res.push(codePoint >>> 10 & 0x3FF | 0xD800) codePoint = 0xDC00 | codePoint & 0x3FF } res.push(codePoint) i += bytesPerSequence } return decodeCodePointsArray(res) } // Based on http://stackoverflow.com/a/22747272/680742, the browser with // the lowest limit is Chrome, with 0x10000 args. // We go 1 magnitude less, for safety var MAX_ARGUMENTS_LENGTH = 0x1000 function decodeCodePointsArray (codePoints) { var len = codePoints.length if (len <= MAX_ARGUMENTS_LENGTH) { return String.fromCharCode.apply(String, codePoints) // avoid extra slice() } // Decode in chunks to avoid "call stack size exceeded". var res = '' var i = 0 while (i < len) { res += String.fromCharCode.apply( String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) ) } return res } function asciiSlice (buf, start, end) { var ret = '' end = Math.min(buf.length, end) for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i] & 0x7F) } return ret } function latin1Slice (buf, start, end) { var ret = '' end = Math.min(buf.length, end) for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i]) } return ret } function hexSlice (buf, start, end) { var len = buf.length if (!start || start < 0) start = 0 if (!end || end < 0 || end > len) end = len var out = '' for (var i = start; i < end; ++i) { out += toHex(buf[i]) } return out } function utf16leSlice (buf, start, end) { var bytes = buf.slice(start, end) var res = '' for (var i = 0; i < bytes.length; i += 2) { res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) } return res } Buffer.prototype.slice = function slice (start, end) { var len = this.length start = ~~start end = end === undefined ? len : ~~end if (start < 0) { start += len if (start < 0) start = 0 } else if (start > len) { start = len } if (end < 0) { end += len if (end < 0) end = 0 } else if (end > len) { end = len } if (end < start) end = start var newBuf = this.subarray(start, end) // Return an augmented `Uint8Array` instance newBuf.__proto__ = Buffer.prototype return newBuf } /* * Need to make sure that buffer isn't trying to write out of bounds. */ function checkOffset (offset, ext, length) { if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') } Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { offset = offset >>> 0 byteLength = byteLength >>> 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var val = this[offset] var mul = 1 var i = 0 while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul } return val } Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { offset = offset >>> 0 byteLength = byteLength >>> 0 if (!noAssert) { checkOffset(offset, byteLength, this.length) } var val = this[offset + --byteLength] var mul = 1 while (byteLength > 0 && (mul *= 0x100)) { val += this[offset + --byteLength] * mul } return val } Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 1, this.length) return this[offset] } Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 2, this.length) return this[offset] | (this[offset + 1] << 8) } Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 2, this.length) return (this[offset] << 8) | this[offset + 1] } Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 4, this.length) return ((this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + (this[offset + 3] * 0x1000000) } Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset] * 0x1000000) + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) } Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { offset = offset >>> 0 byteLength = byteLength >>> 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var val = this[offset] var mul = 1 var i = 0 while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul } mul *= 0x80 if (val >= mul) val -= Math.pow(2, 8 * byteLength) return val } Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { offset = offset >>> 0 byteLength = byteLength >>> 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var i = byteLength var mul = 1 var val = this[offset + --i] while (i > 0 && (mul *= 0x100)) { val += this[offset + --i] * mul } mul *= 0x80 if (val >= mul) val -= Math.pow(2, 8 * byteLength) return val } Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 1, this.length) if (!(this[offset] & 0x80)) return (this[offset]) return ((0xff - this[offset] + 1) * -1) } Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 2, this.length) var val = this[offset] | (this[offset + 1] << 8) return (val & 0x8000) ? val | 0xFFFF0000 : val } Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 2, this.length) var val = this[offset + 1] | (this[offset] << 8) return (val & 0x8000) ? val | 0xFFFF0000 : val } Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16) | (this[offset + 3] << 24) } Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset] << 24) | (this[offset + 1] << 16) | (this[offset + 2] << 8) | (this[offset + 3]) } Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 4, this.length) return ieee754.read(this, offset, true, 23, 4) } Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 4, this.length) return ieee754.read(this, offset, false, 23, 4) } Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 8, this.length) return ieee754.read(this, offset, true, 52, 8) } Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { offset = offset >>> 0 if (!noAssert) checkOffset(offset, 8, this.length) return ieee754.read(this, offset, false, 52, 8) } function checkInt (buf, value, offset, ext, max, min) { if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') if (offset + ext > buf.length) throw new RangeError('Index out of range') } Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { value = +value offset = offset >>> 0 byteLength = byteLength >>> 0 if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1 checkInt(this, value, offset, byteLength, maxBytes, 0) } var mul = 1 var i = 0 this[offset] = value & 0xFF while (++i < byteLength && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xFF } return offset + byteLength } Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { value = +value offset = offset >>> 0 byteLength = byteLength >>> 0 if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1 checkInt(this, value, offset, byteLength, maxBytes, 0) } var i = byteLength - 1 var mul = 1 this[offset + i] = value & 0xFF while (--i >= 0 && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xFF } return offset + byteLength } Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) this[offset] = (value & 0xff) return offset + 1 } Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) return offset + 2 } Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) this[offset] = (value >>> 8) this[offset + 1] = (value & 0xff) return offset + 2 } Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) this[offset + 3] = (value >>> 24) this[offset + 2] = (value >>> 16) this[offset + 1] = (value >>> 8) this[offset] = (value & 0xff) return offset + 4 } Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) this[offset] = (value >>> 24) this[offset + 1] = (value >>> 16) this[offset + 2] = (value >>> 8) this[offset + 3] = (value & 0xff) return offset + 4 } Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) { var limit = Math.pow(2, (8 * byteLength) - 1) checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = 0 var mul = 1 var sub = 0 this[offset] = value & 0xFF while (++i < byteLength && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { sub = 1 } this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } return offset + byteLength } Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) { var limit = Math.pow(2, (8 * byteLength) - 1) checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = byteLength - 1 var mul = 1 var sub = 0 this[offset + i] = value & 0xFF while (--i >= 0 && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { sub = 1 } this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } return offset + byteLength } Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) if (value < 0) value = 0xff + value + 1 this[offset] = (value & 0xff) return offset + 1 } Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) return offset + 2 } Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) this[offset] = (value >>> 8) this[offset + 1] = (value & 0xff) return offset + 2 } Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) this[offset + 2] = (value >>> 16) this[offset + 3] = (value >>> 24) return offset + 4 } Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) if (value < 0) value = 0xffffffff + value + 1 this[offset] = (value >>> 24) this[offset + 1] = (value >>> 16) this[offset + 2] = (value >>> 8) this[offset + 3] = (value & 0xff) return offset + 4 } function checkIEEE754 (buf, value, offset, ext, max, min) { if (offset + ext > buf.length) throw new RangeError('Index out of range') if (offset < 0) throw new RangeError('Index out of range') } function writeFloat (buf, value, offset, littleEndian, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) { checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) } ieee754.write(buf, value, offset, littleEndian, 23, 4) return offset + 4 } Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { return writeFloat(this, value, offset, true, noAssert) } Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { return writeFloat(this, value, offset, false, noAssert) } function writeDouble (buf, value, offset, littleEndian, noAssert) { value = +value offset = offset >>> 0 if (!noAssert) { checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) } ieee754.write(buf, value, offset, littleEndian, 52, 8) return offset + 8 } Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { return writeDouble(this, value, offset, true, noAssert) } Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { return writeDouble(this, value, offset, false, noAssert) } // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) Buffer.prototype.copy = function copy (target, targetStart, start, end) { if (!start) start = 0 if (!end && end !== 0) end = this.length if (targetStart >= target.length) targetStart = target.length if (!targetStart) targetStart = 0 if (end > 0 && end < start) end = start // Copy 0 bytes; we're done if (end === start) return 0 if (target.length === 0 || this.length === 0) return 0 // Fatal error conditions if (targetStart < 0) { throw new RangeError('targetStart out of bounds') } if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') if (end < 0) throw new RangeError('sourceEnd out of bounds') // Are we oob? if (end > this.length) end = this.length if (target.length - targetStart < end - start) { end = target.length - targetStart + start } var len = end - start var i if (this === target && start < targetStart && targetStart < end) { // descending copy from end for (i = len - 1; i >= 0; --i) { target[i + targetStart] = this[i + start] } } else if (len < 1000) { // ascending copy from start for (i = 0; i < len; ++i) { target[i + targetStart] = this[i + start] } } else { Uint8Array.prototype.set.call( target, this.subarray(start, start + len), targetStart ) } return len } // Usage: // buffer.fill(number[, offset[, end]]) // buffer.fill(buffer[, offset[, end]]) // buffer.fill(string[, offset[, end]][, encoding]) Buffer.prototype.fill = function fill (val, start, end, encoding) { // Handle string cases: if (typeof val === 'string') { if (typeof start === 'string') { encoding = start start = 0 end = this.length } else if (typeof end === 'string') { encoding = end end = this.length } if (val.length === 1) { var code = val.charCodeAt(0) if (code < 256) { val = code } } if (encoding !== undefined && typeof encoding !== 'string') { throw new TypeError('encoding must be a string') } if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { throw new TypeError('Unknown encoding: ' + encoding) } } else if (typeof val === 'number') { val = val & 255 } // Invalid ranges are not set to a default, so can range check early. if (start < 0 || this.length < start || this.length < end) { throw new RangeError('Out of range index') } if (end <= start) { return this } start = start >>> 0 end = end === undefined ? this.length : end >>> 0 if (!val) val = 0 var i if (typeof val === 'number') { for (i = start; i < end; ++i) { this[i] = val } } else { var bytes = Buffer.isBuffer(val) ? val : new Buffer(val, encoding) var len = bytes.length for (i = 0; i < end - start; ++i) { this[i + start] = bytes[i % len] } } return this } // HELPER FUNCTIONS // ================ var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g function base64clean (str) { // Node strips out invalid characters like \n and \t from the string, base64-js does not str = str.trim().replace(INVALID_BASE64_RE, '') // Node converts strings with length < 2 to '' if (str.length < 2) return '' // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not while (str.length % 4 !== 0) { str = str + '=' } return str } function toHex (n) { if (n < 16) return '0' + n.toString(16) return n.toString(16) } function utf8ToBytes (string, units) { units = units || Infinity var codePoint var length = string.length var leadSurrogate = null var bytes = [] for (var i = 0; i < length; ++i) { codePoint = string.charCodeAt(i) // is surrogate component if (codePoint > 0xD7FF && codePoint < 0xE000) { // last char was a lead if (!leadSurrogate) { // no lead yet if (codePoint > 0xDBFF) { // unexpected trail if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) continue } else if (i + 1 === length) { // unpaired lead if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) continue } // valid lead leadSurrogate = codePoint continue } // 2 leads in a row if (codePoint < 0xDC00) { if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) leadSurrogate = codePoint continue } // valid surrogate pair codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 } else if (leadSurrogate) { // valid bmp char, but last char was a lead if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) } leadSurrogate = null // encode utf8 if (codePoint < 0x80) { if ((units -= 1) < 0) break bytes.push(codePoint) } else if (codePoint < 0x800) { if ((units -= 2) < 0) break bytes.push( codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80 ) } else if (codePoint < 0x10000) { if ((units -= 3) < 0) break bytes.push( codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80 ) } else if (codePoint < 0x110000) { if ((units -= 4) < 0) break bytes.push( codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80 ) } else { throw new Error('Invalid code point') } } return bytes } function asciiToBytes (str) { var byteArray = [] for (var i = 0; i < str.length; ++i) { // Node's code seems to be doing this and not & 0x7F.. byteArray.push(str.charCodeAt(i) & 0xFF) } return byteArray } function utf16leToBytes (str, units) { var c, hi, lo var byteArray = [] for (var i = 0; i < str.length; ++i) { if ((units -= 2) < 0) break c = str.charCodeAt(i) hi = c >> 8 lo = c % 256 byteArray.push(lo) byteArray.push(hi) } return byteArray } function base64ToBytes (str) { return base64.toByteArray(base64clean(str)) } function blitBuffer (src, dst, offset, length) { for (var i = 0; i < length; ++i) { if ((i + offset >= dst.length) || (i >= src.length)) break dst[i + offset] = src[i] } return i } // ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check // but they should be treated as valid. See: https://github.com/feross/buffer/issues/166 function isArrayBuffer (obj) { return obj instanceof ArrayBuffer || (obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' && typeof obj.byteLength === 'number') } // Node 0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView` function isArrayBufferView (obj) { return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj) } function numberIsNaN (obj) { return obj !== obj // eslint-disable-line no-self-compare } },{"base64-js":24,"ieee754":106}],55:[function(require,module,exports){ var Buffer = require('safe-buffer').Buffer var Transform = require('stream').Transform var StringDecoder = require('string_decoder').StringDecoder var inherits = require('inherits') function CipherBase (hashMode) { Transform.call(this) this.hashMode = typeof hashMode === 'string' if (this.hashMode) { this[hashMode] = this._finalOrDigest } else { this.final = this._finalOrDigest } if (this._final) { this.__final = this._final this._final = null } this._decoder = null this._encoding = null } inherits(CipherBase, Transform) CipherBase.prototype.update = function (data, inputEnc, outputEnc) { if (typeof data === 'string') { data = Buffer.from(data, inputEnc) } var outData = this._update(data) if (this.hashMode) return this if (outputEnc) { outData = this._toString(outData, outputEnc) } return outData } CipherBase.prototype.setAutoPadding = function () {} CipherBase.prototype.getAuthTag = function () { throw new Error('trying to get auth tag in unsupported state') } CipherBase.prototype.setAuthTag = function () { throw new Error('trying to set auth tag in unsupported state') } CipherBase.prototype.setAAD = function () { throw new Error('trying to set aad in unsupported state') } CipherBase.prototype._transform = function (data, _, next) { var err try { if (this.hashMode) { this._update(data) } else { this.push(this._update(data)) } } catch (e) { err = e } finally { next(err) } } CipherBase.prototype._flush = function (done) { var err try { this.push(this.__final()) } catch (e) { err = e } done(err) } CipherBase.prototype._finalOrDigest = function (outputEnc) { var outData = this.__final() || Buffer.alloc(0) if (outputEnc) { outData = this._toString(outData, outputEnc, true) } return outData } CipherBase.prototype._toString = function (value, enc, fin) { if (!this._decoder) { this._decoder = new StringDecoder(enc) this._encoding = enc } if (this._encoding !== enc) throw new Error('can\'t switch encodings') var out = this._decoder.write(value) if (fin) { out += this._decoder.end() } return out } module.exports = CipherBase },{"inherits":108,"safe-buffer":148,"stream":157,"string_decoder":158}],56:[function(require,module,exports){ (function (Buffer){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // NOTE: These type checking functions intentionally don't use `instanceof` // because it is fragile and can be easily faked with `Object.create()`. function isArray(arg) { if (Array.isArray) { return Array.isArray(arg); } return objectToString(arg) === '[object Array]'; } exports.isArray = isArray; function isBoolean(arg) { return typeof arg === 'boolean'; } exports.isBoolean = isBoolean; function isNull(arg) { return arg === null; } exports.isNull = isNull; function isNullOrUndefined(arg) { return arg == null; } exports.isNullOrUndefined = isNullOrUndefined; function isNumber(arg) { return typeof arg === 'number'; } exports.isNumber = isNumber; function isString(arg) { return typeof arg === 'string'; } exports.isString = isString; function isSymbol(arg) { return typeof arg === 'symbol'; } exports.isSymbol = isSymbol; function isUndefined(arg) { return arg === void 0; } exports.isUndefined = isUndefined; function isRegExp(re) { return objectToString(re) === '[object RegExp]'; } exports.isRegExp = isRegExp; function isObject(arg) { return typeof arg === 'object' && arg !== null; } exports.isObject = isObject; function isDate(d) { return objectToString(d) === '[object Date]'; } exports.isDate = isDate; function isError(e) { return (objectToString(e) === '[object Error]' || e instanceof Error); } exports.isError = isError; function isFunction(arg) { return typeof arg === 'function'; } exports.isFunction = isFunction; function isPrimitive(arg) { return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol typeof arg === 'undefined'; } exports.isPrimitive = isPrimitive; exports.isBuffer = Buffer.isBuffer; function objectToString(o) { return Object.prototype.toString.call(o); } }).call(this,{"isBuffer":require("../../is-buffer/index.js")}) },{"../../is-buffer/index.js":109}],57:[function(require,module,exports){ (function (Buffer){ var elliptic = require('elliptic'); var BN = require('bn.js'); module.exports = function createECDH(curve) { return new ECDH(curve); }; var aliases = { secp256k1: { name: 'secp256k1', byteLength: 32 }, secp224r1: { name: 'p224', byteLength: 28 }, prime256v1: { name: 'p256', byteLength: 32 }, prime192v1: { name: 'p192', byteLength: 24 }, ed25519: { name: 'ed25519', byteLength: 32 }, secp384r1: { name: 'p384', byteLength: 48 }, secp521r1: { name: 'p521', byteLength: 66 } }; aliases.p224 = aliases.secp224r1; aliases.p256 = aliases.secp256r1 = aliases.prime256v1; aliases.p192 = aliases.secp192r1 = aliases.prime192v1; aliases.p384 = aliases.secp384r1; aliases.p521 = aliases.secp521r1; function ECDH(curve) { this.curveType = aliases[curve]; if (!this.curveType ) { this.curveType = { name: curve }; } this.curve = new elliptic.ec(this.curveType.name); this.keys = void 0; } ECDH.prototype.generateKeys = function (enc, format) { this.keys = this.curve.genKeyPair(); return this.getPublicKey(enc, format); }; ECDH.prototype.computeSecret = function (other, inenc, enc) { inenc = inenc || 'utf8'; if (!Buffer.isBuffer(other)) { other = new Buffer(other, inenc); } var otherPub = this.curve.keyFromPublic(other).getPublic(); var out = otherPub.mul(this.keys.getPrivate()).getX(); return formatReturnValue(out, enc, this.curveType.byteLength); }; ECDH.prototype.getPublicKey = function (enc, format) { var key = this.keys.getPublic(format === 'compressed', true); if (format === 'hybrid') { if (key[key.length - 1] % 2) { key[0] = 7; } else { key [0] = 6; } } return formatReturnValue(key, enc); }; ECDH.prototype.getPrivateKey = function (enc) { return formatReturnValue(this.keys.getPrivate(), enc); }; ECDH.prototype.setPublicKey = function (pub, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(pub)) { pub = new Buffer(pub, enc); } this.keys._importPublic(pub); return this; }; ECDH.prototype.setPrivateKey = function (priv, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(priv)) { priv = new Buffer(priv, enc); } var _priv = new BN(priv); _priv = _priv.toString(16); this.keys._importPrivate(_priv); return this; }; function formatReturnValue(bn, enc, len) { if (!Array.isArray(bn)) { bn = bn.toArray(); } var buf = new Buffer(bn); if (len && buf.length < len) { var zeros = new Buffer(len - buf.length); zeros.fill(0); buf = Buffer.concat([zeros, buf]); } if (!enc) { return buf; } else { return buf.toString(enc); } } }).call(this,require("buffer").Buffer) },{"bn.js":25,"buffer":54,"elliptic":74}],58:[function(require,module,exports){ (function (Buffer){ 'use strict' var inherits = require('inherits') var md5 = require('./md5') var RIPEMD160 = require('ripemd160') var sha = require('sha.js') var Base = require('cipher-base') function HashNoConstructor (hash) { Base.call(this, 'digest') this._hash = hash this.buffers = [] } inherits(HashNoConstructor, Base) HashNoConstructor.prototype._update = function (data) { this.buffers.push(data) } HashNoConstructor.prototype._final = function () { var buf = Buffer.concat(this.buffers) var r = this._hash(buf) this.buffers = null return r } function Hash (hash) { Base.call(this, 'digest') this._hash = hash } inherits(Hash, Base) Hash.prototype._update = function (data) { this._hash.update(data) } Hash.prototype._final = function () { return this._hash.digest() } module.exports = function createHash (alg) { alg = alg.toLowerCase() if (alg === 'md5') return new HashNoConstructor(md5) if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160()) return new Hash(sha(alg)) } }).call(this,require("buffer").Buffer) },{"./md5":60,"buffer":54,"cipher-base":55,"inherits":108,"ripemd160":147,"sha.js":150}],59:[function(require,module,exports){ (function (Buffer){ 'use strict' var intSize = 4 var zeroBuffer = new Buffer(intSize) zeroBuffer.fill(0) var charSize = 8 var hashSize = 16 function toArray (buf) { if ((buf.length % intSize) !== 0) { var len = buf.length + (intSize - (buf.length % intSize)) buf = Buffer.concat([buf, zeroBuffer], len) } var arr = new Array(buf.length >>> 2) for (var i = 0, j = 0; i < buf.length; i += intSize, j++) { arr[j] = buf.readInt32LE(i) } return arr } module.exports = function hash (buf, fn) { var arr = fn(toArray(buf), buf.length * charSize) buf = new Buffer(hashSize) for (var i = 0; i < arr.length; i++) { buf.writeInt32LE(arr[i], i << 2, true) } return buf } }).call(this,require("buffer").Buffer) },{"buffer":54}],60:[function(require,module,exports){ 'use strict' /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for more info. */ var makeHash = require('./make-hash') /* * Calculate the MD5 of an array of little-endian words, and a bit length */ function core_md5 (x, len) { /* append padding */ x[len >> 5] |= 0x80 << ((len) % 32) x[(((len + 64) >>> 9) << 4) + 14] = len var a = 1732584193 var b = -271733879 var c = -1732584194 var d = 271733878 for (var i = 0; i < x.length; i += 16) { var olda = a var oldb = b var oldc = c var oldd = d a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936) d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586) c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819) b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330) a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897) d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426) c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341) b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983) a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416) d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417) c = md5_ff(c, d, a, b, x[i + 10], 17, -42063) b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162) a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682) d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101) c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290) b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329) a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510) d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632) c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713) b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302) a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691) d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083) c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335) b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848) a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438) d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690) c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961) b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501) a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467) d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784) c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473) b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734) a = md5_hh(a, b, c, d, x[i + 5], 4, -378558) d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463) c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562) b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556) a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060) d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353) c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632) b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640) a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174) d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222) c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979) b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189) a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487) d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835) c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520) b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651) a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844) d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415) c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905) b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055) a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571) d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606) c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523) b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799) a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359) d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744) c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380) b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649) a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070) d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379) c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259) b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551) a = safe_add(a, olda) b = safe_add(b, oldb) c = safe_add(c, oldc) d = safe_add(d, oldd) } return [a, b, c, d] } /* * These functions implement the four basic operations the algorithm uses. */ function md5_cmn (q, a, b, x, s, t) { return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b) } function md5_ff (a, b, c, d, x, s, t) { return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t) } function md5_gg (a, b, c, d, x, s, t) { return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t) } function md5_hh (a, b, c, d, x, s, t) { return md5_cmn(b ^ c ^ d, a, b, x, s, t) } function md5_ii (a, b, c, d, x, s, t) { return md5_cmn(c ^ (b | (~d)), a, b, x, s, t) } /* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */ function safe_add (x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF) var msw = (x >> 16) + (y >> 16) + (lsw >> 16) return (msw << 16) | (lsw & 0xFFFF) } /* * Bitwise rotate a 32-bit number to the left. */ function bit_rol (num, cnt) { return (num << cnt) | (num >>> (32 - cnt)) } module.exports = function md5 (buf) { return makeHash(buf, core_md5) } },{"./make-hash":59}],61:[function(require,module,exports){ 'use strict' var inherits = require('inherits') var Legacy = require('./legacy') var Base = require('cipher-base') var Buffer = require('safe-buffer').Buffer var md5 = require('create-hash/md5') var RIPEMD160 = require('ripemd160') var sha = require('sha.js') var ZEROS = Buffer.alloc(128) function Hmac (alg, key) { Base.call(this, 'digest') if (typeof key === 'string') { key = Buffer.from(key) } var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64 this._alg = alg this._key = key if (key.length > blocksize) { var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) key = hash.update(key).digest() } else if (key.length < blocksize) { key = Buffer.concat([key, ZEROS], blocksize) } var ipad = this._ipad = Buffer.allocUnsafe(blocksize) var opad = this._opad = Buffer.allocUnsafe(blocksize) for (var i = 0; i < blocksize; i++) { ipad[i] = key[i] ^ 0x36 opad[i] = key[i] ^ 0x5C } this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) this._hash.update(ipad) } inherits(Hmac, Base) Hmac.prototype._update = function (data) { this._hash.update(data) } Hmac.prototype._final = function () { var h = this._hash.digest() var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg) return hash.update(this._opad).update(h).digest() } module.exports = function createHmac (alg, key) { alg = alg.toLowerCase() if (alg === 'rmd160' || alg === 'ripemd160') { return new Hmac('rmd160', key) } if (alg === 'md5') { return new Legacy(md5, key) } return new Hmac(alg, key) } },{"./legacy":62,"cipher-base":55,"create-hash/md5":60,"inherits":108,"ripemd160":147,"safe-buffer":148,"sha.js":150}],62:[function(require,module,exports){ 'use strict' var inherits = require('inherits') var Buffer = require('safe-buffer').Buffer var Base = require('cipher-base') var ZEROS = Buffer.alloc(128) var blocksize = 64 function Hmac (alg, key) { Base.call(this, 'digest') if (typeof key === 'string') { key = Buffer.from(key) } this._alg = alg this._key = key if (key.length > blocksize) { key = alg(key) } else if (key.length < blocksize) { key = Buffer.concat([key, ZEROS], blocksize) } var ipad = this._ipad = Buffer.allocUnsafe(blocksize) var opad = this._opad = Buffer.allocUnsafe(blocksize) for (var i = 0; i < blocksize; i++) { ipad[i] = key[i] ^ 0x36 opad[i] = key[i] ^ 0x5C } this._hash = [ipad] } inherits(Hmac, Base) Hmac.prototype._update = function (data) { this._hash.push(data) } Hmac.prototype._final = function () { var h = this._alg(Buffer.concat(this._hash)) return this._alg(Buffer.concat([this._opad, h])) } module.exports = Hmac },{"cipher-base":55,"inherits":108,"safe-buffer":148}],63:[function(require,module,exports){ 'use strict' exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes') exports.createHash = exports.Hash = require('create-hash') exports.createHmac = exports.Hmac = require('create-hmac') var algos = require('browserify-sign/algos') var algoKeys = Object.keys(algos) var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys) exports.getHashes = function () { return hashes } var p = require('pbkdf2') exports.pbkdf2 = p.pbkdf2 exports.pbkdf2Sync = p.pbkdf2Sync var aes = require('browserify-cipher') exports.Cipher = aes.Cipher exports.createCipher = aes.createCipher exports.Cipheriv = aes.Cipheriv exports.createCipheriv = aes.createCipheriv exports.Decipher = aes.Decipher exports.createDecipher = aes.createDecipher exports.Decipheriv = aes.Decipheriv exports.createDecipheriv = aes.createDecipheriv exports.getCiphers = aes.getCiphers exports.listCiphers = aes.listCiphers var dh = require('diffie-hellman') exports.DiffieHellmanGroup = dh.DiffieHellmanGroup exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup exports.getDiffieHellman = dh.getDiffieHellman exports.createDiffieHellman = dh.createDiffieHellman exports.DiffieHellman = dh.DiffieHellman var sign = require('browserify-sign') exports.createSign = sign.createSign exports.Sign = sign.Sign exports.createVerify = sign.createVerify exports.Verify = sign.Verify exports.createECDH = require('create-ecdh') var publicEncrypt = require('public-encrypt') exports.publicEncrypt = publicEncrypt.publicEncrypt exports.privateEncrypt = publicEncrypt.privateEncrypt exports.publicDecrypt = publicEncrypt.publicDecrypt exports.privateDecrypt = publicEncrypt.privateDecrypt // the least I can do is make error messages for the rest of the node.js/crypto api. // ;[ // 'createCredentials' // ].forEach(function (name) { // exports[name] = function () { // throw new Error([ // 'sorry, ' + name + ' is not implemented yet', // 'we accept pull requests', // 'https://github.com/crypto-browserify/crypto-browserify' // ].join('\n')) // } // }) exports.createCredentials = function () { throw new Error([ 'sorry, createCredentials is not implemented yet', 'we accept pull requests', 'https://github.com/crypto-browserify/crypto-browserify' ].join('\n')) } exports.constants = { 'DH_CHECK_P_NOT_SAFE_PRIME': 2, 'DH_CHECK_P_NOT_PRIME': 1, 'DH_UNABLE_TO_CHECK_GENERATOR': 4, 'DH_NOT_SUITABLE_GENERATOR': 8, 'NPN_ENABLED': 1, 'ALPN_ENABLED': 1, 'RSA_PKCS1_PADDING': 1, 'RSA_SSLV23_PADDING': 2, 'RSA_NO_PADDING': 3, 'RSA_PKCS1_OAEP_PADDING': 4, 'RSA_X931_PADDING': 5, 'RSA_PKCS1_PSS_PADDING': 6, 'POINT_CONVERSION_COMPRESSED': 2, 'POINT_CONVERSION_UNCOMPRESSED': 4, 'POINT_CONVERSION_HYBRID': 6 } },{"browserify-cipher":43,"browserify-sign":50,"browserify-sign/algos":47,"create-ecdh":57,"create-hash":58,"create-hmac":61,"diffie-hellman":70,"pbkdf2":120,"public-encrypt":127,"randombytes":133}],64:[function(require,module,exports){ 'use strict'; exports.utils = require('./des/utils'); exports.Cipher = require('./des/cipher'); exports.DES = require('./des/des'); exports.CBC = require('./des/cbc'); exports.EDE = require('./des/ede'); },{"./des/cbc":65,"./des/cipher":66,"./des/des":67,"./des/ede":68,"./des/utils":69}],65:[function(require,module,exports){ 'use strict'; var assert = require('minimalistic-assert'); var inherits = require('inherits'); var proto = {}; function CBCState(iv) { assert.equal(iv.length, 8, 'Invalid IV length'); this.iv = new Array(8); for (var i = 0; i < this.iv.length; i++) this.iv[i] = iv[i]; } function instantiate(Base) { function CBC(options) { Base.call(this, options); this._cbcInit(); } inherits(CBC, Base); var keys = Object.keys(proto); for (var i = 0; i < keys.length; i++) { var key = keys[i]; CBC.prototype[key] = proto[key]; } CBC.create = function create(options) { return new CBC(options); }; return CBC; } exports.instantiate = instantiate; proto._cbcInit = function _cbcInit() { var state = new CBCState(this.options.iv); this._cbcState = state; }; proto._update = function _update(inp, inOff, out, outOff) { var state = this._cbcState; var superProto = this.constructor.super_.prototype; var iv = state.iv; if (this.type === 'encrypt') { for (var i = 0; i < this.blockSize; i++) iv[i] ^= inp[inOff + i]; superProto._update.call(this, iv, 0, out, outOff); for (var i = 0; i < this.blockSize; i++) iv[i] = out[outOff + i]; } else { superProto._update.call(this, inp, inOff, out, outOff); for (var i = 0; i < this.blockSize; i++) out[outOff + i] ^= iv[i]; for (var i = 0; i < this.blockSize; i++) iv[i] = inp[inOff + i]; } }; },{"inherits":108,"minimalistic-assert":112}],66:[function(require,module,exports){ 'use strict'; var assert = require('minimalistic-assert'); function Cipher(options) { this.options = options; this.type = this.options.type; this.blockSize = 8; this._init(); this.buffer = new Array(this.blockSize); this.bufferOff = 0; } module.exports = Cipher; Cipher.prototype._init = function _init() { // Might be overrided }; Cipher.prototype.update = function update(data) { if (data.length === 0) return []; if (this.type === 'decrypt') return this._updateDecrypt(data); else return this._updateEncrypt(data); }; Cipher.prototype._buffer = function _buffer(data, off) { // Append data to buffer var min = Math.min(this.buffer.length - this.bufferOff, data.length - off); for (var i = 0; i < min; i++) this.buffer[this.bufferOff + i] = data[off + i]; this.bufferOff += min; // Shift next return min; }; Cipher.prototype._flushBuffer = function _flushBuffer(out, off) { this._update(this.buffer, 0, out, off); this.bufferOff = 0; return this.blockSize; }; Cipher.prototype._updateEncrypt = function _updateEncrypt(data) { var inputOff = 0; var outputOff = 0; var count = ((this.bufferOff + data.length) / this.blockSize) | 0; var out = new Array(count * this.blockSize); if (this.bufferOff !== 0) { inputOff += this._buffer(data, inputOff); if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff); } // Write blocks var max = data.length - ((data.length - inputOff) % this.blockSize); for (; inputOff < max; inputOff += this.blockSize) { this._update(data, inputOff, out, outputOff); outputOff += this.blockSize; } // Queue rest for (; inputOff < data.length; inputOff++, this.bufferOff++) this.buffer[this.bufferOff] = data[inputOff]; return out; }; Cipher.prototype._updateDecrypt = function _updateDecrypt(data) { var inputOff = 0; var outputOff = 0; var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1; var out = new Array(count * this.blockSize); // TODO(indutny): optimize it, this is far from optimal for (; count > 0; count--) { inputOff += this._buffer(data, inputOff); outputOff += this._flushBuffer(out, outputOff); } // Buffer rest of the input inputOff += this._buffer(data, inputOff); return out; }; Cipher.prototype.final = function final(buffer) { var first; if (buffer) first = this.update(buffer); var last; if (this.type === 'encrypt') last = this._finalEncrypt(); else last = this._finalDecrypt(); if (first) return first.concat(last); else return last; }; Cipher.prototype._pad = function _pad(buffer, off) { if (off === 0) return false; while (off < buffer.length) buffer[off++] = 0; return true; }; Cipher.prototype._finalEncrypt = function _finalEncrypt() { if (!this._pad(this.buffer, this.bufferOff)) return []; var out = new Array(this.blockSize); this._update(this.buffer, 0, out, 0); return out; }; Cipher.prototype._unpad = function _unpad(buffer) { return buffer; }; Cipher.prototype._finalDecrypt = function _finalDecrypt() { assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt'); var out = new Array(this.blockSize); this._flushBuffer(out, 0); return this._unpad(out); }; },{"minimalistic-assert":112}],67:[function(require,module,exports){ 'use strict'; var assert = require('minimalistic-assert'); var inherits = require('inherits'); var des = require('../des'); var utils = des.utils; var Cipher = des.Cipher; function DESState() { this.tmp = new Array(2); this.keys = null; } function DES(options) { Cipher.call(this, options); var state = new DESState(); this._desState = state; this.deriveKeys(state, options.key); } inherits(DES, Cipher); module.exports = DES; DES.create = function create(options) { return new DES(options); }; var shiftTable = [ 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 ]; DES.prototype.deriveKeys = function deriveKeys(state, key) { state.keys = new Array(16 * 2); assert.equal(key.length, this.blockSize, 'Invalid key length'); var kL = utils.readUInt32BE(key, 0); var kR = utils.readUInt32BE(key, 4); utils.pc1(kL, kR, state.tmp, 0); kL = state.tmp[0]; kR = state.tmp[1]; for (var i = 0; i < state.keys.length; i += 2) { var shift = shiftTable[i >>> 1]; kL = utils.r28shl(kL, shift); kR = utils.r28shl(kR, shift); utils.pc2(kL, kR, state.keys, i); } }; DES.prototype._update = function _update(inp, inOff, out, outOff) { var state = this._desState; var l = utils.readUInt32BE(inp, inOff); var r = utils.readUInt32BE(inp, inOff + 4); // Initial Permutation utils.ip(l, r, state.tmp, 0); l = state.tmp[0]; r = state.tmp[1]; if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0); else this._decrypt(state, l, r, state.tmp, 0); l = state.tmp[0]; r = state.tmp[1]; utils.writeUInt32BE(out, l, outOff); utils.writeUInt32BE(out, r, outOff + 4); }; DES.prototype._pad = function _pad(buffer, off) { var value = buffer.length - off; for (var i = off; i < buffer.length; i++) buffer[i] = value; return true; }; DES.prototype._unpad = function _unpad(buffer) { var pad = buffer[buffer.length - 1]; for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad); return buffer.slice(0, buffer.length - pad); }; DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) { var l = lStart; var r = rStart; // Apply f() x16 times for (var i = 0; i < state.keys.length; i += 2) { var keyL = state.keys[i]; var keyR = state.keys[i + 1]; // f(r, k) utils.expand(r, state.tmp, 0); keyL ^= state.tmp[0]; keyR ^= state.tmp[1]; var s = utils.substitute(keyL, keyR); var f = utils.permute(s); var t = r; r = (l ^ f) >>> 0; l = t; } // Reverse Initial Permutation utils.rip(r, l, out, off); }; DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { var l = rStart; var r = lStart; // Apply f() x16 times for (var i = state.keys.length - 2; i >= 0; i -= 2) { var keyL = state.keys[i]; var keyR = state.keys[i + 1]; // f(r, k) utils.expand(l, state.tmp, 0); keyL ^= state.tmp[0]; keyR ^= state.tmp[1]; var s = utils.substitute(keyL, keyR); var f = utils.permute(s); var t = l; l = (r ^ f) >>> 0; r = t; } // Reverse Initial Permutation utils.rip(l, r, out, off); }; },{"../des":64,"inherits":108,"minimalistic-assert":112}],68:[function(require,module,exports){ 'use strict'; var assert = require('minimalistic-assert'); var inherits = require('inherits'); var des = require('../des'); var Cipher = des.Cipher; var DES = des.DES; function EDEState(type, key) { assert.equal(key.length, 24, 'Invalid key length'); var k1 = key.slice(0, 8); var k2 = key.slice(8, 16); var k3 = key.slice(16, 24); if (type === 'encrypt') { this.ciphers = [ DES.create({ type: 'encrypt', key: k1 }), DES.create({ type: 'decrypt', key: k2 }), DES.create({ type: 'encrypt', key: k3 }) ]; } else { this.ciphers = [ DES.create({ type: 'decrypt', key: k3 }), DES.create({ type: 'encrypt', key: k2 }), DES.create({ type: 'decrypt', key: k1 }) ]; } } function EDE(options) { Cipher.call(this, options); var state = new EDEState(this.type, this.options.key); this._edeState = state; } inherits(EDE, Cipher); module.exports = EDE; EDE.create = function create(options) { return new EDE(options); }; EDE.prototype._update = function _update(inp, inOff, out, outOff) { var state = this._edeState; state.ciphers[0]._update(inp, inOff, out, outOff); state.ciphers[1]._update(out, outOff, out, outOff); state.ciphers[2]._update(out, outOff, out, outOff); }; EDE.prototype._pad = DES.prototype._pad; EDE.prototype._unpad = DES.prototype._unpad; },{"../des":64,"inherits":108,"minimalistic-assert":112}],69:[function(require,module,exports){ 'use strict'; exports.readUInt32BE = function readUInt32BE(bytes, off) { var res = (bytes[0 + off] << 24) | (bytes[1 + off] << 16) | (bytes[2 + off] << 8) | bytes[3 + off]; return res >>> 0; }; exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) { bytes[0 + off] = value >>> 24; bytes[1 + off] = (value >>> 16) & 0xff; bytes[2 + off] = (value >>> 8) & 0xff; bytes[3 + off] = value & 0xff; }; exports.ip = function ip(inL, inR, out, off) { var outL = 0; var outR = 0; for (var i = 6; i >= 0; i -= 2) { for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >>> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inL >>> (j + i)) & 1; } } for (var i = 6; i >= 0; i -= 2) { for (var j = 1; j <= 25; j += 8) { outR <<= 1; outR |= (inR >>> (j + i)) & 1; } for (var j = 1; j <= 25; j += 8) { outR <<= 1; outR |= (inL >>> (j + i)) & 1; } } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.rip = function rip(inL, inR, out, off) { var outL = 0; var outR = 0; for (var i = 0; i < 4; i++) { for (var j = 24; j >= 0; j -= 8) { outL <<= 1; outL |= (inR >>> (j + i)) & 1; outL <<= 1; outL |= (inL >>> (j + i)) & 1; } } for (var i = 4; i < 8; i++) { for (var j = 24; j >= 0; j -= 8) { outR <<= 1; outR |= (inR >>> (j + i)) & 1; outR <<= 1; outR |= (inL >>> (j + i)) & 1; } } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.pc1 = function pc1(inL, inR, out, off) { var outL = 0; var outR = 0; // 7, 15, 23, 31, 39, 47, 55, 63 // 6, 14, 22, 30, 39, 47, 55, 63 // 5, 13, 21, 29, 39, 47, 55, 63 // 4, 12, 20, 28 for (var i = 7; i >= 5; i--) { for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inL >> (j + i)) & 1; } } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >> (j + i)) & 1; } // 1, 9, 17, 25, 33, 41, 49, 57 // 2, 10, 18, 26, 34, 42, 50, 58 // 3, 11, 19, 27, 35, 43, 51, 59 // 36, 44, 52, 60 for (var i = 1; i <= 3; i++) { for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inR >> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inL >> (j + i)) & 1; } } for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inL >> (j + i)) & 1; } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.r28shl = function r28shl(num, shift) { return ((num << shift) & 0xfffffff) | (num >>> (28 - shift)); }; var pc2table = [ // inL => outL 14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, // inR => outR 15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24 ]; exports.pc2 = function pc2(inL, inR, out, off) { var outL = 0; var outR = 0; var len = pc2table.length >>> 1; for (var i = 0; i < len; i++) { outL <<= 1; outL |= (inL >>> pc2table[i]) & 0x1; } for (var i = len; i < pc2table.length; i++) { outR <<= 1; outR |= (inR >>> pc2table[i]) & 0x1; } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.expand = function expand(r, out, off) { var outL = 0; var outR = 0; outL = ((r & 1) << 5) | (r >>> 27); for (var i = 23; i >= 15; i -= 4) { outL <<= 6; outL |= (r >>> i) & 0x3f; } for (var i = 11; i >= 3; i -= 4) { outR |= (r >>> i) & 0x3f; outR <<= 6; } outR |= ((r & 0x1f) << 1) | (r >>> 31); out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; var sTable = [ 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 ]; exports.substitute = function substitute(inL, inR) { var out = 0; for (var i = 0; i < 4; i++) { var b = (inL >>> (18 - i * 6)) & 0x3f; var sb = sTable[i * 0x40 + b]; out <<= 4; out |= sb; } for (var i = 0; i < 4; i++) { var b = (inR >>> (18 - i * 6)) & 0x3f; var sb = sTable[4 * 0x40 + i * 0x40 + b]; out <<= 4; out |= sb; } return out >>> 0; }; var permuteTable = [ 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7 ]; exports.permute = function permute(num) { var out = 0; for (var i = 0; i < permuteTable.length; i++) { out <<= 1; out |= (num >>> permuteTable[i]) & 0x1; } return out >>> 0; }; exports.padSplit = function padSplit(num, size, group) { var str = num.toString(2); while (str.length < size) str = '0' + str; var out = []; for (var i = 0; i < size; i += group) out.push(str.slice(i, i + group)); return out.join(' '); }; },{}],70:[function(require,module,exports){ (function (Buffer){ var generatePrime = require('./lib/generatePrime') var primes = require('./lib/primes.json') var DH = require('./lib/dh') function getDiffieHellman (mod) { var prime = new Buffer(primes[mod].prime, 'hex') var gen = new Buffer(primes[mod].gen, 'hex') return new DH(prime, gen) } var ENCODINGS = { 'binary': true, 'hex': true, 'base64': true } function createDiffieHellman (prime, enc, generator, genc) { if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) { return createDiffieHellman(prime, 'binary', enc, generator) } enc = enc || 'binary' genc = genc || 'binary' generator = generator || new Buffer([2]) if (!Buffer.isBuffer(generator)) { generator = new Buffer(generator, genc) } if (typeof prime === 'number') { return new DH(generatePrime(prime, generator), generator, true) } if (!Buffer.isBuffer(prime)) { prime = new Buffer(prime, enc) } return new DH(prime, generator, true) } exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman }).call(this,require("buffer").Buffer) },{"./lib/dh":71,"./lib/generatePrime":72,"./lib/primes.json":73,"buffer":54}],71:[function(require,module,exports){ (function (Buffer){ var BN = require('bn.js'); var MillerRabin = require('miller-rabin'); var millerRabin = new MillerRabin(); var TWENTYFOUR = new BN(24); var ELEVEN = new BN(11); var TEN = new BN(10); var THREE = new BN(3); var SEVEN = new BN(7); var primes = require('./generatePrime'); var randomBytes = require('randombytes'); module.exports = DH; function setPublicKey(pub, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(pub)) { pub = new Buffer(pub, enc); } this._pub = new BN(pub); return this; } function setPrivateKey(priv, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(priv)) { priv = new Buffer(priv, enc); } this._priv = new BN(priv); return this; } var primeCache = {}; function checkPrime(prime, generator) { var gen = generator.toString('hex'); var hex = [gen, prime.toString(16)].join('_'); if (hex in primeCache) { return primeCache[hex]; } var error = 0; if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime)) { //not a prime so +1 error += 1; if (gen === '02' || gen === '05') { // we'd be able to check the generator // it would fail so +8 error += 8; } else { //we wouldn't be able to test the generator // so +4 error += 4; } primeCache[hex] = error; return error; } if (!millerRabin.test(prime.shrn(1))) { //not a safe prime error += 2; } var rem; switch (gen) { case '02': if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { // unsuidable generator error += 8; } break; case '05': rem = prime.mod(TEN); if (rem.cmp(THREE) && rem.cmp(SEVEN)) { // prime mod 10 needs to equal 3 or 7 error += 8; } break; default: error += 4; } primeCache[hex] = error; return error; } function DH(prime, generator, malleable) { this.setGenerator(generator); this.__prime = new BN(prime); this._prime = BN.mont(this.__prime); this._primeLen = prime.length; this._pub = undefined; this._priv = undefined; this._primeCode = undefined; if (malleable) { this.setPublicKey = setPublicKey; this.setPrivateKey = setPrivateKey; } else { this._primeCode = 8; } } Object.defineProperty(DH.prototype, 'verifyError', { enumerable: true, get: function () { if (typeof this._primeCode !== 'number') { this._primeCode = checkPrime(this.__prime, this.__gen); } return this._primeCode; } }); DH.prototype.generateKeys = function () { if (!this._priv) { this._priv = new BN(randomBytes(this._primeLen)); } this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed(); return this.getPublicKey(); }; DH.prototype.computeSecret = function (other) { other = new BN(other); other = other.toRed(this._prime); var secret = other.redPow(this._priv).fromRed(); var out = new Buffer(secret.toArray()); var prime = this.getPrime(); if (out.length < prime.length) { var front = new Buffer(prime.length - out.length); front.fill(0); out = Buffer.concat([front, out]); } return out; }; DH.prototype.getPublicKey = function getPublicKey(enc) { return formatReturnValue(this._pub, enc); }; DH.prototype.getPrivateKey = function getPrivateKey(enc) { return formatReturnValue(this._priv, enc); }; DH.prototype.getPrime = function (enc) { return formatReturnValue(this.__prime, enc); }; DH.prototype.getGenerator = function (enc) { return formatReturnValue(this._gen, enc); }; DH.prototype.setGenerator = function (gen, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(gen)) { gen = new Buffer(gen, enc); } this.__gen = gen; this._gen = new BN(gen); return this; }; function formatReturnValue(bn, enc) { var buf = new Buffer(bn.toArray()); if (!enc) { return buf; } else { return buf.toString(enc); } } }).call(this,require("buffer").Buffer) },{"./generatePrime":72,"bn.js":25,"buffer":54,"miller-rabin":111,"randombytes":133}],72:[function(require,module,exports){ var randomBytes = require('randombytes'); module.exports = findPrime; findPrime.simpleSieve = simpleSieve; findPrime.fermatTest = fermatTest; var BN = require('bn.js'); var TWENTYFOUR = new BN(24); var MillerRabin = require('miller-rabin'); var millerRabin = new MillerRabin(); var ONE = new BN(1); var TWO = new BN(2); var FIVE = new BN(5); var SIXTEEN = new BN(16); var EIGHT = new BN(8); var TEN = new BN(10); var THREE = new BN(3); var SEVEN = new BN(7); var ELEVEN = new BN(11); var FOUR = new BN(4); var TWELVE = new BN(12); var primes = null; function _getPrimes() { if (primes !== null) return primes; var limit = 0x100000; var res = []; res[0] = 2; for (var i = 1, k = 3; k < limit; k += 2) { var sqrt = Math.ceil(Math.sqrt(k)); for (var j = 0; j < i && res[j] <= sqrt; j++) if (k % res[j] === 0) break; if (i !== j && res[j] <= sqrt) continue; res[i++] = k; } primes = res; return res; } function simpleSieve(p) { var primes = _getPrimes(); for (var i = 0; i < primes.length; i++) if (p.modn(primes[i]) === 0) { if (p.cmpn(primes[i]) === 0) { return true; } else { return false; } } return true; } function fermatTest(p) { var red = BN.mont(p); return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0; } function findPrime(bits, gen) { if (bits < 16) { // this is what openssl does if (gen === 2 || gen === 5) { return new BN([0x8c, 0x7b]); } else { return new BN([0x8c, 0x27]); } } gen = new BN(gen); var num, n2; while (true) { num = new BN(randomBytes(Math.ceil(bits / 8))); while (num.bitLength() > bits) { num.ishrn(1); } if (num.isEven()) { num.iadd(ONE); } if (!num.testn(1)) { num.iadd(TWO); } if (!gen.cmp(TWO)) { while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { num.iadd(FOUR); } } else if (!gen.cmp(FIVE)) { while (num.mod(TEN).cmp(THREE)) { num.iadd(FOUR); } } n2 = num.shrn(1); if (simpleSieve(n2) && simpleSieve(num) && fermatTest(n2) && fermatTest(num) && millerRabin.test(n2) && millerRabin.test(num)) { return num; } } } },{"bn.js":25,"miller-rabin":111,"randombytes":133}],73:[function(require,module,exports){ module.exports={ "modp1": { "gen": "02", "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff" }, "modp2": { "gen": "02", "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff" }, "modp5": { "gen": "02", "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff" }, "modp14": { "gen": "02", "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff" }, "modp15": { "gen": "02", "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff" }, "modp16": { "gen": "02", "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff" }, "modp17": { "gen": "02", "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff" }, "modp18": { "gen": "02", "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff" } } },{}],74:[function(require,module,exports){ 'use strict'; var elliptic = exports; elliptic.version = require('../package.json').version; elliptic.utils = require('./elliptic/utils'); elliptic.rand = require('brorand'); elliptic.curve = require('./elliptic/curve'); elliptic.curves = require('./elliptic/curves'); // Protocols elliptic.ec = require('./elliptic/ec'); elliptic.eddsa = require('./elliptic/eddsa'); },{"../package.json":89,"./elliptic/curve":77,"./elliptic/curves":80,"./elliptic/ec":81,"./elliptic/eddsa":84,"./elliptic/utils":88,"brorand":26}],75:[function(require,module,exports){ 'use strict'; var BN = require('bn.js'); var elliptic = require('../../elliptic'); var utils = elliptic.utils; var getNAF = utils.getNAF; var getJSF = utils.getJSF; var assert = utils.assert; function BaseCurve(type, conf) { this.type = type; this.p = new BN(conf.p, 16); // Use Montgomery, when there is no fast reduction for the prime this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); // Useful for many curves this.zero = new BN(0).toRed(this.red); this.one = new BN(1).toRed(this.red); this.two = new BN(2).toRed(this.red); // Curve configuration, optional this.n = conf.n && new BN(conf.n, 16); this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); // Temporary arrays this._wnafT1 = new Array(4); this._wnafT2 = new Array(4); this._wnafT3 = new Array(4); this._wnafT4 = new Array(4); // Generalized Greg Maxwell's trick var adjustCount = this.n && this.p.div(this.n); if (!adjustCount || adjustCount.cmpn(100) > 0) { this.redN = null; } else { this._maxwellTrick = true; this.redN = this.n.toRed(this.red); } } module.exports = BaseCurve; BaseCurve.prototype.point = function point() { throw new Error('Not implemented'); }; BaseCurve.prototype.validate = function validate() { throw new Error('Not implemented'); }; BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { assert(p.precomputed); var doubles = p._getDoubles(); var naf = getNAF(k, 1); var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1); I /= 3; // Translate into more windowed form var repr = []; for (var j = 0; j < naf.length; j += doubles.step) { var nafW = 0; for (var k = j + doubles.step - 1; k >= j; k--) nafW = (nafW << 1) + naf[k]; repr.push(nafW); } var a = this.jpoint(null, null, null); var b = this.jpoint(null, null, null); for (var i = I; i > 0; i--) { for (var j = 0; j < repr.length; j++) { var nafW = repr[j]; if (nafW === i) b = b.mixedAdd(doubles.points[j]); else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg()); } a = a.add(b); } return a.toP(); }; BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { var w = 4; // Precompute window var nafPoints = p._getNAFPoints(w); w = nafPoints.wnd; var wnd = nafPoints.points; // Get NAF form var naf = getNAF(k, w); // Add `this`*(N+1) for every w-NAF index var acc = this.jpoint(null, null, null); for (var i = naf.length - 1; i >= 0; i--) { // Count zeroes for (var k = 0; i >= 0 && naf[i] === 0; i--) k++; if (i >= 0) k++; acc = acc.dblp(k); if (i < 0) break; var z = naf[i]; assert(z !== 0); if (p.type === 'affine') { // J +- P if (z > 0) acc = acc.mixedAdd(wnd[(z - 1) >> 1]); else acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg()); } else { // J +- J if (z > 0) acc = acc.add(wnd[(z - 1) >> 1]); else acc = acc.add(wnd[(-z - 1) >> 1].neg()); } } return p.type === 'affine' ? acc.toP() : acc; }; BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) { var wndWidth = this._wnafT1; var wnd = this._wnafT2; var naf = this._wnafT3; // Fill all arrays var max = 0; for (var i = 0; i < len; i++) { var p = points[i]; var nafPoints = p._getNAFPoints(defW); wndWidth[i] = nafPoints.wnd; wnd[i] = nafPoints.points; } // Comb small window NAFs for (var i = len - 1; i >= 1; i -= 2) { var a = i - 1; var b = i; if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { naf[a] = getNAF(coeffs[a], wndWidth[a]); naf[b] = getNAF(coeffs[b], wndWidth[b]); max = Math.max(naf[a].length, max); max = Math.max(naf[b].length, max); continue; } var comb = [ points[a], /* 1 */ null, /* 3 */ null, /* 5 */ points[b] /* 7 */ ]; // Try to avoid Projective points, if possible if (points[a].y.cmp(points[b].y) === 0) { comb[1] = points[a].add(points[b]); comb[2] = points[a].toJ().mixedAdd(points[b].neg()); } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { comb[1] = points[a].toJ().mixedAdd(points[b]); comb[2] = points[a].add(points[b].neg()); } else { comb[1] = points[a].toJ().mixedAdd(points[b]); comb[2] = points[a].toJ().mixedAdd(points[b].neg()); } var index = [ -3, /* -1 -1 */ -1, /* -1 0 */ -5, /* -1 1 */ -7, /* 0 -1 */ 0, /* 0 0 */ 7, /* 0 1 */ 5, /* 1 -1 */ 1, /* 1 0 */ 3 /* 1 1 */ ]; var jsf = getJSF(coeffs[a], coeffs[b]); max = Math.max(jsf[0].length, max); naf[a] = new Array(max); naf[b] = new Array(max); for (var j = 0; j < max; j++) { var ja = jsf[0][j] | 0; var jb = jsf[1][j] | 0; naf[a][j] = index[(ja + 1) * 3 + (jb + 1)]; naf[b][j] = 0; wnd[a] = comb; } } var acc = this.jpoint(null, null, null); var tmp = this._wnafT4; for (var i = max; i >= 0; i--) { var k = 0; while (i >= 0) { var zero = true; for (var j = 0; j < len; j++) { tmp[j] = naf[j][i] | 0; if (tmp[j] !== 0) zero = false; } if (!zero) break; k++; i--; } if (i >= 0) k++; acc = acc.dblp(k); if (i < 0) break; for (var j = 0; j < len; j++) { var z = tmp[j]; var p; if (z === 0) continue; else if (z > 0) p = wnd[j][(z - 1) >> 1]; else if (z < 0) p = wnd[j][(-z - 1) >> 1].neg(); if (p.type === 'affine') acc = acc.mixedAdd(p); else acc = acc.add(p); } } // Zeroify references for (var i = 0; i < len; i++) wnd[i] = null; if (jacobianResult) return acc; else return acc.toP(); }; function BasePoint(curve, type) { this.curve = curve; this.type = type; this.precomputed = null; } BaseCurve.BasePoint = BasePoint; BasePoint.prototype.eq = function eq(/*other*/) { throw new Error('Not implemented'); }; BasePoint.prototype.validate = function validate() { return this.curve.validate(this); }; BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { bytes = utils.toArray(bytes, enc); var len = this.p.byteLength(); // uncompressed, hybrid-odd, hybrid-even if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && bytes.length - 1 === 2 * len) { if (bytes[0] === 0x06) assert(bytes[bytes.length - 1] % 2 === 0); else if (bytes[0] === 0x07) assert(bytes[bytes.length - 1] % 2 === 1); var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len)); return res; } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && bytes.length - 1 === len) { return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03); } throw new Error('Unknown point format'); }; BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { return this.encode(enc, true); }; BasePoint.prototype._encode = function _encode(compact) { var len = this.curve.p.byteLength(); var x = this.getX().toArray('be', len); if (compact) return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x); return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ; }; BasePoint.prototype.encode = function encode(enc, compact) { return utils.encode(this._encode(compact), enc); }; BasePoint.prototype.precompute = function precompute(power) { if (this.precomputed) return this; var precomputed = { doubles: null, naf: null, beta: null }; precomputed.naf = this._getNAFPoints(8); precomputed.doubles = this._getDoubles(4, power); precomputed.beta = this._getBeta(); this.precomputed = precomputed; return this; }; BasePoint.prototype._hasDoubles = function _hasDoubles(k) { if (!this.precomputed) return false; var doubles = this.precomputed.doubles; if (!doubles) return false; return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step); }; BasePoint.prototype._getDoubles = function _getDoubles(step, power) { if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles; var doubles = [ this ]; var acc = this; for (var i = 0; i < power; i += step) { for (var j = 0; j < step; j++) acc = acc.dbl(); doubles.push(acc); } return { step: step, points: doubles }; }; BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { if (this.precomputed && this.precomputed.naf) return this.precomputed.naf; var res = [ this ]; var max = (1 << wnd) - 1; var dbl = max === 1 ? null : this.dbl(); for (var i = 1; i < max; i++) res[i] = res[i - 1].add(dbl); return { wnd: wnd, points: res }; }; BasePoint.prototype._getBeta = function _getBeta() { return null; }; BasePoint.prototype.dblp = function dblp(k) { var r = this; for (var i = 0; i < k; i++) r = r.dbl(); return r; }; },{"../../elliptic":74,"bn.js":25}],76:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); var elliptic = require('../../elliptic'); var BN = require('bn.js'); var inherits = require('inherits'); var Base = curve.base; var assert = elliptic.utils.assert; function EdwardsCurve(conf) { // NOTE: Important as we are creating point in Base.call() this.twisted = (conf.a | 0) !== 1; this.mOneA = this.twisted && (conf.a | 0) === -1; this.extended = this.mOneA; Base.call(this, 'edwards', conf); this.a = new BN(conf.a, 16).umod(this.red.m); this.a = this.a.toRed(this.red); this.c = new BN(conf.c, 16).toRed(this.red); this.c2 = this.c.redSqr(); this.d = new BN(conf.d, 16).toRed(this.red); this.dd = this.d.redAdd(this.d); assert(!this.twisted || this.c.fromRed().cmpn(1) === 0); this.oneC = (conf.c | 0) === 1; } inherits(EdwardsCurve, Base); module.exports = EdwardsCurve; EdwardsCurve.prototype._mulA = function _mulA(num) { if (this.mOneA) return num.redNeg(); else return this.a.redMul(num); }; EdwardsCurve.prototype._mulC = function _mulC(num) { if (this.oneC) return num; else return this.c.redMul(num); }; // Just for compatibility with Short curve EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) { return this.point(x, y, z, t); }; EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) { x = new BN(x, 16); if (!x.red) x = x.toRed(this.red); var x2 = x.redSqr(); var rhs = this.c2.redSub(this.a.redMul(x2)); var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2)); var y2 = rhs.redMul(lhs.redInvm()); var y = y2.redSqrt(); if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point'); var isOdd = y.fromRed().isOdd(); if (odd && !isOdd || !odd && isOdd) y = y.redNeg(); return this.point(x, y); }; EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) { y = new BN(y, 16); if (!y.red) y = y.toRed(this.red); // x^2 = (y^2 - 1) / (d y^2 + 1) var y2 = y.redSqr(); var lhs = y2.redSub(this.one); var rhs = y2.redMul(this.d).redAdd(this.one); var x2 = lhs.redMul(rhs.redInvm()); if (x2.cmp(this.zero) === 0) { if (odd) throw new Error('invalid point'); else return this.point(this.zero, y); } var x = x2.redSqrt(); if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error('invalid point'); if (x.isOdd() !== odd) x = x.redNeg(); return this.point(x, y); }; EdwardsCurve.prototype.validate = function validate(point) { if (point.isInfinity()) return true; // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2) point.normalize(); var x2 = point.x.redSqr(); var y2 = point.y.redSqr(); var lhs = x2.redMul(this.a).redAdd(y2); var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2))); return lhs.cmp(rhs) === 0; }; function Point(curve, x, y, z, t) { Base.BasePoint.call(this, curve, 'projective'); if (x === null && y === null && z === null) { this.x = this.curve.zero; this.y = this.curve.one; this.z = this.curve.one; this.t = this.curve.zero; this.zOne = true; } else { this.x = new BN(x, 16); this.y = new BN(y, 16); this.z = z ? new BN(z, 16) : this.curve.one; this.t = t && new BN(t, 16); if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red); this.zOne = this.z === this.curve.one; // Use extended coordinates if (this.curve.extended && !this.t) { this.t = this.x.redMul(this.y); if (!this.zOne) this.t = this.t.redMul(this.z.redInvm()); } } } inherits(Point, Base.BasePoint); EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { return Point.fromJSON(this, obj); }; EdwardsCurve.prototype.point = function point(x, y, z, t) { return new Point(this, x, y, z, t); }; Point.fromJSON = function fromJSON(curve, obj) { return new Point(curve, obj[0], obj[1], obj[2]); }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ''; return ''; }; Point.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.x.cmpn(0) === 0 && this.y.cmp(this.z) === 0; }; Point.prototype._extDbl = function _extDbl() { // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html // #doubling-dbl-2008-hwcd // 4M + 4S // A = X1^2 var a = this.x.redSqr(); // B = Y1^2 var b = this.y.redSqr(); // C = 2 * Z1^2 var c = this.z.redSqr(); c = c.redIAdd(c); // D = a * A var d = this.curve._mulA(a); // E = (X1 + Y1)^2 - A - B var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b); // G = D + B var g = d.redAdd(b); // F = G - C var f = g.redSub(c); // H = D - B var h = d.redSub(b); // X3 = E * F var nx = e.redMul(f); // Y3 = G * H var ny = g.redMul(h); // T3 = E * H var nt = e.redMul(h); // Z3 = F * G var nz = f.redMul(g); return this.curve.point(nx, ny, nz, nt); }; Point.prototype._projDbl = function _projDbl() { // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html // #doubling-dbl-2008-bbjlp // #doubling-dbl-2007-bl // and others // Generally 3M + 4S or 2M + 4S // B = (X1 + Y1)^2 var b = this.x.redAdd(this.y).redSqr(); // C = X1^2 var c = this.x.redSqr(); // D = Y1^2 var d = this.y.redSqr(); var nx; var ny; var nz; if (this.curve.twisted) { // E = a * C var e = this.curve._mulA(c); // F = E + D var f = e.redAdd(d); if (this.zOne) { // X3 = (B - C - D) * (F - 2) nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)); // Y3 = F * (E - D) ny = f.redMul(e.redSub(d)); // Z3 = F^2 - 2 * F nz = f.redSqr().redSub(f).redSub(f); } else { // H = Z1^2 var h = this.z.redSqr(); // J = F - 2 * H var j = f.redSub(h).redISub(h); // X3 = (B-C-D)*J nx = b.redSub(c).redISub(d).redMul(j); // Y3 = F * (E - D) ny = f.redMul(e.redSub(d)); // Z3 = F * J nz = f.redMul(j); } } else { // E = C + D var e = c.redAdd(d); // H = (c * Z1)^2 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr(); // J = E - 2 * H var j = e.redSub(h).redSub(h); // X3 = c * (B - E) * J nx = this.curve._mulC(b.redISub(e)).redMul(j); // Y3 = c * E * (C - D) ny = this.curve._mulC(e).redMul(c.redISub(d)); // Z3 = E * J nz = e.redMul(j); } return this.curve.point(nx, ny, nz); }; Point.prototype.dbl = function dbl() { if (this.isInfinity()) return this; // Double in extended coordinates if (this.curve.extended) return this._extDbl(); else return this._projDbl(); }; Point.prototype._extAdd = function _extAdd(p) { // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html // #addition-add-2008-hwcd-3 // 8M // A = (Y1 - X1) * (Y2 - X2) var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)); // B = (Y1 + X1) * (Y2 + X2) var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)); // C = T1 * k * T2 var c = this.t.redMul(this.curve.dd).redMul(p.t); // D = Z1 * 2 * Z2 var d = this.z.redMul(p.z.redAdd(p.z)); // E = B - A var e = b.redSub(a); // F = D - C var f = d.redSub(c); // G = D + C var g = d.redAdd(c); // H = B + A var h = b.redAdd(a); // X3 = E * F var nx = e.redMul(f); // Y3 = G * H var ny = g.redMul(h); // T3 = E * H var nt = e.redMul(h); // Z3 = F * G var nz = f.redMul(g); return this.curve.point(nx, ny, nz, nt); }; Point.prototype._projAdd = function _projAdd(p) { // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html // #addition-add-2008-bbjlp // #addition-add-2007-bl // 10M + 1S // A = Z1 * Z2 var a = this.z.redMul(p.z); // B = A^2 var b = a.redSqr(); // C = X1 * X2 var c = this.x.redMul(p.x); // D = Y1 * Y2 var d = this.y.redMul(p.y); // E = d * C * D var e = this.curve.d.redMul(c).redMul(d); // F = B - E var f = b.redSub(e); // G = B + E var g = b.redAdd(e); // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D) var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d); var nx = a.redMul(f).redMul(tmp); var ny; var nz; if (this.curve.twisted) { // Y3 = A * G * (D - a * C) ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))); // Z3 = F * G nz = f.redMul(g); } else { // Y3 = A * G * (D - C) ny = a.redMul(g).redMul(d.redSub(c)); // Z3 = c * F * G nz = this.curve._mulC(f).redMul(g); } return this.curve.point(nx, ny, nz); }; Point.prototype.add = function add(p) { if (this.isInfinity()) return p; if (p.isInfinity()) return this; if (this.curve.extended) return this._extAdd(p); else return this._projAdd(p); }; Point.prototype.mul = function mul(k) { if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k); else return this.curve._wnafMul(this, k); }; Point.prototype.mulAdd = function mulAdd(k1, p, k2) { return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false); }; Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) { return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true); }; Point.prototype.normalize = function normalize() { if (this.zOne) return this; // Normalize coordinates var zi = this.z.redInvm(); this.x = this.x.redMul(zi); this.y = this.y.redMul(zi); if (this.t) this.t = this.t.redMul(zi); this.z = this.curve.one; this.zOne = true; return this; }; Point.prototype.neg = function neg() { return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()); }; Point.prototype.getX = function getX() { this.normalize(); return this.x.fromRed(); }; Point.prototype.getY = function getY() { this.normalize(); return this.y.fromRed(); }; Point.prototype.eq = function eq(other) { return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0; }; Point.prototype.eqXToP = function eqXToP(x) { var rx = x.toRed(this.curve.red).redMul(this.z); if (this.x.cmp(rx) === 0) return true; var xc = x.clone(); var t = this.curve.redN.redMul(this.z); for (;;) { xc.iadd(this.curve.n); if (xc.cmp(this.curve.p) >= 0) return false; rx.redIAdd(t); if (this.x.cmp(rx) === 0) return true; } return false; }; // Compatibility with BaseCurve Point.prototype.toP = Point.prototype.normalize; Point.prototype.mixedAdd = Point.prototype.add; },{"../../elliptic":74,"../curve":77,"bn.js":25,"inherits":108}],77:[function(require,module,exports){ 'use strict'; var curve = exports; curve.base = require('./base'); curve.short = require('./short'); curve.mont = require('./mont'); curve.edwards = require('./edwards'); },{"./base":75,"./edwards":76,"./mont":78,"./short":79}],78:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); var BN = require('bn.js'); var inherits = require('inherits'); var Base = curve.base; var elliptic = require('../../elliptic'); var utils = elliptic.utils; function MontCurve(conf) { Base.call(this, 'mont', conf); this.a = new BN(conf.a, 16).toRed(this.red); this.b = new BN(conf.b, 16).toRed(this.red); this.i4 = new BN(4).toRed(this.red).redInvm(); this.two = new BN(2).toRed(this.red); this.a24 = this.i4.redMul(this.a.redAdd(this.two)); } inherits(MontCurve, Base); module.exports = MontCurve; MontCurve.prototype.validate = function validate(point) { var x = point.normalize().x; var x2 = x.redSqr(); var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x); var y = rhs.redSqrt(); return y.redSqr().cmp(rhs) === 0; }; function Point(curve, x, z) { Base.BasePoint.call(this, curve, 'projective'); if (x === null && z === null) { this.x = this.curve.one; this.z = this.curve.zero; } else { this.x = new BN(x, 16); this.z = new BN(z, 16); if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); } } inherits(Point, Base.BasePoint); MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { return this.point(utils.toArray(bytes, enc), 1); }; MontCurve.prototype.point = function point(x, z) { return new Point(this, x, z); }; MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { return Point.fromJSON(this, obj); }; Point.prototype.precompute = function precompute() { // No-op }; Point.prototype._encode = function _encode() { return this.getX().toArray('be', this.curve.p.byteLength()); }; Point.fromJSON = function fromJSON(curve, obj) { return new Point(curve, obj[0], obj[1] || curve.one); }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ''; return ''; }; Point.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.z.cmpn(0) === 0; }; Point.prototype.dbl = function dbl() { // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3 // 2M + 2S + 4A // A = X1 + Z1 var a = this.x.redAdd(this.z); // AA = A^2 var aa = a.redSqr(); // B = X1 - Z1 var b = this.x.redSub(this.z); // BB = B^2 var bb = b.redSqr(); // C = AA - BB var c = aa.redSub(bb); // X3 = AA * BB var nx = aa.redMul(bb); // Z3 = C * (BB + A24 * C) var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c))); return this.curve.point(nx, nz); }; Point.prototype.add = function add() { throw new Error('Not supported on Montgomery curve'); }; Point.prototype.diffAdd = function diffAdd(p, diff) { // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3 // 4M + 2S + 6A // A = X2 + Z2 var a = this.x.redAdd(this.z); // B = X2 - Z2 var b = this.x.redSub(this.z); // C = X3 + Z3 var c = p.x.redAdd(p.z); // D = X3 - Z3 var d = p.x.redSub(p.z); // DA = D * A var da = d.redMul(a); // CB = C * B var cb = c.redMul(b); // X5 = Z1 * (DA + CB)^2 var nx = diff.z.redMul(da.redAdd(cb).redSqr()); // Z5 = X1 * (DA - CB)^2 var nz = diff.x.redMul(da.redISub(cb).redSqr()); return this.curve.point(nx, nz); }; Point.prototype.mul = function mul(k) { var t = k.clone(); var a = this; // (N / 2) * Q + Q var b = this.curve.point(null, null); // (N / 2) * Q var c = this; // Q for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) bits.push(t.andln(1)); for (var i = bits.length - 1; i >= 0; i--) { if (bits[i] === 0) { // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q a = a.diffAdd(b, c); // N * Q = 2 * ((N / 2) * Q + Q)) b = b.dbl(); } else { // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q) b = a.diffAdd(b, c); // N * Q + Q = 2 * ((N / 2) * Q + Q) a = a.dbl(); } } return b; }; Point.prototype.mulAdd = function mulAdd() { throw new Error('Not supported on Montgomery curve'); }; Point.prototype.jumlAdd = function jumlAdd() { throw new Error('Not supported on Montgomery curve'); }; Point.prototype.eq = function eq(other) { return this.getX().cmp(other.getX()) === 0; }; Point.prototype.normalize = function normalize() { this.x = this.x.redMul(this.z.redInvm()); this.z = this.curve.one; return this; }; Point.prototype.getX = function getX() { // Normalize coordinates this.normalize(); return this.x.fromRed(); }; },{"../../elliptic":74,"../curve":77,"bn.js":25,"inherits":108}],79:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); var elliptic = require('../../elliptic'); var BN = require('bn.js'); var inherits = require('inherits'); var Base = curve.base; var assert = elliptic.utils.assert; function ShortCurve(conf) { Base.call(this, 'short', conf); this.a = new BN(conf.a, 16).toRed(this.red); this.b = new BN(conf.b, 16).toRed(this.red); this.tinv = this.two.redInvm(); this.zeroA = this.a.fromRed().cmpn(0) === 0; this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; // If the curve is endomorphic, precalculate beta and lambda this.endo = this._getEndomorphism(conf); this._endoWnafT1 = new Array(4); this._endoWnafT2 = new Array(4); } inherits(ShortCurve, Base); module.exports = ShortCurve; ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { // No efficient endomorphism if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return; // Compute beta and lambda, that lambda * P = (beta * Px; Py) var beta; var lambda; if (conf.beta) { beta = new BN(conf.beta, 16).toRed(this.red); } else { var betas = this._getEndoRoots(this.p); // Choose the smallest beta beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; beta = beta.toRed(this.red); } if (conf.lambda) { lambda = new BN(conf.lambda, 16); } else { // Choose the lambda that is matching selected beta var lambdas = this._getEndoRoots(this.n); if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { lambda = lambdas[0]; } else { lambda = lambdas[1]; assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); } } // Get basis vectors, used for balanced length-two representation var basis; if (conf.basis) { basis = conf.basis.map(function(vec) { return { a: new BN(vec.a, 16), b: new BN(vec.b, 16) }; }); } else { basis = this._getEndoBasis(lambda); } return { beta: beta, lambda: lambda, basis: basis }; }; ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { // Find roots of for x^2 + x + 1 in F // Root = (-1 +- Sqrt(-3)) / 2 // var red = num === this.p ? this.red : BN.mont(num); var tinv = new BN(2).toRed(red).redInvm(); var ntinv = tinv.redNeg(); var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv); var l1 = ntinv.redAdd(s).fromRed(); var l2 = ntinv.redSub(s).fromRed(); return [ l1, l2 ]; }; ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { // aprxSqrt >= sqrt(this.n) var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); // 3.74 // Run EGCD, until r(L + 1) < aprxSqrt var u = lambda; var v = this.n.clone(); var x1 = new BN(1); var y1 = new BN(0); var x2 = new BN(0); var y2 = new BN(1); // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n) var a0; var b0; // First vector var a1; var b1; // Second vector var a2; var b2; var prevR; var i = 0; var r; var x; while (u.cmpn(0) !== 0) { var q = v.div(u); r = v.sub(q.mul(u)); x = x2.sub(q.mul(x1)); var y = y2.sub(q.mul(y1)); if (!a1 && r.cmp(aprxSqrt) < 0) { a0 = prevR.neg(); b0 = x1; a1 = r.neg(); b1 = x; } else if (a1 && ++i === 2) { break; } prevR = r; v = u; u = r; x2 = x1; x1 = x; y2 = y1; y1 = y; } a2 = r.neg(); b2 = x; var len1 = a1.sqr().add(b1.sqr()); var len2 = a2.sqr().add(b2.sqr()); if (len2.cmp(len1) >= 0) { a2 = a0; b2 = b0; } // Normalize signs if (a1.negative) { a1 = a1.neg(); b1 = b1.neg(); } if (a2.negative) { a2 = a2.neg(); b2 = b2.neg(); } return [ { a: a1, b: b1 }, { a: a2, b: b2 } ]; }; ShortCurve.prototype._endoSplit = function _endoSplit(k) { var basis = this.endo.basis; var v1 = basis[0]; var v2 = basis[1]; var c1 = v2.b.mul(k).divRound(this.n); var c2 = v1.b.neg().mul(k).divRound(this.n); var p1 = c1.mul(v1.a); var p2 = c2.mul(v2.a); var q1 = c1.mul(v1.b); var q2 = c2.mul(v2.b); // Calculate answer var k1 = k.sub(p1).sub(p2); var k2 = q1.add(q2).neg(); return { k1: k1, k2: k2 }; }; ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { x = new BN(x, 16); if (!x.red) x = x.toRed(this.red); var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b); var y = y2.redSqrt(); if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point'); // XXX Is there any way to tell if the number is odd without converting it // to non-red form? var isOdd = y.fromRed().isOdd(); if (odd && !isOdd || !odd && isOdd) y = y.redNeg(); return this.point(x, y); }; ShortCurve.prototype.validate = function validate(point) { if (point.inf) return true; var x = point.x; var y = point.y; var ax = this.a.redMul(x); var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b); return y.redSqr().redISub(rhs).cmpn(0) === 0; }; ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) { var npoints = this._endoWnafT1; var ncoeffs = this._endoWnafT2; for (var i = 0; i < points.length; i++) { var split = this._endoSplit(coeffs[i]); var p = points[i]; var beta = p._getBeta(); if (split.k1.negative) { split.k1.ineg(); p = p.neg(true); } if (split.k2.negative) { split.k2.ineg(); beta = beta.neg(true); } npoints[i * 2] = p; npoints[i * 2 + 1] = beta; ncoeffs[i * 2] = split.k1; ncoeffs[i * 2 + 1] = split.k2; } var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); // Clean-up references to points and coefficients for (var j = 0; j < i * 2; j++) { npoints[j] = null; ncoeffs[j] = null; } return res; }; function Point(curve, x, y, isRed) { Base.BasePoint.call(this, curve, 'affine'); if (x === null && y === null) { this.x = null; this.y = null; this.inf = true; } else { this.x = new BN(x, 16); this.y = new BN(y, 16); // Force redgomery representation when loading from JSON if (isRed) { this.x.forceRed(this.curve.red); this.y.forceRed(this.curve.red); } if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); this.inf = false; } } inherits(Point, Base.BasePoint); ShortCurve.prototype.point = function point(x, y, isRed) { return new Point(this, x, y, isRed); }; ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { return Point.fromJSON(this, obj, red); }; Point.prototype._getBeta = function _getBeta() { if (!this.curve.endo) return; var pre = this.precomputed; if (pre && pre.beta) return pre.beta; var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); if (pre) { var curve = this.curve; var endoMul = function(p) { return curve.point(p.x.redMul(curve.endo.beta), p.y); }; pre.beta = beta; beta.precomputed = { beta: null, naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(endoMul) }, doubles: pre.doubles && { step: pre.doubles.step, points: pre.doubles.points.map(endoMul) } }; } return beta; }; Point.prototype.toJSON = function toJSON() { if (!this.precomputed) return [ this.x, this.y ]; return [ this.x, this.y, this.precomputed && { doubles: this.precomputed.doubles && { step: this.precomputed.doubles.step, points: this.precomputed.doubles.points.slice(1) }, naf: this.precomputed.naf && { wnd: this.precomputed.naf.wnd, points: this.precomputed.naf.points.slice(1) } } ]; }; Point.fromJSON = function fromJSON(curve, obj, red) { if (typeof obj === 'string') obj = JSON.parse(obj); var res = curve.point(obj[0], obj[1], red); if (!obj[2]) return res; function obj2point(obj) { return curve.point(obj[0], obj[1], red); } var pre = obj[2]; res.precomputed = { beta: null, doubles: pre.doubles && { step: pre.doubles.step, points: [ res ].concat(pre.doubles.points.map(obj2point)) }, naf: pre.naf && { wnd: pre.naf.wnd, points: [ res ].concat(pre.naf.points.map(obj2point)) } }; return res; }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ''; return ''; }; Point.prototype.isInfinity = function isInfinity() { return this.inf; }; Point.prototype.add = function add(p) { // O + P = P if (this.inf) return p; // P + O = P if (p.inf) return this; // P + P = 2P if (this.eq(p)) return this.dbl(); // P + (-P) = O if (this.neg().eq(p)) return this.curve.point(null, null); // P + Q = O if (this.x.cmp(p.x) === 0) return this.curve.point(null, null); var c = this.y.redSub(p.y); if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm()); var nx = c.redSqr().redISub(this.x).redISub(p.x); var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); return this.curve.point(nx, ny); }; Point.prototype.dbl = function dbl() { if (this.inf) return this; // 2P = O var ys1 = this.y.redAdd(this.y); if (ys1.cmpn(0) === 0) return this.curve.point(null, null); var a = this.curve.a; var x2 = this.x.redSqr(); var dyinv = ys1.redInvm(); var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv); var nx = c.redSqr().redISub(this.x.redAdd(this.x)); var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); return this.curve.point(nx, ny); }; Point.prototype.getX = function getX() { return this.x.fromRed(); }; Point.prototype.getY = function getY() { return this.y.fromRed(); }; Point.prototype.mul = function mul(k) { k = new BN(k, 16); if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k); else if (this.curve.endo) return this.curve._endoWnafMulAdd([ this ], [ k ]); else return this.curve._wnafMul(this, k); }; Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { var points = [ this, p2 ]; var coeffs = [ k1, k2 ]; if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs); else return this.curve._wnafMulAdd(1, points, coeffs, 2); }; Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { var points = [ this, p2 ]; var coeffs = [ k1, k2 ]; if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true); else return this.curve._wnafMulAdd(1, points, coeffs, 2, true); }; Point.prototype.eq = function eq(p) { return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0); }; Point.prototype.neg = function neg(_precompute) { if (this.inf) return this; var res = this.curve.point(this.x, this.y.redNeg()); if (_precompute && this.precomputed) { var pre = this.precomputed; var negate = function(p) { return p.neg(); }; res.precomputed = { naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(negate) }, doubles: pre.doubles && { step: pre.doubles.step, points: pre.doubles.points.map(negate) } }; } return res; }; Point.prototype.toJ = function toJ() { if (this.inf) return this.curve.jpoint(null, null, null); var res = this.curve.jpoint(this.x, this.y, this.curve.one); return res; }; function JPoint(curve, x, y, z) { Base.BasePoint.call(this, curve, 'jacobian'); if (x === null && y === null && z === null) { this.x = this.curve.one; this.y = this.curve.one; this.z = new BN(0); } else { this.x = new BN(x, 16); this.y = new BN(y, 16); this.z = new BN(z, 16); } if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); this.zOne = this.z === this.curve.one; } inherits(JPoint, Base.BasePoint); ShortCurve.prototype.jpoint = function jpoint(x, y, z) { return new JPoint(this, x, y, z); }; JPoint.prototype.toP = function toP() { if (this.isInfinity()) return this.curve.point(null, null); var zinv = this.z.redInvm(); var zinv2 = zinv.redSqr(); var ax = this.x.redMul(zinv2); var ay = this.y.redMul(zinv2).redMul(zinv); return this.curve.point(ax, ay); }; JPoint.prototype.neg = function neg() { return this.curve.jpoint(this.x, this.y.redNeg(), this.z); }; JPoint.prototype.add = function add(p) { // O + P = P if (this.isInfinity()) return p; // P + O = P if (p.isInfinity()) return this; // 12M + 4S + 7A var pz2 = p.z.redSqr(); var z2 = this.z.redSqr(); var u1 = this.x.redMul(pz2); var u2 = p.x.redMul(z2); var s1 = this.y.redMul(pz2.redMul(p.z)); var s2 = p.y.redMul(z2.redMul(this.z)); var h = u1.redSub(u2); var r = s1.redSub(s2); if (h.cmpn(0) === 0) { if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null); else return this.dbl(); } var h2 = h.redSqr(); var h3 = h2.redMul(h); var v = u1.redMul(h2); var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); var nz = this.z.redMul(p.z).redMul(h); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.mixedAdd = function mixedAdd(p) { // O + P = P if (this.isInfinity()) return p.toJ(); // P + O = P if (p.isInfinity()) return this; // 8M + 3S + 7A var z2 = this.z.redSqr(); var u1 = this.x; var u2 = p.x.redMul(z2); var s1 = this.y; var s2 = p.y.redMul(z2).redMul(this.z); var h = u1.redSub(u2); var r = s1.redSub(s2); if (h.cmpn(0) === 0) { if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null); else return this.dbl(); } var h2 = h.redSqr(); var h3 = h2.redMul(h); var v = u1.redMul(h2); var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); var nz = this.z.redMul(h); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.dblp = function dblp(pow) { if (pow === 0) return this; if (this.isInfinity()) return this; if (!pow) return this.dbl(); if (this.curve.zeroA || this.curve.threeA) { var r = this; for (var i = 0; i < pow; i++) r = r.dbl(); return r; } // 1M + 2S + 1A + N * (4S + 5M + 8A) // N = 1 => 6M + 6S + 9A var a = this.curve.a; var tinv = this.curve.tinv; var jx = this.x; var jy = this.y; var jz = this.z; var jz4 = jz.redSqr().redSqr(); // Reuse results var jyd = jy.redAdd(jy); for (var i = 0; i < pow; i++) { var jx2 = jx.redSqr(); var jyd2 = jyd.redSqr(); var jyd4 = jyd2.redSqr(); var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); var t1 = jx.redMul(jyd2); var nx = c.redSqr().redISub(t1.redAdd(t1)); var t2 = t1.redISub(nx); var dny = c.redMul(t2); dny = dny.redIAdd(dny).redISub(jyd4); var nz = jyd.redMul(jz); if (i + 1 < pow) jz4 = jz4.redMul(jyd4); jx = nx; jz = nz; jyd = dny; } return this.curve.jpoint(jx, jyd.redMul(tinv), jz); }; JPoint.prototype.dbl = function dbl() { if (this.isInfinity()) return this; if (this.curve.zeroA) return this._zeroDbl(); else if (this.curve.threeA) return this._threeDbl(); else return this._dbl(); }; JPoint.prototype._zeroDbl = function _zeroDbl() { var nx; var ny; var nz; // Z = 1 if (this.zOne) { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html // #doubling-mdbl-2007-bl // 1M + 5S + 14A // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY) var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); s = s.redIAdd(s); // M = 3 * XX + a; a = 0 var m = xx.redAdd(xx).redIAdd(xx); // T = M ^ 2 - 2*S var t = m.redSqr().redISub(s).redISub(s); // 8 * YYYY var yyyy8 = yyyy.redIAdd(yyyy); yyyy8 = yyyy8.redIAdd(yyyy8); yyyy8 = yyyy8.redIAdd(yyyy8); // X3 = T nx = t; // Y3 = M * (S - T) - 8 * YYYY ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2*Y1 nz = this.y.redAdd(this.y); } else { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html // #doubling-dbl-2009-l // 2M + 5S + 13A // A = X1^2 var a = this.x.redSqr(); // B = Y1^2 var b = this.y.redSqr(); // C = B^2 var c = b.redSqr(); // D = 2 * ((X1 + B)^2 - A - C) var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c); d = d.redIAdd(d); // E = 3 * A var e = a.redAdd(a).redIAdd(a); // F = E^2 var f = e.redSqr(); // 8 * C var c8 = c.redIAdd(c); c8 = c8.redIAdd(c8); c8 = c8.redIAdd(c8); // X3 = F - 2 * D nx = f.redISub(d).redISub(d); // Y3 = E * (D - X3) - 8 * C ny = e.redMul(d.redISub(nx)).redISub(c8); // Z3 = 2 * Y1 * Z1 nz = this.y.redMul(this.z); nz = nz.redIAdd(nz); } return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype._threeDbl = function _threeDbl() { var nx; var ny; var nz; // Z = 1 if (this.zOne) { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html // #doubling-mdbl-2007-bl // 1M + 5S + 15A // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY) var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); s = s.redIAdd(s); // M = 3 * XX + a var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); // T = M^2 - 2 * S var t = m.redSqr().redISub(s).redISub(s); // X3 = T nx = t; // Y3 = M * (S - T) - 8 * YYYY var yyyy8 = yyyy.redIAdd(yyyy); yyyy8 = yyyy8.redIAdd(yyyy8); yyyy8 = yyyy8.redIAdd(yyyy8); ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2 * Y1 nz = this.y.redAdd(this.y); } else { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b // 3M + 5S // delta = Z1^2 var delta = this.z.redSqr(); // gamma = Y1^2 var gamma = this.y.redSqr(); // beta = X1 * gamma var beta = this.x.redMul(gamma); // alpha = 3 * (X1 - delta) * (X1 + delta) var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); alpha = alpha.redAdd(alpha).redIAdd(alpha); // X3 = alpha^2 - 8 * beta var beta4 = beta.redIAdd(beta); beta4 = beta4.redIAdd(beta4); var beta8 = beta4.redAdd(beta4); nx = alpha.redSqr().redISub(beta8); // Z3 = (Y1 + Z1)^2 - gamma - delta nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2 var ggamma8 = gamma.redSqr(); ggamma8 = ggamma8.redIAdd(ggamma8); ggamma8 = ggamma8.redIAdd(ggamma8); ggamma8 = ggamma8.redIAdd(ggamma8); ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); } return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype._dbl = function _dbl() { var a = this.curve.a; // 4M + 6S + 10A var jx = this.x; var jy = this.y; var jz = this.z; var jz4 = jz.redSqr().redSqr(); var jx2 = jx.redSqr(); var jy2 = jy.redSqr(); var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); var jxd4 = jx.redAdd(jx); jxd4 = jxd4.redIAdd(jxd4); var t1 = jxd4.redMul(jy2); var nx = c.redSqr().redISub(t1.redAdd(t1)); var t2 = t1.redISub(nx); var jyd8 = jy2.redSqr(); jyd8 = jyd8.redIAdd(jyd8); jyd8 = jyd8.redIAdd(jyd8); jyd8 = jyd8.redIAdd(jyd8); var ny = c.redMul(t2).redISub(jyd8); var nz = jy.redAdd(jy).redMul(jz); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.trpl = function trpl() { if (!this.curve.zeroA) return this.dbl().add(this); // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl // 5M + 10S + ... // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // ZZ = Z1^2 var zz = this.z.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // M = 3 * XX + a * ZZ2; a = 0 var m = xx.redAdd(xx).redIAdd(xx); // MM = M^2 var mm = m.redSqr(); // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); e = e.redIAdd(e); e = e.redAdd(e).redIAdd(e); e = e.redISub(mm); // EE = E^2 var ee = e.redSqr(); // T = 16*YYYY var t = yyyy.redIAdd(yyyy); t = t.redIAdd(t); t = t.redIAdd(t); t = t.redIAdd(t); // U = (M + E)^2 - MM - EE - T var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); // X3 = 4 * (X1 * EE - 4 * YY * U) var yyu4 = yy.redMul(u); yyu4 = yyu4.redIAdd(yyu4); yyu4 = yyu4.redIAdd(yyu4); var nx = this.x.redMul(ee).redISub(yyu4); nx = nx.redIAdd(nx); nx = nx.redIAdd(nx); // Y3 = 8 * Y1 * (U * (T - U) - E * EE) var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))); ny = ny.redIAdd(ny); ny = ny.redIAdd(ny); ny = ny.redIAdd(ny); // Z3 = (Z1 + E)^2 - ZZ - EE var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.mul = function mul(k, kbase) { k = new BN(k, kbase); return this.curve._wnafMul(this, k); }; JPoint.prototype.eq = function eq(p) { if (p.type === 'affine') return this.eq(p.toJ()); if (this === p) return true; // x1 * z2^2 == x2 * z1^2 var z2 = this.z.redSqr(); var pz2 = p.z.redSqr(); if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false; // y1 * z2^3 == y2 * z1^3 var z3 = z2.redMul(this.z); var pz3 = pz2.redMul(p.z); return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0; }; JPoint.prototype.eqXToP = function eqXToP(x) { var zs = this.z.redSqr(); var rx = x.toRed(this.curve.red).redMul(zs); if (this.x.cmp(rx) === 0) return true; var xc = x.clone(); var t = this.curve.redN.redMul(zs); for (;;) { xc.iadd(this.curve.n); if (xc.cmp(this.curve.p) >= 0) return false; rx.redIAdd(t); if (this.x.cmp(rx) === 0) return true; } return false; }; JPoint.prototype.inspect = function inspect() { if (this.isInfinity()) return ''; return ''; }; JPoint.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.z.cmpn(0) === 0; }; },{"../../elliptic":74,"../curve":77,"bn.js":25,"inherits":108}],80:[function(require,module,exports){ 'use strict'; var curves = exports; var hash = require('hash.js'); var elliptic = require('../elliptic'); var assert = elliptic.utils.assert; function PresetCurve(options) { if (options.type === 'short') this.curve = new elliptic.curve.short(options); else if (options.type === 'edwards') this.curve = new elliptic.curve.edwards(options); else this.curve = new elliptic.curve.mont(options); this.g = this.curve.g; this.n = this.curve.n; this.hash = options.hash; assert(this.g.validate(), 'Invalid curve'); assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O'); } curves.PresetCurve = PresetCurve; function defineCurve(name, options) { Object.defineProperty(curves, name, { configurable: true, enumerable: true, get: function() { var curve = new PresetCurve(options); Object.defineProperty(curves, name, { configurable: true, enumerable: true, value: curve }); return curve; } }); } defineCurve('p192', { type: 'short', prime: 'p192', p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', hash: hash.sha256, gRed: false, g: [ '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811' ] }); defineCurve('p224', { type: 'short', prime: 'p224', p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', hash: hash.sha256, gRed: false, g: [ 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34' ] }); defineCurve('p256', { type: 'short', prime: null, p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', hash: hash.sha256, gRed: false, g: [ '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5' ] }); defineCurve('p384', { type: 'short', prime: null, p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 ffffffff', a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 fffffffc', b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', hash: hash.sha384, gRed: false, g: [ 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + '5502f25d bf55296c 3a545e38 72760ab7', '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f' ] }); defineCurve('p521', { type: 'short', prime: null, p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff', a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff fffffffc', b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', hash: hash.sha512, gRed: false, g: [ '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + '3fad0761 353c7086 a272c240 88be9476 9fd16650' ] }); defineCurve('curve25519', { type: 'mont', prime: 'p25519', p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', a: '76d06', b: '1', n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', hash: hash.sha256, gRed: false, g: [ '9' ] }); defineCurve('ed25519', { type: 'edwards', prime: 'p25519', p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', a: '-1', c: '1', // -121665 * (121666^(-1)) (mod P) d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', hash: hash.sha256, gRed: false, g: [ '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', // 4/5 '6666666666666666666666666666666666666666666666666666666666666658' ] }); var pre; try { pre = require('./precomputed/secp256k1'); } catch (e) { pre = undefined; } defineCurve('secp256k1', { type: 'short', prime: 'k256', p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', a: '0', b: '7', n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', h: '1', hash: hash.sha256, // Precomputed endomorphism beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', basis: [ { a: '3086d221a7d46bcde86c90e49284eb15', b: '-e4437ed6010e88286f547fa90abfe4c3' }, { a: '114ca50f7a8e2f3f657c1108d9d44cfd8', b: '3086d221a7d46bcde86c90e49284eb15' } ], gRed: false, g: [ '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', pre ] }); },{"../elliptic":74,"./precomputed/secp256k1":87,"hash.js":93}],81:[function(require,module,exports){ 'use strict'; var BN = require('bn.js'); var HmacDRBG = require('hmac-drbg'); var elliptic = require('../../elliptic'); var utils = elliptic.utils; var assert = utils.assert; var KeyPair = require('./key'); var Signature = require('./signature'); function EC(options) { if (!(this instanceof EC)) return new EC(options); // Shortcut `elliptic.ec(curve-name)` if (typeof options === 'string') { assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options); options = elliptic.curves[options]; } // Shortcut for `elliptic.ec(elliptic.curves.curveName)` if (options instanceof elliptic.curves.PresetCurve) options = { curve: options }; this.curve = options.curve.curve; this.n = this.curve.n; this.nh = this.n.ushrn(1); this.g = this.curve.g; // Point on curve this.g = options.curve.g; this.g.precompute(options.curve.n.bitLength() + 1); // Hash for function for DRBG this.hash = options.hash || options.curve.hash; } module.exports = EC; EC.prototype.keyPair = function keyPair(options) { return new KeyPair(this, options); }; EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { return KeyPair.fromPrivate(this, priv, enc); }; EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { return KeyPair.fromPublic(this, pub, enc); }; EC.prototype.genKeyPair = function genKeyPair(options) { if (!options) options = {}; // Instantiate Hmac_DRBG var drbg = new HmacDRBG({ hash: this.hash, pers: options.pers, persEnc: options.persEnc || 'utf8', entropy: options.entropy || elliptic.rand(this.hash.hmacStrength), entropyEnc: options.entropy && options.entropyEnc || 'utf8', nonce: this.n.toArray() }); var bytes = this.n.byteLength(); var ns2 = this.n.sub(new BN(2)); do { var priv = new BN(drbg.generate(bytes)); if (priv.cmp(ns2) > 0) continue; priv.iaddn(1); return this.keyFromPrivate(priv); } while (true); }; EC.prototype._truncateToN = function truncateToN(msg, truncOnly) { var delta = msg.byteLength() * 8 - this.n.bitLength(); if (delta > 0) msg = msg.ushrn(delta); if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n); else return msg; }; EC.prototype.sign = function sign(msg, key, enc, options) { if (typeof enc === 'object') { options = enc; enc = null; } if (!options) options = {}; key = this.keyFromPrivate(key, enc); msg = this._truncateToN(new BN(msg, 16)); // Zero-extend key to provide enough entropy var bytes = this.n.byteLength(); var bkey = key.getPrivate().toArray('be', bytes); // Zero-extend nonce to have the same byte size as N var nonce = msg.toArray('be', bytes); // Instantiate Hmac_DRBG var drbg = new HmacDRBG({ hash: this.hash, entropy: bkey, nonce: nonce, pers: options.pers, persEnc: options.persEnc || 'utf8' }); // Number of bytes to generate var ns1 = this.n.sub(new BN(1)); for (var iter = 0; true; iter++) { var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength())); k = this._truncateToN(k, true); if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue; var kp = this.g.mul(k); if (kp.isInfinity()) continue; var kpX = kp.getX(); var r = kpX.umod(this.n); if (r.cmpn(0) === 0) continue; var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)); s = s.umod(this.n); if (s.cmpn(0) === 0) continue; var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0); // Use complement of `s`, if it is > `n / 2` if (options.canonical && s.cmp(this.nh) > 0) { s = this.n.sub(s); recoveryParam ^= 1; } return new Signature({ r: r, s: s, recoveryParam: recoveryParam }); } }; EC.prototype.verify = function verify(msg, signature, key, enc) { msg = this._truncateToN(new BN(msg, 16)); key = this.keyFromPublic(key, enc); signature = new Signature(signature, 'hex'); // Perform primitive values validation var r = signature.r; var s = signature.s; if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false; if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false; // Validate signature var sinv = s.invm(this.n); var u1 = sinv.mul(msg).umod(this.n); var u2 = sinv.mul(r).umod(this.n); if (!this.curve._maxwellTrick) { var p = this.g.mulAdd(u1, key.getPublic(), u2); if (p.isInfinity()) return false; return p.getX().umod(this.n).cmp(r) === 0; } // NOTE: Greg Maxwell's trick, inspired by: // https://git.io/vad3K var p = this.g.jmulAdd(u1, key.getPublic(), u2); if (p.isInfinity()) return false; // Compare `p.x` of Jacobian point with `r`, // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the // inverse of `p.z^2` return p.eqXToP(r); }; EC.prototype.recoverPubKey = function(msg, signature, j, enc) { assert((3 & j) === j, 'The recovery param is more than two bits'); signature = new Signature(signature, enc); var n = this.n; var e = new BN(msg); var r = signature.r; var s = signature.s; // A set LSB signifies that the y-coordinate is odd var isYOdd = j & 1; var isSecondKey = j >> 1; if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) throw new Error('Unable to find sencond key candinate'); // 1.1. Let x = r + jn. if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd); else r = this.curve.pointFromX(r, isYOdd); var rInv = signature.r.invm(n); var s1 = n.sub(e).mul(rInv).umod(n); var s2 = s.mul(rInv).umod(n); // 1.6.1 Compute Q = r^-1 (sR - eG) // Q = r^-1 (sR + -eG) return this.g.mulAdd(s1, r, s2); }; EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) { signature = new Signature(signature, enc); if (signature.recoveryParam !== null) return signature.recoveryParam; for (var i = 0; i < 4; i++) { var Qprime; try { Qprime = this.recoverPubKey(e, signature, i); } catch (e) { continue; } if (Qprime.eq(Q)) return i; } throw new Error('Unable to find valid recovery factor'); }; },{"../../elliptic":74,"./key":82,"./signature":83,"bn.js":25,"hmac-drbg":105}],82:[function(require,module,exports){ 'use strict'; var BN = require('bn.js'); var elliptic = require('../../elliptic'); var utils = elliptic.utils; var assert = utils.assert; function KeyPair(ec, options) { this.ec = ec; this.priv = null; this.pub = null; // KeyPair(ec, { priv: ..., pub: ... }) if (options.priv) this._importPrivate(options.priv, options.privEnc); if (options.pub) this._importPublic(options.pub, options.pubEnc); } module.exports = KeyPair; KeyPair.fromPublic = function fromPublic(ec, pub, enc) { if (pub instanceof KeyPair) return pub; return new KeyPair(ec, { pub: pub, pubEnc: enc }); }; KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { if (priv instanceof KeyPair) return priv; return new KeyPair(ec, { priv: priv, privEnc: enc }); }; KeyPair.prototype.validate = function validate() { var pub = this.getPublic(); if (pub.isInfinity()) return { result: false, reason: 'Invalid public key' }; if (!pub.validate()) return { result: false, reason: 'Public key is not a point' }; if (!pub.mul(this.ec.curve.n).isInfinity()) return { result: false, reason: 'Public key * N != O' }; return { result: true, reason: null }; }; KeyPair.prototype.getPublic = function getPublic(compact, enc) { // compact is optional argument if (typeof compact === 'string') { enc = compact; compact = null; } if (!this.pub) this.pub = this.ec.g.mul(this.priv); if (!enc) return this.pub; return this.pub.encode(enc, compact); }; KeyPair.prototype.getPrivate = function getPrivate(enc) { if (enc === 'hex') return this.priv.toString(16, 2); else return this.priv; }; KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { this.priv = new BN(key, enc || 16); // Ensure that the priv won't be bigger than n, otherwise we may fail // in fixed multiplication method this.priv = this.priv.umod(this.ec.curve.n); }; KeyPair.prototype._importPublic = function _importPublic(key, enc) { if (key.x || key.y) { // Montgomery points only have an `x` coordinate. // Weierstrass/Edwards points on the other hand have both `x` and // `y` coordinates. if (this.ec.curve.type === 'mont') { assert(key.x, 'Need x coordinate'); } else if (this.ec.curve.type === 'short' || this.ec.curve.type === 'edwards') { assert(key.x && key.y, 'Need both x and y coordinate'); } this.pub = this.ec.curve.point(key.x, key.y); return; } this.pub = this.ec.curve.decodePoint(key, enc); }; // ECDH KeyPair.prototype.derive = function derive(pub) { return pub.mul(this.priv).getX(); }; // ECDSA KeyPair.prototype.sign = function sign(msg, enc, options) { return this.ec.sign(msg, this, enc, options); }; KeyPair.prototype.verify = function verify(msg, signature) { return this.ec.verify(msg, signature, this); }; KeyPair.prototype.inspect = function inspect() { return ''; }; },{"../../elliptic":74,"bn.js":25}],83:[function(require,module,exports){ 'use strict'; var BN = require('bn.js'); var elliptic = require('../../elliptic'); var utils = elliptic.utils; var assert = utils.assert; function Signature(options, enc) { if (options instanceof Signature) return options; if (this._importDER(options, enc)) return; assert(options.r && options.s, 'Signature without r or s'); this.r = new BN(options.r, 16); this.s = new BN(options.s, 16); if (options.recoveryParam === undefined) this.recoveryParam = null; else this.recoveryParam = options.recoveryParam; } module.exports = Signature; function Position() { this.place = 0; } function getLength(buf, p) { var initial = buf[p.place++]; if (!(initial & 0x80)) { return initial; } var octetLen = initial & 0xf; var val = 0; for (var i = 0, off = p.place; i < octetLen; i++, off++) { val <<= 8; val |= buf[off]; } p.place = off; return val; } function rmPadding(buf) { var i = 0; var len = buf.length - 1; while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) { i++; } if (i === 0) { return buf; } return buf.slice(i); } Signature.prototype._importDER = function _importDER(data, enc) { data = utils.toArray(data, enc); var p = new Position(); if (data[p.place++] !== 0x30) { return false; } var len = getLength(data, p); if ((len + p.place) !== data.length) { return false; } if (data[p.place++] !== 0x02) { return false; } var rlen = getLength(data, p); var r = data.slice(p.place, rlen + p.place); p.place += rlen; if (data[p.place++] !== 0x02) { return false; } var slen = getLength(data, p); if (data.length !== slen + p.place) { return false; } var s = data.slice(p.place, slen + p.place); if (r[0] === 0 && (r[1] & 0x80)) { r = r.slice(1); } if (s[0] === 0 && (s[1] & 0x80)) { s = s.slice(1); } this.r = new BN(r); this.s = new BN(s); this.recoveryParam = null; return true; }; function constructLength(arr, len) { if (len < 0x80) { arr.push(len); return; } var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); arr.push(octets | 0x80); while (--octets) { arr.push((len >>> (octets << 3)) & 0xff); } arr.push(len); } Signature.prototype.toDER = function toDER(enc) { var r = this.r.toArray(); var s = this.s.toArray(); // Pad values if (r[0] & 0x80) r = [ 0 ].concat(r); // Pad values if (s[0] & 0x80) s = [ 0 ].concat(s); r = rmPadding(r); s = rmPadding(s); while (!s[0] && !(s[1] & 0x80)) { s = s.slice(1); } var arr = [ 0x02 ]; constructLength(arr, r.length); arr = arr.concat(r); arr.push(0x02); constructLength(arr, s.length); var backHalf = arr.concat(s); var res = [ 0x30 ]; constructLength(res, backHalf.length); res = res.concat(backHalf); return utils.encode(res, enc); }; },{"../../elliptic":74,"bn.js":25}],84:[function(require,module,exports){ 'use strict'; var hash = require('hash.js'); var elliptic = require('../../elliptic'); var utils = elliptic.utils; var assert = utils.assert; var parseBytes = utils.parseBytes; var KeyPair = require('./key'); var Signature = require('./signature'); function EDDSA(curve) { assert(curve === 'ed25519', 'only tested with ed25519 so far'); if (!(this instanceof EDDSA)) return new EDDSA(curve); var curve = elliptic.curves[curve].curve; this.curve = curve; this.g = curve.g; this.g.precompute(curve.n.bitLength() + 1); this.pointClass = curve.point().constructor; this.encodingLength = Math.ceil(curve.n.bitLength() / 8); this.hash = hash.sha512; } module.exports = EDDSA; /** * @param {Array|String} message - message bytes * @param {Array|String|KeyPair} secret - secret bytes or a keypair * @returns {Signature} - signature */ EDDSA.prototype.sign = function sign(message, secret) { message = parseBytes(message); var key = this.keyFromSecret(secret); var r = this.hashInt(key.messagePrefix(), message); var R = this.g.mul(r); var Rencoded = this.encodePoint(R); var s_ = this.hashInt(Rencoded, key.pubBytes(), message) .mul(key.priv()); var S = r.add(s_).umod(this.curve.n); return this.makeSignature({ R: R, S: S, Rencoded: Rencoded }); }; /** * @param {Array} message - message bytes * @param {Array|String|Signature} sig - sig bytes * @param {Array|String|Point|KeyPair} pub - public key * @returns {Boolean} - true if public key matches sig of message */ EDDSA.prototype.verify = function verify(message, sig, pub) { message = parseBytes(message); sig = this.makeSignature(sig); var key = this.keyFromPublic(pub); var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message); var SG = this.g.mul(sig.S()); var RplusAh = sig.R().add(key.pub().mul(h)); return RplusAh.eq(SG); }; EDDSA.prototype.hashInt = function hashInt() { var hash = this.hash(); for (var i = 0; i < arguments.length; i++) hash.update(arguments[i]); return utils.intFromLE(hash.digest()).umod(this.curve.n); }; EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { return KeyPair.fromPublic(this, pub); }; EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { return KeyPair.fromSecret(this, secret); }; EDDSA.prototype.makeSignature = function makeSignature(sig) { if (sig instanceof Signature) return sig; return new Signature(this, sig); }; /** * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2 * * EDDSA defines methods for encoding and decoding points and integers. These are * helper convenience methods, that pass along to utility functions implied * parameters. * */ EDDSA.prototype.encodePoint = function encodePoint(point) { var enc = point.getY().toArray('le', this.encodingLength); enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0; return enc; }; EDDSA.prototype.decodePoint = function decodePoint(bytes) { bytes = utils.parseBytes(bytes); var lastIx = bytes.length - 1; var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80); var xIsOdd = (bytes[lastIx] & 0x80) !== 0; var y = utils.intFromLE(normed); return this.curve.pointFromY(y, xIsOdd); }; EDDSA.prototype.encodeInt = function encodeInt(num) { return num.toArray('le', this.encodingLength); }; EDDSA.prototype.decodeInt = function decodeInt(bytes) { return utils.intFromLE(bytes); }; EDDSA.prototype.isPoint = function isPoint(val) { return val instanceof this.pointClass; }; },{"../../elliptic":74,"./key":85,"./signature":86,"hash.js":93}],85:[function(require,module,exports){ 'use strict'; var elliptic = require('../../elliptic'); var utils = elliptic.utils; var assert = utils.assert; var parseBytes = utils.parseBytes; var cachedProperty = utils.cachedProperty; /** * @param {EDDSA} eddsa - instance * @param {Object} params - public/private key parameters * * @param {Array} [params.secret] - secret seed bytes * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms) * @param {Array} [params.pub] - public key point encoded as bytes * */ function KeyPair(eddsa, params) { this.eddsa = eddsa; this._secret = parseBytes(params.secret); if (eddsa.isPoint(params.pub)) this._pub = params.pub; else this._pubBytes = parseBytes(params.pub); } KeyPair.fromPublic = function fromPublic(eddsa, pub) { if (pub instanceof KeyPair) return pub; return new KeyPair(eddsa, { pub: pub }); }; KeyPair.fromSecret = function fromSecret(eddsa, secret) { if (secret instanceof KeyPair) return secret; return new KeyPair(eddsa, { secret: secret }); }; KeyPair.prototype.secret = function secret() { return this._secret; }; cachedProperty(KeyPair, 'pubBytes', function pubBytes() { return this.eddsa.encodePoint(this.pub()); }); cachedProperty(KeyPair, 'pub', function pub() { if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes); return this.eddsa.g.mul(this.priv()); }); cachedProperty(KeyPair, 'privBytes', function privBytes() { var eddsa = this.eddsa; var hash = this.hash(); var lastIx = eddsa.encodingLength - 1; var a = hash.slice(0, eddsa.encodingLength); a[0] &= 248; a[lastIx] &= 127; a[lastIx] |= 64; return a; }); cachedProperty(KeyPair, 'priv', function priv() { return this.eddsa.decodeInt(this.privBytes()); }); cachedProperty(KeyPair, 'hash', function hash() { return this.eddsa.hash().update(this.secret()).digest(); }); cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() { return this.hash().slice(this.eddsa.encodingLength); }); KeyPair.prototype.sign = function sign(message) { assert(this._secret, 'KeyPair can only verify'); return this.eddsa.sign(message, this); }; KeyPair.prototype.verify = function verify(message, sig) { return this.eddsa.verify(message, sig, this); }; KeyPair.prototype.getSecret = function getSecret(enc) { assert(this._secret, 'KeyPair is public only'); return utils.encode(this.secret(), enc); }; KeyPair.prototype.getPublic = function getPublic(enc) { return utils.encode(this.pubBytes(), enc); }; module.exports = KeyPair; },{"../../elliptic":74}],86:[function(require,module,exports){ 'use strict'; var BN = require('bn.js'); var elliptic = require('../../elliptic'); var utils = elliptic.utils; var assert = utils.assert; var cachedProperty = utils.cachedProperty; var parseBytes = utils.parseBytes; /** * @param {EDDSA} eddsa - eddsa instance * @param {Array|Object} sig - * @param {Array|Point} [sig.R] - R point as Point or bytes * @param {Array|bn} [sig.S] - S scalar as bn or bytes * @param {Array} [sig.Rencoded] - R point encoded * @param {Array} [sig.Sencoded] - S scalar encoded */ function Signature(eddsa, sig) { this.eddsa = eddsa; if (typeof sig !== 'object') sig = parseBytes(sig); if (Array.isArray(sig)) { sig = { R: sig.slice(0, eddsa.encodingLength), S: sig.slice(eddsa.encodingLength) }; } assert(sig.R && sig.S, 'Signature without R or S'); if (eddsa.isPoint(sig.R)) this._R = sig.R; if (sig.S instanceof BN) this._S = sig.S; this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded; this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded; } cachedProperty(Signature, 'S', function S() { return this.eddsa.decodeInt(this.Sencoded()); }); cachedProperty(Signature, 'R', function R() { return this.eddsa.decodePoint(this.Rencoded()); }); cachedProperty(Signature, 'Rencoded', function Rencoded() { return this.eddsa.encodePoint(this.R()); }); cachedProperty(Signature, 'Sencoded', function Sencoded() { return this.eddsa.encodeInt(this.S()); }); Signature.prototype.toBytes = function toBytes() { return this.Rencoded().concat(this.Sencoded()); }; Signature.prototype.toHex = function toHex() { return utils.encode(this.toBytes(), 'hex').toUpperCase(); }; module.exports = Signature; },{"../../elliptic":74,"bn.js":25}],87:[function(require,module,exports){ module.exports = { doubles: { step: 4, points: [ [ 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821' ], [ '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf' ], [ '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695' ], [ '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9' ], [ '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36' ], [ '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f' ], [ 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999' ], [ '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09' ], [ 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d' ], [ 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088' ], [ 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d' ], [ '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8' ], [ '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a' ], [ '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453' ], [ '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160' ], [ '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0' ], [ '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6' ], [ '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589' ], [ '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17' ], [ 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda' ], [ 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd' ], [ '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2' ], [ '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6' ], [ 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f' ], [ '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01' ], [ 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3' ], [ 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f' ], [ 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7' ], [ 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78' ], [ 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1' ], [ '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150' ], [ '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82' ], [ 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc' ], [ '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b' ], [ 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51' ], [ 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45' ], [ 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120' ], [ '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84' ], [ '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d' ], [ '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d' ], [ '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8' ], [ 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8' ], [ '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac' ], [ '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f' ], [ '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962' ], [ 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907' ], [ '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec' ], [ 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d' ], [ 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414' ], [ '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd' ], [ '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0' ], [ 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811' ], [ 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1' ], [ 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c' ], [ '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73' ], [ '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd' ], [ 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405' ], [ '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589' ], [ '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e' ], [ '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27' ], [ 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1' ], [ '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482' ], [ '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945' ], [ 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573' ], [ 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82' ] ] }, naf: { wnd: 7, points: [ [ 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672' ], [ '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6' ], [ '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da' ], [ 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37' ], [ '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b' ], [ 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81' ], [ 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58' ], [ 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77' ], [ '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a' ], [ '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c' ], [ '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67' ], [ '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402' ], [ 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55' ], [ 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482' ], [ '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82' ], [ '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396' ], [ '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49' ], [ '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf' ], [ '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a' ], [ '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7' ], [ 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933' ], [ '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a' ], [ '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6' ], [ 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37' ], [ '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e' ], [ 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6' ], [ 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476' ], [ '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40' ], [ '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61' ], [ '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683' ], [ 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5' ], [ '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b' ], [ 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417' ], [ '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868' ], [ '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a' ], [ 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6' ], [ '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996' ], [ '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e' ], [ 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d' ], [ '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2' ], [ '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e' ], [ '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437' ], [ '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311' ], [ 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4' ], [ '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575' ], [ '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d' ], [ '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d' ], [ 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629' ], [ 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06' ], [ '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374' ], [ '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee' ], [ 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1' ], [ 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b' ], [ '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661' ], [ '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6' ], [ 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e' ], [ '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d' ], [ 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc' ], [ '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4' ], [ '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c' ], [ 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b' ], [ 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913' ], [ '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154' ], [ '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865' ], [ '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc' ], [ '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224' ], [ '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e' ], [ '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6' ], [ '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511' ], [ '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b' ], [ 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2' ], [ '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c' ], [ 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3' ], [ 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d' ], [ 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700' ], [ 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4' ], [ '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196' ], [ '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4' ], [ '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257' ], [ 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13' ], [ 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096' ], [ 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38' ], [ 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f' ], [ '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448' ], [ 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a' ], [ 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4' ], [ '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437' ], [ '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7' ], [ 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d' ], [ 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a' ], [ 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54' ], [ '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77' ], [ 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517' ], [ '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10' ], [ 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125' ], [ 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e' ], [ '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1' ], [ 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2' ], [ 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423' ], [ 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8' ], [ '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758' ], [ '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375' ], [ 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d' ], [ '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec' ], [ '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0' ], [ '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c' ], [ 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4' ], [ '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f' ], [ '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649' ], [ '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826' ], [ '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5' ], [ 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87' ], [ '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b' ], [ 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc' ], [ '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c' ], [ 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f' ], [ 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a' ], [ 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46' ], [ '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f' ], [ '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03' ], [ '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08' ], [ '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8' ], [ '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373' ], [ '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3' ], [ '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8' ], [ '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1' ], [ '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9' ] ] } }; },{}],88:[function(require,module,exports){ 'use strict'; var utils = exports; var BN = require('bn.js'); var minAssert = require('minimalistic-assert'); var minUtils = require('minimalistic-crypto-utils'); utils.assert = minAssert; utils.toArray = minUtils.toArray; utils.zero2 = minUtils.zero2; utils.toHex = minUtils.toHex; utils.encode = minUtils.encode; // Represent num in a w-NAF form function getNAF(num, w) { var naf = []; var ws = 1 << (w + 1); var k = num.clone(); while (k.cmpn(1) >= 0) { var z; if (k.isOdd()) { var mod = k.andln(ws - 1); if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod; else z = mod; k.isubn(z); } else { z = 0; } naf.push(z); // Optimization, shift by word if possible var shift = (k.cmpn(0) !== 0 && k.andln(ws - 1) === 0) ? (w + 1) : 1; for (var i = 1; i < shift; i++) naf.push(0); k.iushrn(shift); } return naf; } utils.getNAF = getNAF; // Represent k1, k2 in a Joint Sparse Form function getJSF(k1, k2) { var jsf = [ [], [] ]; k1 = k1.clone(); k2 = k2.clone(); var d1 = 0; var d2 = 0; while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { // First phase var m14 = (k1.andln(3) + d1) & 3; var m24 = (k2.andln(3) + d2) & 3; if (m14 === 3) m14 = -1; if (m24 === 3) m24 = -1; var u1; if ((m14 & 1) === 0) { u1 = 0; } else { var m8 = (k1.andln(7) + d1) & 7; if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14; else u1 = m14; } jsf[0].push(u1); var u2; if ((m24 & 1) === 0) { u2 = 0; } else { var m8 = (k2.andln(7) + d2) & 7; if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24; else u2 = m24; } jsf[1].push(u2); // Second phase if (2 * d1 === u1 + 1) d1 = 1 - d1; if (2 * d2 === u2 + 1) d2 = 1 - d2; k1.iushrn(1); k2.iushrn(1); } return jsf; } utils.getJSF = getJSF; function cachedProperty(obj, name, computer) { var key = '_' + name; obj.prototype[name] = function cachedProperty() { return this[key] !== undefined ? this[key] : this[key] = computer.call(this); }; } utils.cachedProperty = cachedProperty; function parseBytes(bytes) { return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes; } utils.parseBytes = parseBytes; function intFromLE(bytes) { return new BN(bytes, 'hex', 'le'); } utils.intFromLE = intFromLE; },{"bn.js":25,"minimalistic-assert":112,"minimalistic-crypto-utils":113}],89:[function(require,module,exports){ module.exports={ "_from": "elliptic@^6.0.0", "_id": "elliptic@6.4.0", "_inBundle": false, "_integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "_location": "/browserify/elliptic", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, "raw": "elliptic@^6.0.0", "name": "elliptic", "escapedName": "elliptic", "rawSpec": "^6.0.0", "saveSpec": null, "fetchSpec": "^6.0.0" }, "_requiredBy": [ "/browserify/browserify-sign", "/browserify/create-ecdh" ], "_resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "_shasum": "cac9af8762c85836187003c8dfe193e5e2eae5df", "_spec": "elliptic@^6.0.0", "_where": "/usr/local/lib/node_modules/browserify/node_modules/browserify-sign", "author": { "name": "Fedor Indutny", "email": "fedor@indutny.com" }, "bugs": { "url": "https://github.com/indutny/elliptic/issues" }, "bundleDependencies": false, "dependencies": { "bn.js": "^4.4.0", "brorand": "^1.0.1", "hash.js": "^1.0.0", "hmac-drbg": "^1.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0" }, "deprecated": false, "description": "EC cryptography", "devDependencies": { "brfs": "^1.4.3", "coveralls": "^2.11.3", "grunt": "^0.4.5", "grunt-browserify": "^5.0.0", "grunt-cli": "^1.2.0", "grunt-contrib-connect": "^1.0.0", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-uglify": "^1.0.1", "grunt-mocha-istanbul": "^3.0.1", "grunt-saucelabs": "^8.6.2", "istanbul": "^0.4.2", "jscs": "^2.9.0", "jshint": "^2.6.0", "mocha": "^2.1.0" }, "files": [ "lib" ], "homepage": "https://github.com/indutny/elliptic", "keywords": [ "EC", "Elliptic", "curve", "Cryptography" ], "license": "MIT", "main": "lib/elliptic.js", "name": "elliptic", "repository": { "type": "git", "url": "git+ssh://git@github.com/indutny/elliptic.git" }, "scripts": { "jscs": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", "jshint": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", "lint": "npm run jscs && npm run jshint", "test": "npm run lint && npm run unit", "unit": "istanbul test _mocha --reporter=spec test/index.js", "version": "grunt dist && git add dist/" }, "version": "6.4.0" } },{}],90:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. function EventEmitter() { this._events = this._events || {}; this._maxListeners = this._maxListeners || undefined; } module.exports = EventEmitter; // Backwards-compat with node 0.10.x EventEmitter.EventEmitter = EventEmitter; EventEmitter.prototype._events = undefined; EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are // added to it. This is a useful default which helps finding memory leaks. EventEmitter.defaultMaxListeners = 10; // Obviously not all Emitters should be limited to 10. This function allows // that to be increased. Set to zero for unlimited. EventEmitter.prototype.setMaxListeners = function(n) { if (!isNumber(n) || n < 0 || isNaN(n)) throw TypeError('n must be a positive number'); this._maxListeners = n; return this; }; EventEmitter.prototype.emit = function(type) { var er, handler, len, args, i, listeners; if (!this._events) this._events = {}; // If there is no 'error' event listener then throw. if (type === 'error') { if (!this._events.error || (isObject(this._events.error) && !this._events.error.length)) { er = arguments[1]; if (er instanceof Error) { throw er; // Unhandled 'error' event } else { // At least give some kind of context to the user var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); err.context = er; throw err; } } } handler = this._events[type]; if (isUndefined(handler)) return false; if (isFunction(handler)) { switch (arguments.length) { // fast cases case 1: handler.call(this); break; case 2: handler.call(this, arguments[1]); break; case 3: handler.call(this, arguments[1], arguments[2]); break; // slower default: args = Array.prototype.slice.call(arguments, 1); handler.apply(this, args); } } else if (isObject(handler)) { args = Array.prototype.slice.call(arguments, 1); listeners = handler.slice(); len = listeners.length; for (i = 0; i < len; i++) listeners[i].apply(this, args); } return true; }; EventEmitter.prototype.addListener = function(type, listener) { var m; if (!isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events) this._events = {}; // To avoid recursion in the case that type === "newListener"! Before // adding it to the listeners, first emit "newListener". if (this._events.newListener) this.emit('newListener', type, isFunction(listener.listener) ? listener.listener : listener); if (!this._events[type]) // Optimize the case of one listener. Don't need the extra array object. this._events[type] = listener; else if (isObject(this._events[type])) // If we've already got an array, just append. this._events[type].push(listener); else // Adding the second element, need to change to array. this._events[type] = [this._events[type], listener]; // Check for listener leak if (isObject(this._events[type]) && !this._events[type].warned) { if (!isUndefined(this._maxListeners)) { m = this._maxListeners; } else { m = EventEmitter.defaultMaxListeners; } if (m && m > 0 && this._events[type].length > m) { this._events[type].warned = true; console.error('(node) warning: possible EventEmitter memory ' + 'leak detected. %d listeners added. ' + 'Use emitter.setMaxListeners() to increase limit.', this._events[type].length); if (typeof console.trace === 'function') { // not supported in IE 10 console.trace(); } } } return this; }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.once = function(type, listener) { if (!isFunction(listener)) throw TypeError('listener must be a function'); var fired = false; function g() { this.removeListener(type, g); if (!fired) { fired = true; listener.apply(this, arguments); } } g.listener = listener; this.on(type, g); return this; }; // emits a 'removeListener' event iff the listener was removed EventEmitter.prototype.removeListener = function(type, listener) { var list, position, length, i; if (!isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events || !this._events[type]) return this; list = this._events[type]; length = list.length; position = -1; if (list === listener || (isFunction(list.listener) && list.listener === listener)) { delete this._events[type]; if (this._events.removeListener) this.emit('removeListener', type, listener); } else if (isObject(list)) { for (i = length; i-- > 0;) { if (list[i] === listener || (list[i].listener && list[i].listener === listener)) { position = i; break; } } if (position < 0) return this; if (list.length === 1) { list.length = 0; delete this._events[type]; } else { list.splice(position, 1); } if (this._events.removeListener) this.emit('removeListener', type, listener); } return this; }; EventEmitter.prototype.removeAllListeners = function(type) { var key, listeners; if (!this._events) return this; // not listening for removeListener, no need to emit if (!this._events.removeListener) { if (arguments.length === 0) this._events = {}; else if (this._events[type]) delete this._events[type]; return this; } // emit removeListener for all listeners on all events if (arguments.length === 0) { for (key in this._events) { if (key === 'removeListener') continue; this.removeAllListeners(key); } this.removeAllListeners('removeListener'); this._events = {}; return this; } listeners = this._events[type]; if (isFunction(listeners)) { this.removeListener(type, listeners); } else if (listeners) { // LIFO order while (listeners.length) this.removeListener(type, listeners[listeners.length - 1]); } delete this._events[type]; return this; }; EventEmitter.prototype.listeners = function(type) { var ret; if (!this._events || !this._events[type]) ret = []; else if (isFunction(this._events[type])) ret = [this._events[type]]; else ret = this._events[type].slice(); return ret; }; EventEmitter.prototype.listenerCount = function(type) { if (this._events) { var evlistener = this._events[type]; if (isFunction(evlistener)) return 1; else if (evlistener) return evlistener.length; } return 0; }; EventEmitter.listenerCount = function(emitter, type) { return emitter.listenerCount(type); }; function isFunction(arg) { return typeof arg === 'function'; } function isNumber(arg) { return typeof arg === 'number'; } function isObject(arg) { return typeof arg === 'object' && arg !== null; } function isUndefined(arg) { return arg === void 0; } },{}],91:[function(require,module,exports){ (function (Buffer){ var md5 = require('create-hash/md5') module.exports = EVP_BytesToKey function EVP_BytesToKey (password, salt, keyLen, ivLen) { if (!Buffer.isBuffer(password)) { password = new Buffer(password, 'binary') } if (salt && !Buffer.isBuffer(salt)) { salt = new Buffer(salt, 'binary') } keyLen = keyLen / 8 ivLen = ivLen || 0 var ki = 0 var ii = 0 var key = new Buffer(keyLen) var iv = new Buffer(ivLen) var addmd = 0 var md_buf var i var bufs = [] while (true) { if (addmd++ > 0) { bufs.push(md_buf) } bufs.push(password) if (salt) { bufs.push(salt) } md_buf = md5(Buffer.concat(bufs)) bufs = [] i = 0 if (keyLen > 0) { while (true) { if (keyLen === 0) { break } if (i === md_buf.length) { break } key[ki++] = md_buf[i] keyLen-- i++ } } if (ivLen > 0 && i !== md_buf.length) { while (true) { if (ivLen === 0) { break } if (i === md_buf.length) { break } iv[ii++] = md_buf[i] ivLen-- i++ } } if (keyLen === 0 && ivLen === 0) { break } } for (i = 0; i < md_buf.length; i++) { md_buf[i] = 0 } return { key: key, iv: iv } } }).call(this,require("buffer").Buffer) },{"buffer":54,"create-hash/md5":60}],92:[function(require,module,exports){ (function (Buffer){ 'use strict' var Transform = require('stream').Transform var inherits = require('inherits') function HashBase (blockSize) { Transform.call(this) this._block = new Buffer(blockSize) this._blockSize = blockSize this._blockOffset = 0 this._length = [0, 0, 0, 0] this._finalized = false } inherits(HashBase, Transform) HashBase.prototype._transform = function (chunk, encoding, callback) { var error = null try { if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding) this.update(chunk) } catch (err) { error = err } callback(error) } HashBase.prototype._flush = function (callback) { var error = null try { this.push(this._digest()) } catch (err) { error = err } callback(error) } HashBase.prototype.update = function (data, encoding) { if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer') if (this._finalized) throw new Error('Digest already called') if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary') // consume data var block = this._block var offset = 0 while (this._blockOffset + data.length - offset >= this._blockSize) { for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++] this._update() this._blockOffset = 0 } while (offset < data.length) block[this._blockOffset++] = data[offset++] // update length for (var j = 0, carry = data.length * 8; carry > 0; ++j) { this._length[j] += carry carry = (this._length[j] / 0x0100000000) | 0 if (carry > 0) this._length[j] -= 0x0100000000 * carry } return this } HashBase.prototype._update = function (data) { throw new Error('_update is not implemented') } HashBase.prototype.digest = function (encoding) { if (this._finalized) throw new Error('Digest already called') this._finalized = true var digest = this._digest() if (encoding !== undefined) digest = digest.toString(encoding) return digest } HashBase.prototype._digest = function () { throw new Error('_digest is not implemented') } module.exports = HashBase }).call(this,require("buffer").Buffer) },{"buffer":54,"inherits":108,"stream":157}],93:[function(require,module,exports){ var hash = exports; hash.utils = require('./hash/utils'); hash.common = require('./hash/common'); hash.sha = require('./hash/sha'); hash.ripemd = require('./hash/ripemd'); hash.hmac = require('./hash/hmac'); // Proxy hash functions to the main object hash.sha1 = hash.sha.sha1; hash.sha256 = hash.sha.sha256; hash.sha224 = hash.sha.sha224; hash.sha384 = hash.sha.sha384; hash.sha512 = hash.sha.sha512; hash.ripemd160 = hash.ripemd.ripemd160; },{"./hash/common":94,"./hash/hmac":95,"./hash/ripemd":96,"./hash/sha":97,"./hash/utils":104}],94:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); var assert = require('minimalistic-assert'); function BlockHash() { this.pending = null; this.pendingTotal = 0; this.blockSize = this.constructor.blockSize; this.outSize = this.constructor.outSize; this.hmacStrength = this.constructor.hmacStrength; this.padLength = this.constructor.padLength / 8; this.endian = 'big'; this._delta8 = this.blockSize / 8; this._delta32 = this.blockSize / 32; } exports.BlockHash = BlockHash; BlockHash.prototype.update = function update(msg, enc) { // Convert message to array, pad it, and join into 32bit blocks msg = utils.toArray(msg, enc); if (!this.pending) this.pending = msg; else this.pending = this.pending.concat(msg); this.pendingTotal += msg.length; // Enough data, try updating if (this.pending.length >= this._delta8) { msg = this.pending; // Process pending data in blocks var r = msg.length % this._delta8; this.pending = msg.slice(msg.length - r, msg.length); if (this.pending.length === 0) this.pending = null; msg = utils.join32(msg, 0, msg.length - r, this.endian); for (var i = 0; i < msg.length; i += this._delta32) this._update(msg, i, i + this._delta32); } return this; }; BlockHash.prototype.digest = function digest(enc) { this.update(this._pad()); assert(this.pending === null); return this._digest(enc); }; BlockHash.prototype._pad = function pad() { var len = this.pendingTotal; var bytes = this._delta8; var k = bytes - ((len + this.padLength) % bytes); var res = new Array(k + this.padLength); res[0] = 0x80; for (var i = 1; i < k; i++) res[i] = 0; // Append length len <<= 3; if (this.endian === 'big') { for (var t = 8; t < this.padLength; t++) res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = (len >>> 24) & 0xff; res[i++] = (len >>> 16) & 0xff; res[i++] = (len >>> 8) & 0xff; res[i++] = len & 0xff; } else { res[i++] = len & 0xff; res[i++] = (len >>> 8) & 0xff; res[i++] = (len >>> 16) & 0xff; res[i++] = (len >>> 24) & 0xff; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; for (t = 8; t < this.padLength; t++) res[i++] = 0; } return res; }; },{"./utils":104,"minimalistic-assert":112}],95:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); var assert = require('minimalistic-assert'); function Hmac(hash, key, enc) { if (!(this instanceof Hmac)) return new Hmac(hash, key, enc); this.Hash = hash; this.blockSize = hash.blockSize / 8; this.outSize = hash.outSize / 8; this.inner = null; this.outer = null; this._init(utils.toArray(key, enc)); } module.exports = Hmac; Hmac.prototype._init = function init(key) { // Shorten key, if needed if (key.length > this.blockSize) key = new this.Hash().update(key).digest(); assert(key.length <= this.blockSize); // Add padding to key for (var i = key.length; i < this.blockSize; i++) key.push(0); for (i = 0; i < key.length; i++) key[i] ^= 0x36; this.inner = new this.Hash().update(key); // 0x36 ^ 0x5c = 0x6a for (i = 0; i < key.length; i++) key[i] ^= 0x6a; this.outer = new this.Hash().update(key); }; Hmac.prototype.update = function update(msg, enc) { this.inner.update(msg, enc); return this; }; Hmac.prototype.digest = function digest(enc) { this.outer.update(this.inner.digest()); return this.outer.digest(enc); }; },{"./utils":104,"minimalistic-assert":112}],96:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); var common = require('./common'); var rotl32 = utils.rotl32; var sum32 = utils.sum32; var sum32_3 = utils.sum32_3; var sum32_4 = utils.sum32_4; var BlockHash = common.BlockHash; function RIPEMD160() { if (!(this instanceof RIPEMD160)) return new RIPEMD160(); BlockHash.call(this); this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ]; this.endian = 'little'; } utils.inherits(RIPEMD160, BlockHash); exports.ripemd160 = RIPEMD160; RIPEMD160.blockSize = 512; RIPEMD160.outSize = 160; RIPEMD160.hmacStrength = 192; RIPEMD160.padLength = 64; RIPEMD160.prototype._update = function update(msg, start) { var A = this.h[0]; var B = this.h[1]; var C = this.h[2]; var D = this.h[3]; var E = this.h[4]; var Ah = A; var Bh = B; var Ch = C; var Dh = D; var Eh = E; for (var j = 0; j < 80; j++) { var T = sum32( rotl32( sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E); A = E; E = D; D = rotl32(C, 10); C = B; B = T; T = sum32( rotl32( sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), Eh); Ah = Eh; Eh = Dh; Dh = rotl32(Ch, 10); Ch = Bh; Bh = T; } T = sum32_3(this.h[1], C, Dh); this.h[1] = sum32_3(this.h[2], D, Eh); this.h[2] = sum32_3(this.h[3], E, Ah); this.h[3] = sum32_3(this.h[4], A, Bh); this.h[4] = sum32_3(this.h[0], B, Ch); this.h[0] = T; }; RIPEMD160.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'little'); else return utils.split32(this.h, 'little'); }; function f(j, x, y, z) { if (j <= 15) return x ^ y ^ z; else if (j <= 31) return (x & y) | ((~x) & z); else if (j <= 47) return (x | (~y)) ^ z; else if (j <= 63) return (x & z) | (y & (~z)); else return x ^ (y | (~z)); } function K(j) { if (j <= 15) return 0x00000000; else if (j <= 31) return 0x5a827999; else if (j <= 47) return 0x6ed9eba1; else if (j <= 63) return 0x8f1bbcdc; else return 0xa953fd4e; } function Kh(j) { if (j <= 15) return 0x50a28be6; else if (j <= 31) return 0x5c4dd124; else if (j <= 47) return 0x6d703ef3; else if (j <= 63) return 0x7a6d76e9; else return 0x00000000; } var r = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 ]; var rh = [ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 ]; var s = [ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]; var sh = [ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]; },{"./common":94,"./utils":104}],97:[function(require,module,exports){ 'use strict'; exports.sha1 = require('./sha/1'); exports.sha224 = require('./sha/224'); exports.sha256 = require('./sha/256'); exports.sha384 = require('./sha/384'); exports.sha512 = require('./sha/512'); },{"./sha/1":98,"./sha/224":99,"./sha/256":100,"./sha/384":101,"./sha/512":102}],98:[function(require,module,exports){ 'use strict'; var utils = require('../utils'); var common = require('../common'); var shaCommon = require('./common'); var rotl32 = utils.rotl32; var sum32 = utils.sum32; var sum32_5 = utils.sum32_5; var ft_1 = shaCommon.ft_1; var BlockHash = common.BlockHash; var sha1_K = [ 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6 ]; function SHA1() { if (!(this instanceof SHA1)) return new SHA1(); BlockHash.call(this); this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ]; this.W = new Array(80); } utils.inherits(SHA1, BlockHash); module.exports = SHA1; SHA1.blockSize = 512; SHA1.outSize = 160; SHA1.hmacStrength = 80; SHA1.padLength = 64; SHA1.prototype._update = function _update(msg, start) { var W = this.W; for (var i = 0; i < 16; i++) W[i] = msg[start + i]; for(; i < W.length; i++) W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); var a = this.h[0]; var b = this.h[1]; var c = this.h[2]; var d = this.h[3]; var e = this.h[4]; for (i = 0; i < W.length; i++) { var s = ~~(i / 20); var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]); e = d; d = c; c = rotl32(b, 30); b = a; a = t; } this.h[0] = sum32(this.h[0], a); this.h[1] = sum32(this.h[1], b); this.h[2] = sum32(this.h[2], c); this.h[3] = sum32(this.h[3], d); this.h[4] = sum32(this.h[4], e); }; SHA1.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'big'); else return utils.split32(this.h, 'big'); }; },{"../common":94,"../utils":104,"./common":103}],99:[function(require,module,exports){ 'use strict'; var utils = require('../utils'); var SHA256 = require('./256'); function SHA224() { if (!(this instanceof SHA224)) return new SHA224(); SHA256.call(this); this.h = [ 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ]; } utils.inherits(SHA224, SHA256); module.exports = SHA224; SHA224.blockSize = 512; SHA224.outSize = 224; SHA224.hmacStrength = 192; SHA224.padLength = 64; SHA224.prototype._digest = function digest(enc) { // Just truncate output if (enc === 'hex') return utils.toHex32(this.h.slice(0, 7), 'big'); else return utils.split32(this.h.slice(0, 7), 'big'); }; },{"../utils":104,"./256":100}],100:[function(require,module,exports){ 'use strict'; var utils = require('../utils'); var common = require('../common'); var shaCommon = require('./common'); var assert = require('minimalistic-assert'); var sum32 = utils.sum32; var sum32_4 = utils.sum32_4; var sum32_5 = utils.sum32_5; var ch32 = shaCommon.ch32; var maj32 = shaCommon.maj32; var s0_256 = shaCommon.s0_256; var s1_256 = shaCommon.s1_256; var g0_256 = shaCommon.g0_256; var g1_256 = shaCommon.g1_256; var BlockHash = common.BlockHash; var sha256_K = [ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 ]; function SHA256() { if (!(this instanceof SHA256)) return new SHA256(); BlockHash.call(this); this.h = [ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 ]; this.k = sha256_K; this.W = new Array(64); } utils.inherits(SHA256, BlockHash); module.exports = SHA256; SHA256.blockSize = 512; SHA256.outSize = 256; SHA256.hmacStrength = 192; SHA256.padLength = 64; SHA256.prototype._update = function _update(msg, start) { var W = this.W; for (var i = 0; i < 16; i++) W[i] = msg[start + i]; for (; i < W.length; i++) W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]); var a = this.h[0]; var b = this.h[1]; var c = this.h[2]; var d = this.h[3]; var e = this.h[4]; var f = this.h[5]; var g = this.h[6]; var h = this.h[7]; assert(this.k.length === W.length); for (i = 0; i < W.length; i++) { var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]); var T2 = sum32(s0_256(a), maj32(a, b, c)); h = g; g = f; f = e; e = sum32(d, T1); d = c; c = b; b = a; a = sum32(T1, T2); } this.h[0] = sum32(this.h[0], a); this.h[1] = sum32(this.h[1], b); this.h[2] = sum32(this.h[2], c); this.h[3] = sum32(this.h[3], d); this.h[4] = sum32(this.h[4], e); this.h[5] = sum32(this.h[5], f); this.h[6] = sum32(this.h[6], g); this.h[7] = sum32(this.h[7], h); }; SHA256.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'big'); else return utils.split32(this.h, 'big'); }; },{"../common":94,"../utils":104,"./common":103,"minimalistic-assert":112}],101:[function(require,module,exports){ 'use strict'; var utils = require('../utils'); var SHA512 = require('./512'); function SHA384() { if (!(this instanceof SHA384)) return new SHA384(); SHA512.call(this); this.h = [ 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939, 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4 ]; } utils.inherits(SHA384, SHA512); module.exports = SHA384; SHA384.blockSize = 1024; SHA384.outSize = 384; SHA384.hmacStrength = 192; SHA384.padLength = 128; SHA384.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h.slice(0, 12), 'big'); else return utils.split32(this.h.slice(0, 12), 'big'); }; },{"../utils":104,"./512":102}],102:[function(require,module,exports){ 'use strict'; var utils = require('../utils'); var common = require('../common'); var assert = require('minimalistic-assert'); var rotr64_hi = utils.rotr64_hi; var rotr64_lo = utils.rotr64_lo; var shr64_hi = utils.shr64_hi; var shr64_lo = utils.shr64_lo; var sum64 = utils.sum64; var sum64_hi = utils.sum64_hi; var sum64_lo = utils.sum64_lo; var sum64_4_hi = utils.sum64_4_hi; var sum64_4_lo = utils.sum64_4_lo; var sum64_5_hi = utils.sum64_5_hi; var sum64_5_lo = utils.sum64_5_lo; var BlockHash = common.BlockHash; var sha512_K = [ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 ]; function SHA512() { if (!(this instanceof SHA512)) return new SHA512(); BlockHash.call(this); this.h = [ 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179 ]; this.k = sha512_K; this.W = new Array(160); } utils.inherits(SHA512, BlockHash); module.exports = SHA512; SHA512.blockSize = 1024; SHA512.outSize = 512; SHA512.hmacStrength = 192; SHA512.padLength = 128; SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) { var W = this.W; // 32 x 32bit words for (var i = 0; i < 32; i++) W[i] = msg[start + i]; for (; i < W.length; i += 2) { var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2 var c0_lo = g1_512_lo(W[i - 4], W[i - 3]); var c1_hi = W[i - 14]; // i - 7 var c1_lo = W[i - 13]; var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15 var c2_lo = g0_512_lo(W[i - 30], W[i - 29]); var c3_hi = W[i - 32]; // i - 16 var c3_lo = W[i - 31]; W[i] = sum64_4_hi( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo); W[i + 1] = sum64_4_lo( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo); } }; SHA512.prototype._update = function _update(msg, start) { this._prepareBlock(msg, start); var W = this.W; var ah = this.h[0]; var al = this.h[1]; var bh = this.h[2]; var bl = this.h[3]; var ch = this.h[4]; var cl = this.h[5]; var dh = this.h[6]; var dl = this.h[7]; var eh = this.h[8]; var el = this.h[9]; var fh = this.h[10]; var fl = this.h[11]; var gh = this.h[12]; var gl = this.h[13]; var hh = this.h[14]; var hl = this.h[15]; assert(this.k.length === W.length); for (var i = 0; i < W.length; i += 2) { var c0_hi = hh; var c0_lo = hl; var c1_hi = s1_512_hi(eh, el); var c1_lo = s1_512_lo(eh, el); var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl); var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl); var c3_hi = this.k[i]; var c3_lo = this.k[i + 1]; var c4_hi = W[i]; var c4_lo = W[i + 1]; var T1_hi = sum64_5_hi( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo); var T1_lo = sum64_5_lo( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo); c0_hi = s0_512_hi(ah, al); c0_lo = s0_512_lo(ah, al); c1_hi = maj64_hi(ah, al, bh, bl, ch, cl); c1_lo = maj64_lo(ah, al, bh, bl, ch, cl); var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo); var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo); hh = gh; hl = gl; gh = fh; gl = fl; fh = eh; fl = el; eh = sum64_hi(dh, dl, T1_hi, T1_lo); el = sum64_lo(dl, dl, T1_hi, T1_lo); dh = ch; dl = cl; ch = bh; cl = bl; bh = ah; bl = al; ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo); al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo); } sum64(this.h, 0, ah, al); sum64(this.h, 2, bh, bl); sum64(this.h, 4, ch, cl); sum64(this.h, 6, dh, dl); sum64(this.h, 8, eh, el); sum64(this.h, 10, fh, fl); sum64(this.h, 12, gh, gl); sum64(this.h, 14, hh, hl); }; SHA512.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'big'); else return utils.split32(this.h, 'big'); }; function ch64_hi(xh, xl, yh, yl, zh) { var r = (xh & yh) ^ ((~xh) & zh); if (r < 0) r += 0x100000000; return r; } function ch64_lo(xh, xl, yh, yl, zh, zl) { var r = (xl & yl) ^ ((~xl) & zl); if (r < 0) r += 0x100000000; return r; } function maj64_hi(xh, xl, yh, yl, zh) { var r = (xh & yh) ^ (xh & zh) ^ (yh & zh); if (r < 0) r += 0x100000000; return r; } function maj64_lo(xh, xl, yh, yl, zh, zl) { var r = (xl & yl) ^ (xl & zl) ^ (yl & zl); if (r < 0) r += 0x100000000; return r; } function s0_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 28); var c1_hi = rotr64_hi(xl, xh, 2); // 34 var c2_hi = rotr64_hi(xl, xh, 7); // 39 var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function s0_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 28); var c1_lo = rotr64_lo(xl, xh, 2); // 34 var c2_lo = rotr64_lo(xl, xh, 7); // 39 var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function s1_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 14); var c1_hi = rotr64_hi(xh, xl, 18); var c2_hi = rotr64_hi(xl, xh, 9); // 41 var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function s1_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 14); var c1_lo = rotr64_lo(xh, xl, 18); var c2_lo = rotr64_lo(xl, xh, 9); // 41 var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function g0_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 1); var c1_hi = rotr64_hi(xh, xl, 8); var c2_hi = shr64_hi(xh, xl, 7); var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function g0_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 1); var c1_lo = rotr64_lo(xh, xl, 8); var c2_lo = shr64_lo(xh, xl, 7); var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function g1_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 19); var c1_hi = rotr64_hi(xl, xh, 29); // 61 var c2_hi = shr64_hi(xh, xl, 6); var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function g1_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 19); var c1_lo = rotr64_lo(xl, xh, 29); // 61 var c2_lo = shr64_lo(xh, xl, 6); var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } },{"../common":94,"../utils":104,"minimalistic-assert":112}],103:[function(require,module,exports){ 'use strict'; var utils = require('../utils'); var rotr32 = utils.rotr32; function ft_1(s, x, y, z) { if (s === 0) return ch32(x, y, z); if (s === 1 || s === 3) return p32(x, y, z); if (s === 2) return maj32(x, y, z); } exports.ft_1 = ft_1; function ch32(x, y, z) { return (x & y) ^ ((~x) & z); } exports.ch32 = ch32; function maj32(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); } exports.maj32 = maj32; function p32(x, y, z) { return x ^ y ^ z; } exports.p32 = p32; function s0_256(x) { return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22); } exports.s0_256 = s0_256; function s1_256(x) { return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25); } exports.s1_256 = s1_256; function g0_256(x) { return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3); } exports.g0_256 = g0_256; function g1_256(x) { return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10); } exports.g1_256 = g1_256; },{"../utils":104}],104:[function(require,module,exports){ 'use strict'; var assert = require('minimalistic-assert'); var inherits = require('inherits'); exports.inherits = inherits; function toArray(msg, enc) { if (Array.isArray(msg)) return msg.slice(); if (!msg) return []; var res = []; if (typeof msg === 'string') { if (!enc) { for (var i = 0; i < msg.length; i++) { var c = msg.charCodeAt(i); var hi = c >> 8; var lo = c & 0xff; if (hi) res.push(hi, lo); else res.push(lo); } } else if (enc === 'hex') { msg = msg.replace(/[^a-z0-9]+/ig, ''); if (msg.length % 2 !== 0) msg = '0' + msg; for (i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)); } } else { for (i = 0; i < msg.length; i++) res[i] = msg[i] | 0; } return res; } exports.toArray = toArray; function toHex(msg) { var res = ''; for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)); return res; } exports.toHex = toHex; function htonl(w) { var res = (w >>> 24) | ((w >>> 8) & 0xff00) | ((w << 8) & 0xff0000) | ((w & 0xff) << 24); return res >>> 0; } exports.htonl = htonl; function toHex32(msg, endian) { var res = ''; for (var i = 0; i < msg.length; i++) { var w = msg[i]; if (endian === 'little') w = htonl(w); res += zero8(w.toString(16)); } return res; } exports.toHex32 = toHex32; function zero2(word) { if (word.length === 1) return '0' + word; else return word; } exports.zero2 = zero2; function zero8(word) { if (word.length === 7) return '0' + word; else if (word.length === 6) return '00' + word; else if (word.length === 5) return '000' + word; else if (word.length === 4) return '0000' + word; else if (word.length === 3) return '00000' + word; else if (word.length === 2) return '000000' + word; else if (word.length === 1) return '0000000' + word; else return word; } exports.zero8 = zero8; function join32(msg, start, end, endian) { var len = end - start; assert(len % 4 === 0); var res = new Array(len / 4); for (var i = 0, k = start; i < res.length; i++, k += 4) { var w; if (endian === 'big') w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3]; else w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k]; res[i] = w >>> 0; } return res; } exports.join32 = join32; function split32(msg, endian) { var res = new Array(msg.length * 4); for (var i = 0, k = 0; i < msg.length; i++, k += 4) { var m = msg[i]; if (endian === 'big') { res[k] = m >>> 24; res[k + 1] = (m >>> 16) & 0xff; res[k + 2] = (m >>> 8) & 0xff; res[k + 3] = m & 0xff; } else { res[k + 3] = m >>> 24; res[k + 2] = (m >>> 16) & 0xff; res[k + 1] = (m >>> 8) & 0xff; res[k] = m & 0xff; } } return res; } exports.split32 = split32; function rotr32(w, b) { return (w >>> b) | (w << (32 - b)); } exports.rotr32 = rotr32; function rotl32(w, b) { return (w << b) | (w >>> (32 - b)); } exports.rotl32 = rotl32; function sum32(a, b) { return (a + b) >>> 0; } exports.sum32 = sum32; function sum32_3(a, b, c) { return (a + b + c) >>> 0; } exports.sum32_3 = sum32_3; function sum32_4(a, b, c, d) { return (a + b + c + d) >>> 0; } exports.sum32_4 = sum32_4; function sum32_5(a, b, c, d, e) { return (a + b + c + d + e) >>> 0; } exports.sum32_5 = sum32_5; function sum64(buf, pos, ah, al) { var bh = buf[pos]; var bl = buf[pos + 1]; var lo = (al + bl) >>> 0; var hi = (lo < al ? 1 : 0) + ah + bh; buf[pos] = hi >>> 0; buf[pos + 1] = lo; } exports.sum64 = sum64; function sum64_hi(ah, al, bh, bl) { var lo = (al + bl) >>> 0; var hi = (lo < al ? 1 : 0) + ah + bh; return hi >>> 0; } exports.sum64_hi = sum64_hi; function sum64_lo(ah, al, bh, bl) { var lo = al + bl; return lo >>> 0; } exports.sum64_lo = sum64_lo; function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { var carry = 0; var lo = al; lo = (lo + bl) >>> 0; carry += lo < al ? 1 : 0; lo = (lo + cl) >>> 0; carry += lo < cl ? 1 : 0; lo = (lo + dl) >>> 0; carry += lo < dl ? 1 : 0; var hi = ah + bh + ch + dh + carry; return hi >>> 0; } exports.sum64_4_hi = sum64_4_hi; function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { var lo = al + bl + cl + dl; return lo >>> 0; } exports.sum64_4_lo = sum64_4_lo; function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { var carry = 0; var lo = al; lo = (lo + bl) >>> 0; carry += lo < al ? 1 : 0; lo = (lo + cl) >>> 0; carry += lo < cl ? 1 : 0; lo = (lo + dl) >>> 0; carry += lo < dl ? 1 : 0; lo = (lo + el) >>> 0; carry += lo < el ? 1 : 0; var hi = ah + bh + ch + dh + eh + carry; return hi >>> 0; } exports.sum64_5_hi = sum64_5_hi; function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { var lo = al + bl + cl + dl + el; return lo >>> 0; } exports.sum64_5_lo = sum64_5_lo; function rotr64_hi(ah, al, num) { var r = (al << (32 - num)) | (ah >>> num); return r >>> 0; } exports.rotr64_hi = rotr64_hi; function rotr64_lo(ah, al, num) { var r = (ah << (32 - num)) | (al >>> num); return r >>> 0; } exports.rotr64_lo = rotr64_lo; function shr64_hi(ah, al, num) { return ah >>> num; } exports.shr64_hi = shr64_hi; function shr64_lo(ah, al, num) { var r = (ah << (32 - num)) | (al >>> num); return r >>> 0; } exports.shr64_lo = shr64_lo; },{"inherits":108,"minimalistic-assert":112}],105:[function(require,module,exports){ 'use strict'; var hash = require('hash.js'); var utils = require('minimalistic-crypto-utils'); var assert = require('minimalistic-assert'); function HmacDRBG(options) { if (!(this instanceof HmacDRBG)) return new HmacDRBG(options); this.hash = options.hash; this.predResist = !!options.predResist; this.outLen = this.hash.outSize; this.minEntropy = options.minEntropy || this.hash.hmacStrength; this._reseed = null; this.reseedInterval = null; this.K = null; this.V = null; var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex'); var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex'); var pers = utils.toArray(options.pers, options.persEnc || 'hex'); assert(entropy.length >= (this.minEntropy / 8), 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'); this._init(entropy, nonce, pers); } module.exports = HmacDRBG; HmacDRBG.prototype._init = function init(entropy, nonce, pers) { var seed = entropy.concat(nonce).concat(pers); this.K = new Array(this.outLen / 8); this.V = new Array(this.outLen / 8); for (var i = 0; i < this.V.length; i++) { this.K[i] = 0x00; this.V[i] = 0x01; } this._update(seed); this._reseed = 1; this.reseedInterval = 0x1000000000000; // 2^48 }; HmacDRBG.prototype._hmac = function hmac() { return new hash.hmac(this.hash, this.K); }; HmacDRBG.prototype._update = function update(seed) { var kmac = this._hmac() .update(this.V) .update([ 0x00 ]); if (seed) kmac = kmac.update(seed); this.K = kmac.digest(); this.V = this._hmac().update(this.V).digest(); if (!seed) return; this.K = this._hmac() .update(this.V) .update([ 0x01 ]) .update(seed) .digest(); this.V = this._hmac().update(this.V).digest(); }; HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) { // Optional entropy enc if (typeof entropyEnc !== 'string') { addEnc = add; add = entropyEnc; entropyEnc = null; } entropy = utils.toArray(entropy, entropyEnc); add = utils.toArray(add, addEnc); assert(entropy.length >= (this.minEntropy / 8), 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'); this._update(entropy.concat(add || [])); this._reseed = 1; }; HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { if (this._reseed > this.reseedInterval) throw new Error('Reseed is required'); // Optional encoding if (typeof enc !== 'string') { addEnc = add; add = enc; enc = null; } // Optional additional data if (add) { add = utils.toArray(add, addEnc || 'hex'); this._update(add); } var temp = []; while (temp.length < len) { this.V = this._hmac().update(this.V).digest(); temp = temp.concat(this.V); } var res = temp.slice(0, len); this._update(add); this._reseed++; return utils.encode(res, enc); }; },{"hash.js":93,"minimalistic-assert":112,"minimalistic-crypto-utils":113}],106:[function(require,module,exports){ exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m var eLen = nBytes * 8 - mLen - 1 var eMax = (1 << eLen) - 1 var eBias = eMax >> 1 var nBits = -7 var i = isLE ? (nBytes - 1) : 0 var d = isLE ? -1 : 1 var s = buffer[offset + i] i += d e = s & ((1 << (-nBits)) - 1) s >>= (-nBits) nBits += eLen for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} m = e & ((1 << (-nBits)) - 1) e >>= (-nBits) nBits += mLen for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} if (e === 0) { e = 1 - eBias } else if (e === eMax) { return m ? NaN : ((s ? -1 : 1) * Infinity) } else { m = m + Math.pow(2, mLen) e = e - eBias } return (s ? -1 : 1) * m * Math.pow(2, e - mLen) } exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { var e, m, c var eLen = nBytes * 8 - mLen - 1 var eMax = (1 << eLen) - 1 var eBias = eMax >> 1 var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) var i = isLE ? 0 : (nBytes - 1) var d = isLE ? 1 : -1 var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 value = Math.abs(value) if (isNaN(value) || value === Infinity) { m = isNaN(value) ? 1 : 0 e = eMax } else { e = Math.floor(Math.log(value) / Math.LN2) if (value * (c = Math.pow(2, -e)) < 1) { e-- c *= 2 } if (e + eBias >= 1) { value += rt / c } else { value += rt * Math.pow(2, 1 - eBias) } if (value * c >= 2) { e++ c /= 2 } if (e + eBias >= eMax) { m = 0 e = eMax } else if (e + eBias >= 1) { m = (value * c - 1) * Math.pow(2, mLen) e = e + eBias } else { m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) e = 0 } } for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} e = (e << mLen) | m eLen += mLen for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} buffer[offset + i - d] |= s * 128 } },{}],107:[function(require,module,exports){ var indexOf = [].indexOf; module.exports = function(arr, obj){ if (indexOf) return arr.indexOf(obj); for (var i = 0; i < arr.length; ++i) { if (arr[i] === obj) return i; } return -1; }; },{}],108:[function(require,module,exports){ if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writable: true, configurable: true } }); }; } else { // old school shim for old browsers module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor var TempCtor = function () {} TempCtor.prototype = superCtor.prototype ctor.prototype = new TempCtor() ctor.prototype.constructor = ctor } } },{}],109:[function(require,module,exports){ /*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh * @license MIT */ // The _isBuffer check is for Safari 5-7 support, because it's missing // Object.prototype.constructor. Remove this eventually module.exports = function (obj) { return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) } function isBuffer (obj) { return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) } // For Node v0.10 support. Remove this eventually. function isSlowBuffer (obj) { return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) } },{}],110:[function(require,module,exports){ var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == '[object Array]'; }; },{}],111:[function(require,module,exports){ var bn = require('bn.js'); var brorand = require('brorand'); function MillerRabin(rand) { this.rand = rand || new brorand.Rand(); } module.exports = MillerRabin; MillerRabin.create = function create(rand) { return new MillerRabin(rand); }; MillerRabin.prototype._rand = function _rand(n) { var len = n.bitLength(); var buf = this.rand.generate(Math.ceil(len / 8)); // Set low bits buf[0] |= 3; // Mask high bits var mask = len & 0x7; if (mask !== 0) buf[buf.length - 1] >>= 7 - mask; return new bn(buf); } MillerRabin.prototype.test = function test(n, k, cb) { var len = n.bitLength(); var red = bn.mont(n); var rone = new bn(1).toRed(red); if (!k) k = Math.max(1, (len / 48) | 0); // Find d and s, (n - 1) = (2 ^ s) * d; var n1 = n.subn(1); var n2 = n1.subn(1); for (var s = 0; !n1.testn(s); s++) {} var d = n.shrn(s); var rn1 = n1.toRed(red); var prime = true; for (; k > 0; k--) { var a = this._rand(n2); if (cb) cb(a); var x = a.toRed(red).redPow(d); if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue; for (var i = 1; i < s; i++) { x = x.redSqr(); if (x.cmp(rone) === 0) return false; if (x.cmp(rn1) === 0) break; } if (i === s) return false; } return prime; }; MillerRabin.prototype.getDivisor = function getDivisor(n, k) { var len = n.bitLength(); var red = bn.mont(n); var rone = new bn(1).toRed(red); if (!k) k = Math.max(1, (len / 48) | 0); // Find d and s, (n - 1) = (2 ^ s) * d; var n1 = n.subn(1); var n2 = n1.subn(1); for (var s = 0; !n1.testn(s); s++) {} var d = n.shrn(s); var rn1 = n1.toRed(red); for (; k > 0; k--) { var a = this._rand(n2); var g = n.gcd(a); if (g.cmpn(1) !== 0) return g; var x = a.toRed(red).redPow(d); if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue; for (var i = 1; i < s; i++) { x = x.redSqr(); if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n); if (x.cmp(rn1) === 0) break; } if (i === s) { x = x.redSqr(); return x.fromRed().subn(1).gcd(n); } } return false; }; },{"bn.js":25,"brorand":26}],112:[function(require,module,exports){ module.exports = assert; function assert(val, msg) { if (!val) throw new Error(msg || 'Assertion failed'); } assert.equal = function assertEqual(l, r, msg) { if (l != r) throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r)); }; },{}],113:[function(require,module,exports){ 'use strict'; var utils = exports; function toArray(msg, enc) { if (Array.isArray(msg)) return msg.slice(); if (!msg) return []; var res = []; if (typeof msg !== 'string') { for (var i = 0; i < msg.length; i++) res[i] = msg[i] | 0; return res; } if (enc === 'hex') { msg = msg.replace(/[^a-z0-9]+/ig, ''); if (msg.length % 2 !== 0) msg = '0' + msg; for (var i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)); } else { for (var i = 0; i < msg.length; i++) { var c = msg.charCodeAt(i); var hi = c >> 8; var lo = c & 0xff; if (hi) res.push(hi, lo); else res.push(lo); } } return res; } utils.toArray = toArray; function zero2(word) { if (word.length === 1) return '0' + word; else return word; } utils.zero2 = zero2; function toHex(msg) { var res = ''; for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)); return res; } utils.toHex = toHex; utils.encode = function encode(arr, enc) { if (enc === 'hex') return toHex(arr); else return arr; }; },{}],114:[function(require,module,exports){ module.exports={"2.16.840.1.101.3.4.1.1": "aes-128-ecb", "2.16.840.1.101.3.4.1.2": "aes-128-cbc", "2.16.840.1.101.3.4.1.3": "aes-128-ofb", "2.16.840.1.101.3.4.1.4": "aes-128-cfb", "2.16.840.1.101.3.4.1.21": "aes-192-ecb", "2.16.840.1.101.3.4.1.22": "aes-192-cbc", "2.16.840.1.101.3.4.1.23": "aes-192-ofb", "2.16.840.1.101.3.4.1.24": "aes-192-cfb", "2.16.840.1.101.3.4.1.41": "aes-256-ecb", "2.16.840.1.101.3.4.1.42": "aes-256-cbc", "2.16.840.1.101.3.4.1.43": "aes-256-ofb", "2.16.840.1.101.3.4.1.44": "aes-256-cfb" } },{}],115:[function(require,module,exports){ // from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js // Fedor, you are amazing. 'use strict' var asn1 = require('asn1.js') exports.certificate = require('./certificate') var RSAPrivateKey = asn1.define('RSAPrivateKey', function () { this.seq().obj( this.key('version').int(), this.key('modulus').int(), this.key('publicExponent').int(), this.key('privateExponent').int(), this.key('prime1').int(), this.key('prime2').int(), this.key('exponent1').int(), this.key('exponent2').int(), this.key('coefficient').int() ) }) exports.RSAPrivateKey = RSAPrivateKey var RSAPublicKey = asn1.define('RSAPublicKey', function () { this.seq().obj( this.key('modulus').int(), this.key('publicExponent').int() ) }) exports.RSAPublicKey = RSAPublicKey var PublicKey = asn1.define('SubjectPublicKeyInfo', function () { this.seq().obj( this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPublicKey').bitstr() ) }) exports.PublicKey = PublicKey var AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () { this.seq().obj( this.key('algorithm').objid(), this.key('none').null_().optional(), this.key('curve').objid().optional(), this.key('params').seq().obj( this.key('p').int(), this.key('q').int(), this.key('g').int() ).optional() ) }) var PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () { this.seq().obj( this.key('version').int(), this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPrivateKey').octstr() ) }) exports.PrivateKey = PrivateKeyInfo var EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () { this.seq().obj( this.key('algorithm').seq().obj( this.key('id').objid(), this.key('decrypt').seq().obj( this.key('kde').seq().obj( this.key('id').objid(), this.key('kdeparams').seq().obj( this.key('salt').octstr(), this.key('iters').int() ) ), this.key('cipher').seq().obj( this.key('algo').objid(), this.key('iv').octstr() ) ) ), this.key('subjectPrivateKey').octstr() ) }) exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo var DSAPrivateKey = asn1.define('DSAPrivateKey', function () { this.seq().obj( this.key('version').int(), this.key('p').int(), this.key('q').int(), this.key('g').int(), this.key('pub_key').int(), this.key('priv_key').int() ) }) exports.DSAPrivateKey = DSAPrivateKey exports.DSAparam = asn1.define('DSAparam', function () { this.int() }) var ECPrivateKey = asn1.define('ECPrivateKey', function () { this.seq().obj( this.key('version').int(), this.key('privateKey').octstr(), this.key('parameters').optional().explicit(0).use(ECParameters), this.key('publicKey').optional().explicit(1).bitstr() ) }) exports.ECPrivateKey = ECPrivateKey var ECParameters = asn1.define('ECParameters', function () { this.choice({ namedCurve: this.objid() }) }) exports.signature = asn1.define('signature', function () { this.seq().obj( this.key('r').int(), this.key('s').int() ) }) },{"./certificate":116,"asn1.js":10}],116:[function(require,module,exports){ // from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js // thanks to @Rantanen 'use strict' var asn = require('asn1.js') var Time = asn.define('Time', function () { this.choice({ utcTime: this.utctime(), generalTime: this.gentime() }) }) var AttributeTypeValue = asn.define('AttributeTypeValue', function () { this.seq().obj( this.key('type').objid(), this.key('value').any() ) }) var AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () { this.seq().obj( this.key('algorithm').objid(), this.key('parameters').optional() ) }) var SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () { this.seq().obj( this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPublicKey').bitstr() ) }) var RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () { this.setof(AttributeTypeValue) }) var RDNSequence = asn.define('RDNSequence', function () { this.seqof(RelativeDistinguishedName) }) var Name = asn.define('Name', function () { this.choice({ rdnSequence: this.use(RDNSequence) }) }) var Validity = asn.define('Validity', function () { this.seq().obj( this.key('notBefore').use(Time), this.key('notAfter').use(Time) ) }) var Extension = asn.define('Extension', function () { this.seq().obj( this.key('extnID').objid(), this.key('critical').bool().def(false), this.key('extnValue').octstr() ) }) var TBSCertificate = asn.define('TBSCertificate', function () { this.seq().obj( this.key('version').explicit(0).int(), this.key('serialNumber').int(), this.key('signature').use(AlgorithmIdentifier), this.key('issuer').use(Name), this.key('validity').use(Validity), this.key('subject').use(Name), this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo), this.key('issuerUniqueID').implicit(1).bitstr().optional(), this.key('subjectUniqueID').implicit(2).bitstr().optional(), this.key('extensions').explicit(3).seqof(Extension).optional() ) }) var X509Certificate = asn.define('X509Certificate', function () { this.seq().obj( this.key('tbsCertificate').use(TBSCertificate), this.key('signatureAlgorithm').use(AlgorithmIdentifier), this.key('signatureValue').bitstr() ) }) module.exports = X509Certificate },{"asn1.js":10}],117:[function(require,module,exports){ (function (Buffer){ // adapted from https://github.com/apatil/pemstrip var findProc = /Proc-Type: 4,ENCRYPTED\n\r?DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\n\r?\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?/m var startRegex = /^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n/m var fullRegex = /^-----BEGIN ((?:.* KEY)|CERTIFICATE)-----\n\r?([0-9A-z\n\r\+\/\=]+)\n\r?-----END \1-----$/m var evp = require('evp_bytestokey') var ciphers = require('browserify-aes') module.exports = function (okey, password) { var key = okey.toString() var match = key.match(findProc) var decrypted if (!match) { var match2 = key.match(fullRegex) decrypted = new Buffer(match2[2].replace(/\r?\n/g, ''), 'base64') } else { var suite = 'aes' + match[1] var iv = new Buffer(match[2], 'hex') var cipherText = new Buffer(match[3].replace(/\r?\n/g, ''), 'base64') var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key var out = [] var cipher = ciphers.createDecipheriv(suite, cipherKey, iv) out.push(cipher.update(cipherText)) out.push(cipher.final()) decrypted = Buffer.concat(out) } var tag = key.match(startRegex)[1] return { tag: tag, data: decrypted } } }).call(this,require("buffer").Buffer) },{"browserify-aes":30,"buffer":54,"evp_bytestokey":91}],118:[function(require,module,exports){ (function (Buffer){ var asn1 = require('./asn1') var aesid = require('./aesid.json') var fixProc = require('./fixProc') var ciphers = require('browserify-aes') var compat = require('pbkdf2') module.exports = parseKeys function parseKeys (buffer) { var password if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) { password = buffer.passphrase buffer = buffer.key } if (typeof buffer === 'string') { buffer = new Buffer(buffer) } var stripped = fixProc(buffer, password) var type = stripped.tag var data = stripped.data var subtype, ndata switch (type) { case 'CERTIFICATE': ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo // falls through case 'PUBLIC KEY': if (!ndata) { ndata = asn1.PublicKey.decode(data, 'der') } subtype = ndata.algorithm.algorithm.join('.') switch (subtype) { case '1.2.840.113549.1.1.1': return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der') case '1.2.840.10045.2.1': ndata.subjectPrivateKey = ndata.subjectPublicKey return { type: 'ec', data: ndata } case '1.2.840.10040.4.1': ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der') return { type: 'dsa', data: ndata.algorithm.params } default: throw new Error('unknown key id ' + subtype) } throw new Error('unknown key type ' + type) case 'ENCRYPTED PRIVATE KEY': data = asn1.EncryptedPrivateKey.decode(data, 'der') data = decrypt(data, password) // falls through case 'PRIVATE KEY': ndata = asn1.PrivateKey.decode(data, 'der') subtype = ndata.algorithm.algorithm.join('.') switch (subtype) { case '1.2.840.113549.1.1.1': return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der') case '1.2.840.10045.2.1': return { curve: ndata.algorithm.curve, privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey } case '1.2.840.10040.4.1': ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der') return { type: 'dsa', params: ndata.algorithm.params } default: throw new Error('unknown key id ' + subtype) } throw new Error('unknown key type ' + type) case 'RSA PUBLIC KEY': return asn1.RSAPublicKey.decode(data, 'der') case 'RSA PRIVATE KEY': return asn1.RSAPrivateKey.decode(data, 'der') case 'DSA PRIVATE KEY': return { type: 'dsa', params: asn1.DSAPrivateKey.decode(data, 'der') } case 'EC PRIVATE KEY': data = asn1.ECPrivateKey.decode(data, 'der') return { curve: data.parameters.value, privateKey: data.privateKey } default: throw new Error('unknown key type ' + type) } } parseKeys.signature = asn1.signature function decrypt (data, password) { var salt = data.algorithm.decrypt.kde.kdeparams.salt var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10) var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')] var iv = data.algorithm.decrypt.cipher.iv var cipherText = data.subjectPrivateKey var keylen = parseInt(algo.split('-')[1], 10) / 8 var key = compat.pbkdf2Sync(password, salt, iters, keylen) var cipher = ciphers.createDecipheriv(algo, key, iv) var out = [] out.push(cipher.update(cipherText)) out.push(cipher.final()) return Buffer.concat(out) } }).call(this,require("buffer").Buffer) },{"./aesid.json":114,"./asn1":115,"./fixProc":117,"browserify-aes":30,"buffer":54,"pbkdf2":120}],119:[function(require,module,exports){ (function (process){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // resolves . and .. elements in a path array with directory names there // must be no slashes, empty elements, or device names (c:\) in the array // (so also no leading and trailing slashes - it does not distinguish // relative and absolute paths) function normalizeArray(parts, allowAboveRoot) { // if the path tries to go above the root, `up` ends up > 0 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 the path is allowed to go above the root, restore leading ..s if (allowAboveRoot) { for (; up--; up) { parts.unshift('..'); } } return parts; } // Split a filename into [root, dir, basename, ext], unix version // 'root' is just a slash, or nothing. var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; var splitPath = function(filename) { return splitPathRe.exec(filename).slice(1); }; // path.resolve([from ...], to) // posix version exports.resolve = function() { var resolvedPath = '', resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = (i >= 0) ? arguments[i] : process.cwd(); // Skip empty and invalid entries if (typeof path !== 'string') { throw new TypeError('Arguments to path.resolve must be strings'); } else if (!path) { continue; } resolvedPath = path + '/' + resolvedPath; resolvedAbsolute = path.charAt(0) === '/'; } // At this point the path should be resolved to a full absolute path, but // handle relative paths to be safe (might happen when process.cwd() fails) // Normalize the path resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { return !!p; }), !resolvedAbsolute).join('/'); return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; }; // path.normalize(path) // posix version exports.normalize = function(path) { var isAbsolute = exports.isAbsolute(path), trailingSlash = substr(path, -1) === '/'; // Normalize the path path = normalizeArray(filter(path.split('/'), function(p) { return !!p; }), !isAbsolute).join('/'); if (!path && !isAbsolute) { path = '.'; } if (path && trailingSlash) { path += '/'; } return (isAbsolute ? '/' : '') + path; }; // posix version exports.isAbsolute = function(path) { return path.charAt(0) === '/'; }; // posix version exports.join = function() { var paths = Array.prototype.slice.call(arguments, 0); return exports.normalize(filter(paths, function(p, index) { if (typeof p !== 'string') { throw new TypeError('Arguments to path.join must be strings'); } return p; }).join('/')); }; // path.relative(from, to) // posix version exports.relative = function(from, to) { from = exports.resolve(from).substr(1); to = exports.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== '') break; } var end = arr.length - 1; for (; end >= 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; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push('..'); } outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join('/'); }; exports.sep = '/'; exports.delimiter = ':'; exports.dirname = function(path) { var result = splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { // No dirname whatsoever return '.'; } if (dir) { // It has a dirname, strip trailing slash dir = dir.substr(0, dir.length - 1); } return root + dir; }; exports.basename = function(path, ext) { var f = splitPath(path)[2]; // TODO: make this comparison case-insensitive on windows? if (ext && f.substr(-1 * ext.length) === ext) { f = f.substr(0, f.length - ext.length); } return f; }; exports.extname = function(path) { return splitPath(path)[3]; }; function filter (xs, f) { if (xs.filter) return xs.filter(f); var res = []; for (var i = 0; i < xs.length; i++) { if (f(xs[i], i, xs)) res.push(xs[i]); } return res; } // String.prototype.substr - negative index don't work in IE8 var substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) { return str.substr(start, len) } : function (str, start, len) { if (start < 0) start = str.length + start; return str.substr(start, len); } ; }).call(this,require('_process')) },{"_process":126}],120:[function(require,module,exports){ exports.pbkdf2 = require('./lib/async') exports.pbkdf2Sync = require('./lib/sync') },{"./lib/async":121,"./lib/sync":124}],121:[function(require,module,exports){ (function (process,global){ var checkParameters = require('./precondition') var defaultEncoding = require('./default-encoding') var sync = require('./sync') var Buffer = require('safe-buffer').Buffer var ZERO_BUF var subtle = global.crypto && global.crypto.subtle var toBrowser = { 'sha': 'SHA-1', 'sha-1': 'SHA-1', 'sha1': 'SHA-1', 'sha256': 'SHA-256', 'sha-256': 'SHA-256', 'sha384': 'SHA-384', 'sha-384': 'SHA-384', 'sha-512': 'SHA-512', 'sha512': 'SHA-512' } var checks = [] function checkNative (algo) { if (global.process && !global.process.browser) { return Promise.resolve(false) } if (!subtle || !subtle.importKey || !subtle.deriveBits) { return Promise.resolve(false) } if (checks[algo] !== undefined) { return checks[algo] } ZERO_BUF = ZERO_BUF || Buffer.alloc(8) var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo) .then(function () { return true }).catch(function () { return false }) checks[algo] = prom return prom } function browserPbkdf2 (password, salt, iterations, length, algo) { return subtle.importKey( 'raw', password, {name: 'PBKDF2'}, false, ['deriveBits'] ).then(function (key) { return subtle.deriveBits({ name: 'PBKDF2', salt: salt, iterations: iterations, hash: { name: algo } }, key, length << 3) }).then(function (res) { return Buffer.from(res) }) } function resolvePromise (promise, callback) { promise.then(function (out) { process.nextTick(function () { callback(null, out) }) }, function (e) { process.nextTick(function () { callback(e) }) }) } module.exports = function (password, salt, iterations, keylen, digest, callback) { if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding) if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding) checkParameters(iterations, keylen) if (typeof digest === 'function') { callback = digest digest = undefined } if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2') digest = digest || 'sha1' var algo = toBrowser[digest.toLowerCase()] if (!algo || typeof global.Promise !== 'function') { return process.nextTick(function () { var out try { out = sync(password, salt, iterations, keylen, digest) } catch (e) { return callback(e) } callback(null, out) }) } resolvePromise(checkNative(algo).then(function (resp) { if (resp) { return browserPbkdf2(password, salt, iterations, keylen, algo) } else { return sync(password, salt, iterations, keylen, digest) } }), callback) } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{"./default-encoding":122,"./precondition":123,"./sync":124,"_process":126,"safe-buffer":148}],122:[function(require,module,exports){ (function (process){ var defaultEncoding /* istanbul ignore next */ if (process.browser) { defaultEncoding = 'utf-8' } else { var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10) defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary' } module.exports = defaultEncoding }).call(this,require('_process')) },{"_process":126}],123:[function(require,module,exports){ var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs module.exports = function (iterations, keylen) { if (typeof iterations !== 'number') { throw new TypeError('Iterations not a number') } if (iterations < 0) { throw new TypeError('Bad iterations') } if (typeof keylen !== 'number') { throw new TypeError('Key length not a number') } if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */ throw new TypeError('Bad key length') } } },{}],124:[function(require,module,exports){ var md5 = require('create-hash/md5') var rmd160 = require('ripemd160') var sha = require('sha.js') var checkParameters = require('./precondition') var defaultEncoding = require('./default-encoding') var Buffer = require('safe-buffer').Buffer var ZEROS = Buffer.alloc(128) var sizes = { md5: 16, sha1: 20, sha224: 28, sha256: 32, sha384: 48, sha512: 64, rmd160: 20, ripemd160: 20 } function Hmac (alg, key, saltLen) { var hash = getDigest(alg) var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64 if (key.length > blocksize) { key = hash(key) } else if (key.length < blocksize) { key = Buffer.concat([key, ZEROS], blocksize) } var ipad = Buffer.allocUnsafe(blocksize + sizes[alg]) var opad = Buffer.allocUnsafe(blocksize + sizes[alg]) for (var i = 0; i < blocksize; i++) { ipad[i] = key[i] ^ 0x36 opad[i] = key[i] ^ 0x5C } var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4) ipad.copy(ipad1, 0, 0, blocksize) this.ipad1 = ipad1 this.ipad2 = ipad this.opad = opad this.alg = alg this.blocksize = blocksize this.hash = hash this.size = sizes[alg] } Hmac.prototype.run = function (data, ipad) { data.copy(ipad, this.blocksize) var h = this.hash(ipad) h.copy(this.opad, this.blocksize) return this.hash(this.opad) } function getDigest (alg) { function shaFunc (data) { return sha(alg).update(data).digest() } if (alg === 'rmd160' || alg === 'ripemd160') return rmd160 if (alg === 'md5') return md5 return shaFunc } function pbkdf2 (password, salt, iterations, keylen, digest) { if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding) if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding) checkParameters(iterations, keylen) digest = digest || 'sha1' var hmac = new Hmac(digest, password, salt.length) var DK = Buffer.allocUnsafe(keylen) var block1 = Buffer.allocUnsafe(salt.length + 4) salt.copy(block1, 0, 0, salt.length) var destPos = 0 var hLen = sizes[digest] var l = Math.ceil(keylen / hLen) for (var i = 1; i <= l; i++) { block1.writeUInt32BE(i, salt.length) var T = hmac.run(block1, hmac.ipad1) var U = T for (var j = 1; j < iterations; j++) { U = hmac.run(U, hmac.ipad2) for (var k = 0; k < hLen; k++) T[k] ^= U[k] } T.copy(DK, destPos) destPos += hLen } return DK } module.exports = pbkdf2 },{"./default-encoding":122,"./precondition":123,"create-hash/md5":60,"ripemd160":147,"safe-buffer":148,"sha.js":150}],125:[function(require,module,exports){ (function (process){ 'use strict'; if (!process.version || process.version.indexOf('v0.') === 0 || process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { module.exports = nextTick; } else { module.exports = process.nextTick; } function nextTick(fn, arg1, arg2, arg3) { if (typeof fn !== 'function') { throw new TypeError('"callback" argument must be a function'); } var len = arguments.length; var args, i; switch (len) { case 0: case 1: return process.nextTick(fn); case 2: return process.nextTick(function afterTickOne() { fn.call(null, arg1); }); case 3: return process.nextTick(function afterTickTwo() { fn.call(null, arg1, arg2); }); case 4: return process.nextTick(function afterTickThree() { fn.call(null, arg1, arg2, arg3); }); default: args = new Array(len - 1); i = 0; while (i < args.length) { args[i++] = arguments[i]; } return process.nextTick(function afterTick() { fn.apply(null, args); }); } } }).call(this,require('_process')) },{"_process":126}],126:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; },{}],127:[function(require,module,exports){ exports.publicEncrypt = require('./publicEncrypt'); exports.privateDecrypt = require('./privateDecrypt'); exports.privateEncrypt = function privateEncrypt(key, buf) { return exports.publicEncrypt(key, buf, true); }; exports.publicDecrypt = function publicDecrypt(key, buf) { return exports.privateDecrypt(key, buf, true); }; },{"./privateDecrypt":129,"./publicEncrypt":130}],128:[function(require,module,exports){ (function (Buffer){ var createHash = require('create-hash'); module.exports = function (seed, len) { var t = new Buffer(''); var i = 0, c; while (t.length < len) { c = i2ops(i++); t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]); } return t.slice(0, len); }; function i2ops(c) { var out = new Buffer(4); out.writeUInt32BE(c,0); return out; } }).call(this,require("buffer").Buffer) },{"buffer":54,"create-hash":58}],129:[function(require,module,exports){ (function (Buffer){ var parseKeys = require('parse-asn1'); var mgf = require('./mgf'); var xor = require('./xor'); var bn = require('bn.js'); var crt = require('browserify-rsa'); var createHash = require('create-hash'); var withPublic = require('./withPublic'); module.exports = function privateDecrypt(private_key, enc, reverse) { var padding; if (private_key.padding) { padding = private_key.padding; } else if (reverse) { padding = 1; } else { padding = 4; } var key = parseKeys(private_key); var k = key.modulus.byteLength(); if (enc.length > k || new bn(enc).cmp(key.modulus) >= 0) { throw new Error('decryption error'); } var msg; if (reverse) { msg = withPublic(new bn(enc), key); } else { msg = crt(enc, key); } var zBuffer = new Buffer(k - msg.length); zBuffer.fill(0); msg = Buffer.concat([zBuffer, msg], k); if (padding === 4) { return oaep(key, msg); } else if (padding === 1) { return pkcs1(key, msg, reverse); } else if (padding === 3) { return msg; } else { throw new Error('unknown padding'); } }; function oaep(key, msg){ var n = key.modulus; var k = key.modulus.byteLength(); var mLen = msg.length; var iHash = createHash('sha1').update(new Buffer('')).digest(); var hLen = iHash.length; var hLen2 = 2 * hLen; if (msg[0] !== 0) { throw new Error('decryption error'); } var maskedSeed = msg.slice(1, hLen + 1); var maskedDb = msg.slice(hLen + 1); var seed = xor(maskedSeed, mgf(maskedDb, hLen)); var db = xor(maskedDb, mgf(seed, k - hLen - 1)); if (compare(iHash, db.slice(0, hLen))) { throw new Error('decryption error'); } var i = hLen; while (db[i] === 0) { i++; } if (db[i++] !== 1) { throw new Error('decryption error'); } return db.slice(i); } function pkcs1(key, msg, reverse){ var p1 = msg.slice(0, 2); var i = 2; var status = 0; while (msg[i++] !== 0) { if (i >= msg.length) { status++; break; } } var ps = msg.slice(2, i - 1); var p2 = msg.slice(i - 1, i); if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)){ status++; } if (ps.length < 8) { status++; } if (status) { throw new Error('decryption error'); } return msg.slice(i); } function compare(a, b){ a = new Buffer(a); b = new Buffer(b); var dif = 0; var len = a.length; if (a.length !== b.length) { dif++; len = Math.min(a.length, b.length); } var i = -1; while (++i < len) { dif += (a[i] ^ b[i]); } return dif; } }).call(this,require("buffer").Buffer) },{"./mgf":128,"./withPublic":131,"./xor":132,"bn.js":25,"browserify-rsa":46,"buffer":54,"create-hash":58,"parse-asn1":118}],130:[function(require,module,exports){ (function (Buffer){ var parseKeys = require('parse-asn1'); var randomBytes = require('randombytes'); var createHash = require('create-hash'); var mgf = require('./mgf'); var xor = require('./xor'); var bn = require('bn.js'); var withPublic = require('./withPublic'); var crt = require('browserify-rsa'); var constants = { RSA_PKCS1_OAEP_PADDING: 4, RSA_PKCS1_PADDIN: 1, RSA_NO_PADDING: 3 }; module.exports = function publicEncrypt(public_key, msg, reverse) { var padding; if (public_key.padding) { padding = public_key.padding; } else if (reverse) { padding = 1; } else { padding = 4; } var key = parseKeys(public_key); var paddedMsg; if (padding === 4) { paddedMsg = oaep(key, msg); } else if (padding === 1) { paddedMsg = pkcs1(key, msg, reverse); } else if (padding === 3) { paddedMsg = new bn(msg); if (paddedMsg.cmp(key.modulus) >= 0) { throw new Error('data too long for modulus'); } } else { throw new Error('unknown padding'); } if (reverse) { return crt(paddedMsg, key); } else { return withPublic(paddedMsg, key); } }; function oaep(key, msg){ var k = key.modulus.byteLength(); var mLen = msg.length; var iHash = createHash('sha1').update(new Buffer('')).digest(); var hLen = iHash.length; var hLen2 = 2 * hLen; if (mLen > k - hLen2 - 2) { throw new Error('message too long'); } var ps = new Buffer(k - mLen - hLen2 - 2); ps.fill(0); var dblen = k - hLen - 1; var seed = randomBytes(hLen); var maskedDb = xor(Buffer.concat([iHash, ps, new Buffer([1]), msg], dblen), mgf(seed, dblen)); var maskedSeed = xor(seed, mgf(maskedDb, hLen)); return new bn(Buffer.concat([new Buffer([0]), maskedSeed, maskedDb], k)); } function pkcs1(key, msg, reverse){ var mLen = msg.length; var k = key.modulus.byteLength(); if (mLen > k - 11) { throw new Error('message too long'); } var ps; if (reverse) { ps = new Buffer(k - mLen - 3); ps.fill(0xff); } else { ps = nonZero(k - mLen - 3); } return new bn(Buffer.concat([new Buffer([0, reverse?1:2]), ps, new Buffer([0]), msg], k)); } function nonZero(len, crypto) { var out = new Buffer(len); var i = 0; var cache = randomBytes(len*2); var cur = 0; var num; while (i < len) { if (cur === cache.length) { cache = randomBytes(len*2); cur = 0; } num = cache[cur++]; if (num) { out[i++] = num; } } return out; } }).call(this,require("buffer").Buffer) },{"./mgf":128,"./withPublic":131,"./xor":132,"bn.js":25,"browserify-rsa":46,"buffer":54,"create-hash":58,"parse-asn1":118,"randombytes":133}],131:[function(require,module,exports){ (function (Buffer){ var bn = require('bn.js'); function withPublic(paddedMsg, key) { return new Buffer(paddedMsg .toRed(bn.mont(key.modulus)) .redPow(new bn(key.publicExponent)) .fromRed() .toArray()); } module.exports = withPublic; }).call(this,require("buffer").Buffer) },{"bn.js":25,"buffer":54}],132:[function(require,module,exports){ module.exports = function xor(a, b) { var len = a.length; var i = -1; while (++i < len) { a[i] ^= b[i]; } return a }; },{}],133:[function(require,module,exports){ (function (process,global){ 'use strict' function oldBrowser () { throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11') } var Buffer = require('safe-buffer').Buffer var crypto = global.crypto || global.msCrypto if (crypto && crypto.getRandomValues) { module.exports = randomBytes } else { module.exports = oldBrowser } function randomBytes (size, cb) { // phantomjs needs to throw if (size > 65536) throw new Error('requested too many random bytes') // in case browserify isn't using the Uint8Array version var rawBytes = new global.Uint8Array(size) // This will not work in older browsers. // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues if (size > 0) { // getRandomValues fails on IE if size == 0 crypto.getRandomValues(rawBytes) } // XXX: phantomjs doesn't like a buffer being passed here var bytes = Buffer.from(rawBytes.buffer) if (typeof cb === 'function') { return process.nextTick(function () { cb(null, bytes) }) } return bytes } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{"_process":126,"safe-buffer":148}],134:[function(require,module,exports){ module.exports = require('./lib/_stream_duplex.js'); },{"./lib/_stream_duplex.js":135}],135:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from // Writable. 'use strict'; /**/ var processNextTick = require('process-nextick-args'); /**/ /**/ var objectKeys = Object.keys || function (obj) { var keys = []; for (var key in obj) { keys.push(key); }return keys; }; /**/ module.exports = Duplex; /**/ var util = require('core-util-is'); util.inherits = require('inherits'); /**/ var Readable = require('./_stream_readable'); var Writable = require('./_stream_writable'); util.inherits(Duplex, Readable); var keys = objectKeys(Writable.prototype); for (var v = 0; v < keys.length; v++) { var method = keys[v]; if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); if (options && options.readable === false) this.readable = false; if (options && options.writable === false) this.writable = false; this.allowHalfOpen = true; if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; this.once('end', onend); } // the no-half-open enforcer function onend() { // if we allow half-open state, or if the writable side ended, // then we're ok. if (this.allowHalfOpen || this._writableState.ended) return; // no more data can be written. // But allow more writes to happen in this tick. processNextTick(onEndNT, this); } function onEndNT(self) { self.end(); } Object.defineProperty(Duplex.prototype, 'destroyed', { get: function () { if (this._readableState === undefined || this._writableState === undefined) { return false; } return this._readableState.destroyed && this._writableState.destroyed; }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if (this._readableState === undefined || this._writableState === undefined) { return; } // backward compatibility, the user is explicitly // managing destroyed this._readableState.destroyed = value; this._writableState.destroyed = value; } }); Duplex.prototype._destroy = function (err, cb) { this.push(null); this.end(); processNextTick(cb, err); }; function forEach(xs, f) { for (var i = 0, l = xs.length; i < l; i++) { f(xs[i], i); } } },{"./_stream_readable":137,"./_stream_writable":139,"core-util-is":56,"inherits":108,"process-nextick-args":125}],136:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a passthrough stream. // basically just the most minimal sort of Transform stream. // Every written chunk gets output as-is. 'use strict'; module.exports = PassThrough; var Transform = require('./_stream_transform'); /**/ var util = require('core-util-is'); util.inherits = require('inherits'); /**/ util.inherits(PassThrough, Transform); function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; },{"./_stream_transform":138,"core-util-is":56,"inherits":108}],137:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; /**/ var processNextTick = require('process-nextick-args'); /**/ module.exports = Readable; /**/ var isArray = require('isarray'); /**/ /**/ var Duplex; /**/ Readable.ReadableState = ReadableState; /**/ var EE = require('events').EventEmitter; var EElistenerCount = function (emitter, type) { return emitter.listeners(type).length; }; /**/ /**/ var Stream = require('./internal/streams/stream'); /**/ // TODO(bmeurer): Change this back to const once hole checks are // properly optimized away early in Ignition+TurboFan. /**/ var Buffer = require('safe-buffer').Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } /**/ /**/ var util = require('core-util-is'); util.inherits = require('inherits'); /**/ /**/ var debugUtil = require('util'); var debug = void 0; if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); } else { debug = function () {}; } /**/ var BufferList = require('./internal/streams/BufferList'); var destroyImpl = require('./internal/streams/destroy'); var StringDecoder; util.inherits(Readable, Stream); var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. if (typeof emitter.prependListener === 'function') { return emitter.prependListener(event, fn); } else { // This is a hack to make sure that our error handler is attached before any // userland ones. NEVER DO THIS. This is here only because this code needs // to continue to work with older versions of Node.js that do not include // the prependListener() method. The goal is to eventually remove this hack. if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; } } function ReadableState(options, stream) { Duplex = Duplex || require('./_stream_duplex'); options = options || {}; // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away this.objectMode = !!options.objectMode; if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" var hwm = options.highWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than // array.shift() this.buffer = new BufferList(); this.length = 0; this.pipes = null; this.pipesCount = 0; this.flowing = null; this.ended = false; this.endEmitted = false; this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted // immediately, or on a later tick. We set this to true at first, because // any actions that shouldn't happen until "later" should generally also // not happen before the first read call. this.sync = true; // whenever we return null, then we set a flag to say // that we're awaiting a 'readable' event emission. this.needReadable = false; this.emittedReadable = false; this.readableListening = false; this.resumeScheduled = false; // has it been destroyed this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled this.readingMore = false; this.decoder = null; this.encoding = null; if (options.encoding) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } function Readable(options) { Duplex = Duplex || require('./_stream_duplex'); if (!(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this); // legacy this.readable = true; if (options) { if (typeof options.read === 'function') this._read = options.read; if (typeof options.destroy === 'function') this._destroy = options.destroy; } Stream.call(this); } Object.defineProperty(Readable.prototype, 'destroyed', { get: function () { if (this._readableState === undefined) { return false; } return this._readableState.destroyed; }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if (!this._readableState) { return; } // backward compatibility, the user is explicitly // managing destroyed this._readableState.destroyed = value; } }); Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; Readable.prototype._destroy = function (err, cb) { this.push(null); cb(err); }; // Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; var skipChunkCheck; if (!state.objectMode) { if (typeof chunk === 'string') { encoding = encoding || state.defaultEncoding; if (encoding !== state.encoding) { chunk = Buffer.from(chunk, encoding); encoding = ''; } skipChunkCheck = true; } } else { skipChunkCheck = true; } return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); }; // Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { return readableAddChunk(this, chunk, null, true, false); }; function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { var state = stream._readableState; if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else { var er; if (!skipChunkCheck) er = chunkInvalid(state, chunk); if (er) { stream.emit('error', er); } else if (state.objectMode || chunk && chunk.length > 0) { if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { chunk = _uint8ArrayToBuffer(chunk); } if (addToFront) { if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); } else if (state.ended) { stream.emit('error', new Error('stream.push() after EOF')); } else { state.reading = false; if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); } else { addChunk(stream, state, chunk, false); } } } else if (!addToFront) { state.reading = false; } } return needMoreData(state); } function addChunk(stream, state, chunk, addToFront) { if (state.flowing && state.length === 0 && !state.sync) { stream.emit('data', chunk); stream.read(0); } else { // update the buffer info. state.length += state.objectMode ? 1 : chunk.length; if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); if (state.needReadable) emitReadable(stream); } maybeReadMore(stream, state); } function chunkInvalid(state, chunk) { var er; if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new TypeError('Invalid non-string/buffer chunk'); } return er; } // if it's past the high water mark, we can push in some more. // Also, if we have no data yet, we can stand some // more bytes. This is to work around cases where hwm=0, // such as the repl. Also, if the push() triggered a // readable event, and the user called read(largeNumber) such that // needReadable was set, then we ought to push more, so that another // 'readable' event will be triggered. function needMoreData(state) { return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); } Readable.prototype.isPaused = function () { return this._readableState.flowing === false; }; // backwards compatibility. Readable.prototype.setEncoding = function (enc) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; this._readableState.decoder = new StringDecoder(enc); this._readableState.encoding = enc; return this; }; // Don't raise the hwm > 8MB var MAX_HWM = 0x800000; function computeNewHighWaterMark(n) { if (n >= MAX_HWM) { n = MAX_HWM; } else { // Get the next highest power of 2 to prevent increasing hwm excessively in // tiny amounts n--; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; n++; } return n; } // This function is designed to be inlinable, so please take care when making // changes to the function body. function howMuchToRead(n, state) { if (n <= 0 || state.length === 0 && state.ended) return 0; if (state.objectMode) return 1; if (n !== n) { // Only flow one buffer at a time if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; } // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); if (n <= state.length) return n; // Don't have enough if (!state.ended) { state.needReadable = true; return 0; } return state.length; } // you can override either this method, or the async _read(n) below. Readable.prototype.read = function (n) { debug('read', n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { debug('read: emitReadable', state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); return null; } n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { if (state.length === 0) endReadable(this); return null; } // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change // the state of the read buffer, providing enough data when // before there was *not* enough. // // So, the steps are: // 1. Figure out what the state of things will be after we do // a read from the buffer. // // 2. If that resulting state will trigger a _read, then call _read. // Note that this may be asynchronous, or synchronous. Yes, it is // deeply ugly to write APIs this way, but that still doesn't mean // that the Readable class should behave improperly, as streams are // designed to be sync/async agnostic. // Take note if the _read call is sync or async (ie, if the read call // has returned yet), so that we know whether or not it's safe to emit // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. // if we need a readable event, then we need to do some reading. var doRead = state.needReadable; debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; debug('length less than watermark', doRead); } // however, if we've ended, then there's no point, and if we're already // reading, then it's unnecessary. if (state.ended || state.reading) { doRead = false; debug('reading or ended', doRead); } else if (doRead) { debug('do read'); state.reading = true; state.sync = true; // if the length is currently zero, then we *need* a readable event. if (state.length === 0) state.needReadable = true; // call internal read method this._read(state.highWaterMark); state.sync = false; // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. if (!state.reading) n = howMuchToRead(nOrig, state); } var ret; if (n > 0) ret = fromList(n, state);else ret = null; if (ret === null) { state.needReadable = true; n = 0; } else { state.length -= n; } if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } if (ret !== null) this.emit('data', ret); return ret; }; function onEofChunk(stream, state) { if (state.ended) return; if (state.decoder) { var chunk = state.decoder.end(); if (chunk && chunk.length) { state.buffer.push(chunk); state.length += state.objectMode ? 1 : chunk.length; } } state.ended = true; // emit 'readable' now to make sure it gets picked up. emitReadable(stream); } // Don't emit readable right away in sync mode, because this can trigger // another read() call => stack overflow. This way, it might trigger // a nextTick recursion warning, but that's not so bad. function emitReadable(stream) { var state = stream._readableState; state.needReadable = false; if (!state.emittedReadable) { debug('emitReadable', state.flowing); state.emittedReadable = true; if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); } } function emitReadable_(stream) { debug('emit readable'); stream.emit('readable'); flow(stream); } // at this point, the user has presumably seen the 'readable' event, // and called read() to consume some data. that may have triggered // in turn another _read(n) call, in which case reading = true if // it's in progress. // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; processNextTick(maybeReadMore_, stream, state); } } function maybeReadMore_(stream, state) { var len = state.length; while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { debug('maybeReadMore read 0'); stream.read(0); if (len === state.length) // didn't get any data, stop spinning. break;else len = state.length; } state.readingMore = false; } // abstract method. to be overridden in specific implementation classes. // call cb(er, data) where data is <= n in length. // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. Readable.prototype._read = function (n) { this.emit('error', new Error('_read() is not implemented')); }; Readable.prototype.pipe = function (dest, pipeOpts) { var src = this; var state = this._readableState; switch (state.pipesCount) { case 0: state.pipes = dest; break; case 1: state.pipes = [state.pipes, dest]; break; default: state.pipes.push(dest); break; } state.pipesCount += 1; debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); function onunpipe(readable, unpipeInfo) { debug('onunpipe'); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; cleanup(); } } } function onend() { debug('onend'); dest.end(); } // when the dest drains, it reduces the awaitDrain counter // on the source. This would be more elegant with a .once() // handler in flow(), but adding and removing repeatedly is // too slow. var ondrain = pipeOnDrain(src); dest.on('drain', ondrain); var cleanedUp = false; function cleanup() { debug('cleanup'); // cleanup event handlers once the pipe is broken dest.removeListener('close', onclose); dest.removeListener('finish', onfinish); dest.removeListener('drain', ondrain); dest.removeListener('error', onerror); dest.removeListener('unpipe', onunpipe); src.removeListener('end', onend); src.removeListener('end', unpipe); src.removeListener('data', ondata); cleanedUp = true; // if the reader is waiting for a drain event from this // specific writer, then it would cause it to never start // flowing again. // So, if this is awaiting a drain, then we just call it now. // If we don't know, then assume that we are waiting for one. if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); } // If the user pushes more data while we're writing to dest then we'll end up // in ondata again. However, we only want to increase awaitDrain once because // dest will only emit one 'drain' event for the multiple writes. // => Introduce a guard on increasing awaitDrain. var increasedAwaitDrain = false; src.on('data', ondata); function ondata(chunk) { debug('ondata'); increasedAwaitDrain = false; var ret = dest.write(chunk); if (false === ret && !increasedAwaitDrain) { // If the user unpiped during `dest.write()`, it is possible // to get stuck in a permanently paused state if that write // also returned false. // => Check whether `dest` is still a piping destination. if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { debug('false write response, pause', src._readableState.awaitDrain); src._readableState.awaitDrain++; increasedAwaitDrain = true; } src.pause(); } } // if the dest has an error, then stop piping into it. // however, don't suppress the throwing behavior for this. function onerror(er) { debug('onerror', er); unpipe(); dest.removeListener('error', onerror); if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); } // Make sure our error handler is attached before userland ones. prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. function onclose() { dest.removeListener('finish', onfinish); unpipe(); } dest.once('close', onclose); function onfinish() { debug('onfinish'); dest.removeListener('close', onclose); unpipe(); } dest.once('finish', onfinish); function unpipe() { debug('unpipe'); src.unpipe(dest); } // tell the dest that it's being piped to dest.emit('pipe', src); // start the flow if it hasn't been started already. if (!state.flowing) { debug('pipe resume'); src.resume(); } return dest; }; function pipeOnDrain(src) { return function () { var state = src._readableState; debug('pipeOnDrain', state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { state.flowing = true; flow(src); } }; } Readable.prototype.unpipe = function (dest) { var state = this._readableState; var unpipeInfo = { hasUnpiped: false }; // if we're not piping anywhere, then do nothing. if (state.pipesCount === 0) return this; // just one destination. most common case. if (state.pipesCount === 1) { // passed in one, but it's not the right one. if (dest && dest !== state.pipes) return this; if (!dest) dest = state.pipes; // got a match. state.pipes = null; state.pipesCount = 0; state.flowing = false; if (dest) dest.emit('unpipe', this, unpipeInfo); return this; } // slow case. multiple pipe destinations. if (!dest) { // remove all. var dests = state.pipes; var len = state.pipesCount; state.pipes = null; state.pipesCount = 0; state.flowing = false; for (var i = 0; i < len; i++) { dests[i].emit('unpipe', this, unpipeInfo); }return this; } // try to find the right one. var index = indexOf(state.pipes, dest); if (index === -1) return this; state.pipes.splice(index, 1); state.pipesCount -= 1; if (state.pipesCount === 1) state.pipes = state.pipes[0]; dest.emit('unpipe', this, unpipeInfo); return this; }; // set up data events if they are asked for // Ensure readable listeners eventually get something Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); if (ev === 'data') { // Start flowing on next tick if stream isn't explicitly paused if (this._readableState.flowing !== false) this.resume(); } else if (ev === 'readable') { var state = this._readableState; if (!state.endEmitted && !state.readableListening) { state.readableListening = state.needReadable = true; state.emittedReadable = false; if (!state.reading) { processNextTick(nReadingNextTick, this); } else if (state.length) { emitReadable(this); } } } return res; }; Readable.prototype.addListener = Readable.prototype.on; function nReadingNextTick(self) { debug('readable nexttick read 0'); self.read(0); } // pause() and resume() are remnants of the legacy readable stream API // If the user uses them, then switch into old mode. Readable.prototype.resume = function () { var state = this._readableState; if (!state.flowing) { debug('resume'); state.flowing = true; resume(this, state); } return this; }; function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; processNextTick(resume_, stream, state); } } function resume_(stream, state) { if (!state.reading) { debug('resume read 0'); stream.read(0); } state.resumeScheduled = false; state.awaitDrain = 0; stream.emit('resume'); flow(stream); if (state.flowing && !state.reading) stream.read(0); } Readable.prototype.pause = function () { debug('call pause flowing=%j', this._readableState.flowing); if (false !== this._readableState.flowing) { debug('pause'); this._readableState.flowing = false; this.emit('pause'); } return this; }; function flow(stream) { var state = stream._readableState; debug('flow', state.flowing); while (state.flowing && stream.read() !== null) {} } // wrap an old-style stream as the async data source. // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. Readable.prototype.wrap = function (stream) { var state = this._readableState; var paused = false; var self = this; stream.on('end', function () { debug('wrapped end'); if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) self.push(chunk); } self.push(null); }); stream.on('data', function (chunk) { debug('wrapped data'); if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; var ret = self.push(chunk); if (!ret) { paused = true; stream.pause(); } }); // proxy all the other methods. // important when wrapping filters and duplexes. for (var i in stream) { if (this[i] === undefined && typeof stream[i] === 'function') { this[i] = function (method) { return function () { return stream[method].apply(stream, arguments); }; }(i); } } // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); } // when we try to consume some more bytes, simply unpause the // underlying stream. self._read = function (n) { debug('wrapped _read', n); if (paused) { paused = false; stream.resume(); } }; return self; }; // exposed for testing purposes only. Readable._fromList = fromList; // Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making // changes to the function body. function fromList(n, state) { // nothing buffered if (state.length === 0) return null; var ret; if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { // read it all, truncate the list if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); state.buffer.clear(); } else { // read part of list ret = fromListPartial(n, state.buffer, state.decoder); } return ret; } // Extracts only enough buffered data to satisfy the amount requested. // This function is designed to be inlinable, so please take care when making // changes to the function body. function fromListPartial(n, list, hasStrings) { var ret; if (n < list.head.data.length) { // slice is the same for buffers and strings ret = list.head.data.slice(0, n); list.head.data = list.head.data.slice(n); } else if (n === list.head.data.length) { // first chunk is a perfect match ret = list.shift(); } else { // result spans more than one buffer ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); } return ret; } // Copies a specified amount of characters from the list of buffered data // chunks. // This function is designed to be inlinable, so please take care when making // changes to the function body. function copyFromBufferString(n, list) { var p = list.head; var c = 1; var ret = p.data; n -= ret.length; while (p = p.next) { var str = p.data; var nb = n > str.length ? str.length : n; if (nb === str.length) ret += str;else ret += str.slice(0, n); n -= nb; if (n === 0) { if (nb === str.length) { ++c; if (p.next) list.head = p.next;else list.head = list.tail = null; } else { list.head = p; p.data = str.slice(nb); } break; } ++c; } list.length -= c; return ret; } // Copies a specified amount of bytes from the list of buffered data chunks. // This function is designed to be inlinable, so please take care when making // changes to the function body. function copyFromBuffer(n, list) { var ret = Buffer.allocUnsafe(n); var p = list.head; var c = 1; p.data.copy(ret); n -= p.data.length; while (p = p.next) { var buf = p.data; var nb = n > buf.length ? buf.length : n; buf.copy(ret, ret.length - n, 0, nb); n -= nb; if (n === 0) { if (nb === buf.length) { ++c; if (p.next) list.head = p.next;else list.head = list.tail = null; } else { list.head = p; p.data = buf.slice(nb); } break; } ++c; } list.length -= c; return ret; } function endReadable(stream) { var state = stream._readableState; // If we get here before consuming all the bytes, then that is a // bug in node. Should never happen. if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); if (!state.endEmitted) { state.ended = true; processNextTick(endReadableNT, state, stream); } } function endReadableNT(state, stream) { // Check that we didn't get one last unshift. if (!state.endEmitted && state.length === 0) { state.endEmitted = true; stream.readable = false; stream.emit('end'); } } function forEach(xs, f) { for (var i = 0, l = xs.length; i < l; i++) { f(xs[i], i); } } function indexOf(xs, x) { for (var i = 0, l = xs.length; i < l; i++) { if (xs[i] === x) return i; } return -1; } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{"./_stream_duplex":135,"./internal/streams/BufferList":140,"./internal/streams/destroy":141,"./internal/streams/stream":142,"_process":126,"core-util-is":56,"events":90,"inherits":108,"isarray":110,"process-nextick-args":125,"safe-buffer":148,"string_decoder/":158,"util":27}],138:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a transform stream is a readable/writable stream where you do // something with the data. Sometimes it's called a "filter", // but that's not a great name for it, since that implies a thing where // some bits pass through, and others are simply ignored. (That would // be a valid example of a transform, of course.) // // While the output is causally related to the input, it's not a // necessarily symmetric or synchronous transformation. For example, // a zlib stream might take multiple plain-text writes(), and then // emit a single compressed chunk some time in the future. // // Here's how this works: // // The Transform stream has all the aspects of the readable and writable // stream classes. When you write(chunk), that calls _write(chunk,cb) // internally, and returns false if there's a lot of pending writes // buffered up. When you call read(), that calls _read(n) until // there's enough pending readable data buffered up. // // In a transform stream, the written data is placed in a buffer. When // _read(n) is called, it transforms the queued up data, calling the // buffered _write cb's as it consumes chunks. If consuming a single // written chunk would result in multiple output chunks, then the first // outputted bit calls the readcb, and subsequent chunks just go into // the read buffer, and will cause it to emit 'readable' if necessary. // // This way, back-pressure is actually determined by the reading side, // since _read has to be called to start processing a new chunk. However, // a pathological inflate type of transform can cause excessive buffering // here. For example, imagine a stream where every byte of input is // interpreted as an integer from 0-255, and then results in that many // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in // 1kb of data being output. In this case, you could write a very small // amount of input, and end up with a very large amount of output. In // such a pathological inflating mechanism, there'd be no way to tell // the system to stop doing the transform. A single 4MB write could // cause the system to run out of memory. // // However, even in such a pathological case, only a single written chunk // would be consumed, and then the rest would wait (un-transformed) until // the results of the previous transformed chunk were consumed. 'use strict'; module.exports = Transform; var Duplex = require('./_stream_duplex'); /**/ var util = require('core-util-is'); util.inherits = require('inherits'); /**/ util.inherits(Transform, Duplex); function TransformState(stream) { this.afterTransform = function (er, data) { return afterTransform(stream, er, data); }; this.needTransform = false; this.transforming = false; this.writecb = null; this.writechunk = null; this.writeencoding = null; } function afterTransform(stream, er, data) { var ts = stream._transformState; ts.transforming = false; var cb = ts.writecb; if (!cb) { return stream.emit('error', new Error('write callback called multiple times')); } ts.writechunk = null; ts.writecb = null; if (data !== null && data !== undefined) stream.push(data); cb(er); var rs = stream._readableState; rs.reading = false; if (rs.needReadable || rs.length < rs.highWaterMark) { stream._read(rs.highWaterMark); } } function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); this._transformState = new TransformState(this); var stream = this; // start out asking for a readable event once data is transformed. this._readableState.needReadable = true; // we have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. this._readableState.sync = false; if (options) { if (typeof options.transform === 'function') this._transform = options.transform; if (typeof options.flush === 'function') this._flush = options.flush; } // When the writable side finishes, then flush out anything remaining. this.once('prefinish', function () { if (typeof this._flush === 'function') this._flush(function (er, data) { done(stream, er, data); });else done(stream); }); } Transform.prototype.push = function (chunk, encoding) { this._transformState.needTransform = false; return Duplex.prototype.push.call(this, chunk, encoding); }; // This is the part where you do stuff! // override this function in implementation classes. // 'chunk' is an input chunk. // // Call `push(newChunk)` to pass along transformed output // to the readable side. You may call 'push' zero or more times. // // Call `cb(err)` when you are done with this chunk. If you pass // an error, then that'll put the hurt on the whole operation. If you // never call cb(), then you'll never get another chunk. Transform.prototype._transform = function (chunk, encoding, cb) { throw new Error('_transform() is not implemented'); }; Transform.prototype._write = function (chunk, encoding, cb) { var ts = this._transformState; ts.writecb = cb; ts.writechunk = chunk; ts.writeencoding = encoding; if (!ts.transforming) { var rs = this._readableState; if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); } }; // Doesn't matter what the args are here. // _transform does all the work. // That we got here means that the readable side wants more data. Transform.prototype._read = function (n) { var ts = this._transformState; if (ts.writechunk !== null && ts.writecb && !ts.transforming) { ts.transforming = true; this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); } else { // mark that we need a transform, so that any data that comes in // will get processed, now that we've asked for it. ts.needTransform = true; } }; Transform.prototype._destroy = function (err, cb) { var _this = this; Duplex.prototype._destroy.call(this, err, function (err2) { cb(err2); _this.emit('close'); }); }; function done(stream, er, data) { if (er) return stream.emit('error', er); if (data !== null && data !== undefined) stream.push(data); // if there's nothing in the write buffer, then that means // that nothing more will ever be provided var ws = stream._writableState; var ts = stream._transformState; if (ws.length) throw new Error('Calling transform done when ws.length != 0'); if (ts.transforming) throw new Error('Calling transform done when still transforming'); return stream.push(null); } },{"./_stream_duplex":135,"core-util-is":56,"inherits":108}],139:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. 'use strict'; /**/ var processNextTick = require('process-nextick-args'); /**/ module.exports = Writable; /* */ function WriteReq(chunk, encoding, cb) { this.chunk = chunk; this.encoding = encoding; this.callback = cb; this.next = null; } // It seems a linked list but it is not // there will be only 2 of these for each stream function CorkedRequest(state) { var _this = this; this.next = null; this.entry = null; this.finish = function () { onCorkedFinish(_this, state); }; } /* */ /**/ var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; /**/ /**/ var Duplex; /**/ Writable.WritableState = WritableState; /**/ var util = require('core-util-is'); util.inherits = require('inherits'); /**/ /**/ var internalUtil = { deprecate: require('util-deprecate') }; /**/ /**/ var Stream = require('./internal/streams/stream'); /**/ /**/ var Buffer = require('safe-buffer').Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } /**/ var destroyImpl = require('./internal/streams/destroy'); util.inherits(Writable, Stream); function nop() {} function WritableState(options, stream) { Duplex = Duplex || require('./_stream_duplex'); options = options || {}; // object stream flag to indicate whether or not this stream // contains buffers or objects. this.objectMode = !!options.objectMode; if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() var hwm = options.highWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); // if _final has been called this.finalCalled = false; // drain event flag. this.needDrain = false; // at the start of calling end() this.ending = false; // when end() has been called, and returned this.ended = false; // when 'finish' is emitted this.finished = false; // has it been destroyed this.destroyed = false; // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. var noDecode = options.decodeStrings === false; this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement // of how much we're waiting to get pushed to some underlying // socket or file. this.length = 0; // a flag to see when we're in the middle of a write. this.writing = false; // when true all writes will be buffered until .uncork() call this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, // or on a later tick. We set this to true at first, because any // actions that shouldn't happen until "later" should generally also // not happen before the first write call. this.sync = true; // a flag to know if we're processing previously buffered items, which // may call the _write() callback in the same tick, so that we don't // end up in an overlapped onwrite situation. this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) this.onwrite = function (er) { onwrite(stream, er); }; // the callback that the user supplies to write(chunk,encoding,cb) this.writecb = null; // the amount that is being written when _write is called. this.writelen = 0; this.bufferedRequest = null; this.lastBufferedRequest = null; // number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs // This is relevant for synchronous Transform streams this.prefinished = false; // True if the error was already emitted and should not be thrown again this.errorEmitted = false; // count buffered requests this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always // one allocated and free to use, and we maintain at most two this.corkedRequestsFree = new CorkedRequest(this); } WritableState.prototype.getBuffer = function getBuffer() { var current = this.bufferedRequest; var out = []; while (current) { out.push(current); current = current.next; } return out; }; (function () { try { Object.defineProperty(WritableState.prototype, 'buffer', { get: internalUtil.deprecate(function () { return this.getBuffer(); }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} })(); // Test _writableState for inheritance to account for Duplex streams, // whose prototype chain only points to Readable. var realHasInstance; if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { realHasInstance = Function.prototype[Symbol.hasInstance]; Object.defineProperty(Writable, Symbol.hasInstance, { value: function (object) { if (realHasInstance.call(this, object)) return true; return object && object._writableState instanceof WritableState; } }); } else { realHasInstance = function (object) { return object instanceof this; }; } function Writable(options) { Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` // would return false, as no `_writableState` property is attached. // Trying to use the custom `instanceof` for Writable here will also break the // Node.js LazyTransform implementation, which has a non-trivial getter for // `_writableState` that would lead to infinite recursion. if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { return new Writable(options); } this._writableState = new WritableState(options, this); // legacy. this.writable = true; if (options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; if (typeof options.destroy === 'function') this._destroy = options.destroy; if (typeof options.final === 'function') this._final = options.final; } Stream.call(this); } // Otherwise people can pipe Writable streams, which is just wrong. Writable.prototype.pipe = function () { this.emit('error', new Error('Cannot pipe, not readable')); }; function writeAfterEnd(stream, cb) { var er = new Error('write after end'); // TODO: defer error events consistently everywhere, not just the cb stream.emit('error', er); processNextTick(cb, er); } // Checks that a user-supplied chunk is valid, especially for the particular // mode the stream is in. Currently this means that `null` is never accepted // and undefined/non-string values are only allowed in object mode. function validChunk(stream, state, chunk, cb) { var valid = true; var er = false; if (chunk === null) { er = new TypeError('May not write null values to stream'); } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new TypeError('Invalid non-string/buffer chunk'); } if (er) { stream.emit('error', er); processNextTick(cb, er); valid = false; } return valid; } Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; var isBuf = _isUint8Array(chunk) && !state.objectMode; if (isBuf && !Buffer.isBuffer(chunk)) { chunk = _uint8ArrayToBuffer(chunk); } if (typeof encoding === 'function') { cb = encoding; encoding = null; } if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== 'function') cb = nop; if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { state.pendingcb++; ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); } return ret; }; Writable.prototype.cork = function () { var state = this._writableState; state.corked++; }; Writable.prototype.uncork = function () { var state = this._writableState; if (state.corked) { state.corked--; if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } }; Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { // node::ParseEncoding() requires lower case. if (typeof encoding === 'string') encoding = encoding.toLowerCase(); if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); this._writableState.defaultEncoding = encoding; return this; }; function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { chunk = Buffer.from(chunk, encoding); } return chunk; } // if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { var newChunk = decodeChunk(state, chunk, encoding); if (chunk !== newChunk) { isBuf = true; encoding = 'buffer'; chunk = newChunk; } } var len = state.objectMode ? 1 : chunk.length; state.length += len; var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. if (!ret) state.needDrain = true; if (state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = { chunk: chunk, encoding: encoding, isBuf: isBuf, callback: cb, next: null }; if (last) { last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } state.bufferedRequestCount += 1; } else { doWrite(stream, state, false, len, chunk, encoding, cb); } return ret; } function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; state.writing = true; state.sync = true; if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); state.sync = false; } function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack processNextTick(cb, er); // this can emit finish, and it will always happen // after error processNextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; stream.emit('error', er); } else { // the caller expect this to happen before if // it is async cb(er); stream._writableState.errorEmitted = true; stream.emit('error', er); // this can emit finish, but finish must // always follow error finishMaybe(stream, state); } } function onwriteStateUpdate(state) { state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; } function onwrite(stream, er) { var state = stream._writableState; var sync = state.sync; var cb = state.writecb; onwriteStateUpdate(state); if (er) onwriteError(stream, state, sync, er, cb);else { // Check if we're actually ready to finish, but don't emit yet var finished = needFinish(state); if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { clearBuffer(stream, state); } if (sync) { /**/ asyncWrite(afterWrite, stream, state, finished, cb); /**/ } else { afterWrite(stream, state, finished, cb); } } } function afterWrite(stream, state, finished, cb) { if (!finished) onwriteDrain(stream, state); state.pendingcb--; cb(); finishMaybe(stream, state); } // Must force callback to be called on nextTick, so that we don't // emit 'drain' before the write() consumer gets the 'false' return // value, and has a chance to attach a 'drain' listener. function onwriteDrain(stream, state) { if (state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit('drain'); } } // if there's something in the buffer waiting, then process it function clearBuffer(stream, state) { state.bufferProcessing = true; var entry = state.bufferedRequest; if (stream._writev && entry && entry.next) { // Fast case, write everything using _writev() var l = state.bufferedRequestCount; var buffer = new Array(l); var holder = state.corkedRequestsFree; holder.entry = entry; var count = 0; var allBuffers = true; while (entry) { buffer[count] = entry; if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } buffer.allBuffers = allBuffers; doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time // as the hot path ends with doWrite state.pendingcb++; state.lastBufferedRequest = null; if (holder.next) { state.corkedRequestsFree = holder.next; holder.next = null; } else { state.corkedRequestsFree = new CorkedRequest(state); } } else { // Slow case, write chunks one-by-one while (entry) { var chunk = entry.chunk; var encoding = entry.encoding; var cb = entry.callback; var len = state.objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently // being processed, so move the buffer counter past them. if (state.writing) { break; } } if (entry === null) state.lastBufferedRequest = null; } state.bufferedRequestCount = 0; state.bufferedRequest = entry; state.bufferProcessing = false; } Writable.prototype._write = function (chunk, encoding, cb) { cb(new Error('_write() is not implemented')); }; Writable.prototype._writev = null; Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; if (typeof chunk === 'function') { cb = chunk; chunk = null; encoding = null; } else if (typeof encoding === 'function') { cb = encoding; encoding = null; } if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks if (state.corked) { state.corked = 1; this.uncork(); } // ignore unnecessary end() calls. if (!state.ending && !state.finished) endWritable(this, state, cb); }; function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } function callFinal(stream, state) { stream._final(function (err) { state.pendingcb--; if (err) { stream.emit('error', err); } state.prefinished = true; stream.emit('prefinish'); finishMaybe(stream, state); }); } function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === 'function') { state.pendingcb++; state.finalCalled = true; processNextTick(callFinal, stream, state); } else { state.prefinished = true; stream.emit('prefinish'); } } } function finishMaybe(stream, state) { var need = needFinish(state); if (need) { prefinish(stream, state); if (state.pendingcb === 0) { state.finished = true; stream.emit('finish'); } } return need; } function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); if (cb) { if (state.finished) processNextTick(cb);else stream.once('finish', cb); } state.ended = true; stream.writable = false; } function onCorkedFinish(corkReq, state, err) { var entry = corkReq.entry; corkReq.entry = null; while (entry) { var cb = entry.callback; state.pendingcb--; cb(err); entry = entry.next; } if (state.corkedRequestsFree) { state.corkedRequestsFree.next = corkReq; } else { state.corkedRequestsFree = corkReq; } } Object.defineProperty(Writable.prototype, 'destroyed', { get: function () { if (this._writableState === undefined) { return false; } return this._writableState.destroyed; }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if (!this._writableState) { return; } // backward compatibility, the user is explicitly // managing destroyed this._writableState.destroyed = value; } }); Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; Writable.prototype._destroy = function (err, cb) { this.end(); cb(err); }; }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{"./_stream_duplex":135,"./internal/streams/destroy":141,"./internal/streams/stream":142,"_process":126,"core-util-is":56,"inherits":108,"process-nextick-args":125,"safe-buffer":148,"util-deprecate":159}],140:[function(require,module,exports){ 'use strict'; /**/ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Buffer = require('safe-buffer').Buffer; /**/ function copyBuffer(src, target, offset) { src.copy(target, offset); } module.exports = function () { function BufferList() { _classCallCheck(this, BufferList); this.head = null; this.tail = null; this.length = 0; } BufferList.prototype.push = function push(v) { var entry = { data: v, next: null }; if (this.length > 0) this.tail.next = entry;else this.head = entry; this.tail = entry; ++this.length; }; BufferList.prototype.unshift = function unshift(v) { var entry = { data: v, next: this.head }; if (this.length === 0) this.tail = entry; this.head = entry; ++this.length; }; BufferList.prototype.shift = function shift() { if (this.length === 0) return; var ret = this.head.data; if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; --this.length; return ret; }; BufferList.prototype.clear = function clear() { this.head = this.tail = null; this.length = 0; }; BufferList.prototype.join = function join(s) { if (this.length === 0) return ''; var p = this.head; var ret = '' + p.data; while (p = p.next) { ret += s + p.data; }return ret; }; BufferList.prototype.concat = function concat(n) { if (this.length === 0) return Buffer.alloc(0); if (this.length === 1) return this.head.data; var ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; while (p) { copyBuffer(p.data, ret, i); i += p.data.length; p = p.next; } return ret; }; return BufferList; }(); },{"safe-buffer":148}],141:[function(require,module,exports){ 'use strict'; /**/ var processNextTick = require('process-nextick-args'); /**/ // undocumented cb() API, needed for core, not for public API function destroy(err, cb) { var _this = this; var readableDestroyed = this._readableState && this._readableState.destroyed; var writableDestroyed = this._writableState && this._writableState.destroyed; if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { processNextTick(emitErrorNT, this, err); } return; } // we set destroyed to true before firing error callbacks in order // to make it re-entrance safe in case destroy() is called within callbacks if (this._readableState) { this._readableState.destroyed = true; } // if this is a duplex stream mark the writable part as destroyed as well if (this._writableState) { this._writableState.destroyed = true; } this._destroy(err || null, function (err) { if (!cb && err) { processNextTick(emitErrorNT, _this, err); if (_this._writableState) { _this._writableState.errorEmitted = true; } } else if (cb) { cb(err); } }); } function undestroy() { if (this._readableState) { this._readableState.destroyed = false; this._readableState.reading = false; this._readableState.ended = false; this._readableState.endEmitted = false; } if (this._writableState) { this._writableState.destroyed = false; this._writableState.ended = false; this._writableState.ending = false; this._writableState.finished = false; this._writableState.errorEmitted = false; } } function emitErrorNT(self, err) { self.emit('error', err); } module.exports = { destroy: destroy, undestroy: undestroy }; },{"process-nextick-args":125}],142:[function(require,module,exports){ module.exports = require('events').EventEmitter; },{"events":90}],143:[function(require,module,exports){ module.exports = require('./readable').PassThrough },{"./readable":144}],144:[function(require,module,exports){ exports = module.exports = require('./lib/_stream_readable.js'); exports.Stream = exports; exports.Readable = exports; exports.Writable = require('./lib/_stream_writable.js'); exports.Duplex = require('./lib/_stream_duplex.js'); exports.Transform = require('./lib/_stream_transform.js'); exports.PassThrough = require('./lib/_stream_passthrough.js'); },{"./lib/_stream_duplex.js":135,"./lib/_stream_passthrough.js":136,"./lib/_stream_readable.js":137,"./lib/_stream_transform.js":138,"./lib/_stream_writable.js":139}],145:[function(require,module,exports){ module.exports = require('./readable').Transform },{"./readable":144}],146:[function(require,module,exports){ module.exports = require('./lib/_stream_writable.js'); },{"./lib/_stream_writable.js":139}],147:[function(require,module,exports){ (function (Buffer){ 'use strict' var inherits = require('inherits') var HashBase = require('hash-base') function RIPEMD160 () { HashBase.call(this, 64) // state this._a = 0x67452301 this._b = 0xefcdab89 this._c = 0x98badcfe this._d = 0x10325476 this._e = 0xc3d2e1f0 } inherits(RIPEMD160, HashBase) RIPEMD160.prototype._update = function () { var m = new Array(16) for (var i = 0; i < 16; ++i) m[i] = this._block.readInt32LE(i * 4) var al = this._a var bl = this._b var cl = this._c var dl = this._d var el = this._e // Mj = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 // K = 0x00000000 // Sj = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 al = fn1(al, bl, cl, dl, el, m[0], 0x00000000, 11); cl = rotl(cl, 10) el = fn1(el, al, bl, cl, dl, m[1], 0x00000000, 14); bl = rotl(bl, 10) dl = fn1(dl, el, al, bl, cl, m[2], 0x00000000, 15); al = rotl(al, 10) cl = fn1(cl, dl, el, al, bl, m[3], 0x00000000, 12); el = rotl(el, 10) bl = fn1(bl, cl, dl, el, al, m[4], 0x00000000, 5); dl = rotl(dl, 10) al = fn1(al, bl, cl, dl, el, m[5], 0x00000000, 8); cl = rotl(cl, 10) el = fn1(el, al, bl, cl, dl, m[6], 0x00000000, 7); bl = rotl(bl, 10) dl = fn1(dl, el, al, bl, cl, m[7], 0x00000000, 9); al = rotl(al, 10) cl = fn1(cl, dl, el, al, bl, m[8], 0x00000000, 11); el = rotl(el, 10) bl = fn1(bl, cl, dl, el, al, m[9], 0x00000000, 13); dl = rotl(dl, 10) al = fn1(al, bl, cl, dl, el, m[10], 0x00000000, 14); cl = rotl(cl, 10) el = fn1(el, al, bl, cl, dl, m[11], 0x00000000, 15); bl = rotl(bl, 10) dl = fn1(dl, el, al, bl, cl, m[12], 0x00000000, 6); al = rotl(al, 10) cl = fn1(cl, dl, el, al, bl, m[13], 0x00000000, 7); el = rotl(el, 10) bl = fn1(bl, cl, dl, el, al, m[14], 0x00000000, 9); dl = rotl(dl, 10) al = fn1(al, bl, cl, dl, el, m[15], 0x00000000, 8); cl = rotl(cl, 10) // Mj = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 // K = 0x5a827999 // Sj = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 el = fn2(el, al, bl, cl, dl, m[7], 0x5a827999, 7); bl = rotl(bl, 10) dl = fn2(dl, el, al, bl, cl, m[4], 0x5a827999, 6); al = rotl(al, 10) cl = fn2(cl, dl, el, al, bl, m[13], 0x5a827999, 8); el = rotl(el, 10) bl = fn2(bl, cl, dl, el, al, m[1], 0x5a827999, 13); dl = rotl(dl, 10) al = fn2(al, bl, cl, dl, el, m[10], 0x5a827999, 11); cl = rotl(cl, 10) el = fn2(el, al, bl, cl, dl, m[6], 0x5a827999, 9); bl = rotl(bl, 10) dl = fn2(dl, el, al, bl, cl, m[15], 0x5a827999, 7); al = rotl(al, 10) cl = fn2(cl, dl, el, al, bl, m[3], 0x5a827999, 15); el = rotl(el, 10) bl = fn2(bl, cl, dl, el, al, m[12], 0x5a827999, 7); dl = rotl(dl, 10) al = fn2(al, bl, cl, dl, el, m[0], 0x5a827999, 12); cl = rotl(cl, 10) el = fn2(el, al, bl, cl, dl, m[9], 0x5a827999, 15); bl = rotl(bl, 10) dl = fn2(dl, el, al, bl, cl, m[5], 0x5a827999, 9); al = rotl(al, 10) cl = fn2(cl, dl, el, al, bl, m[2], 0x5a827999, 11); el = rotl(el, 10) bl = fn2(bl, cl, dl, el, al, m[14], 0x5a827999, 7); dl = rotl(dl, 10) al = fn2(al, bl, cl, dl, el, m[11], 0x5a827999, 13); cl = rotl(cl, 10) el = fn2(el, al, bl, cl, dl, m[8], 0x5a827999, 12); bl = rotl(bl, 10) // Mj = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 // K = 0x6ed9eba1 // Sj = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 dl = fn3(dl, el, al, bl, cl, m[3], 0x6ed9eba1, 11); al = rotl(al, 10) cl = fn3(cl, dl, el, al, bl, m[10], 0x6ed9eba1, 13); el = rotl(el, 10) bl = fn3(bl, cl, dl, el, al, m[14], 0x6ed9eba1, 6); dl = rotl(dl, 10) al = fn3(al, bl, cl, dl, el, m[4], 0x6ed9eba1, 7); cl = rotl(cl, 10) el = fn3(el, al, bl, cl, dl, m[9], 0x6ed9eba1, 14); bl = rotl(bl, 10) dl = fn3(dl, el, al, bl, cl, m[15], 0x6ed9eba1, 9); al = rotl(al, 10) cl = fn3(cl, dl, el, al, bl, m[8], 0x6ed9eba1, 13); el = rotl(el, 10) bl = fn3(bl, cl, dl, el, al, m[1], 0x6ed9eba1, 15); dl = rotl(dl, 10) al = fn3(al, bl, cl, dl, el, m[2], 0x6ed9eba1, 14); cl = rotl(cl, 10) el = fn3(el, al, bl, cl, dl, m[7], 0x6ed9eba1, 8); bl = rotl(bl, 10) dl = fn3(dl, el, al, bl, cl, m[0], 0x6ed9eba1, 13); al = rotl(al, 10) cl = fn3(cl, dl, el, al, bl, m[6], 0x6ed9eba1, 6); el = rotl(el, 10) bl = fn3(bl, cl, dl, el, al, m[13], 0x6ed9eba1, 5); dl = rotl(dl, 10) al = fn3(al, bl, cl, dl, el, m[11], 0x6ed9eba1, 12); cl = rotl(cl, 10) el = fn3(el, al, bl, cl, dl, m[5], 0x6ed9eba1, 7); bl = rotl(bl, 10) dl = fn3(dl, el, al, bl, cl, m[12], 0x6ed9eba1, 5); al = rotl(al, 10) // Mj = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 // K = 0x8f1bbcdc // Sj = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 cl = fn4(cl, dl, el, al, bl, m[1], 0x8f1bbcdc, 11); el = rotl(el, 10) bl = fn4(bl, cl, dl, el, al, m[9], 0x8f1bbcdc, 12); dl = rotl(dl, 10) al = fn4(al, bl, cl, dl, el, m[11], 0x8f1bbcdc, 14); cl = rotl(cl, 10) el = fn4(el, al, bl, cl, dl, m[10], 0x8f1bbcdc, 15); bl = rotl(bl, 10) dl = fn4(dl, el, al, bl, cl, m[0], 0x8f1bbcdc, 14); al = rotl(al, 10) cl = fn4(cl, dl, el, al, bl, m[8], 0x8f1bbcdc, 15); el = rotl(el, 10) bl = fn4(bl, cl, dl, el, al, m[12], 0x8f1bbcdc, 9); dl = rotl(dl, 10) al = fn4(al, bl, cl, dl, el, m[4], 0x8f1bbcdc, 8); cl = rotl(cl, 10) el = fn4(el, al, bl, cl, dl, m[13], 0x8f1bbcdc, 9); bl = rotl(bl, 10) dl = fn4(dl, el, al, bl, cl, m[3], 0x8f1bbcdc, 14); al = rotl(al, 10) cl = fn4(cl, dl, el, al, bl, m[7], 0x8f1bbcdc, 5); el = rotl(el, 10) bl = fn4(bl, cl, dl, el, al, m[15], 0x8f1bbcdc, 6); dl = rotl(dl, 10) al = fn4(al, bl, cl, dl, el, m[14], 0x8f1bbcdc, 8); cl = rotl(cl, 10) el = fn4(el, al, bl, cl, dl, m[5], 0x8f1bbcdc, 6); bl = rotl(bl, 10) dl = fn4(dl, el, al, bl, cl, m[6], 0x8f1bbcdc, 5); al = rotl(al, 10) cl = fn4(cl, dl, el, al, bl, m[2], 0x8f1bbcdc, 12); el = rotl(el, 10) // Mj = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 // K = 0xa953fd4e // Sj = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 bl = fn5(bl, cl, dl, el, al, m[4], 0xa953fd4e, 9); dl = rotl(dl, 10) al = fn5(al, bl, cl, dl, el, m[0], 0xa953fd4e, 15); cl = rotl(cl, 10) el = fn5(el, al, bl, cl, dl, m[5], 0xa953fd4e, 5); bl = rotl(bl, 10) dl = fn5(dl, el, al, bl, cl, m[9], 0xa953fd4e, 11); al = rotl(al, 10) cl = fn5(cl, dl, el, al, bl, m[7], 0xa953fd4e, 6); el = rotl(el, 10) bl = fn5(bl, cl, dl, el, al, m[12], 0xa953fd4e, 8); dl = rotl(dl, 10) al = fn5(al, bl, cl, dl, el, m[2], 0xa953fd4e, 13); cl = rotl(cl, 10) el = fn5(el, al, bl, cl, dl, m[10], 0xa953fd4e, 12); bl = rotl(bl, 10) dl = fn5(dl, el, al, bl, cl, m[14], 0xa953fd4e, 5); al = rotl(al, 10) cl = fn5(cl, dl, el, al, bl, m[1], 0xa953fd4e, 12); el = rotl(el, 10) bl = fn5(bl, cl, dl, el, al, m[3], 0xa953fd4e, 13); dl = rotl(dl, 10) al = fn5(al, bl, cl, dl, el, m[8], 0xa953fd4e, 14); cl = rotl(cl, 10) el = fn5(el, al, bl, cl, dl, m[11], 0xa953fd4e, 11); bl = rotl(bl, 10) dl = fn5(dl, el, al, bl, cl, m[6], 0xa953fd4e, 8); al = rotl(al, 10) cl = fn5(cl, dl, el, al, bl, m[15], 0xa953fd4e, 5); el = rotl(el, 10) bl = fn5(bl, cl, dl, el, al, m[13], 0xa953fd4e, 6); dl = rotl(dl, 10) var ar = this._a var br = this._b var cr = this._c var dr = this._d var er = this._e // M'j = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 // K' = 0x50a28be6 // S'j = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 ar = fn5(ar, br, cr, dr, er, m[5], 0x50a28be6, 8); cr = rotl(cr, 10) er = fn5(er, ar, br, cr, dr, m[14], 0x50a28be6, 9); br = rotl(br, 10) dr = fn5(dr, er, ar, br, cr, m[7], 0x50a28be6, 9); ar = rotl(ar, 10) cr = fn5(cr, dr, er, ar, br, m[0], 0x50a28be6, 11); er = rotl(er, 10) br = fn5(br, cr, dr, er, ar, m[9], 0x50a28be6, 13); dr = rotl(dr, 10) ar = fn5(ar, br, cr, dr, er, m[2], 0x50a28be6, 15); cr = rotl(cr, 10) er = fn5(er, ar, br, cr, dr, m[11], 0x50a28be6, 15); br = rotl(br, 10) dr = fn5(dr, er, ar, br, cr, m[4], 0x50a28be6, 5); ar = rotl(ar, 10) cr = fn5(cr, dr, er, ar, br, m[13], 0x50a28be6, 7); er = rotl(er, 10) br = fn5(br, cr, dr, er, ar, m[6], 0x50a28be6, 7); dr = rotl(dr, 10) ar = fn5(ar, br, cr, dr, er, m[15], 0x50a28be6, 8); cr = rotl(cr, 10) er = fn5(er, ar, br, cr, dr, m[8], 0x50a28be6, 11); br = rotl(br, 10) dr = fn5(dr, er, ar, br, cr, m[1], 0x50a28be6, 14); ar = rotl(ar, 10) cr = fn5(cr, dr, er, ar, br, m[10], 0x50a28be6, 14); er = rotl(er, 10) br = fn5(br, cr, dr, er, ar, m[3], 0x50a28be6, 12); dr = rotl(dr, 10) ar = fn5(ar, br, cr, dr, er, m[12], 0x50a28be6, 6); cr = rotl(cr, 10) // M'j = 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 // K' = 0x5c4dd124 // S'j = 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 er = fn4(er, ar, br, cr, dr, m[6], 0x5c4dd124, 9); br = rotl(br, 10) dr = fn4(dr, er, ar, br, cr, m[11], 0x5c4dd124, 13); ar = rotl(ar, 10) cr = fn4(cr, dr, er, ar, br, m[3], 0x5c4dd124, 15); er = rotl(er, 10) br = fn4(br, cr, dr, er, ar, m[7], 0x5c4dd124, 7); dr = rotl(dr, 10) ar = fn4(ar, br, cr, dr, er, m[0], 0x5c4dd124, 12); cr = rotl(cr, 10) er = fn4(er, ar, br, cr, dr, m[13], 0x5c4dd124, 8); br = rotl(br, 10) dr = fn4(dr, er, ar, br, cr, m[5], 0x5c4dd124, 9); ar = rotl(ar, 10) cr = fn4(cr, dr, er, ar, br, m[10], 0x5c4dd124, 11); er = rotl(er, 10) br = fn4(br, cr, dr, er, ar, m[14], 0x5c4dd124, 7); dr = rotl(dr, 10) ar = fn4(ar, br, cr, dr, er, m[15], 0x5c4dd124, 7); cr = rotl(cr, 10) er = fn4(er, ar, br, cr, dr, m[8], 0x5c4dd124, 12); br = rotl(br, 10) dr = fn4(dr, er, ar, br, cr, m[12], 0x5c4dd124, 7); ar = rotl(ar, 10) cr = fn4(cr, dr, er, ar, br, m[4], 0x5c4dd124, 6); er = rotl(er, 10) br = fn4(br, cr, dr, er, ar, m[9], 0x5c4dd124, 15); dr = rotl(dr, 10) ar = fn4(ar, br, cr, dr, er, m[1], 0x5c4dd124, 13); cr = rotl(cr, 10) er = fn4(er, ar, br, cr, dr, m[2], 0x5c4dd124, 11); br = rotl(br, 10) // M'j = 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 // K' = 0x6d703ef3 // S'j = 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 dr = fn3(dr, er, ar, br, cr, m[15], 0x6d703ef3, 9); ar = rotl(ar, 10) cr = fn3(cr, dr, er, ar, br, m[5], 0x6d703ef3, 7); er = rotl(er, 10) br = fn3(br, cr, dr, er, ar, m[1], 0x6d703ef3, 15); dr = rotl(dr, 10) ar = fn3(ar, br, cr, dr, er, m[3], 0x6d703ef3, 11); cr = rotl(cr, 10) er = fn3(er, ar, br, cr, dr, m[7], 0x6d703ef3, 8); br = rotl(br, 10) dr = fn3(dr, er, ar, br, cr, m[14], 0x6d703ef3, 6); ar = rotl(ar, 10) cr = fn3(cr, dr, er, ar, br, m[6], 0x6d703ef3, 6); er = rotl(er, 10) br = fn3(br, cr, dr, er, ar, m[9], 0x6d703ef3, 14); dr = rotl(dr, 10) ar = fn3(ar, br, cr, dr, er, m[11], 0x6d703ef3, 12); cr = rotl(cr, 10) er = fn3(er, ar, br, cr, dr, m[8], 0x6d703ef3, 13); br = rotl(br, 10) dr = fn3(dr, er, ar, br, cr, m[12], 0x6d703ef3, 5); ar = rotl(ar, 10) cr = fn3(cr, dr, er, ar, br, m[2], 0x6d703ef3, 14); er = rotl(er, 10) br = fn3(br, cr, dr, er, ar, m[10], 0x6d703ef3, 13); dr = rotl(dr, 10) ar = fn3(ar, br, cr, dr, er, m[0], 0x6d703ef3, 13); cr = rotl(cr, 10) er = fn3(er, ar, br, cr, dr, m[4], 0x6d703ef3, 7); br = rotl(br, 10) dr = fn3(dr, er, ar, br, cr, m[13], 0x6d703ef3, 5); ar = rotl(ar, 10) // M'j = 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 // K' = 0x7a6d76e9 // S'j = 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 cr = fn2(cr, dr, er, ar, br, m[8], 0x7a6d76e9, 15); er = rotl(er, 10) br = fn2(br, cr, dr, er, ar, m[6], 0x7a6d76e9, 5); dr = rotl(dr, 10) ar = fn2(ar, br, cr, dr, er, m[4], 0x7a6d76e9, 8); cr = rotl(cr, 10) er = fn2(er, ar, br, cr, dr, m[1], 0x7a6d76e9, 11); br = rotl(br, 10) dr = fn2(dr, er, ar, br, cr, m[3], 0x7a6d76e9, 14); ar = rotl(ar, 10) cr = fn2(cr, dr, er, ar, br, m[11], 0x7a6d76e9, 14); er = rotl(er, 10) br = fn2(br, cr, dr, er, ar, m[15], 0x7a6d76e9, 6); dr = rotl(dr, 10) ar = fn2(ar, br, cr, dr, er, m[0], 0x7a6d76e9, 14); cr = rotl(cr, 10) er = fn2(er, ar, br, cr, dr, m[5], 0x7a6d76e9, 6); br = rotl(br, 10) dr = fn2(dr, er, ar, br, cr, m[12], 0x7a6d76e9, 9); ar = rotl(ar, 10) cr = fn2(cr, dr, er, ar, br, m[2], 0x7a6d76e9, 12); er = rotl(er, 10) br = fn2(br, cr, dr, er, ar, m[13], 0x7a6d76e9, 9); dr = rotl(dr, 10) ar = fn2(ar, br, cr, dr, er, m[9], 0x7a6d76e9, 12); cr = rotl(cr, 10) er = fn2(er, ar, br, cr, dr, m[7], 0x7a6d76e9, 5); br = rotl(br, 10) dr = fn2(dr, er, ar, br, cr, m[10], 0x7a6d76e9, 15); ar = rotl(ar, 10) cr = fn2(cr, dr, er, ar, br, m[14], 0x7a6d76e9, 8); er = rotl(er, 10) // M'j = 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 // K' = 0x00000000 // S'j = 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 br = fn1(br, cr, dr, er, ar, m[12], 0x00000000, 8); dr = rotl(dr, 10) ar = fn1(ar, br, cr, dr, er, m[15], 0x00000000, 5); cr = rotl(cr, 10) er = fn1(er, ar, br, cr, dr, m[10], 0x00000000, 12); br = rotl(br, 10) dr = fn1(dr, er, ar, br, cr, m[4], 0x00000000, 9); ar = rotl(ar, 10) cr = fn1(cr, dr, er, ar, br, m[1], 0x00000000, 12); er = rotl(er, 10) br = fn1(br, cr, dr, er, ar, m[5], 0x00000000, 5); dr = rotl(dr, 10) ar = fn1(ar, br, cr, dr, er, m[8], 0x00000000, 14); cr = rotl(cr, 10) er = fn1(er, ar, br, cr, dr, m[7], 0x00000000, 6); br = rotl(br, 10) dr = fn1(dr, er, ar, br, cr, m[6], 0x00000000, 8); ar = rotl(ar, 10) cr = fn1(cr, dr, er, ar, br, m[2], 0x00000000, 13); er = rotl(er, 10) br = fn1(br, cr, dr, er, ar, m[13], 0x00000000, 6); dr = rotl(dr, 10) ar = fn1(ar, br, cr, dr, er, m[14], 0x00000000, 5); cr = rotl(cr, 10) er = fn1(er, ar, br, cr, dr, m[0], 0x00000000, 15); br = rotl(br, 10) dr = fn1(dr, er, ar, br, cr, m[3], 0x00000000, 13); ar = rotl(ar, 10) cr = fn1(cr, dr, er, ar, br, m[9], 0x00000000, 11); er = rotl(er, 10) br = fn1(br, cr, dr, er, ar, m[11], 0x00000000, 11); dr = rotl(dr, 10) // change state var t = (this._b + cl + dr) | 0 this._b = (this._c + dl + er) | 0 this._c = (this._d + el + ar) | 0 this._d = (this._e + al + br) | 0 this._e = (this._a + bl + cr) | 0 this._a = t } RIPEMD160.prototype._digest = function () { // create padding and handle blocks this._block[this._blockOffset++] = 0x80 if (this._blockOffset > 56) { this._block.fill(0, this._blockOffset, 64) this._update() this._blockOffset = 0 } this._block.fill(0, this._blockOffset, 56) this._block.writeUInt32LE(this._length[0], 56) this._block.writeUInt32LE(this._length[1], 60) this._update() // produce result var buffer = new Buffer(20) buffer.writeInt32LE(this._a, 0) buffer.writeInt32LE(this._b, 4) buffer.writeInt32LE(this._c, 8) buffer.writeInt32LE(this._d, 12) buffer.writeInt32LE(this._e, 16) return buffer } function rotl (x, n) { return (x << n) | (x >>> (32 - n)) } function fn1 (a, b, c, d, e, m, k, s) { return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0 } function fn2 (a, b, c, d, e, m, k, s) { return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0 } function fn3 (a, b, c, d, e, m, k, s) { return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0 } function fn4 (a, b, c, d, e, m, k, s) { return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0 } function fn5 (a, b, c, d, e, m, k, s) { return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0 } module.exports = RIPEMD160 }).call(this,require("buffer").Buffer) },{"buffer":54,"hash-base":92,"inherits":108}],148:[function(require,module,exports){ /* eslint-disable node/no-deprecated-api */ var buffer = require('buffer') var Buffer = buffer.Buffer // alternative to using Object.keys for old browsers function copyProps (src, dst) { for (var key in src) { dst[key] = src[key] } } if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { module.exports = buffer } else { // Copy properties from require('buffer') copyProps(buffer, exports) exports.Buffer = SafeBuffer } function SafeBuffer (arg, encodingOrOffset, length) { return Buffer(arg, encodingOrOffset, length) } // Copy static methods from Buffer copyProps(Buffer, SafeBuffer) SafeBuffer.from = function (arg, encodingOrOffset, length) { if (typeof arg === 'number') { throw new TypeError('Argument must not be a number') } return Buffer(arg, encodingOrOffset, length) } SafeBuffer.alloc = function (size, fill, encoding) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } var buf = Buffer(size) if (fill !== undefined) { if (typeof encoding === 'string') { buf.fill(fill, encoding) } else { buf.fill(fill) } } else { buf.fill(0) } return buf } SafeBuffer.allocUnsafe = function (size) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } return Buffer(size) } SafeBuffer.allocUnsafeSlow = function (size) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } return buffer.SlowBuffer(size) } },{"buffer":54}],149:[function(require,module,exports){ (function (Buffer){ // prototype class for hash functions function Hash (blockSize, finalSize) { this._block = new Buffer(blockSize) this._finalSize = finalSize this._blockSize = blockSize this._len = 0 this._s = 0 } Hash.prototype.update = function (data, enc) { if (typeof data === 'string') { enc = enc || 'utf8' data = new Buffer(data, enc) } var l = this._len += data.length var s = this._s || 0 var f = 0 var buffer = this._block while (s < l) { var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize)) var ch = (t - f) for (var i = 0; i < ch; i++) { buffer[(s % this._blockSize) + i] = data[i + f] } s += ch f += ch if ((s % this._blockSize) === 0) { this._update(buffer) } } this._s = s return this } Hash.prototype.digest = function (enc) { // Suppose the length of the message M, in bits, is l var l = this._len * 8 // Append the bit 1 to the end of the message this._block[this._len % this._blockSize] = 0x80 // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize this._block.fill(0, this._len % this._blockSize + 1) if (l % (this._blockSize * 8) >= this._finalSize * 8) { this._update(this._block) this._block.fill(0) } // to this append the block which is equal to the number l written in binary // TODO: handle case where l is > Math.pow(2, 29) this._block.writeInt32BE(l, this._blockSize - 4) var hash = this._update(this._block) || this._hash() return enc ? hash.toString(enc) : hash } Hash.prototype._update = function () { throw new Error('_update must be implemented by subclass') } module.exports = Hash }).call(this,require("buffer").Buffer) },{"buffer":54}],150:[function(require,module,exports){ var exports = module.exports = function SHA (algorithm) { algorithm = algorithm.toLowerCase() var Algorithm = exports[algorithm] if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)') return new Algorithm() } exports.sha = require('./sha') exports.sha1 = require('./sha1') exports.sha224 = require('./sha224') exports.sha256 = require('./sha256') exports.sha384 = require('./sha384') exports.sha512 = require('./sha512') },{"./sha":151,"./sha1":152,"./sha224":153,"./sha256":154,"./sha384":155,"./sha512":156}],151:[function(require,module,exports){ (function (Buffer){ /* * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined * in FIPS PUB 180-1 * This source code is derived from sha1.js of the same repository. * The difference between SHA-0 and SHA-1 is just a bitwise rotate left * operation was added. */ var inherits = require('inherits') var Hash = require('./hash') var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 ] var W = new Array(80) function Sha () { this.init() this._w = W Hash.call(this, 64, 56) } inherits(Sha, Hash) Sha.prototype.init = function () { this._a = 0x67452301 this._b = 0xefcdab89 this._c = 0x98badcfe this._d = 0x10325476 this._e = 0xc3d2e1f0 return this } function rotl5 (num) { return (num << 5) | (num >>> 27) } function rotl30 (num) { return (num << 30) | (num >>> 2) } function ft (s, b, c, d) { if (s === 0) return (b & c) | ((~b) & d) if (s === 2) return (b & c) | (b & d) | (c & d) return b ^ c ^ d } Sha.prototype._update = function (M) { var W = this._w var a = this._a | 0 var b = this._b | 0 var c = this._c | 0 var d = this._d | 0 var e = this._e | 0 for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16] for (var j = 0; j < 80; ++j) { var s = ~~(j / 20) var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 e = d d = c c = rotl30(b) b = a a = t } this._a = (a + this._a) | 0 this._b = (b + this._b) | 0 this._c = (c + this._c) | 0 this._d = (d + this._d) | 0 this._e = (e + this._e) | 0 } Sha.prototype._hash = function () { var H = new Buffer(20) H.writeInt32BE(this._a | 0, 0) H.writeInt32BE(this._b | 0, 4) H.writeInt32BE(this._c | 0, 8) H.writeInt32BE(this._d | 0, 12) H.writeInt32BE(this._e | 0, 16) return H } module.exports = Sha }).call(this,require("buffer").Buffer) },{"./hash":149,"buffer":54,"inherits":108}],152:[function(require,module,exports){ (function (Buffer){ /* * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined * in FIPS PUB 180-1 * Version 2.1a Copyright Paul Johnston 2000 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for details. */ var inherits = require('inherits') var Hash = require('./hash') var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 ] var W = new Array(80) function Sha1 () { this.init() this._w = W Hash.call(this, 64, 56) } inherits(Sha1, Hash) Sha1.prototype.init = function () { this._a = 0x67452301 this._b = 0xefcdab89 this._c = 0x98badcfe this._d = 0x10325476 this._e = 0xc3d2e1f0 return this } function rotl1 (num) { return (num << 1) | (num >>> 31) } function rotl5 (num) { return (num << 5) | (num >>> 27) } function rotl30 (num) { return (num << 30) | (num >>> 2) } function ft (s, b, c, d) { if (s === 0) return (b & c) | ((~b) & d) if (s === 2) return (b & c) | (b & d) | (c & d) return b ^ c ^ d } Sha1.prototype._update = function (M) { var W = this._w var a = this._a | 0 var b = this._b | 0 var c = this._c | 0 var d = this._d | 0 var e = this._e | 0 for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]) for (var j = 0; j < 80; ++j) { var s = ~~(j / 20) var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 e = d d = c c = rotl30(b) b = a a = t } this._a = (a + this._a) | 0 this._b = (b + this._b) | 0 this._c = (c + this._c) | 0 this._d = (d + this._d) | 0 this._e = (e + this._e) | 0 } Sha1.prototype._hash = function () { var H = new Buffer(20) H.writeInt32BE(this._a | 0, 0) H.writeInt32BE(this._b | 0, 4) H.writeInt32BE(this._c | 0, 8) H.writeInt32BE(this._d | 0, 12) H.writeInt32BE(this._e | 0, 16) return H } module.exports = Sha1 }).call(this,require("buffer").Buffer) },{"./hash":149,"buffer":54,"inherits":108}],153:[function(require,module,exports){ (function (Buffer){ /** * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined * in FIPS 180-2 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * */ var inherits = require('inherits') var Sha256 = require('./sha256') var Hash = require('./hash') var W = new Array(64) function Sha224 () { this.init() this._w = W // new Array(64) Hash.call(this, 64, 56) } inherits(Sha224, Sha256) Sha224.prototype.init = function () { this._a = 0xc1059ed8 this._b = 0x367cd507 this._c = 0x3070dd17 this._d = 0xf70e5939 this._e = 0xffc00b31 this._f = 0x68581511 this._g = 0x64f98fa7 this._h = 0xbefa4fa4 return this } Sha224.prototype._hash = function () { var H = new Buffer(28) H.writeInt32BE(this._a, 0) H.writeInt32BE(this._b, 4) H.writeInt32BE(this._c, 8) H.writeInt32BE(this._d, 12) H.writeInt32BE(this._e, 16) H.writeInt32BE(this._f, 20) H.writeInt32BE(this._g, 24) return H } module.exports = Sha224 }).call(this,require("buffer").Buffer) },{"./hash":149,"./sha256":154,"buffer":54,"inherits":108}],154:[function(require,module,exports){ (function (Buffer){ /** * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined * in FIPS 180-2 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * */ var inherits = require('inherits') var Hash = require('./hash') var K = [ 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 ] var W = new Array(64) function Sha256 () { this.init() this._w = W // new Array(64) Hash.call(this, 64, 56) } inherits(Sha256, Hash) Sha256.prototype.init = function () { this._a = 0x6a09e667 this._b = 0xbb67ae85 this._c = 0x3c6ef372 this._d = 0xa54ff53a this._e = 0x510e527f this._f = 0x9b05688c this._g = 0x1f83d9ab this._h = 0x5be0cd19 return this } function ch (x, y, z) { return z ^ (x & (y ^ z)) } function maj (x, y, z) { return (x & y) | (z & (x | y)) } function sigma0 (x) { return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10) } function sigma1 (x) { return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7) } function gamma0 (x) { return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3) } function gamma1 (x) { return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10) } Sha256.prototype._update = function (M) { var W = this._w var a = this._a | 0 var b = this._b | 0 var c = this._c | 0 var d = this._d | 0 var e = this._e | 0 var f = this._f | 0 var g = this._g | 0 var h = this._h | 0 for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0 for (var j = 0; j < 64; ++j) { var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0 var T2 = (sigma0(a) + maj(a, b, c)) | 0 h = g g = f f = e e = (d + T1) | 0 d = c c = b b = a a = (T1 + T2) | 0 } this._a = (a + this._a) | 0 this._b = (b + this._b) | 0 this._c = (c + this._c) | 0 this._d = (d + this._d) | 0 this._e = (e + this._e) | 0 this._f = (f + this._f) | 0 this._g = (g + this._g) | 0 this._h = (h + this._h) | 0 } Sha256.prototype._hash = function () { var H = new Buffer(32) H.writeInt32BE(this._a, 0) H.writeInt32BE(this._b, 4) H.writeInt32BE(this._c, 8) H.writeInt32BE(this._d, 12) H.writeInt32BE(this._e, 16) H.writeInt32BE(this._f, 20) H.writeInt32BE(this._g, 24) H.writeInt32BE(this._h, 28) return H } module.exports = Sha256 }).call(this,require("buffer").Buffer) },{"./hash":149,"buffer":54,"inherits":108}],155:[function(require,module,exports){ (function (Buffer){ var inherits = require('inherits') var SHA512 = require('./sha512') var Hash = require('./hash') var W = new Array(160) function Sha384 () { this.init() this._w = W Hash.call(this, 128, 112) } inherits(Sha384, SHA512) Sha384.prototype.init = function () { this._ah = 0xcbbb9d5d this._bh = 0x629a292a this._ch = 0x9159015a this._dh = 0x152fecd8 this._eh = 0x67332667 this._fh = 0x8eb44a87 this._gh = 0xdb0c2e0d this._hh = 0x47b5481d this._al = 0xc1059ed8 this._bl = 0x367cd507 this._cl = 0x3070dd17 this._dl = 0xf70e5939 this._el = 0xffc00b31 this._fl = 0x68581511 this._gl = 0x64f98fa7 this._hl = 0xbefa4fa4 return this } Sha384.prototype._hash = function () { var H = new Buffer(48) function writeInt64BE (h, l, offset) { H.writeInt32BE(h, offset) H.writeInt32BE(l, offset + 4) } writeInt64BE(this._ah, this._al, 0) writeInt64BE(this._bh, this._bl, 8) writeInt64BE(this._ch, this._cl, 16) writeInt64BE(this._dh, this._dl, 24) writeInt64BE(this._eh, this._el, 32) writeInt64BE(this._fh, this._fl, 40) return H } module.exports = Sha384 }).call(this,require("buffer").Buffer) },{"./hash":149,"./sha512":156,"buffer":54,"inherits":108}],156:[function(require,module,exports){ (function (Buffer){ var inherits = require('inherits') var Hash = require('./hash') var K = [ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 ] var W = new Array(160) function Sha512 () { this.init() this._w = W Hash.call(this, 128, 112) } inherits(Sha512, Hash) Sha512.prototype.init = function () { this._ah = 0x6a09e667 this._bh = 0xbb67ae85 this._ch = 0x3c6ef372 this._dh = 0xa54ff53a this._eh = 0x510e527f this._fh = 0x9b05688c this._gh = 0x1f83d9ab this._hh = 0x5be0cd19 this._al = 0xf3bcc908 this._bl = 0x84caa73b this._cl = 0xfe94f82b this._dl = 0x5f1d36f1 this._el = 0xade682d1 this._fl = 0x2b3e6c1f this._gl = 0xfb41bd6b this._hl = 0x137e2179 return this } function Ch (x, y, z) { return z ^ (x & (y ^ z)) } function maj (x, y, z) { return (x & y) | (z & (x | y)) } function sigma0 (x, xl) { return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25) } function sigma1 (x, xl) { return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23) } function Gamma0 (x, xl) { return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7) } function Gamma0l (x, xl) { return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25) } function Gamma1 (x, xl) { return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6) } function Gamma1l (x, xl) { return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26) } function getCarry (a, b) { return (a >>> 0) < (b >>> 0) ? 1 : 0 } Sha512.prototype._update = function (M) { var W = this._w var ah = this._ah | 0 var bh = this._bh | 0 var ch = this._ch | 0 var dh = this._dh | 0 var eh = this._eh | 0 var fh = this._fh | 0 var gh = this._gh | 0 var hh = this._hh | 0 var al = this._al | 0 var bl = this._bl | 0 var cl = this._cl | 0 var dl = this._dl | 0 var el = this._el | 0 var fl = this._fl | 0 var gl = this._gl | 0 var hl = this._hl | 0 for (var i = 0; i < 32; i += 2) { W[i] = M.readInt32BE(i * 4) W[i + 1] = M.readInt32BE(i * 4 + 4) } for (; i < 160; i += 2) { var xh = W[i - 15 * 2] var xl = W[i - 15 * 2 + 1] var gamma0 = Gamma0(xh, xl) var gamma0l = Gamma0l(xl, xh) xh = W[i - 2 * 2] xl = W[i - 2 * 2 + 1] var gamma1 = Gamma1(xh, xl) var gamma1l = Gamma1l(xl, xh) // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] var Wi7h = W[i - 7 * 2] var Wi7l = W[i - 7 * 2 + 1] var Wi16h = W[i - 16 * 2] var Wi16l = W[i - 16 * 2 + 1] var Wil = (gamma0l + Wi7l) | 0 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0 Wil = (Wil + gamma1l) | 0 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0 Wil = (Wil + Wi16l) | 0 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0 W[i] = Wih W[i + 1] = Wil } for (var j = 0; j < 160; j += 2) { Wih = W[j] Wil = W[j + 1] var majh = maj(ah, bh, ch) var majl = maj(al, bl, cl) var sigma0h = sigma0(ah, al) var sigma0l = sigma0(al, ah) var sigma1h = sigma1(eh, el) var sigma1l = sigma1(el, eh) // t1 = h + sigma1 + ch + K[j] + W[j] var Kih = K[j] var Kil = K[j + 1] var chh = Ch(eh, fh, gh) var chl = Ch(el, fl, gl) var t1l = (hl + sigma1l) | 0 var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0 t1l = (t1l + chl) | 0 t1h = (t1h + chh + getCarry(t1l, chl)) | 0 t1l = (t1l + Kil) | 0 t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0 t1l = (t1l + Wil) | 0 t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0 // t2 = sigma0 + maj var t2l = (sigma0l + majl) | 0 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0 hh = gh hl = gl gh = fh gl = fl fh = eh fl = el el = (dl + t1l) | 0 eh = (dh + t1h + getCarry(el, dl)) | 0 dh = ch dl = cl ch = bh cl = bl bh = ah bl = al al = (t1l + t2l) | 0 ah = (t1h + t2h + getCarry(al, t1l)) | 0 } this._al = (this._al + al) | 0 this._bl = (this._bl + bl) | 0 this._cl = (this._cl + cl) | 0 this._dl = (this._dl + dl) | 0 this._el = (this._el + el) | 0 this._fl = (this._fl + fl) | 0 this._gl = (this._gl + gl) | 0 this._hl = (this._hl + hl) | 0 this._ah = (this._ah + ah + getCarry(this._al, al)) | 0 this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0 this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0 this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0 this._eh = (this._eh + eh + getCarry(this._el, el)) | 0 this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0 this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0 this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0 } Sha512.prototype._hash = function () { var H = new Buffer(64) function writeInt64BE (h, l, offset) { H.writeInt32BE(h, offset) H.writeInt32BE(l, offset + 4) } writeInt64BE(this._ah, this._al, 0) writeInt64BE(this._bh, this._bl, 8) writeInt64BE(this._ch, this._cl, 16) writeInt64BE(this._dh, this._dl, 24) writeInt64BE(this._eh, this._el, 32) writeInt64BE(this._fh, this._fl, 40) writeInt64BE(this._gh, this._gl, 48) writeInt64BE(this._hh, this._hl, 56) return H } module.exports = Sha512 }).call(this,require("buffer").Buffer) },{"./hash":149,"buffer":54,"inherits":108}],157:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. module.exports = Stream; var EE = require('events').EventEmitter; var inherits = require('inherits'); inherits(Stream, EE); Stream.Readable = require('readable-stream/readable.js'); Stream.Writable = require('readable-stream/writable.js'); Stream.Duplex = require('readable-stream/duplex.js'); Stream.Transform = require('readable-stream/transform.js'); Stream.PassThrough = require('readable-stream/passthrough.js'); // Backwards-compat with node 0.4.x Stream.Stream = Stream; // old-style streams. Note that the pipe method (the only relevant // part of this class) is overridden in the Readable class. function Stream() { EE.call(this); } Stream.prototype.pipe = function(dest, options) { var source = this; function ondata(chunk) { if (dest.writable) { if (false === dest.write(chunk) && source.pause) { source.pause(); } } } source.on('data', ondata); function ondrain() { if (source.readable && source.resume) { source.resume(); } } dest.on('drain', ondrain); // If the 'end' option is not supplied, dest.end() will be called when // source gets the 'end' or 'close' events. Only dest.end() once. if (!dest._isStdio && (!options || options.end !== false)) { source.on('end', onend); source.on('close', onclose); } var didOnEnd = false; function onend() { if (didOnEnd) return; didOnEnd = true; dest.end(); } function onclose() { if (didOnEnd) return; didOnEnd = true; if (typeof dest.destroy === 'function') dest.destroy(); } // don't leave dangling pipes when there are errors. function onerror(er) { cleanup(); if (EE.listenerCount(this, 'error') === 0) { throw er; // Unhandled stream error in pipe. } } source.on('error', onerror); dest.on('error', onerror); // remove all the event listeners that were added. function cleanup() { source.removeListener('data', ondata); dest.removeListener('drain', ondrain); source.removeListener('end', onend); source.removeListener('close', onclose); source.removeListener('error', onerror); dest.removeListener('error', onerror); source.removeListener('end', cleanup); source.removeListener('close', cleanup); dest.removeListener('close', cleanup); } source.on('end', cleanup); source.on('close', cleanup); dest.on('close', cleanup); dest.emit('pipe', source); // Allow for unix-like usage: A.pipe(B).pipe(C) return dest; }; },{"events":90,"inherits":108,"readable-stream/duplex.js":134,"readable-stream/passthrough.js":143,"readable-stream/readable.js":144,"readable-stream/transform.js":145,"readable-stream/writable.js":146}],158:[function(require,module,exports){ 'use strict'; var Buffer = require('safe-buffer').Buffer; var isEncoding = Buffer.isEncoding || function (encoding) { encoding = '' + encoding; switch (encoding && encoding.toLowerCase()) { case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': return true; default: return false; } }; function _normalizeEncoding(enc) { if (!enc) return 'utf8'; var retried; while (true) { switch (enc) { case 'utf8': case 'utf-8': return 'utf8'; case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return 'utf16le'; case 'latin1': case 'binary': return 'latin1'; case 'base64': case 'ascii': case 'hex': return enc; default: if (retried) return; // undefined enc = ('' + enc).toLowerCase(); retried = true; } } }; // Do not cache `Buffer.isEncoding` when checking encoding names as some // modules monkey-patch it to support additional encodings function normalizeEncoding(enc) { var nenc = _normalizeEncoding(enc); if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); return nenc || enc; } // StringDecoder provides an interface for efficiently splitting a series of // buffers into a series of JS strings without breaking apart multi-byte // characters. exports.StringDecoder = StringDecoder; function StringDecoder(encoding) { this.encoding = normalizeEncoding(encoding); var nb; switch (this.encoding) { case 'utf16le': this.text = utf16Text; this.end = utf16End; nb = 4; break; case 'utf8': this.fillLast = utf8FillLast; nb = 4; break; case 'base64': this.text = base64Text; this.end = base64End; nb = 3; break; default: this.write = simpleWrite; this.end = simpleEnd; return; } this.lastNeed = 0; this.lastTotal = 0; this.lastChar = Buffer.allocUnsafe(nb); } StringDecoder.prototype.write = function (buf) { if (buf.length === 0) return ''; var r; var i; if (this.lastNeed) { r = this.fillLast(buf); if (r === undefined) return ''; i = this.lastNeed; this.lastNeed = 0; } else { i = 0; } if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); return r || ''; }; StringDecoder.prototype.end = utf8End; // Returns only complete characters in a Buffer StringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer StringDecoder.prototype.fillLast = function (buf) { if (this.lastNeed <= buf.length) { buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); return this.lastChar.toString(this.encoding, 0, this.lastTotal); } buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); this.lastNeed -= buf.length; }; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a // continuation byte. function utf8CheckByte(byte) { if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; return -1; } // Checks at most 3 bytes at the end of a Buffer in order to detect an // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) // needed to complete the UTF-8 character (if applicable) are returned. function utf8CheckIncomplete(self, buf, i) { var j = buf.length - 1; if (j < i) return 0; var nb = utf8CheckByte(buf[j]); if (nb >= 0) { if (nb > 0) self.lastNeed = nb - 1; return nb; } if (--j < i) return 0; nb = utf8CheckByte(buf[j]); if (nb >= 0) { if (nb > 0) self.lastNeed = nb - 2; return nb; } if (--j < i) return 0; nb = utf8CheckByte(buf[j]); if (nb >= 0) { if (nb > 0) { if (nb === 2) nb = 0;else self.lastNeed = nb - 3; } return nb; } return 0; } // Validates as many continuation bytes for a multi-byte UTF-8 character as // needed or are available. If we see a non-continuation byte where we expect // one, we "replace" the validated continuation bytes we've seen so far with // UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding // behavior. The continuation byte check is included three times in the case // where all of the continuation bytes for a character exist in the same buffer. // It is also done this way as a slight performance increase instead of using a // loop. function utf8CheckExtraBytes(self, buf, p) { if ((buf[0] & 0xC0) !== 0x80) { self.lastNeed = 0; return '\ufffd'.repeat(p); } if (self.lastNeed > 1 && buf.length > 1) { if ((buf[1] & 0xC0) !== 0x80) { self.lastNeed = 1; return '\ufffd'.repeat(p + 1); } if (self.lastNeed > 2 && buf.length > 2) { if ((buf[2] & 0xC0) !== 0x80) { self.lastNeed = 2; return '\ufffd'.repeat(p + 2); } } } } // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. function utf8FillLast(buf) { var p = this.lastTotal - this.lastNeed; var r = utf8CheckExtraBytes(this, buf, p); if (r !== undefined) return r; if (this.lastNeed <= buf.length) { buf.copy(this.lastChar, p, 0, this.lastNeed); return this.lastChar.toString(this.encoding, 0, this.lastTotal); } buf.copy(this.lastChar, p, 0, buf.length); this.lastNeed -= buf.length; } // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a // partial character, the character's bytes are buffered until the required // number of bytes are available. function utf8Text(buf, i) { var total = utf8CheckIncomplete(this, buf, i); if (!this.lastNeed) return buf.toString('utf8', i); this.lastTotal = total; var end = buf.length - (total - this.lastNeed); buf.copy(this.lastChar, 0, end); return buf.toString('utf8', i, end); } // For UTF-8, a replacement character for each buffered byte of a (partial) // character needs to be added to the output. function utf8End(buf) { var r = buf && buf.length ? this.write(buf) : ''; if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed); return r; } // UTF-16LE typically needs two bytes per character, but even if we have an even // number of bytes available, we need to check if we end on a leading/high // surrogate. In that case, we need to wait for the next two bytes in order to // decode the last character properly. function utf16Text(buf, i) { if ((buf.length - i) % 2 === 0) { var r = buf.toString('utf16le', i); if (r) { var c = r.charCodeAt(r.length - 1); if (c >= 0xD800 && c <= 0xDBFF) { this.lastNeed = 2; this.lastTotal = 4; this.lastChar[0] = buf[buf.length - 2]; this.lastChar[1] = buf[buf.length - 1]; return r.slice(0, -1); } } return r; } this.lastNeed = 1; this.lastTotal = 2; this.lastChar[0] = buf[buf.length - 1]; return buf.toString('utf16le', i, buf.length - 1); } // For UTF-16LE we do not explicitly append special replacement characters if we // end on a partial character, we simply let v8 handle that. function utf16End(buf) { var r = buf && buf.length ? this.write(buf) : ''; if (this.lastNeed) { var end = this.lastTotal - this.lastNeed; return r + this.lastChar.toString('utf16le', 0, end); } return r; } function base64Text(buf, i) { var n = (buf.length - i) % 3; if (n === 0) return buf.toString('base64', i); this.lastNeed = 3 - n; this.lastTotal = 3; if (n === 1) { this.lastChar[0] = buf[buf.length - 1]; } else { this.lastChar[0] = buf[buf.length - 2]; this.lastChar[1] = buf[buf.length - 1]; } return buf.toString('base64', i, buf.length - n); } function base64End(buf) { var r = buf && buf.length ? this.write(buf) : ''; if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); return r; } // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) function simpleWrite(buf) { return buf.toString(this.encoding); } function simpleEnd(buf) { return buf && buf.length ? this.write(buf) : ''; } },{"safe-buffer":148}],159:[function(require,module,exports){ (function (global){ /** * Module exports. */ module.exports = deprecate; /** * Mark that a method should not be used. * Returns a modified function which warns once by default. * * If `localStorage.noDeprecation = true` is set, then it is a no-op. * * If `localStorage.throwDeprecation = true` is set, then deprecated functions * will throw an Error when invoked. * * If `localStorage.traceDeprecation = true` is set, then deprecated functions * will invoke `console.trace()` instead of `console.error()`. * * @param {Function} fn - the function to deprecate * @param {String} msg - the string to print to the console when `fn` is invoked * @returns {Function} a new "deprecated" version of `fn` * @api public */ function deprecate (fn, msg) { if (config('noDeprecation')) { return fn; } var warned = false; function deprecated() { if (!warned) { if (config('throwDeprecation')) { throw new Error(msg); } else if (config('traceDeprecation')) { console.trace(msg); } else { console.warn(msg); } warned = true; } return fn.apply(this, arguments); } return deprecated; } /** * Checks `localStorage` for boolean values for the given `name`. * * @param {String} name * @returns {Boolean} * @api private */ function config (name) { // accessing global.localStorage can trigger a DOMException in sandboxed iframes try { if (!global.localStorage) return false; } catch (_) { return false; } var val = global.localStorage[name]; if (null == val) return false; return String(val).toLowerCase() === 'true'; } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{}],160:[function(require,module,exports){ var indexOf = require('indexof'); var Object_keys = function (obj) { if (Object.keys) return Object.keys(obj) else { var res = []; for (var key in obj) res.push(key) return res; } }; var forEach = function (xs, fn) { if (xs.forEach) return xs.forEach(fn) else for (var i = 0; i < xs.length; i++) { fn(xs[i], i, xs); } }; var defineProp = (function() { try { Object.defineProperty({}, '_', {}); return function(obj, name, value) { Object.defineProperty(obj, name, { writable: true, enumerable: false, configurable: true, value: value }) }; } catch(e) { return function(obj, name, value) { obj[name] = value; }; } }()); var globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function', 'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError', 'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError', 'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape', 'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape']; function Context() {} Context.prototype = {}; var Script = exports.Script = function NodeScript (code) { if (!(this instanceof Script)) return new Script(code); this.code = code; }; Script.prototype.runInContext = function (context) { if (!(context instanceof Context)) { throw new TypeError("needs a 'context' argument."); } var iframe = document.createElement('iframe'); if (!iframe.style) iframe.style = {}; iframe.style.display = 'none'; document.body.appendChild(iframe); var win = iframe.contentWindow; var wEval = win.eval, wExecScript = win.execScript; if (!wEval && wExecScript) { // win.eval() magically appears when this is called in IE: wExecScript.call(win, 'null'); wEval = win.eval; } forEach(Object_keys(context), function (key) { win[key] = context[key]; }); forEach(globals, function (key) { if (context[key]) { win[key] = context[key]; } }); var winKeys = Object_keys(win); var res = wEval.call(win, this.code); forEach(Object_keys(win), function (key) { // Avoid copying circular objects like `top` and `window` by only // updating existing context properties or new properties in the `win` // that was only introduced after the eval. if (key in context || indexOf(winKeys, key) === -1) { context[key] = win[key]; } }); forEach(globals, function (key) { if (!(key in context)) { defineProp(context, key, win[key]); } }); document.body.removeChild(iframe); return res; }; Script.prototype.runInThisContext = function () { return eval(this.code); // maybe... }; Script.prototype.runInNewContext = function (context) { var ctx = Script.createContext(context); var res = this.runInContext(ctx); forEach(Object_keys(ctx), function (key) { context[key] = ctx[key]; }); return res; }; forEach(Object_keys(Script.prototype), function (name) { exports[name] = Script[name] = function (code) { var s = Script(code); return s[name].apply(s, [].slice.call(arguments, 1)); }; }); exports.createScript = function (code) { return exports.Script(code); }; exports.createContext = Script.createContext = function (context) { var copy = new Context(); if(typeof context === 'object') { forEach(Object_keys(context), function (key) { copy[key] = context[key]; }); } return copy; }; },{"indexof":107}]},{},[1]); function parseEpt(event) { let buffer = event.data.buffer; let view = new DataView(buffer); let schema = event.data.schema; let scale = event.data.scale; let offset = event.data.offset; let mins = event.data.mins; let dimensions = schema.reduce((p, c) => { p[c.name] = c; return p; }, { }); let dimOffset = (name) => { let offset = 0; for (var i = 0; i < schema.length; ++i) { if (schema[i].name == name) return offset; offset += schema[i].size; } return undefined; }; let getExtractor = (name) => { let offset = dimOffset(name); let type = dimensions[name].type; let size = dimensions[name].size; if (type == 'signed') switch (size) { case 1: return (p) => view.getInt8(p + offset); case 2: return (p) => view.getInt16(p + offset, true); case 4: return (p) => view.getInt32(p + offset, true); case 8: return (p) => view.getInt64(p + offset, true); } if (type == 'unsigned') switch (size) { case 1: return (p) => view.getUint8(p + offset); case 2: return (p) => view.getUint16(p + offset, true); case 4: return (p) => view.getUint32(p + offset, true); case 8: return (p) => view.getUint64(p + offset, true); } if (type == 'float') switch (size) { case 4: return (p) => view.getFloat32(p + offset, true); case 8: return (p) => view.getFloat64(p + offset, true); } let str = JSON.stringify(dimensions[name]); throw new Error(`Invalid dimension specification for ${name}: ${str}`); }; let pointSize = schema.reduce((p, c) => p + c.size, 0); let numPoints = buffer.byteLength / pointSize; let xyzBuffer, rgbBuffer, intensityBuffer, classificationBuffer, returnNumberBuffer, numberOfReturnsBuffer, pointSourceIdBuffer; let xyz, rgb, intensity, classification, returnNumber, numberOfReturns, pointSourceId; let xyzExtractor, rgbExtractor, intensityExtractor, classificationExtractor, returnNumberExtractor, numberOfReturnsExtractor, pointSourceIdExtractor; let twoByteColor = false; if (dimensions['X'] && dimensions['Y'] && dimensions['Z']) { xyzBuffer = new ArrayBuffer(numPoints * 4 * 3); xyz = new Float32Array(xyzBuffer); xyzExtractor = [ getExtractor('X'), getExtractor('Y'), getExtractor('Z') ]; } if (dimensions['Red'] && dimensions['Green'] && dimensions['Blue']) { rgbBuffer = new ArrayBuffer(numPoints * 4); rgb = new Uint8Array(rgbBuffer); rgbExtractor = [ getExtractor('Red'), getExtractor('Green'), getExtractor('Blue') ]; let r, g, b, pos; for (let i = 0; i < numPoints && !twoByteColor; ++i) { pos = i * pointSize; r = rgbExtractor[0](pos); g = rgbExtractor[1](pos); b = rgbExtractor[2](pos); if (r > 255 || g > 255 || b > 255) twoByteColor = true; } } if (dimensions['Intensity']) { intensityBuffer = new ArrayBuffer(numPoints * 4); intensity = new Float32Array(intensityBuffer); intensityExtractor = getExtractor('Intensity'); } if (dimensions['Classification']) { classificationBuffer = new ArrayBuffer(numPoints); classification = new Uint8Array(classificationBuffer); classificationExtractor = getExtractor('Classification'); } if (dimensions['ReturnNumber']) { returnNumberBuffer = new ArrayBuffer(numPoints); returnNumber = new Uint8Array(returnNumberBuffer); returnNumberExtractor = getExtractor('ReturnNumber'); } if (dimensions['NumberOfReturns']) { numberOfReturnsBuffer = new ArrayBuffer(numPoints); numberOfReturns = new Uint8Array(numberOfReturnsBuffer); numberOfReturnsExtractor = getExtractor('NumberOfReturns'); } if (dimensions['PointSourceId']) { pointSourceIdBuffer = new ArrayBuffer(numPoints * 2); pointSourceId = new Uint16Array(pointSourceIdBuffer); pointSourceIdExtractor = getExtractor('PointSourceId'); } let mean = [0, 0, 0]; let bounds = { min: [Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE], max: [-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE], }; let x, y, z, r, g, b; for (let i = 0; i < numPoints; ++i) { let pos = i * pointSize; if (xyz) { x = xyzExtractor[0](pos) * scale.x + offset.x - mins[0]; y = xyzExtractor[1](pos) * scale.y + offset.y - mins[1]; z = xyzExtractor[2](pos) * scale.z + offset.z - mins[2]; mean[0] += x / numPoints; mean[1] += y / numPoints; mean[2] += z / numPoints; bounds.min[0] = Math.min(bounds.min[0], x); bounds.min[1] = Math.min(bounds.min[1], y); bounds.min[2] = Math.min(bounds.min[2], z); bounds.max[0] = Math.max(bounds.max[0], x); bounds.max[1] = Math.max(bounds.max[1], y); bounds.max[2] = Math.max(bounds.max[2], z); xyz[3 * i + 0] = x; xyz[3 * i + 1] = y; xyz[3 * i + 2] = z; } if (rgb) { r = rgbExtractor[0](pos); g = rgbExtractor[1](pos); b = rgbExtractor[2](pos); if (twoByteColor) { r /= 256; g /= 256; b /= 256; } rgb[4 * i + 0] = r; rgb[4 * i + 1] = g; rgb[4 * i + 2] = b; } if (intensity) intensity[i] = intensityExtractor(pos); if (classification) classification[i] = classificationExtractor(pos); if (returnNumber) returnNumber[i] = returnNumberExtractor(pos); if (numberOfReturns) numberOfReturns[i] = numberOfReturnsExtractor(pos); if (pointSourceId) pointSourceId[i] = pointSourceIdExtractor(pos); } let indicesBuffer = new ArrayBuffer(numPoints * 4); let indices = new Uint32Array(indicesBuffer); for (let i = 0; i < numPoints; ++i) { indices[i] = i; } let message = { numPoints: numPoints, tightBoundingBox: bounds, mean: mean, position: xyzBuffer, color: rgbBuffer, intensity: intensityBuffer, classification: classificationBuffer, returnNumber: returnNumberBuffer, numberOfReturns: numberOfReturnsBuffer, pointSourceId: pointSourceIdBuffer, indices: indicesBuffer }; let transferables = [ message.position, message.color, message.intensity, message.classification, message.returnNumber, message.numberOfReturns, message.pointSourceId, message.indices ].filter((v) => v); postMessage(message, transferables); } // window = { }; // document = { }; // importScripts('/libs/zstd-codec/bundle.js', '/libs/ept/ParseBuffer.js'); onmessage = async function(event) { const zstd = await new Promise(resolve => window.ZstdCodec.run(resolve)); const streaming = new zstd.Streaming(); const arr = new Uint8Array(event.data.buffer); const decompressed = streaming.decompress(arr); event.data.buffer = decompressed.buffer parseEpt(event); };