From 8e3132660957057a5d51ca59abdb949ca2c0bc32 Mon Sep 17 00:00:00 2001 From: Anthony Foxclaw Date: Sun, 28 Jun 2020 13:26:28 -0400 Subject: [PATCH] Added sound effects from Kenny - Added sound effects from Kenny for when varies buttons are pressed so it's no longer a totally silent game - Swapped old fonts for Kenny's fonts - Renamed music directory to sounds and removed old imports - Removed docs page --- docs/TonysDressUp.js | 419 ------------------ docs/TonysDressUp.pck | Bin 1795232 -> 0 bytes docs/TonysDressUp.png | Bin 32299 -> 0 bytes docs/TonysDressUp.wasm | Bin 20418497 -> 0 bytes docs/favicon.png | Bin 32299 -> 0 bytes docs/index.html | 268 ----------- fonts/RobotLight.res | Bin 279 -> 0 bytes fonts/kenny_bold.ttf | Bin 0 -> 10316 bytes ..._extra_bold_16.tres => kenny_bold_16.tres} | 2 +- fonts/kenny_pixel.ttf | Bin 0 -> 28276 bytes ...extra_bold_24.tres => kenny_pixel_25.tres} | 4 +- fonts/montserrat/Montserrat-ExtraBold.otf | Bin 71380 -> 0 bytes fonts/montserrat_extra_bold_32.tres | 9 - fonts/montserrat_extra_bold_48.tres | 13 - fonts/montserrat_extra_bold_62.tres | 13 - fonts/roboto/LICENSE.txt | 202 --------- fonts/roboto/Roboto-Light.ttf | Bin 162420 -> 0 bytes fonts/roboto/Roboto-Medium.ttf | Bin 162588 -> 0 bytes fonts/roboto/Roboto-Thin.ttf | Bin 163132 -> 0 bytes music/.gitkeep | 0 music/at_the_lake.ogg.import | 15 - music/mushrooms.ogg.import | 15 - music/reminiscing.ogg.import | 15 - music/together_again.ogg.import | 15 - project.godot | 6 +- resources/Game.theme | Bin 271241 -> 271110 bytes scenes/clothing/base/accessoryBase.tscn | 3 - scenes/clothing/base/baseClothing.tscn | 7 +- scenes/clothing/base/bottomsBase.tscn | 3 - scenes/clothing/base/topsBase.tscn | 3 - scenes/clothing/base/undiesBase.tscn | 3 - scenes/game.tscn | 6 +- scenes/wardrobe.tscn | 6 + scripts/clothing/accessoryBase.gd | 3 +- scripts/clothing/baseClothing.gd | 2 + scripts/clothing/bottomsBase.gd | 3 +- scripts/clothing/topsBase.gd | 3 +- scripts/clothing/undiesBase.gd | 3 +- scripts/ui.gd | 2 + sounds/select_001.ogg.import | 15 + sounds/select_006.ogg.import | 15 + 41 files changed, 63 insertions(+), 1010 deletions(-) delete mode 100644 docs/TonysDressUp.js delete mode 100644 docs/TonysDressUp.pck delete mode 100644 docs/TonysDressUp.png delete mode 100644 docs/TonysDressUp.wasm delete mode 100644 docs/favicon.png delete mode 100644 docs/index.html delete mode 100644 fonts/RobotLight.res create mode 100755 fonts/kenny_bold.ttf rename fonts/{montserrat_extra_bold_16.tres => kenny_bold_16.tres} (57%) create mode 100755 fonts/kenny_pixel.ttf rename fonts/{montserrat_extra_bold_24.tres => kenny_pixel_25.tres} (55%) delete mode 100644 fonts/montserrat/Montserrat-ExtraBold.otf delete mode 100644 fonts/montserrat_extra_bold_32.tres delete mode 100644 fonts/montserrat_extra_bold_48.tres delete mode 100644 fonts/montserrat_extra_bold_62.tres delete mode 100644 fonts/roboto/LICENSE.txt delete mode 100644 fonts/roboto/Roboto-Light.ttf delete mode 100644 fonts/roboto/Roboto-Medium.ttf delete mode 100644 fonts/roboto/Roboto-Thin.ttf delete mode 100644 music/.gitkeep delete mode 100644 music/at_the_lake.ogg.import delete mode 100644 music/mushrooms.ogg.import delete mode 100644 music/reminiscing.ogg.import delete mode 100644 music/together_again.ogg.import create mode 100644 sounds/select_001.ogg.import create mode 100644 sounds/select_006.ogg.import diff --git a/docs/TonysDressUp.js b/docs/TonysDressUp.js deleted file mode 100644 index 5773d42..0000000 --- a/docs/TonysDressUp.js +++ /dev/null @@ -1,419 +0,0 @@ -var Engine = { - RuntimeEnvironment: function(Module, exposedLibs) { - // The above is concatenated with generated code, and acts as the start of - // a wrapper for said code. See engine.js for the other part of the - // wrapper. - -var Module=typeof Module!=="undefined"?Module:{};var IDHandler=function(){var ids={};var size=0;this.has=function(id){return ids.hasOwnProperty(id)};this.add=function(obj){size+=1;var id=crypto.getRandomValues(new Int32Array(32))[0];ids[id]=obj;return id};this.get=function(id){return ids[id]};this.remove=function(id){size-=1;delete ids[id]};this.size=function(){return size};this.ids=ids};Module.IDHandler=new IDHandler;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}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}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;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,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function makeBigInt(low,high,unsigned){return unsigned?+(low>>>0)+ +(high>>>0)*4294967296:+(low>>>0)+ +(high|0)*4294967296}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for getValue: "+type)}return null}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":39082,"maximum":39082+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(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>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];if(!ch)return str;str+=String.fromCharCode(ch)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}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(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}}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 len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function 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 PAGE_SIZE=16384;var WASM_PAGE_SIZE=65536;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 updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var DYNAMIC_BASE=7479936,DYNAMICTOP_PTR=2236864;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){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)}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"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="godot.javascript.opt.debug.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_unstable":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS=[function($0,$1){const MIX_RATE=$0;const LATENCY=$1/1e3;_audioDriver_audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:MIX_RATE,latencyHint:LATENCY});_audioDriver_audioInput=null;_audioDriver_inputStream=null;_audioDriver_scriptNode=null},function($0,$1){const BUFFER_LENGTH=$0;const CHANNEL_COUNT=$1;_audioDriver_scriptNode=_audioDriver_audioContext.createScriptProcessor(BUFFER_LENGTH,2,CHANNEL_COUNT);_audioDriver_scriptNode.connect(_audioDriver_audioContext.destination);return _audioDriver_scriptNode.bufferSize},function($0){var INTERNAL_BUFFER_PTR=$0;var audioDriverMixFunction=cwrap("audio_driver_js_mix");var audioDriverProcessCapture=cwrap("audio_driver_process_capture",null,["number"]);_audioDriver_scriptNode.onaudioprocess=function(audioProcessingEvent){audioDriverMixFunction();var input=audioProcessingEvent.inputBuffer;var output=audioProcessingEvent.outputBuffer;var internalBuffer=HEAPF32.subarray(INTERNAL_BUFFER_PTR/HEAPF32.BYTES_PER_ELEMENT,INTERNAL_BUFFER_PTR/HEAPF32.BYTES_PER_ELEMENT+output.length*output.numberOfChannels);for(var channel=0;channel>3]);buf+=8}else if(c=="i"){buf=align_to(buf,4);args.push(HEAP32[buf>>2]);buf+=4}}return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_dii(code,sig_ptr,argbuf){var sig=AsciiToString(sig_ptr);var args=[];var align_to=function(ptr,align){return ptr+align-1&~(align-1)};var buf=argbuf;for(var i=0;i>3]);buf+=8}else if(c=="i"){buf=align_to(buf,4);args.push(HEAP32[buf>>2]);buf+=4}}return ASM_CONSTS[code].apply(null,args)}__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___lock(){}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function ___map_file(pathname,size){___setErrNo(63);return-1}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.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){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var 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&&!errored){errored=true;return callback(err)}}transaction.onerror=function(e){done(this.error);e.preventDefault()};transaction.oncomplete=function(e){if(!errored){callback(null)}};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 WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH_FS.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(32)}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(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}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(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}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);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);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;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(fd){if(!fd)fd=SYSCALLS.get();var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall10(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var SOCKFS={mount:function(mount){Module["websocket"]=Module["websocket"]&&"object"===typeof Module["websocket"]?Module["websocket"]:{};Module["websocket"]._callbacks={};Module["websocket"]["on"]=function(event,callback){if("function"===typeof callback){this._callbacks[event]=callback}return this};Module["websocket"].emit=function(event,param){if("function"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}};return FS.createNode(null,"/",16384|511,0)},createSocket:function(family,type,protocol){var streaming=type==1;if(protocol){assert(streaming==(protocol==6))}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:FS.modeStringToFlags("r+"),seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket:function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll:function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl:function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read:function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write:function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close:function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname:function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(sock,addr,port){var ws;if(typeof addr==="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}var opts=undefined;if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=ENVIRONMENT_IS_NODE?{"protocol":subProtocols.toString()}:subProtocols}if(runtimeConfig&&null===Module["websocket"]["subprotocol"]){subProtocols="null";opts=undefined}var WebSocketConstructor;if(ENVIRONMENT_IS_WEB){WebSocketConstructor=window["WebSocket"]}else{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!=="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer:function(sock,addr,port){return sock.peers[addr+":"+port]},addPeer:function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer:function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents:function(sock,peer){var first=true;var handleOpen=function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data==="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}else{data=new Uint8Array(data)}}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,flags){if(!flags.binary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){Module["websocket"].emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll:function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask},ioctl:function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return ERRNO_CODES.EINVAL}},close:function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i>>0}function __inet_pton6_raw(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.indexOf("::")===0){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=parseInt(words[words.length-4])+parseInt(words[words.length-3])*256;words[words.length-3]=parseInt(words[words.length-2])+parseInt(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255)}function __inet_ntop6_raw(ints){var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=__inet_ntop4_raw(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=__inet_ntop4_raw(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=__inet_ntop6_raw(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function __write_sockaddr(sa,family,addr,port){switch(family){case 2:addr=__inet_pton4_raw(addr);HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=__inet_pton6_raw(addr);HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);HEAP32[sa+4>>2]=0;HEAP32[sa+24>>2]=0;break;default:return{errno:5}}return{}}function ___syscall102(which,varargs){SYSCALLS.varargs=varargs;try{var call=SYSCALLS.get(),socketvararg=SYSCALLS.get();SYSCALLS.varargs=socketvararg;var getSocketFromFD=function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(8);return socket};var getSocketAddress=function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info};switch(call){case 1:{var domain=SYSCALLS.get(),type=SYSCALLS.get(),protocol=SYSCALLS.get();var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}case 2:{var sock=getSocketFromFD(),info=getSocketAddress();sock.sock_ops.bind(sock,info.addr,info.port);return 0}case 3:{var sock=getSocketFromFD(),info=getSocketAddress();sock.sock_ops.connect(sock,info.addr,info.port);return 0}case 4:{var sock=getSocketFromFD(),backlog=SYSCALLS.get();sock.sock_ops.listen(sock,backlog);return 0}case 5:{var sock=getSocketFromFD(),addr=SYSCALLS.get(),addrlen=SYSCALLS.get();var newsock=sock.sock_ops.accept(sock);if(addr){var res=__write_sockaddr(addr,newsock.family,DNS.lookup_name(newsock.daddr),newsock.dport)}return newsock.stream.fd}case 6:{var sock=getSocketFromFD(),addr=SYSCALLS.get(),addrlen=SYSCALLS.get();var res=__write_sockaddr(addr,sock.family,DNS.lookup_name(sock.saddr||"0.0.0.0"),sock.sport);return 0}case 7:{var sock=getSocketFromFD(),addr=SYSCALLS.get(),addrlen=SYSCALLS.get();if(!sock.daddr){return-53}var res=__write_sockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport);return 0}case 11:{var sock=getSocketFromFD(),message=SYSCALLS.get(),length=SYSCALLS.get(),flags=SYSCALLS.get(),dest=getSocketAddress(true);if(!dest){return FS.write(sock.stream,HEAP8,message,length)}else{return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}}case 12:{var sock=getSocketFromFD(),buf=SYSCALLS.get(),len=SYSCALLS.get(),flags=SYSCALLS.get(),addr=SYSCALLS.get(),addrlen=SYSCALLS.get();var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var res=__write_sockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}case 14:{return-50}case 15:{var sock=getSocketFromFD(),level=SYSCALLS.get(),optname=SYSCALLS.get(),optval=SYSCALLS.get(),optlen=SYSCALLS.get();if(level===1){if(optname===4){HEAP32[optval>>2]=sock.error;HEAP32[optlen>>2]=4;sock.error=null;return 0}}return-50}case 16:{var sock=getSocketFromFD(),message=SYSCALLS.get(),flags=SYSCALLS.get();var iov=HEAP32[message+8>>2];var num=HEAP32[message+12>>2];var addr,port;var name=HEAP32[message>>2];var namelen=HEAP32[message+4>>2];if(name){var info=__read_sockaddr(name,namelen);if(info.errno)return-info.errno;port=info.port;addr=DNS.lookup_addr(info.addr)||info.addr}var total=0;for(var i=0;i>2]}var view=new Uint8Array(total);var offset=0;for(var i=0;i>2];var iovlen=HEAP32[iov+(8*i+4)>>2];for(var j=0;j>0]}}return sock.sock_ops.sendmsg(sock,view,0,total,addr,port)}case 17:{var sock=getSocketFromFD(),message=SYSCALLS.get(),flags=SYSCALLS.get();var iov=HEAP32[message+8>>2];var num=HEAP32[message+12>>2];var total=0;for(var i=0;i>2]}var msg=sock.sock_ops.recvmsg(sock,total);if(!msg)return 0;var name=HEAP32[message>>2];if(name){var res=__write_sockaddr(name,sock.family,DNS.lookup_name(msg.addr),msg.port)}var bytesRead=0;var bytesRemaining=msg.buffer.byteLength;for(var i=0;bytesRemaining>0&&i>2];var iovlen=HEAP32[iov+(8*i+4)>>2];if(!iovlen){continue}var length=Math.min(iovlen,bytesRemaining);var buf=msg.buffer.subarray(bytesRead,bytesRead+length);HEAPU8.set(buf,iovbase+bytesRead);bytesRead+=length;bytesRemaining-=length}return bytesRead}default:abort("unsupported socketcall syscall "+call)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall12(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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 HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[result>>2]=tempI64[0],HEAP32[result+4>>2]=tempI64[1];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 ___syscall142(which,varargs){SYSCALLS.varargs=varargs;try{var nfds=SYSCALLS.get(),readfds=SYSCALLS.get(),writefds=SYSCALLS.get(),exceptfds=SYSCALLS.get(),timeout=SYSCALLS.get();var total=0;var srcReadLow=readfds?HEAP32[readfds>>2]:0,srcReadHigh=readfds?HEAP32[readfds+4>>2]:0;var srcWriteLow=writefds?HEAP32[writefds>>2]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>2]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>2]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>2]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>2]:0)|(writefds?HEAP32[writefds>>2]:0)|(exceptfds?HEAP32[exceptfds>>2]:0);var allHigh=(readfds?HEAP32[readfds+4>>2]:0)|(writefds?HEAP32[writefds+4>>2]:0)|(exceptfds?HEAP32[exceptfds+4>>2]:0);var check=function(fd,low,high,val){return fd<32?low&val:high&val};for(var fd=0;fd>2]=dstReadLow;HEAP32[readfds+4>>2]=dstReadHigh}if(writefds){HEAP32[writefds>>2]=dstWriteLow;HEAP32[writefds+4>>2]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>2]=dstExceptLow;HEAP32[exceptfds+4>>2]=dstExceptHigh}return total}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 ___syscall15(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();FS.chmod(path,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall168(which,varargs){SYSCALLS.varargs=varargs;try{var fds=SYSCALLS.get(),nfds=SYSCALLS.get(),timeout=SYSCALLS.get();var nonzero=0;for(var i=0;i>2];var events=HEAP16[pollfd+4>>1];var mask=32;var stream=FS.getStream(fd);if(stream){mask=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){mask=stream.stream_ops.poll(stream)}}mask&=events|8|16;if(mask)nonzero++;HEAP16[pollfd+6>>1]=mask}return nonzero}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall183(which,varargs){SYSCALLS.varargs=varargs;try{var buf=SYSCALLS.get(),size=SYSCALLS.get();if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>>0,(tempDouble=id,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}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-28}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:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:___setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall268(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),size=SYSCALLS.get(),buf=SYSCALLS.get();HEAP32[buf+4>>2]=4096;HEAP32[buf+40>>2]=4096;HEAP32[buf+8>>2]=1e6;HEAP32[buf+12>>2]=5e5;HEAP32[buf+16>>2]=5e5;HEAP32[buf+20>>2]=FS.nextInode;HEAP32[buf+24>>2]=1e6;HEAP32[buf+28>>2]=42;HEAP32[buf+44>>2]=2;HEAP32[buf+36>>2]=255;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall38(which,varargs){SYSCALLS.varargs=varargs;try{var old_path=SYSCALLS.getStr(),new_path=SYSCALLS.getStr();FS.rename(old_path,new_path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall39(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall4(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.write(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall40(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.rmdir(path);return 0}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-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_syscall_munmap(addr,len){if(addr===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();return __emscripten_syscall_munmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}function _abort(){abort()}function _emscripten_get_now(){abort()}function _emscripten_get_now_is_monotonic(){return 0||typeof performance==="object"&&performance&&typeof performance["now"]==="function"}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if(clk_id===1&&_emscripten_get_now_is_monotonic()){now=_emscripten_get_now()}else{___setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function _dlopen(){abort("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function _dlclose(){return _dlopen.apply(null,arguments)}function _dlerror(){return _dlopen.apply(null,arguments)}function _dlsym(){return _dlopen.apply(null,arguments)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){noExitRuntime=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var browserIterationFunc;if(typeof arg!=="undefined"){browserIterationFunc=function(){Module["dynCall_vi"](func,arg)}}else{browserIterationFunc=function(){Module["dynCall_v"](func)}}var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}if(Browser.mainLoop.method==="timeout"&&Module.ctx){err("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(browserIterationFunc);if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!=="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);if(vrDevice){canvasContainer.requestFullscreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullscreen()}},requestFullScreen:function(lockPointer,resizeCanvas,vrDevice){err("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.");Browser.requestFullScreen=function(lockPointer,resizeCanvas,vrDevice){return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeCallback:function(func){return function(){if(!ABORT)return func.apply(null,arguments)}},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=false},resumeAsyncCallbacks:function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach(function(func){func()})}},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}})},safeSetTimeout:function(func,timeout){noExitRuntime=true;return setTimeout(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}},timeout)},safeSetInterval:function(func,timeout){noExitRuntime=true;return setInterval(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}},timeout)},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},asyncLoad:function(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency("al "+url):"";readAsync(url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglGetProcAddress(name_){return _emscripten_GetProcAddress(name_)}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence0},removeAllHandlersOnTarget:function(target,eventTypeString){for(var i=0;i0||pageYOffset>0){return[pageXOffset,pageYOffset]}if(typeof document.documentElement.scrollLeft!=="undefined"||typeof document.documentElement.scrollTop!=="undefined"){return[document.documentElement.scrollLeft,document.documentElement.scrollTop]}return[document.body.scrollLeft|0,document.body.scrollTop|0]},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},tick:function(){if(window["performance"]&&window["performance"]["now"])return window["performance"]["now"]();else return Date.now()},fullscreenEnabled:function(){return document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled}};function __setLetterbox(element,topBottom,leftRight){if(JSEvents.isInternetExplorer()){element.style.marginLeft=element.style.marginRight=leftRight+"px";element.style.marginTop=element.style.marginBottom=topBottom+"px"}else{element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"}}function __hideEverythingExceptGivenElement(onlyVisibleElement){var child=onlyVisibleElement;var parent=child.parentNode;var hiddenElements=[];while(child!=document.body){var children=parent.children;for(var i=0;i>2]=canvas.width;HEAP32[height>>2]=canvas.height}function __get_canvas_element_size(target){var stackTop=stackSave();var w=stackAlloc(8);var h=w+4;var targetInt=stackAlloc(target.id.length+1);stringToUTF8(target.id,targetInt,target.id.length+1);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];stackRestore(stackTop);return size}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function __set_canvas_element_size(target,width,height){if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{var stackTop=stackSave();var targetInt=stackAlloc(target.id.length+1);stringToUTF8(target.id,targetInt,target.id.length+1);_emscripten_set_canvas_element_size(targetInt,width,height);stackRestore(stackTop)}}function __registerRestoreOldStyle(canvas){var canvasSize=__get_canvas_element_size(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("mozfullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);document.removeEventListener("MSFullscreenChange",restoreOldStyle);__set_canvas_element_size(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(__currentFullscreenStrategy.canvasResizedCallback){dynCall_iiii(__currentFullscreenStrategy.canvasResizedCallback,37,0,__currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("mozfullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);document.addEventListener("MSFullscreenChange",restoreOldStyle);return restoreOldStyle}function __restoreHiddenElements(hiddenElements){for(var i=0;ix*h)w=h*x/y|0;topMargin=(screenHeight-h)/2|0}if(inPixelPerfectFullscreenMode){__set_canvas_element_size(canvas,w,h);if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,w,h)}if(inHiDPIFullscreenMode){topMargin/=dpr;w/=dpr;h/=dpr;w=Math.round(w*1e4)/1e4;h=Math.round(h*1e4)/1e4;topMargin=Math.round(topMargin*1e4)/1e4}if(inCenteredWithoutScalingFullscreenMode){var t=(innerHeight-parseInt(canvas.style.height))/2;var b=(innerWidth-parseInt(canvas.style.width))/2;__setLetterbox(canvas,t,b)}else{canvas.style.width=w+"px";canvas.style.height=h+"px";var b=(innerWidth-w)/2;__setLetterbox(canvas,topMargin,b)}if(!inCenteredWithoutScalingFullscreenMode&&__currentFullscreenStrategy.canvasResizedCallback){dynCall_iiii(__currentFullscreenStrategy.canvasResizedCallback,37,0,__currentFullscreenStrategy.canvasResizedCallbackUserData)}}function _JSEvents_resizeCanvasForFullscreen(target,strategy){var restoreOldStyle=__registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=target.getBoundingClientRect();var windowedCssWidth=rect.right-rect.left;var windowedCssHeight=rect.bottom-rect.top;var canvasSize=__get_canvas_element_size(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){__setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight>2];strategy.canvasResolutionScaleMode=HEAP32[fullscreenStrategy+4>>2];strategy.filteringMode=HEAP32[fullscreenStrategy+8>>2];strategy.canvasResizedCallback=HEAP32[fullscreenStrategy+12>>2];strategy.canvasResizedCallbackUserData=HEAP32[fullscreenStrategy+16>>2];strategy.target=target;strategy.softFullscreen=true;var restoreOldStyle=_JSEvents_resizeCanvasForFullscreen(target,strategy);document.documentElement.style.overflow="hidden";document.body.scroll="no";document.body.style.margin="0px";var hiddenElements=__hideEverythingExceptGivenElement(target);function restoreWindowedState(){restoreOldStyle();__restoreHiddenElements(hiddenElements);removeEventListener("resize",__softFullscreenResizeWebGLRenderTarget);if(strategy.canvasResizedCallback){dynCall_iiii(strategy.canvasResizedCallback,37,0,strategy.canvasResizedCallbackUserData)}__currentFullscreenStrategy=0}__restoreOldWindowedStyle=restoreWindowedState;__currentFullscreenStrategy=strategy;addEventListener("resize",__softFullscreenResizeWebGLRenderTarget);if(strategy.canvasResizedCallback){dynCall_iiii(strategy.canvasResizedCallback,37,0,strategy.canvasResizedCallbackUserData)}return 0}function _JSEvents_requestFullscreen(target,strategy){if(strategy.scaleMode!=0||strategy.canvasResolutionScaleMode!=0){_JSEvents_resizeCanvasForFullscreen(target,strategy)}if(target.requestFullscreen){target.requestFullscreen()}else if(target.msRequestFullscreen){target.msRequestFullscreen()}else if(target.mozRequestFullScreen){target.mozRequestFullScreen()}else if(target.mozRequestFullscreen){target.mozRequestFullscreen()}else if(target.webkitRequestFullscreen){target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else{return JSEvents.fullscreenEnabled()?-3:-1}if(strategy.canvasResizedCallback){dynCall_iiii(strategy.canvasResizedCallback,37,0,strategy.canvasResizedCallbackUserData)}return 0}function _emscripten_exit_fullscreen(){if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(_JSEvents_requestFullscreen);var d=__specialEventTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.msExitFullscreen){d.msFullscreenElement&&d.msExitFullscreen()}else if(d.mozCancelFullScreen){d.mozFullScreenElement&&d.mozCancelFullScreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}if(__currentFullscreenStrategy.canvasResizedCallback){dynCall_iiii(__currentFullscreenStrategy.canvasResizedCallback,37,0,__currentFullscreenStrategy.canvasResizedCallbackUserData);__currentFullscreenStrategy=0}return 0}function __requestPointerLock(target){if(target.requestPointerLock){target.requestPointerLock()}else if(target.mozRequestPointerLock){target.mozRequestPointerLock()}else if(target.webkitRequestPointerLock){target.webkitRequestPointerLock()}else if(target.msRequestPointerLock){target.msRequestPointerLock()}else{if(document.body.requestPointerLock||document.body.mozRequestPointerLock||document.body.webkitRequestPointerLock||document.body.msRequestPointerLock){return-3}else{return-1}}return 0}function _emscripten_exit_pointerlock(){JSEvents.removeDeferredCalls(__requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else if(document.msExitPointerLock){document.msExitPointerLock()}else if(document.mozExitPointerLock){document.mozExitPointerLock()}else if(document.webkitExitPointerLock){document.webkitExitPointerLock()}else{return-1}return 0}function _emscripten_exit_soft_fullscreen(){if(__restoreOldWindowedStyle)__restoreOldWindowedStyle();__restoreOldWindowedStyle=null;return 0}function _emscripten_get_element_css_size(target,width,height){target=target?__findEventTarget(target):Module["canvas"];if(!target)return-4;if(target.getBoundingClientRect){var rect=target.getBoundingClientRect();HEAPF64[width>>3]=rect.right-rect.left;HEAPF64[height>>3]=rect.bottom-rect.top}else{HEAPF64[width>>3]=target.clientWidth;HEAPF64[height>>3]=target.clientHeight}return 0}function __fillFullscreenChangeEventData(eventStruct,e){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}}function _emscripten_get_fullscreen_status(fullscreenStatus){if(!JSEvents.fullscreenEnabled())return-1;__fillFullscreenChangeEventData(fullscreenStatus);return 0}function __fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;__fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __fillPointerlockChangeEventData(eventStruct,e){var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)}function _emscripten_get_pointerlock_status(pointerlockStatus){if(pointerlockStatus)__fillPointerlockChangeEventData(pointerlockStatus);if(!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}return 0}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],queries:[],samplers:[],transformFeedbacks:[],syncs:[],programInfos:{},stringCache:{},stringiCache:{},unpackAlignment:4,init:function(){GL.miniTempBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes)||canvas.getContext("experimental-webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};function getChromeVersion(){var raw=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);return raw?parseInt(raw[2],10):false}context.supportsWebGL2EntryPoints=context.version>=2&&(getChromeVersion()===false||getChromeVersion()>=58);if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle]);GL.contexts[contextHandle]=null},acquireInstancedArraysExtension:function(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)}}},acquireVertexArrayObjectExtension:function(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)}}},acquireDrawBuffersExtension:function(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)}}},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;if(context.version<2){GL.acquireInstancedArraysExtension(GLctx);GL.acquireVertexArrayObjectExtension(GLctx);GL.acquireDrawBuffersExtension(GLctx)}GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2)}function _emscripten_glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function _emscripten_glClearBufferuiv(buffer,drawbuffer,value){GLctx["clearBufferuiv"](buffer,drawbuffer,HEAPU32,value>>2)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glClientWaitSync(sync,flags,timeoutLo,timeoutHi){timeoutLo=timeoutLo>>>0;timeoutHi=timeoutHi>>>0;var timeout=timeoutLo==4294967295&&timeoutHi==4294967295?-1:makeBigInt(timeoutLo,timeoutHi,true);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,data?HEAPU8.subarray(data,data+imageSize):null)}}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,data?HEAPU8.subarray(data,data+imageSize):null)}}function _emscripten_glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx["copyTexSubImage3D"](x0,x1,x2,x3,x4,x5,x6,x7,x8)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GL.currArrayBuffer)GL.currArrayBuffer=0;if(id==GL.currElementArrayBuffer)GL.currElementArrayBuffer=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _emscripten_glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.timerQueriesEXT[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.timerQueriesEXT[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteTransformFeedbacks(n,ids){for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx["deleteTransformFeedback"](transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}}function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var __tempFixedLengthArray=[];function _emscripten_glDrawBuffers(n,bufs){var bufArray=__tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersEXT(n,bufs){var bufArray=__tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=__tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQuery(x0){GLctx["endQuery"](x0)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _emscripten_glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFlushMappedBufferRange(){err("missing function: emscripten_glFlushMappedBufferRange");abort(-1)}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.timerQueriesEXT);query.name=id;GL.timerQueriesEXT[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)}function _emscripten_glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx.getActiveAttrib(program,index);if(!info)return;var numBytesWrittenExclNull=bufSize>0&&name?stringToUTF8(info.name,name,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx.getActiveUniform(program,index);if(!info)return;var numBytesWrittenExclNull=bufSize>0&&name?stringToUTF8(info.name,name,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetActiveUniformBlockName(program,uniformBlockIndex,bufSize,length,uniformBlockName){program=GL.programs[program];var result=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];switch(pname){case 35393:var name=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return;default:var result=GLctx["getActiveUniformBlockParameter"](program,uniformBlockIndex,pname);if(!result)return;if(typeof result=="number"){HEAP32[params>>2]=result}else{for(var i=0;i>2]=result[i]}}}}function _emscripten_glGetActiveUniformsiv(program,uniformCount,uniformIndices,pname,params){if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx["getActiveUniforms"](program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 35097:case 36389:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[p>>2]=tempI64[0],HEAP32[p+4>>2]=tempI64[1];break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}tempI64=[GLctx.getBufferParameter(target,value)>>>0,(tempDouble=GLctx.getBufferParameter(target,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[data>>2]=tempI64[0],HEAP32[data+4>>2]=tempI64[1]}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetBufferPointerv(){err("missing function: emscripten_glGetBufferPointerv");abort(-1)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFragDataLocation(program,name){return GLctx["getFragDataLocation"](GL.programs[program],UTF8ToString(name))}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function emscriptenWebGLGetIndexed(target,index,data,type){if(!data){GL.recordError(1281);return}var result=GLctx["getIndexedParameter"](target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[data>>2]=tempI64[0],HEAP32[data+4>>2]=tempI64[1];break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data>>0]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}}function _emscripten_glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}function _emscripten_glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}function _emscripten_glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetInternalformativ(target,internalformat,pname,bufSize,params){if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx["getInternalformatParameter"](target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}}function _emscripten_glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,35721);ptable.maxAttributeLength=0;for(var i=0;i>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,35382);ptable.maxUniformBlockNameLength=0;for(var i=0;i>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[params>>2]=tempI64[0],HEAP32[params+4>>2]=tempI64[1]}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[params>>2]=tempI64[0],HEAP32[params+4>>2]=tempI64[1]}function _emscripten_glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getQuery"](target,pname)}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}sampler=GL.samplers[sampler];HEAPF32[params>>2]=GLctx["getSamplerParameter"](sampler,pname)}function _emscripten_glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}sampler=GL.samplers[sampler];HEAP32[params>>2]=GLctx["getSamplerParameter"](sampler,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source===null||source.length==0?0:source.length+1;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(GLctx.VERSION);if(GL.currentContext.version>=2)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _emscripten_glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _emscripten_glGetSynciv(sync,pname,bufSize,length,values){if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);HEAP32[length>>2]=ret;if(ret!==null&&length)HEAP32[length>>2]=1}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTransformFeedbackVarying(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx["getTransformFeedbackVarying"](program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _emscripten_glGetUniformIndices(program,uniformCount,uniformNames,uniformIndices){if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx["getUniformIndices"](program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}function _emscripten_glGetUniformLocation(program,name){name=UTF8ToString(name);var arrayIndex=0;if(name[name.length-1]=="]"){var leftBrace=name.lastIndexOf("[");arrayIndex=name[leftBrace+1]!="]"?parseInt(name.slice(leftBrace+1)):0;name=name.slice(0,leftBrace)}var uniformInfo=GL.programInfos[program]&&GL.programInfos[program].uniforms[name];if(uniformInfo&&arrayIndex>=0&&arrayIndex>2]=data;break;case 2:HEAPF32[params>>2]=data;break;default:throw"internal emscriptenWebGLGetUniform() error, bad type: "+type}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;default:throw"internal emscriptenWebGLGetUniform() error, bad type: "+type}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break;default:throw"internal emscriptenWebGLGetVertexAttrib() error, bad type: "+type}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break;default:throw"internal emscriptenWebGLGetVertexAttrib() error, bad type: "+type}}}}function _emscripten_glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribIuiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glInvalidateFramebuffer(target,numAttachments,attachments){var list=__tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateFramebuffer"](target,list)}function _emscripten_glInvalidateSubFramebuffer(target,numAttachments,attachments,x,y,width,height){var list=__tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateSubFramebuffer"](target,list,x,y,width,height)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx["isQuery"](query)}function _emscripten_glIsQueryEXT(id){var query=GL.timerQueriesEXT[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx["isSampler"](sampler)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsSync(sync){var sync=GL.syncs[sync];if(!sync)return 0;return GLctx.isSync(sync)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsTransformFeedback(id){return GLctx["isTransformFeedback"](GL.transformFeedbacks[id])}function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.populateUniformTable(program)}function _emscripten_glMapBufferRange(){err("missing function: emscripten_glMapBufferRange");abort(-1)}function _emscripten_glPauseTransformFeedback(){GLctx["pauseTransformFeedback"]()}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function _emscripten_glProgramParameteri(program,pname,value){GL.recordError(1280)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.timerQueriesEXT[id],target)}function _emscripten_glReadBuffer(x0){GLctx["readBuffer"](x0)}function __computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}var __colorChannelsInGlTextureFormat={6402:1,6403:1,6406:1,6407:3,6408:4,6409:1,6410:2,33319:2,33320:2,35904:3,35906:4,36244:1,36248:3,36249:4};var __sizeOfGlTextureElementType={5120:1,5121:1,5122:2,5123:2,5124:4,5125:4,5126:4,5131:2,32819:2,32820:2,33635:2,33640:4,34042:4,35899:4,35902:4,36193:2};function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var sizePerPixel=__colorChannelsInGlTextureFormat[format]*__sizeOfGlTextureElementType[type];if(!sizePerPixel){GL.recordError(1280);return}var bytes=__computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);var end=pixels+bytes;switch(type){case 5120:return HEAP8.subarray(pixels,end);case 5121:return HEAPU8.subarray(pixels,end);case 5122:return HEAP16.subarray(pixels>>1,end>>1);case 5124:return HEAP32.subarray(pixels>>2,end>>2);case 5126:return HEAPF32.subarray(pixels>>2,end>>2);case 5125:case 34042:case 35902:case 33640:case 35899:return HEAPU32.subarray(pixels>>2,end>>2);case 5123:case 33635:case 32819:case 32820:case 36193:case 5131:return HEAPU16.subarray(pixels>>1,end>>1);default:GL.recordError(1280)}}function __heapObjectForWebGLType(type){switch(type){case 5120:return HEAP8;case 5121:return HEAPU8;case 5122:return HEAP16;case 5123:case 33635:case 32819:case 32820:case 36193:case 5131:return HEAPU16;case 5124:return HEAP32;case 5125:case 34042:case 35902:case 33640:case 35899:case 34042:return HEAPU32;case 5126:return HEAPF32}}var __heapAccessShiftForWebGLType={5122:1,5123:1,5124:2,5125:2,5126:2,5131:1,32819:1,32820:1,33635:1,33640:2,34042:2,35899:2,35902:2,36193:1};function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{GLctx.readPixels(x,y,width,height,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _emscripten_glResumeTransformFeedback(){GLctx["resumeTransformFeedback"]()}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels!=0){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels!=0){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _emscripten_glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels!=0){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels!=0){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _emscripten_glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(GL.uniforms[location],v0)}function _emscripten_glUniform1fv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform1fv(GL.uniforms[location],HEAPF32,value>>2,count);return}if(count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(GL.uniforms[location],view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(GL.uniforms[location],v0)}function _emscripten_glUniform1iv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform1iv(GL.uniforms[location],HEAP32,value>>2,count);return}GLctx.uniform1iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*4>>2))}function _emscripten_glUniform1ui(location,v0){GLctx.uniform1ui(GL.uniforms[location],v0)}function _emscripten_glUniform1uiv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform1uiv(GL.uniforms[location],HEAPU32,value>>2,count)}else{GLctx.uniform1uiv(GL.uniforms[location],HEAPU32.subarray(value>>2,value+count*4>>2))}}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform2fv(GL.uniforms[location],HEAPF32,value>>2,count*2);return}if(2*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(GL.uniforms[location],view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform2iv(GL.uniforms[location],HEAP32,value>>2,count*2);return}GLctx.uniform2iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*8>>2))}function _emscripten_glUniform2ui(location,v0,v1){GLctx.uniform2ui(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2uiv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform2uiv(GL.uniforms[location],HEAPU32,value>>2,count*2)}else{GLctx.uniform2uiv(GL.uniforms[location],HEAPU32.subarray(value>>2,value+count*8>>2))}}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform3fv(GL.uniforms[location],HEAPF32,value>>2,count*3);return}if(3*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(GL.uniforms[location],view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform3iv(GL.uniforms[location],HEAP32,value>>2,count*3);return}GLctx.uniform3iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*12>>2))}function _emscripten_glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3uiv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform3uiv(GL.uniforms[location],HEAPU32,value>>2,count*3)}else{GLctx.uniform3uiv(GL.uniforms[location],HEAPU32.subarray(value>>2,value+count*12>>2))}}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform4fv(GL.uniforms[location],HEAPF32,value>>2,count*4);return}if(4*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(GL.uniforms[location],view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform4iv(GL.uniforms[location],HEAP32,value>>2,count*4);return}GLctx.uniform4iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*16>>2))}function _emscripten_glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4uiv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform4uiv(GL.uniforms[location],HEAPU32,value>>2,count*4)}else{GLctx.uniform4uiv(GL.uniforms[location],HEAPU32.subarray(value>>2,value+count*16>>2))}}function _emscripten_glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*4);return}if(4*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUniformMatrix2x3fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix2x3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*6)}else{GLctx.uniformMatrix2x3fv(GL.uniforms[location],!!transpose,HEAPF32.subarray(value>>2,value+count*24>>2))}}function _emscripten_glUniformMatrix2x4fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix2x4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*8)}else{GLctx.uniformMatrix2x4fv(GL.uniforms[location],!!transpose,HEAPF32.subarray(value>>2,value+count*32>>2))}}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*9);return}if(9*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUniformMatrix3x2fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix3x2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*6)}else{GLctx.uniformMatrix3x2fv(GL.uniforms[location],!!transpose,HEAPF32.subarray(value>>2,value+count*24>>2))}}function _emscripten_glUniformMatrix3x4fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix3x4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*12)}else{GLctx.uniformMatrix3x4fv(GL.uniforms[location],!!transpose,HEAPF32.subarray(value>>2,value+count*48>>2))}}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*16);return}if(16*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[16*count-1];for(var i=0;i<16*count;i+=16){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2];view[i+9]=HEAPF32[value+(4*i+36)>>2];view[i+10]=HEAPF32[value+(4*i+40)>>2];view[i+11]=HEAPF32[value+(4*i+44)>>2];view[i+12]=HEAPF32[value+(4*i+48)>>2];view[i+13]=HEAPF32[value+(4*i+52)>>2];view[i+14]=HEAPF32[value+(4*i+56)>>2];view[i+15]=HEAPF32[value+(4*i+60)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUniformMatrix4x2fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix4x2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*8)}else{GLctx.uniformMatrix4x2fv(GL.uniforms[location],!!transpose,HEAPF32.subarray(value>>2,value+count*32>>2))}}function _emscripten_glUniformMatrix4x3fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix4x3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*12)}else{GLctx.uniformMatrix4x3fv(GL.uniforms[location],!!transpose,HEAPF32.subarray(value>>2,value+count*48>>2))}}function _emscripten_glUnmapBuffer(){err("missing function: emscripten_glUnmapBuffer");abort(-1)}function _emscripten_glUseProgram(program){GLctx.useProgram(GL.programs[program])}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx["vertexAttribI4i"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}function _emscripten_glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}function _emscripten_glVertexAttribIPointer(index,size,type,stride,ptr){GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_glWaitSync(sync,flags,timeoutLo,timeoutHi){timeoutLo=timeoutLo>>>0;timeoutHi=timeoutHi>>>0;var timeout=timeoutLo==4294967295&&timeoutHi==4294967295?-1:makeBigInt(timeoutLo,timeoutHi,true);GLctx.waitSync(GL.syncs[sync],flags,timeout)}var setjmpId=0;function _saveSetjmp(env,label,table,size){env=env|0;label=label|0;table=table|0;size=size|0;var i=0;setjmpId=setjmpId+1|0;HEAP32[env>>2]=setjmpId;while((i|0)<(size|0)){if((HEAP32[table+(i<<3)>>2]|0)==0){HEAP32[table+(i<<3)>>2]=setjmpId;HEAP32[table+((i<<3)+4)>>2]=label;HEAP32[table+((i<<3)+8)>>2]=0;setTempRet0(size|0);return table|0}i=i+1|0}size=size*2|0;table=_realloc(table|0,8*(size+1|0)|0)|0;table=_saveSetjmp(env|0,label|0,table|0,size|0)|0;setTempRet0(size|0);return table|0}function _testSetjmp(id,table,size){id=id|0;table=table|0;size=size|0;var i=0,curr=0;while((i|0)<(size|0)){curr=HEAP32[table+(i<<3)>>2]|0;if((curr|0)==0)break;if((curr|0)==(id|0)){return HEAP32[table+((i<<3)+4)>>2]|0}i=i+1|0}return 0}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function __emscripten_do_request_fullscreen(target,strategy){if(!JSEvents.fullscreenEnabled())return-1;if(!target)target="#canvas";target=__findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.msRequestFullscreen&&!target.mozRequestFullScreen&&!target.mozRequestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(_JSEvents_requestFullscreen,1,[target,strategy]);return 1}else{return-2}}return _JSEvents_requestFullscreen(target,strategy)}function _emscripten_request_fullscreen_strategy(target,deferUntilInEventHandler,fullscreenStrategy){var strategy={};strategy.scaleMode=HEAP32[fullscreenStrategy>>2];strategy.canvasResolutionScaleMode=HEAP32[fullscreenStrategy+4>>2];strategy.filteringMode=HEAP32[fullscreenStrategy+8>>2];strategy.deferUntilInEventHandler=deferUntilInEventHandler;strategy.canvasResizedCallback=HEAP32[fullscreenStrategy+12>>2];strategy.canvasResizedCallbackUserData=HEAP32[fullscreenStrategy+16>>2];__currentFullscreenStrategy=strategy;return __emscripten_do_request_fullscreen(target,strategy)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){if(!target)target="#canvas";target=__findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock&&!target.mozRequestPointerLock&&!target.webkitRequestPointerLock&&!target.msRequestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(__requestPointerLock,2,[target]);return 1}else{return-2}}return __requestPointerLock(target)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=e.location;HEAP32[keyEventData+68>>2]=e.ctrlKey;HEAP32[keyEventData+72>>2]=e.shiftKey;HEAP32[keyEventData+76>>2]=e.altKey;HEAP32[keyEventData+80>>2]=e.metaKey;HEAP32[keyEventData+84>>2]=e.repeat;stringToUTF8(e.locale?e.locale:"",keyEventData+88,32);stringToUTF8(e.char?e.char:"",keyEventData+120,32);HEAP32[keyEventData+152>>2]=e.charCode;HEAP32[keyEventData+156>>2]=e.keyCode;HEAP32[keyEventData+160>>2]=e.which;if(dynCall_iiii(callbackfunc,eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:__findEventTarget(target),allowsDeferredCalls:JSEvents.isInternetExplorer()?false:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);return 0}function _emscripten_set_keypress_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);return 0}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);return 0}function __fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=JSEvents.tick();HEAP32[eventStruct+8>>2]=e.screenX;HEAP32[eventStruct+12>>2]=e.screenY;HEAP32[eventStruct+16>>2]=e.clientX;HEAP32[eventStruct+20>>2]=e.clientY;HEAP32[eventStruct+24>>2]=e.ctrlKey;HEAP32[eventStruct+28>>2]=e.shiftKey;HEAP32[eventStruct+32>>2]=e.altKey;HEAP32[eventStruct+36>>2]=e.metaKey;HEAP16[eventStruct+40>>1]=e.button;HEAP16[eventStruct+42>>1]=e.buttons;HEAP32[eventStruct+44>>2]=e["movementX"]||e["mozMovementX"]||e["webkitMovementX"]||e.screenX-JSEvents.previousScreenX;HEAP32[eventStruct+48>>2]=e["movementY"]||e["mozMovementY"]||e["webkitMovementY"]||e.screenY-JSEvents.previousScreenY;if(Module["canvas"]){var rect=Module["canvas"].getBoundingClientRect();HEAP32[eventStruct+60>>2]=e.clientX-rect.left;HEAP32[eventStruct+64>>2]=e.clientY-rect.top}else{HEAP32[eventStruct+60>>2]=0;HEAP32[eventStruct+64>>2]=0}if(target){var rect=JSEvents.getBoundingClientRectOrZeros(target);HEAP32[eventStruct+52>>2]=e.clientX-rect.left;HEAP32[eventStruct+56>>2]=e.clientY-rect.top}else{HEAP32[eventStruct+52>>2]=0;HEAP32[eventStruct+56>>2]=0}if(e.type!=="wheel"&&e.type!=="mousewheel"){JSEvents.previousScreenX=e.screenX;JSEvents.previousScreenY=e.screenY}}function __registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=__findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;__fillMouseEventData(JSEvents.mouseEvent,e,target);if(dynCall_iiii(callbackfunc,eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};if(JSEvents.isInternetExplorer()&&eventTypeString=="mousedown")eventHandler.allowsDeferredCalls=false;JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);return 0}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);return 0}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);return 0}function __registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1684);target=__findEventTarget(target);var touchEventHandlerFunc=function(ev){var e=ev||event;var touches={};for(var i=0;i>2]=e.ctrlKey;HEAP32[ptr+8>>2]=e.shiftKey;HEAP32[ptr+12>>2]=e.altKey;HEAP32[ptr+16>>2]=e.metaKey;ptr+=20;var canvasRect=Module["canvas"]?Module["canvas"].getBoundingClientRect():undefined;var targetRect=JSEvents.getBoundingClientRectOrZeros(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[ptr>>2]=t.identifier;HEAP32[ptr+4>>2]=t.screenX;HEAP32[ptr+8>>2]=t.screenY;HEAP32[ptr+12>>2]=t.clientX;HEAP32[ptr+16>>2]=t.clientY;HEAP32[ptr+20>>2]=t.pageX;HEAP32[ptr+24>>2]=t.pageY;HEAP32[ptr+28>>2]=t.changed;HEAP32[ptr+32>>2]=t.onTarget;if(canvasRect){HEAP32[ptr+44>>2]=t.clientX-canvasRect.left;HEAP32[ptr+48>>2]=t.clientY-canvasRect.top}else{HEAP32[ptr+44>>2]=0;HEAP32[ptr+48>>2]=0}HEAP32[ptr+36>>2]=t.clientX-targetRect.left;HEAP32[ptr+40>>2]=t.clientY-targetRect.top;ptr+=52;if(++numTouches>=32){break}}HEAP32[touchEvent>>2]=numTouches;if(dynCall_iiii(callbackfunc,eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function __registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(ev){var e=ev||event;var wheelEvent=JSEvents.wheelEvent;__fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(dynCall_iiii(callbackfunc,eventTypeId,wheelEvent,userData))e.preventDefault()};var mouseWheelHandlerFunc=function(ev){var e=ev||event;__fillMouseEventData(JSEvents.wheelEvent,e,target);HEAPF64[JSEvents.wheelEvent+72>>3]=e["wheelDeltaX"]||0;HEAPF64[JSEvents.wheelEvent+80>>3]=-(e["wheelDeltaY"]||e["wheelDelta"]);HEAPF64[JSEvents.wheelEvent+88>>3]=0;HEAP32[JSEvents.wheelEvent+96>>2]=0;var shouldCancel=dynCall_iiii(callbackfunc,eventTypeId,JSEvents.wheelEvent,userData);if(shouldCancel){e.preventDefault()}};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:eventTypeString=="wheel"?wheelHandlerFunc:mouseWheelHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=__findEventTarget(target);if(typeof target.onwheel!=="undefined"){__registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread);return 0}else if(typeof target.onmousewheel!=="undefined"){__registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"mousewheel",targetThread);return 0}else{return-1}}var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function _emscripten_webgl_do_create_context(target,attributes){var contextAttributes={};var a=attributes>>2;contextAttributes["alpha"]=!!HEAP32[a+(0>>2)];contextAttributes["depth"]=!!HEAP32[a+(4>>2)];contextAttributes["stencil"]=!!HEAP32[a+(8>>2)];contextAttributes["antialias"]=!!HEAP32[a+(12>>2)];contextAttributes["premultipliedAlpha"]=!!HEAP32[a+(16>>2)];contextAttributes["preserveDrawingBuffer"]=!!HEAP32[a+(20>>2)];var powerPreference=HEAP32[a+(24>>2)];contextAttributes["powerPreference"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes["failIfMajorPerformanceCaveat"]=!!HEAP32[a+(28>>2)];contextAttributes.majorVersion=HEAP32[a+(32>>2)];contextAttributes.minorVersion=HEAP32[a+(36>>2)];contextAttributes.enableExtensionsByDefault=HEAP32[a+(40>>2)];contextAttributes.explicitSwapControl=HEAP32[a+(44>>2)];contextAttributes.proxyContextToMainThread=HEAP32[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=HEAP32[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}function _emscripten_webgl_init_context_attributes(attributes){var a=attributes>>2;for(var i=0;i<56>>2;++i){HEAP32[a+i]=0}HEAP32[a+(0>>2)]=HEAP32[a+(4>>2)]=HEAP32[a+(12>>2)]=HEAP32[a+(16>>2)]=HEAP32[a+(32>>2)]=HEAP32[a+(40>>2)]=1}function _emscripten_webgl_make_context_current(contextHandle){var success=GL.makeContextCurrent(contextHandle);return success?0:-5}function _emscripten_get_environ(){if(!_emscripten_get_environ.strings){var ENV={};ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";ENV["_"]=thisProgram;var strings=[];for(var key in ENV){strings.push(key+"="+ENV[key])}_emscripten_get_environ.strings=strings}return _emscripten_get_environ.strings}function _environ_get(__environ,environ_buf){var strings=_emscripten_get_environ();var bufSize=0;strings.forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(environ_count,environ_buf_size){var strings=_emscripten_get_environ();HEAP32[environ_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[environ_buf_size>>2]=bufSize;return 0}function _exit(status){exit(status)}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}var GAI_ERRNO_MESSAGES={};function _gai_strerror(val){var buflen=256;if(!_gai_strerror.buffer){_gai_strerror.buffer=_malloc(buflen);GAI_ERRNO_MESSAGES["0"]="Success";GAI_ERRNO_MESSAGES[""+-1]="Invalid value for 'ai_flags' field";GAI_ERRNO_MESSAGES[""+-2]="NAME or SERVICE is unknown";GAI_ERRNO_MESSAGES[""+-3]="Temporary failure in name resolution";GAI_ERRNO_MESSAGES[""+-4]="Non-recoverable failure in name res";GAI_ERRNO_MESSAGES[""+-6]="'ai_family' not supported";GAI_ERRNO_MESSAGES[""+-7]="'ai_socktype' not supported";GAI_ERRNO_MESSAGES[""+-8]="SERVICE not supported for 'ai_socktype'";GAI_ERRNO_MESSAGES[""+-10]="Memory allocation failure";GAI_ERRNO_MESSAGES[""+-11]="System error returned in 'errno'";GAI_ERRNO_MESSAGES[""+-12]="Argument buffer overflow"}var msg="Unknown error";if(val in GAI_ERRNO_MESSAGES){if(GAI_ERRNO_MESSAGES[val].length>buflen-1){msg="Message too long"}else{msg=GAI_ERRNO_MESSAGES[val]}}writeAsciiToMemory(msg,_gai_strerror.buffer);return _gai_strerror.buffer}function _getTempRet0(){return getTempRet0()|0}function _getaddrinfo(node,service,hint,out){var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var res;salen=family===10?28:16;addr=family===10?__inet_ntop6_raw(addr):__inet_ntop4_raw(addr);sa=_malloc(salen);res=__write_sockaddr(sa,family,addr,port);assert(!res.errno);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAP32[ai+24>>2]=canon;HEAP32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28}else{HEAP32[ai+16>>2]=16}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=__inet_pton4_raw(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=__inet_pton6_raw(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAP32[out>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=__inet_pton4_raw(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAP32[out>>2]=ai;return 0}function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=__read_sockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=""+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBeginTransformFeedback(x0){GLctx["beginTransformFeedback"](x0)}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindBufferBase(target,index,buffer){GLctx["bindBufferBase"](target,index,GL.buffers[buffer])}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _glBlendEquation(x0){GLctx["blendEquation"](x0)}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _glBufferData(target,size,data,usage){if(GL.currentContext.supportsWebGL2EntryPoints){if(data){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _glClear(x0){GLctx["clear"](x0)}function _glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,data?HEAPU8.subarray(data,data+imageSize):null)}}function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,data?HEAPU8.subarray(data,data+imageSize):null)}}function _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GL.currArrayBuffer)GL.currArrayBuffer=0;if(id==GL.currElementArrayBuffer)GL.currElementArrayBuffer=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _glDrawBuffers(n,bufs){var bufArray=__tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _glFinish(){GLctx["finish"]()}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,35721);ptable.maxAttributeLength=0;for(var i=0;i>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,35382);ptable.maxUniformBlockNameLength=0;for(var i=0;i>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source===null||source.length==0?0:source.length+1;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(GLctx.VERSION);if(GL.currentContext.version>=2)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _glGetUniformLocation(program,name){name=UTF8ToString(name);var arrayIndex=0;if(name[name.length-1]=="]"){var leftBrace=name.lastIndexOf("[");arrayIndex=name[leftBrace+1]!="]"?parseInt(name.slice(leftBrace+1)):0;name=name.slice(0,leftBrace)}var uniformInfo=GL.programInfos[program]&&GL.programInfos[program].uniforms[name];if(uniformInfo&&arrayIndex>=0&&arrayIndex>2]}GLctx["invalidateFramebuffer"](target,list)}function _glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.populateUniformTable(program)}function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _glReadBuffer(x0){GLctx["readBuffer"](x0)}function _glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{GLctx.readPixels(x,y,width,height,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels!=0){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels!=0){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.supportsWebGL2EntryPoints){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels!=0){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels!=0){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,__heapObjectForWebGLType(type),pixels>>(__heapAccessShiftForWebGLType[type]|0))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _glUniform1f(location,v0){GLctx.uniform1f(GL.uniforms[location],v0)}function _glUniform1i(location,v0){GLctx.uniform1i(GL.uniforms[location],v0)}function _glUniform1iv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform1iv(GL.uniforms[location],HEAP32,value>>2,count);return}GLctx.uniform1iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*4>>2))}function _glUniform1ui(location,v0){GLctx.uniform1ui(GL.uniforms[location],v0)}function _glUniform2f(location,v0,v1){GLctx.uniform2f(GL.uniforms[location],v0,v1)}function _glUniform2fv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform2fv(GL.uniforms[location],HEAPF32,value>>2,count*2);return}if(2*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(GL.uniforms[location],view)}function _glUniform2i(location,v0,v1){GLctx.uniform2i(GL.uniforms[location],v0,v1)}function _glUniform2iv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform2iv(GL.uniforms[location],HEAP32,value>>2,count*2);return}GLctx.uniform2iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*8>>2))}function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(GL.uniforms[location],v0,v1,v2)}function _glUniform3fv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform3fv(GL.uniforms[location],HEAPF32,value>>2,count*3);return}if(3*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(GL.uniforms[location],view)}function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(GL.uniforms[location],v0,v1,v2)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(GL.uniforms[location],v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniform4fv(GL.uniforms[location],HEAPF32,value>>2,count*4);return}if(4*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(GL.uniforms[location],view)}function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(GL.uniforms[location],v0,v1,v2,v3)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*4);return}if(4*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(GL.uniforms[location],!!transpose,view)}function _glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*9);return}if(9*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(GL.uniforms[location],!!transpose,view)}function _glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.supportsWebGL2EntryPoints){GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*16);return}if(16*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[16*count-1];for(var i=0;i<16*count;i+=16){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2];view[i+9]=HEAPF32[value+(4*i+36)>>2];view[i+10]=HEAPF32[value+(4*i+40)>>2];view[i+11]=HEAPF32[value+(4*i+44)>>2];view[i+12]=HEAPF32[value+(4*i+48)>>2];view[i+13]=HEAPF32[value+(4*i+52)>>2];view[i+14]=HEAPF32[value+(4*i+56)>>2];view[i+15]=HEAPF32[value+(4*i+60)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,view)}function _glUseProgram(program){GLctx.useProgram(GL.programs[program])}function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _glVertexAttribIPointer(index,size,type,stride,ptr){GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}var ___tm_current=2236912;var ___tm_timezone=(stringToUTF8("GMT",2236960,4),2236960);function _gmtime_r(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();HEAP32[tmPtr+36>>2]=0;HEAP32[tmPtr+32>>2]=0;var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+40>>2]=___tm_timezone;return tmPtr}function _gmtime(time){return _gmtime_r(time,___tm_current)}var GodotHTTPRequest={requests:[],getUnusedRequestId:function(){var idMax=GodotHTTPRequest.requests.length;for(var potentialId=0;potentialId0?UTF8ToString(user):null;password=password>0?UTF8ToString(password):null;GodotHTTPRequest.requests[xhrId].open(UTF8ToString(method),UTF8ToString(url),true,user,password)}function _godot_xhr_reset(xhrId){GodotHTTPRequest.requests[xhrId]=new XMLHttpRequest;GodotHTTPRequest.setupRequest(GodotHTTPRequest.requests[xhrId])}function _godot_xhr_send_data(xhrId,ptr,len){if(!ptr){err("Failed to send data per XHR: null pointer");return}if(len<0){err("Failed to send data per XHR: buffer length less than 0");return}GodotHTTPRequest.requests[xhrId].send(HEAPU8.subarray(ptr,ptr+len))}function _godot_xhr_send_string(xhrId,strPtr){if(!strPtr){err("Failed to send string per XHR: null pointer");return}GodotHTTPRequest.requests[xhrId].send(UTF8ToString(strPtr))}function _godot_xhr_set_request_header(xhrId,header,value){GodotHTTPRequest.requests[xhrId].setRequestHeader(UTF8ToString(header),UTF8ToString(value))}function _inet_addr(ptr){var addr=__inet_pton4_raw(UTF8ToString(ptr));if(addr===null){return-1}return addr}function _kill(pid,sig){___setErrNo(ERRNO_CODES.EPERM);return-1}function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocate(intArrayFromString(winterName),"i8",ALLOC_NORMAL);var summerNamePtr=allocate(intArrayFromString(summerName),"i8",ALLOC_NORMAL);if(summer.getTimezoneOffset()>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _usleep(useconds){var msec=useconds/1e3;if((ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&self["performance"]&&self["performance"]["now"]){var start=self["performance"]["now"]();while(self["performance"]["now"]()-start>2];var nanoseconds=HEAP32[rqtp+4>>2];if(nanoseconds<0||nanoseconds>999999999||seconds<0){___setErrNo(28);return-1}if(rmtp!==0){HEAP32[rmtp>>2]=0;HEAP32[rmtp+4>>2]=0}return _usleep(seconds*1e6+nanoseconds/1e3)}function _round(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _setTempRet0($i){setTempRet0($i|0)}function _sigaction(signum,act,oldact){return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:var maxHeapSize=2*1024*1024*1024-65536;return maxHeapSize/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(28);return-1}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _wait(stat_loc){___setErrNo(12);return-1}function _waitpid(){return _wait.apply(null,arguments)}FS.staticInit();if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof performance==="object"&&performance&&typeof performance["now"]==="function"){_emscripten_get_now=function(){return performance["now"]()}}else{_emscripten_get_now=Date.now}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){err("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.");Module["requestFullScreen"]=Module["requestFullscreen"];Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var GLctx;GL.init();for(var i=0;i<32;i++)__tempFixedLengthArray.push(new Array(i));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}var asmLibraryArg={"a":___assert_fail,"Ob":___lock,"Di":___map_file,"Ci":___syscall10,"sa":___syscall102,"Bi":___syscall12,"Ai":___syscall140,"zi":___syscall142,"yi":___syscall145,"xi":___syscall15,"wi":___syscall168,"vi":___syscall183,"ui":___syscall195,"ti":___syscall20,"si":___syscall220,"_":___syscall221,"ri":___syscall268,"qi":___syscall3,"pi":___syscall33,"oi":___syscall38,"ni":___syscall39,"mi":___syscall4,"li":___syscall40,"Nb":___syscall5,"rb":___syscall54,"ki":___syscall91,"Ra":___unlock,"ra":_abort,"ab":_clock_gettime,"gi":_dlclose,"qb":_dlerror,"fi":_dlopen,"ei":_dlsym,"Mb":_eglGetProcAddress,"di":_emscripten_asm_const_dii,"y":_emscripten_asm_const_iii,"Lb":_emscripten_enter_soft_fullscreen,"ci":_emscripten_exit_fullscreen,"Kb":_emscripten_exit_pointerlock,"pb":_emscripten_exit_soft_fullscreen,"ob":_emscripten_get_canvas_element_size,"bi":_emscripten_get_element_css_size,"ai":_emscripten_get_fullscreen_status,"$h":_emscripten_get_gamepad_status,"_h":_emscripten_get_now,"Zh":_emscripten_get_num_gamepads,"Yh":_emscripten_get_pointerlock_status,"Xh":_emscripten_glActiveTexture,"Wh":_emscripten_glAttachShader,"Vh":_emscripten_glBeginQuery,"Uh":_emscripten_glBeginQueryEXT,"Th":_emscripten_glBeginTransformFeedback,"Sh":_emscripten_glBindAttribLocation,"Rh":_emscripten_glBindBuffer,"Qh":_emscripten_glBindBufferBase,"Ph":_emscripten_glBindBufferRange,"Oh":_emscripten_glBindFramebuffer,"Nh":_emscripten_glBindRenderbuffer,"Mh":_emscripten_glBindSampler,"Lh":_emscripten_glBindTexture,"Kh":_emscripten_glBindTransformFeedback,"Jh":_emscripten_glBindVertexArray,"Ih":_emscripten_glBindVertexArrayOES,"Hh":_emscripten_glBlendColor,"Gh":_emscripten_glBlendEquation,"Fh":_emscripten_glBlendEquationSeparate,"Eh":_emscripten_glBlendFunc,"Dh":_emscripten_glBlendFuncSeparate,"Ch":_emscripten_glBlitFramebuffer,"Bh":_emscripten_glBufferData,"Ah":_emscripten_glBufferSubData,"zh":_emscripten_glCheckFramebufferStatus,"yh":_emscripten_glClear,"xh":_emscripten_glClearBufferfi,"wh":_emscripten_glClearBufferfv,"vh":_emscripten_glClearBufferiv,"uh":_emscripten_glClearBufferuiv,"th":_emscripten_glClearColor,"sh":_emscripten_glClearDepthf,"rh":_emscripten_glClearStencil,"qh":_emscripten_glClientWaitSync,"ph":_emscripten_glColorMask,"oh":_emscripten_glCompileShader,"nh":_emscripten_glCompressedTexImage2D,"mh":_emscripten_glCompressedTexImage3D,"lh":_emscripten_glCompressedTexSubImage2D,"kh":_emscripten_glCompressedTexSubImage3D,"jh":_emscripten_glCopyBufferSubData,"ih":_emscripten_glCopyTexImage2D,"hh":_emscripten_glCopyTexSubImage2D,"gh":_emscripten_glCopyTexSubImage3D,"fh":_emscripten_glCreateProgram,"eh":_emscripten_glCreateShader,"dh":_emscripten_glCullFace,"ch":_emscripten_glDeleteBuffers,"bh":_emscripten_glDeleteFramebuffers,"ah":_emscripten_glDeleteProgram,"$g":_emscripten_glDeleteQueries,"_g":_emscripten_glDeleteQueriesEXT,"Zg":_emscripten_glDeleteRenderbuffers,"Yg":_emscripten_glDeleteSamplers,"Xg":_emscripten_glDeleteShader,"Wg":_emscripten_glDeleteSync,"Vg":_emscripten_glDeleteTextures,"Ug":_emscripten_glDeleteTransformFeedbacks,"Tg":_emscripten_glDeleteVertexArrays,"Sg":_emscripten_glDeleteVertexArraysOES,"Rg":_emscripten_glDepthFunc,"Qg":_emscripten_glDepthMask,"Pg":_emscripten_glDepthRangef,"Og":_emscripten_glDetachShader,"Ng":_emscripten_glDisable,"Mg":_emscripten_glDisableVertexAttribArray,"Lg":_emscripten_glDrawArrays,"Kg":_emscripten_glDrawArraysInstanced,"Jg":_emscripten_glDrawArraysInstancedANGLE,"Ig":_emscripten_glDrawArraysInstancedARB,"Hg":_emscripten_glDrawArraysInstancedEXT,"Gg":_emscripten_glDrawArraysInstancedNV,"Fg":_emscripten_glDrawBuffers,"Eg":_emscripten_glDrawBuffersEXT,"Dg":_emscripten_glDrawBuffersWEBGL,"Cg":_emscripten_glDrawElements,"Bg":_emscripten_glDrawElementsInstanced,"Ag":_emscripten_glDrawElementsInstancedANGLE,"zg":_emscripten_glDrawElementsInstancedARB,"yg":_emscripten_glDrawElementsInstancedEXT,"xg":_emscripten_glDrawElementsInstancedNV,"wg":_emscripten_glDrawRangeElements,"vg":_emscripten_glEnable,"ug":_emscripten_glEnableVertexAttribArray,"tg":_emscripten_glEndQuery,"sg":_emscripten_glEndQueryEXT,"rg":_emscripten_glEndTransformFeedback,"qg":_emscripten_glFenceSync,"pg":_emscripten_glFinish,"og":_emscripten_glFlush,"ng":_emscripten_glFlushMappedBufferRange,"mg":_emscripten_glFramebufferRenderbuffer,"lg":_emscripten_glFramebufferTexture2D,"kg":_emscripten_glFramebufferTextureLayer,"jg":_emscripten_glFrontFace,"ig":_emscripten_glGenBuffers,"hg":_emscripten_glGenFramebuffers,"gg":_emscripten_glGenQueries,"fg":_emscripten_glGenQueriesEXT,"eg":_emscripten_glGenRenderbuffers,"dg":_emscripten_glGenSamplers,"cg":_emscripten_glGenTextures,"bg":_emscripten_glGenTransformFeedbacks,"ag":_emscripten_glGenVertexArrays,"$f":_emscripten_glGenVertexArraysOES,"_f":_emscripten_glGenerateMipmap,"Zf":_emscripten_glGetActiveAttrib,"Yf":_emscripten_glGetActiveUniform,"Xf":_emscripten_glGetActiveUniformBlockName,"Wf":_emscripten_glGetActiveUniformBlockiv,"Vf":_emscripten_glGetActiveUniformsiv,"Uf":_emscripten_glGetAttachedShaders,"Tf":_emscripten_glGetAttribLocation,"Sf":_emscripten_glGetBooleanv,"Rf":_emscripten_glGetBufferParameteri64v,"Qf":_emscripten_glGetBufferParameteriv,"Pf":_emscripten_glGetBufferPointerv,"Of":_emscripten_glGetError,"Nf":_emscripten_glGetFloatv,"Mf":_emscripten_glGetFragDataLocation,"Lf":_emscripten_glGetFramebufferAttachmentParameteriv,"Kf":_emscripten_glGetInteger64i_v,"Jf":_emscripten_glGetInteger64v,"If":_emscripten_glGetIntegeri_v,"Hf":_emscripten_glGetIntegerv,"Gf":_emscripten_glGetInternalformativ,"Ff":_emscripten_glGetProgramBinary,"Ef":_emscripten_glGetProgramInfoLog,"Df":_emscripten_glGetProgramiv,"Cf":_emscripten_glGetQueryObjecti64vEXT,"Bf":_emscripten_glGetQueryObjectivEXT,"Af":_emscripten_glGetQueryObjectui64vEXT,"zf":_emscripten_glGetQueryObjectuiv,"yf":_emscripten_glGetQueryObjectuivEXT,"xf":_emscripten_glGetQueryiv,"wf":_emscripten_glGetQueryivEXT,"vf":_emscripten_glGetRenderbufferParameteriv,"uf":_emscripten_glGetSamplerParameterfv,"tf":_emscripten_glGetSamplerParameteriv,"sf":_emscripten_glGetShaderInfoLog,"rf":_emscripten_glGetShaderPrecisionFormat,"qf":_emscripten_glGetShaderSource,"pf":_emscripten_glGetShaderiv,"of":_emscripten_glGetString,"nf":_emscripten_glGetStringi,"mf":_emscripten_glGetSynciv,"lf":_emscripten_glGetTexParameterfv,"kf":_emscripten_glGetTexParameteriv,"jf":_emscripten_glGetTransformFeedbackVarying,"hf":_emscripten_glGetUniformBlockIndex,"gf":_emscripten_glGetUniformIndices,"ff":_emscripten_glGetUniformLocation,"ef":_emscripten_glGetUniformfv,"df":_emscripten_glGetUniformiv,"cf":_emscripten_glGetUniformuiv,"bf":_emscripten_glGetVertexAttribIiv,"af":_emscripten_glGetVertexAttribIuiv,"$e":_emscripten_glGetVertexAttribPointerv,"_e":_emscripten_glGetVertexAttribfv,"Ze":_emscripten_glGetVertexAttribiv,"Ye":_emscripten_glHint,"Xe":_emscripten_glInvalidateFramebuffer,"We":_emscripten_glInvalidateSubFramebuffer,"Ve":_emscripten_glIsBuffer,"Ue":_emscripten_glIsEnabled,"Te":_emscripten_glIsFramebuffer,"Se":_emscripten_glIsProgram,"Re":_emscripten_glIsQuery,"Qe":_emscripten_glIsQueryEXT,"Pe":_emscripten_glIsRenderbuffer,"Oe":_emscripten_glIsSampler,"Ne":_emscripten_glIsShader,"Me":_emscripten_glIsSync,"Le":_emscripten_glIsTexture,"Ke":_emscripten_glIsTransformFeedback,"Je":_emscripten_glIsVertexArray,"Ie":_emscripten_glIsVertexArrayOES,"He":_emscripten_glLineWidth,"Ge":_emscripten_glLinkProgram,"Fe":_emscripten_glMapBufferRange,"Ee":_emscripten_glPauseTransformFeedback,"De":_emscripten_glPixelStorei,"Ce":_emscripten_glPolygonOffset,"Be":_emscripten_glProgramBinary,"Ae":_emscripten_glProgramParameteri,"ze":_emscripten_glQueryCounterEXT,"ye":_emscripten_glReadBuffer,"xe":_emscripten_glReadPixels,"we":_emscripten_glReleaseShaderCompiler,"ve":_emscripten_glRenderbufferStorage,"ue":_emscripten_glRenderbufferStorageMultisample,"te":_emscripten_glResumeTransformFeedback,"se":_emscripten_glSampleCoverage,"re":_emscripten_glSamplerParameterf,"qe":_emscripten_glSamplerParameterfv,"pe":_emscripten_glSamplerParameteri,"oe":_emscripten_glSamplerParameteriv,"ne":_emscripten_glScissor,"me":_emscripten_glShaderBinary,"le":_emscripten_glShaderSource,"ke":_emscripten_glStencilFunc,"je":_emscripten_glStencilFuncSeparate,"ie":_emscripten_glStencilMask,"he":_emscripten_glStencilMaskSeparate,"ge":_emscripten_glStencilOp,"fe":_emscripten_glStencilOpSeparate,"ee":_emscripten_glTexImage2D,"de":_emscripten_glTexImage3D,"ce":_emscripten_glTexParameterf,"be":_emscripten_glTexParameterfv,"ae":_emscripten_glTexParameteri,"$d":_emscripten_glTexParameteriv,"_d":_emscripten_glTexStorage2D,"Zd":_emscripten_glTexStorage3D,"Yd":_emscripten_glTexSubImage2D,"Xd":_emscripten_glTexSubImage3D,"Wd":_emscripten_glTransformFeedbackVaryings,"Vd":_emscripten_glUniform1f,"Ud":_emscripten_glUniform1fv,"Td":_emscripten_glUniform1i,"Sd":_emscripten_glUniform1iv,"Rd":_emscripten_glUniform1ui,"Qd":_emscripten_glUniform1uiv,"Pd":_emscripten_glUniform2f,"Od":_emscripten_glUniform2fv,"Nd":_emscripten_glUniform2i,"Md":_emscripten_glUniform2iv,"Ld":_emscripten_glUniform2ui,"Kd":_emscripten_glUniform2uiv,"Jd":_emscripten_glUniform3f,"Id":_emscripten_glUniform3fv,"Hd":_emscripten_glUniform3i,"Gd":_emscripten_glUniform3iv,"Fd":_emscripten_glUniform3ui,"Ed":_emscripten_glUniform3uiv,"Dd":_emscripten_glUniform4f,"Cd":_emscripten_glUniform4fv,"Bd":_emscripten_glUniform4i,"Ad":_emscripten_glUniform4iv,"zd":_emscripten_glUniform4ui,"yd":_emscripten_glUniform4uiv,"xd":_emscripten_glUniformBlockBinding,"wd":_emscripten_glUniformMatrix2fv,"vd":_emscripten_glUniformMatrix2x3fv,"ud":_emscripten_glUniformMatrix2x4fv,"td":_emscripten_glUniformMatrix3fv,"sd":_emscripten_glUniformMatrix3x2fv,"rd":_emscripten_glUniformMatrix3x4fv,"qd":_emscripten_glUniformMatrix4fv,"pd":_emscripten_glUniformMatrix4x2fv,"od":_emscripten_glUniformMatrix4x3fv,"nd":_emscripten_glUnmapBuffer,"md":_emscripten_glUseProgram,"ld":_emscripten_glValidateProgram,"kd":_emscripten_glVertexAttrib1f,"jd":_emscripten_glVertexAttrib1fv,"id":_emscripten_glVertexAttrib2f,"hd":_emscripten_glVertexAttrib2fv,"gd":_emscripten_glVertexAttrib3f,"fd":_emscripten_glVertexAttrib3fv,"ed":_emscripten_glVertexAttrib4f,"dd":_emscripten_glVertexAttrib4fv,"cd":_emscripten_glVertexAttribDivisor,"bd":_emscripten_glVertexAttribDivisorANGLE,"ad":_emscripten_glVertexAttribDivisorARB,"$c":_emscripten_glVertexAttribDivisorEXT,"_c":_emscripten_glVertexAttribDivisorNV,"Zc":_emscripten_glVertexAttribI4i,"Yc":_emscripten_glVertexAttribI4iv,"Xc":_emscripten_glVertexAttribI4ui,"Wc":_emscripten_glVertexAttribI4uiv,"Vc":_emscripten_glVertexAttribIPointer,"Uc":_emscripten_glVertexAttribPointer,"Tc":_emscripten_glViewport,"Sc":_emscripten_glWaitSync,"J":_emscripten_longjmp,"Rc":_emscripten_memcpy_big,"Qc":_emscripten_request_fullscreen_strategy,"Pc":_emscripten_request_pointerlock,"Oc":_emscripten_resize_heap,"Nc":_emscripten_sample_gamepad_data,"Jb":_emscripten_set_canvas_element_size,"Mc":_emscripten_set_fullscreenchange_callback_on_thread,"Lc":_emscripten_set_gamepadconnected_callback_on_thread,"Kc":_emscripten_set_gamepaddisconnected_callback_on_thread,"Jc":_emscripten_set_keydown_callback_on_thread,"Ic":_emscripten_set_keypress_callback_on_thread,"Hc":_emscripten_set_keyup_callback_on_thread,"Gc":_emscripten_set_main_loop,"Fc":_emscripten_set_mousedown_callback_on_thread,"Ec":_emscripten_set_mousemove_callback_on_thread,"Dc":_emscripten_set_mouseup_callback_on_thread,"Cc":_emscripten_set_touchcancel_callback_on_thread,"Bc":_emscripten_set_touchend_callback_on_thread,"Ac":_emscripten_set_touchmove_callback_on_thread,"zc":_emscripten_set_touchstart_callback_on_thread,"yc":_emscripten_set_wheel_callback_on_thread,"xc":_emscripten_webgl_create_context,"wc":_emscripten_webgl_init_context_attributes,"vc":_emscripten_webgl_make_context_current,"ji":_environ_get,"ii":_environ_sizes_get,"uc":_exit,"Da":_fd_close,"hi":_fd_write,"nb":_gai_strerror,"p":_getTempRet0,"mb":_getaddrinfo,"tc":_getnameinfo,"Ib":_gettimeofday,"c":_glActiveTexture,"$a":_glAttachShader,"lb":_glBeginTransformFeedback,"Hb":_glBindAttribLocation,"d":_glBindBuffer,"U":_glBindBufferBase,"f":_glBindFramebuffer,"ha":_glBindRenderbuffer,"b":_glBindTexture,"n":_glBindVertexArray,"M":_glBlendEquation,"Z":_glBlendFunc,"I":_glBlendFuncSeparate,"qa":_glBlitFramebuffer,"u":_glBufferData,"w":_glBufferSubData,"Q":_glCheckFramebufferStatus,"P":_glClear,"Ca":_glClearBufferfv,"T":_glClearColor,"ga":_glClearDepthf,"S":_glColorMask,"_a":_glCompileShader,"Gb":_glCompressedTexImage2D,"sc":_glCompressedTexImage3D,"rc":_glCompressedTexSubImage2D,"kb":_glCompressedTexSubImage3D,"qc":_glCopyBufferSubData,"jb":_glCopyTexSubImage2D,"Fb":_glCreateProgram,"Za":_glCreateShader,"Ba":_glCullFace,"R":_glDeleteBuffers,"K":_glDeleteFramebuffers,"X":_glDeleteProgram,"ea":_glDeleteRenderbuffers,"N":_glDeleteShader,"F":_glDeleteTextures,"ka":_glDeleteVertexArrays,"da":_glDepthFunc,"L":_glDepthMask,"o":_glDisable,"s":_glDisableVertexAttribArray,"C":_glDrawArrays,"ya":_glDrawArraysInstanced,"Qa":_glDrawBuffers,"W":_glDrawElements,"xa":_glDrawElementsInstanced,"A":_glEnable,"l":_glEnableVertexAttribArray,"ib":_glEndTransformFeedback,"pc":_glFinish,"fa":_glFramebufferRenderbuffer,"E":_glFramebufferTexture2D,"Eb":_glFramebufferTextureLayer,"Db":_glFrontFace,"G":_glGenBuffers,"H":_glGenFramebuffers,"pa":_glGenRenderbuffers,"B":_glGenTextures,"$":_glGenVertexArrays,"Y":_glGenerateMipmap,"oc":_glGetFloatv,"wa":_glGetIntegerv,"Cb":_glGetProgramInfoLog,"Ya":_glGetProgramiv,"Xa":_glGetShaderInfoLog,"Aa":_glGetShaderiv,"Wa":_glGetString,"nc":_glGetStringi,"mc":_glGetUniformBlockIndex,"Ha":_glGetUniformLocation,"lc":_glInvalidateFramebuffer,"Bb":_glLinkProgram,"va":_glPixelStorei,"ua":_glReadBuffer,"hb":_glReadPixels,"oa":_glRenderbufferStorage,"Pa":_glRenderbufferStorageMultisample,"V":_glScissor,"Va":_glShaderSource,"z":_glTexImage2D,"Oa":_glTexImage3D,"i":_glTexParameterf,"e":_glTexParameteri,"kc":_glTexStorage2D,"Na":_glTexSubImage2D,"Ua":_glTexSubImage3D,"jc":_glTransformFeedbackVaryings,"h":_glUniform1f,"j":_glUniform1i,"gb":_glUniform1iv,"Ab":_glUniform1ui,"fb":_glUniform2f,"m":_glUniform2fv,"Ka":_glUniform2i,"ta":_glUniform2iv,"eb":_glUniform3f,"ca":_glUniform3fv,"Ja":_glUniform3i,"Ga":_glUniform4f,"t":_glUniform4fv,"Ia":_glUniform4i,"ic":_glUniformBlockBinding,"zb":_glUniformMatrix2fv,"yb":_glUniformMatrix3fv,"g":_glUniformMatrix4fv,"ja":_glUseProgram,"v":_glVertexAttrib4f,"ba":_glVertexAttrib4fv,"D":_glVertexAttribDivisor,"Ta":_glVertexAttribI4ui,"Fa":_glVertexAttribIPointer,"k":_glVertexAttribPointer,"x":_glViewport,"xb":_gmtime,"hc":_godot_xhr_free,"gc":_godot_xhr_get_ready_state,"fc":_godot_xhr_get_response,"ec":_godot_xhr_get_response_headers,"dc":_godot_xhr_get_response_headers_length,"cc":_godot_xhr_get_response_length,"bc":_godot_xhr_get_status,"ac":_godot_xhr_new,"wb":_godot_xhr_open,"db":_godot_xhr_reset,"$b":_godot_xhr_send_data,"_b":_godot_xhr_send_string,"Zb":_godot_xhr_set_request_header,"Yb":_inet_addr,"vb":invoke_i,"na":invoke_ii,"ma":invoke_iii,"Ma":invoke_iiii,"cb":invoke_iiiii,"Xb":invoke_iiiiii,"Wb":invoke_iiiiiii,"ub":invoke_iiiiiiiiii,"Ub":invoke_iiiij,"Ea":invoke_v,"O":invoke_vi,"za":invoke_vii,"la":invoke_viii,"ia":invoke_viiii,"tb":invoke_viiiiiii,"Vb":_kill,"bb":_localtime,"memory":wasmMemory,"Tb":_nanosleep,"La":_round,"aa":_saveSetjmp,"r":_setTempRet0,"Sb":_sigaction,"sb":_strftime,"Rb":_strftime_l,"Qb":_sysconf,"table":wasmTable,"q":_testSetjmp,"Sa":_time,"Pb":_waitpid};var asm=createWasm();Module["asm"]=asm;var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return Module["asm"]["Ei"].apply(null,arguments)};var _audio_driver_js_mix=Module["_audio_driver_js_mix"]=function(){return Module["asm"]["Fi"].apply(null,arguments)};var _audio_driver_process_capture=Module["_audio_driver_process_capture"]=function(){return Module["asm"]["Gi"].apply(null,arguments)};var _resize_poolbytearray_and_open_write=Module["_resize_poolbytearray_and_open_write"]=function(){return Module["asm"]["Hi"].apply(null,arguments)};var _main_after_fs_sync=Module["_main_after_fs_sync"]=function(){return Module["asm"]["Ii"].apply(null,arguments)};var _main=Module["_main"]=function(){return Module["asm"]["Ji"].apply(null,arguments)};var _update_clipboard=Module["_update_clipboard"]=function(){return Module["asm"]["Ki"].apply(null,arguments)};var _send_notification=Module["_send_notification"]=function(){return Module["asm"]["Li"].apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return Module["asm"]["Mi"].apply(null,arguments)};var _free=Module["_free"]=function(){return Module["asm"]["Ni"].apply(null,arguments)};var _htonl=Module["_htonl"]=function(){return Module["asm"]["Oi"].apply(null,arguments)};var _htons=Module["_htons"]=function(){return Module["asm"]["Pi"].apply(null,arguments)};var _ntohs=Module["_ntohs"]=function(){return Module["asm"]["Qi"].apply(null,arguments)};var _realloc=Module["_realloc"]=function(){return Module["asm"]["Ri"].apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return Module["asm"]["Si"].apply(null,arguments)};var __emrtc_on_ch_error=Module["__emrtc_on_ch_error"]=function(){return Module["asm"]["Ti"].apply(null,arguments)};var __emrtc_on_ch_open=Module["__emrtc_on_ch_open"]=function(){return Module["asm"]["Ui"].apply(null,arguments)};var __emrtc_on_ch_close=Module["__emrtc_on_ch_close"]=function(){return Module["asm"]["Vi"].apply(null,arguments)};var __emrtc_on_ch_message=Module["__emrtc_on_ch_message"]=function(){return Module["asm"]["Wi"].apply(null,arguments)};var __emrtc_on_ice_candidate=Module["__emrtc_on_ice_candidate"]=function(){return Module["asm"]["Xi"].apply(null,arguments)};var __emrtc_session_description_created=Module["__emrtc_session_description_created"]=function(){return Module["asm"]["Yi"].apply(null,arguments)};var __emrtc_on_connection_state_changed=Module["__emrtc_on_connection_state_changed"]=function(){return Module["asm"]["Zi"].apply(null,arguments)};var __emrtc_on_error=Module["__emrtc_on_error"]=function(){return Module["asm"]["_i"].apply(null,arguments)};var __emrtc_emit_channel=Module["__emrtc_emit_channel"]=function(){return Module["asm"]["$i"].apply(null,arguments)};var __esws_on_connect=Module["__esws_on_connect"]=function(){return Module["asm"]["aj"].apply(null,arguments)};var __esws_on_message=Module["__esws_on_message"]=function(){return Module["asm"]["bj"].apply(null,arguments)};var __esws_on_error=Module["__esws_on_error"]=function(){return Module["asm"]["cj"].apply(null,arguments)};var __esws_on_close=Module["__esws_on_close"]=function(){return Module["asm"]["dj"].apply(null,arguments)};var __get_tzname=Module["__get_tzname"]=function(){return Module["asm"]["ej"].apply(null,arguments)};var __get_daylight=Module["__get_daylight"]=function(){return Module["asm"]["fj"].apply(null,arguments)};var __get_timezone=Module["__get_timezone"]=function(){return Module["asm"]["gj"].apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return Module["asm"]["hj"].apply(null,arguments)};var _emscripten_GetProcAddress=Module["_emscripten_GetProcAddress"]=function(){return Module["asm"]["ij"].apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return Module["asm"]["jj"].apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return Module["asm"]["kj"].apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return Module["asm"]["lj"].apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return Module["asm"]["mj"].apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return Module["asm"]["nj"].apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return Module["asm"]["oj"].apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return Module["asm"]["pj"].apply(null,arguments)};var dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=function(){return Module["asm"]["qj"].apply(null,arguments)};var dynCall_iiiij=Module["dynCall_iiiij"]=function(){return Module["asm"]["rj"].apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return Module["asm"]["sj"].apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return Module["asm"]["tj"].apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return Module["asm"]["uj"].apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return Module["asm"]["vj"].apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return Module["asm"]["wj"].apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return Module["asm"]["xj"].apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return Module["asm"]["yj"].apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return Module["asm"]["zj"].apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return Module["asm"]["Aj"].apply(null,arguments)};function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiij(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}Module["asm"]=asm;Module["callMain"]=callMain;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=Module["_main"](argc,argv);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=false;if(Module["noInitialRun"])shouldRunNow=false;noExitRuntime=true;run(); - - // The following is concatenated with generated code, and acts as the end - // of a wrapper for said code. See pre.js for the other part of the - // wrapper. - exposedLibs['PATH'] = PATH; - exposedLibs['FS'] = FS; - return Module; - }, -}; - -(function() { - var engine = Engine; - - var DOWNLOAD_ATTEMPTS_MAX = 4; - - var basePath = null; - var wasmFilenameExtensionOverride = null; - var engineLoadPromise = null; - - var loadingFiles = {}; - - function getPathLeaf(path) { - - while (path.endsWith('/')) - path = path.slice(0, -1); - return path.slice(path.lastIndexOf('/') + 1); - } - - function getBasePath(path) { - - if (path.endsWith('/')) - path = path.slice(0, -1); - if (path.lastIndexOf('.') > path.lastIndexOf('/')) - path = path.slice(0, path.lastIndexOf('.')); - return path; - } - - function getBaseName(path) { - - return getPathLeaf(getBasePath(path)); - } - - Engine = function Engine() { - - this.rtenv = null; - - var LIBS = {}; - - var initPromise = null; - var unloadAfterInit = true; - - var preloadedFiles = []; - - var resizeCanvasOnStart = true; - var progressFunc = null; - var preloadProgressTracker = {}; - var lastProgress = { loaded: 0, total: 0 }; - - var canvas = null; - var executableName = null; - var locale = null; - var stdout = null; - var stderr = null; - - this.init = function(newBasePath) { - - if (!initPromise) { - initPromise = Engine.load(newBasePath).then( - instantiate.bind(this) - ); - requestAnimationFrame(animateProgress); - if (unloadAfterInit) - initPromise.then(Engine.unloadEngine); - } - return initPromise; - }; - - function instantiate(wasmBuf) { - - var rtenvProps = { - engine: this, - ENV: {}, - }; - if (typeof stdout === 'function') - rtenvProps.print = stdout; - if (typeof stderr === 'function') - rtenvProps.printErr = stderr; - rtenvProps.instantiateWasm = function(imports, onSuccess) { - WebAssembly.instantiate(wasmBuf, imports).then(function(result) { - onSuccess(result.instance); - }); - return {}; - }; - - return new Promise(function(resolve, reject) { - rtenvProps.onRuntimeInitialized = resolve; - rtenvProps.onAbort = reject; - rtenvProps.thisProgram = executableName; - rtenvProps.engine.rtenv = Engine.RuntimeEnvironment(rtenvProps, LIBS); - }); - } - - this.preloadFile = function(pathOrBuffer, destPath) { - - if (pathOrBuffer instanceof ArrayBuffer) { - pathOrBuffer = new Uint8Array(pathOrBuffer); - } else if (ArrayBuffer.isView(pathOrBuffer)) { - pathOrBuffer = new Uint8Array(pathOrBuffer.buffer); - } - if (pathOrBuffer instanceof Uint8Array) { - preloadedFiles.push({ - path: destPath, - buffer: pathOrBuffer - }); - return Promise.resolve(); - } else if (typeof pathOrBuffer === 'string') { - return loadPromise(pathOrBuffer, preloadProgressTracker).then(function(xhr) { - preloadedFiles.push({ - path: destPath || pathOrBuffer, - buffer: xhr.response - }); - }); - } else { - throw Promise.reject("Invalid object for preloading"); - } - }; - - this.start = function() { - - return this.init().then( - Function.prototype.apply.bind(synchronousStart, this, arguments) - ); - }; - - this.startGame = function(execName, mainPack) { - - executableName = execName; - var mainArgs = [ '--main-pack', getPathLeaf(mainPack) ]; - - return Promise.all([ - this.init(getBasePath(execName)), - this.preloadFile(mainPack, getPathLeaf(mainPack)) - ]).then( - Function.prototype.apply.bind(synchronousStart, this, mainArgs) - ); - }; - - function synchronousStart() { - - if (canvas instanceof HTMLCanvasElement) { - this.rtenv.canvas = canvas; - } else { - var firstCanvas = document.getElementsByTagName('canvas')[0]; - if (firstCanvas instanceof HTMLCanvasElement) { - this.rtenv.canvas = firstCanvas; - } else { - throw new Error("No canvas found"); - } - } - - var actualCanvas = this.rtenv.canvas; - // canvas can grab focus on click - if (actualCanvas.tabIndex < 0) { - actualCanvas.tabIndex = 0; - } - // necessary to calculate cursor coordinates correctly - actualCanvas.style.padding = 0; - actualCanvas.style.borderWidth = 0; - actualCanvas.style.borderStyle = 'none'; - // disable right-click context menu - actualCanvas.addEventListener('contextmenu', function(ev) { - ev.preventDefault(); - }, false); - // until context restoration is implemented - actualCanvas.addEventListener('webglcontextlost', function(ev) { - alert("WebGL context lost, please reload the page"); - ev.preventDefault(); - }, false); - - if (locale) { - this.rtenv.locale = locale; - } else { - this.rtenv.locale = navigator.languages ? navigator.languages[0] : navigator.language; - } - this.rtenv.locale = this.rtenv.locale.split('.')[0]; - this.rtenv.resizeCanvasOnStart = resizeCanvasOnStart; - - preloadedFiles.forEach(function(file) { - var dir = LIBS.PATH.dirname(file.path); - try { - LIBS.FS.stat(dir); - } catch (e) { - if (e.code !== 'ENOENT') { - throw e; - } - LIBS.FS.mkdirTree(dir); - } - // With memory growth, canOwn should be false. - LIBS.FS.createDataFile(file.path, null, new Uint8Array(file.buffer), true, true, false); - }, this); - - preloadedFiles = null; - initPromise = null; - this.rtenv.callMain(arguments); - } - - this.setProgressFunc = function(func) { - progressFunc = func; - }; - - this.setResizeCanvasOnStart = function(enabled) { - resizeCanvasOnStart = enabled; - }; - - function animateProgress() { - - var loaded = 0; - var total = 0; - var totalIsValid = true; - var progressIsFinal = true; - - [loadingFiles, preloadProgressTracker].forEach(function(tracker) { - Object.keys(tracker).forEach(function(file) { - if (!tracker[file].final) - progressIsFinal = false; - if (!totalIsValid || tracker[file].total === 0) { - totalIsValid = false; - total = 0; - } else { - total += tracker[file].total; - } - loaded += tracker[file].loaded; - }); - }); - if (loaded !== lastProgress.loaded || total !== lastProgress.total) { - lastProgress.loaded = loaded; - lastProgress.total = total; - if (typeof progressFunc === 'function') - progressFunc(loaded, total); - } - if (!progressIsFinal) - requestAnimationFrame(animateProgress); - } - - this.setCanvas = function(elem) { - canvas = elem; - }; - - this.setExecutableName = function(newName) { - - executableName = newName; - }; - - this.setLocale = function(newLocale) { - - locale = newLocale; - }; - - this.setUnloadAfterInit = function(enabled) { - - if (enabled && !unloadAfterInit && initPromise) { - initPromise.then(Engine.unloadEngine); - } - unloadAfterInit = enabled; - }; - - this.setStdoutFunc = function(func) { - - var print = function(text) { - if (arguments.length > 1) { - text = Array.prototype.slice.call(arguments).join(" "); - } - func(text); - }; - if (this.rtenv) - this.rtenv.print = print; - stdout = print; - }; - - this.setStderrFunc = function(func) { - - var printErr = function(text) { - if (arguments.length > 1) - text = Array.prototype.slice.call(arguments).join(" "); - func(text); - }; - if (this.rtenv) - this.rtenv.printErr = printErr; - stderr = printErr; - }; - - - }; // Engine() - - Engine.RuntimeEnvironment = engine.RuntimeEnvironment; - - Engine.isWebGLAvailable = function(majorVersion = 1) { - - var testContext = false; - try { - var testCanvas = document.createElement('canvas'); - if (majorVersion === 1) { - testContext = testCanvas.getContext('webgl') || testCanvas.getContext('experimental-webgl'); - } else if (majorVersion === 2) { - testContext = testCanvas.getContext('webgl2') || testCanvas.getContext('experimental-webgl2'); - } - } catch (e) {} - return !!testContext; - }; - - Engine.setWebAssemblyFilenameExtension = function(override) { - - if (String(override).length === 0) { - throw new Error('Invalid WebAssembly filename extension override'); - } - wasmFilenameExtensionOverride = String(override); - } - - Engine.load = function(newBasePath) { - - if (newBasePath !== undefined) basePath = getBasePath(newBasePath); - if (engineLoadPromise === null) { - if (typeof WebAssembly !== 'object') - return Promise.reject(new Error("Browser doesn't support WebAssembly")); - // TODO cache/retrieve module to/from idb - engineLoadPromise = loadPromise(basePath + '.' + (wasmFilenameExtensionOverride || 'wasm')).then(function(xhr) { - return xhr.response; - }); - engineLoadPromise = engineLoadPromise.catch(function(err) { - engineLoadPromise = null; - throw err; - }); - } - return engineLoadPromise; - }; - - Engine.unload = function() { - engineLoadPromise = null; - }; - - function loadPromise(file, tracker) { - if (tracker === undefined) - tracker = loadingFiles; - return new Promise(function(resolve, reject) { - loadXHR(resolve, reject, file, tracker); - }); - } - - function loadXHR(resolve, reject, file, tracker) { - - var xhr = new XMLHttpRequest; - xhr.open('GET', file); - if (!file.endsWith('.js')) { - xhr.responseType = 'arraybuffer'; - } - ['loadstart', 'progress', 'load', 'error', 'abort'].forEach(function(ev) { - xhr.addEventListener(ev, onXHREvent.bind(xhr, resolve, reject, file, tracker)); - }); - xhr.send(); - } - - function onXHREvent(resolve, reject, file, tracker, ev) { - - if (this.status >= 400) { - - if (this.status < 500 || ++tracker[file].attempts >= DOWNLOAD_ATTEMPTS_MAX) { - reject(new Error("Failed loading file '" + file + "': " + this.statusText)); - this.abort(); - return; - } else { - setTimeout(loadXHR.bind(null, resolve, reject, file, tracker), 1000); - } - } - - switch (ev.type) { - case 'loadstart': - if (tracker[file] === undefined) { - tracker[file] = { - total: ev.total, - loaded: ev.loaded, - attempts: 0, - final: false, - }; - } - break; - - case 'progress': - tracker[file].loaded = ev.loaded; - tracker[file].total = ev.total; - break; - - case 'load': - tracker[file].final = true; - resolve(this); - break; - - case 'error': - if (++tracker[file].attempts >= DOWNLOAD_ATTEMPTS_MAX) { - tracker[file].final = true; - reject(new Error("Failed loading file '" + file + "'")); - } else { - setTimeout(loadXHR.bind(null, resolve, reject, file, tracker), 1000); - } - break; - - case 'abort': - tracker[file].final = true; - reject(new Error("Loading file '" + file + "' was aborted.")); - break; - } - } -})(); diff --git a/docs/TonysDressUp.pck b/docs/TonysDressUp.pck deleted file mode 100644 index b8d5acf80e4b94035e9f7917667687ad8196ba7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1795232 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

H`#z06)JO`zmi|* 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

k9LwfkP>s>Rl5FM@>X4iB!NG&BWPS(??I) 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