From fad31cdd2f55bf3f21298e53adba0f3b4ed1ab9e Mon Sep 17 00:00:00 2001 From: zeefaad Date: Mon, 29 Dec 2025 13:47:25 +0100 Subject: [PATCH] edit --- Makefile | 7 +++++ main.c | 1 + michelson | Bin 134048 -> 0 bytes web/index.data | 71 ------------------------------------------------- web/index.html | 1 - web/index.js | 1 - web/index.wasm | Bin 129807 -> 0 bytes 7 files changed, 8 insertions(+), 73 deletions(-) delete mode 100755 michelson delete mode 100644 web/index.data delete mode 100644 web/index.html delete mode 100644 web/index.js delete mode 100755 web/index.wasm diff --git a/Makefile b/Makefile index 7839649..d913364 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,13 @@ michelson: main.c clean: rm -f michelson + rm -r web run: ./michelson + +web: main.c + mkdir -p web && emcc -o web/index.html main.c -Os -Wall -std=c99 -DPLATFORM_WEB -s USE_GLFW=3 -s ALLOW_MEMORY_GROWTH=1 -I. --shell-file minshell.html --preload-file michelson_web.frag libraylib.web.a + +webrun: + cd web && python -m http.server 8000 && cd .. diff --git a/main.c b/main.c index 0d6bc57..a89af25 100644 --- a/main.c +++ b/main.c @@ -476,6 +476,7 @@ void UpdateDrawFrame(void) { EndDrawing(); } + int main () { //SetConfigFlags(FLAG_MSAA_4X_HINT); #if !defined(PLATFORM_WEB) diff --git a/michelson b/michelson deleted file mode 100755 index 89ac53958fb7adcdc05c8d9cc87eb39f6dc46bb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134048 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 IrrfFdFWuUAHvj+t diff --git a/web/index.data b/web/index.data deleted file mode 100644 index f171a89..0000000 --- a/web/index.data +++ /dev/null @@ -1,71 +0,0 @@ -#version 100 - -precision highp float; - -varying vec2 fragTexCoord; -varying vec4 fragColor; - -uniform vec2 center; -uniform float screenHeight; -uniform float d1; -uniform float d2; -uniform float angleM1; -uniform float angleM1_Y; -uniform float zoom; - -uniform float lambdas[10]; -uniform int lambdasCount; - -const float PI = 3.14159265359; - -vec3 WavelengthToRGB(float l) { - float r = 0.0; float g = 0.0; float b = 0.0; - if (l >= 380.0 && l < 440.0) { r = -(l - 440.0) / (440.0 - 380.0); b = 1.0; } - else if (l >= 440.0 && l < 490.0) { g = (l - 440.0) / (490.0 - 440.0); b = 1.0; } - else if (l >= 490.0 && l < 510.0) { g = 1.0; b = -(l - 510.0) / (510.0 - 490.0); } - else if (l >= 510.0 && l < 580.0) { r = (l - 510.0) / (580.0 - 510.0); g = 1.0; } - else if (l >= 580.0 && l < 645.0) { r = 1.0; g = -(l - 645.0) / (645.0 - 580.0); } - else if (l >= 645.0 && l <= 780.0) { r = 1.0; } - - float factor = 1.0; - if (l >= 380.0 && l < 420.0) factor = 0.3 + 0.7 * (l - 380.0) / (420.0 - 380.0); - else if (l >= 380.0 && l <= 645.0) factor = 1.0; - else if (l > 700.0 && l <= 780.0) factor = 0.3 + 0.7 * (780.0 - l) / (780.0 - 700.0); - - return vec3(r * factor, g * factor, b * factor); -} - -void main() { - float pixelX = gl_FragCoord.x; - float pixelY = screenHeight - gl_FragCoord.y; - - float deltaLnm = 2.0 * (d1 - d2) * 1000.0; - - float relX = (pixelX - center.x) * zoom; - float relY = (pixelY - center.y) * zoom; - - float radiusSq = relX * relX + relY * relY; - float ringFactorBase = radiusSq * 0.065; - float wDelta = (relX * angleM1 + relY * angleM1_Y) * 200.0; - float currDeltaBase = deltaLnm + wDelta; - - vec3 accumColor = vec3(0.0); - - for(int i = 0; i < 10; i++) { - if (i >= lambdasCount) break; - - float l = lambdas[i]; - - if (l < 1.0) l = 550.0; - - vec3 baseColorVec = WavelengthToRGB(l); - float currDelta = currDeltaBase - ringFactorBase; - float K = PI / l; - float phase = currDelta * K; - float intensity = cos(phase); - intensity = intensity * intensity; - accumColor += baseColorVec * intensity; - } - - gl_FragColor = vec4(accumColor, 1.0); -} diff --git a/web/index.html b/web/index.html deleted file mode 100644 index 4fc865f..0000000 --- a/web/index.html +++ /dev/null @@ -1 +0,0 @@ -Interferometre Michelson - Web \ No newline at end of file diff --git a/web/index.js b/web/index.js deleted file mode 100644 index d9c58bb..0000000 --- a/web/index.js +++ /dev/null @@ -1 +0,0 @@ -var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(!Module["expectedDataFileDownloads"])Module["expectedDataFileDownloads"]=0;Module["expectedDataFileDownloads"]++;(()=>{var isPthread=typeof ENVIRONMENT_IS_PTHREAD!="undefined"&&ENVIRONMENT_IS_PTHREAD;var isWasmWorker=typeof ENVIRONMENT_IS_WASM_WORKER!="undefined"&&ENVIRONMENT_IS_WASM_WORKER;if(isPthread||isWasmWorker)return;var isNode=globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node&&globalThis.process.type!="renderer";async function loadPackage(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.substring(0,location.pathname.lastIndexOf("/"))+"/")}var PACKAGE_NAME="web/index.data";var REMOTE_PACKAGE_BASE="index.data";var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];async function fetchRemotePackage(packageName,packageSize){if(isNode){var contents=require("fs").readFileSync(packageName);return new Uint8Array(contents).buffer}if(!Module["dataFileDownloads"])Module["dataFileDownloads"]={};try{var response=await fetch(packageName)}catch(e){throw new Error(`Network Error: ${packageName}`,{e})}if(!response.ok){throw new Error(`${response.status}: ${response.url}`)}const chunks=[];const headers=response.headers;const total=Number(headers.get("Content-Length")||packageSize);let loaded=0;Module["setStatus"]&&Module["setStatus"]("Downloading data...");const reader=response.body.getReader();while(1){var{done,value}=await reader.read();if(done)break;chunks.push(value);loaded+=value.length;Module["dataFileDownloads"][packageName]={loaded,total};let totalLoaded=0;let totalSize=0;for(const download of Object.values(Module["dataFileDownloads"])){totalLoaded+=download.loaded;totalSize+=download.total}Module["setStatus"]&&Module["setStatus"](`Downloading data... (${totalLoaded}/${totalSize})`)}const packageData=new Uint8Array(chunks.map(c=>c.length).reduce((a,b)=>a+b,0));let offset=0;for(const chunk of chunks){packageData.set(chunk,offset);offset+=chunk.length}return packageData.buffer}var fetchPromise;var fetched=Module["getPreloadedPackage"]&&Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE);if(!fetched){fetchPromise=fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE)}async function runWithFS(Module){function assert(check,msg){if(!check)throw new Error(msg)}for(var file of metadata["files"]){var name=file["filename"];Module["addRunDependency"](`fp ${name}`)}async function processPackageData(arrayBuffer){assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer.constructor.name===ArrayBuffer.name,"bad input to processPackageData "+arrayBuffer.constructor.name);var byteArray=new Uint8Array(arrayBuffer);for(var file of metadata["files"]){var name=file["filename"];var data=byteArray.subarray(file["start"],file["end"]);Module["FS_createDataFile"](name,null,data,true,true,true);Module["removeRunDependency"](`fp ${name}`)}Module["removeRunDependency"]("datafile_web/index.data")}Module["addRunDependency"]("datafile_web/index.data");if(!Module["preloadResults"])Module["preloadResults"]={};Module["preloadResults"][PACKAGE_NAME]={fromCache:false};if(!fetched){fetched=await fetchPromise}processPackageData(fetched)}if(Module["calledRun"]){runWithFS(Module)}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}}loadPackage({files:[{filename:"/michelson_web.frag",start:0,end:2186}],remote_package_size:2186})})();var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{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=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var isFileURI=filename=>filename.startsWith("file://");var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["ve"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("index.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var noExitRuntime=true;var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);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.slice(-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.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>crypto.getRandomValues(view)};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[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).slice(1);to=PATH_FS.resolve(to).slice(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{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=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;i++}}heap[outIdx]=0;return outIdx-startIdx};var 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 FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(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){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}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,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.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(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(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(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(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.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(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{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};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";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)}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){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}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|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},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)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){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},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;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(...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)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},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,opts,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);for(var[hash,current]of Object.entries(FS.nameTable)){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){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}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)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){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);old_node.parent=new_dir}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;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return 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 link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){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)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},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}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,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,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){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},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)}if(!length){throw new FS.ErrnoError(28)}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)},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"){abort(`Invalid encoding type "${opts.encoding}"`)}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"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data,true))}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{abort("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,llseek:()=>0});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){randomFill(randomBuffer);randomLeft=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",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}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)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){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){if(e.errno!=20)throw 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;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("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)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("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))abort("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")abort("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}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,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={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}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,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(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 dir+"/"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;HEAP64[buf+8>>3]=BigInt(stats.blocks);HEAP64[buf+16>>3]=BigInt(stats.bfree);HEAP64[buf+24>>3]=BigInt(stats.bavail);HEAP64[buf+32>>3]=BigInt(stats.files);HEAP64[buf+40>>3]=BigInt(stats.ffree);HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen},doMsync(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)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{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?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var _emscripten_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==106?HEAP64[buf>>3]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_double=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var maybeCStringToJsString=cString=>cString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,globalThis.document??0,globalThis.window??0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||globalThis.document?.querySelector(target);return domElement};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{left:0,top:0};var _emscripten_get_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0};var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(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 call of JSEvents.deferredCalls){if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction,precedence,argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedencecall.targetFunction!=targetFunction)},canPerformEventHandlerRequests(){if(navigator.userActivation){return navigator.userActivation.isActive}return JSEvents.inEventHandler&&JSEvents.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(!JSEvents.canPerformEventHandlerRequests()){return}var deferredCalls=JSEvents.deferredCalls;JSEvents.deferredCalls=[];for(var call of deferredCalls){call.targetFunction(...call.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:(target,eventTypeString)=>{for(var i=0;i{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.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1112,64);stringToUTF8(e.mapping,eventStruct+1176,64)};var _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};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var GLctx;var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_EXT_polygon_offset_clamp=ctx=>!!(ctx.extPolygonOffsetClamp=ctx.getExtension("EXT_polygon_offset_clamp"));var webgl_enable_EXT_clip_control=ctx=>!!(ctx.extClipControl=ctx.getExtension("EXT_clip_control"));var webgl_enable_WEBGL_polygon_mode=ctx=>!!(ctx.webglPolygonMode=ctx.getExtension("WEBGL_polygon_mode"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_clip_control","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_polygon_offset_clamp","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw","WEBGL_polygon_mode"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,unpackRowLength:0,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>2]=id}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>2]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>2],len)}return source},createContext:(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("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={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:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module["ctx"]=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext: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]?.GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_WEBGL_multi_draw(GLctx);webgl_enable_EXT_polygon_offset_clamp(GLctx);webgl_enable_EXT_clip_control(GLctx);webgl_enable_WEBGL_polygon_mode(GLctx);webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}for(var ext of getEmscriptenSupportedExtensions(GLctx)){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}}}};var _emscripten_glActiveTexture=x0=>GLctx.activeTexture(x0);var _emscripten_glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glBeginQueryEXT=(target,id)=>{GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])};var _emscripten_glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _emscripten_glBindBuffer=(target,buffer)=>{GLctx.bindBuffer(target,GL.buffers[buffer])};var _emscripten_glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _emscripten_glBindRenderbuffer=(target,renderbuffer)=>{GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])};var _emscripten_glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _emscripten_glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBindVertexArray=_emscripten_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBlendColor=(x0,x1,x2,x3)=>GLctx.blendColor(x0,x1,x2,x3);var _emscripten_glBlendEquation=x0=>GLctx.blendEquation(x0);var _emscripten_glBlendEquationSeparate=(x0,x1)=>GLctx.blendEquationSeparate(x0,x1);var _emscripten_glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);var _emscripten_glBlendFuncSeparate=(x0,x1,x2,x3)=>GLctx.blendFuncSeparate(x0,x1,x2,x3);var _emscripten_glBufferData=(target,size,data,usage)=>{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _emscripten_glBufferSubData=(target,offset,size,data)=>{GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};var _emscripten_glCheckFramebufferStatus=x0=>GLctx.checkFramebufferStatus(x0);var _emscripten_glClear=x0=>GLctx.clear(x0);var _emscripten_glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var _emscripten_glClearDepthf=x0=>GLctx.clearDepth(x0);var _emscripten_glClearStencil=x0=>GLctx.clearStencil(x0);var _emscripten_glClipControlEXT=(origin,depth)=>{GLctx.extClipControl["clipControlEXT"](origin,depth)};var _emscripten_glColorMask=(red,green,blue,alpha)=>{GLctx.colorMask(!!red,!!green,!!blue,!!alpha)};var _emscripten_glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _emscripten_glCompressedTexImage2D=(target,level,internalFormat,width,height,border,imageSize,data)=>{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8.subarray(data,data+imageSize))};var _emscripten_glCompressedTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,imageSize,data)=>{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,HEAPU8.subarray(data,data+imageSize))};var _emscripten_glCopyTexImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexSubImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_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_glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _emscripten_glCullFace=x0=>GLctx.cullFace(x0);var _emscripten_glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}};var _emscripten_glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _emscripten_glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _emscripten_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_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_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_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_glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _glDeleteVertexArrays=_emscripten_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDepthFunc=x0=>GLctx.depthFunc(x0);var _emscripten_glDepthMask=flag=>{GLctx.depthMask(!!flag)};var _emscripten_glDepthRangef=(x0,x1)=>GLctx.depthRange(x0,x1);var _emscripten_glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glDisable=x0=>GLctx.disable(x0);var _emscripten_glDisableVertexAttribArray=index=>{GLctx.disableVertexAttribArray(index)};var _emscripten_glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _emscripten_glDrawArraysInstanced=(mode,first,count,primcount)=>{GLctx.drawArraysInstanced(mode,first,count,primcount)};var _glDrawArraysInstanced=_emscripten_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var tempFixedLengthArray=[];var _emscripten_glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _glDrawBuffers=_emscripten_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};var _emscripten_glDrawElementsInstanced=(mode,count,type,indices,primcount)=>{GLctx.drawElementsInstanced(mode,count,type,indices,primcount)};var _glDrawElementsInstanced=_emscripten_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glEnable=x0=>GLctx.enable(x0);var _emscripten_glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var _emscripten_glEndQueryEXT=target=>{GLctx.disjointTimerQueryExt["endQueryEXT"](target)};var _emscripten_glFinish=()=>GLctx.finish();var _emscripten_glFlush=()=>GLctx.flush();var _emscripten_glFramebufferRenderbuffer=(target,attachment,renderbuffertarget,renderbuffer)=>{GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])};var _emscripten_glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _emscripten_glFrontFace=x0=>GLctx.frontFace(x0);var _emscripten_glGenBuffers=(n,buffers)=>{GL.genObject(n,buffers,"createBuffer",GL.buffers)};var _emscripten_glGenFramebuffers=(n,ids)=>{GL.genObject(n,ids,"createFramebuffer",GL.framebuffers)};var _emscripten_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_glGenRenderbuffers=(n,renderbuffers)=>{GL.genObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)};var _emscripten_glGenTextures=(n,textures)=>{GL.genObject(n,textures,"createTexture",GL.textures)};var _emscripten_glGenVertexArrays=(n,arrays)=>{GL.genObject(n,arrays,"createVertexArray",GL.vaos)};var _glGenVertexArrays=_emscripten_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenerateMipmap=x0=>GLctx.generateMipmap(x0);var __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}};var _emscripten_glGetActiveAttrib=(program,index,bufSize,length,size,type,name)=>__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name);var _emscripten_glGetActiveUniform=(program,index,bufSize,length,size,type,name)=>__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name);var _emscripten_glGetAttachedShaders=(program,maxCount,count,shaders)=>{var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}};var _emscripten_glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var 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 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length: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 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]=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]=ret?1:0;break}};var _emscripten_glGetBooleanv=(name_,p)=>emscriptenWebGLGet(name_,p,4);var _emscripten_glGetBufferParameteriv=(target,value,data)=>{if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)};var _emscripten_glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var _emscripten_glGetFloatv=(name_,p)=>emscriptenWebGLGet(name_,p,2);var _emscripten_glGetFramebufferAttachmentParameteriv=(target,attachment,pname,params)=>{var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result};var _emscripten_glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _emscripten_glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_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){var numActiveUniforms=GLctx.getProgramParameter(program,35718);for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){var numActiveAttributes=GLctx.getProgramParameter(program,35721);for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){var numActiveUniformBlocks=GLctx.getProgramParameter(program,35382);for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _emscripten_glGetQueryObjecti64vEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)};var _emscripten_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 _glGetQueryObjecti64vEXT=_emscripten_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _glGetQueryObjectivEXT=_emscripten_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryivEXT=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)};var _emscripten_glGetRenderbufferParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)};var _emscripten_glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderPrecisionFormat=(shaderType,precisionType,range,precision)=>{var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision};var _emscripten_glGetShaderSource=(shader,bufSize,length,source)=>{var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";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 stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var webglGetExtensions=()=>{var exts=getEmscriptenSupportedExtensions(GLctx);exts=exts.concat(exts.map(e=>"GL_"+e));return exts};var _emscripten_glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(webglGetExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var webGLVersion=GLctx.getParameter(7938);var glVersion=`OpenGL ES 2.0 (${webGLVersion})`;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_glGetTexParameterfv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)};var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};var numActiveUniforms=GLctx.getProgramParameter(program,35718);for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var 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}}}};var _emscripten_glGetUniformfv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,2)};var _emscripten_glGetUniformiv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,0)};var _emscripten_glGetVertexAttribPointerv=(index,pname,pointer)=>{if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)};var 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}}}};var _emscripten_glGetVertexAttribfv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,2)};var _emscripten_glGetVertexAttribiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,5)};var _emscripten_glHint=(x0,x1)=>GLctx.hint(x0,x1);var _emscripten_glIsBuffer=buffer=>{var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)};var _emscripten_glIsEnabled=x0=>GLctx.isEnabled(x0);var _emscripten_glIsFramebuffer=framebuffer=>{var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)};var _emscripten_glIsProgram=program=>{program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)};var _emscripten_glIsQueryEXT=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)};var _emscripten_glIsRenderbuffer=renderbuffer=>{var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)};var _emscripten_glIsShader=shader=>{var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)};var _emscripten_glIsTexture=id=>{var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)};var _emscripten_glIsVertexArray=array=>{var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)};var _glIsVertexArray=_emscripten_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glLineWidth=x0=>GLctx.lineWidth(x0);var _emscripten_glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _emscripten_glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}else if(pname==3314){GL.unpackRowLength=param}GLctx.pixelStorei(pname,param)};var _emscripten_glPolygonModeWEBGL=(face,mode)=>{GLctx.webglPolygonMode["polygonModeWEBGL"](face,mode)};var _emscripten_glPolygonOffset=(x0,x1)=>GLctx.polygonOffset(x0,x1);var _emscripten_glPolygonOffsetClampEXT=(factor,units,clamp)=>{GLctx.extPolygonOffsetClamp["polygonOffsetClampEXT"](factor,units,clamp)};var _emscripten_glQueryCounterEXT=(id,target)=>{GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)};var computeUnpackAlignedImageSize=(width,height,sizePerPixel)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=(GL.unpackRowLength||width)*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,GL.unpackAlignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel);return heap.subarray(toTypedArrayIndex(pixels,heap),toTypedArrayIndex(pixels+bytes,heap))};var _emscripten_glReadPixels=(x,y,width,height,format,type,pixels)=>{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_glReleaseShaderCompiler=()=>{};var _emscripten_glRenderbufferStorage=(x0,x1,x2,x3)=>GLctx.renderbufferStorage(x0,x1,x2,x3);var _emscripten_glSampleCoverage=(value,invert)=>{GLctx.sampleCoverage(value,!!invert)};var _emscripten_glScissor=(x0,x1,x2,x3)=>GLctx.scissor(x0,x1,x2,x3);var _emscripten_glShaderBinary=(count,shaders,binaryformat,binary,length)=>{GL.recordError(1280)};var _emscripten_glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _emscripten_glStencilFunc=(x0,x1,x2)=>GLctx.stencilFunc(x0,x1,x2);var _emscripten_glStencilFuncSeparate=(x0,x1,x2,x3)=>GLctx.stencilFuncSeparate(x0,x1,x2,x3);var _emscripten_glStencilMask=x0=>GLctx.stencilMask(x0);var _emscripten_glStencilMaskSeparate=(x0,x1)=>GLctx.stencilMaskSeparate(x0,x1);var _emscripten_glStencilOp=(x0,x1,x2)=>GLctx.stencilOp(x0,x1,x2);var _emscripten_glStencilOpSeparate=(x0,x1,x2,x3)=>GLctx.stencilOpSeparate(x0,x1,x2,x3);var _emscripten_glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null;GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixelData)};var _emscripten_glTexParameterf=(x0,x1,x2)=>GLctx.texParameterf(x0,x1,x2);var _emscripten_glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _emscripten_glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _emscripten_glTexParameteriv=(target,pname,params)=>{var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)};var _emscripten_glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0):null;GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _emscripten_glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var miniTempWebGLFloatBuffers=[];var _emscripten_glUniform1fv=(location,count,value)=>{if(count<=288){var view=miniTempWebGLFloatBuffers[count];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var miniTempWebGLIntBuffers=[];var _emscripten_glUniform1iv=(location,count,value)=>{if(count<=288){var view=miniTempWebGLIntBuffers[count];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2fv=(location,count,value)=>{if(count<=144){count*=2;var view=miniTempWebGLFloatBuffers[count];for(var i=0;i>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2i=(location,v0,v1)=>{GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2iv=(location,count,value)=>{if(count<=144){count*=2;var view=miniTempWebGLIntBuffers[count];for(var i=0;i>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3fv=(location,count,value)=>{if(count<=96){count*=3;var view=miniTempWebGLFloatBuffers[count];for(var i=0;i>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3i=(location,v0,v1,v2)=>{GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3iv=(location,count,value)=>{if(count<=96){count*=3;var view=miniTempWebGLIntBuffers[count];for(var i=0;i>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4f=(location,v0,v1,v2,v3)=>{GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4fv=(location,count,value)=>{if(count<=72){var view=miniTempWebGLFloatBuffers[4*count];var heap=HEAPF32;value=value>>2;count*=4;for(var i=0;i>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4i=(location,v0,v1,v2,v3)=>{GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4iv=(location,count,value)=>{if(count<=72){count*=4;var view=miniTempWebGLIntBuffers[count];for(var i=0;i>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _emscripten_glUniformMatrix2fv=(location,count,transpose,value)=>{if(count<=72){count*=4;var view=miniTempWebGLFloatBuffers[count];for(var i=0;i>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix3fv=(location,count,transpose,value)=>{if(count<=32){count*=9;var view=miniTempWebGLFloatBuffers[count];for(var i=0;i>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix4fv=(location,count,transpose,value)=>{if(count<=18){var view=miniTempWebGLFloatBuffers[16*count];var heap=HEAPF32;value=value>>2;count*=16;for(var i=0;i>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _emscripten_glValidateProgram=program=>{GLctx.validateProgram(GL.programs[program])};var _emscripten_glVertexAttrib1f=(x0,x1)=>GLctx.vertexAttrib1f(x0,x1);var _emscripten_glVertexAttrib1fv=(index,v)=>{GLctx.vertexAttrib1f(index,HEAPF32[v>>2])};var _emscripten_glVertexAttrib2f=(x0,x1,x2)=>GLctx.vertexAttrib2f(x0,x1,x2);var _emscripten_glVertexAttrib2fv=(index,v)=>{GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])};var _emscripten_glVertexAttrib3f=(x0,x1,x2,x3)=>GLctx.vertexAttrib3f(x0,x1,x2,x3);var _emscripten_glVertexAttrib3fv=(index,v)=>{GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])};var _emscripten_glVertexAttrib4f=(x0,x1,x2,x3,x4)=>GLctx.vertexAttrib4f(x0,x1,x2,x3,x4);var _emscripten_glVertexAttrib4fv=(index,v)=>{GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])};var _emscripten_glVertexAttribDivisor=(index,divisor)=>{GLctx.vertexAttribDivisor(index,divisor)};var _glVertexAttribDivisor=_emscripten_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _emscripten_glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}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,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _emscripten_sample_gamepad_data=()=>{try{if(navigator.getGamepads)return(JSEvents.lastGamepadState=navigator.getGamepads())?0:-1}catch(e){navigator.getGamepads=null}return-1};var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{var eventSize=256;JSEvents.focusEvent||=_malloc(eventSize);var focusEventHandlerFunc=e=>{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,eventTypeId,userData,callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_blur_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);var findCanvasEventTarget=findEventTarget;var _emscripten_set_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0};var 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;HEAP8[eventStruct+24]=e.ctrlKey;HEAP8[eventStruct+25]=e.shiftKey;HEAP8[eventStruct+26]=e.altKey;HEAP8[eventStruct+27]=e.metaKey;HEAP16[idx*2+14]=e.button;HEAP16[idx*2+15]=e.buttons;HEAP32[idx+8]=e["movementX"];HEAP32[idx+9]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+10]=e.clientX-(rect.left|0);HEAP32[idx+11]=e.clientY-(rect.top|0)};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{var eventSize=64;JSEvents.mouseEvent||=_malloc(eventSize);target=findEventTarget(target);var mouseEventHandlerFunc=e=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString,eventTypeId,userData,callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_click_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);var _emscripten_set_focus_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);function getFullscreenElement(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement||document.msFullscreenElement}var fillFullscreenChangeEventData=eventStruct=>{var fullscreenElement=getFullscreenElement();var isFullscreen=!!fullscreenElement;HEAP8[eventStruct]=isFullscreen;HEAP8[eventStruct+1]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement?.id||"";stringToUTF8(nodeName,eventStruct+2,128);stringToUTF8(id,eventStruct+130,128);HEAP32[eventStruct+260>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+268>>2]=screen.width;HEAP32[eventStruct+272>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}};var registerFullscreenChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{var eventSize=276;JSEvents.fullscreenChangeEvent||=_malloc(eventSize);var fullscreenChangeEventhandlerFunc=e=>{var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target,eventTypeString,eventTypeId,userData,callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _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)};var registerGamepadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{var eventSize=1240;JSEvents.gamepadEvent||=_malloc(eventSize);var gamepadEventHandlerFunc=e=>{var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString,eventTypeId,userData,callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_gamepadconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)};var _emscripten_set_gamepaddisconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var _emscripten_set_main_loop_timing=(mode,value)=>{MainLoop.timingMode=mode;MainLoop.timingValue=value;if(!MainLoop.func){return 1}if(!MainLoop.running){MainLoop.running=true}if(mode==0){MainLoop.scheduler=function MainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,MainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(MainLoop.runner,timeUntilNextTick)};MainLoop.method="timeout"}else if(mode==1){MainLoop.scheduler=function MainLoop_scheduler_rAF(){MainLoop.requestAnimationFrame(MainLoop.runner)};MainLoop.method="rAF"}else if(mode==2){if(!MainLoop.setImmediate){if(globalThis.setImmediate){MainLoop.setImmediate=setImmediate}else{var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var MainLoop_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",MainLoop_setImmediate_messageHandler,true);MainLoop.setImmediate=func=>{setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){Module["setImmediates"]??=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}}MainLoop.scheduler=function MainLoop_scheduler_setImmediate(){MainLoop.setImmediate(MainLoop.runner)};MainLoop.method="immediate"}return 0};var MainLoop={running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],preMainLoop:[],postMainLoop:[],pause(){MainLoop.scheduler=null;MainLoop.currentlyRunningMainloop++},resume(){MainLoop.currentlyRunningMainloop++;var timingMode=MainLoop.timingMode;var timingValue=MainLoop.timingValue;var func=MainLoop.func;MainLoop.func=null;setMainLoop(func,0,false,MainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);MainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=MainLoop.remainingBlockers??0;var expected=MainLoop.expectedBlockers??0;if(remaining){if(remaining=MainLoop.nextRAF){MainLoop.nextRAF+=1e3/60}}var delay=Math.max(MainLoop.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(globalThis.requestAnimationFrame){requestAnimationFrame(func)}else{MainLoop.fakeRequestAnimationFrame(func)}}};var setMainLoop=(iterFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{MainLoop.func=iterFunc;MainLoop.arg=arg;var thisMainLoopId=MainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=MainLoop.queue.shift();blocker.func(blocker.arg);if(MainLoop.remainingBlockers){var remaining=MainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){MainLoop.remainingBlockers=next}else{next=next+.5;MainLoop.remainingBlockers=(8*remaining+next)/9}}MainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(MainLoop.runner,0);return}if(!checkIsRunning())return;MainLoop.currentFrameNumber=MainLoop.currentFrameNumber+1|0;if(MainLoop.timingMode==1&&MainLoop.timingValue>1&&MainLoop.currentFrameNumber%MainLoop.timingValue!=0){MainLoop.scheduler();return}else if(MainLoop.timingMode==0){MainLoop.tickStartTime=_emscripten_get_now()}MainLoop.runIter(iterFunc);if(!checkIsRunning())return;MainLoop.scheduler()};if(!noSetTiming){if(fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}MainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var iterFunc=getWasmTableEntry(func);setMainLoop(iterFunc,fps,simulateInfiniteLoop)};var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var fillPointerlockChangeEventData=eventStruct=>{var pointerLockElement=document.pointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP8[eventStruct]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement?.id||"";stringToUTF8(nodeName,eventStruct+1,128);stringToUTF8(id,eventStruct+129,128)};var registerPointerlockChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{var eventSize=257;JSEvents.pointerlockChangeEvent||=_malloc(eventSize);var pointerlockChangeEventHandlerFunc=e=>{var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target,eventTypeString,eventTypeId,userData,callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_pointerlockchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!document.body?.requestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)};var registerUiEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{var eventSize=36;JSEvents.uiEvent||=_malloc(eventSize);target=findEventTarget(target);var uiEventHandlerFunc=e=>{if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=0;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|0;HEAP32[uiEvent+32>>2]=pageYOffset|0;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target,eventTypeString,eventTypeId,userData,callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_resize_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{var eventSize=1552;JSEvents.touchEvent||=_malloc(eventSize);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(let t of et){t.isChanged=t.onTarget=0;touches[t.identifier]=t}for(let t of e.changedTouches){t.isChanged=1;touches[t.identifier]=t}for(let t of e.targetTouches){touches[t.identifier].onTarget=1}var touchEvent=JSEvents.touchEvent;HEAPF64[touchEvent>>3]=e.timeStamp;HEAP8[touchEvent+12]=e.ctrlKey;HEAP8[touchEvent+13]=e.shiftKey;HEAP8[touchEvent+14]=e.altKey;HEAP8[touchEvent+15]=e.metaKey;var idx=touchEvent+16;var targetRect=getBoundingClientRect(target);var numTouches=0;for(let t of Object.values(touches)){var idx32=idx>>2;HEAP32[idx32+0]=t.identifier;HEAP32[idx32+1]=t.screenX;HEAP32[idx32+2]=t.screenY;HEAP32[idx32+3]=t.clientX;HEAP32[idx32+4]=t.clientY;HEAP32[idx32+5]=t.pageX;HEAP32[idx32+6]=t.pageY;HEAP8[idx+28]=t.isChanged;HEAP8[idx+29]=t.onTarget;HEAP32[idx32+8]=t.clientX-(targetRect.left|0);HEAP32[idx32+9]=t.clientY-(targetRect.top|0);idx+=48;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString,eventTypeId,userData,callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_touchcancel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);var _emscripten_set_touchend_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);var _emscripten_set_touchmove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);var _emscripten_set_touchstart_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);var fillVisibilityChangeEventData=eventStruct=>{var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP8[eventStruct]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState};var registerVisibilityChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{var eventSize=8;JSEvents.visibilityChangeEvent||=_malloc(eventSize);var visibilityChangeEventHandlerFunc=e=>{var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target,eventTypeString,eventTypeId,userData,callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _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)};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={useWebGL:false,isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],preloadedImages:{},preloadedAudios:{},getCanvas:()=>Module["canvas"],init(){if(Browser.initted)return;Browser.initted=true;var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module["noImageDecoding"]&&/\.(jpg|jpeg|png|bmp|webp)$/i.test(name)};imagePlugin["handle"]=async function imagePlugin_handle(byteArray,name){var b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([new Uint8Array(byteArray).buffer],{type:Browser.getMimetype(name)})}var url=URL.createObjectURL(b);return new Promise((resolve,reject)=>{var img=new Image;img.onload=()=>{var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);Browser.preloadedImages[name]=canvas;URL.revokeObjectURL(url);resolve(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);reject()};img.src=url})};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module["noAudioDecoding"]&&name.slice(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=async function audioPlugin_handle(byteArray,name){return new Promise((resolve,reject)=>{var done=false;function finish(audio){if(done)return;done=true;Browser.preloadedAudios[name]=audio;resolve(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.slice(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)})};preloadPlugins.push(audioPlugin);function pointerLockChange(){var canvas=Browser.getCanvas();Browser.pointerLock=document.pointerLockElement===canvas}var canvas=Browser.getCanvas();if(canvas){document.addEventListener("pointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Browser.getCanvas().requestPointerLock){Browser.getCanvas().requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module["ctx"]&&canvas==Browser.getCanvas())return Module["ctx"];var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){Module["ctx"]=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Browser.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(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=Browser.getCanvas();function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if(getFullscreenElement()===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)}}Module["onFullScreen"]?.(Browser.isFullscreen);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(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},getMimetype(name){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[name.slice(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(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:abort("unrecognized mouse wheel delta mode: "+event.deltaMode)}break;default:abort("unrecognized mouse wheel event: "+event.type)}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var canvas=Browser.getCanvas();var rect=canvas.getBoundingClientRect();var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(canvas.width/rect.width);adjustedY=adjustedY*(canvas.height/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x,y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(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)}Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);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];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Browser.getCanvas();Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Browser.getCanvas();Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Browser.getCanvas());Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Browser.getCanvas());Browser.updateResizeListeners()},updateCanvasDimensions(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"]>0){if(w/hdocument.title=UTF8ToString(title);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}}var 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 _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);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}}var 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(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _glActiveTexture=_emscripten_glActiveTexture;var _glAttachShader=_emscripten_glAttachShader;var _glBindAttribLocation=_emscripten_glBindAttribLocation;var _glBindBuffer=_emscripten_glBindBuffer;var _glBindTexture=_emscripten_glBindTexture;var _glBlendEquation=_emscripten_glBlendEquation;var _glBlendEquationSeparate=_emscripten_glBlendEquationSeparate;var _glBlendFunc=_emscripten_glBlendFunc;var _glBlendFuncSeparate=_emscripten_glBlendFuncSeparate;var _glBufferData=_emscripten_glBufferData;var _glBufferSubData=_emscripten_glBufferSubData;var _glClear=_emscripten_glClear;var _glClearColor=_emscripten_glClearColor;var _glClearDepthf=_emscripten_glClearDepthf;var _glCompileShader=_emscripten_glCompileShader;var _glCompressedTexImage2D=_emscripten_glCompressedTexImage2D;var _glCreateProgram=_emscripten_glCreateProgram;var _glCreateShader=_emscripten_glCreateShader;var _glCullFace=_emscripten_glCullFace;var _glDeleteBuffers=_emscripten_glDeleteBuffers;var _glDeleteProgram=_emscripten_glDeleteProgram;var _glDeleteShader=_emscripten_glDeleteShader;var _glDeleteTextures=_emscripten_glDeleteTextures;var _glDepthFunc=_emscripten_glDepthFunc;var _glDetachShader=_emscripten_glDetachShader;var _glDisable=_emscripten_glDisable;var _glDisableVertexAttribArray=_emscripten_glDisableVertexAttribArray;var _glDrawArrays=_emscripten_glDrawArrays;var _glDrawElements=_emscripten_glDrawElements;var _glEnable=_emscripten_glEnable;var _glEnableVertexAttribArray=_emscripten_glEnableVertexAttribArray;var _glFrontFace=_emscripten_glFrontFace;var _glGenBuffers=_emscripten_glGenBuffers;var _glGenTextures=_emscripten_glGenTextures;var _glGetAttribLocation=_emscripten_glGetAttribLocation;var _glGetFloatv=_emscripten_glGetFloatv;var _glGetProgramInfoLog=_emscripten_glGetProgramInfoLog;var _glGetProgramiv=_emscripten_glGetProgramiv;var _glGetShaderInfoLog=_emscripten_glGetShaderInfoLog;var _glGetShaderiv=_emscripten_glGetShaderiv;var _glGetString=_emscripten_glGetString;var _glGetUniformLocation=_emscripten_glGetUniformLocation;var _glLinkProgram=_emscripten_glLinkProgram;var _glPixelStorei=_emscripten_glPixelStorei;var _glReadPixels=_emscripten_glReadPixels;var _glShaderSource=_emscripten_glShaderSource;var _glTexImage2D=_emscripten_glTexImage2D;var _glTexParameteri=_emscripten_glTexParameteri;var _glUniform1fv=_emscripten_glUniform1fv;var _glUniform1i=_emscripten_glUniform1i;var _glUniform1iv=_emscripten_glUniform1iv;var _glUniform2fv=_emscripten_glUniform2fv;var _glUniform2iv=_emscripten_glUniform2iv;var _glUniform3fv=_emscripten_glUniform3fv;var _glUniform3iv=_emscripten_glUniform3iv;var _glUniform4f=_emscripten_glUniform4f;var _glUniform4fv=_emscripten_glUniform4fv;var _glUniform4iv=_emscripten_glUniform4iv;var _glUniformMatrix4fv=_emscripten_glUniformMatrix4fv;var _glUseProgram=_emscripten_glUseProgram;var _glVertexAttribPointer=_emscripten_glVertexAttribPointer;var _glViewport=_emscripten_glViewport;function GLFW_Window(id,width,height,framebufferWidth,framebufferHeight,title,monitor,share){this.id=id;this.x=0;this.y=0;this.fullscreen=false;this.storedX=0;this.storedY=0;this.width=width;this.height=height;this.framebufferWidth=framebufferWidth;this.framebufferHeight=framebufferHeight;this.storedWidth=width;this.storedHeight=height;this.title=title;this.monitor=monitor;this.share=share;this.attributes={...GLFW.hints};this.inputModes={208897:212993,208898:0,208899:0};this.buttons=0;this.keys=new Array;this.domKeys=new Array;this.shouldClose=0;this.title=null;this.windowPosFunc=0;this.windowSizeFunc=0;this.windowCloseFunc=0;this.windowRefreshFunc=0;this.windowFocusFunc=0;this.windowIconifyFunc=0;this.windowMaximizeFunc=0;this.framebufferSizeFunc=0;this.windowContentScaleFunc=0;this.mouseButtonFunc=0;this.cursorPosFunc=0;this.cursorEnterFunc=0;this.scrollFunc=0;this.dropFunc=0;this.keyFunc=0;this.charFunc=0;this.userptr=0}var GLFW={WindowFromId:id=>{if(id<=0||!GLFW.windows)return null;return GLFW.windows[id-1]},joystickFunc:0,errorFunc:0,monitorFunc:0,active:null,scale:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,devicePixelRatioMQL:null,hints:null,primaryTouchId:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,131082:0,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0,139276:0},DOMToGLFWKeyCode:keycode=>{switch(keycode){case 32:return 32;case 222:return 39;case 188:return 44;case 173:return 45;case 189:return 45;case 190:return 46;case 191:return 47;case 48:return 48;case 49:return 49;case 50:return 50;case 51:return 51;case 52:return 52;case 53:return 53;case 54:return 54;case 55:return 55;case 56:return 56;case 57:return 57;case 59:return 59;case 61:return 61;case 187:return 61;case 65:return 65;case 66:return 66;case 67:return 67;case 68:return 68;case 69:return 69;case 70:return 70;case 71:return 71;case 72:return 72;case 73:return 73;case 74:return 74;case 75:return 75;case 76:return 76;case 77:return 77;case 78:return 78;case 79:return 79;case 80:return 80;case 81:return 81;case 82:return 82;case 83:return 83;case 84:return 84;case 85:return 85;case 86:return 86;case 87:return 87;case 88:return 88;case 89:return 89;case 90:return 90;case 219:return 91;case 220:return 92;case 221:return 93;case 192:return 96;case 27:return 256;case 13:return 257;case 9:return 258;case 8:return 259;case 45:return 260;case 46:return 261;case 39:return 262;case 37:return 263;case 40:return 264;case 38:return 265;case 33:return 266;case 34:return 267;case 36:return 268;case 35:return 269;case 20:return 280;case 145:return 281;case 144:return 282;case 44:return 283;case 19:return 284;case 112:return 290;case 113:return 291;case 114:return 292;case 115:return 293;case 116:return 294;case 117:return 295;case 118:return 296;case 119:return 297;case 120:return 298;case 121:return 299;case 122:return 300;case 123:return 301;case 124:return 302;case 125:return 303;case 126:return 304;case 127:return 305;case 128:return 306;case 129:return 307;case 130:return 308;case 131:return 309;case 132:return 310;case 133:return 311;case 134:return 312;case 135:return 313;case 136:return 314;case 96:return 320;case 97:return 321;case 98:return 322;case 99:return 323;case 100:return 324;case 101:return 325;case 102:return 326;case 103:return 327;case 104:return 328;case 105:return 329;case 110:return 330;case 111:return 331;case 106:return 332;case 109:return 333;case 107:return 334;case 16:return 340;case 17:return 341;case 18:return 342;case 91:return 343;case 224:return 343;case 93:return 348;default:return-1}},getModBits:win=>{var mod=0;if(win.keys[340])mod|=1;if(win.keys[341])mod|=2;if(win.keys[342])mod|=4;if(win.keys[343]||win.keys[348])mod|=8;return mod},onKeyPress:event=>{if(!GLFW.active||!GLFW.active.charFunc)return;if(event.ctrlKey||event.metaKey)return;var charCode=event.charCode;if(charCode==0||charCode>=0&&charCode<=31)return;getWasmTableEntry(GLFW.active.charFunc)(GLFW.active.id,charCode)},onKeyChanged:(keyCode,status)=>{if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(GLFW.active.keyFunc){if(repeat)status=2;getWasmTableEntry(GLFW.active.keyFunc)(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))}},onGamepadConnected:event=>{GLFW.refreshJoysticks()},onGamepadDisconnected:event=>{GLFW.refreshJoysticks()},onKeydown:event=>{GLFW.onKeyChanged(event.keyCode,1);if(event.key=="Backspace"||event.key=="Tab"){event.preventDefault()}},onKeyup:event=>{GLFW.onKeyChanged(event.keyCode,0)},onBlur:event=>{if(!GLFW.active)return;for(var i=0;i{if(!GLFW.active)return;if(event.type==="touchmove"){event.preventDefault();let primaryChanged=false;for(let i of event.changedTouches){if(GLFW.primaryTouchId===i.identifier){Browser.setMouseCoords(i.pageX,i.pageY);primaryChanged=true;break}}if(!primaryChanged){return}}else{Browser.calculateMouseEvent(event)}if(event.target!=Browser.getCanvas()||!GLFW.active.cursorPosFunc)return;if(GLFW.active.cursorPosFunc){getWasmTableEntry(GLFW.active.cursorPosFunc)(GLFW.active.id,Browser.mouseX,Browser.mouseY)}},DOMToGLFWMouseButton:event=>{var eventButton=event["button"];if(eventButton>0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:event=>{if(!GLFW.active)return;if(event.target!=Browser.getCanvas())return;if(GLFW.active.cursorEnterFunc){getWasmTableEntry(GLFW.active.cursorEnterFunc)(GLFW.active.id,1)}},onMouseleave:event=>{if(!GLFW.active)return;if(event.target!=Browser.getCanvas())return;if(GLFW.active.cursorEnterFunc){getWasmTableEntry(GLFW.active.cursorEnterFunc)(GLFW.active.id,0)}},onMouseButtonChanged:(event,status)=>{if(!GLFW.active)return;if(event.target!=Browser.getCanvas())return;const isTouchType=event.type==="touchstart"||event.type==="touchend"||event.type==="touchcancel";let eventButton=0;if(isTouchType){event.preventDefault();let primaryChanged=false;if(GLFW.primaryTouchId===null&&event.type==="touchstart"&&event.targetTouches.length>0){const chosenTouch=event.targetTouches[0];GLFW.primaryTouchId=chosenTouch.identifier;Browser.setMouseCoords(chosenTouch.pageX,chosenTouch.pageY);primaryChanged=true}else if(event.type==="touchend"||event.type==="touchcancel"){for(let i of event.changedTouches){if(GLFW.primaryTouchId===i.identifier){GLFW.primaryTouchId=null;primaryChanged=true;break}}}if(!primaryChanged){return}}else{Browser.calculateMouseEvent(event);eventButton=GLFW.DOMToGLFWMouseButton(event)}if(status==1){GLFW.active.buttons|=1<{if(!GLFW.active)return;GLFW.onMouseButtonChanged(event,1)},onMouseButtonUp:event=>{if(!GLFW.active)return;GLFW.onMouseButtonChanged(event,0)},onMouseWheel:event=>{var delta=-Browser.getMouseWheelDelta(event);delta=delta==0?0:delta>0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Browser.getCanvas())return;var sx=0;var sy=delta;if(event.type=="mousewheel"){sx=event.wheelDeltaX}else{sx=event.deltaX}getWasmTableEntry(GLFW.active.scrollFunc)(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:(width,height,framebufferWidth,framebufferHeight)=>{if(!GLFW.active)return;var resizeNeeded=false;if(getFullscreenElement()){if(!GLFW.active.fullscreen){resizeNeeded=width!=screen.width||height!=screen.height;GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}}else if(GLFW.active.fullscreen==true){resizeNeeded=width!=GLFW.active.storedWidth||height!=GLFW.active.storedHeight;GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height)}else if(GLFW.active.width!=width||GLFW.active.height!=height||GLFW.active.framebufferWidth!=framebufferWidth||GLFW.active.framebufferHeight!=framebufferHeight){GLFW.active.width=width;GLFW.active.height=height;GLFW.active.framebufferWidth=framebufferWidth;GLFW.active.framebufferHeight=framebufferHeight;GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:()=>{if(!GLFW.active)return;if(GLFW.active.windowSizeFunc){getWasmTableEntry(GLFW.active.windowSizeFunc)(GLFW.active.id,GLFW.active.width,GLFW.active.height)}},onFramebufferSizeChanged:()=>{if(!GLFW.active)return;if(GLFW.active.framebufferSizeFunc){getWasmTableEntry(GLFW.active.framebufferSizeFunc)(GLFW.active.id,GLFW.active.framebufferWidth,GLFW.active.framebufferHeight)}},onWindowContentScaleChanged:scale=>{GLFW.scale=scale;if(!GLFW.active)return;if(GLFW.active.windowContentScaleFunc){getWasmTableEntry(GLFW.active.windowContentScaleFunc)(GLFW.active.id,GLFW.scale,GLFW.scale)}},getTime:()=>_emscripten_get_now()/1e3,setWindowTitle:(winid,title)=>{var win=GLFW.WindowFromId(winid);if(!win)return;win.title=title;if(GLFW.active.id==win.id){_emscripten_set_window_title(title)}},setJoystickCallback:cbfun=>{var prevcbfun=GLFW.joystickFunc;GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks();return prevcbfun},joys:{},lastGamepadState:[],lastGamepadStateFrame:null,refreshJoysticks:()=>{if(MainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!MainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads||[];GLFW.lastGamepadStateFrame=MainLoop.currentFrameNumber;for(var joy=0;joy>2]=gamepad.axes[i]}}else{if(GLFW.joys[joy]){out("glfw joystick disconnected",joy);if(GLFW.joystickFunc){getWasmTableEntry(GLFW.joystickFunc)(joy,262146)}_free(GLFW.joys[joy].id);_free(GLFW.joys[joy].buttons);_free(GLFW.joys[joy].axes);delete GLFW.joys[joy]}}}}},setKeyCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.keyFunc;win.keyFunc=cbfun;return prevcbfun},setCharCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.charFunc;win.charFunc=cbfun;return prevcbfun},setMouseButtonCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.mouseButtonFunc;win.mouseButtonFunc=cbfun;return prevcbfun},setCursorPosCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.cursorPosFunc;win.cursorPosFunc=cbfun;return prevcbfun},setScrollCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.scrollFunc;win.scrollFunc=cbfun;return prevcbfun},setDropCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.dropFunc;win.dropFunc=cbfun;return prevcbfun},onDrop:event=>{if(!GLFW.active||!GLFW.active.dropFunc)return;if(!event.dataTransfer||!event.dataTransfer.files||event.dataTransfer.files.length==0)return;event.preventDefault();var filenames=_malloc(event.dataTransfer.files.length*4);var filenamesArray=[];var count=event.dataTransfer.files.length;var written=0;var drop_dir=".glfw_dropped_files";FS.createPath("/",drop_dir);function save(file){var path="/"+drop_dir+"/"+file.name.replace(/\//g,"_");var reader=new FileReader;reader.onloadend=e=>{if(reader.readyState!=2){++written;out("failed to read dropped file: "+file.name+": "+reader.error);return}var data=e.target.result;FS.writeFile(path,new Uint8Array(data));if(++written===count){getWasmTableEntry(GLFW.active.dropFunc)(GLFW.active.id,count,filenames);for(var i=0;i>2]=filename}for(var i=0;i{if(!GLFW.active||!GLFW.active.dropFunc)return;event.preventDefault();return false},setWindowSizeCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowSizeFunc;win.windowSizeFunc=cbfun;return prevcbfun},setWindowCloseCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowCloseFunc;win.windowCloseFunc=cbfun;return prevcbfun},setWindowRefreshCallback:(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowRefreshFunc;win.windowRefreshFunc=cbfun;return prevcbfun},onClickRequestPointerLock:e=>{var canvas=Browser.getCanvas();if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();e.preventDefault()}},setInputMode:(winid,mode,value)=>{var win=GLFW.WindowFromId(winid);if(!win)return;switch(mode){case 208897:{var canvas=Browser.getCanvas();switch(value){case 212993:{win.inputModes[mode]=value;canvas.removeEventListener("click",GLFW.onClickRequestPointerLock,true);document.exitPointerLock();break}case 212994:{err("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented");break}case 212995:{win.inputModes[mode]=value;canvas.addEventListener("click",GLFW.onClickRequestPointerLock,true);canvas.requestPointerLock();break}default:{err(`glfwSetInputMode called with unknown value parameter value: ${value}`);break}}break}case 208898:{err("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented");break}case 208899:{err("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented");break}case 208900:{err("glfwSetInputMode called with GLFW_LOCK_KEY_MODS mode not implemented");break}case 3342341:{err("glfwSetInputMode called with GLFW_RAW_MOUSE_MOTION mode not implemented");break}default:{err(`glfwSetInputMode called with unknown mode parameter value: ${mode}`);break}}},getKey:(winid,key)=>{var win=GLFW.WindowFromId(winid);if(!win)return 0;return win.keys[key]},getMouseButton:(winid,button)=>{var win=GLFW.WindowFromId(winid);if(!win)return 0;return(win.buttons&1<0},getCursorPos:(winid,x,y)=>{HEAPF64[x>>3]=Browser.mouseX;HEAPF64[y>>3]=Browser.mouseY},getMousePos:(winid,x,y)=>{HEAP32[x>>2]=Browser.mouseX;HEAP32[y>>2]=Browser.mouseY},setCursorPos:(winid,x,y)=>{},getWindowPos:(winid,x,y)=>{var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){HEAP32[x>>2]=wx}if(y){HEAP32[y>>2]=wy}},setWindowPos:(winid,x,y)=>{var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:(winid,width,height)=>{var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){HEAP32[width>>2]=ww}if(height){HEAP32[height>>2]=wh}},setWindowSize:(winid,width,height)=>{var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){Browser.setCanvasSize(width,height)}},defaultWindowHints:()=>{GLFW.hints={...GLFW.defaultHints}},createWindow:(width,height,title,monitor,share)=>{var i,id;for(i=0;i0)abort("glfwCreateWindow only supports one window at time currently");id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Browser.createContext(canvas,true,true,contextAttributes)}else{Browser.init()}}if(!Module["ctx"]&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,canvas.width,canvas.height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;GLFW.adjustCanvasDimensions();return win.id},destroyWindow:winid=>{var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc){getWasmTableEntry(win.windowCloseFunc)(win.id)}GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id){GLFW.active=null}for(win of GLFW.windows){if(win!==null)return}delete Module["ctx"]},swapBuffers:winid=>{},requestFullscreen(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=Browser.getCanvas();function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if(getFullscreenElement()===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas);Browser.updateResizeListeners()}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas);Browser.updateResizeListeners()}}Module["onFullScreen"]?.(Browser.isFullscreen);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()},updateCanvasDimensions(canvas,wNative,hNative){const scale=GLFW.getHiDPIScale();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{var win=GLFW.WindowFromId(winid);if(!win)return;const isHiDPIAware=GLFW.isHiDPIAware();win.attributes[attrib]=value;if(isHiDPIAware!==GLFW.isHiDPIAware())GLFW.adjustCanvasDimensions()},getDevicePixelRatio(){return typeof devicePixelRatio=="number"&&devicePixelRatio||1},isHiDPIAware(){if(GLFW.active)return GLFW.active.attributes[139276]>0;else return false},isCSSScalingEnabled(){return!GLFW.isHiDPIAware()},adjustCanvasDimensions(){if(GLFW.active){Browser.updateCanvasDimensions(Browser.getCanvas(),GLFW.active.width,GLFW.active.height);Browser.updateResizeListeners()}},getHiDPIScale(){return GLFW.isHiDPIAware()?GLFW.scale:1},onDevicePixelRatioChange(){GLFW.onWindowContentScaleChanged(GLFW.getDevicePixelRatio());GLFW.adjustCanvasDimensions()},GLFW2ParamToGLFW3Param:param=>{var table={196609:0,196610:0,196611:0,196612:0,196613:0,196614:0,131073:0,131074:0,131075:0,131076:0,131077:135169,131078:135170,131079:135171,131080:135172,131081:135173,131082:135174,131083:135183,131084:135175,131085:135176,131086:135177,131087:135178,131088:135179,131089:135180,131090:0,131091:135181,131092:139266,131093:139267,131094:139270,131095:139271,131096:139272};return table[param]}};var _glfwCreateWindow=(width,height,title,monitor,share)=>GLFW.createWindow(width,height,title,monitor,share);var _glfwDefaultWindowHints=()=>GLFW.defaultWindowHints();var _glfwDestroyWindow=winid=>GLFW.destroyWindow(winid);var _glfwGetPrimaryMonitor=()=>1;var _glfwGetTime=()=>GLFW.getTime()-GLFW.initialTime;var _glfwGetVideoModes=(monitor,count)=>{HEAP32[count>>2]=0;return 0};var _glfwInit=()=>{if(GLFW.windows)return 1;GLFW.initialTime=GLFW.getTime();GLFW.defaultWindowHints();GLFW.windows=new Array;GLFW.active=null;GLFW.scale=GLFW.getDevicePixelRatio();window.addEventListener("gamepadconnected",GLFW.onGamepadConnected,true);window.addEventListener("gamepaddisconnected",GLFW.onGamepadDisconnected,true);window.addEventListener("keydown",GLFW.onKeydown,true);window.addEventListener("keypress",GLFW.onKeyPress,true);window.addEventListener("keyup",GLFW.onKeyup,true);window.addEventListener("blur",GLFW.onBlur,true);GLFW.devicePixelRatioMQL=window.matchMedia("(resolution: "+GLFW.getDevicePixelRatio()+"dppx)");GLFW.devicePixelRatioMQL.addEventListener("change",GLFW.onDevicePixelRatioChange);var canvas=Browser.getCanvas();canvas.addEventListener("touchmove",GLFW.onMousemove,true);canvas.addEventListener("touchstart",GLFW.onMouseButtonDown,true);canvas.addEventListener("touchcancel",GLFW.onMouseButtonUp,true);canvas.addEventListener("touchend",GLFW.onMouseButtonUp,true);canvas.addEventListener("mousemove",GLFW.onMousemove,true);canvas.addEventListener("mousedown",GLFW.onMouseButtonDown,true);canvas.addEventListener("mouseup",GLFW.onMouseButtonUp,true);canvas.addEventListener("wheel",GLFW.onMouseWheel,true);canvas.addEventListener("mousewheel",GLFW.onMouseWheel,true);canvas.addEventListener("mouseenter",GLFW.onMouseenter,true);canvas.addEventListener("mouseleave",GLFW.onMouseleave,true);canvas.addEventListener("drop",GLFW.onDrop,true);canvas.addEventListener("dragover",GLFW.onDragover,true);Browser.requestFullscreen=GLFW.requestFullscreen;Browser.calculateMouseCoords=GLFW.calculateMouseCoords;Browser.updateCanvasDimensions=GLFW.updateCanvasDimensions;Browser.resizeListeners.push((width,height)=>{if(GLFW.isHiDPIAware()){var canvas=Browser.getCanvas();GLFW.onCanvasResize(canvas.clientWidth,canvas.clientHeight,width,height)}else{GLFW.onCanvasResize(width,height,width,height)}});return 1};var _glfwMakeContextCurrent=winid=>0;var _glfwSetCharCallback=(winid,cbfun)=>GLFW.setCharCallback(winid,cbfun);var _glfwSetCursorEnterCallback=(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.cursorEnterFunc;win.cursorEnterFunc=cbfun;return prevcbfun};var _glfwSetCursorPosCallback=(winid,cbfun)=>GLFW.setCursorPosCallback(winid,cbfun);var _glfwSetDropCallback=(winid,cbfun)=>GLFW.setDropCallback(winid,cbfun);var _glfwSetErrorCallback=cbfun=>{var prevcbfun=GLFW.errorFunc;GLFW.errorFunc=cbfun;return prevcbfun};var _glfwSetKeyCallback=(winid,cbfun)=>GLFW.setKeyCallback(winid,cbfun);var _glfwSetMouseButtonCallback=(winid,cbfun)=>GLFW.setMouseButtonCallback(winid,cbfun);var _glfwSetScrollCallback=(winid,cbfun)=>GLFW.setScrollCallback(winid,cbfun);var _glfwSetWindowContentScaleCallback=(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowContentScaleFunc;win.windowContentScaleFunc=cbfun;return prevcbfun};var _glfwSetWindowFocusCallback=(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowFocusFunc;win.windowFocusFunc=cbfun;return prevcbfun};var _glfwSetWindowIconifyCallback=(winid,cbfun)=>{var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.windowIconifyFunc;win.windowIconifyFunc=cbfun;return prevcbfun};var _glfwSetWindowShouldClose=(winid,value)=>{var win=GLFW.WindowFromId(winid);if(!win)return;win.shouldClose=value};var _glfwSetWindowSize=(winid,width,height)=>GLFW.setWindowSize(winid,width,height);var _glfwSetWindowSizeCallback=(winid,cbfun)=>GLFW.setWindowSizeCallback(winid,cbfun);var _glfwSwapBuffers=winid=>GLFW.swapBuffers(winid);var _glfwTerminate=()=>{window.removeEventListener("gamepadconnected",GLFW.onGamepadConnected,true);window.removeEventListener("gamepaddisconnected",GLFW.onGamepadDisconnected,true);window.removeEventListener("keydown",GLFW.onKeydown,true);window.removeEventListener("keypress",GLFW.onKeyPress,true);window.removeEventListener("keyup",GLFW.onKeyup,true);window.removeEventListener("blur",GLFW.onBlur,true);var canvas=Browser.getCanvas();canvas.removeEventListener("touchmove",GLFW.onMousemove,true);canvas.removeEventListener("touchstart",GLFW.onMouseButtonDown,true);canvas.removeEventListener("touchcancel",GLFW.onMouseButtonUp,true);canvas.removeEventListener("touchend",GLFW.onMouseButtonUp,true);canvas.removeEventListener("mousemove",GLFW.onMousemove,true);canvas.removeEventListener("mousedown",GLFW.onMouseButtonDown,true);canvas.removeEventListener("mouseup",GLFW.onMouseButtonUp,true);canvas.removeEventListener("wheel",GLFW.onMouseWheel,true);canvas.removeEventListener("mousewheel",GLFW.onMouseWheel,true);canvas.removeEventListener("mouseenter",GLFW.onMouseenter,true);canvas.removeEventListener("mouseleave",GLFW.onMouseleave,true);canvas.removeEventListener("drop",GLFW.onDrop,true);canvas.removeEventListener("dragover",GLFW.onDragover,true);if(GLFW.devicePixelRatioMQL)GLFW.devicePixelRatioMQL.removeEventListener("change",GLFW.onDevicePixelRatioChange);canvas.width=canvas.height=1;GLFW.windows=null;GLFW.active=null};var _glfwWindowHint=(target,hint)=>{GLFW.hints[target]=hint};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();for(let i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<=288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<=288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i)}Module["requestAnimationFrame"]=MainLoop.requestAnimationFrame;Module["pauseMainLoop"]=MainLoop.pause;Module["resumeMainLoop"]=MainLoop.resume;MainLoop.init();{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;var ASM_CONSTS={34397:()=>{if(document.fullscreenElement)return 1},34443:()=>Module.canvas.width,34475:()=>parseInt(Module.canvas.style.width),34523:()=>{document.exitFullscreen()},34550:()=>{setTimeout(function(){Module.requestFullscreen(false,false)},100)},34622:()=>{if(document.fullscreenElement)return 1},34668:()=>Module.canvas.width,34700:()=>screen.width,34725:()=>{document.exitFullscreen()},34752:()=>{setTimeout(function(){Module.requestFullscreen(false,true);setTimeout(function(){canvas.style.width="unset"},100)},100)},34885:()=>window.innerWidth,34911:()=>window.innerHeight,34938:()=>{if(document.fullscreenElement)return 1},34984:()=>Module.canvas.width,35016:()=>parseInt(Module.canvas.style.width),35064:()=>{if(document.fullscreenElement)return 1},35110:()=>Module.canvas.width,35142:()=>screen.width,35167:()=>window.innerWidth,35193:()=>window.innerHeight,35220:()=>{if(document.fullscreenElement)return 1},35266:()=>Module.canvas.width,35298:()=>screen.width,35323:()=>{document.exitFullscreen()},35350:()=>{if(document.fullscreenElement)return 1},35396:()=>Module.canvas.width,35428:()=>parseInt(Module.canvas.style.width),35476:()=>{document.exitFullscreen()},35503:$0=>{Module.canvas.style.opacity=$0},35541:()=>screen.width,35566:()=>screen.height,35592:()=>window.screenX,35619:()=>window.screenY,35646:()=>window.devicePixelRatio,35682:$0=>{navigator.clipboard.writeText(UTF8ToString($0))},35735:$0=>{Module.canvas.style.cursor=UTF8ToString($0)},35786:()=>{Module.canvas.style.cursor="none"},35823:($0,$1,$2,$3)=>{try{navigator.getGamepads()[$0].vibrationActuator.playEffect("dual-rumble",{startDelay:0,duration:$3,weakMagnitude:$1,strongMagnitude:$2})}catch(e){try{navigator.getGamepads()[$0].hapticActuators[0].pulse($2,$3)}catch(e){}}},36079:$0=>{Module.canvas.style.cursor=UTF8ToString($0)},36130:()=>{if(document.pointerLockElement)return 1},36177:()=>{if(document.fullscreenElement)return 1},36223:()=>window.innerWidth,36249:()=>window.innerHeight};function SetCanvasIdJs(out,outSize){var canvasId="#"+Module.canvas.id;stringToUTF8(canvasId,out,outSize)}var _free,_main,_malloc,memory,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_free=wasmExports["we"];_main=Module["_main"]=wasmExports["xe"];_malloc=wasmExports["ze"];memory=wasmMemory=wasmExports["ue"];__indirect_function_table=wasmTable=wasmExports["ye"]}var wasmImports={la:SetCanvasIdJs,t:___assert_fail,Xa:___syscall_faccessat,K:___syscall_fcntl64,Qa:___syscall_getcwd,Sa:___syscall_ioctl,Ta:___syscall_openat,Wa:_clock_time_get,C:_emscripten_asm_const_double,s:_emscripten_asm_const_int,Ua:_emscripten_date_now,ie:_emscripten_get_element_css_size,ma:_emscripten_get_gamepad_status,I:_emscripten_get_now,na:_emscripten_get_num_gamepads,Md:_emscripten_glActiveTexture,Ld:_emscripten_glAttachShader,ce:_emscripten_glBeginQueryEXT,Kd:_emscripten_glBindAttribLocation,Jd:_emscripten_glBindBuffer,Id:_emscripten_glBindFramebuffer,Hd:_emscripten_glBindRenderbuffer,Gd:_emscripten_glBindTexture,Vd:_emscripten_glBindVertexArrayOES,Fd:_emscripten_glBlendColor,Ed:_emscripten_glBlendEquation,Dd:_emscripten_glBlendEquationSeparate,Cd:_emscripten_glBlendFunc,Bd:_emscripten_glBlendFuncSeparate,Ad:_emscripten_glBufferData,zd:_emscripten_glBufferSubData,yd:_emscripten_glCheckFramebufferStatus,xd:_emscripten_glClear,wd:_emscripten_glClearColor,vd:_emscripten_glClearDepthf,ud:_emscripten_glClearStencil,Za:_emscripten_glClipControlEXT,td:_emscripten_glColorMask,sd:_emscripten_glCompileShader,rd:_emscripten_glCompressedTexImage2D,qd:_emscripten_glCompressedTexSubImage2D,pd:_emscripten_glCopyTexImage2D,od:_emscripten_glCopyTexSubImage2D,nd:_emscripten_glCreateProgram,md:_emscripten_glCreateShader,ld:_emscripten_glCullFace,jd:_emscripten_glDeleteBuffers,id:_emscripten_glDeleteFramebuffers,hd:_emscripten_glDeleteProgram,ee:_emscripten_glDeleteQueriesEXT,gd:_emscripten_glDeleteRenderbuffers,fd:_emscripten_glDeleteShader,ed:_emscripten_glDeleteTextures,Ud:_emscripten_glDeleteVertexArraysOES,dd:_emscripten_glDepthFunc,cd:_emscripten_glDepthMask,bd:_emscripten_glDepthRangef,ad:_emscripten_glDetachShader,_c:_emscripten_glDisable,Zc:_emscripten_glDisableVertexAttribArray,Yc:_emscripten_glDrawArrays,Qd:_emscripten_glDrawArraysInstancedANGLE,Rd:_emscripten_glDrawBuffersWEBGL,Xc:_emscripten_glDrawElements,Od:_emscripten_glDrawElementsInstancedANGLE,Wc:_emscripten_glEnable,Vc:_emscripten_glEnableVertexAttribArray,be:_emscripten_glEndQueryEXT,Uc:_emscripten_glFinish,Tc:_emscripten_glFlush,Sc:_emscripten_glFramebufferRenderbuffer,Rc:_emscripten_glFramebufferTexture2D,Pc:_emscripten_glFrontFace,Oc:_emscripten_glGenBuffers,Mc:_emscripten_glGenFramebuffers,fe:_emscripten_glGenQueriesEXT,Lc:_emscripten_glGenRenderbuffers,Kc:_emscripten_glGenTextures,Td:_emscripten_glGenVertexArraysOES,Nc:_emscripten_glGenerateMipmap,Jc:_emscripten_glGetActiveAttrib,Ic:_emscripten_glGetActiveUniform,Hc:_emscripten_glGetAttachedShaders,Gc:_emscripten_glGetAttribLocation,Fc:_emscripten_glGetBooleanv,Ec:_emscripten_glGetBufferParameteriv,Dc:_emscripten_glGetError,Cc:_emscripten_glGetFloatv,Bc:_emscripten_glGetFramebufferAttachmentParameteriv,Ac:_emscripten_glGetIntegerv,yc:_emscripten_glGetProgramInfoLog,zc:_emscripten_glGetProgramiv,Xd:_emscripten_glGetQueryObjecti64vEXT,Zd:_emscripten_glGetQueryObjectivEXT,Wd:_emscripten_glGetQueryObjectui64vEXT,Yd:_emscripten_glGetQueryObjectuivEXT,$d:_emscripten_glGetQueryivEXT,xc:_emscripten_glGetRenderbufferParameteriv,vc:_emscripten_glGetShaderInfoLog,uc:_emscripten_glGetShaderPrecisionFormat,tc:_emscripten_glGetShaderSource,wc:_emscripten_glGetShaderiv,sc:_emscripten_glGetString,rc:_emscripten_glGetTexParameterfv,qc:_emscripten_glGetTexParameteriv,nc:_emscripten_glGetUniformLocation,pc:_emscripten_glGetUniformfv,oc:_emscripten_glGetUniformiv,kc:_emscripten_glGetVertexAttribPointerv,mc:_emscripten_glGetVertexAttribfv,lc:_emscripten_glGetVertexAttribiv,jc:_emscripten_glHint,ic:_emscripten_glIsBuffer,hc:_emscripten_glIsEnabled,gc:_emscripten_glIsFramebuffer,fc:_emscripten_glIsProgram,de:_emscripten_glIsQueryEXT,ec:_emscripten_glIsRenderbuffer,dc:_emscripten_glIsShader,cc:_emscripten_glIsTexture,Sd:_emscripten_glIsVertexArrayOES,bc:_emscripten_glLineWidth,ac:_emscripten_glLinkProgram,$b:_emscripten_glPixelStorei,Ya:_emscripten_glPolygonModeWEBGL,_b:_emscripten_glPolygonOffset,_a:_emscripten_glPolygonOffsetClampEXT,ae:_emscripten_glQueryCounterEXT,Zb:_emscripten_glReadPixels,Yb:_emscripten_glReleaseShaderCompiler,Xb:_emscripten_glRenderbufferStorage,Wb:_emscripten_glSampleCoverage,Vb:_emscripten_glScissor,Ub:_emscripten_glShaderBinary,Sb:_emscripten_glShaderSource,Rb:_emscripten_glStencilFunc,Qb:_emscripten_glStencilFuncSeparate,Pb:_emscripten_glStencilMask,Ob:_emscripten_glStencilMaskSeparate,Nb:_emscripten_glStencilOp,Mb:_emscripten_glStencilOpSeparate,Lb:_emscripten_glTexImage2D,Kb:_emscripten_glTexParameterf,Jb:_emscripten_glTexParameterfv,Hb:_emscripten_glTexParameteri,Gb:_emscripten_glTexParameteriv,Fb:_emscripten_glTexSubImage2D,Eb:_emscripten_glUniform1f,Db:_emscripten_glUniform1fv,Cb:_emscripten_glUniform1i,Bb:_emscripten_glUniform1iv,Ab:_emscripten_glUniform2f,zb:_emscripten_glUniform2fv,yb:_emscripten_glUniform2i,xb:_emscripten_glUniform2iv,wb:_emscripten_glUniform3f,vb:_emscripten_glUniform3fv,ub:_emscripten_glUniform3i,tb:_emscripten_glUniform3iv,sb:_emscripten_glUniform4f,rb:_emscripten_glUniform4fv,qb:_emscripten_glUniform4i,pb:_emscripten_glUniform4iv,ob:_emscripten_glUniformMatrix2fv,nb:_emscripten_glUniformMatrix3fv,mb:_emscripten_glUniformMatrix4fv,lb:_emscripten_glUseProgram,kb:_emscripten_glValidateProgram,jb:_emscripten_glVertexAttrib1f,ib:_emscripten_glVertexAttrib1fv,hb:_emscripten_glVertexAttrib2f,gb:_emscripten_glVertexAttrib2fv,fb:_emscripten_glVertexAttrib3f,eb:_emscripten_glVertexAttrib3fv,cb:_emscripten_glVertexAttrib4f,bb:_emscripten_glVertexAttrib4fv,Nd:_emscripten_glVertexAttribDivisorANGLE,ab:_emscripten_glVertexAttribPointer,$a:_emscripten_glViewport,Oa:_emscripten_resize_heap,oa:_emscripten_sample_gamepad_data,T:_emscripten_set_blur_callback_on_thread,qa:_emscripten_set_canvas_element_size,se:_emscripten_set_click_callback_on_thread,S:_emscripten_set_focus_callback_on_thread,U:_emscripten_set_fullscreenchange_callback_on_thread,le:_emscripten_set_gamepadconnected_callback_on_thread,ke:_emscripten_set_gamepaddisconnected_callback_on_thread,te:_emscripten_set_main_loop,qe:_emscripten_set_mousemove_callback_on_thread,re:_emscripten_set_pointerlockchange_callback_on_thread,Q:_emscripten_set_resize_callback_on_thread,me:_emscripten_set_touchcancel_callback_on_thread,oe:_emscripten_set_touchend_callback_on_thread,ne:_emscripten_set_touchmove_callback_on_thread,pe:_emscripten_set_touchstart_callback_on_thread,R:_emscripten_set_visibilitychange_callback_on_thread,ra:_emscripten_set_window_title,ge:_exit,L:_fd_close,Ra:_fd_read,Pa:_fd_seek,J:_fd_write,P:_glActiveTexture,E:_glAttachShader,f:_glBindAttribLocation,a:_glBindBuffer,k:_glBindTexture,j:_glBlendEquation,Ib:_glBlendEquationSeparate,i:_glBlendFunc,Tb:_glBlendFuncSeparate,q:_glBufferData,w:_glBufferSubData,M:_glClear,N:_glClearColor,Na:_glClearDepthf,Fa:_glCompileShader,Ja:_glCompressedTexImage2D,Da:_glCreateProgram,Ha:_glCreateShader,$c:_glCullFace,n:_glDeleteBuffers,H:_glDeleteProgram,p:_glDeleteShader,G:_glDeleteTextures,db:_glDepthFunc,v:_glDetachShader,kd:_glDisable,u:_glDisableVertexAttribArray,_d:_glDrawArrays,Pd:_glDrawElements,O:_glEnable,g:_glEnableVertexAttribArray,Va:_glFrontFace,r:_glGenBuffers,La:_glGenTextures,d:_glGetAttribLocation,Qc:_glGetFloatv,Ba:_glGetProgramInfoLog,D:_glGetProgramiv,Ea:_glGetShaderInfoLog,F:_glGetShaderiv,m:_glGetString,c:_glGetUniformLocation,Ca:_glLinkProgram,Ma:_glPixelStorei,Ia:_glReadPixels,Ga:_glShaderSource,Ka:_glTexImage2D,x:_glTexParameteri,Aa:_glUniform1fv,Z:_glUniform1i,ta:_glUniform1iv,za:_glUniform2fv,wa:_glUniform2iv,ya:_glUniform3fv,va:_glUniform3iv,ha:_glUniform4f,xa:_glUniform4fv,ua:_glUniform4iv,l:_glUniformMatrix4fv,o:_glUseProgram,h:_glVertexAttribPointer,y:_glViewport,A:_glfwCreateWindow,ia:_glfwDefaultWindowHints,he:_glfwDestroyWindow,B:_glfwGetPrimaryMonitor,b:_glfwGetTime,ga:_glfwGetVideoModes,ja:_glfwInit,V:_glfwMakeContextCurrent,$:_glfwSetCharCallback,W:_glfwSetCursorEnterCallback,Y:_glfwSetCursorPosCallback,ca:_glfwSetDropCallback,ka:_glfwSetErrorCallback,aa:_glfwSetKeyCallback,_:_glfwSetMouseButtonCallback,X:_glfwSetScrollCallback,ba:_glfwSetWindowContentScaleCallback,da:_glfwSetWindowFocusCallback,ea:_glfwSetWindowIconifyCallback,je:_glfwSetWindowShouldClose,sa:_glfwSetWindowSize,fa:_glfwSetWindowSizeCallback,pa:_glfwSwapBuffers,z:_glfwTerminate,e:_glfwWindowHint};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;createWasm();run(); diff --git a/web/index.wasm b/web/index.wasm deleted file mode 100755 index 37d77400a161665a011e9e8d1a5cc1680e56328b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129807 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

Hc>lfI0uw&vRAz(+6Y+cZ;ayTLC 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