From 3161f6a8f1ab062b8f299554c95d079ef664fa9d Mon Sep 17 00:00:00 2001 From: Philip Rideout Date: Mon, 29 Mar 2021 14:34:35 -0700 Subject: [PATCH] Remote UI now handles keyboard input. --- docs/remote/filament.js | 2 +- docs/remote/filament.wasm | Bin 3835299 -> 3839296 bytes docs/remote/index.html | 20 +++++-- libs/viewer/include/viewer/SimpleViewer.h | 14 ++++- libs/viewer/src/SimpleViewer.cpp | 67 ++++++++++++++++++---- web/filament-js/jsbindings.cpp | 6 +- web/samples/remote.html | 20 +++++-- 7 files changed, 102 insertions(+), 27 deletions(-) diff --git a/docs/remote/filament.js b/docs/remote/filament.js index 013ebbb32a..34411860de 100644 --- a/docs/remote/filament.js +++ b/docs/remote/filament.js @@ -6,7 +6,7 @@ var Filament = (function() { function(Filament) { Filament = Filament || {}; -var Module=typeof Filament!=="undefined"?Filament:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="filament.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["Zg"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["_g"];removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={10126:function(){const handle=GL.registerContext(Filament.glContext,Filament.glOptions);GL.makeContextCurrent(handle)},2419420:function(){GL.currArrayBuffer=GLctx.currentArrayBufferBinding}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=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);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var 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:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var tupleRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}return Module["dynCall_"+sig].call(null,ptr)}function dynCall(sig,ptr,args){if(sig.indexOf("j")!=-1){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){assert(sig.indexOf("j")>=0,"getDynCaller should only be called with i64 sigs");var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}destructors.length=0;args.length=argCount;for(var i=1;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_array(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){tupleRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),elements:[]}}function __embind_register_value_array_element(rawTupleType,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){tupleRegistrations[rawTupleType].elements.push({getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},timerQueriesEXT:[],queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>1;var quadIndexes=new Uint16Array(numIndexes);var i=0,v=0;while(1){quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+1;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v+3;if(i>=numIndexes)break;v+=4}context.GLctx.bufferData(34963,quadIndexes,35044);context.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function getTempVertexBuffer(sizeBytes){var idx=GL.log2ceilLookup(sizeBytes);var ringbuffer=GL.currentContext.tempVertexBuffers1[idx];var nextFreeBufferIndex=GL.currentContext.tempVertexBufferCounters1[idx];GL.currentContext.tempVertexBufferCounters1[idx]=GL.currentContext.tempVertexBufferCounters1[idx]+1&GL.numTempVertexBuffersPerSize-1;var vbo=ringbuffer[nextFreeBufferIndex];if(vbo){return vbo}var prevVBO=GLctx.getParameter(34964);ringbuffer[nextFreeBufferIndex]=GLctx.createBuffer();GLctx.bindBuffer(34962,ringbuffer[nextFreeBufferIndex]);GLctx.bufferData(34962,1<>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},calcBufLength:function calcBufLength(size,type,stride,count){if(stride>0){return count*stride}var typeSize=GL.byteSizeByType[type-GL.byteSizeByTypeRoot];return size*typeSize*count},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function preDrawHandleClientVertexAttribBindings(count){GL.resetBufferBinding=false;for(var i=0;i>2)}function _emscripten_glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function _emscripten_glClearBufferuiv(buffer,drawbuffer,value){GLctx["clearBufferuiv"](buffer,drawbuffer,HEAPU32,value>>2)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _emscripten_glClientWaitSync(sync,flags,timeoutLo,timeoutHi){return GLctx.clientWaitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _emscripten_glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx["copyTexSubImage3D"](x0,x1,x2,x3,x4,x5,x6,x7,x8)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentArrayBufferBinding)GLctx.currentArrayBufferBinding=0;if(id==GLctx.currentElementArrayBufferBinding)GLctx.currentElementArrayBufferBinding=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _emscripten_glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.timerQueriesEXT[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.timerQueriesEXT[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteTransformFeedbacks(n,ids){for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx["deleteTransformFeedback"](transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}}function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=false;GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()}function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){var buf;if(!GLctx.currentElementArrayBufferBinding){var size=GL.calcBufLength(1,type,0,count);buf=GL.getTempIndexBuffer(size);GLctx.bindBuffer(34963,buf);GLctx.bufferSubData(34963,0,HEAPU8.subarray(indices,indices+size));indices=0}GL.preDrawHandleClientVertexAttribBindings(count);GLctx.drawElements(mode,count,type,indices);GL.postDrawHandleClientVertexAttribBindings(count);if(!GLctx.currentElementArrayBufferBinding){GLctx.bindBuffer(34963,null)}}function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glDrawElements(mode,count,type,indices){var buf;if(!GLctx.currentElementArrayBufferBinding){var size=GL.calcBufLength(1,type,0,count);buf=GL.getTempIndexBuffer(size);GLctx.bindBuffer(34963,buf);GLctx.bufferSubData(34963,0,HEAPU8.subarray(indices,indices+size));indices=0}GL.preDrawHandleClientVertexAttribBindings(count);GLctx.drawElements(mode,count,type,indices);GL.postDrawHandleClientVertexAttribBindings(count);if(!GLctx.currentElementArrayBufferBinding){GLctx.bindBuffer(34963,null)}}function _emscripten_glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQuery(x0){GLctx["endQuery"](x0)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _emscripten_glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function emscriptenWebGLGetBufferBinding(target){switch(target){case 34962:target=34964;break;case 34963:target=34965;break;case 35051:target=35053;break;case 35052:target=35055;break;case 35982:target=35983;break;case 36662:target=36662;break;case 36663:target=36663;break;case 35345:target=35368;break}var buffer=GLctx.getParameter(target);if(buffer)return buffer.name|0;else return 0}function emscriptenWebGLValidateMapBufferTarget(target){switch(target){case 34962:case 34963:case 36662:case 36663:case 35051:case 35052:case 35882:case 35982:case 35345:return true;default:return false}}function _emscripten_glFlushMappedBufferRange(target,offset,length){if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glFlushMappedBufferRange");return}var mapping=GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)];if(!mapping){GL.recordError(1282);err("buffer was never mapped in glFlushMappedBufferRange");return}if(!(mapping.access&16)){GL.recordError(1282);err("buffer was not mapped with GL_MAP_FLUSH_EXPLICIT_BIT in glFlushMappedBufferRange");return}if(offset<0||length<0||offset+length>mapping.length){GL.recordError(1281);err("invalid range in glFlushMappedBufferRange");return}GLctx.bufferSubData(target,mapping.offset,HEAPU8.subarray(mapping.mem+offset,mapping.mem+offset+length))}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.timerQueriesEXT);query.name=id;GL.timerQueriesEXT[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)}function _emscripten_glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniformBlockName(program,uniformBlockIndex,bufSize,length,uniformBlockName){program=GL.programs[program];var result=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];switch(pname){case 35393:var name=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return;default:var result=GLctx["getActiveUniformBlockParameter"](program,uniformBlockIndex,pname);if(!result)return;if(typeof result=="number"){HEAP32[params>>2]=result}else{for(var i=0;i>2]=result[i]}}}}function _emscripten_glGetActiveUniformsiv(program,uniformCount,uniformIndices,pname,params){if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx["getActiveUniforms"](program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetBufferPointerv(target,pname,params){if(pname==35005){var ptr=0;var mappedBuffer=GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)];if(mappedBuffer){ptr=mappedBuffer.mem}HEAP32[params>>2]=ptr}else{GL.recordError(1280);err("GL_INVALID_ENUM in glGetBufferPointerv")}}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFragDataLocation(program,name){return GLctx["getFragDataLocation"](GL.programs[program],UTF8ToString(name))}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function emscriptenWebGLGetIndexed(target,index,data,type){if(!data){GL.recordError(1281);return}var result=GLctx["getIndexedParameter"](target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data>>0]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}}function _emscripten_glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}function _emscripten_glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}function _emscripten_glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetInternalformativ(target,internalformat,pname,bufSize,params){if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx["getInternalformatParameter"](target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}}function _emscripten_glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,35721);ptable.maxAttributeLength=0;for(var i=0;i>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,35382);ptable.maxUniformBlockNameLength=0;for(var i=0;i>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getQuery"](target,pname)}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}sampler=GL.samplers[sampler];HEAPF32[params>>2]=GLctx["getSamplerParameter"](sampler,pname)}function _emscripten_glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}sampler=GL.samplers[sampler];HEAP32[params>>2]=GLctx["getSamplerParameter"](sampler,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";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)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _emscripten_glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _emscripten_glGetSynciv(sync,pname,bufSize,length,values){if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);HEAP32[length>>2]=ret;if(ret!==null&&length)HEAP32[length>>2]=1}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTransformFeedbackVarying(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx["getTransformFeedbackVarying"](program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _emscripten_glGetUniformIndices(program,uniformCount,uniformNames,uniformIndices){if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx["getUniformIndices"](program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}function jstoi_q(str){return parseInt(str)}function _emscripten_glGetUniformLocation(program,name){name=UTF8ToString(name);var arrayIndex=0;if(name[name.length-1]=="]"){var leftBrace=name.lastIndexOf("[");arrayIndex=name[leftBrace+1]!="]"?jstoi_q(name.slice(leftBrace+1)):0;name=name.slice(0,leftBrace)}var uniformInfo=GL.programInfos[program]&&GL.programInfos[program].uniforms[name];if(uniformInfo&&arrayIndex>=0&&arrayIndex>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}if(GL.currentContext.clientBuffers[index].enabled){err("glGetVertexAttrib*v on client-side array: not supported, bad data returned")}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribIuiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}if(GL.currentContext.clientBuffers[index].enabled){err("glGetVertexAttribPointer on client-side array: not supported, bad data returned")}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateFramebuffer"](target,list)}function _emscripten_glInvalidateSubFramebuffer(target,numAttachments,attachments,x,y,width,height){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateSubFramebuffer"](target,list,x,y,width,height)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx["isQuery"](query)}function _emscripten_glIsQueryEXT(id){var query=GL.timerQueriesEXT[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx["isSampler"](sampler)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsTransformFeedback(id){return GLctx["isTransformFeedback"](GL.transformFeedbacks[id])}function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.populateUniformTable(program)}function _emscripten_glMapBufferRange(target,offset,length,access){if(access!=26&&access!=10){err("glMapBufferRange is only supported when access is MAP_WRITE|INVALIDATE_BUFFER");return 0}if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glMapBufferRange");return 0}var mem=_malloc(length);if(!mem)return 0;GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)]={offset:offset,length:length,mem:mem,access:access};return mem}function _emscripten_glPauseTransformFeedback(){GLctx["pauseTransformFeedback"]()}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function _emscripten_glProgramParameteri(program,pname,value){GL.recordError(1280)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.timerQueriesEXT[id],target)}function _emscripten_glReadBuffer(x0){GLctx["readBuffer"](x0)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _emscripten_glResumeTransformFeedback(){GLctx["resumeTransformFeedback"]()}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _emscripten_glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _emscripten_glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(GL.uniforms[location],v0)}function _emscripten_glUniform1fv(location,count,value){GLctx.uniform1fv(GL.uniforms[location],HEAPF32,value>>2,count)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(GL.uniforms[location],v0)}function _emscripten_glUniform1iv(location,count,value){GLctx.uniform1iv(GL.uniforms[location],HEAP32,value>>2,count)}function _emscripten_glUniform1ui(location,v0){GLctx.uniform1ui(GL.uniforms[location],v0)}function _emscripten_glUniform1uiv(location,count,value){GLctx.uniform1uiv(GL.uniforms[location],HEAPU32,value>>2,count)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2fv(location,count,value){GLctx.uniform2fv(GL.uniforms[location],HEAPF32,value>>2,count*2)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2iv(location,count,value){GLctx.uniform2iv(GL.uniforms[location],HEAP32,value>>2,count*2)}function _emscripten_glUniform2ui(location,v0,v1){GLctx.uniform2ui(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2uiv(location,count,value){GLctx.uniform2uiv(GL.uniforms[location],HEAPU32,value>>2,count*2)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){GLctx.uniform3fv(GL.uniforms[location],HEAPF32,value>>2,count*3)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){GLctx.uniform3iv(GL.uniforms[location],HEAP32,value>>2,count*3)}function _emscripten_glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3uiv(location,count,value){GLctx.uniform3uiv(GL.uniforms[location],HEAPU32,value>>2,count*3)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){GLctx.uniform4fv(GL.uniforms[location],HEAPF32,value>>2,count*4)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){GLctx.uniform4iv(GL.uniforms[location],HEAP32,value>>2,count*4)}function _emscripten_glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4uiv(location,count,value){GLctx.uniform4uiv(GL.uniforms[location],HEAPU32,value>>2,count*4)}function _emscripten_glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){GLctx.uniformMatrix2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*4)}function _emscripten_glUniformMatrix2x3fv(location,count,transpose,value){GLctx.uniformMatrix2x3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix2x4fv(location,count,transpose,value){GLctx.uniformMatrix2x4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){GLctx.uniformMatrix3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*9)}function _emscripten_glUniformMatrix3x2fv(location,count,transpose,value){GLctx.uniformMatrix3x2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix3x4fv(location,count,transpose,value){GLctx.uniformMatrix3x4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*16)}function _emscripten_glUniformMatrix4x2fv(location,count,transpose,value){GLctx.uniformMatrix4x2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix4x3fv(location,count,transpose,value){GLctx.uniformMatrix4x3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUnmapBuffer(target){if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glUnmapBuffer");return 0}var buffer=emscriptenWebGLGetBufferBinding(target);var mapping=GL.mappedBuffers[buffer];if(!mapping){GL.recordError(1282);err("buffer was never mapped in glUnmapBuffer");return 0}GL.mappedBuffers[buffer]=null;if(!(mapping.access&16))if(true){GLctx.bufferSubData(target,mapping.offset,HEAPU8,mapping.mem,mapping.length)}else{GLctx.bufferSubData(target,mapping.offset,HEAPU8.subarray(mapping.mem,mapping.mem+mapping.length))}_free(mapping.mem);return 1}function _emscripten_glUseProgram(program){GLctx.useProgram(GL.programs[program])}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx["vertexAttribI4i"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}function _emscripten_glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}function _emscripten_glVertexAttribIPointer(index,size,type,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=false;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribIPointer(index,size,type,stride,ptr)};return}cb.clientside=false;GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribPointer(index,size,type,normalized,stride,ptr)};return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_glWaitSync(sync,flags,timeoutLo,timeoutHi){GLctx.waitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i>0]=_getentropy.randomDevice()}return 0}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBeginQuery(target,id){GLctx["beginQuery"](target,GL.queries[id])}function _glBindBuffer(target,buffer){if(target==34962){GLctx.currentArrayBufferBinding=buffer}else if(target==34963){GLctx.currentElementArrayBufferBinding=buffer}if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx["bindBufferRange"](target,index,GL.buffers[buffer],offset,ptrsize)}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindSampler(unit,sampler){GLctx["bindSampler"](unit,GL.samplers[sampler])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao]);var ibo=GLctx.getParameter(34965);GLctx.currentElementArrayBufferBinding=ibo?ibo.name|0:0}function _glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _glBufferData(target,size,data,usage){if(true){if(data){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(true){GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClearBufferfi(x0,x1,x2,x3){GLctx["clearBufferfi"](x0,x1,x2,x3)}function _glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function _glClientWaitSync(sync,flags,timeoutLo,timeoutHi){return GLctx.clientWaitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentArrayBufferBinding)GLctx.currentArrayBufferBinding=0;if(id==GLctx.currentElementArrayBufferBinding)GLctx.currentElementArrayBufferBinding=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=false;GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()}function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)}function _glEndQuery(x0){GLctx["endQuery"](x0)}function _glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _glFinish(){GLctx["finish"]()}function _glFlush(){GLctx["flush"]()}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,35721);ptable.maxAttributeLength=0;for(var i=0;i>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,35382);ptable.maxUniformBlockNameLength=0;for(var i=0;i>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";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)}}function _glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _glGetUniformLocation(program,name){name=UTF8ToString(name);var arrayIndex=0;if(name[name.length-1]=="]"){var leftBrace=name.lastIndexOf("[");arrayIndex=name[leftBrace+1]!="]"?jstoi_q(name.slice(leftBrace+1)):0;name=name.slice(0,leftBrace)}var uniformInfo=GL.programInfos[program]&&GL.programInfos[program].uniforms[name];if(uniformInfo&&arrayIndex>=0&&arrayIndex>2]}GLctx["invalidateFramebuffer"](target,list)}function _glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.populateUniformTable(program)}function _glMapBufferRange(target,offset,length,access){if(access!=26&&access!=10){err("glMapBufferRange is only supported when access is MAP_WRITE|INVALIDATE_BUFFER");return 0}if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glMapBufferRange");return 0}var mem=_malloc(length);if(!mem)return 0;GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)]={offset:offset,length:length,mem:mem,access:access};return mem}function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _glUniform1i(location,v0){GLctx.uniform1i(GL.uniforms[location],v0)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUnmapBuffer(target){if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glUnmapBuffer");return 0}var buffer=emscriptenWebGLGetBufferBinding(target);var mapping=GL.mappedBuffers[buffer];if(!mapping){GL.recordError(1282);err("buffer was never mapped in glUnmapBuffer");return 0}GL.mappedBuffers[buffer]=null;if(!(mapping.access&16))if(true){GLctx.bufferSubData(target,mapping.offset,HEAPU8,mapping.mem,mapping.length)}else{GLctx.bufferSubData(target,mapping.offset,HEAPU8.subarray(mapping.mem,mapping.mem+mapping.length))}_free(mapping.mem);return 1}function _glUseProgram(program){GLctx.useProgram(GL.programs[program])}function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _glVertexAttribIPointer(index,size,type,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=false;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribIPointer(index,size,type,stride,ptr)};return}cb.clientside=false;GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribPointer(index,size,type,normalized,stride,ptr)};return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _glWaitSync(sync,flags,timeoutLo,timeoutHi){GLctx.waitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _pthread_create(){return 6}function _pthread_join(){return 28}function _setTempRet0($i){setTempRet0($i|0)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _sysconf(name){switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}setErrNo(28);return-1}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Ha":___sys_fcntl64,"Dg":___sys_ioctl,"Eg":___sys_open,"v":__embind_finalize_value_array,"z":__embind_finalize_value_object,"Hg":__embind_register_bool,"d":__embind_register_class,"n":__embind_register_class_class_function,"m":__embind_register_class_constructor,"a":__embind_register_class_function,"u":__embind_register_class_property,"Gg":__embind_register_emval,"i":__embind_register_enum,"b":__embind_register_enum_value,"Ja":__embind_register_float,"La":__embind_register_function,"D":__embind_register_integer,"x":__embind_register_memory_view,"Ka":__embind_register_std_string,"ja":__embind_register_std_wstring,"w":__embind_register_value_array,"f":__embind_register_value_array_element,"A":__embind_register_value_object,"e":__embind_register_value_object_field,"Ig":__embind_register_void,"q":__emval_as,"g":__emval_decref,"r":__emval_get_property,"ha":__emval_incref,"G":__emval_new_cstring,"p":__emval_run_destructors,"s":__emval_take_value,"c":_abort,"wg":_clock_gettime,"Ga":_emscripten_asm_const_int,"ag":_emscripten_glActiveTexture,"$f":_emscripten_glAttachShader,"cd":_emscripten_glBeginQuery,"qg":_emscripten_glBeginQueryEXT,"Gc":_emscripten_glBeginTransformFeedback,"_f":_emscripten_glBindAttribLocation,"Zf":_emscripten_glBindBuffer,"Dc":_emscripten_glBindBufferBase,"Ec":_emscripten_glBindBufferRange,"Yf":_emscripten_glBindFramebuffer,"Xf":_emscripten_glBindRenderbuffer,"Kb":_emscripten_glBindSampler,"Wf":_emscripten_glBindTexture,"Cb":_emscripten_glBindTransformFeedback,"Lc":_emscripten_glBindVertexArray,"ig":_emscripten_glBindVertexArrayOES,"Vf":_emscripten_glBlendColor,"Uf":_emscripten_glBlendEquation,"Tf":_emscripten_glBlendEquationSeparate,"Sf":_emscripten_glBlendFunc,"Rf":_emscripten_glBlendFuncSeparate,"Rc":_emscripten_glBlitFramebuffer,"Qf":_emscripten_glBufferData,"Pf":_emscripten_glBufferSubData,"Of":_emscripten_glCheckFramebufferStatus,"Nf":_emscripten_glClear,"gc":_emscripten_glClearBufferfi,"hc":_emscripten_glClearBufferfv,"jc":_emscripten_glClearBufferiv,"ic":_emscripten_glClearBufferuiv,"Mf":_emscripten_glClearColor,"Lf":_emscripten_glClearDepthf,"Kf":_emscripten_glClearStencil,"Ub":_emscripten_glClientWaitSync,"Jf":_emscripten_glColorMask,"If":_emscripten_glCompileShader,"Hf":_emscripten_glCompressedTexImage2D,"hd":_emscripten_glCompressedTexImage3D,"Gf":_emscripten_glCompressedTexSubImage2D,"gd":_emscripten_glCompressedTexSubImage3D,"ec":_emscripten_glCopyBufferSubData,"Ff":_emscripten_glCopyTexImage2D,"Ef":_emscripten_glCopyTexSubImage2D,"jd":_emscripten_glCopyTexSubImage3D,"Df":_emscripten_glCreateProgram,"Cf":_emscripten_glCreateShader,"Bf":_emscripten_glCullFace,"Af":_emscripten_glDeleteBuffers,"zf":_emscripten_glDeleteFramebuffers,"yf":_emscripten_glDeleteProgram,"ed":_emscripten_glDeleteQueries,"sg":_emscripten_glDeleteQueriesEXT,"xf":_emscripten_glDeleteRenderbuffers,"Mb":_emscripten_glDeleteSamplers,"wf":_emscripten_glDeleteShader,"Vb":_emscripten_glDeleteSync,"vf":_emscripten_glDeleteTextures,"Bb":_emscripten_glDeleteTransformFeedbacks,"Kc":_emscripten_glDeleteVertexArrays,"hg":_emscripten_glDeleteVertexArraysOES,"uf":_emscripten_glDepthFunc,"tf":_emscripten_glDepthMask,"sf":_emscripten_glDepthRangef,"rf":_emscripten_glDetachShader,"qf":_emscripten_glDisable,"pf":_emscripten_glDisableVertexAttribArray,"of":_emscripten_glDrawArrays,"Zb":_emscripten_glDrawArraysInstanced,"dg":_emscripten_glDrawArraysInstancedANGLE,"lb":_emscripten_glDrawArraysInstancedARB,"qd":_emscripten_glDrawArraysInstancedEXT,"mb":_emscripten_glDrawArraysInstancedNV,"Yc":_emscripten_glDrawBuffers,"od":_emscripten_glDrawBuffersEXT,"eg":_emscripten_glDrawBuffersWEBGL,"nf":_emscripten_glDrawElements,"Yb":_emscripten_glDrawElementsInstanced,"cg":_emscripten_glDrawElementsInstancedANGLE,"jb":_emscripten_glDrawElementsInstancedARB,"kb":_emscripten_glDrawElementsInstancedEXT,"pd":_emscripten_glDrawElementsInstancedNV,"md":_emscripten_glDrawRangeElements,"mf":_emscripten_glEnable,"lf":_emscripten_glEnableVertexAttribArray,"bd":_emscripten_glEndQuery,"pg":_emscripten_glEndQueryEXT,"Fc":_emscripten_glEndTransformFeedback,"Xb":_emscripten_glFenceSync,"kf":_emscripten_glFinish,"jf":_emscripten_glFlush,"Mc":_emscripten_glFlushMappedBufferRange,"hf":_emscripten_glFramebufferRenderbuffer,"gf":_emscripten_glFramebufferTexture2D,"Oc":_emscripten_glFramebufferTextureLayer,"ff":_emscripten_glFrontFace,"ef":_emscripten_glGenBuffers,"cf":_emscripten_glGenFramebuffers,"fd":_emscripten_glGenQueries,"tg":_emscripten_glGenQueriesEXT,"bf":_emscripten_glGenRenderbuffers,"Nb":_emscripten_glGenSamplers,"af":_emscripten_glGenTextures,"Ab":_emscripten_glGenTransformFeedbacks,"Jc":_emscripten_glGenVertexArrays,"gg":_emscripten_glGenVertexArraysOES,"df":_emscripten_glGenerateMipmap,"$e":_emscripten_glGetActiveAttrib,"_e":_emscripten_glGetActiveUniform,"$b":_emscripten_glGetActiveUniformBlockName,"ac":_emscripten_glGetActiveUniformBlockiv,"cc":_emscripten_glGetActiveUniformsiv,"Ze":_emscripten_glGetAttachedShaders,"Ye":_emscripten_glGetAttribLocation,"Xe":_emscripten_glGetBooleanv,"Ob":_emscripten_glGetBufferParameteri64v,"We":_emscripten_glGetBufferParameteriv,"Zc":_emscripten_glGetBufferPointerv,"Ve":_emscripten_glGetError,"Ue":_emscripten_glGetFloatv,"sc":_emscripten_glGetFragDataLocation,"Te":_emscripten_glGetFramebufferAttachmentParameteriv,"Pb":_emscripten_glGetInteger64i_v,"Rb":_emscripten_glGetInteger64v,"Hc":_emscripten_glGetIntegeri_v,"Se":_emscripten_glGetIntegerv,"pb":_emscripten_glGetInternalformativ,"wb":_emscripten_glGetProgramBinary,"Qe":_emscripten_glGetProgramInfoLog,"Re":_emscripten_glGetProgramiv,"kg":_emscripten_glGetQueryObjecti64vEXT,"mg":_emscripten_glGetQueryObjectivEXT,"jg":_emscripten_glGetQueryObjectui64vEXT,"$c":_emscripten_glGetQueryObjectuiv,"lg":_emscripten_glGetQueryObjectuivEXT,"ad":_emscripten_glGetQueryiv,"ng":_emscripten_glGetQueryivEXT,"Pe":_emscripten_glGetRenderbufferParameteriv,"Eb":_emscripten_glGetSamplerParameterfv,"Fb":_emscripten_glGetSamplerParameteriv,"Ne":_emscripten_glGetShaderInfoLog,"Me":_emscripten_glGetShaderPrecisionFormat,"Le":_emscripten_glGetShaderSource,"Oe":_emscripten_glGetShaderiv,"Ke":_emscripten_glGetString,"fc":_emscripten_glGetStringi,"Qb":_emscripten_glGetSynciv,"Je":_emscripten_glGetTexParameterfv,"Ie":_emscripten_glGetTexParameteriv,"Bc":_emscripten_glGetTransformFeedbackVarying,"bc":_emscripten_glGetUniformBlockIndex,"dc":_emscripten_glGetUniformIndices,"Fe":_emscripten_glGetUniformLocation,"He":_emscripten_glGetUniformfv,"Ge":_emscripten_glGetUniformiv,"tc":_emscripten_glGetUniformuiv,"zc":_emscripten_glGetVertexAttribIiv,"yc":_emscripten_glGetVertexAttribIuiv,"Ce":_emscripten_glGetVertexAttribPointerv,"Ee":_emscripten_glGetVertexAttribfv,"De":_emscripten_glGetVertexAttribiv,"Be":_emscripten_glHint,"tb":_emscripten_glInvalidateFramebuffer,"sb":_emscripten_glInvalidateSubFramebuffer,"Ae":_emscripten_glIsBuffer,"ze":_emscripten_glIsEnabled,"ye":_emscripten_glIsFramebuffer,"xe":_emscripten_glIsProgram,"dd":_emscripten_glIsQuery,"rg":_emscripten_glIsQueryEXT,"we":_emscripten_glIsRenderbuffer,"Lb":_emscripten_glIsSampler,"ve":_emscripten_glIsShader,"Wb":_emscripten_glIsSync,"ue":_emscripten_glIsTexture,"zb":_emscripten_glIsTransformFeedback,"Ic":_emscripten_glIsVertexArray,"fg":_emscripten_glIsVertexArrayOES,"te":_emscripten_glLineWidth,"se":_emscripten_glLinkProgram,"Nc":_emscripten_glMapBufferRange,"yb":_emscripten_glPauseTransformFeedback,"re":_emscripten_glPixelStorei,"qe":_emscripten_glPolygonOffset,"vb":_emscripten_glProgramBinary,"ub":_emscripten_glProgramParameteri,"og":_emscripten_glQueryCounterEXT,"nd":_emscripten_glReadBuffer,"pe":_emscripten_glReadPixels,"oe":_emscripten_glReleaseShaderCompiler,"ne":_emscripten_glRenderbufferStorage,"Qc":_emscripten_glRenderbufferStorageMultisample,"xb":_emscripten_glResumeTransformFeedback,"me":_emscripten_glSampleCoverage,"Hb":_emscripten_glSamplerParameterf,"Gb":_emscripten_glSamplerParameterfv,"Jb":_emscripten_glSamplerParameteri,"Ib":_emscripten_glSamplerParameteriv,"le":_emscripten_glScissor,"ke":_emscripten_glShaderBinary,"je":_emscripten_glShaderSource,"ie":_emscripten_glStencilFunc,"he":_emscripten_glStencilFuncSeparate,"ge":_emscripten_glStencilMask,"fe":_emscripten_glStencilMaskSeparate,"ee":_emscripten_glStencilOp,"de":_emscripten_glStencilOpSeparate,"ce":_emscripten_glTexImage2D,"ld":_emscripten_glTexImage3D,"be":_emscripten_glTexParameterf,"ae":_emscripten_glTexParameterfv,"$d":_emscripten_glTexParameteri,"_d":_emscripten_glTexParameteriv,"rb":_emscripten_glTexStorage2D,"qb":_emscripten_glTexStorage3D,"Zd":_emscripten_glTexSubImage2D,"kd":_emscripten_glTexSubImage3D,"Cc":_emscripten_glTransformFeedbackVaryings,"Yd":_emscripten_glUniform1f,"Xd":_emscripten_glUniform1fv,"Wd":_emscripten_glUniform1i,"Vd":_emscripten_glUniform1iv,"rc":_emscripten_glUniform1ui,"nc":_emscripten_glUniform1uiv,"Ud":_emscripten_glUniform2f,"Td":_emscripten_glUniform2fv,"Sd":_emscripten_glUniform2i,"Rd":_emscripten_glUniform2iv,"qc":_emscripten_glUniform2ui,"mc":_emscripten_glUniform2uiv,"Qd":_emscripten_glUniform3f,"Pd":_emscripten_glUniform3fv,"Nd":_emscripten_glUniform3i,"Md":_emscripten_glUniform3iv,"pc":_emscripten_glUniform3ui,"lc":_emscripten_glUniform3uiv,"Ld":_emscripten_glUniform4f,"Kd":_emscripten_glUniform4fv,"Jd":_emscripten_glUniform4i,"Id":_emscripten_glUniform4iv,"oc":_emscripten_glUniform4ui,"kc":_emscripten_glUniform4uiv,"_b":_emscripten_glUniformBlockBinding,"Hd":_emscripten_glUniformMatrix2fv,"Xc":_emscripten_glUniformMatrix2x3fv,"Vc":_emscripten_glUniformMatrix2x4fv,"Gd":_emscripten_glUniformMatrix3fv,"Wc":_emscripten_glUniformMatrix3x2fv,"Tc":_emscripten_glUniformMatrix3x4fv,"Fd":_emscripten_glUniformMatrix4fv,"Uc":_emscripten_glUniformMatrix4x2fv,"Sc":_emscripten_glUniformMatrix4x3fv,"_c":_emscripten_glUnmapBuffer,"Ed":_emscripten_glUseProgram,"Dd":_emscripten_glValidateProgram,"Cd":_emscripten_glVertexAttrib1f,"Bd":_emscripten_glVertexAttrib1fv,"Ad":_emscripten_glVertexAttrib2f,"zd":_emscripten_glVertexAttrib2fv,"yd":_emscripten_glVertexAttrib3f,"xd":_emscripten_glVertexAttrib3fv,"wd":_emscripten_glVertexAttrib4f,"vd":_emscripten_glVertexAttrib4fv,"Db":_emscripten_glVertexAttribDivisor,"bg":_emscripten_glVertexAttribDivisorANGLE,"nb":_emscripten_glVertexAttribDivisorARB,"rd":_emscripten_glVertexAttribDivisorEXT,"ob":_emscripten_glVertexAttribDivisorNV,"xc":_emscripten_glVertexAttribI4i,"vc":_emscripten_glVertexAttribI4iv,"wc":_emscripten_glVertexAttribI4ui,"uc":_emscripten_glVertexAttribI4uiv,"Ac":_emscripten_glVertexAttribIPointer,"ud":_emscripten_glVertexAttribPointer,"sd":_emscripten_glViewport,"Tb":_emscripten_glWaitSync,"ug":_emscripten_memcpy_big,"vg":_emscripten_resize_heap,"zg":_environ_get,"Ag":_environ_sizes_get,"ia":_fd_close,"Fg":_fd_read,"gb":_fd_seek,"Ia":_fd_write,"xg":_getentropy,"h":_glActiveTexture,"T":_glAttachShader,"Xg":_glBeginQuery,"C":_glBindBuffer,"ra":_glBindBufferRange,"l":_glBindFramebuffer,"H":_glBindRenderbuffer,"U":_glBindSampler,"k":_glBindTexture,"N":_glBindVertexArray,"Tg":_glBlendEquationSeparate,"Sg":_glBlendFuncSeparate,"pa":_glBlitFramebuffer,"M":_glBufferData,"Y":_glBufferSubData,"Mg":_glClearBufferfi,"O":_glClearBufferfv,"Lg":_glClearBufferiv,"hb":_glClientWaitSync,"la":_glColorMask,"ba":_glCompileShader,"Na":_glCompressedTexSubImage2D,"Ma":_glCompressedTexSubImage3D,"Aa":_glCreateProgram,"da":_glCreateShader,"ka":_glCullFace,"Ca":_glDeleteBuffers,"S":_glDeleteFramebuffers,"$":_glDeleteProgram,"$a":_glDeleteQueries,"E":_glDeleteRenderbuffers,"na":_glDeleteSamplers,"L":_glDeleteShader,"F":_glDeleteSync,"J":_glDeleteTextures,"Sb":_glDeleteVertexArrays,"Rg":_glDepthFunc,"Qg":_glDepthMask,"Za":_glDepthRangef,"_":_glDetachShader,"j":_glDisable,"sa":_glDisableVertexAttribArray,"Ra":_glDrawArrays,"Ta":_glDrawBuffers,"Ua":_glDrawRangeElements,"B":_glEnable,"ta":_glEnableVertexAttribArray,"Wg":_glEndQuery,"Z":_glFenceSync,"Da":_glFinish,"Ea":_glFlush,"P":_glFramebufferRenderbuffer,"Q":_glFramebufferTexture2D,"Qa":_glFramebufferTextureLayer,"Ug":_glFrontFace,"W":_glGenBuffers,"R":_glGenFramebuffers,"ab":_glGenQueries,"ga":_glGenRenderbuffers,"oa":_glGenSamplers,"I":_glGenTextures,"fb":_glGenVertexArrays,"_a":_glGenerateMipmap,"Sa":_glGetError,"td":_glGetFloatv,"o":_glGetIntegerv,"cb":_glGetProgramInfoLog,"ya":_glGetProgramiv,"Vg":_glGetQueryObjectuiv,"bb":_glGetShaderInfoLog,"aa":_glGetShaderiv,"V":_glGetString,"Od":_glGetStringi,"eb":_glGetUniformBlockIndex,"xa":_glGetUniformLocation,"Yg":_glGetVertexAttribiv,"id":_glHint,"va":_glInvalidateFramebuffer,"ma":_glIsEnabled,"za":_glLinkProgram,"Kg":_glMapBufferRange,"Pc":_glPixelStorei,"Va":_glPolygonOffset,"qa":_glReadPixels,"ea":_glRenderbufferStorage,"fa":_glRenderbufferStorageMultisample,"t":_glSamplerParameteri,"Ng":_glScissor,"ca":_glShaderSource,"y":_glTexParameteri,"Pg":_glTexStorage2D,"Og":_glTexStorage3D,"Pa":_glTexSubImage2D,"Oa":_glTexSubImage3D,"wa":_glUniform1i,"db":_glUniformBlockBinding,"Jg":_glUnmapBuffer,"K":_glUseProgram,"Wa":_glVertexAttrib4f,"Xa":_glVertexAttribI4ui,"Ya":_glVertexAttribIPointer,"ua":_glVertexAttribPointer,"X":_glViewport,"ib":_glWaitSync,"Fa":_pthread_create,"Cg":_pthread_join,"Ba":_setTempRet0,"yg":_strftime_l,"Bg":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$g"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ah"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["bh"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ch"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["dh"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["eh"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["fh"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["gh"]).apply(null,arguments)};var dynCall_iiij=Module["dynCall_iiij"]=function(){return(dynCall_iiij=Module["dynCall_iiij"]=Module["asm"]["hh"]).apply(null,arguments)};var dynCall_vij=Module["dynCall_vij"]=function(){return(dynCall_vij=Module["dynCall_vij"]=Module["asm"]["ih"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["jh"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["kh"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["lh"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["mh"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); +var Module=typeof Filament!=="undefined"?Filament:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="filament.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["Zg"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["_g"];removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={10272:function(){const handle=GL.registerContext(Filament.glContext,Filament.glOptions);GL.makeContextCurrent(handle)}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=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);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var 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:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var tupleRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}return Module["dynCall_"+sig].call(null,ptr)}function dynCall(sig,ptr,args){if(sig.indexOf("j")!=-1){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){assert(sig.indexOf("j")>=0,"getDynCaller should only be called with i64 sigs");var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}destructors.length=0;args.length=argCount;for(var i=1;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_array(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){tupleRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),elements:[]}}function __embind_register_value_array_element(rawTupleType,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){tupleRegistrations[rawTupleType].elements.push({getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},timerQueriesEXT:[],queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>1;var quadIndexes=new Uint16Array(numIndexes);var i=0,v=0;while(1){quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+1;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v+3;if(i>=numIndexes)break;v+=4}context.GLctx.bufferData(34963,quadIndexes,35044);context.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function getTempVertexBuffer(sizeBytes){var idx=GL.log2ceilLookup(sizeBytes);var ringbuffer=GL.currentContext.tempVertexBuffers1[idx];var nextFreeBufferIndex=GL.currentContext.tempVertexBufferCounters1[idx];GL.currentContext.tempVertexBufferCounters1[idx]=GL.currentContext.tempVertexBufferCounters1[idx]+1&GL.numTempVertexBuffersPerSize-1;var vbo=ringbuffer[nextFreeBufferIndex];if(vbo){return vbo}var prevVBO=GLctx.getParameter(34964);ringbuffer[nextFreeBufferIndex]=GLctx.createBuffer();GLctx.bindBuffer(34962,ringbuffer[nextFreeBufferIndex]);GLctx.bufferData(34962,1<>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},calcBufLength:function calcBufLength(size,type,stride,count){if(stride>0){return count*stride}var typeSize=GL.byteSizeByType[type-GL.byteSizeByTypeRoot];return size*typeSize*count},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function preDrawHandleClientVertexAttribBindings(count){GL.resetBufferBinding=false;for(var i=0;i>2)}function _emscripten_glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function _emscripten_glClearBufferuiv(buffer,drawbuffer,value){GLctx["clearBufferuiv"](buffer,drawbuffer,HEAPU32,value>>2)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _emscripten_glClientWaitSync(sync,flags,timeoutLo,timeoutHi){return GLctx.clientWaitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _emscripten_glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx["copyTexSubImage3D"](x0,x1,x2,x3,x4,x5,x6,x7,x8)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentArrayBufferBinding)GLctx.currentArrayBufferBinding=0;if(id==GLctx.currentElementArrayBufferBinding)GLctx.currentElementArrayBufferBinding=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _emscripten_glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.timerQueriesEXT[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.timerQueriesEXT[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteTransformFeedbacks(n,ids){for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx["deleteTransformFeedback"](transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}}function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=false;GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()}function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){var buf;if(!GLctx.currentElementArrayBufferBinding){var size=GL.calcBufLength(1,type,0,count);buf=GL.getTempIndexBuffer(size);GLctx.bindBuffer(34963,buf);GLctx.bufferSubData(34963,0,HEAPU8.subarray(indices,indices+size));indices=0}GL.preDrawHandleClientVertexAttribBindings(count);GLctx.drawElements(mode,count,type,indices);GL.postDrawHandleClientVertexAttribBindings(count);if(!GLctx.currentElementArrayBufferBinding){GLctx.bindBuffer(34963,null)}}function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glDrawElements(mode,count,type,indices){var buf;if(!GLctx.currentElementArrayBufferBinding){var size=GL.calcBufLength(1,type,0,count);buf=GL.getTempIndexBuffer(size);GLctx.bindBuffer(34963,buf);GLctx.bufferSubData(34963,0,HEAPU8.subarray(indices,indices+size));indices=0}GL.preDrawHandleClientVertexAttribBindings(count);GLctx.drawElements(mode,count,type,indices);GL.postDrawHandleClientVertexAttribBindings(count);if(!GLctx.currentElementArrayBufferBinding){GLctx.bindBuffer(34963,null)}}function _emscripten_glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQuery(x0){GLctx["endQuery"](x0)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _emscripten_glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function emscriptenWebGLGetBufferBinding(target){switch(target){case 34962:target=34964;break;case 34963:target=34965;break;case 35051:target=35053;break;case 35052:target=35055;break;case 35982:target=35983;break;case 36662:target=36662;break;case 36663:target=36663;break;case 35345:target=35368;break}var buffer=GLctx.getParameter(target);if(buffer)return buffer.name|0;else return 0}function emscriptenWebGLValidateMapBufferTarget(target){switch(target){case 34962:case 34963:case 36662:case 36663:case 35051:case 35052:case 35882:case 35982:case 35345:return true;default:return false}}function _emscripten_glFlushMappedBufferRange(target,offset,length){if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glFlushMappedBufferRange");return}var mapping=GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)];if(!mapping){GL.recordError(1282);err("buffer was never mapped in glFlushMappedBufferRange");return}if(!(mapping.access&16)){GL.recordError(1282);err("buffer was not mapped with GL_MAP_FLUSH_EXPLICIT_BIT in glFlushMappedBufferRange");return}if(offset<0||length<0||offset+length>mapping.length){GL.recordError(1281);err("invalid range in glFlushMappedBufferRange");return}GLctx.bufferSubData(target,mapping.offset,HEAPU8.subarray(mapping.mem+offset,mapping.mem+offset+length))}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.timerQueriesEXT);query.name=id;GL.timerQueriesEXT[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)}function _emscripten_glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniformBlockName(program,uniformBlockIndex,bufSize,length,uniformBlockName){program=GL.programs[program];var result=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];switch(pname){case 35393:var name=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return;default:var result=GLctx["getActiveUniformBlockParameter"](program,uniformBlockIndex,pname);if(!result)return;if(typeof result=="number"){HEAP32[params>>2]=result}else{for(var i=0;i>2]=result[i]}}}}function _emscripten_glGetActiveUniformsiv(program,uniformCount,uniformIndices,pname,params){if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx["getActiveUniforms"](program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetBufferPointerv(target,pname,params){if(pname==35005){var ptr=0;var mappedBuffer=GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)];if(mappedBuffer){ptr=mappedBuffer.mem}HEAP32[params>>2]=ptr}else{GL.recordError(1280);err("GL_INVALID_ENUM in glGetBufferPointerv")}}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFragDataLocation(program,name){return GLctx["getFragDataLocation"](GL.programs[program],UTF8ToString(name))}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function emscriptenWebGLGetIndexed(target,index,data,type){if(!data){GL.recordError(1281);return}var result=GLctx["getIndexedParameter"](target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data>>0]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}}function _emscripten_glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}function _emscripten_glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}function _emscripten_glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetInternalformativ(target,internalformat,pname,bufSize,params){if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx["getInternalformatParameter"](target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}}function _emscripten_glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,35721);ptable.maxAttributeLength=0;for(var i=0;i>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,35382);ptable.maxUniformBlockNameLength=0;for(var i=0;i>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getQuery"](target,pname)}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}sampler=GL.samplers[sampler];HEAPF32[params>>2]=GLctx["getSamplerParameter"](sampler,pname)}function _emscripten_glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}sampler=GL.samplers[sampler];HEAP32[params>>2]=GLctx["getSamplerParameter"](sampler,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";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)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _emscripten_glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _emscripten_glGetSynciv(sync,pname,bufSize,length,values){if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);HEAP32[length>>2]=ret;if(ret!==null&&length)HEAP32[length>>2]=1}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTransformFeedbackVarying(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx["getTransformFeedbackVarying"](program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _emscripten_glGetUniformIndices(program,uniformCount,uniformNames,uniformIndices){if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx["getUniformIndices"](program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}function jstoi_q(str){return parseInt(str)}function _emscripten_glGetUniformLocation(program,name){name=UTF8ToString(name);var arrayIndex=0;if(name[name.length-1]=="]"){var leftBrace=name.lastIndexOf("[");arrayIndex=name[leftBrace+1]!="]"?jstoi_q(name.slice(leftBrace+1)):0;name=name.slice(0,leftBrace)}var uniformInfo=GL.programInfos[program]&&GL.programInfos[program].uniforms[name];if(uniformInfo&&arrayIndex>=0&&arrayIndex>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}if(GL.currentContext.clientBuffers[index].enabled){err("glGetVertexAttrib*v on client-side array: not supported, bad data returned")}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribIuiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}if(GL.currentContext.clientBuffers[index].enabled){err("glGetVertexAttribPointer on client-side array: not supported, bad data returned")}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateFramebuffer"](target,list)}function _emscripten_glInvalidateSubFramebuffer(target,numAttachments,attachments,x,y,width,height){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateSubFramebuffer"](target,list,x,y,width,height)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx["isQuery"](query)}function _emscripten_glIsQueryEXT(id){var query=GL.timerQueriesEXT[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx["isSampler"](sampler)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsTransformFeedback(id){return GLctx["isTransformFeedback"](GL.transformFeedbacks[id])}function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.populateUniformTable(program)}function _emscripten_glMapBufferRange(target,offset,length,access){if(access!=26&&access!=10){err("glMapBufferRange is only supported when access is MAP_WRITE|INVALIDATE_BUFFER");return 0}if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glMapBufferRange");return 0}var mem=_malloc(length);if(!mem)return 0;GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)]={offset:offset,length:length,mem:mem,access:access};return mem}function _emscripten_glPauseTransformFeedback(){GLctx["pauseTransformFeedback"]()}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function _emscripten_glProgramParameteri(program,pname,value){GL.recordError(1280)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.timerQueriesEXT[id],target)}function _emscripten_glReadBuffer(x0){GLctx["readBuffer"](x0)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _emscripten_glResumeTransformFeedback(){GLctx["resumeTransformFeedback"]()}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _emscripten_glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _emscripten_glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(GL.uniforms[location],v0)}function _emscripten_glUniform1fv(location,count,value){GLctx.uniform1fv(GL.uniforms[location],HEAPF32,value>>2,count)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(GL.uniforms[location],v0)}function _emscripten_glUniform1iv(location,count,value){GLctx.uniform1iv(GL.uniforms[location],HEAP32,value>>2,count)}function _emscripten_glUniform1ui(location,v0){GLctx.uniform1ui(GL.uniforms[location],v0)}function _emscripten_glUniform1uiv(location,count,value){GLctx.uniform1uiv(GL.uniforms[location],HEAPU32,value>>2,count)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2fv(location,count,value){GLctx.uniform2fv(GL.uniforms[location],HEAPF32,value>>2,count*2)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2iv(location,count,value){GLctx.uniform2iv(GL.uniforms[location],HEAP32,value>>2,count*2)}function _emscripten_glUniform2ui(location,v0,v1){GLctx.uniform2ui(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2uiv(location,count,value){GLctx.uniform2uiv(GL.uniforms[location],HEAPU32,value>>2,count*2)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){GLctx.uniform3fv(GL.uniforms[location],HEAPF32,value>>2,count*3)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){GLctx.uniform3iv(GL.uniforms[location],HEAP32,value>>2,count*3)}function _emscripten_glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3uiv(location,count,value){GLctx.uniform3uiv(GL.uniforms[location],HEAPU32,value>>2,count*3)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){GLctx.uniform4fv(GL.uniforms[location],HEAPF32,value>>2,count*4)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){GLctx.uniform4iv(GL.uniforms[location],HEAP32,value>>2,count*4)}function _emscripten_glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4uiv(location,count,value){GLctx.uniform4uiv(GL.uniforms[location],HEAPU32,value>>2,count*4)}function _emscripten_glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){GLctx.uniformMatrix2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*4)}function _emscripten_glUniformMatrix2x3fv(location,count,transpose,value){GLctx.uniformMatrix2x3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix2x4fv(location,count,transpose,value){GLctx.uniformMatrix2x4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){GLctx.uniformMatrix3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*9)}function _emscripten_glUniformMatrix3x2fv(location,count,transpose,value){GLctx.uniformMatrix3x2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix3x4fv(location,count,transpose,value){GLctx.uniformMatrix3x4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*16)}function _emscripten_glUniformMatrix4x2fv(location,count,transpose,value){GLctx.uniformMatrix4x2fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix4x3fv(location,count,transpose,value){GLctx.uniformMatrix4x3fv(GL.uniforms[location],!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUnmapBuffer(target){if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glUnmapBuffer");return 0}var buffer=emscriptenWebGLGetBufferBinding(target);var mapping=GL.mappedBuffers[buffer];if(!mapping){GL.recordError(1282);err("buffer was never mapped in glUnmapBuffer");return 0}GL.mappedBuffers[buffer]=null;if(!(mapping.access&16))if(true){GLctx.bufferSubData(target,mapping.offset,HEAPU8,mapping.mem,mapping.length)}else{GLctx.bufferSubData(target,mapping.offset,HEAPU8.subarray(mapping.mem,mapping.mem+mapping.length))}_free(mapping.mem);return 1}function _emscripten_glUseProgram(program){GLctx.useProgram(GL.programs[program])}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx["vertexAttribI4i"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}function _emscripten_glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}function _emscripten_glVertexAttribIPointer(index,size,type,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=false;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribIPointer(index,size,type,stride,ptr)};return}cb.clientside=false;GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribPointer(index,size,type,normalized,stride,ptr)};return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_glWaitSync(sync,flags,timeoutLo,timeoutHi){GLctx.waitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getentropy(buffer,size){if(!_getentropy.randomDevice){_getentropy.randomDevice=getRandomDevice()}for(var i=0;i>0]=_getentropy.randomDevice()}return 0}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBeginQuery(target,id){GLctx["beginQuery"](target,GL.queries[id])}function _glBindBuffer(target,buffer){if(target==34962){GLctx.currentArrayBufferBinding=buffer}else if(target==34963){GLctx.currentElementArrayBufferBinding=buffer}if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx["bindBufferRange"](target,index,GL.buffers[buffer],offset,ptrsize)}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindSampler(unit,sampler){GLctx["bindSampler"](unit,GL.samplers[sampler])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao]);var ibo=GLctx.getParameter(34965);GLctx.currentElementArrayBufferBinding=ibo?ibo.name|0:0}function _glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _glBufferData(target,size,data,usage){if(true){if(data){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(true){GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClearBufferfi(x0,x1,x2,x3){GLctx["clearBufferfi"](x0,x1,x2,x3)}function _glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function _glClientWaitSync(sync,flags,timeoutLo,timeoutHi){return GLctx.clientWaitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentArrayBufferBinding)GLctx.currentArrayBufferBinding=0;if(id==GLctx.currentElementArrayBufferBinding)GLctx.currentElementArrayBufferBinding=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=false;GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()}function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){var cb=GL.currentContext.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)}function _glEndQuery(x0){GLctx["endQuery"](x0)}function _glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _glFinish(){GLctx["finish"]()}function _glFlush(){GLctx["flush"]()}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,35721);ptable.maxAttributeLength=0;for(var i=0;i>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,35382);ptable.maxUniformBlockNameLength=0;for(var i=0;i>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";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)}}function _glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _glGetUniformLocation(program,name){name=UTF8ToString(name);var arrayIndex=0;if(name[name.length-1]=="]"){var leftBrace=name.lastIndexOf("[");arrayIndex=name[leftBrace+1]!="]"?jstoi_q(name.slice(leftBrace+1)):0;name=name.slice(0,leftBrace)}var uniformInfo=GL.programInfos[program]&&GL.programInfos[program].uniforms[name];if(uniformInfo&&arrayIndex>=0&&arrayIndex>2]}GLctx["invalidateFramebuffer"](target,list)}function _glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.populateUniformTable(program)}function _glMapBufferRange(target,offset,length,access){if(access!=26&&access!=10){err("glMapBufferRange is only supported when access is MAP_WRITE|INVALIDATE_BUFFER");return 0}if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glMapBufferRange");return 0}var mem=_malloc(length);if(!mem)return 0;GL.mappedBuffers[emscriptenWebGLGetBufferBinding(target)]={offset:offset,length:length,mem:mem,access:access};return mem}function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _glUniform1i(location,v0){GLctx.uniform1i(GL.uniforms[location],v0)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUnmapBuffer(target){if(!emscriptenWebGLValidateMapBufferTarget(target)){GL.recordError(1280);err("GL_INVALID_ENUM in glUnmapBuffer");return 0}var buffer=emscriptenWebGLGetBufferBinding(target);var mapping=GL.mappedBuffers[buffer];if(!mapping){GL.recordError(1282);err("buffer was never mapped in glUnmapBuffer");return 0}GL.mappedBuffers[buffer]=null;if(!(mapping.access&16))if(true){GLctx.bufferSubData(target,mapping.offset,HEAPU8,mapping.mem,mapping.length)}else{GLctx.bufferSubData(target,mapping.offset,HEAPU8.subarray(mapping.mem,mapping.mem+mapping.length))}_free(mapping.mem);return 1}function _glUseProgram(program){GLctx.useProgram(GL.programs[program])}function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _glVertexAttribIPointer(index,size,type,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=false;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribIPointer(index,size,type,stride,ptr)};return}cb.clientside=false;GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribPointer(index,size,type,normalized,stride,ptr)};return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _glWaitSync(sync,flags,timeoutLo,timeoutHi){GLctx.waitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _pthread_create(){return 6}function _pthread_join(){return 28}function _setTempRet0($i){setTempRet0($i|0)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _sysconf(name){switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}setErrNo(28);return-1}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Ga":___sys_fcntl64,"Dg":___sys_ioctl,"Eg":___sys_open,"v":__embind_finalize_value_array,"z":__embind_finalize_value_object,"Hg":__embind_register_bool,"d":__embind_register_class,"l":__embind_register_class_class_function,"n":__embind_register_class_constructor,"a":__embind_register_class_function,"u":__embind_register_class_property,"Gg":__embind_register_emval,"i":__embind_register_enum,"b":__embind_register_enum_value,"Ia":__embind_register_float,"Ka":__embind_register_function,"D":__embind_register_integer,"x":__embind_register_memory_view,"Ja":__embind_register_std_string,"ja":__embind_register_std_wstring,"w":__embind_register_value_array,"f":__embind_register_value_array_element,"A":__embind_register_value_object,"e":__embind_register_value_object_field,"Ig":__embind_register_void,"q":__emval_as,"g":__emval_decref,"r":__emval_get_property,"ha":__emval_incref,"G":__emval_new_cstring,"p":__emval_run_destructors,"s":__emval_take_value,"c":_abort,"wg":_clock_gettime,"tg":_emscripten_asm_const_int,"$f":_emscripten_glActiveTexture,"_f":_emscripten_glAttachShader,"bd":_emscripten_glBeginQuery,"pg":_emscripten_glBeginQueryEXT,"Fc":_emscripten_glBeginTransformFeedback,"Zf":_emscripten_glBindAttribLocation,"Yf":_emscripten_glBindBuffer,"Cc":_emscripten_glBindBufferBase,"Dc":_emscripten_glBindBufferRange,"Xf":_emscripten_glBindFramebuffer,"Wf":_emscripten_glBindRenderbuffer,"Jb":_emscripten_glBindSampler,"Vf":_emscripten_glBindTexture,"Bb":_emscripten_glBindTransformFeedback,"Kc":_emscripten_glBindVertexArray,"hg":_emscripten_glBindVertexArrayOES,"Uf":_emscripten_glBlendColor,"Tf":_emscripten_glBlendEquation,"Sf":_emscripten_glBlendEquationSeparate,"Rf":_emscripten_glBlendFunc,"Qf":_emscripten_glBlendFuncSeparate,"Qc":_emscripten_glBlitFramebuffer,"Pf":_emscripten_glBufferData,"Of":_emscripten_glBufferSubData,"Nf":_emscripten_glCheckFramebufferStatus,"Mf":_emscripten_glClear,"fc":_emscripten_glClearBufferfi,"gc":_emscripten_glClearBufferfv,"ic":_emscripten_glClearBufferiv,"hc":_emscripten_glClearBufferuiv,"Lf":_emscripten_glClearColor,"Kf":_emscripten_glClearDepthf,"Jf":_emscripten_glClearStencil,"Tb":_emscripten_glClientWaitSync,"If":_emscripten_glColorMask,"Hf":_emscripten_glCompileShader,"Gf":_emscripten_glCompressedTexImage2D,"gd":_emscripten_glCompressedTexImage3D,"Ff":_emscripten_glCompressedTexSubImage2D,"fd":_emscripten_glCompressedTexSubImage3D,"dc":_emscripten_glCopyBufferSubData,"Ef":_emscripten_glCopyTexImage2D,"Df":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCopyTexSubImage3D,"Cf":_emscripten_glCreateProgram,"Bf":_emscripten_glCreateShader,"Af":_emscripten_glCullFace,"zf":_emscripten_glDeleteBuffers,"yf":_emscripten_glDeleteFramebuffers,"xf":_emscripten_glDeleteProgram,"dd":_emscripten_glDeleteQueries,"rg":_emscripten_glDeleteQueriesEXT,"wf":_emscripten_glDeleteRenderbuffers,"Lb":_emscripten_glDeleteSamplers,"vf":_emscripten_glDeleteShader,"Ub":_emscripten_glDeleteSync,"uf":_emscripten_glDeleteTextures,"Ab":_emscripten_glDeleteTransformFeedbacks,"Jc":_emscripten_glDeleteVertexArrays,"gg":_emscripten_glDeleteVertexArraysOES,"tf":_emscripten_glDepthFunc,"sf":_emscripten_glDepthMask,"rf":_emscripten_glDepthRangef,"qf":_emscripten_glDetachShader,"pf":_emscripten_glDisable,"of":_emscripten_glDisableVertexAttribArray,"nf":_emscripten_glDrawArrays,"Yb":_emscripten_glDrawArraysInstanced,"cg":_emscripten_glDrawArraysInstancedANGLE,"kb":_emscripten_glDrawArraysInstancedARB,"pd":_emscripten_glDrawArraysInstancedEXT,"lb":_emscripten_glDrawArraysInstancedNV,"Xc":_emscripten_glDrawBuffers,"nd":_emscripten_glDrawBuffersEXT,"dg":_emscripten_glDrawBuffersWEBGL,"mf":_emscripten_glDrawElements,"Xb":_emscripten_glDrawElementsInstanced,"bg":_emscripten_glDrawElementsInstancedANGLE,"ib":_emscripten_glDrawElementsInstancedARB,"jb":_emscripten_glDrawElementsInstancedEXT,"od":_emscripten_glDrawElementsInstancedNV,"ld":_emscripten_glDrawRangeElements,"lf":_emscripten_glEnable,"kf":_emscripten_glEnableVertexAttribArray,"ad":_emscripten_glEndQuery,"og":_emscripten_glEndQueryEXT,"Ec":_emscripten_glEndTransformFeedback,"Wb":_emscripten_glFenceSync,"jf":_emscripten_glFinish,"hf":_emscripten_glFlush,"Lc":_emscripten_glFlushMappedBufferRange,"gf":_emscripten_glFramebufferRenderbuffer,"ff":_emscripten_glFramebufferTexture2D,"Nc":_emscripten_glFramebufferTextureLayer,"ef":_emscripten_glFrontFace,"df":_emscripten_glGenBuffers,"bf":_emscripten_glGenFramebuffers,"ed":_emscripten_glGenQueries,"sg":_emscripten_glGenQueriesEXT,"af":_emscripten_glGenRenderbuffers,"Mb":_emscripten_glGenSamplers,"$e":_emscripten_glGenTextures,"zb":_emscripten_glGenTransformFeedbacks,"Ic":_emscripten_glGenVertexArrays,"fg":_emscripten_glGenVertexArraysOES,"cf":_emscripten_glGenerateMipmap,"_e":_emscripten_glGetActiveAttrib,"Ze":_emscripten_glGetActiveUniform,"_b":_emscripten_glGetActiveUniformBlockName,"$b":_emscripten_glGetActiveUniformBlockiv,"bc":_emscripten_glGetActiveUniformsiv,"Ye":_emscripten_glGetAttachedShaders,"Xe":_emscripten_glGetAttribLocation,"We":_emscripten_glGetBooleanv,"Nb":_emscripten_glGetBufferParameteri64v,"Ve":_emscripten_glGetBufferParameteriv,"Yc":_emscripten_glGetBufferPointerv,"Ue":_emscripten_glGetError,"Te":_emscripten_glGetFloatv,"rc":_emscripten_glGetFragDataLocation,"Se":_emscripten_glGetFramebufferAttachmentParameteriv,"Ob":_emscripten_glGetInteger64i_v,"Qb":_emscripten_glGetInteger64v,"Gc":_emscripten_glGetIntegeri_v,"Re":_emscripten_glGetIntegerv,"ob":_emscripten_glGetInternalformativ,"vb":_emscripten_glGetProgramBinary,"Pe":_emscripten_glGetProgramInfoLog,"Qe":_emscripten_glGetProgramiv,"jg":_emscripten_glGetQueryObjecti64vEXT,"lg":_emscripten_glGetQueryObjectivEXT,"ig":_emscripten_glGetQueryObjectui64vEXT,"_c":_emscripten_glGetQueryObjectuiv,"kg":_emscripten_glGetQueryObjectuivEXT,"$c":_emscripten_glGetQueryiv,"mg":_emscripten_glGetQueryivEXT,"Oe":_emscripten_glGetRenderbufferParameteriv,"Db":_emscripten_glGetSamplerParameterfv,"Eb":_emscripten_glGetSamplerParameteriv,"Me":_emscripten_glGetShaderInfoLog,"Le":_emscripten_glGetShaderPrecisionFormat,"Ke":_emscripten_glGetShaderSource,"Ne":_emscripten_glGetShaderiv,"Je":_emscripten_glGetString,"ec":_emscripten_glGetStringi,"Pb":_emscripten_glGetSynciv,"Ie":_emscripten_glGetTexParameterfv,"He":_emscripten_glGetTexParameteriv,"Ac":_emscripten_glGetTransformFeedbackVarying,"ac":_emscripten_glGetUniformBlockIndex,"cc":_emscripten_glGetUniformIndices,"Ee":_emscripten_glGetUniformLocation,"Ge":_emscripten_glGetUniformfv,"Fe":_emscripten_glGetUniformiv,"sc":_emscripten_glGetUniformuiv,"yc":_emscripten_glGetVertexAttribIiv,"xc":_emscripten_glGetVertexAttribIuiv,"Be":_emscripten_glGetVertexAttribPointerv,"De":_emscripten_glGetVertexAttribfv,"Ce":_emscripten_glGetVertexAttribiv,"Ae":_emscripten_glHint,"sb":_emscripten_glInvalidateFramebuffer,"rb":_emscripten_glInvalidateSubFramebuffer,"ze":_emscripten_glIsBuffer,"ye":_emscripten_glIsEnabled,"xe":_emscripten_glIsFramebuffer,"we":_emscripten_glIsProgram,"cd":_emscripten_glIsQuery,"qg":_emscripten_glIsQueryEXT,"ve":_emscripten_glIsRenderbuffer,"Kb":_emscripten_glIsSampler,"ue":_emscripten_glIsShader,"Vb":_emscripten_glIsSync,"te":_emscripten_glIsTexture,"yb":_emscripten_glIsTransformFeedback,"Hc":_emscripten_glIsVertexArray,"eg":_emscripten_glIsVertexArrayOES,"se":_emscripten_glLineWidth,"re":_emscripten_glLinkProgram,"Mc":_emscripten_glMapBufferRange,"xb":_emscripten_glPauseTransformFeedback,"qe":_emscripten_glPixelStorei,"pe":_emscripten_glPolygonOffset,"ub":_emscripten_glProgramBinary,"tb":_emscripten_glProgramParameteri,"ng":_emscripten_glQueryCounterEXT,"md":_emscripten_glReadBuffer,"oe":_emscripten_glReadPixels,"ne":_emscripten_glReleaseShaderCompiler,"me":_emscripten_glRenderbufferStorage,"Pc":_emscripten_glRenderbufferStorageMultisample,"wb":_emscripten_glResumeTransformFeedback,"le":_emscripten_glSampleCoverage,"Gb":_emscripten_glSamplerParameterf,"Fb":_emscripten_glSamplerParameterfv,"Ib":_emscripten_glSamplerParameteri,"Hb":_emscripten_glSamplerParameteriv,"ke":_emscripten_glScissor,"je":_emscripten_glShaderBinary,"ie":_emscripten_glShaderSource,"he":_emscripten_glStencilFunc,"ge":_emscripten_glStencilFuncSeparate,"fe":_emscripten_glStencilMask,"ee":_emscripten_glStencilMaskSeparate,"de":_emscripten_glStencilOp,"ce":_emscripten_glStencilOpSeparate,"be":_emscripten_glTexImage2D,"kd":_emscripten_glTexImage3D,"ae":_emscripten_glTexParameterf,"$d":_emscripten_glTexParameterfv,"_d":_emscripten_glTexParameteri,"Zd":_emscripten_glTexParameteriv,"qb":_emscripten_glTexStorage2D,"pb":_emscripten_glTexStorage3D,"Yd":_emscripten_glTexSubImage2D,"jd":_emscripten_glTexSubImage3D,"Bc":_emscripten_glTransformFeedbackVaryings,"Xd":_emscripten_glUniform1f,"Wd":_emscripten_glUniform1fv,"Vd":_emscripten_glUniform1i,"Ud":_emscripten_glUniform1iv,"qc":_emscripten_glUniform1ui,"mc":_emscripten_glUniform1uiv,"Td":_emscripten_glUniform2f,"Sd":_emscripten_glUniform2fv,"Rd":_emscripten_glUniform2i,"Qd":_emscripten_glUniform2iv,"pc":_emscripten_glUniform2ui,"lc":_emscripten_glUniform2uiv,"Pd":_emscripten_glUniform3f,"Od":_emscripten_glUniform3fv,"Md":_emscripten_glUniform3i,"Ld":_emscripten_glUniform3iv,"oc":_emscripten_glUniform3ui,"kc":_emscripten_glUniform3uiv,"Kd":_emscripten_glUniform4f,"Jd":_emscripten_glUniform4fv,"Id":_emscripten_glUniform4i,"Hd":_emscripten_glUniform4iv,"nc":_emscripten_glUniform4ui,"jc":_emscripten_glUniform4uiv,"Zb":_emscripten_glUniformBlockBinding,"Gd":_emscripten_glUniformMatrix2fv,"Wc":_emscripten_glUniformMatrix2x3fv,"Uc":_emscripten_glUniformMatrix2x4fv,"Fd":_emscripten_glUniformMatrix3fv,"Vc":_emscripten_glUniformMatrix3x2fv,"Sc":_emscripten_glUniformMatrix3x4fv,"Ed":_emscripten_glUniformMatrix4fv,"Tc":_emscripten_glUniformMatrix4x2fv,"Rc":_emscripten_glUniformMatrix4x3fv,"Zc":_emscripten_glUnmapBuffer,"Dd":_emscripten_glUseProgram,"Cd":_emscripten_glValidateProgram,"Bd":_emscripten_glVertexAttrib1f,"Ad":_emscripten_glVertexAttrib1fv,"zd":_emscripten_glVertexAttrib2f,"yd":_emscripten_glVertexAttrib2fv,"xd":_emscripten_glVertexAttrib3f,"wd":_emscripten_glVertexAttrib3fv,"vd":_emscripten_glVertexAttrib4f,"ud":_emscripten_glVertexAttrib4fv,"Cb":_emscripten_glVertexAttribDivisor,"ag":_emscripten_glVertexAttribDivisorANGLE,"mb":_emscripten_glVertexAttribDivisorARB,"qd":_emscripten_glVertexAttribDivisorEXT,"nb":_emscripten_glVertexAttribDivisorNV,"wc":_emscripten_glVertexAttribI4i,"uc":_emscripten_glVertexAttribI4iv,"vc":_emscripten_glVertexAttribI4ui,"tc":_emscripten_glVertexAttribI4uiv,"zc":_emscripten_glVertexAttribIPointer,"td":_emscripten_glVertexAttribPointer,"rd":_emscripten_glViewport,"Sb":_emscripten_glWaitSync,"ug":_emscripten_memcpy_big,"vg":_emscripten_resize_heap,"zg":_environ_get,"Ag":_environ_sizes_get,"ia":_fd_close,"Fg":_fd_read,"fb":_fd_seek,"Ha":_fd_write,"xg":_getentropy,"h":_glActiveTexture,"T":_glAttachShader,"Xg":_glBeginQuery,"C":_glBindBuffer,"ra":_glBindBufferRange,"m":_glBindFramebuffer,"H":_glBindRenderbuffer,"U":_glBindSampler,"k":_glBindTexture,"N":_glBindVertexArray,"Tg":_glBlendEquationSeparate,"Sg":_glBlendFuncSeparate,"pa":_glBlitFramebuffer,"M":_glBufferData,"Y":_glBufferSubData,"Mg":_glClearBufferfi,"O":_glClearBufferfv,"Lg":_glClearBufferiv,"gb":_glClientWaitSync,"la":_glColorMask,"ba":_glCompileShader,"Ma":_glCompressedTexSubImage2D,"La":_glCompressedTexSubImage3D,"Aa":_glCreateProgram,"da":_glCreateShader,"ka":_glCullFace,"Ca":_glDeleteBuffers,"S":_glDeleteFramebuffers,"$":_glDeleteProgram,"_a":_glDeleteQueries,"E":_glDeleteRenderbuffers,"na":_glDeleteSamplers,"L":_glDeleteShader,"F":_glDeleteSync,"J":_glDeleteTextures,"Rb":_glDeleteVertexArrays,"Rg":_glDepthFunc,"Qg":_glDepthMask,"Ya":_glDepthRangef,"_":_glDetachShader,"j":_glDisable,"sa":_glDisableVertexAttribArray,"Qa":_glDrawArrays,"Sa":_glDrawBuffers,"Ta":_glDrawRangeElements,"B":_glEnable,"ta":_glEnableVertexAttribArray,"Wg":_glEndQuery,"Z":_glFenceSync,"Da":_glFinish,"Ea":_glFlush,"P":_glFramebufferRenderbuffer,"Q":_glFramebufferTexture2D,"Pa":_glFramebufferTextureLayer,"Ug":_glFrontFace,"W":_glGenBuffers,"R":_glGenFramebuffers,"$a":_glGenQueries,"ga":_glGenRenderbuffers,"oa":_glGenSamplers,"I":_glGenTextures,"eb":_glGenVertexArrays,"Za":_glGenerateMipmap,"Ra":_glGetError,"sd":_glGetFloatv,"o":_glGetIntegerv,"bb":_glGetProgramInfoLog,"ya":_glGetProgramiv,"Vg":_glGetQueryObjectuiv,"ab":_glGetShaderInfoLog,"aa":_glGetShaderiv,"V":_glGetString,"Nd":_glGetStringi,"db":_glGetUniformBlockIndex,"xa":_glGetUniformLocation,"Yg":_glGetVertexAttribiv,"hd":_glHint,"va":_glInvalidateFramebuffer,"ma":_glIsEnabled,"za":_glLinkProgram,"Kg":_glMapBufferRange,"Oc":_glPixelStorei,"Ua":_glPolygonOffset,"qa":_glReadPixels,"ea":_glRenderbufferStorage,"fa":_glRenderbufferStorageMultisample,"t":_glSamplerParameteri,"Ng":_glScissor,"ca":_glShaderSource,"y":_glTexParameteri,"Pg":_glTexStorage2D,"Og":_glTexStorage3D,"Oa":_glTexSubImage2D,"Na":_glTexSubImage3D,"wa":_glUniform1i,"cb":_glUniformBlockBinding,"Jg":_glUnmapBuffer,"K":_glUseProgram,"Va":_glVertexAttrib4f,"Wa":_glVertexAttribI4ui,"Xa":_glVertexAttribIPointer,"ua":_glVertexAttribPointer,"X":_glViewport,"hb":_glWaitSync,"Fa":_pthread_create,"Cg":_pthread_join,"Ba":_setTempRet0,"yg":_strftime_l,"Bg":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$g"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ah"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["bh"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ch"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["dh"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["eh"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["fh"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["gh"]).apply(null,arguments)};var dynCall_iiij=Module["dynCall_iiij"]=function(){return(dynCall_iiij=Module["dynCall_iiij"]=Module["asm"]["hh"]).apply(null,arguments)};var dynCall_vij=Module["dynCall_vij"]=function(){return(dynCall_vij=Module["dynCall_vij"]=Module["asm"]["ih"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["jh"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["kh"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["lh"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["mh"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); return Filament.ready diff --git a/docs/remote/filament.wasm b/docs/remote/filament.wasm index 4c3d53e6f6358e7889639b5742063a1d86426eaa..d50836640b575ea0fd9e5572496b489dd4e18ea3 100755 GIT binary patch delta 220356 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�m6TZp|4q~F1R?*i`u?*ktIyMPY? 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 HYcu{2I;3`T delta 216094 zcmbrm2YggT*FSz|=5F6j?(QbplENl{hK>zXP`Mx=B8rO2W2a-Vp@8~WQV2aj-~vM@ z^bWxQi}c=+&_f9|NSBUu{@=NGL-FzXz3=<^Z*up{oS8W@bLN~gXUg5>(@vA|eNGdn z)Z*JOh$Km5v2DNr=lZfglb=5&>G*P_Kln(W()4ul%cn9>KT8At8mSETX!3TacSTm#eJ4W$$TS(P_e6NM{EI@Okz`qRe zKGM>G{iKCx5-n#GY|&D$zGX|v3}h<S{#nbFX943@mxQfKUY2C?P_^ZsR&d*8@e`xAp&IRo3GmCp5+t#m%O zYNhkCwSjD7#M&BZ?OI8dw1&3o=|W__GLpVFGIngG57sxW^nv`=$lu98b~cb*4Dg*% z?t26LU}X8X0aOE7x0OB~^$gN48)@~8v<9stOEXm8u$A7=SB%6)t@HtT)u^Je0bVn* zG%>Qg-bxplHw-dOjVx~(vA0@De(hCzg>)f)|1y%^H;R2?P%dZ0TC~=?*|N1>d8^iX zZ(Fz4D{o`O+8Ur;Yh8!hx7Ky&GXt4s#5x#hpSPC$sPBu`x-5PPnnE+aGO~W%S|5jw zt@XkA#z1~+#5x(V&PKs5M(n%Ry1IRD#C~WkRROVo8!@%DR0grSMyy_IDHgGpjZV}z zKm$P@}mNCPwUaBj+2fb@6FxAm22qf6IuyZGdJ5c*khW zyGHCiqfO2ASUUZe(YE&uMtx%BDQAEdZ4BnO5lTc`wb41-x{c1DHbz?8Hu{LPYom`( zdn4^LBQ4E{b!ekA_H!flMH}fm5c|@IJ^oc2UCqC4qYGfiHo77E#vuBwL9|mFshl>% zS-qUF0CkO|dPWT|8=$@c8nls!cG?-QYfIxcx{SPL)YHTOuN&YEBY#r^ylEicGGcEV z6*M!D?-;Rn+vryJJtIqV1NkphhZenWgMn-{Gjixo$V~y!+ zZKZN3(WI@^0N`~a&l?8OrbgB`4e*u$-ZrXlW`K8$0`H=@wk0b5bqPd1F?wCj$kC#m z&dHYTbS}4QXPD4-hGZJZw(ayjv@>Gu4e%MtX*Hr#D(ME*zS)BiF^YX_#5w_J zU8DCseJs8(o-&ikVlokGqCUn5GxsAzwo{3jn3bAklg}ba%te`GVm1~?enHDs;;ICh zY?c`_K~`j$kdN#EY9SH{)+e%Lmd%pgOo*w1i4jtRb=Gz$)zTTVN#)D*Cb6-W3bL8X zGLt0P%&2TNW8}Ym^UaTCYLSUmwxXyE=f`fhG15hnEm6c_Ba-~gGtq9D1r@~+G(}Z# zTTFHnbrFWlX2PU*dZB6tdRD8&LP0`wMV3G)_yUuqbS8BtGOOl1M`b;7wNis9pUd{v{fnDe(I{dWF3htn9 zvN@N$8?;FdDm`U2o1-PcFk*5@AS&43a7RHD{rYNOktP-Ve1CYu-yI?b|G z7ENIIfKRVj@&6>E$^F3%#u?!dp`sN zBq5s^2x>Rdha^knZMiAL%l-~yZ?tZjXs(fLGSyCf zH;33$Q>pQ>*yJaykJ%k>$!LT5OOxy*OwJ(WB^qy{Xjg1G3r3%yduX$a(ZE0Jq;-u+ ziBE*Yp$j(2lww61K4_sXZL+pJ=6z-|Q!O#JeBdc4m-I8G`WT~t5C`f)K>INEnRF-_ zR7_$&lo6%D3jnhiOXPAwxiFm2FbqQs%8M$P&O?!zQ7J+4Q>1~2_!mtS&7dZkLid(&ZXip{)!WuQSVRN=M6ttO?>m2ueRf z?sR5LF3~qI#`qAM&2Ed2kB>wVK$BjEArVbfO=t^*pUL7+W;QSa1^|pe16g~U9d^zI z>3~iVXd(vKh6RkU6Btx6nrJqZ9kfjZU67c?B!`k

|o^A|`xX&~s{mhCzpH%q4mX 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 z%0D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 this.mouseButtonEvents.push(false)); - this.canvas.addEventListener("pointerdown", e => this.mouseButtonEvents.push(true)); + + this.canvas.addEventListener("pointerup", e => this.mouseButtonEvents.push(null)); + this.canvas.addEventListener("pointerdown", e => this.mouseButtonEvents.push(e)); this.canvas.addEventListener("mousewheel", e => this.mouseWheelY = e.deltaY / 8); + this.canvas.addEventListener("contextmenu", event => event.preventDefault()); + + document.addEventListener("keydown", e => this.simpleViewer.keyDownEvent(e.keyCode)); + document.addEventListener("keyup", e => this.simpleViewer.keyUpEvent(e.keyCode)); + document.addEventListener("keypress", e => this.simpleViewer.keyPressEvent(e.charCode)); + const resize = () => { const dpr = window.devicePixelRatio; const width = this.canvas.clientWidth * dpr; @@ -263,6 +270,8 @@ class App { } const mouseWheel = this.mouseWheelY; this.mouseWheelY = 0; + this.simpleViewer.mouseEvent(this.mouseX, this.mouseY, !!this.mouseButton, + mouseWheel, this.mouseButton && this.mouseButton.ctrlKey); // If there's no connection, let Filament clear the canvas, but do not render the UI view. if (!connection) { @@ -276,8 +285,7 @@ class App { // Draw the UI and potentially mutate the settings object. const deltaTime = 1.0 / 60.0; - this.simpleViewer.renderUserInterface(deltaTime, this.uiview, window.devicePixelRatio, - this.mouseX, this.mouseY, this.mouseButton, mouseWheel); + this.simpleViewer.renderUserInterface(deltaTime, this.uiview, window.devicePixelRatio); // Check if the user has changed any settings. const settingsJson = this.serializer.writeJson(this.simpleViewer.getSettings()).slice(); diff --git a/libs/viewer/include/viewer/SimpleViewer.h b/libs/viewer/include/viewer/SimpleViewer.h index 7f5e7648f2..6573034321 100644 --- a/libs/viewer/include/viewer/SimpleViewer.h +++ b/libs/viewer/include/viewer/SimpleViewer.h @@ -122,8 +122,18 @@ public: * its callback. Note that the first call might be slower since it requires the creation of the * internal ImGuiHelper instance. */ - void renderUserInterface(float timeStepInSeconds, filament::View* guiView, float pixelRatio, - float mouseX, float mouseY, bool mouseButton, float mouseWheelY); + void renderUserInterface(float timeStepInSeconds, filament::View* guiView, float pixelRatio); + + /** + * Event-passing methods, useful only when SimpleViewer manages its own instance of ImGuiHelper. + * The key codes used in these methods are just normal ASCII/ANSI codes. + * @{ + */ + void mouseEvent(float mouseX, float mouseY, bool mouseButton, float mouseWheelY, bool control); + void keyDownEvent(int keyCode); + void keyUpEvent(int keyCode); + void keyPressEvent(int charCode); + /** @}*/ /** * Retrieves the current width of the ImGui "window" which we are using as a sidebar. diff --git a/libs/viewer/src/SimpleViewer.cpp b/libs/viewer/src/SimpleViewer.cpp index 1233cec56e..e0af8cf735 100644 --- a/libs/viewer/src/SimpleViewer.cpp +++ b/libs/viewer/src/SimpleViewer.cpp @@ -418,34 +418,79 @@ void SimpleViewer::applyAnimation(double currentTime) { mAnimator->updateBoneMatrices(); } -void SimpleViewer::renderUserInterface(float timeStepInSeconds, View* guiView, float pixelRatio, - float mouseX, float mouseY, bool mouseButton, float mouseWheelY) { +void SimpleViewer::renderUserInterface(float timeStepInSeconds, View* guiView, float pixelRatio) { if (mImGuiHelper == nullptr) { mImGuiHelper = new ImGuiHelper(mEngine, guiView, ""); + auto& io = ImGui::GetIO(); + + // The following table uses normal ANSI codes, which is consistent with the keyCode that + // comes from a web "keydown" event. + io.KeyMap[ImGuiKey_Tab] = 9; + io.KeyMap[ImGuiKey_LeftArrow] = 37; + io.KeyMap[ImGuiKey_RightArrow] = 39; + io.KeyMap[ImGuiKey_UpArrow] = 38; + io.KeyMap[ImGuiKey_DownArrow] = 40; + io.KeyMap[ImGuiKey_Home] = 36; + io.KeyMap[ImGuiKey_End] = 35; + io.KeyMap[ImGuiKey_Delete] = 46; + io.KeyMap[ImGuiKey_Backspace] = 8; + io.KeyMap[ImGuiKey_Enter] = 13; + io.KeyMap[ImGuiKey_Escape] = 27; + io.KeyMap[ImGuiKey_A] = 65; + io.KeyMap[ImGuiKey_C] = 67; + io.KeyMap[ImGuiKey_V] = 86; + io.KeyMap[ImGuiKey_X] = 88; + io.KeyMap[ImGuiKey_Y] = 89; + io.KeyMap[ImGuiKey_Z] = 90; + // TODO: this is not the best way to handle high DPI in ImGui, but it is fine when using the // proggy font. Users need to refresh their window when dragging between displays with // different pixel ratios. - ImGui::GetIO().FontGlobalScale = pixelRatio; + io.FontGlobalScale = pixelRatio; ImGui::GetStyle().ScaleAllSizes(pixelRatio); } const auto size = guiView->getViewport(); mImGuiHelper->setDisplaySize(size.width, size.height, 1, 1); - ImGuiIO& io = ImGui::GetIO(); - io.MousePos.x = mouseX; - io.MousePos.y = mouseY; - io.MouseWheel += mouseWheelY; - io.MouseDown[0] = mouseButton; - io.MouseDown[1] = false; - io.MouseDown[2] = false; - mImGuiHelper->render(timeStepInSeconds, [this](Engine*, View*) { this->updateUserInterface(); }); } +void SimpleViewer::mouseEvent(float mouseX, float mouseY, bool mouseButton, float mouseWheelY, + bool control) { + if (mImGuiHelper) { + ImGuiIO& io = ImGui::GetIO(); + io.MousePos.x = mouseX; + io.MousePos.y = mouseY; + io.MouseWheel += mouseWheelY; + io.MouseDown[0] = mouseButton != 0; + io.MouseDown[1] = false; + io.MouseDown[2] = false; + io.KeyCtrl = control; + } +} + +void SimpleViewer::keyDownEvent(int keyCode) { + if (mImGuiHelper && keyCode < IM_ARRAYSIZE(ImGui::GetIO().KeysDown)) { + ImGui::GetIO().KeysDown[keyCode] = true; + } +} + +void SimpleViewer::keyUpEvent(int keyCode) { + if (mImGuiHelper && keyCode < IM_ARRAYSIZE(ImGui::GetIO().KeysDown)) { + ImGui::GetIO().KeysDown[keyCode] = false; + } +} + +void SimpleViewer::keyPressEvent(int charCode) { + if (mImGuiHelper) { + ImGui::GetIO().AddInputCharacter(charCode); + } +} + void SimpleViewer::updateUserInterface() { using namespace filament; diff --git a/web/filament-js/jsbindings.cpp b/web/filament-js/jsbindings.cpp index f44c9374e4..5b34a6dc3a 100644 --- a/web/filament-js/jsbindings.cpp +++ b/web/filament-js/jsbindings.cpp @@ -1855,7 +1855,11 @@ class_("JsonSerializer") class_("SimpleViewer") .constructor() .function("renderUserInterface", &SimpleViewer::renderUserInterface, allow_raw_pointers()) - .function("getSettings", &SimpleViewer::getSettings); + .function("getSettings", &SimpleViewer::getSettings) + .function("mouseEvent", &SimpleViewer::mouseEvent) + .function("keyDownEvent", &SimpleViewer::keyDownEvent) + .function("keyUpEvent", &SimpleViewer::keyUpEvent) + .function("keyPressEvent", &SimpleViewer::keyPressEvent); } // EMSCRIPTEN_BINDINGS diff --git a/web/samples/remote.html b/web/samples/remote.html index d9390231be..0488dafcde 100644 --- a/web/samples/remote.html +++ b/web/samples/remote.html @@ -135,7 +135,7 @@ class App { // In the future we might want to draw stuff in the central 3D viewport. const kInitialSidebarWidth = this.canvas.clientWidth * window.devicePixelRatio; - // Clear the central 3D viewport to light gray, whicht is not visible by default. + // Clear the central 3D viewport to light gray, which is not visible by default. const L = 189 / 255; const kBackgroundColor = [L, L, L, 1]; this.renderer.setClearOptions({clearColor: kBackgroundColor, clear: true}); @@ -145,7 +145,7 @@ class App { this.mouseX = -1; this.mouseY = -1; - this.mouseButton = false; + this.mouseButton = null; this.mouseButtonEvents = []; this.mouseWheelY = 0; @@ -155,10 +155,17 @@ class App { this.mouseX = e.offsetX * window.devicePixelRatio; this.mouseY = e.offsetY * window.devicePixelRatio; }); - this.canvas.addEventListener("pointerup", e => this.mouseButtonEvents.push(false)); - this.canvas.addEventListener("pointerdown", e => this.mouseButtonEvents.push(true)); + + this.canvas.addEventListener("pointerup", e => this.mouseButtonEvents.push(null)); + this.canvas.addEventListener("pointerdown", e => this.mouseButtonEvents.push(e)); this.canvas.addEventListener("mousewheel", e => this.mouseWheelY = e.deltaY / 8); + this.canvas.addEventListener("contextmenu", event => event.preventDefault()); + + document.addEventListener("keydown", e => this.simpleViewer.keyDownEvent(e.keyCode)); + document.addEventListener("keyup", e => this.simpleViewer.keyUpEvent(e.keyCode)); + document.addEventListener("keypress", e => this.simpleViewer.keyPressEvent(e.charCode)); + const resize = () => { const dpr = window.devicePixelRatio; const width = this.canvas.clientWidth * dpr; @@ -263,6 +270,8 @@ class App { } const mouseWheel = this.mouseWheelY; this.mouseWheelY = 0; + this.simpleViewer.mouseEvent(this.mouseX, this.mouseY, !!this.mouseButton, + mouseWheel, this.mouseButton && this.mouseButton.ctrlKey); // If there's no connection, let Filament clear the canvas, but do not render the UI view. if (!connection) { @@ -276,8 +285,7 @@ class App { // Draw the UI and potentially mutate the settings object. const deltaTime = 1.0 / 60.0; - this.simpleViewer.renderUserInterface(deltaTime, this.uiview, window.devicePixelRatio, - this.mouseX, this.mouseY, this.mouseButton, mouseWheel); + this.simpleViewer.renderUserInterface(deltaTime, this.uiview, window.devicePixelRatio); // Check if the user has changed any settings. const settingsJson = this.serializer.writeJson(this.simpleViewer.getSettings()).slice();