From f63c2b00ca92f8ea7a27a8d49a50685b6b461ee2 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Mon, 4 Sep 2023 04:48:09 -0500 Subject: [PATCH] Collection Point AI fix. --- olcCodeJam2023Entry/Scenario.cpp | 16 +++++++++++----- olcCodeJam2023Entry/pge.js | 2 +- olcCodeJam2023Entry/pge.wasm | Bin 1145476 -> 1147340 bytes 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/olcCodeJam2023Entry/Scenario.cpp b/olcCodeJam2023Entry/Scenario.cpp index 589becb..872653c 100644 --- a/olcCodeJam2023Entry/Scenario.cpp +++ b/olcCodeJam2023Entry/Scenario.cpp @@ -93,7 +93,7 @@ void Scenario::RunAI(Resources&enemy_resources,std::vectorGetElapsedTime()); + cpCheckTimer[key.first]=std::max(0.0f,cpCheckTimer[key.first]-game.GetPGE()->GetElapsedTime()); } int memoryAllocatorCount=0; for(auto&u:units){ @@ -752,6 +752,7 @@ void Stage6::Update(){ if(box.bPressed){ flags.playerInControl=true; box.SetVisible(false); + state=1; } }break; } @@ -803,15 +804,20 @@ Stage8::Stage8(std::vector>&units,std::vector{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});var nodeMajor=process.versions.node.split(".")[0];if(nodeMajor<15){process.on("unhandledRejection",reason=>{throw reason})}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]"}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}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();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}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 addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="pge.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinary(binaryFile))}else{if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateMemoryViews();wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={136300:()=>{return Module.canvas.getBoundingClientRect().left},136352:()=>{return Module.canvas.getBoundingClientRect().top},136403:()=>{return Module.olc_MOUSEX},136431:()=>{return Module.olc_MOUSEY},136459:()=>{return Module.olc_MOUSEDOWN},136489:()=>{return Module.olc_MOUSEUP},136517:()=>{Module.olc_MOUSEDOWN=-1},136543:()=>{Module.olc_MOUSEUP=-1},136567:()=>{window.onunload=Module._olc_OnPageUnload},136611:($0,$1)=>{Module.olc_AspectRatio=$0/$1;Module.olc_MOUSEDOWN=-1;Module.olc_MOUSEUP=-1;onmousemove=function(e){Module.olc_MOUSEX=e.clientX;Module.olc_MOUSEY=e.clientY};onmousedown=function(e){Module.olc_MOUSEDOWN=e.button};onmouseup=function(e){Module.olc_MOUSEUP=e.button};ontouchmove=function(e){Module.olc_MOUSEX=e.touches[0].clientX;Module.olc_MOUSEY=e.touches[0].clientY};ontouchstart=function(e){Module.olc_MOUSEX=e.touches[0].clientX;Module.olc_MOUSEY=e.touches[0].clientY};Module.olc_AssumeDefaultShells=document.querySelectorAll(".emscripten").length>=3?true:false;var olc_ResizeHandler=function(){let isFullscreen=document.fullscreenElement!=null;let width=isFullscreen?window.innerWidth:Module.canvas.parentNode.clientWidth;let height=isFullscreen?window.innerHeight:Module.canvas.parentNode.clientHeight;let viewWidth=width;let viewHeight=width/Module.olc_AspectRatio;if(viewHeight>height){viewWidth=height*Module.olc_AspectRatio;viewHeight=height}viewWidth=parseInt(viewWidth);viewHeight=parseInt(viewHeight);setTimeout(function(){if(Module.olc_AssumeDefaultShells)Module.canvas.parentNode.setAttribute("style","width: 100%; height: 70vh; margin-left: auto; margin-right: auto;");Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);Module.canvas.setAttribute("style",`width: ${viewWidth}px; height: ${viewHeight}px;`);Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus()},200)};var olc_Init=function(){if(Module.olc_AspectRatio===undefined){setTimeout(function(){Module.olc_Init()},50);return}let resizeObserver=new ResizeObserver(function(entries){Module.olc_ResizeHandler()}).observe(Module.canvas.parentNode);let mutationObserver=new MutationObserver(function(mutationsList,observer){setTimeout(function(){Module.olc_ResizeHandler()},200)}).observe(Module.canvas.parentNode,{attributes:false,childList:true,subtree:false});window.addEventListener("fullscreenchange",function(e){setTimeout(function(){Module.olc_ResizeHandler()},200)})};Module.olc_ResizeHandler=Module.olc_ResizeHandler!=undefined?Module.olc_ResizeHandler:olc_ResizeHandler;Module.olc_Init=Module.olc_Init!=undefined?Module.olc_Init:olc_Init;Module.olc_Init()},139005:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},139152:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},139386:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},139879:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},139947:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},141599:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},142009:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c>2]}}},143094:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},146724:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},146807:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},146876:()=>{return window.innerWidth},146906:()=>{return window.innerHeight}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}function listenOnce(object,event,func){object.addEventListener(event,func,{"once":true})}function autoResumeAudioContext(ctx,elements){if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";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.floor(tempDouble/4294967296)>>>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;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function ___assert_fail(condition,filename,line,func){abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var exceptionCaught=[];var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_rethrow(){var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function initRandomFill(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")}function randomFill(view){return(randomFill=initRandomFill())(view)}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.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(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;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}function stringToUTF8Array(str,heap,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;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}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 TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}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;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=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+length{assert(arrayBuffer,`Loading data file "${url}" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)}var preloadPlugins=Module["preloadPlugins"]||[];function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled}function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}}function FS_modeStringToFlags(str){var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags}function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,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:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}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:(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:()=>{for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd=-1)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};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}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`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(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(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: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(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.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=(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);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||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(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;out("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(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){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{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>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;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,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 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);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:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function _abort(){abort("")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}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=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}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){global.performance=require("perf_hooks").performance}_emscripten_get_now=()=>performance.now();function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){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=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){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}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function callUserCallback(func){if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(()=>{callUserCallback(func)},timeout)}var Browser={mainLoop:{running:false,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;setMainLoop(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{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=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;safeSetTimeout(()=>{finish(audio)},1e4)};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"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});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",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:2};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(callback=>callback());Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["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"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});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)},safeSetTimeout:function(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},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}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(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 _eglBindAPI(api){if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0}function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};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;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetConfigAttrib(display,config,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglGetError(){return EGL.errorCode}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function stringToNewUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret}function _eglQueryString(display,name){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8("Emscripten");break;case 12372:ret=stringToNewUTF8("1.4 Emscripten EGL");break;case 12373:ret=stringToNewUTF8("");break;case 12429:ret=stringToNewUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret}function _eglSwapBuffers(dpy,surface){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}function _eglWaitClient(){EGL.setErrorCode(12288);return 1}var _eglWaitGL=_eglWaitClient;function _eglWaitNative(nativeEngineId){EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readEmAsmArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readEmAsmArgsArray}function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf)}function runMainThreadEmAsm(code,sigPtr,argbuf,sync){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int_sync_on_main_thread(code,sigPtr,argbuf){return runMainThreadEmAsm(code,sigPtr,argbuf,1)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_date_now(){return Date.now()}function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}var JSEvents={inEventHandler:0,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.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_get_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height}function stringToUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret}function getCanvasElementSize(target){return withStackSave(function(){var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];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 setCanvasElementSize(target,width,height){if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(function(){var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}}function registerRestoreOldStyle(canvas){var canvasSize=getCanvasElementSize(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.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(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){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle}function setLetterbox(element,topBottom,leftRight){element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}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=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(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>3]=rect.width;HEAPF64[height>>3]=rect.height;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_num_gamepads(){return JSEvents.lastGamepadState.length}function _emscripten_get_screen_size(width,height){HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height}function _glActiveTexture(x0){GLctx.activeTexture(x0)}var _emscripten_glActiveTexture=_glActiveTexture;function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}var _emscripten_glAttachShader=_glAttachShader;function _glBeginQuery(target,id){GLctx.beginQuery(target,GL.queries[id])}var _emscripten_glBeginQuery=_glBeginQuery;function _glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;function _glBeginTransformFeedback(x0){GLctx.beginTransformFeedback(x0)}var _emscripten_glBeginTransformFeedback=_glBeginTransformFeedback;function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}var _emscripten_glBindAttribLocation=_glBindAttribLocation;function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}var _emscripten_glBindBuffer=_glBindBuffer;function _glBindBufferBase(target,index,buffer){GLctx.bindBufferBase(target,index,GL.buffers[buffer])}var _emscripten_glBindBufferBase=_glBindBufferBase;function _glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)}var _emscripten_glBindBufferRange=_glBindBufferRange;function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}var _emscripten_glBindFramebuffer=_glBindFramebuffer;function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;function _glBindSampler(unit,sampler){GLctx.bindSampler(unit,GL.samplers[sampler])}var _emscripten_glBindSampler=_glBindSampler;function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}var _emscripten_glBindTexture=_glBindTexture;function _glBindTransformFeedback(target,id){GLctx.bindTransformFeedback(target,GL.transformFeedbacks[id])}var _emscripten_glBindTransformFeedback=_glBindTransformFeedback;function _glBindVertexArray(vao){GLctx.bindVertexArray(GL.vaos[vao])}var _emscripten_glBindVertexArray=_glBindVertexArray;var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;function _glBlendColor(x0,x1,x2,x3){GLctx.blendColor(x0,x1,x2,x3)}var _emscripten_glBlendColor=_glBlendColor;function _glBlendEquation(x0){GLctx.blendEquation(x0)}var _emscripten_glBlendEquation=_glBlendEquation;function _glBlendEquationSeparate(x0,x1){GLctx.blendEquationSeparate(x0,x1)}var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}var _emscripten_glBlendFunc=_glBlendFunc;function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx.blendFuncSeparate(x0,x1,x2,x3)}var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}var _emscripten_glBlitFramebuffer=_glBlitFramebuffer;function _glBufferData(target,size,data,usage){if(true){if(data&&size){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)}}var _emscripten_glBufferData=_glBufferData;function _glBufferSubData(target,offset,size,data){if(true){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}var _emscripten_glBufferSubData=_glBufferSubData;function _glCheckFramebufferStatus(x0){return GLctx.checkFramebufferStatus(x0)}var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;function _glClear(x0){GLctx.clear(x0)}var _emscripten_glClear=_glClear;function _glClearBufferfi(x0,x1,x2,x3){GLctx.clearBufferfi(x0,x1,x2,x3)}var _emscripten_glClearBufferfi=_glClearBufferfi;function _glClearBufferfv(buffer,drawbuffer,value){GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)}var _emscripten_glClearBufferfv=_glClearBufferfv;function _glClearBufferiv(buffer,drawbuffer,value){GLctx.clearBufferiv(buffer,drawbuffer,HEAP32,value>>2)}var _emscripten_glClearBufferiv=_glClearBufferiv;function _glClearBufferuiv(buffer,drawbuffer,value){GLctx.clearBufferuiv(buffer,drawbuffer,HEAPU32,value>>2)}var _emscripten_glClearBufferuiv=_glClearBufferuiv;function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _emscripten_glClearColor=_glClearColor;function _glClearDepthf(x0){GLctx.clearDepth(x0)}var _emscripten_glClearDepthf=_glClearDepthf;function _glClearStencil(x0){GLctx.clearStencil(x0)}var _emscripten_glClearStencil=_glClearStencil;function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _glClientWaitSync(sync,flags,timeout_low,timeout_high){var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)}var _emscripten_glClientWaitSync=_glClientWaitSync;function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}var _emscripten_glColorMask=_glColorMask;function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}var _emscripten_glCompileShader=_glCompileShader;function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){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)}var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;function _glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){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)}}var _emscripten_glCompressedTexImage3D=_glCompressedTexImage3D;function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){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)}var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){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)}}var _emscripten_glCompressedTexSubImage3D=_glCompressedTexSubImage3D;function _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx.copyBufferSubData(x0,x1,x2,x3,x4)}var _emscripten_glCopyBufferSubData=_glCopyBufferSubData;function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;function _glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx.copyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8)}var _emscripten_glCopyTexSubImage3D=_glCopyTexSubImage3D;function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}var _emscripten_glCreateProgram=_glCreateProgram;function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}var _emscripten_glCreateShader=_glCreateShader;function _glCullFace(x0){GLctx.cullFace(x0)}var _emscripten_glCullFace=_glCullFace;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==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}var _emscripten_glDeleteBuffers=_glDeleteBuffers;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}}var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;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}var _emscripten_glDeleteProgram=_glDeleteProgram;function _glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}}var _emscripten_glDeleteQueries=_glDeleteQueries;function _glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;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}}var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;function _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}}var _emscripten_glDeleteSamplers=_glDeleteSamplers;function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}var _emscripten_glDeleteShader=_glDeleteShader;function _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}var _emscripten_glDeleteSync=_glDeleteSync;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}}var _emscripten_glDeleteTextures=_glDeleteTextures;function _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}}var _emscripten_glDeleteTransformFeedbacks=_glDeleteTransformFeedbacks;function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}}var _emscripten_glDeleteVertexArrays=_glDeleteVertexArrays;var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;function _glDepthFunc(x0){GLctx.depthFunc(x0)}var _emscripten_glDepthFunc=_glDepthFunc;function _glDepthMask(flag){GLctx.depthMask(!!flag)}var _emscripten_glDepthMask=_glDepthMask;function _glDepthRangef(x0,x1){GLctx.depthRange(x0,x1)}var _emscripten_glDepthRangef=_glDepthRangef;function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}var _emscripten_glDetachShader=_glDetachShader;function _glDisable(x0){GLctx.disable(x0)}var _emscripten_glDisable=_glDisable;function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}var _emscripten_glDrawArrays=_glDrawArrays;function _glDrawArraysInstanced(mode,first,count,primcount){GLctx.drawArraysInstanced(mode,first,count,primcount)}var _emscripten_glDrawArraysInstanced=_glDrawArraysInstanced;var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var _glDrawArraysInstancedARB=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedARB=_glDrawArraysInstancedARB;var _glDrawArraysInstancedEXT=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT;var _glDrawArraysInstancedNV=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedNV=_glDrawArraysInstancedNV;var tempFixedLengthArray=[];function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)}var _emscripten_glDrawBuffers=_glDrawBuffers;var _glDrawBuffersEXT=_glDrawBuffers;var _emscripten_glDrawBuffersEXT=_glDrawBuffersEXT;var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}var _emscripten_glDrawElements=_glDrawElements;function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx.drawElementsInstanced(mode,count,type,indices,primcount)}var _emscripten_glDrawElementsInstanced=_glDrawElementsInstanced;var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;var _glDrawElementsInstancedARB=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedARB=_glDrawElementsInstancedARB;var _glDrawElementsInstancedEXT=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT;var _glDrawElementsInstancedNV=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedNV=_glDrawElementsInstancedNV;function _glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}var _emscripten_glDrawRangeElements=_glDrawRangeElements;function _glEnable(x0){GLctx.enable(x0)}var _emscripten_glEnable=_glEnable;function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;function _glEndQuery(x0){GLctx.endQuery(x0)}var _emscripten_glEndQuery=_glEndQuery;function _glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}var _emscripten_glEndQueryEXT=_glEndQueryEXT;function _glEndTransformFeedback(){GLctx.endTransformFeedback()}var _emscripten_glEndTransformFeedback=_glEndTransformFeedback;function _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}return 0}var _emscripten_glFenceSync=_glFenceSync;function _glFinish(){GLctx.finish()}var _emscripten_glFinish=_glFinish;function _glFlush(){GLctx.flush()}var _emscripten_glFlush=_glFlush;function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}var _emscripten_glFramebufferTextureLayer=_glFramebufferTextureLayer;function _glFrontFace(x0){GLctx.frontFace(x0)}var _emscripten_glFrontFace=_glFrontFace;function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}var _emscripten_glGenBuffers=_glGenBuffers;function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}var _emscripten_glGenFramebuffers=_glGenFramebuffers;function _glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}var _emscripten_glGenQueries=_glGenQueries;function _glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;function _glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}var _emscripten_glGenSamplers=_glGenSamplers;function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}var _emscripten_glGenTextures=_glGenTextures;function _glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)}var _emscripten_glGenTransformFeedbacks=_glGenTransformFeedbacks;function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _emscripten_glGenVertexArrays=_glGenVertexArrays;var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;function _glGenerateMipmap(x0){GLctx.generateMipmap(x0)}var _emscripten_glGenerateMipmap=_glGenerateMipmap;function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}var _emscripten_glGetActiveUniform=_glGetActiveUniform;function _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}}var _emscripten_glGetActiveUniformBlockName=_glGetActiveUniformBlockName;function _glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}}var _emscripten_glGetActiveUniformBlockiv=_glGetActiveUniformBlockiv;function _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]}}var _emscripten_glGetActiveUniformsiv=_glGetActiveUniformsiv;function _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}}var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}var _emscripten_glGetAttribLocation=_glGetAttribLocation;function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}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 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368: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:writeI53ToI64(p,ret);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 _glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}var _emscripten_glGetBooleanv=_glGetBooleanv;function _glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}var _emscripten_glGetBufferParameteri64v=_glGetBufferParameteri64v;function _glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}var _emscripten_glGetError=_glGetError;function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}var _emscripten_glGetFloatv=_glGetFloatv;function _glGetFragDataLocation(program,name){return GLctx.getFragDataLocation(GL.programs[program],UTF8ToString(name))}var _emscripten_glGetFragDataLocation=_glGetFragDataLocation;function _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}var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;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:writeI53ToI64(data,ret);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 _glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}var _emscripten_glGetInteger64i_v=_glGetInteger64i_v;function _glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}var _emscripten_glGetInteger64v=_glGetInteger64v;function _glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}var _emscripten_glGetIntegeri_v=_glGetIntegeri_v;function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}var _emscripten_glGetIntegerv=_glGetIntegerv;function _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]}}var _emscripten_glGetInternalformativ=_glGetInternalformativ;function _glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}var _emscripten_glGetProgramBinary=_glGetProgramBinary;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}var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}var _emscripten_glGetProgramiv=_glGetProgramiv;function _glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx.getQueryParameter(query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;function _glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[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}var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;function _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}var _emscripten_glGetQueryObjectuiv=_glGetQueryObjectuiv;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;function _glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getQuery(target,pname)}var _emscripten_glGetQueryiv=_glGetQueryiv;function _glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;function _glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;function _glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)}var _emscripten_glGetSamplerParameterfv=_glGetSamplerParameterfv;function _glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)}var _emscripten_glGetSamplerParameteriv=_glGetSamplerParameteriv;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}var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;function _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}var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;function _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}var _emscripten_glGetShaderSource=_glGetShaderSource;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)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}var _emscripten_glGetShaderiv=_glGetShaderiv;function _glGetString(name_){var ret=GL.stringCache[name_];if(!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=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);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)}GL.stringCache[name_]=ret}return ret}var _emscripten_glGetString=_glGetString;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}}var _emscripten_glGetStringi=_glGetStringi;function _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);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}}var _emscripten_glGetSynciv=_glGetSynciv;function _glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;function _glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;function _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}var _emscripten_glGetTransformFeedbackVarying=_glGetTransformFeedbackVarying;function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName))}var _emscripten_glGetUniformBlockIndex=_glGetUniformBlockIndex;function _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]}}var _emscripten_glGetUniformIndices=_glGetUniformIndices;function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}var _emscripten_glGetUniformfv=_glGetUniformfv;function _glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}var _emscripten_glGetUniformiv=_glGetUniformiv;function _glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}var _emscripten_glGetUniformuiv=_glGetUniformuiv;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&&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}}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}}}}function _glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}var _emscripten_glGetVertexAttribIiv=_glGetVertexAttribIiv;var _glGetVertexAttribIuiv=_glGetVertexAttribIiv;var _emscripten_glGetVertexAttribIuiv=_glGetVertexAttribIuiv;function _glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;function _glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;function _glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;function _glHint(x0,x1){GLctx.hint(x0,x1)}var _emscripten_glHint=_glHint;function _glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateFramebuffer(target,list)}var _emscripten_glInvalidateFramebuffer=_glInvalidateFramebuffer;function _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)}var _emscripten_glInvalidateSubFramebuffer=_glInvalidateSubFramebuffer;function _glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}var _emscripten_glIsBuffer=_glIsBuffer;function _glIsEnabled(x0){return GLctx.isEnabled(x0)}var _emscripten_glIsEnabled=_glIsEnabled;function _glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}var _emscripten_glIsFramebuffer=_glIsFramebuffer;function _glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}var _emscripten_glIsProgram=_glIsProgram;function _glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx.isQuery(query)}var _emscripten_glIsQuery=_glIsQuery;function _glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}var _emscripten_glIsQueryEXT=_glIsQueryEXT;function _glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;function _glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx.isSampler(sampler)}var _emscripten_glIsSampler=_glIsSampler;function _glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}var _emscripten_glIsShader=_glIsShader;function _glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}var _emscripten_glIsSync=_glIsSync;function _glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}var _emscripten_glIsTexture=_glIsTexture;function _glIsTransformFeedback(id){return GLctx.isTransformFeedback(GL.transformFeedbacks[id])}var _emscripten_glIsTransformFeedback=_glIsTransformFeedback;function _glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)}var _emscripten_glIsVertexArray=_glIsVertexArray;var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;function _glLineWidth(x0){GLctx.lineWidth(x0)}var _emscripten_glLineWidth=_glLineWidth;function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}var _emscripten_glLinkProgram=_glLinkProgram;function _glPauseTransformFeedback(){GLctx.pauseTransformFeedback()}var _emscripten_glPauseTransformFeedback=_glPauseTransformFeedback;function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}var _emscripten_glPixelStorei=_glPixelStorei;function _glPolygonOffset(x0,x1){GLctx.polygonOffset(x0,x1)}var _emscripten_glPolygonOffset=_glPolygonOffset;function _glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}var _emscripten_glProgramBinary=_glProgramBinary;function _glProgramParameteri(program,pname,value){GL.recordError(1280)}var _emscripten_glProgramParameteri=_glProgramParameteri;function _glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;function _glReadBuffer(x0){GLctx.readBuffer(x0)}var _emscripten_glReadBuffer=_glReadBuffer;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}function colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}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)}var _emscripten_glReadPixels=_glReadPixels;function _glReleaseShaderCompiler(){}var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;function _glRenderbufferStorage(x0,x1,x2,x3){GLctx.renderbufferStorage(x0,x1,x2,x3)}var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4)}var _emscripten_glRenderbufferStorageMultisample=_glRenderbufferStorageMultisample;function _glResumeTransformFeedback(){GLctx.resumeTransformFeedback()}var _emscripten_glResumeTransformFeedback=_glResumeTransformFeedback;function _glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}var _emscripten_glSampleCoverage=_glSampleCoverage;function _glSamplerParameterf(sampler,pname,param){GLctx.samplerParameterf(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameterf=_glSamplerParameterf;function _glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx.samplerParameterf(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameterfv=_glSamplerParameterfv;function _glSamplerParameteri(sampler,pname,param){GLctx.samplerParameteri(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameteri=_glSamplerParameteri;function _glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx.samplerParameteri(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameteriv=_glSamplerParameteriv;function _glScissor(x0,x1,x2,x3){GLctx.scissor(x0,x1,x2,x3)}var _emscripten_glScissor=_glScissor;function _glShaderBinary(count,shaders,binaryformat,binary,length){GL.recordError(1280)}var _emscripten_glShaderBinary=_glShaderBinary;function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}var _emscripten_glShaderSource=_glShaderSource;function _glStencilFunc(x0,x1,x2){GLctx.stencilFunc(x0,x1,x2)}var _emscripten_glStencilFunc=_glStencilFunc;function _glStencilFuncSeparate(x0,x1,x2,x3){GLctx.stencilFuncSeparate(x0,x1,x2,x3)}var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;function _glStencilMask(x0){GLctx.stencilMask(x0)}var _emscripten_glStencilMask=_glStencilMask;function _glStencilMaskSeparate(x0,x1){GLctx.stencilMaskSeparate(x0,x1)}var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;function _glStencilOp(x0,x1,x2){GLctx.stencilOp(x0,x1,x2)}var _emscripten_glStencilOp=_glStencilOp;function _glStencilOpSeparate(x0,x1,x2,x3){GLctx.stencilOpSeparate(x0,x1,x2,x3)}var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}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)}var _emscripten_glTexImage2D=_glTexImage2D;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){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}}var _emscripten_glTexImage3D=_glTexImage3D;function _glTexParameterf(x0,x1,x2){GLctx.texParameterf(x0,x1,x2)}var _emscripten_glTexParameterf=_glTexParameterf;function _glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}var _emscripten_glTexParameterfv=_glTexParameterfv;function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var _emscripten_glTexParameteri=_glTexParameteri;function _glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}var _emscripten_glTexParameteriv=_glTexParameteriv;function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx.texStorage2D(x0,x1,x2,x3,x4)}var _emscripten_glTexStorage2D=_glTexStorage2D;function _glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx.texStorage3D(x0,x1,x2,x3,x4,x5)}var _emscripten_glTexStorage3D=_glTexStorage3D;function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}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)}var _emscripten_glTexSubImage2D=_glTexSubImage2D;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){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}var _emscripten_glTexSubImage3D=_glTexSubImage3D;function _glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)}var _emscripten_glTransformFeedbackVaryings=_glTransformFeedbackVaryings;function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1f=_glUniform1f;function _glUniform1fv(location,count,value){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count)}var _emscripten_glUniform1fv=_glUniform1fv;function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1i=_glUniform1i;function _glUniform1iv(location,count,value){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count)}var _emscripten_glUniform1iv=_glUniform1iv;function _glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1ui=_glUniform1ui;function _glUniform1uiv(location,count,value){count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)}var _emscripten_glUniform1uiv=_glUniform1uiv;function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2f=_glUniform2f;function _glUniform2fv(location,count,value){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2)}var _emscripten_glUniform2fv=_glUniform2fv;function _glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2i=_glUniform2i;function _glUniform2iv(location,count,value){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2)}var _emscripten_glUniform2iv=_glUniform2iv;function _glUniform2ui(location,v0,v1){GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2ui=_glUniform2ui;function _glUniform2uiv(location,count,value){count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)}var _emscripten_glUniform2uiv=_glUniform2uiv;function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3f=_glUniform3f;function _glUniform3fv(location,count,value){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3)}var _emscripten_glUniform3fv=_glUniform3fv;function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3i=_glUniform3i;function _glUniform3iv(location,count,value){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3)}var _emscripten_glUniform3iv=_glUniform3iv;function _glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3ui=_glUniform3ui;function _glUniform3uiv(location,count,value){count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)}var _emscripten_glUniform3uiv=_glUniform3uiv;function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4f=_glUniform4f;function _glUniform4fv(location,count,value){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4)}var _emscripten_glUniform4fv=_glUniform4fv;function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4i=_glUniform4i;function _glUniform4iv(location,count,value){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4)}var _emscripten_glUniform4iv=_glUniform4iv;function _glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4ui=_glUniform4ui;function _glUniform4uiv(location,count,value){count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)}var _emscripten_glUniform4uiv=_glUniform4uiv;function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)}var _emscripten_glUniformBlockBinding=_glUniformBlockBinding;function _glUniformMatrix2fv(location,count,transpose,value){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4)}var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;function _glUniformMatrix2x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}var _emscripten_glUniformMatrix2x3fv=_glUniformMatrix2x3fv;function _glUniformMatrix2x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}var _emscripten_glUniformMatrix2x4fv=_glUniformMatrix2x4fv;function _glUniformMatrix3fv(location,count,transpose,value){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9)}var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;function _glUniformMatrix3x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}var _emscripten_glUniformMatrix3x2fv=_glUniformMatrix3x2fv;function _glUniformMatrix3x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}var _emscripten_glUniformMatrix3x4fv=_glUniformMatrix3x4fv;function _glUniformMatrix4fv(location,count,transpose,value){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16)}var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;function _glUniformMatrix4x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}var _emscripten_glUniformMatrix4x2fv=_glUniformMatrix4x2fv;function _glUniformMatrix4x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}var _emscripten_glUniformMatrix4x3fv=_glUniformMatrix4x3fv;function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}var _emscripten_glUseProgram=_glUseProgram;function _glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}var _emscripten_glValidateProgram=_glValidateProgram;function _glVertexAttrib1f(x0,x1){GLctx.vertexAttrib1f(x0,x1)}var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;function _glVertexAttrib2f(x0,x1,x2){GLctx.vertexAttrib2f(x0,x1,x2)}var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;function _glVertexAttrib3f(x0,x1,x2,x3){GLctx.vertexAttrib3f(x0,x1,x2,x3)}var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx.vertexAttrib4f(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;function _glVertexAttribDivisor(index,divisor){GLctx.vertexAttribDivisor(index,divisor)}var _emscripten_glVertexAttribDivisor=_glVertexAttribDivisor;var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribDivisorARB=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorARB=_glVertexAttribDivisorARB;var _glVertexAttribDivisorEXT=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT;var _glVertexAttribDivisorNV=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorNV=_glVertexAttribDivisorNV;function _glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx.vertexAttribI4i(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttribI4i=_glVertexAttribI4i;function _glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}var _emscripten_glVertexAttribI4iv=_glVertexAttribI4iv;function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttribI4ui=_glVertexAttribI4ui;function _glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}var _emscripten_glVertexAttribI4uiv=_glVertexAttribI4uiv;function _glVertexAttribIPointer(index,size,type,stride,ptr){GLctx.vertexAttribIPointer(index,size,type,stride,ptr)}var _emscripten_glVertexAttribIPointer=_glVertexAttribIPointer;function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}var _emscripten_glViewport=_glViewport;function _glWaitSync(sync,flags,timeout_low,timeout_high){var timeout=convertI32PairToI53(timeout_low,timeout_high);GLctx.waitSync(GL.syncs[sync],flags,timeout)}var _emscripten_glWaitSync=_glWaitSync;function _emscripten_has_asyncify(){return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function doRequestFullscreen(target,strategy){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)}function _emscripten_request_fullscreen_strategy(target,deferUntilInEventHandler,fullscreenStrategy){var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function registerBeforeUnloadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){var beforeUnloadEventHandlerFunc=function(e=event){var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_beforeunload_callback_on_thread(userData,callbackfunc,targetThread){if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload")}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(e=event){var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread)}function _emscripten_set_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread)}function fillFullscreenChangeEventData(eventStruct){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 registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=function(e=event){var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_fullscreenchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread)}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(e=event){var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread)}function _emscripten_set_keypress_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(e=event){fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(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};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread)}function _emscripten_set_mouseenter_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread)}function _emscripten_set_mouseleave_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread)}function fillPointerlockChangeEventData(eventStruct){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 registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=function(e=event){var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_pointerlockchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(e=event){if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread)}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread)}function fillVisibilityChangeEventData(eventStruct){var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState}function registerVisibilityChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=function(e=event){var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_visibilitychange_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!specialHTMLTargets[1]){return-4}return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread)}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(e=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(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}function _emscripten_sleep(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings}function stringToAscii(str,buffer){for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}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 writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}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}return thisDate.getFullYear()}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"}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 days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=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"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");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,loc){return _strftime(s,maxsize,format,tm)}var 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};var readMode=292|73;var writeMode=146;Object.defineProperties(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)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); +var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="pge.data";var REMOTE_PACKAGE_BASE="pge.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","assets",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});var nodeMajor=process.versions.node.split(".")[0];if(nodeMajor<15){process.on("unhandledRejection",reason=>{throw reason})}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]"}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}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();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}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 addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="pge.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinary(binaryFile))}else{if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateMemoryViews();wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={136380:()=>{return Module.canvas.getBoundingClientRect().left},136432:()=>{return Module.canvas.getBoundingClientRect().top},136483:()=>{return Module.olc_MOUSEX},136511:()=>{return Module.olc_MOUSEY},136539:()=>{return Module.olc_MOUSEDOWN},136569:()=>{return Module.olc_MOUSEUP},136597:()=>{Module.olc_MOUSEDOWN=-1},136623:()=>{Module.olc_MOUSEUP=-1},136647:()=>{window.onunload=Module._olc_OnPageUnload},136691:($0,$1)=>{Module.olc_AspectRatio=$0/$1;Module.olc_MOUSEDOWN=-1;Module.olc_MOUSEUP=-1;onmousemove=function(e){Module.olc_MOUSEX=e.clientX;Module.olc_MOUSEY=e.clientY};onmousedown=function(e){Module.olc_MOUSEDOWN=e.button};onmouseup=function(e){Module.olc_MOUSEUP=e.button};ontouchmove=function(e){Module.olc_MOUSEX=e.touches[0].clientX;Module.olc_MOUSEY=e.touches[0].clientY};ontouchstart=function(e){Module.olc_MOUSEX=e.touches[0].clientX;Module.olc_MOUSEY=e.touches[0].clientY};Module.olc_AssumeDefaultShells=document.querySelectorAll(".emscripten").length>=3?true:false;var olc_ResizeHandler=function(){let isFullscreen=document.fullscreenElement!=null;let width=isFullscreen?window.innerWidth:Module.canvas.parentNode.clientWidth;let height=isFullscreen?window.innerHeight:Module.canvas.parentNode.clientHeight;let viewWidth=width;let viewHeight=width/Module.olc_AspectRatio;if(viewHeight>height){viewWidth=height*Module.olc_AspectRatio;viewHeight=height}viewWidth=parseInt(viewWidth);viewHeight=parseInt(viewHeight);setTimeout(function(){if(Module.olc_AssumeDefaultShells)Module.canvas.parentNode.setAttribute("style","width: 100%; height: 70vh; margin-left: auto; margin-right: auto;");Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);Module.canvas.setAttribute("style",`width: ${viewWidth}px; height: ${viewHeight}px;`);Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus()},200)};var olc_Init=function(){if(Module.olc_AspectRatio===undefined){setTimeout(function(){Module.olc_Init()},50);return}let resizeObserver=new ResizeObserver(function(entries){Module.olc_ResizeHandler()}).observe(Module.canvas.parentNode);let mutationObserver=new MutationObserver(function(mutationsList,observer){setTimeout(function(){Module.olc_ResizeHandler()},200)}).observe(Module.canvas.parentNode,{attributes:false,childList:true,subtree:false});window.addEventListener("fullscreenchange",function(e){setTimeout(function(){Module.olc_ResizeHandler()},200)})};Module.olc_ResizeHandler=Module.olc_ResizeHandler!=undefined?Module.olc_ResizeHandler:olc_ResizeHandler;Module.olc_Init=Module.olc_Init!=undefined?Module.olc_Init:olc_Init;Module.olc_Init()},139085:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},139232:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},139466:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},139959:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},140027:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},141679:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},142089:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c>2]}}},143174:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},146804:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},146887:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},146956:()=>{return window.innerWidth},146986:()=>{return window.innerHeight}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}function listenOnce(object,event,func){object.addEventListener(event,func,{"once":true})}function autoResumeAudioContext(ctx,elements){if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";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.floor(tempDouble/4294967296)>>>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;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function ___assert_fail(condition,filename,line,func){abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var exceptionCaught=[];var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_rethrow(){var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function initRandomFill(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")}function randomFill(view){return(randomFill=initRandomFill())(view)}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.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(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;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}function stringToUTF8Array(str,heap,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;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}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 TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}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;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=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+length{assert(arrayBuffer,`Loading data file "${url}" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)}var preloadPlugins=Module["preloadPlugins"]||[];function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled}function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}}function FS_modeStringToFlags(str){var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags}function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,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:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}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:(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:()=>{for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd=-1)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};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}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`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(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(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: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(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.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=(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);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||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(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;out("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(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){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{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>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;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,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 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);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:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function _abort(){abort("")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}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=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}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){global.performance=require("perf_hooks").performance}_emscripten_get_now=()=>performance.now();function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){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=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){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}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function callUserCallback(func){if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(()=>{callUserCallback(func)},timeout)}var Browser={mainLoop:{running:false,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;setMainLoop(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{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=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;safeSetTimeout(()=>{finish(audio)},1e4)};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"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});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",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:2};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(callback=>callback());Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["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"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});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)},safeSetTimeout:function(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},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}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(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 _eglBindAPI(api){if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0}function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};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;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetConfigAttrib(display,config,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglGetError(){return EGL.errorCode}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function stringToNewUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret}function _eglQueryString(display,name){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8("Emscripten");break;case 12372:ret=stringToNewUTF8("1.4 Emscripten EGL");break;case 12373:ret=stringToNewUTF8("");break;case 12429:ret=stringToNewUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret}function _eglSwapBuffers(dpy,surface){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}function _eglWaitClient(){EGL.setErrorCode(12288);return 1}var _eglWaitGL=_eglWaitClient;function _eglWaitNative(nativeEngineId){EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readEmAsmArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readEmAsmArgsArray}function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf)}function runMainThreadEmAsm(code,sigPtr,argbuf,sync){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int_sync_on_main_thread(code,sigPtr,argbuf){return runMainThreadEmAsm(code,sigPtr,argbuf,1)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_date_now(){return Date.now()}function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}var JSEvents={inEventHandler:0,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.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_get_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height}function stringToUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret}function getCanvasElementSize(target){return withStackSave(function(){var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];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 setCanvasElementSize(target,width,height){if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(function(){var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}}function registerRestoreOldStyle(canvas){var canvasSize=getCanvasElementSize(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.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(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){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle}function setLetterbox(element,topBottom,leftRight){element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}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=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(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>3]=rect.width;HEAPF64[height>>3]=rect.height;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_num_gamepads(){return JSEvents.lastGamepadState.length}function _emscripten_get_screen_size(width,height){HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height}function _glActiveTexture(x0){GLctx.activeTexture(x0)}var _emscripten_glActiveTexture=_glActiveTexture;function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}var _emscripten_glAttachShader=_glAttachShader;function _glBeginQuery(target,id){GLctx.beginQuery(target,GL.queries[id])}var _emscripten_glBeginQuery=_glBeginQuery;function _glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;function _glBeginTransformFeedback(x0){GLctx.beginTransformFeedback(x0)}var _emscripten_glBeginTransformFeedback=_glBeginTransformFeedback;function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}var _emscripten_glBindAttribLocation=_glBindAttribLocation;function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}var _emscripten_glBindBuffer=_glBindBuffer;function _glBindBufferBase(target,index,buffer){GLctx.bindBufferBase(target,index,GL.buffers[buffer])}var _emscripten_glBindBufferBase=_glBindBufferBase;function _glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)}var _emscripten_glBindBufferRange=_glBindBufferRange;function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}var _emscripten_glBindFramebuffer=_glBindFramebuffer;function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;function _glBindSampler(unit,sampler){GLctx.bindSampler(unit,GL.samplers[sampler])}var _emscripten_glBindSampler=_glBindSampler;function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}var _emscripten_glBindTexture=_glBindTexture;function _glBindTransformFeedback(target,id){GLctx.bindTransformFeedback(target,GL.transformFeedbacks[id])}var _emscripten_glBindTransformFeedback=_glBindTransformFeedback;function _glBindVertexArray(vao){GLctx.bindVertexArray(GL.vaos[vao])}var _emscripten_glBindVertexArray=_glBindVertexArray;var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;function _glBlendColor(x0,x1,x2,x3){GLctx.blendColor(x0,x1,x2,x3)}var _emscripten_glBlendColor=_glBlendColor;function _glBlendEquation(x0){GLctx.blendEquation(x0)}var _emscripten_glBlendEquation=_glBlendEquation;function _glBlendEquationSeparate(x0,x1){GLctx.blendEquationSeparate(x0,x1)}var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}var _emscripten_glBlendFunc=_glBlendFunc;function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx.blendFuncSeparate(x0,x1,x2,x3)}var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}var _emscripten_glBlitFramebuffer=_glBlitFramebuffer;function _glBufferData(target,size,data,usage){if(true){if(data&&size){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)}}var _emscripten_glBufferData=_glBufferData;function _glBufferSubData(target,offset,size,data){if(true){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}var _emscripten_glBufferSubData=_glBufferSubData;function _glCheckFramebufferStatus(x0){return GLctx.checkFramebufferStatus(x0)}var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;function _glClear(x0){GLctx.clear(x0)}var _emscripten_glClear=_glClear;function _glClearBufferfi(x0,x1,x2,x3){GLctx.clearBufferfi(x0,x1,x2,x3)}var _emscripten_glClearBufferfi=_glClearBufferfi;function _glClearBufferfv(buffer,drawbuffer,value){GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)}var _emscripten_glClearBufferfv=_glClearBufferfv;function _glClearBufferiv(buffer,drawbuffer,value){GLctx.clearBufferiv(buffer,drawbuffer,HEAP32,value>>2)}var _emscripten_glClearBufferiv=_glClearBufferiv;function _glClearBufferuiv(buffer,drawbuffer,value){GLctx.clearBufferuiv(buffer,drawbuffer,HEAPU32,value>>2)}var _emscripten_glClearBufferuiv=_glClearBufferuiv;function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _emscripten_glClearColor=_glClearColor;function _glClearDepthf(x0){GLctx.clearDepth(x0)}var _emscripten_glClearDepthf=_glClearDepthf;function _glClearStencil(x0){GLctx.clearStencil(x0)}var _emscripten_glClearStencil=_glClearStencil;function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _glClientWaitSync(sync,flags,timeout_low,timeout_high){var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)}var _emscripten_glClientWaitSync=_glClientWaitSync;function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}var _emscripten_glColorMask=_glColorMask;function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}var _emscripten_glCompileShader=_glCompileShader;function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){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)}var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;function _glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){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)}}var _emscripten_glCompressedTexImage3D=_glCompressedTexImage3D;function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){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)}var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){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)}}var _emscripten_glCompressedTexSubImage3D=_glCompressedTexSubImage3D;function _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx.copyBufferSubData(x0,x1,x2,x3,x4)}var _emscripten_glCopyBufferSubData=_glCopyBufferSubData;function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;function _glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx.copyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8)}var _emscripten_glCopyTexSubImage3D=_glCopyTexSubImage3D;function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}var _emscripten_glCreateProgram=_glCreateProgram;function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}var _emscripten_glCreateShader=_glCreateShader;function _glCullFace(x0){GLctx.cullFace(x0)}var _emscripten_glCullFace=_glCullFace;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==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}var _emscripten_glDeleteBuffers=_glDeleteBuffers;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}}var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;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}var _emscripten_glDeleteProgram=_glDeleteProgram;function _glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}}var _emscripten_glDeleteQueries=_glDeleteQueries;function _glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;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}}var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;function _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}}var _emscripten_glDeleteSamplers=_glDeleteSamplers;function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}var _emscripten_glDeleteShader=_glDeleteShader;function _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}var _emscripten_glDeleteSync=_glDeleteSync;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}}var _emscripten_glDeleteTextures=_glDeleteTextures;function _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}}var _emscripten_glDeleteTransformFeedbacks=_glDeleteTransformFeedbacks;function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}}var _emscripten_glDeleteVertexArrays=_glDeleteVertexArrays;var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;function _glDepthFunc(x0){GLctx.depthFunc(x0)}var _emscripten_glDepthFunc=_glDepthFunc;function _glDepthMask(flag){GLctx.depthMask(!!flag)}var _emscripten_glDepthMask=_glDepthMask;function _glDepthRangef(x0,x1){GLctx.depthRange(x0,x1)}var _emscripten_glDepthRangef=_glDepthRangef;function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}var _emscripten_glDetachShader=_glDetachShader;function _glDisable(x0){GLctx.disable(x0)}var _emscripten_glDisable=_glDisable;function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}var _emscripten_glDrawArrays=_glDrawArrays;function _glDrawArraysInstanced(mode,first,count,primcount){GLctx.drawArraysInstanced(mode,first,count,primcount)}var _emscripten_glDrawArraysInstanced=_glDrawArraysInstanced;var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var _glDrawArraysInstancedARB=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedARB=_glDrawArraysInstancedARB;var _glDrawArraysInstancedEXT=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT;var _glDrawArraysInstancedNV=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedNV=_glDrawArraysInstancedNV;var tempFixedLengthArray=[];function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)}var _emscripten_glDrawBuffers=_glDrawBuffers;var _glDrawBuffersEXT=_glDrawBuffers;var _emscripten_glDrawBuffersEXT=_glDrawBuffersEXT;var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}var _emscripten_glDrawElements=_glDrawElements;function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx.drawElementsInstanced(mode,count,type,indices,primcount)}var _emscripten_glDrawElementsInstanced=_glDrawElementsInstanced;var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;var _glDrawElementsInstancedARB=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedARB=_glDrawElementsInstancedARB;var _glDrawElementsInstancedEXT=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT;var _glDrawElementsInstancedNV=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedNV=_glDrawElementsInstancedNV;function _glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}var _emscripten_glDrawRangeElements=_glDrawRangeElements;function _glEnable(x0){GLctx.enable(x0)}var _emscripten_glEnable=_glEnable;function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;function _glEndQuery(x0){GLctx.endQuery(x0)}var _emscripten_glEndQuery=_glEndQuery;function _glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}var _emscripten_glEndQueryEXT=_glEndQueryEXT;function _glEndTransformFeedback(){GLctx.endTransformFeedback()}var _emscripten_glEndTransformFeedback=_glEndTransformFeedback;function _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}return 0}var _emscripten_glFenceSync=_glFenceSync;function _glFinish(){GLctx.finish()}var _emscripten_glFinish=_glFinish;function _glFlush(){GLctx.flush()}var _emscripten_glFlush=_glFlush;function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}var _emscripten_glFramebufferTextureLayer=_glFramebufferTextureLayer;function _glFrontFace(x0){GLctx.frontFace(x0)}var _emscripten_glFrontFace=_glFrontFace;function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}var _emscripten_glGenBuffers=_glGenBuffers;function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}var _emscripten_glGenFramebuffers=_glGenFramebuffers;function _glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}var _emscripten_glGenQueries=_glGenQueries;function _glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;function _glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}var _emscripten_glGenSamplers=_glGenSamplers;function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}var _emscripten_glGenTextures=_glGenTextures;function _glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)}var _emscripten_glGenTransformFeedbacks=_glGenTransformFeedbacks;function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _emscripten_glGenVertexArrays=_glGenVertexArrays;var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;function _glGenerateMipmap(x0){GLctx.generateMipmap(x0)}var _emscripten_glGenerateMipmap=_glGenerateMipmap;function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}var _emscripten_glGetActiveUniform=_glGetActiveUniform;function _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}}var _emscripten_glGetActiveUniformBlockName=_glGetActiveUniformBlockName;function _glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}}var _emscripten_glGetActiveUniformBlockiv=_glGetActiveUniformBlockiv;function _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]}}var _emscripten_glGetActiveUniformsiv=_glGetActiveUniformsiv;function _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}}var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}var _emscripten_glGetAttribLocation=_glGetAttribLocation;function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}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 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368: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:writeI53ToI64(p,ret);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 _glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}var _emscripten_glGetBooleanv=_glGetBooleanv;function _glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}var _emscripten_glGetBufferParameteri64v=_glGetBufferParameteri64v;function _glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}var _emscripten_glGetError=_glGetError;function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}var _emscripten_glGetFloatv=_glGetFloatv;function _glGetFragDataLocation(program,name){return GLctx.getFragDataLocation(GL.programs[program],UTF8ToString(name))}var _emscripten_glGetFragDataLocation=_glGetFragDataLocation;function _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}var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;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:writeI53ToI64(data,ret);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 _glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}var _emscripten_glGetInteger64i_v=_glGetInteger64i_v;function _glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}var _emscripten_glGetInteger64v=_glGetInteger64v;function _glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}var _emscripten_glGetIntegeri_v=_glGetIntegeri_v;function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}var _emscripten_glGetIntegerv=_glGetIntegerv;function _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]}}var _emscripten_glGetInternalformativ=_glGetInternalformativ;function _glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}var _emscripten_glGetProgramBinary=_glGetProgramBinary;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}var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}var _emscripten_glGetProgramiv=_glGetProgramiv;function _glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx.getQueryParameter(query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;function _glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[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}var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;function _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}var _emscripten_glGetQueryObjectuiv=_glGetQueryObjectuiv;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;function _glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getQuery(target,pname)}var _emscripten_glGetQueryiv=_glGetQueryiv;function _glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;function _glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;function _glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)}var _emscripten_glGetSamplerParameterfv=_glGetSamplerParameterfv;function _glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)}var _emscripten_glGetSamplerParameteriv=_glGetSamplerParameteriv;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}var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;function _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}var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;function _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}var _emscripten_glGetShaderSource=_glGetShaderSource;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)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}var _emscripten_glGetShaderiv=_glGetShaderiv;function _glGetString(name_){var ret=GL.stringCache[name_];if(!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=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);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)}GL.stringCache[name_]=ret}return ret}var _emscripten_glGetString=_glGetString;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}}var _emscripten_glGetStringi=_glGetStringi;function _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);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}}var _emscripten_glGetSynciv=_glGetSynciv;function _glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;function _glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;function _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}var _emscripten_glGetTransformFeedbackVarying=_glGetTransformFeedbackVarying;function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName))}var _emscripten_glGetUniformBlockIndex=_glGetUniformBlockIndex;function _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]}}var _emscripten_glGetUniformIndices=_glGetUniformIndices;function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}var _emscripten_glGetUniformfv=_glGetUniformfv;function _glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}var _emscripten_glGetUniformiv=_glGetUniformiv;function _glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}var _emscripten_glGetUniformuiv=_glGetUniformuiv;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&&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}}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}}}}function _glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}var _emscripten_glGetVertexAttribIiv=_glGetVertexAttribIiv;var _glGetVertexAttribIuiv=_glGetVertexAttribIiv;var _emscripten_glGetVertexAttribIuiv=_glGetVertexAttribIuiv;function _glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;function _glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;function _glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;function _glHint(x0,x1){GLctx.hint(x0,x1)}var _emscripten_glHint=_glHint;function _glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateFramebuffer(target,list)}var _emscripten_glInvalidateFramebuffer=_glInvalidateFramebuffer;function _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)}var _emscripten_glInvalidateSubFramebuffer=_glInvalidateSubFramebuffer;function _glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}var _emscripten_glIsBuffer=_glIsBuffer;function _glIsEnabled(x0){return GLctx.isEnabled(x0)}var _emscripten_glIsEnabled=_glIsEnabled;function _glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}var _emscripten_glIsFramebuffer=_glIsFramebuffer;function _glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}var _emscripten_glIsProgram=_glIsProgram;function _glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx.isQuery(query)}var _emscripten_glIsQuery=_glIsQuery;function _glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}var _emscripten_glIsQueryEXT=_glIsQueryEXT;function _glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;function _glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx.isSampler(sampler)}var _emscripten_glIsSampler=_glIsSampler;function _glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}var _emscripten_glIsShader=_glIsShader;function _glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}var _emscripten_glIsSync=_glIsSync;function _glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}var _emscripten_glIsTexture=_glIsTexture;function _glIsTransformFeedback(id){return GLctx.isTransformFeedback(GL.transformFeedbacks[id])}var _emscripten_glIsTransformFeedback=_glIsTransformFeedback;function _glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)}var _emscripten_glIsVertexArray=_glIsVertexArray;var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;function _glLineWidth(x0){GLctx.lineWidth(x0)}var _emscripten_glLineWidth=_glLineWidth;function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}var _emscripten_glLinkProgram=_glLinkProgram;function _glPauseTransformFeedback(){GLctx.pauseTransformFeedback()}var _emscripten_glPauseTransformFeedback=_glPauseTransformFeedback;function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}var _emscripten_glPixelStorei=_glPixelStorei;function _glPolygonOffset(x0,x1){GLctx.polygonOffset(x0,x1)}var _emscripten_glPolygonOffset=_glPolygonOffset;function _glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}var _emscripten_glProgramBinary=_glProgramBinary;function _glProgramParameteri(program,pname,value){GL.recordError(1280)}var _emscripten_glProgramParameteri=_glProgramParameteri;function _glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;function _glReadBuffer(x0){GLctx.readBuffer(x0)}var _emscripten_glReadBuffer=_glReadBuffer;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}function colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}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)}var _emscripten_glReadPixels=_glReadPixels;function _glReleaseShaderCompiler(){}var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;function _glRenderbufferStorage(x0,x1,x2,x3){GLctx.renderbufferStorage(x0,x1,x2,x3)}var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4)}var _emscripten_glRenderbufferStorageMultisample=_glRenderbufferStorageMultisample;function _glResumeTransformFeedback(){GLctx.resumeTransformFeedback()}var _emscripten_glResumeTransformFeedback=_glResumeTransformFeedback;function _glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}var _emscripten_glSampleCoverage=_glSampleCoverage;function _glSamplerParameterf(sampler,pname,param){GLctx.samplerParameterf(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameterf=_glSamplerParameterf;function _glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx.samplerParameterf(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameterfv=_glSamplerParameterfv;function _glSamplerParameteri(sampler,pname,param){GLctx.samplerParameteri(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameteri=_glSamplerParameteri;function _glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx.samplerParameteri(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameteriv=_glSamplerParameteriv;function _glScissor(x0,x1,x2,x3){GLctx.scissor(x0,x1,x2,x3)}var _emscripten_glScissor=_glScissor;function _glShaderBinary(count,shaders,binaryformat,binary,length){GL.recordError(1280)}var _emscripten_glShaderBinary=_glShaderBinary;function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}var _emscripten_glShaderSource=_glShaderSource;function _glStencilFunc(x0,x1,x2){GLctx.stencilFunc(x0,x1,x2)}var _emscripten_glStencilFunc=_glStencilFunc;function _glStencilFuncSeparate(x0,x1,x2,x3){GLctx.stencilFuncSeparate(x0,x1,x2,x3)}var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;function _glStencilMask(x0){GLctx.stencilMask(x0)}var _emscripten_glStencilMask=_glStencilMask;function _glStencilMaskSeparate(x0,x1){GLctx.stencilMaskSeparate(x0,x1)}var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;function _glStencilOp(x0,x1,x2){GLctx.stencilOp(x0,x1,x2)}var _emscripten_glStencilOp=_glStencilOp;function _glStencilOpSeparate(x0,x1,x2,x3){GLctx.stencilOpSeparate(x0,x1,x2,x3)}var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}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)}var _emscripten_glTexImage2D=_glTexImage2D;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){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}}var _emscripten_glTexImage3D=_glTexImage3D;function _glTexParameterf(x0,x1,x2){GLctx.texParameterf(x0,x1,x2)}var _emscripten_glTexParameterf=_glTexParameterf;function _glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}var _emscripten_glTexParameterfv=_glTexParameterfv;function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var _emscripten_glTexParameteri=_glTexParameteri;function _glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}var _emscripten_glTexParameteriv=_glTexParameteriv;function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx.texStorage2D(x0,x1,x2,x3,x4)}var _emscripten_glTexStorage2D=_glTexStorage2D;function _glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx.texStorage3D(x0,x1,x2,x3,x4,x5)}var _emscripten_glTexStorage3D=_glTexStorage3D;function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}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)}var _emscripten_glTexSubImage2D=_glTexSubImage2D;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){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}var _emscripten_glTexSubImage3D=_glTexSubImage3D;function _glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)}var _emscripten_glTransformFeedbackVaryings=_glTransformFeedbackVaryings;function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1f=_glUniform1f;function _glUniform1fv(location,count,value){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count)}var _emscripten_glUniform1fv=_glUniform1fv;function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1i=_glUniform1i;function _glUniform1iv(location,count,value){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count)}var _emscripten_glUniform1iv=_glUniform1iv;function _glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1ui=_glUniform1ui;function _glUniform1uiv(location,count,value){count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)}var _emscripten_glUniform1uiv=_glUniform1uiv;function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2f=_glUniform2f;function _glUniform2fv(location,count,value){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2)}var _emscripten_glUniform2fv=_glUniform2fv;function _glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2i=_glUniform2i;function _glUniform2iv(location,count,value){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2)}var _emscripten_glUniform2iv=_glUniform2iv;function _glUniform2ui(location,v0,v1){GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2ui=_glUniform2ui;function _glUniform2uiv(location,count,value){count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)}var _emscripten_glUniform2uiv=_glUniform2uiv;function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3f=_glUniform3f;function _glUniform3fv(location,count,value){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3)}var _emscripten_glUniform3fv=_glUniform3fv;function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3i=_glUniform3i;function _glUniform3iv(location,count,value){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3)}var _emscripten_glUniform3iv=_glUniform3iv;function _glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3ui=_glUniform3ui;function _glUniform3uiv(location,count,value){count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)}var _emscripten_glUniform3uiv=_glUniform3uiv;function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4f=_glUniform4f;function _glUniform4fv(location,count,value){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4)}var _emscripten_glUniform4fv=_glUniform4fv;function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4i=_glUniform4i;function _glUniform4iv(location,count,value){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4)}var _emscripten_glUniform4iv=_glUniform4iv;function _glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4ui=_glUniform4ui;function _glUniform4uiv(location,count,value){count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)}var _emscripten_glUniform4uiv=_glUniform4uiv;function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)}var _emscripten_glUniformBlockBinding=_glUniformBlockBinding;function _glUniformMatrix2fv(location,count,transpose,value){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4)}var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;function _glUniformMatrix2x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}var _emscripten_glUniformMatrix2x3fv=_glUniformMatrix2x3fv;function _glUniformMatrix2x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}var _emscripten_glUniformMatrix2x4fv=_glUniformMatrix2x4fv;function _glUniformMatrix3fv(location,count,transpose,value){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9)}var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;function _glUniformMatrix3x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}var _emscripten_glUniformMatrix3x2fv=_glUniformMatrix3x2fv;function _glUniformMatrix3x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}var _emscripten_glUniformMatrix3x4fv=_glUniformMatrix3x4fv;function _glUniformMatrix4fv(location,count,transpose,value){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16)}var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;function _glUniformMatrix4x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}var _emscripten_glUniformMatrix4x2fv=_glUniformMatrix4x2fv;function _glUniformMatrix4x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}var _emscripten_glUniformMatrix4x3fv=_glUniformMatrix4x3fv;function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}var _emscripten_glUseProgram=_glUseProgram;function _glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}var _emscripten_glValidateProgram=_glValidateProgram;function _glVertexAttrib1f(x0,x1){GLctx.vertexAttrib1f(x0,x1)}var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;function _glVertexAttrib2f(x0,x1,x2){GLctx.vertexAttrib2f(x0,x1,x2)}var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;function _glVertexAttrib3f(x0,x1,x2,x3){GLctx.vertexAttrib3f(x0,x1,x2,x3)}var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx.vertexAttrib4f(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;function _glVertexAttribDivisor(index,divisor){GLctx.vertexAttribDivisor(index,divisor)}var _emscripten_glVertexAttribDivisor=_glVertexAttribDivisor;var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribDivisorARB=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorARB=_glVertexAttribDivisorARB;var _glVertexAttribDivisorEXT=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT;var _glVertexAttribDivisorNV=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorNV=_glVertexAttribDivisorNV;function _glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx.vertexAttribI4i(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttribI4i=_glVertexAttribI4i;function _glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}var _emscripten_glVertexAttribI4iv=_glVertexAttribI4iv;function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttribI4ui=_glVertexAttribI4ui;function _glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}var _emscripten_glVertexAttribI4uiv=_glVertexAttribI4uiv;function _glVertexAttribIPointer(index,size,type,stride,ptr){GLctx.vertexAttribIPointer(index,size,type,stride,ptr)}var _emscripten_glVertexAttribIPointer=_glVertexAttribIPointer;function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}var _emscripten_glViewport=_glViewport;function _glWaitSync(sync,flags,timeout_low,timeout_high){var timeout=convertI32PairToI53(timeout_low,timeout_high);GLctx.waitSync(GL.syncs[sync],flags,timeout)}var _emscripten_glWaitSync=_glWaitSync;function _emscripten_has_asyncify(){return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function doRequestFullscreen(target,strategy){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)}function _emscripten_request_fullscreen_strategy(target,deferUntilInEventHandler,fullscreenStrategy){var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function registerBeforeUnloadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){var beforeUnloadEventHandlerFunc=function(e=event){var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_beforeunload_callback_on_thread(userData,callbackfunc,targetThread){if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload")}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(e=event){var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread)}function _emscripten_set_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread)}function fillFullscreenChangeEventData(eventStruct){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 registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=function(e=event){var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_fullscreenchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread)}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(e=event){var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread)}function _emscripten_set_keypress_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(e=event){fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(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};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread)}function _emscripten_set_mouseenter_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread)}function _emscripten_set_mouseleave_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread)}function fillPointerlockChangeEventData(eventStruct){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 registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=function(e=event){var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_pointerlockchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(e=event){if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread)}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread)}function fillVisibilityChangeEventData(eventStruct){var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState}function registerVisibilityChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=function(e=event){var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_visibilitychange_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!specialHTMLTargets[1]){return-4}return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread)}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(e=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(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}function _emscripten_sleep(){throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings}function stringToAscii(str,buffer){for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}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 writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}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}return thisDate.getFullYear()}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"}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 days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=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"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");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,loc){return _strftime(s,maxsize,format,tm)}var 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};var readMode=292|73;var writeMode=146;Object.defineProperties(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)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/olcCodeJam2023Entry/pge.wasm b/olcCodeJam2023Entry/pge.wasm index dcf2c062a44a0dbeab50e94e2ba292efd8d7eb1a..77cc4e81e454e6d7ac60ff64f6bbe9d11bb801bd 100644 GIT binary patch delta 190103 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 e&aukq&ZfYV*$&%c9Z&o!R^ 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