From 9da557c9c36bd8e95e30ab38580c177f8414768a Mon Sep 17 00:00:00 2001 From: cx20 Date: Tue, 22 Oct 2024 01:24:06 +0900 Subject: [PATCH] Update Filament to latest --- libs/filament/v1.55.0/filament.js | 2 +- libs/filament/v1.55.0/filament.wasm | Bin 3606925 -> 3607071 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/filament/v1.55.0/filament.js b/libs/filament/v1.55.0/filament.js index ad128c75..2a08b22e 100644 --- a/libs/filament/v1.55.0/filament.js +++ b/libs/filament/v1.55.0/filament.js @@ -6,7 +6,7 @@ var Filament = (() => { 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=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};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",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}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}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 __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="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"]["sc"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["uc"];addOnInit(Module["asm"]["tc"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).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)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}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={1680548:()=>{const options=window.filament_glOptions;const context=window.filament_glContext;const handle=GL.registerContext(context,options);window.filament_contextHandle=handle;GL.makeContextCurrent(handle)},1680762:()=>{const handle=window.filament_contextHandle;GL.makeContextCurrent(handle)},1680843:($0,$1,$2,$3,$4,$5)=>{const fn=Emval.toValue($0);fn({"renderable":Emval.toValue($1),"depth":$2,"fragCoords":[$3,$4,$5]})}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(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.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;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){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!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:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,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:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+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)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw 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"](HEAP32[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}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{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_array(rawTupleType){var reg=tupleRegistrations[rawTupleType];delete tupleRegistrations[rawTupleType];var elements=reg.elements;var elementsLength=elements.length;var elementTypes=elements.map(function(elt){return elt.getterReturnType}).concat(elements.map(function(elt){return elt.setterArgumentType}));var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;whenDependentTypesAreResolved([rawTupleType],elementTypes,function(elementTypes){elements.forEach((elt,i)=>{var getterReturnType=elementTypes[i];var getter=elt.getter;var getterContext=elt.getterContext;var setterArgumentType=elementTypes[i+elementsLength];var setter=elt.setter;var setterContext=elt.setterContext;elt.read=ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))};elt.write=(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}});return[{name:reg.name,"fromWireType":function(ptr){var rv=new Array(elementsLength);for(var i=0;ifield.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: "'+fieldName+'"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>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 finalizationRegistry=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 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)}var registeredPointers={};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}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;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 attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.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}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(){}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 "'+embindRepr(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 "'+embindRepr(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.toHandle(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 "'+embindRepr(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 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){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2])}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)}if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}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);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]=()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){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;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(humanName+' with invalid "this": '+this_)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(humanName+' incompatible with "this" of type '+this_.constructor.name)}if(!this_.$$.ptr){throwBindingError("cannot call emscripten binding method "+humanName+" on deleted object")}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=classType.name+"."+fieldName;var desc={get:function(){throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])}}else{desc.set=v=>{throwBindingError(humanName+" is a read-only property")}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&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{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this["fromWireType"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this["fromWireType"](heap[pointer>>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 embindRepr(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){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=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"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 payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+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,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+i]=charCode}}else{for(var i=0;iHEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>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 __emscripten_date_now(){return Date.now()}function __emscripten_err(str){err(UTF8ToString(str))}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_out(str){out(UTF8ToString(str))}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAPU32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_get_property(handle,key){handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(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)}return symbol}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)}function _abort(){abort("")}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function getHeapMax(){return 2147483648}function _emscripten_get_heap_max(){return getHeapMax()}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.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))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw 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 __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:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],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){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _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 _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}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 _glBindBufferBase(target,index,buffer){GLctx["bindBufferBase"](target,index,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&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(true){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}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 _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glClearStencil(x0){GLctx["clearStencil"](x0)}function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}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||!imageSize){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}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 _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}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}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)}var tempFixedLengthArray=[];function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}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 _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}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 __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}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 _glGetBufferSubData(target,offset,size,data){if(!data){GL.recordError(1281);return}size&&GLctx["getBufferSubData"](target,offset,HEAPU8,data,size)}function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}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 _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}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}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}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 stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}GLctx["invalidateFramebuffer"](target,list)}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}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 _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 _glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}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 _glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}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 _glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _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 webglGetUniformLocation(location){var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}function _glUniform1fv(location,count,value){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count)}function _glUniform2fv(location,count,value){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2)}function _glUniform2iv(location,count,value){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2)}function _glUniform3fv(location,count,value){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3)}function _glUniform3iv(location,count,value){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3)}function _glUniform4fv(location,count,value){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4)}function _glUniform4iv(location,count,value){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUniformMatrix3fv(location,count,transpose,value){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9)}function _glUniformMatrix4fv(location,count,transpose,value){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16)}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){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=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 _setTempRet0(val){setTempRet0(val)}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 days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();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":___syscall_fcntl64,"Lb":___syscall_ioctl,"Mb":___syscall_openat,"Hb":___syscall_stat64,"x":__embind_finalize_value_array,"l":__embind_finalize_value_object,"Bb":__embind_register_bigint,"Sb":__embind_register_bool,"f":__embind_register_class,"k":__embind_register_class_class_function,"n":__embind_register_class_constructor,"a":__embind_register_class_function,"w":__embind_register_class_property,"Rb":__embind_register_emval,"j":__embind_register_enum,"b":__embind_register_enum_value,"Ia":__embind_register_float,"da":__embind_register_function,"B":__embind_register_integer,"q":__embind_register_memory_view,"Ha":__embind_register_std_string,"pa":__embind_register_std_wstring,"y":__embind_register_value_array,"h":__embind_register_value_array_element,"m":__embind_register_value_object,"d":__embind_register_value_object_field,"Tb":__embind_register_void,"Pb":__emscripten_date_now,"zb":__emscripten_err,"Ob":__emscripten_get_now_is_monotonic,"yb":__emscripten_out,"s":__emval_as,"i":__emval_decref,"t":__emval_get_property,"ca":__emval_incref,"G":__emval_new_cstring,"r":__emval_run_destructors,"u":__emval_take_value,"c":_abort,"qa":_emscripten_asm_const_int,"Gb":_emscripten_get_heap_max,"Nb":_emscripten_get_now,"Qb":_emscripten_memcpy_big,"Fb":_emscripten_resize_heap,"Ib":_environ_get,"Jb":_environ_sizes_get,"oa":_fd_close,"Kb":_fd_read,"Ab":_fd_seek,"Fa":_fd_write,"Db":_getentropy,"e":_glActiveTexture,"na":_glAttachShader,"kb":_glBeginQuery,"sb":_glBindAttribLocation,"o":_glBindBuffer,"va":_glBindBufferBase,"Wa":_glBindBufferRange,"P":_glBindFramebuffer,"Oa":_glBindRenderbuffer,"_":_glBindSampler,"g":_glBindTexture,"gb":_glBindVertexArray,"xa":_glBlendEquationSeparate,"wa":_glBlendFuncSeparate,"fa":_glBlitFramebuffer,"E":_glBufferData,"ga":_glBufferSubData,"Xb":_glClear,"ac":_glClearBufferfi,"C":_glClearBufferfv,"$b":_glClearBufferiv,"_b":_glClearColor,"Zb":_glClearDepthf,"Yb":_glClearStencil,"Cb":_glClientWaitSync,"la":_glColorMask,"tb":_glCompileShader,"La":_glCompressedTexSubImage2D,"Ka":_glCompressedTexSubImage3D,"lc":_glCopyBufferSubData,"Ea":_glCreateProgram,"vb":_glCreateShader,"ya":_glCullFace,"ia":_glDeleteBuffers,"U":_glDeleteFramebuffers,"$":_glDeleteProgram,"jb":_glDeleteQueries,"Ta":_glDeleteRenderbuffers,"Aa":_glDeleteSamplers,"R":_glDeleteShader,"Qa":_glDeleteSync,"Ua":_glDeleteTextures,"hb":_glDeleteVertexArrays,"ma":_glDepthFunc,"ka":_glDepthMask,"sa":_glDepthRangef,"S":_glDetachShader,"p":_glDisable,"dc":_glDisableVertexAttribArray,"kc":_glDrawBuffers,"Ja":_glDrawElements,"Ra":_glDrawElementsInstanced,"v":_glEnable,"ec":_glEnableVertexAttribArray,"lb":_glEndQuery,"ha":_glFenceSync,"Da":_glFinish,"ob":_glFlush,"H":_glFramebufferRenderbuffer,"A":_glFramebufferTexture2D,"L":_glFramebufferTextureLayer,"za":_glFrontFace,"X":_glGenBuffers,"ea":_glGenFramebuffers,"ib":_glGenQueries,"ra":_glGenRenderbuffers,"Ca":_glGenSamplers,"M":_glGenTextures,"fb":_glGenVertexArrays,"nc":_glGenerateMipmap,"Wb":_glGetBufferSubData,"aa":_glGetError,"eb":_glGetFloatv,"z":_glGetIntegerv,"wb":_glGetProgramBinary,"pb":_glGetProgramInfoLog,"T":_glGetProgramiv,"mb":_glGetQueryObjectuiv,"qb":_glGetShaderInfoLog,"Q":_glGetShaderiv,"J":_glGetString,"cb":_glGetUniformBlockIndex,"W":_glGetUniformLocation,"db":_glHint,"nb":_glInvalidateFramebuffer,"rb":_glLinkProgram,"Vb":_glMapBufferRange,"N":_glPixelStorei,"ja":_glPolygonOffset,"xb":_glProgramBinary,"Sa":_glReadPixels,"bc":_glRenderbufferStorage,"cc":_glRenderbufferStorageMultisample,"Ba":_glSamplerParameterf,"I":_glSamplerParameteri,"ua":_glScissor,"ub":_glShaderSource,"Z":_glStencilFuncSeparate,"F":_glStencilMaskSeparate,"Y":_glStencilOpSeparate,"K":_glTexImage2D,"Va":_glTexParameterf,"D":_glTexParameteri,"jc":_glTexStorage2D,"Pa":_glTexStorage3D,"Na":_glTexSubImage2D,"Ma":_glTexSubImage3D,"mc":_glUniform1f,"ab":_glUniform1fv,"V":_glUniform1i,"Ya":_glUniform1iv,"$a":_glUniform2fv,"Xa":_glUniform2iv,"_a":_glUniform3fv,"rc":_glUniform3iv,"Za":_glUniform4fv,"qc":_glUniform4iv,"bb":_glUniformBlockBinding,"pc":_glUniformMatrix3fv,"oc":_glUniformMatrix4fv,"Ub":_glUnmapBuffer,"O":_glUseProgram,"fc":_glVertexAttrib4f,"gc":_glVertexAttribI4ui,"ic":_glVertexAttribIPointer,"hc":_glVertexAttribPointer,"ta":_glViewport,"ba":_setTempRet0,"Eb":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["tc"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["vc"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["wc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["xc"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["yc"]).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"]["zc"]).apply(null,arguments)};var dynCall_ji=Module["dynCall_ji"]=function(){return(dynCall_ji=Module["dynCall_ji"]=Module["asm"]["Ac"]).apply(null,arguments)};var dynCall_j=Module["dynCall_j"]=function(){return(dynCall_j=Module["dynCall_j"]=Module["asm"]["Bc"]).apply(null,arguments)};var dynCall_vij=Module["dynCall_vij"]=function(){return(dynCall_vij=Module["dynCall_vij"]=Module["asm"]["Cc"]).apply(null,arguments)};var dynCall_viij=Module["dynCall_viij"]=function(){return(dynCall_viij=Module["dynCall_viij"]=Module["asm"]["Dc"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["Ec"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["Fc"]).apply(null,arguments)};var dynCall_iiij=Module["dynCall_iiij"]=function(){return(dynCall_iiij=Module["dynCall_iiij"]=Module["asm"]["Gc"]).apply(null,arguments)};var dynCall_iiiij=Module["dynCall_iiiij"]=function(){return(dynCall_iiiij=Module["dynCall_iiiij"]=Module["asm"]["Hc"]).apply(null,arguments)};var dynCall_vijji=Module["dynCall_vijji"]=function(){return(dynCall_vijji=Module["dynCall_vijji"]=Module["asm"]["Ic"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["Jc"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["Kc"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["Lc"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["Mc"]).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();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()()}}run(); +var Module=typeof Filament!="undefined"?Filament:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};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",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}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}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 __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="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"]["sc"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["uc"];addOnInit(Module["asm"]["tc"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).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)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}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={1680580:()=>{const options=window.filament_glOptions;const context=window.filament_glContext;const handle=GL.registerContext(context,options);window.filament_contextHandle=handle;GL.makeContextCurrent(handle)},1680794:()=>{const handle=window.filament_contextHandle;GL.makeContextCurrent(handle)},1680875:($0,$1,$2,$3,$4,$5)=>{const fn=Emval.toValue($0);fn({"renderable":Emval.toValue($1),"depth":$2,"fragCoords":[$3,$4,$5]})}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(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.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;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){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!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:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,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:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+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)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw 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"](HEAP32[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}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{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_array(rawTupleType){var reg=tupleRegistrations[rawTupleType];delete tupleRegistrations[rawTupleType];var elements=reg.elements;var elementsLength=elements.length;var elementTypes=elements.map(function(elt){return elt.getterReturnType}).concat(elements.map(function(elt){return elt.setterArgumentType}));var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;whenDependentTypesAreResolved([rawTupleType],elementTypes,function(elementTypes){elements.forEach((elt,i)=>{var getterReturnType=elementTypes[i];var getter=elt.getter;var getterContext=elt.getterContext;var setterArgumentType=elementTypes[i+elementsLength];var setter=elt.setter;var setterContext=elt.setterContext;elt.read=ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))};elt.write=(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}});return[{name:reg.name,"fromWireType":function(ptr){var rv=new Array(elementsLength);for(var i=0;ifield.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: "'+fieldName+'"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>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 finalizationRegistry=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 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)}var registeredPointers={};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}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;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 attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.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}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(){}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 "'+embindRepr(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 "'+embindRepr(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.toHandle(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 "'+embindRepr(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 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){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2])}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)}if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}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);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]=()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){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;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(humanName+' with invalid "this": '+this_)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(humanName+' incompatible with "this" of type '+this_.constructor.name)}if(!this_.$$.ptr){throwBindingError("cannot call emscripten binding method "+humanName+" on deleted object")}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=classType.name+"."+fieldName;var desc={get:function(){throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])}}else{desc.set=v=>{throwBindingError(humanName+" is a read-only property")}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&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{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this["fromWireType"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this["fromWireType"](heap[pointer>>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 embindRepr(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){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=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"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 payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+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,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+i]=charCode}}else{for(var i=0;iHEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>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 __emscripten_date_now(){return Date.now()}function __emscripten_err(str){err(UTF8ToString(str))}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_out(str){out(UTF8ToString(str))}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAPU32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_get_property(handle,key){handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(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)}return symbol}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)}function _abort(){abort("")}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function getHeapMax(){return 2147483648}function _emscripten_get_heap_max(){return getHeapMax()}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.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))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw 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 __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:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],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){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _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 _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}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 _glBindBufferBase(target,index,buffer){GLctx["bindBufferBase"](target,index,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&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(true){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}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 _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glClearStencil(x0){GLctx["clearStencil"](x0)}function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}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||!imageSize){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}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 _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}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}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)}var tempFixedLengthArray=[];function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}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 _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}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 __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}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 _glGetBufferSubData(target,offset,size,data){if(!data){GL.recordError(1281);return}size&&GLctx["getBufferSubData"](target,offset,HEAPU8,data,size)}function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}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 _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}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}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}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 stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(true)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}GLctx["invalidateFramebuffer"](target,list)}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}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 _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 _glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}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 _glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}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 _glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _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 webglGetUniformLocation(location){var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}function _glUniform1fv(location,count,value){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count)}function _glUniform2fv(location,count,value){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2)}function _glUniform2iv(location,count,value){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2)}function _glUniform3fv(location,count,value){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3)}function _glUniform3iv(location,count,value){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3)}function _glUniform4fv(location,count,value){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4)}function _glUniform4iv(location,count,value){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUniformMatrix3fv(location,count,transpose,value){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9)}function _glUniformMatrix4fv(location,count,transpose,value){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16)}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){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=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 _setTempRet0(val){setTempRet0(val)}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 days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();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":___syscall_fcntl64,"Lb":___syscall_ioctl,"Mb":___syscall_openat,"Hb":___syscall_stat64,"x":__embind_finalize_value_array,"l":__embind_finalize_value_object,"Bb":__embind_register_bigint,"Sb":__embind_register_bool,"f":__embind_register_class,"k":__embind_register_class_class_function,"o":__embind_register_class_constructor,"a":__embind_register_class_function,"w":__embind_register_class_property,"Rb":__embind_register_emval,"j":__embind_register_enum,"b":__embind_register_enum_value,"Ia":__embind_register_float,"da":__embind_register_function,"B":__embind_register_integer,"q":__embind_register_memory_view,"Ha":__embind_register_std_string,"pa":__embind_register_std_wstring,"y":__embind_register_value_array,"h":__embind_register_value_array_element,"m":__embind_register_value_object,"d":__embind_register_value_object_field,"Tb":__embind_register_void,"Pb":__emscripten_date_now,"zb":__emscripten_err,"Ob":__emscripten_get_now_is_monotonic,"yb":__emscripten_out,"s":__emval_as,"i":__emval_decref,"t":__emval_get_property,"ca":__emval_incref,"G":__emval_new_cstring,"r":__emval_run_destructors,"u":__emval_take_value,"c":_abort,"qa":_emscripten_asm_const_int,"Gb":_emscripten_get_heap_max,"Nb":_emscripten_get_now,"Qb":_emscripten_memcpy_big,"Fb":_emscripten_resize_heap,"Ib":_environ_get,"Jb":_environ_sizes_get,"oa":_fd_close,"Kb":_fd_read,"Ab":_fd_seek,"Fa":_fd_write,"Db":_getentropy,"e":_glActiveTexture,"na":_glAttachShader,"kb":_glBeginQuery,"sb":_glBindAttribLocation,"n":_glBindBuffer,"va":_glBindBufferBase,"Wa":_glBindBufferRange,"P":_glBindFramebuffer,"Oa":_glBindRenderbuffer,"_":_glBindSampler,"g":_glBindTexture,"gb":_glBindVertexArray,"xa":_glBlendEquationSeparate,"wa":_glBlendFuncSeparate,"fa":_glBlitFramebuffer,"E":_glBufferData,"ga":_glBufferSubData,"Xb":_glClear,"ac":_glClearBufferfi,"C":_glClearBufferfv,"$b":_glClearBufferiv,"_b":_glClearColor,"Zb":_glClearDepthf,"Yb":_glClearStencil,"Cb":_glClientWaitSync,"la":_glColorMask,"tb":_glCompileShader,"La":_glCompressedTexSubImage2D,"Ka":_glCompressedTexSubImage3D,"lc":_glCopyBufferSubData,"Ea":_glCreateProgram,"vb":_glCreateShader,"ya":_glCullFace,"ia":_glDeleteBuffers,"U":_glDeleteFramebuffers,"$":_glDeleteProgram,"jb":_glDeleteQueries,"Ta":_glDeleteRenderbuffers,"Aa":_glDeleteSamplers,"R":_glDeleteShader,"Qa":_glDeleteSync,"Ua":_glDeleteTextures,"hb":_glDeleteVertexArrays,"ma":_glDepthFunc,"ka":_glDepthMask,"sa":_glDepthRangef,"S":_glDetachShader,"p":_glDisable,"dc":_glDisableVertexAttribArray,"kc":_glDrawBuffers,"Ja":_glDrawElements,"Ra":_glDrawElementsInstanced,"v":_glEnable,"ec":_glEnableVertexAttribArray,"lb":_glEndQuery,"ha":_glFenceSync,"Da":_glFinish,"ob":_glFlush,"H":_glFramebufferRenderbuffer,"A":_glFramebufferTexture2D,"L":_glFramebufferTextureLayer,"za":_glFrontFace,"X":_glGenBuffers,"ea":_glGenFramebuffers,"ib":_glGenQueries,"ra":_glGenRenderbuffers,"Ca":_glGenSamplers,"M":_glGenTextures,"fb":_glGenVertexArrays,"nc":_glGenerateMipmap,"Wb":_glGetBufferSubData,"aa":_glGetError,"eb":_glGetFloatv,"z":_glGetIntegerv,"wb":_glGetProgramBinary,"pb":_glGetProgramInfoLog,"T":_glGetProgramiv,"mb":_glGetQueryObjectuiv,"qb":_glGetShaderInfoLog,"Q":_glGetShaderiv,"J":_glGetString,"cb":_glGetUniformBlockIndex,"W":_glGetUniformLocation,"db":_glHint,"nb":_glInvalidateFramebuffer,"rb":_glLinkProgram,"Vb":_glMapBufferRange,"N":_glPixelStorei,"ja":_glPolygonOffset,"xb":_glProgramBinary,"Sa":_glReadPixels,"bc":_glRenderbufferStorage,"cc":_glRenderbufferStorageMultisample,"Ba":_glSamplerParameterf,"I":_glSamplerParameteri,"ua":_glScissor,"ub":_glShaderSource,"Z":_glStencilFuncSeparate,"F":_glStencilMaskSeparate,"Y":_glStencilOpSeparate,"K":_glTexImage2D,"Va":_glTexParameterf,"D":_glTexParameteri,"jc":_glTexStorage2D,"Pa":_glTexStorage3D,"Na":_glTexSubImage2D,"Ma":_glTexSubImage3D,"mc":_glUniform1f,"ab":_glUniform1fv,"V":_glUniform1i,"Ya":_glUniform1iv,"$a":_glUniform2fv,"Xa":_glUniform2iv,"_a":_glUniform3fv,"rc":_glUniform3iv,"Za":_glUniform4fv,"qc":_glUniform4iv,"bb":_glUniformBlockBinding,"pc":_glUniformMatrix3fv,"oc":_glUniformMatrix4fv,"Ub":_glUnmapBuffer,"O":_glUseProgram,"fc":_glVertexAttrib4f,"gc":_glVertexAttribI4ui,"ic":_glVertexAttribIPointer,"hc":_glVertexAttribPointer,"ta":_glViewport,"ba":_setTempRet0,"Eb":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["tc"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["vc"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["wc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["xc"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["yc"]).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"]["zc"]).apply(null,arguments)};var dynCall_ji=Module["dynCall_ji"]=function(){return(dynCall_ji=Module["dynCall_ji"]=Module["asm"]["Ac"]).apply(null,arguments)};var dynCall_j=Module["dynCall_j"]=function(){return(dynCall_j=Module["dynCall_j"]=Module["asm"]["Bc"]).apply(null,arguments)};var dynCall_vij=Module["dynCall_vij"]=function(){return(dynCall_vij=Module["dynCall_vij"]=Module["asm"]["Cc"]).apply(null,arguments)};var dynCall_viij=Module["dynCall_viij"]=function(){return(dynCall_viij=Module["dynCall_viij"]=Module["asm"]["Dc"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["Ec"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["Fc"]).apply(null,arguments)};var dynCall_iiij=Module["dynCall_iiij"]=function(){return(dynCall_iiij=Module["dynCall_iiij"]=Module["asm"]["Gc"]).apply(null,arguments)};var dynCall_iiiij=Module["dynCall_iiiij"]=function(){return(dynCall_iiiij=Module["dynCall_iiiij"]=Module["asm"]["Hc"]).apply(null,arguments)};var dynCall_vijji=Module["dynCall_vijji"]=function(){return(dynCall_vijji=Module["dynCall_vijji"]=Module["asm"]["Ic"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["Jc"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["Kc"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["Lc"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["Mc"]).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();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()()}}run(); return Filament.ready diff --git a/libs/filament/v1.55.0/filament.wasm b/libs/filament/v1.55.0/filament.wasm index 03255cc4a68c8fb5205045d4b239f5f931f495d4..83c5f9aed4b004b05f470c0eb2900ad8b3222857 100644 GIT binary patch delta 149764 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

*#pn=e@2^ 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%0D%ff8aS%J#{syE+z%@ z|17JXF42lMqg4Kxq5NN;r~Da4{)@Js=R7m}oKo56hO$qQ{+Vqu&MU?EU5N28 zJi)HzfsqE{`K1^agcw`?AbqC56q#9yb76>ce0k`2R`Q9QH!aJJpGKCuZf4Iam3?t2 zdx}ns{ntp##k^(Je0(cl(6q;SUq2n#^!>HzHIAZ5E`_FbC)Pfnl7`NyK#e$qorySyC9?9flR{g16l9l_dWZ z^3hC4qNuvs2vHBNk%~)tc1e24(6ctg_bvX?3ufIAM6>R7hM@TMA%?HwjJjYpYD(B_GHeMkOppvkCc{>P;h~>G40SL2sw~-;;)Mo( z00E+=;ookfEK%cK%!wp@iwq9)K%*wgH|dWD={w~plWo%Xne=}K>4!kau`Zye=0=(9!mpw;aX>SRv{B3#=EP;h3I<@kbY^PlYLH`0?vdO z3Z&G8{J?G*krgBVkndhsp}0(-ZmNTgcyFrDgf?iFd0&~@$UU4UA=8s@(>ufmH`IxwSFeU zS0RSO*nx$qO$q%?h5;dl3t+(C1282FG#KIrg&1zugMb`UK&nBnGB`vZQXly@%KYNU z2kuzI35Qag&NFijHH#e<%5`~vSx)p#h+!za?03B=et3xCdyH*%tpG((08BHBpnE<| z+pLv?UlAB6ri?Ue76>sM$7hCGvD6$!Ht5|(h3F%qP>22-jMf>=&EU130?kbN*$@gj zf|nRV3K2pO^w9-%?f{SXq>z##PORPL#~5?8YHV!gD(y-E+xD7-)QhHDaEIU_!eZ#1~eJ7 zEym4Mvsv`BWou{r8q0r6OIETN0}@qo8CBBsx#d!{%ucm&YZ(x|R%}UfSF0qkXX7=e zmPh5`-w$S!#`JbO+DY;}WOCs67jD4Czg$ZnQ~Iiq^dG>eY8hb45W%0kOAk~IVij$@saye+t1QX6kdE`xG8Yy@O}gh3 ziypu>7#1W!r=ta%O?oHL4ee%^qL-YuYz=8QzcOl3AZsC#KXJ#lmBpWGj~W*NOY@7o zQgz!N%Do~~3$YEkjk-;(P)6N6eJtH?+#%ij|7di@otExF`arCU;d*A1zT2dK9Hgh0 zNzVwL&Eun}vi9**b=K}mccs~quq9CxS8y3YaiMfvX58m>+#Maq zaTImNeHoX8J?vq<0Rl7-F+hL-fr=6!AWKA+009C72z$T)0V4zm@O#d=RbAb!`2FMe zzWO0`&$-W8?pk-N+h-An;-*yN-yzjFtYVJ9Q5R@T9}?3gfdF-^M^xh| zMXjR-J(K>dr$5xFGhN0{;jMZqhLO~&>!?+;#HEu_SP-j&GFlKjhMycDWgAFE1^wA* zD{~nq!gcL~Bhw{o>#%x&oK| zqttgg0(Zv2oyPhk-pxO{u4l`Q5y-O+GG{Vne}Gkr3!h-V$*%9_j;7GE)D$6q!IAIH z@)9T>{}gK+EI*F>-4e*Jz`sio@>zVl5Cc#5Ci@H&flm`sGMU?V1JA1=T7!SR=pb3h z)<=W$n7^wr+d-D42OWRwGj!1G z_`&tT4{iOipCE#U^FAT|2HA!Rp$1_Ix%L$#Kro>@Q7>~;fT+v-~zFLBO`#L9AM=> zng!Lcokg(oBHKYrKx*s3rG_AE@hy~^+4N_tldjzGbWN3KM8;CG7%!V^6LbYc=g$+` zCoy+0Qi8S1b!0)j5@Z*{Z+xaM**RcmGI|HR#4DKDE@QIo&o=U+ivDbO{FxH&Pamtz zPYucEd`>@0SK@aKj3OwediJ%g*m}QDbKTYqgD(ayzs0~E^Z?ec6UG-&4?$yvde6N>_XuZ zmBo?>-`=Ubc1gp@lt z-=<==i1kb2qIRr`@MyIo{xc3-p~121;y;-Q$q%qRwQIC?Oa2F2zM5Lk6#BEvX-9aw zg)SHN!PXAudh0S1S~p{SC2bzmvjuG3i{U*JTE4cPJ>ckZynxzd#cv2RMO^|`xhmvv z0FR9>yuqEldD_O@4Wc)*r52S=^u8pdDS+q-5x~Zy&gN@S>+vI_;O2`8 zaDB|JNTBRv=%pZZIag81?bOqTj=Pg`ilKiCGB<@WQ(NtJyudBolphd4hqk0A`Z=~Z zJ(PVMZ0X(<*u)P);paZ`McZDs)AQJq0Ju5g(I9sb7kbc@)K-Tat3U7}m1T8yFEmfK zdUi9tmx@R|#^$wl=3Cv`5l4O@YOVzomwI7R#Nz$R=%r8raawcuiE})q&XH=OuBQgk z)PRo3=;KcGTv|%0v!YLMvB4CzdK($3v5cJI=uCM>B3l{PjeOWFeK;Fo<(#8t{vG5EaOBN- z8@HPpNe%tk>ok|9@aD2+tsJ&qpx4emf^`Vc-~Eon#c+vwY?7jZo$Z4L#sb{HieQ{_ zxu=-hFQMgqz4$gjU* z)&o>X2kFltr?|#MhxLa=RsoA>6!2k!)zY6MjzDg>zzJ)>H7i^#yl8uD~c6|tqMH*m;<{r}`41ME>*GwZj z3>3SvF_vKI1*KG9vbM;%$MgvC8IJgtyMod;4!}5wrAP3J;pL1MI?{u`ag1j{`~eoX zhBq)yg*MwZew1p#Wcu@yQy=Dp*M}O}-uDbZduKei_W)E;4WGvi?UwoM07uLAUTDP^ zhnbQu)DpyD{pjg|3GJFo5AYEYR;?_N5>_cD4orwm;^;!&tY6E~qJC&Xidc_0o#UoZ zEeVNgS?YK)CL%6%u@iR;wFcbeAV2d_!Xr7{`6%!&UVb?H~~%boZN zu4@tU-#hWMQN<$Vd#rHcO|F7Lc{>-aR<_as3K}Y8ZAHQ2->L}QY6rL0i&seim}2}Z z=k&Dr!HLeNx?L)x2ID=?nR^-)*-|d{2Dv@ChDmJF5F6VYJ3M$7Lqmlyg52*>=`FM3 zJ#c-j_t0ITYExTmcKkR;l|Sf5YRgI|Y9g9Ih&QP%w>WXLxOs%gZFS* zkhIJloRHeG%8A>6ArXp*Q?zs_PM@*wa{T1fxb{{(!1<#6F!b9DmII}nZL-FsD!RqPHNk?FBxWEpp-`>alcBbsN_j7VsT+WpP z@P*p#0oxa=Mjdp3i?}rwTEIgQz{3uZ4&q_0!2;IWz@N#*Zl~yPgX8UyaBs(U;Z=pB zGujK3y4p1FrjAd_Z{&zEC-X;(3&NrEDKS$q|iMbt%%X~XvrLw_RZTavE`@q1uLVTlZ)B`xU3MaH8 zfM*=wi7Sz9xxi3CG)CagTDY!odMn1aNRfp+7lAzQXxz{1AVmxm>xSc9%O3r}HNOmO z>h&*1$X{~gi?8}Ej~Xe@=F*?DPVQyJgbgot;OGo35A}>eL9zfBWUNsEs{zqt1WJ~L4+TLn3QT(OF0 zAQWff!y^*18UWN%z7MihTgbue0t3f&KyDOTxFHd^p$=|3H z$?Ly4;m!_0g{6EOPR_D~)c~N4mWxNk7$aja*|fYH#a0<-RdwJfCr8^>FOjY3^e1aQ z{>YuDF=P~L)lpWNO~-7LtO~LkK99|13#_F-ro>nUhXrbNV{HqTE8`sCnK0n^2wIOt*n|5ft={5>{Uj#8!g+DY+z4H(-}I`zlZab^C%FWrH9}RC2n#^`A>o7 zZus_)#HH%29Wq%{ZPiw?^4SLljsqAYdjKoMJ)I+?viC5$SfcBL?Bk3s zljyXuwkLsEA)Y)DWcS}qx-Cz#g6wsn=%OHdd?>mm$X*#IA3-3L@KO$d9$Eo*Z0rX+J66Mh01U8Ri z^h7ayLPCq?9C?V=I?Iqe+BiOCdAwl)Jm%;NsP&i)Sozdo=Tl!YUqn54KgW?@!X2r> zo-=jhr^yi(kZ;BsD5E#y8H_XN%^3drI?I^=INtWlR?)EO0O!5SIA8054&?=kmad4)Diu30%Otk#C}UBIf>_f+?M;)QPzmyOt4lddAW| z0^>&JI?^{xN=SK&x%KNQJpqW*z@>MrRjU0d3kT4jflg-ji47Z`ow3G5ePfZCRtEHA zdn_%7M1`zb%$@Fn4sMWx>y30>Ug2N|_=h8$))kiN zArYpBI>_0muV{tR^)Caq>%5a)ZHW($5Fg=)pTf;_SjdUAGl+6>7FE!}PM(eo&(mW! zas3=cS;}}>KVxd4EFe-QC$w+QY|PA2Vqj7e$&KaC@1C*j0>@*@jgb!G>1@Tg2v^5D zxM{qlo3)2uT7k((DT~ho8z)P^rcv6&2>D5l{DJud9AyCm5x~g~@TY~p31n+iu{f(5 zd8{PUWlTYq#G(;$+z4K{%|{&7&-_^9Yl<2|890>w40Ez_T6k8@vF5DbgjCN0c8H~A z^(?X!Pq#gPz^aHd9ON86m{4jVXWB>$Sm*%9B%@FyPBcxy${rg!n8)1}#CdrvLVS)R z&P#wbz^xFEOvNrVOAq7%sk8a4R3Px*iS}Sn|sw>T6RXqJWbvY}^gU>6v`8yA&`r+tkI z+k+Wod@LCs=XkI&+=Cs~7qgql0~WxooR*=@u|{R=ufD3>!e(czqe<79O|*SkYvH%r zhO^1sc>0s)7~U3cc(MJdE*WM444I&an#cB7V+R>#Hs%U@9~MxJQcKa^SYw}K*s?2L{w5)= z1tZVnm4c(o7W#lJACdD7ju&$LPCiBE#9OadtF9kn{~6f-b^~k8(1V@R4c}l7let@O zhxRH<`w=@)mh@3adKuqLS;Ih)R*;ZuCLY>n?URlB=Llef1MGWsLx_(Jso#jYoU9_@tZlbmlJ=S;;Rr(4YoJk1{Shb)yKho zTSNZWTmJX8fdO(mpZs=;0`=b15$%HkXP zQ$T;@BxqoGseI?=LK#Gb!gyRMydM=8Rc>&cF(mF+-R;o0+nS?RF;;$;-UoQBA|%dA zNbbUH{xE$oxb!9+Zr2g3e;C1)iE;d4dH}cz@!~8TSY)Qz4GpY_Rbs8r7M@NCm_dJL zI!PH5o|ICnfe1Z6s(vpMg8NsKahf1#1{NYu|sNY+_&DXufXB=i7^UkoowXx3t$ErN?7 z?+%Ze??g?by*fv#Ww8^rcWs!)lvml#^lMN;(z?r-V;7v|=0Zoh3^(v1De#Ai(u@F> zIKXZB4p3-wF~Vd!G(^QR9ONmFzq92{%FTuJr^LzEMdA6n1Os-e3#B2|c`+Mg>7!+| z23iKqv@Ed1*8DB$`wo8|F%~(hmxileP$T>GGEyBfDn$)g#uix1~gVt9?k?acOX{UQ8&S*{9k9MvXqjxnEotr61hG+k>_sa?As8MeHENI7XEn)C8Jn+ z@%Q;CFJ_;>C!@%6%id<&o>eg_9r?BN702apTO8aDR#9n*;pA-Vl#)h%W+J z(ulHYIXe_{a!xU7FOeJ$2x zMIVe%f5=f!8zdOZAEFu|h6UAc-%e9B$;KTvaq=fH%Tm#pM0tSkW3(;1X%|%(n+%YDm-^`qjMvZGzB(}4Od}nqk&fQ{a zY1uj})7AQ%W8=GQURD5rR*TPDfF=j9^0xr@TyOwQG>xu-0(x^?j7ZHT2baU$L7nt4 zsRV6~Jrofhq8Fl(>{g4WmwcX;HgCW+t=}|CUfQV=Lg4dcDUgp%kTg)%mUc;IV|hWz<6U28D2xuKhmGI zj-J7xdSHLErDzB#VhJplS&D|n8^cJ^Iuc(`e>OOZazYj15QC*>IO$;l9KnMg>NZEj z8zV`NRli1Y77(VZk$Ve@E@0tC+c{tX#{_}K*R*9;1RRaZgmvXpt`kq2teD$aipEMn z<~Rp%>}JHTMLgA!@wTA~O3z06v&l(WUU~_g6SCsN|yX|nR6m%5&C70Zz$ttjd)stEwtjx5TD8M>mZNz zjd-fWvu*pEDL*Ue&lV?V=Y;2MuZ^GR`_Vk(R9@x%ho09Jk$7loq^SSej-d%B&}?4Un89m8h0;a{-#L}Q^6GRy)vklYoT z=)gt!$t-9owx!6jko!R`jG`bmO(Z5xpMK&$0B;@Mx?1I{~M$KLn+8kaK0c zu__*uh_BIwV&58Es%@*|jdJ4dqKsRP8x-gs!C`z`_YF%D+NU$WY^B0ii*wqB(_LbG z6FIp$Lfo__pUvVRAbAl`c>p{-Pxhk1YS+Q*Tkjw#wc7$uBl3GF0o3%=FwZ%_G0 z6O1XcI!3gwv|&Hu6OPNm{s!3n>>NH3jScmye9ij?Ih@WqCN!o`Nm$l?rK!ax}@ zmNEjH774m0Xni4_V^3iY9`t{FnE!d=UCIuIjkpxDyfJ}bJaH$J6J>U^V;pS-@%_8x z+9bj;g%$9gWmr96%wSx;!FT%;W-?)z0;Vj8*}N$vBc>9@$}e##hzZNnFwEV{unNJp z4&V6OsS{rWA)%T1HCeJUQ+x-A^mtXt<-9oyOd4D2o9>ics56+5h<7Vcz>I3bu>P{y zJqIx9_SYRQlZ(a66Vhdg?8?8qrUYR;nb6k4Atx_qF+nT>PNs2bXhjaK2;#l(?c5w1 zayf4pWDX$RIe~S*XO8P8!B97sQ{DX0s+-?%Bh^=+kurbEx)7(QQ=tS~)eMoo8o9}^ z$?JayMr}EbVKc4!XX%X*sf?<)RECv;U_M2ltOn1@YH_~yayZ%G8Ae+y!OKTyQVN2X zj}{6lXzAKg>-OB=a?MF9*v|v|F8!p3ay; ztf>Abh7PGy0ZLdI4me#FMkOdMhWR}|G;KR!QDO$*hC=>@5bAsu5QZsqKB?t4W&%39 zU@sh|=Q&`cOJ_qayEaLU)z9IjY}FP{;KAR4jd>g|5k_tN9hA5$2pfi<^V~^UPQHIj zMwy~c_&ct8_p!E%`2Cd2!DR6f48`|7={mDU7T+TIdMFj0mn5`l%TY5!?k8VN=C}-S z9PGpo$SQ{PTOLv}VVE1&*qBmm$puR<4D${!>8yvEOYqwHrDV&xcOK&l?mq8jSXc=! zBbZftG0u=lBN&pln}z_#61ZZ1FH^Qc=o=H-8Wgb$tE#~l=t@!(e1Wc#YDgYx_7Hmf zZL9`gwbJ{uoHHn$V+LWLGMKU-LUIWEkFuL$m>JreMZ&n7V%U!4%PZq`X4cQEeeJ)MWGkohx#RIf|&BlV%o36Yk~Eg=;*wy){!auo&Qo0 z^6izEfs6;_KGqUewi`%Iuxu-2p%4s(QcBgf$r|2ml%=wXOC^n?*5Bpi(B`m0sg#An zsJZyIKbVn`Fz$L7HZnB*kuV+~F^tAXm(wPTMfw(6dXd_Aw8+}dg}y{1VVM|Iwq;o8 z$Yl#9)E>DMZ9ow-BnRDHu%?G$P6RP~CtE-IMBPdl=Ee$JPgvn>3n?7&P7qU$#p+q)Zkv!BEIcsF0UhebaVX$U9`yZ2*{&ray*FA=93$1&R+PLm9ENluA0h4tvLpm2a2iYH%Wd{=IWz>#g!$RjEp)m3H z&1mtA>8&{>9R`^MNE$~$*u&~Z562|q4VKYPDN0BhDR}4Fad0McRM!;mfx{q;TP4NUd7wov}Whx1VRIZ>@ zPPT@NCuJ&6aVqcQs4zu8hbd~1iU}s4&5zIU8b291CK0U?r9%sltTmxxNaOiuGh;HTXC6;B15}8HS0_!SH!97c9Ug z9_Zf3u!UJ6SsnqCIY2Pvz+TFMx>d5mT#z|%k#it}qvnR%yA)5m6VRub!Co zPDVC>hCZaOiDKBLJ{1UYinA!RzKrk9%%*T3=}9ol2NN^faW4n7bT2bNQAw0hI5OtY^SV7!eM_)N; z>0SlJu)Zn^aaF0L&|I0?Y6|Ct=p%JC#0)s<4uF>K)lm$qYoL(E->TJ9@F#g`bt8rI zBlI;9v%t}pwb6Dj2O)!xW@b}}H4mmx>2eN_qHtk^x?ExwS?cJk$2>5kfB6)}l7$p% zNvSEI&?c#`h{DAY`ihBJ;<#4=TIOCE#jv_^3i0(7D=0K`8rPMz8>#(OM(C>`M3tkj z60~%$nqpYr0SfVPvlBj=Fl#(!DHvI+ba-DUpo?V$Dqyn!T9) z>qFmG9f;7EP0U(H-(b+vy-^gyO7bYgO)Zx~C9_#wfWmd*>N1Ud;?_I*3P4N$iYSKl zl~9N)UonMt%gR?u;f8R1Mj0_19d#=}OZV1N46Cc85W82ANx|iV*uN?YH$~{HCT5oG zm$-6+mhRP43~Q;S5NocZP<|ta8z|f-qDN~aX11d)vk468U!TpkmcbO_9fNEN)m5^- z910JP&^L;hIgY+u(9*pC#js!jg}9^2r_gwrdxaDpl^LP0h`70qzGBeQy;6!{eJd!$ zpMaE6sH}u@ubjep5$e_wGvKJJ04?3Cp&0qqaTNtwb2WuF9c6t7DBM`ZU3#!1ttDoS z(=XS7mhLrB3@d4(kcVqEg(h%6Z)8;>+!WznpGrD5oV6 zbg_xKc@*v=C4=q-h?(uE%LgspE2J0}ET)i`+$%yT(>NwyswKo89HFn2m^qHVGSJe! z3X0+WshmQrc`b$Ze$5?yC56|9BsYUIwL)^zk%<7@+bb(GD=Upg4pku2SW7iYrqO5N zq$mx?j!(I+QSt6eM!47t>j)QG;dq4etuV4!>Ls;EVna}EJ%!kZIx^6TGN88dkQ>!Q z-Y4BC{uwRy2IiRFlgDJ%F*$By`_n}bVshr?ZqKw3g!9ubu^MxeDsVbll zi|3ONn-5SZTUsv?UG_t~0xU}$nNm(dEWUz5EM7)Jobja;nkw%wUMpskcpX@d^#dft z;x!av@oExc>s1u0&tm6mMTY|r&)ymohxIH_QoJcB-bg}hy@5hUC$V@Rkq7b2d`BFa zn->(%r4U;mg^;wKL!l~ZJwRbDadH-e&%6e^#L+`oVIBOzR+zS1`&eOAV-iREz^kl~ zg4<;KEk*cV9x|;ZE_amW6dEVH#}W$HI!(El=mQbsunJ<1if9!ph{^d{NugY;ebB4C z3Je%U?$rcAwG`ss^Z# z*ldI|jlu|hg9%aO=*s~uy$etbkIr%_#G3OcbX?w@o=@T82z3R-EOFEof|l+TQ%ojn zDWxE%wuC}^b}+Y$!le=VRuHqy(N_*yx>rFlELcUMW|SF~6xz6rxz!Xdjd)XL))2SM zdG#IuE&Z#b7?y0H5XODTYzh_2&bg7oD5@J0U7e5*5?M9IU@5& zLR)d=k%W$7#gT;O;uVC(97P}xfwuMgu`Se2zsRG%CJ^`bM5n1!pWV1$+;lXdjW7E^ zD7TO3d^DkL<|tzJ0kn*pb`D4*nePxmnW9^mQL#Vj8YQZWLjA=Qo1hM3oK2wJk(6>r z6#D*PD33zrQ6Z}4L4Y_5l~kO1h1q^tcwN=7-2y^i83G=+aeq`tCF(XM4W>qbU?-A6 z473UIsFzKUN9Teb>0>=c#ZOR~b5Q>1RyGmWB1xWVMNz*1IB)@HC8ER!bqQ_6$e$8+ zC;{`|bqO(vo%)?p^riF*i;ZVh9edqbs=ie*PK_WU%|+qfqd6jq!Yj-vXA>%X9V^Cg zJSOV#dX-}Ak??2=OL$rgg;$7i3GS^}J_v*wO8gK#4kE(HTXB3%KjLE%RK`VRN zd>U(np@VbH1+CoIU8Npq6#MRSpHoJgyY6;>r6@hci{0HfskNuYum5n0jS$Ffc6~|pYZiqrNf4fJL|K3cTP~M~#^cgv4iQk2__DhTDS6;!_k%GnW*w8UC9X7_>aLSS z5fSwkQ9wkkMFfbbv4~tEsw^Uhhzg6yCZgOt@|wGi>X<0#e*BmFStVOs z`G))A(*c?LYS%QkVHJzo8DT5m)s6^TWvHehY~?xzj&3{CRUP4aSpaH0!nMc6r*FEi z|G(0G?oIc9{*QEdcj|J3 z^)2e*kP3%h+KT81kW=9>Vz&6y?OUxJ6%Ipf~;JCT%bN5&!B)jn1v;;c?{Qpn6 zfbtu}&tJM*y)He==+ea%l@@OVTJ*5|%jhaOx!_1IGj5lh9B`zs8FxrdDL8p2Tv*P{ zpw%AespYg}bnD{EZUJ(X`R-Tl5~YL8tBkv(SV{99R+=*ImYgDRaCdE%dz_MI)@Hd^ zDmUBREose4>XD(@`N#e?>OC^Nb}oVwOI_ujUhXUX(gXC_It25Q;Gk&H+x?(2%6zG} z`@^`9jP-_OtT!ZMy&H{em68Vu<@C>f?J2agTNVx>nwC%gYfse5&@`-`}giWA&vq{pWzMyVB!M!3K{Q{WyGeRJ<< zqdx{IJZ9OnjD{hpX;JzQ3YuZG5#NJv6X_Ri%ot!{&Mp&6XSw&Z85oVih7W-x20V>EmOJ+FYS6a(BFS?oKwV7@JPpBc#Ee4AnUGohwakO#`e8mt@2ZQTUNv z+$M3p)O=%+`w69uW$nlu(rUQ%az$UGXo?4odW)zmb-$_%F}o~wkM(%x$)9QJ=QXy( z8H>!_7(6p9cmOvxg-H42pNr0yf;PCNCbwq z#78JidCO2gGSm-yq)J8Y^dj0H)A6=20{t_gb-*B1pY2LDNGBv1hUZ&SK%avaVrfN3 zZ)uHkv|3`R#){sQ1~g=&j6!zKFk$Bm6MZHHvkB>ER{fd7QF@c2XW?FipqlbfHB8uQ zn8ZYK9P`K90zCsXsH73*C);X%d(OF7RPGJd!?2KT-_N)vs_s*ute+(@Y zWOAg{#~I~e>N%>(QC}TYUlppJ30plAD?(cZbFvzp+8WeSgHUGBOQM3s#YD;Eko;p# zwxgylsHT=ec3PRRond0|)DSJq$#JwaWCqpLhpJ)1R>MR?eux_838 zVPb7zh!)~JWRy8-`t-HSFN;EUnwYTFFi|rrL=AJw#l+L@lwfVjCV5+giOSg_BFw39 z437#L&IvWlgsp{%@;M<|B-YWA*SE9ne{QH6CTulKlonZP#Or6=R|H#ZAk=FnYUbL& z!cbsAD3FOh^KIa%P+(Cgkcom~8`!nceZ@m|9+!jy%ZSLa-l`l^I!#J(Or1q=8|3If zqu9_G(*Ko*YO5fk*wV%^D+;7Gj%lz6*2d8VPL@`aEVt+?3fbN=VdrQKV)PMiqpB~x zNsDG!>7%Yo;v98#L3OpE>X@+A)m!SAxfU00a*s*cm{a0tYYJ*>l-jU*OJJsKbxf>X z5Tb@TSx&dohjg=G7W-`F6ce@D(=n3p8w!tCKWrGANSRx#GR^ z?$l%&aLHI2aPd%!V)H3BMUfA` zi&iF!Yf?Rri`Nr9k9a4mshFqGif9@JmEvToC)M1M==oYzCYxEh=K%%iA?-Xbhz!5y zHSqfTJ=4K6Z))zjQSovwV5=`T-)Z4l6fIgNdY%xUrh2Y1=Ouc)iaDpXXNICoF`sYi zxmgjbk~}Yp+IAiToNL>|fau)ZbDcRp&GW7XTTk5H>SgiP4W0?VIRI^aqo=D@ixpUm zveGr9_JDZ#Mo&P+Q|aWnnVx^>4v&{|q8x3E{iR(}oZ?+~jFb&&O`^^!;tb1&J`* z-R#+-B-Z0@Tm7f#L@JMLk$F?Ae^6@MimY2bU;VDUfP4q>?>~5+42S*r2kFR>KS)R1 zw|PDaA~>0FwS@@W=83cXZ4=}2APMH0+dQ8tN`-k}SC6SEMdtb2JqdVNkJbuMv(Nu{d{kpbJ>|I{j~!2Wt|fNt zUp?`}_C4)+1dkV=_WTErwNHC)@=o4+FsjG(Q7BDJ0VfO3GoD8g_1rU_x7tkJgDA`} zGGZQ0RMPxu&7Mt+@_5oz2G%^|>FTo)4 zM~<2KmFEsst=VEO%JRG(L%1vYd2$pAEa>lfG?oIT{bxvNcJys9s9-H&?b zGG?4m5QbP<6qdWtf#@SVEtC>*)d){#C0{%V>%g*T-LTS(QHl};X9+>FiBbAU zMN_E+#F#Oj63j^-7s&IPz2-RK+3KRe`{O;EsB+#v!Be5WP0d+uOh?5SQJz%K(rDay zNM{^ZS1LL#7vnRXGlnS!{U4?0Dn=DKcDMn~8CjXer6|3%v7J~oVJto`x|>Y7@vY(KqnwaPNZuI z!hxsg!o7hUA(7vSvjI<9<|I;Z?Dl)3?#U)F2mgL!D-o(;GO5{qzD{SfxK>1XG*H~ zaH38VOfeR5)Gn!Q))0!>O$0t6W?~N!(MAIkHAKW1!-o=VuZ$^WZTn=*4koIJzz0kW zv+QgI@lV~b41GH+#E@XZGStL`WoQQz`$=7_VY0ddM8p|Av8Sbbs#9IwOwX6 zP~OUj#=O1Q{9=k{A9j_*%U^q5!sgQAuc^~3HdjycT#ctV@r|bw$o2)E-h}eb1iM)L zIKy*q7}eJNpP6XWEsJ3g%_Jknm{^Y{G79TU2%7P;JohOXP9)lqjG8tAsGP-UdRlaM zc=OI|v~Owl3iI1Jp57i9ziSaXK`;lEdb%fL^~u0`8n&>ajm-sAsY_$h@sYaNU+TH? zjvV|(2K896uI|{j8;#AWYt^Rr^b6PqwB%xYWP}T+#lO$;#$wNPF!s)3&o0V=s1?u)Cba2(qcQRxmikj zf+ww+G03dj;~7uj?86?Fk~8R(=Px9*`xnnpJl;9&X{(<4&K!K&bF+&AWoJEC#sGKl zqGuEG+$>SFQ;-ug6SdBGR3~a(@o3@ID)2bu)qccdo=;m3SMiE?Z0?bzo>1(W6n$3U3eUONy`EBtG{WBk)7t9uL25o?mx82c---tHWrV{*R(l^ z?DJ1;nxga**ZoUNS0;)_|D`>M$kG4O9&J{(V?V#;jQ9ufHlXdyaxvfy?H}UVH?($_ zi|zTF5pCbp_A5(;(nI?jlKx5$Z7NJhzolW9wOEwC1Ft8V=ibr&12@ec|Ir>)Tb9c9 zV$`nUgKtT$sPs6aSS0Ok(M;rgpiK~;ystHbu<@am@3z5pt42QAJ4JkcRg6ES>)VFS zzKo8d%ZSH+q_zBi+duG;*8DOG%0AY7h^qKl`&+`eiwd9f+abDqqTK`TC!c6fD#c@3 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 o51