From 0360c1f6d5cc3f0900de8ac1087ab36aa130cd8f Mon Sep 17 00:00:00 2001 From: blankhex Date: Sun, 20 Jul 2025 07:07:29 +0000 Subject: [PATCH] deploy: 10f9c4792939e0bcba378705178307d6842e76ce --- data.pak | Bin 368122 -> 368257 bytes eulamadness.js | 2 +- eulamadness.wasm | Bin 1297432 -> 1303407 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/data.pak b/data.pak index 30b3b08f96ed99ba8724ebd48b55043021d37e98..b60247746f5bdb101c2807d4dbf7591fa68c3c78 100644 GIT binary patch delta 202 zcmeyhTdZ-f7-xW^vp3^pR)&T~&aIq`PgT_o4b2pc3=}MZ&@aCzH!+9Httc@!RRJV! zYz7wh$t+8q&Zxww(Ed)95r~<9m>Gy!w!c$l6)9zRFG|fzOi7)7a1yH~>v>g12KVXT zXR%r{iK$IDnayg)Pv1P7)t>SA^v@tFbGq>yAhl_FF^IY|eKUyipZ*y{ dRZTaZ3#1NDF9uP*(>DVtj_qzt3|>CW3;<4CL2Cd2 delta 138 zcmZqNEB0%*7-xW^v-hq^tPBo~oLe~=pQ^T-sxbmF6A&{4G0S#SHCB<*>7BD#4VccW zPTxJ7)sE@6>h#}0n$cyt)f`rP#)j!tAWCWaE)bPH{TGOuI^Ak6km8tL1)_|n?*dUZ X(|>^|w&_;$SnW9q+?W`=e3%&kXhtkb diff --git a/eulamadness.js b/eulamadness.js index d6e81e1..fc5d562 100644 --- a/eulamadness.js +++ b/eulamadness.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};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;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{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)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="eulamadness.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["bg"];updateMemoryViews();wasmTable=wasmExports["dg"];addOnInit(wasmExports["cg"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={456e3:$0=>{var str=UTF8ToString($0)+"\n\n"+"Abort/Retry/Ignore/AlwaysIgnore? [ariA] :";var reply=window.prompt(str,"i");if(reply===null){reply="i"}return allocate(intArrayFromString(reply),"i8",ALLOC_NORMAL)},456225:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},456372:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},456606:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},457099:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},457167:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},458819:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},459229:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c>2]}}},460314:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},463944:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},464027:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},464096:()=>window.innerWidth,464126:()=>window.innerHeight};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var exceptionCaught=[];var uncaughtExceptionCount=0;var ___cxa_begin_catch=ptr=>{var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);___cxa_increment_exception_refcount(info.excPtr);return info.get_exception_ptr()};var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}get_exception_ptr(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var ___resumeException=ptr=>{if(!exceptionLast){exceptionLast=ptr}throw exceptionLast};var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var arg in args){var caughtType=args[arg];if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};var ___cxa_find_matching_catch_2=()=>findMatchingCatch([]);var ___cxa_find_matching_catch_3=arg0=>findMatchingCatch([arg0]);var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast};var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;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:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){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}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,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(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.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(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(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(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(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(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;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}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;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);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)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});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;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;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}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;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]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);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}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __emscripten_fs_load_embedded_files=ptr=>{do{var name_addr=HEAPU32[ptr>>2];ptr+=4;var len=HEAPU32[ptr>>2];ptr+=4;var content=HEAPU32[ptr>>2];ptr+=4;var name=UTF8ToString(name_addr);FS.createPath("/",PATH.dirname(name),true,true);FS.createDataFile(name,null,HEAP8.subarray(content,content+len),true,true,true)}while(HEAPU32[ptr>>2])};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var _abort=()=>{abort("")};var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object")SDL.audio?.queueNewAudioData?.();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);onload?.(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);onerror?.()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;onload?.(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}Module["onFullScreen"]?.(Browser.isFullscreen);Module["onFullscreen"]?.(Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x:x,y:y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAPU32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};var _eglBindAPI=api=>{if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0};var _eglChooseConfig=(display,attrib_list,configs,config_size,numConfigs)=>EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs);var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>2]=id}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>2]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>2],len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var _eglCreateContext=(display,config,hmm,contextAttribs)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}};var _eglCreateWindowSurface=(display,config,win,attrib_list)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006};var _eglDestroyContext=(display,context)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1};var _eglDestroySurface=(display,surface)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1};var _eglGetConfigAttrib=(display,config,attribute,value)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}};var _eglGetDisplay=nativeDisplayType=>{EGL.setErrorCode(12288);if(nativeDisplayType!=0&&nativeDisplayType!=1){return 0}return 62e3};var _eglGetError=()=>EGL.errorCode;var _eglInitialize=(display,majorVersion,minorVersion)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1};var _eglMakeCurrent=(display,draw,read,context)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _eglQueryString=(display,name)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8("Emscripten");break;case 12372:ret=stringToNewUTF8("1.4 Emscripten EGL");break;case 12373:ret=stringToNewUTF8("");break;case 12429:ret=stringToNewUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret};var _eglSwapBuffers=(dpy,surface)=>{if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0};var _eglSwapInterval=(display,interval)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1};var _eglTerminate=display=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1};var _eglWaitClient=()=>{EGL.setErrorCode(12288);return 1};var _eglWaitGL=_eglWaitClient;var _eglWaitNative=nativeEngineId=>{EGL.setErrorCode(12288);return 1};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var runMainThreadEmAsm=(emAsmAddr,sigPtr,argbuf,sync)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[emAsmAddr](...args)};var _emscripten_asm_const_int_sync_on_main_thread=(emAsmAddr,sigPtr,argbuf)=>runMainThreadEmAsm(emAsmAddr,sigPtr,argbuf,1);var _emscripten_asm_const_ptr_sync_on_main_thread=(emAsmAddr,sigPtr,argbuf)=>runMainThreadEmAsm(emAsmAddr,sigPtr,argbuf,1);var _emscripten_cancel_main_loop=()=>{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_date_now=()=>Date.now();var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var findCanvasEventTarget=findEventTarget;var _emscripten_get_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var getCanvasElementSize=target=>withStackSave(()=>{var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size});var _emscripten_set_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0};var setCanvasElementSize=(target,width,height)=>{if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(()=>{var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var registerRestoreOldStyle=canvas=>{var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle};var setLetterbox=(element,topBottom,leftRight)=>{element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var JSEvents_resizeCanvasForFullscreen=(target,strategy)=>{var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight{if(strategy.scaleMode!=0||strategy.canvasResolutionScaleMode!=0){JSEvents_resizeCanvasForFullscreen(target,strategy)}if(target.requestFullscreen){target.requestFullscreen()}else if(target.webkitRequestFullscreen){target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else{return JSEvents.fullscreenEnabled()?-3:-1}currentFullscreenStrategy=strategy;if(strategy.canvasResizedCallback){getWasmTableEntry(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}return 0};var _emscripten_exit_fullscreen=()=>{if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(JSEvents_requestFullscreen);var d=specialHTMLTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}return 0};var requestPointerLock=target=>{if(target.requestPointerLock){target.requestPointerLock()}else{if(document.body.requestPointerLock){return-3}return-1}return 0};var _emscripten_exit_pointerlock=()=>{JSEvents.removeDeferredCalls(requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else{return-1}return 0};var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var _emscripten_force_exit=status=>{__emscripten_runtime_keepalive_clear();_exit(status)};var _emscripten_get_device_pixel_ratio=()=>typeof devicePixelRatio=="number"&&devicePixelRatio||1;var _emscripten_get_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0};var fillGamepadEventData=(eventStruct,e)=>{HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)};var _emscripten_get_gamepad_status=(index,gamepadState)=>{if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var _emscripten_get_screen_size=(width,height)=>{HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height};var _glActiveTexture=x0=>GLctx.activeTexture(x0);var _emscripten_glActiveTexture=_glActiveTexture;var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glAttachShader=_glAttachShader;var _glBeginQuery=(target,id)=>{GLctx.beginQuery(target,GL.queries[id])};var _emscripten_glBeginQuery=_glBeginQuery;var _glBeginQueryEXT=(target,id)=>{GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])};var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;var _glBeginTransformFeedback=x0=>GLctx.beginTransformFeedback(x0);var _emscripten_glBeginTransformFeedback=_glBeginTransformFeedback;var _glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _emscripten_glBindAttribLocation=_glBindAttribLocation;var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _emscripten_glBindBuffer=_glBindBuffer;var _glBindBufferBase=(target,index,buffer)=>{GLctx.bindBufferBase(target,index,GL.buffers[buffer])};var _emscripten_glBindBufferBase=_glBindBufferBase;var _glBindBufferRange=(target,index,buffer,offset,ptrsize)=>{GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)};var _emscripten_glBindBufferRange=_glBindBufferRange;var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _emscripten_glBindFramebuffer=_glBindFramebuffer;var _glBindRenderbuffer=(target,renderbuffer)=>{GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])};var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;var _glBindSampler=(unit,sampler)=>{GLctx.bindSampler(unit,GL.samplers[sampler])};var _emscripten_glBindSampler=_glBindSampler;var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _emscripten_glBindTexture=_glBindTexture;var _glBindTransformFeedback=(target,id)=>{GLctx.bindTransformFeedback(target,GL.transformFeedbacks[id])};var _emscripten_glBindTransformFeedback=_glBindTransformFeedback;var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _emscripten_glBindVertexArray=_glBindVertexArray;var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;var _glBlendColor=(x0,x1,x2,x3)=>GLctx.blendColor(x0,x1,x2,x3);var _emscripten_glBlendColor=_glBlendColor;var _glBlendEquation=x0=>GLctx.blendEquation(x0);var _emscripten_glBlendEquation=_glBlendEquation;var _glBlendEquationSeparate=(x0,x1)=>GLctx.blendEquationSeparate(x0,x1);var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);var _emscripten_glBlendFunc=_glBlendFunc;var _glBlendFuncSeparate=(x0,x1,x2,x3)=>GLctx.blendFuncSeparate(x0,x1,x2,x3);var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;var _glBlitFramebuffer=(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)=>GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9);var _emscripten_glBlitFramebuffer=_glBlitFramebuffer;var _glBufferData=(target,size,data,usage)=>{if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}return}GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _emscripten_glBufferData=_glBufferData;var _glBufferSubData=(target,offset,size,data)=>{if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};var _emscripten_glBufferSubData=_glBufferSubData;var _glCheckFramebufferStatus=x0=>GLctx.checkFramebufferStatus(x0);var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;var _glClear=x0=>GLctx.clear(x0);var _emscripten_glClear=_glClear;var _glClearBufferfi=(x0,x1,x2,x3)=>GLctx.clearBufferfi(x0,x1,x2,x3);var _emscripten_glClearBufferfi=_glClearBufferfi;var _glClearBufferfv=(buffer,drawbuffer,value)=>{GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)};var _emscripten_glClearBufferfv=_glClearBufferfv;var _glClearBufferiv=(buffer,drawbuffer,value)=>{GLctx.clearBufferiv(buffer,drawbuffer,HEAP32,value>>2)};var _emscripten_glClearBufferiv=_glClearBufferiv;var _glClearBufferuiv=(buffer,drawbuffer,value)=>{GLctx.clearBufferuiv(buffer,drawbuffer,HEAPU32,value>>2)};var _emscripten_glClearBufferuiv=_glClearBufferuiv;var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var _emscripten_glClearColor=_glClearColor;var _glClearDepthf=x0=>GLctx.clearDepth(x0);var _emscripten_glClearDepthf=_glClearDepthf;var _glClearStencil=x0=>GLctx.clearStencil(x0);var _emscripten_glClearStencil=_glClearStencil;var convertI32PairToI53=(lo,hi)=>(lo>>>0)+hi*4294967296;var _glClientWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)};var _emscripten_glClientWaitSync=_glClientWaitSync;var _glColorMask=(red,green,blue,alpha)=>{GLctx.colorMask(!!red,!!green,!!blue,!!alpha)};var _emscripten_glColorMask=_glColorMask;var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _emscripten_glCompileShader=_glCompileShader;var _glCompressedTexImage2D=(target,level,internalFormat,width,height,border,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;var _glCompressedTexImage3D=(target,level,internalFormat,width,height,depth,border,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}};var _emscripten_glCompressedTexImage3D=_glCompressedTexImage3D;var _glCompressedTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;var _glCompressedTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}};var _emscripten_glCompressedTexSubImage3D=_glCompressedTexSubImage3D;var _glCopyBufferSubData=(x0,x1,x2,x3,x4)=>GLctx.copyBufferSubData(x0,x1,x2,x3,x4);var _emscripten_glCopyBufferSubData=_glCopyBufferSubData;var _glCopyTexImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;var _glCopyTexSubImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;var _glCopyTexSubImage3D=(x0,x1,x2,x3,x4,x5,x6,x7,x8)=>GLctx.copyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8);var _emscripten_glCopyTexSubImage3D=_glCopyTexSubImage3D;var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _emscripten_glCreateProgram=_glCreateProgram;var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _emscripten_glCreateShader=_glCreateShader;var _glCullFace=x0=>GLctx.cullFace(x0);var _emscripten_glCullFace=_glCullFace;var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}};var _emscripten_glDeleteBuffers=_glDeleteBuffers;var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _emscripten_glDeleteProgram=_glDeleteProgram;var _glDeleteQueries=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}};var _emscripten_glDeleteQueries=_glDeleteQueries;var _glDeleteQueriesEXT=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}};var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;var _glDeleteRenderbuffers=(n,renderbuffers)=>{for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}};var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;var _glDeleteSamplers=(n,samplers)=>{for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx.deleteSampler(sampler);sampler.name=0;GL.samplers[id]=null}};var _emscripten_glDeleteSamplers=_glDeleteSamplers;var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _emscripten_glDeleteShader=_glDeleteShader;var _glDeleteSync=id=>{if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null};var _emscripten_glDeleteSync=_glDeleteSync;var _glDeleteTextures=(n,textures)=>{for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}};var _emscripten_glDeleteTextures=_glDeleteTextures;var _glDeleteTransformFeedbacks=(n,ids)=>{for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx.deleteTransformFeedback(transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}};var _emscripten_glDeleteTransformFeedbacks=_glDeleteTransformFeedbacks;var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _emscripten_glDeleteVertexArrays=_glDeleteVertexArrays;var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;var _glDepthFunc=x0=>GLctx.depthFunc(x0);var _emscripten_glDepthFunc=_glDepthFunc;var _glDepthMask=flag=>{GLctx.depthMask(!!flag)};var _emscripten_glDepthMask=_glDepthMask;var _glDepthRangef=(x0,x1)=>GLctx.depthRange(x0,x1);var _emscripten_glDepthRangef=_glDepthRangef;var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glDetachShader=_glDetachShader;var _glDisable=x0=>GLctx.disable(x0);var _emscripten_glDisable=_glDisable;var _glDisableVertexAttribArray=index=>{GLctx.disableVertexAttribArray(index)};var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _emscripten_glDrawArrays=_glDrawArrays;var _glDrawArraysInstanced=(mode,first,count,primcount)=>{GLctx.drawArraysInstanced(mode,first,count,primcount)};var _emscripten_glDrawArraysInstanced=_glDrawArraysInstanced;var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var _glDrawArraysInstancedARB=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedARB=_glDrawArraysInstancedARB;var _glDrawArraysInstancedEXT=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT;var _glDrawArraysInstancedNV=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedNV=_glDrawArraysInstancedNV;var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _emscripten_glDrawBuffers=_glDrawBuffers;var _glDrawBuffersEXT=_glDrawBuffers;var _emscripten_glDrawBuffersEXT=_glDrawBuffersEXT;var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;var _glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};var _emscripten_glDrawElements=_glDrawElements;var _glDrawElementsInstanced=(mode,count,type,indices,primcount)=>{GLctx.drawElementsInstanced(mode,count,type,indices,primcount)};var _emscripten_glDrawElementsInstanced=_glDrawElementsInstanced;var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;var _glDrawElementsInstancedARB=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedARB=_glDrawElementsInstancedARB;var _glDrawElementsInstancedEXT=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT;var _glDrawElementsInstancedNV=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedNV=_glDrawElementsInstancedNV;var _glDrawRangeElements=(mode,start,end,count,type,indices)=>{_glDrawElements(mode,count,type,indices)};var _emscripten_glDrawRangeElements=_glDrawRangeElements;var _glEnable=x0=>GLctx.enable(x0);var _emscripten_glEnable=_glEnable;var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;var _glEndQuery=x0=>GLctx.endQuery(x0);var _emscripten_glEndQuery=_glEndQuery;var _glEndQueryEXT=target=>{GLctx.disjointTimerQueryExt["endQueryEXT"](target)};var _emscripten_glEndQueryEXT=_glEndQueryEXT;var _glEndTransformFeedback=()=>GLctx.endTransformFeedback();var _emscripten_glEndTransformFeedback=_glEndTransformFeedback;var _glFenceSync=(condition,flags)=>{var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0};var _emscripten_glFenceSync=_glFenceSync;var _glFinish=()=>GLctx.finish();var _emscripten_glFinish=_glFinish;var _glFlush=()=>GLctx.flush();var _emscripten_glFlush=_glFlush;var _glFramebufferRenderbuffer=(target,attachment,renderbuffertarget,renderbuffer)=>{GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])};var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;var _glFramebufferTextureLayer=(target,attachment,texture,level,layer)=>{GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)};var _emscripten_glFramebufferTextureLayer=_glFramebufferTextureLayer;var _glFrontFace=x0=>GLctx.frontFace(x0);var _emscripten_glFrontFace=_glFrontFace;var _glGenBuffers=(n,buffers)=>{GL.genObject(n,buffers,"createBuffer",GL.buffers)};var _emscripten_glGenBuffers=_glGenBuffers;var _glGenFramebuffers=(n,ids)=>{GL.genObject(n,ids,"createFramebuffer",GL.framebuffers)};var _emscripten_glGenFramebuffers=_glGenFramebuffers;var _glGenQueries=(n,ids)=>{GL.genObject(n,ids,"createQuery",GL.queries)};var _emscripten_glGenQueries=_glGenQueries;var _glGenQueriesEXT=(n,ids)=>{for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}};var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;var _glGenRenderbuffers=(n,renderbuffers)=>{GL.genObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)};var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;var _glGenSamplers=(n,samplers)=>{GL.genObject(n,samplers,"createSampler",GL.samplers)};var _emscripten_glGenSamplers=_glGenSamplers;var _glGenTextures=(n,textures)=>{GL.genObject(n,textures,"createTexture",GL.textures)};var _emscripten_glGenTextures=_glGenTextures;var _glGenTransformFeedbacks=(n,ids)=>{GL.genObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)};var _emscripten_glGenTransformFeedbacks=_glGenTransformFeedbacks;var _glGenVertexArrays=(n,arrays)=>{GL.genObject(n,arrays,"createVertexArray",GL.vaos)};var _emscripten_glGenVertexArrays=_glGenVertexArrays;var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;var _glGenerateMipmap=x0=>GLctx.generateMipmap(x0);var _emscripten_glGenerateMipmap=_glGenerateMipmap;var __glGetActiveAttribOrUniform=(funcName,program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}};var _glGetActiveAttrib=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;var _glGetActiveUniform=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveUniform=_glGetActiveUniform;var _glGetActiveUniformBlockName=(program,uniformBlockIndex,bufSize,length,uniformBlockName)=>{program=GL.programs[program];var result=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}};var _emscripten_glGetActiveUniformBlockName=_glGetActiveUniformBlockName;var _glGetActiveUniformBlockiv=(program,uniformBlockIndex,pname,params)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}};var _emscripten_glGetActiveUniformBlockiv=_glGetActiveUniformBlockiv;var _glGetActiveUniformsiv=(program,uniformCount,uniformIndices,pname,params)=>{if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx.getActiveUniforms(program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}};var _emscripten_glGetActiveUniformsiv=_glGetActiveUniformsiv;var _glGetAttachedShaders=(program,maxCount,count,shaders)=>{var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}};var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetAttribLocation=_glGetAttribLocation;var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var webglGetExtensions=function $webglGetExtensions(){var exts=getEmscriptenSupportedExtensions(GLctx);exts=exts.concat(exts.map(e=>"GL_"+e));return exts};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 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}ret=webglGetExtensions().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]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`);return}}break;default:GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof result}!`);return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p]=ret?1:0;break}};var _glGetBooleanv=(name_,p)=>emscriptenWebGLGet(name_,p,4);var _emscripten_glGetBooleanv=_glGetBooleanv;var _glGetBufferParameteri64v=(target,value,data)=>{if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))};var _emscripten_glGetBufferParameteri64v=_glGetBufferParameteri64v;var _glGetBufferParameteriv=(target,value,data)=>{if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)};var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;var _glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var _emscripten_glGetError=_glGetError;var _glGetFloatv=(name_,p)=>emscriptenWebGLGet(name_,p,2);var _emscripten_glGetFloatv=_glGetFloatv;var _glGetFragDataLocation=(program,name)=>GLctx.getFragDataLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetFragDataLocation=_glGetFragDataLocation;var _glGetFramebufferAttachmentParameteriv=(target,attachment,pname,params)=>{var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result};var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;var emscriptenWebGLGetIndexed=(target,index,data,type)=>{if(!data){GL.recordError(1281);return}var result=GLctx.getIndexedParameter(target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}};var _glGetInteger64i_v=(target,index,data)=>emscriptenWebGLGetIndexed(target,index,data,1);var _emscripten_glGetInteger64i_v=_glGetInteger64i_v;var _glGetInteger64v=(name_,p)=>{emscriptenWebGLGet(name_,p,1)};var _emscripten_glGetInteger64v=_glGetInteger64v;var _glGetIntegeri_v=(target,index,data)=>emscriptenWebGLGetIndexed(target,index,data,0);var _emscripten_glGetIntegeri_v=_glGetIntegeri_v;var _glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _emscripten_glGetIntegerv=_glGetIntegerv;var _glGetInternalformativ=(target,internalformat,pname,bufSize,params)=>{if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx.getInternalformatParameter(target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}};var _emscripten_glGetInternalformativ=_glGetInternalformativ;var _glGetProgramBinary=(program,bufSize,length,binaryFormat,binary)=>{GL.recordError(1282)};var _emscripten_glGetProgramBinary=_glGetProgramBinary;var _glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _emscripten_glGetProgramiv=_glGetProgramiv;var _glGetQueryObjecti64vEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx.getQueryParameter(query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)};var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;var _glGetQueryObjectivEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;var _glGetQueryObjectuiv=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.getQueryParameter(query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectuiv=_glGetQueryObjectuiv;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;var _glGetQueryiv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getQuery(target,pname)};var _emscripten_glGetQueryiv=_glGetQueryiv;var _glGetQueryivEXT=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)};var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;var _glGetRenderbufferParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)};var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;var _glGetSamplerParameterfv=(sampler,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)};var _emscripten_glGetSamplerParameterfv=_glGetSamplerParameterfv;var _glGetSamplerParameteriv=(sampler,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)};var _emscripten_glGetSamplerParameteriv=_glGetSamplerParameteriv;var _glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;var _glGetShaderPrecisionFormat=(shaderType,precisionType,range,precision)=>{var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision};var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;var _glGetShaderSource=(shader,bufSize,length,source)=>{var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderSource=_glGetShaderSource;var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var _emscripten_glGetShaderiv=_glGetShaderiv;var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(webglGetExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion=`OpenGL ES 3.0 (${glVersion})`;else{glVersion=`OpenGL ES 2.0 (${glVersion})`}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion=`OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _emscripten_glGetString=_glGetString;var _glGetStringi=(name,index)=>{if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=webglGetExtensions().map(stringToNewUTF8);stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}};var _emscripten_glGetStringi=_glGetStringi;var _glGetSynciv=(sync,pname,bufSize,length,values)=>{if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}};var _emscripten_glGetSynciv=_glGetSynciv;var _glGetTexParameterfv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;var _glGetTexParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;var _glGetTransformFeedbackVarying=(program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx.getTransformFeedbackVarying(program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type};var _emscripten_glGetTransformFeedbackVarying=_glGetTransformFeedbackVarying;var _glGetUniformBlockIndex=(program,uniformBlockName)=>GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName));var _emscripten_glGetUniformBlockIndex=_glGetUniformBlockIndex;var _glGetUniformIndices=(program,uniformCount,uniformNames,uniformIndices)=>{if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx.getUniformIndices(program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}};var _emscripten_glGetUniformIndices=_glGetUniformIndices;var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var emscriptenWebGLGetUniform=(program,location,params,type)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}};var _glGetUniformfv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,2)};var _emscripten_glGetUniformfv=_glGetUniformfv;var _glGetUniformiv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,0)};var _emscripten_glGetUniformiv=_glGetUniformiv;var _glGetUniformuiv=(program,location,params)=>emscriptenWebGLGetUniform(program,location,params,0);var _emscripten_glGetUniformuiv=_glGetUniformuiv;var emscriptenWebGLGetVertexAttrib=(index,pname,params,type)=>{if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}};var _glGetVertexAttribIiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,0)};var _emscripten_glGetVertexAttribIiv=_glGetVertexAttribIiv;var _glGetVertexAttribIuiv=_glGetVertexAttribIiv;var _emscripten_glGetVertexAttribIuiv=_glGetVertexAttribIuiv;var _glGetVertexAttribPointerv=(index,pname,pointer)=>{if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)};var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;var _glGetVertexAttribfv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,2)};var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;var _glGetVertexAttribiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,5)};var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;var _glHint=(x0,x1)=>GLctx.hint(x0,x1);var _emscripten_glHint=_glHint;var _glInvalidateFramebuffer=(target,numAttachments,attachments)=>{var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateFramebuffer(target,list)};var _emscripten_glInvalidateFramebuffer=_glInvalidateFramebuffer;var _glInvalidateSubFramebuffer=(target,numAttachments,attachments,x,y,width,height)=>{var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateSubFramebuffer(target,list,x,y,width,height)};var _emscripten_glInvalidateSubFramebuffer=_glInvalidateSubFramebuffer;var _glIsBuffer=buffer=>{var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)};var _emscripten_glIsBuffer=_glIsBuffer;var _glIsEnabled=x0=>GLctx.isEnabled(x0);var _emscripten_glIsEnabled=_glIsEnabled;var _glIsFramebuffer=framebuffer=>{var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)};var _emscripten_glIsFramebuffer=_glIsFramebuffer;var _glIsProgram=program=>{program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)};var _emscripten_glIsProgram=_glIsProgram;var _glIsQuery=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.isQuery(query)};var _emscripten_glIsQuery=_glIsQuery;var _glIsQueryEXT=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)};var _emscripten_glIsQueryEXT=_glIsQueryEXT;var _glIsRenderbuffer=renderbuffer=>{var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)};var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;var _glIsSampler=id=>{var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx.isSampler(sampler)};var _emscripten_glIsSampler=_glIsSampler;var _glIsShader=shader=>{var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)};var _emscripten_glIsShader=_glIsShader;var _glIsSync=sync=>GLctx.isSync(GL.syncs[sync]);var _emscripten_glIsSync=_glIsSync;var _glIsTexture=id=>{var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)};var _emscripten_glIsTexture=_glIsTexture;var _glIsTransformFeedback=id=>GLctx.isTransformFeedback(GL.transformFeedbacks[id]);var _emscripten_glIsTransformFeedback=_glIsTransformFeedback;var _glIsVertexArray=array=>{var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)};var _emscripten_glIsVertexArray=_glIsVertexArray;var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;var _glLineWidth=x0=>GLctx.lineWidth(x0);var _emscripten_glLineWidth=_glLineWidth;var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _emscripten_glLinkProgram=_glLinkProgram;var _glPauseTransformFeedback=()=>GLctx.pauseTransformFeedback();var _emscripten_glPauseTransformFeedback=_glPauseTransformFeedback;var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)};var _emscripten_glPixelStorei=_glPixelStorei;var _glPolygonOffset=(x0,x1)=>GLctx.polygonOffset(x0,x1);var _emscripten_glPolygonOffset=_glPolygonOffset;var _glProgramBinary=(program,binaryFormat,binary,length)=>{GL.recordError(1280)};var _emscripten_glProgramBinary=_glProgramBinary;var _glProgramParameteri=(program,pname,value)=>{GL.recordError(1280)};var _emscripten_glProgramParameteri=_glProgramParameteri;var _glQueryCounterEXT=(id,target)=>{GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)};var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;var _glReadBuffer=x0=>GLctx.readBuffer(x0);var _emscripten_glReadBuffer=_glReadBuffer;var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=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};var 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};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);return heap.subarray(toTypedArrayIndex(pixels,heap),toTypedArrayIndex(pixels+bytes,heap))};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target)}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _emscripten_glReadPixels=_glReadPixels;var _glReleaseShaderCompiler=()=>{};var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;var _glRenderbufferStorage=(x0,x1,x2,x3)=>GLctx.renderbufferStorage(x0,x1,x2,x3);var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;var _glRenderbufferStorageMultisample=(x0,x1,x2,x3,x4)=>GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4);var _emscripten_glRenderbufferStorageMultisample=_glRenderbufferStorageMultisample;var _glResumeTransformFeedback=()=>GLctx.resumeTransformFeedback();var _emscripten_glResumeTransformFeedback=_glResumeTransformFeedback;var _glSampleCoverage=(value,invert)=>{GLctx.sampleCoverage(value,!!invert)};var _emscripten_glSampleCoverage=_glSampleCoverage;var _glSamplerParameterf=(sampler,pname,param)=>{GLctx.samplerParameterf(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameterf=_glSamplerParameterf;var _glSamplerParameterfv=(sampler,pname,params)=>{var param=HEAPF32[params>>2];GLctx.samplerParameterf(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameterfv=_glSamplerParameterfv;var _glSamplerParameteri=(sampler,pname,param)=>{GLctx.samplerParameteri(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameteri=_glSamplerParameteri;var _glSamplerParameteriv=(sampler,pname,params)=>{var param=HEAP32[params>>2];GLctx.samplerParameteri(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameteriv=_glSamplerParameteriv;var _glScissor=(x0,x1,x2,x3)=>GLctx.scissor(x0,x1,x2,x3);var _emscripten_glScissor=_glScissor;var _glShaderBinary=(count,shaders,binaryformat,binary,length)=>{GL.recordError(1280)};var _emscripten_glShaderBinary=_glShaderBinary;var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _emscripten_glShaderSource=_glShaderSource;var _glStencilFunc=(x0,x1,x2)=>GLctx.stencilFunc(x0,x1,x2);var _emscripten_glStencilFunc=_glStencilFunc;var _glStencilFuncSeparate=(x0,x1,x2,x3)=>GLctx.stencilFuncSeparate(x0,x1,x2,x3);var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;var _glStencilMask=x0=>GLctx.stencilMask(x0);var _emscripten_glStencilMask=_glStencilMask;var _glStencilMaskSeparate=(x0,x1)=>GLctx.stencilMaskSeparate(x0,x1);var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;var _glStencilOp=(x0,x1,x2)=>GLctx.stencilOp(x0,x1,x2);var _emscripten_glStencilOp=_glStencilOp;var _glStencilOpSeparate=(x0,x1,x2,x3)=>GLctx.stencilOpSeparate(x0,x1,x2,x3);var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{if(GL.currentContext.version>=2){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,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)};var _emscripten_glTexImage2D=_glTexImage2D;var _glTexImage3D=(target,level,internalFormat,width,height,depth,border,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}};var _emscripten_glTexImage3D=_glTexImage3D;var _glTexParameterf=(x0,x1,x2)=>GLctx.texParameterf(x0,x1,x2);var _emscripten_glTexParameterf=_glTexParameterf;var _glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _emscripten_glTexParameterfv=_glTexParameterfv;var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _emscripten_glTexParameteri=_glTexParameteri;var _glTexParameteriv=(target,pname,params)=>{var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)};var _emscripten_glTexParameteriv=_glTexParameteriv;var _glTexStorage2D=(x0,x1,x2,x3,x4)=>GLctx.texStorage2D(x0,x1,x2,x3,x4);var _emscripten_glTexStorage2D=_glTexStorage2D;var _glTexStorage3D=(x0,x1,x2,x3,x4,x5)=>GLctx.texStorage3D(x0,x1,x2,x3,x4,x5);var _emscripten_glTexStorage3D=_glTexStorage3D;var _glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){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,toTypedArrayIndex(pixels,heap));return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0):null;GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _emscripten_glTexSubImage2D=_glTexSubImage2D;var _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,toTypedArrayIndex(pixels,heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}};var _emscripten_glTexSubImage3D=_glTexSubImage3D;var _glTransformFeedbackVaryings=(program,count,varyings,bufferMode)=>{program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)};var _emscripten_glTransformFeedbackVaryings=_glTransformFeedbackVaryings;var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1f=_glUniform1f;var miniTempWebGLFloatBuffers=[];var _glUniform1fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1fv=_glUniform1fv;var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1i=_glUniform1i;var miniTempWebGLIntBuffers=[];var _glUniform1iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1iv=_glUniform1iv;var _glUniform1ui=(location,v0)=>{GLctx.uniform1ui(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1ui=_glUniform1ui;var _glUniform1uiv=(location,count,value)=>{count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)};var _emscripten_glUniform1uiv=_glUniform1uiv;var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2f=_glUniform2f;var _glUniform2fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2fv=_glUniform2fv;var _glUniform2i=(location,v0,v1)=>{GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2i=_glUniform2i;var _glUniform2iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2iv=_glUniform2iv;var _glUniform2ui=(location,v0,v1)=>{GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2ui=_glUniform2ui;var _glUniform2uiv=(location,count,value)=>{count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)};var _emscripten_glUniform2uiv=_glUniform2uiv;var _glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3f=_glUniform3f;var _glUniform3fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3fv=_glUniform3fv;var _glUniform3i=(location,v0,v1,v2)=>{GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3i=_glUniform3i;var _glUniform3iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3iv=_glUniform3iv;var _glUniform3ui=(location,v0,v1,v2)=>{GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3ui=_glUniform3ui;var _glUniform3uiv=(location,count,value)=>{count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)};var _emscripten_glUniform3uiv=_glUniform3uiv;var _glUniform4f=(location,v0,v1,v2,v3)=>{GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4f=_glUniform4f;var _glUniform4fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value=value>>2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4fv=_glUniform4fv;var _glUniform4i=(location,v0,v1,v2,v3)=>{GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4i=_glUniform4i;var _glUniform4iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4iv=_glUniform4iv;var _glUniform4ui=(location,v0,v1,v2,v3)=>{GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4ui=_glUniform4ui;var _glUniform4uiv=(location,count,value)=>{count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)};var _emscripten_glUniform4uiv=_glUniform4uiv;var _glUniformBlockBinding=(program,uniformBlockIndex,uniformBlockBinding)=>{program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)};var _emscripten_glUniformBlockBinding=_glUniformBlockBinding;var _glUniformMatrix2fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;var _glUniformMatrix2x3fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)};var _emscripten_glUniformMatrix2x3fv=_glUniformMatrix2x3fv;var _glUniformMatrix2x4fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)};var _emscripten_glUniformMatrix2x4fv=_glUniformMatrix2x4fv;var _glUniformMatrix3fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;var _glUniformMatrix3x2fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)};var _emscripten_glUniformMatrix3x2fv=_glUniformMatrix3x2fv;var _glUniformMatrix3x4fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)};var _emscripten_glUniformMatrix3x4fv=_glUniformMatrix3x4fv;var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value=value>>2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;var _glUniformMatrix4x2fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)};var _emscripten_glUniformMatrix4x2fv=_glUniformMatrix4x2fv;var _glUniformMatrix4x3fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)};var _emscripten_glUniformMatrix4x3fv=_glUniformMatrix4x3fv;var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _emscripten_glUseProgram=_glUseProgram;var _glValidateProgram=program=>{GLctx.validateProgram(GL.programs[program])};var _emscripten_glValidateProgram=_glValidateProgram;var _glVertexAttrib1f=(x0,x1)=>GLctx.vertexAttrib1f(x0,x1);var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;var _glVertexAttrib1fv=(index,v)=>{GLctx.vertexAttrib1f(index,HEAPF32[v>>2])};var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;var _glVertexAttrib2f=(x0,x1,x2)=>GLctx.vertexAttrib2f(x0,x1,x2);var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;var _glVertexAttrib2fv=(index,v)=>{GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])};var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;var _glVertexAttrib3f=(x0,x1,x2,x3)=>GLctx.vertexAttrib3f(x0,x1,x2,x3);var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;var _glVertexAttrib3fv=(index,v)=>{GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])};var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;var _glVertexAttrib4f=(x0,x1,x2,x3,x4)=>GLctx.vertexAttrib4f(x0,x1,x2,x3,x4);var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;var _glVertexAttrib4fv=(index,v)=>{GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])};var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;var _glVertexAttribDivisor=(index,divisor)=>{GLctx.vertexAttribDivisor(index,divisor)};var _emscripten_glVertexAttribDivisor=_glVertexAttribDivisor;var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribDivisorARB=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorARB=_glVertexAttribDivisorARB;var _glVertexAttribDivisorEXT=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT;var _glVertexAttribDivisorNV=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorNV=_glVertexAttribDivisorNV;var _glVertexAttribI4i=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4i(x0,x1,x2,x3,x4);var _emscripten_glVertexAttribI4i=_glVertexAttribI4i;var _glVertexAttribI4iv=(index,v)=>{GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])};var _emscripten_glVertexAttribI4iv=_glVertexAttribI4iv;var _glVertexAttribI4ui=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4);var _emscripten_glVertexAttribI4ui=_glVertexAttribI4ui;var _glVertexAttribI4uiv=(index,v)=>{GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])};var _emscripten_glVertexAttribI4uiv=_glVertexAttribI4uiv;var _glVertexAttribIPointer=(index,size,type,stride,ptr)=>{GLctx.vertexAttribIPointer(index,size,type,stride,ptr)};var _emscripten_glVertexAttribIPointer=_glVertexAttribIPointer;var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);var _emscripten_glViewport=_glViewport;var _glWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);GLctx.waitSync(GL.syncs[sync],flags,timeout)};var _emscripten_glWaitSync=_glWaitSync;var _emscripten_has_asyncify=()=>0;var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var doRequestFullscreen=(target,strategy)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)};var _emscripten_request_fullscreen_strategy=(target,deferUntilInEventHandler,fullscreenStrategy)=>{var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)};var _emscripten_request_pointerlock=(target,deferUntilInEventHandler)=>{target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)};var abortOnCannotGrowMemory=requestedSize=>{abort("OOM")};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;abortOnCannotGrowMemory(requestedSize)};var _emscripten_sample_gamepad_data=()=>{try{if(navigator.getGamepads)return(JSEvents.lastGamepadState=navigator.getGamepads())?0:-1}catch(e){navigator.getGamepads=null}return-1};var registerBeforeUnloadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString)=>{var beforeUnloadEventHandlerFunc=(e=event)=>{var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_beforeunload_callback_on_thread=(userData,callbackfunc,targetThread)=>{if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload")};var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=event)=>{var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_blur_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);var _emscripten_set_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0};var _emscripten_set_focus_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);var fillFullscreenChangeEventData=eventStruct=>{var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement?.id||"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}};var registerFullscreenChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=(e=event)=>{var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_fullscreenchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread)};var registerGamepadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=(e=event)=>{var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_gamepadconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)};var _emscripten_set_gamepaddisconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)};var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=e=>{var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_keydown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);var _emscripten_set_keypress_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);var _emscripten_set_keyup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-(rect.left|0);HEAP32[idx+14]=e.clientY-(rect.top|0)};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=event)=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_mousedown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);var _emscripten_set_mouseenter_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread);var _emscripten_set_mouseleave_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread);var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var _emscripten_set_mouseup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);var fillPointerlockChangeEventData=eventStruct=>{var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement?.id||"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)};var registerPointerlockChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=(e=event)=>{var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_pointerlockchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)};var registerUiEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=(e=event)=>{if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=0;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset|0;HEAP32[uiEvent+32>>2]=pageYOffset|0;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_resize_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-(targetRect.left|0);HEAP32[idx+10]=t.clientY-(targetRect.top|0);idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_touchcancel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);var _emscripten_set_touchend_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);var _emscripten_set_touchmove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);var _emscripten_set_touchstart_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);var fillVisibilityChangeEventData=eventStruct=>{var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState};var registerVisibilityChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=(e=event)=>{var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_visibilitychange_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!specialHTMLTargets[1]){return-4}return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread)};var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>document.title=UTF8ToString(title);var _emscripten_sleep=()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var 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};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var 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];var 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};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":getWeekBasedYear,"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":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":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":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":date=>date.tm_zone,"%%":()=>"%"};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};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var autoResumeAudioContext=(ctx,elements)=>{if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return f(ptr,...args)};var dynCall=(sig,ptr,args=[])=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr)(...args);return rtn};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i+1)}var wasmImports={q:___cxa_begin_catch,u:___cxa_end_catch,a:___cxa_find_matching_catch_2,h:___cxa_find_matching_catch_3,G:___cxa_rethrow,m:___cxa_throw,bb:___cxa_uncaught_exceptions,b:___resumeException,ha:___syscall_fcntl64,hb:___syscall_ioctl,ib:___syscall_openat,Ed:__emscripten_fs_load_embedded_files,jb:__emscripten_get_now_is_monotonic,C:_abort,Xa:_eglBindAPI,gb:_eglChooseConfig,Oa:_eglCreateContext,Qa:_eglCreateWindowSurface,Pa:_eglDestroyContext,Ra:_eglDestroySurface,ob:_eglGetConfigAttrib,ba:_eglGetDisplay,Na:_eglGetError,Ya:_eglInitialize,Sa:_eglMakeCurrent,Ma:_eglQueryString,Ta:_eglSwapBuffers,Ua:_eglSwapInterval,ab:_eglTerminate,Wa:_eglWaitGL,Va:_eglWaitNative,Qc:_emscripten_asm_const_int,o:_emscripten_asm_const_int_sync_on_main_thread,na:_emscripten_asm_const_ptr_sync_on_main_thread,oa:_emscripten_cancel_main_loop,ia:_emscripten_date_now,Ha:_emscripten_exit_fullscreen,Ka:_emscripten_exit_pointerlock,td:_emscripten_force_exit,x:_emscripten_get_device_pixel_ratio,t:_emscripten_get_element_css_size,la:_emscripten_get_gamepad_status,D:_emscripten_get_now,vc:_emscripten_get_num_gamepads,La:_emscripten_get_screen_size,$f:_emscripten_glActiveTexture,_f:_emscripten_glAttachShader,bd:_emscripten_glBeginQuery,Da:_emscripten_glBeginQueryEXT,Jc:_emscripten_glBeginTransformFeedback,Zf:_emscripten_glBindAttribLocation,Yf:_emscripten_glBindBuffer,Gc:_emscripten_glBindBufferBase,Hc:_emscripten_glBindBufferRange,Xf:_emscripten_glBindFramebuffer,Wf:_emscripten_glBindRenderbuffer,Nb:_emscripten_glBindSampler,Vf:_emscripten_glBindTexture,Fb:_emscripten_glBindTransformFeedback,Oc:_emscripten_glBindVertexArray,va:_emscripten_glBindVertexArrayOES,Uf:_emscripten_glBlendColor,Tf:_emscripten_glBlendEquation,Sf:_emscripten_glBlendEquationSeparate,Rf:_emscripten_glBlendFunc,Qf:_emscripten_glBlendFuncSeparate,Sc:_emscripten_glBlitFramebuffer,Pf:_emscripten_glBufferData,Of:_emscripten_glBufferSubData,Nf:_emscripten_glCheckFramebufferStatus,Mf:_emscripten_glClear,ic:_emscripten_glClearBufferfi,jc:_emscripten_glClearBufferfv,lc:_emscripten_glClearBufferiv,kc:_emscripten_glClearBufferuiv,Lf:_emscripten_glClearColor,Kf:_emscripten_glClearDepthf,Jf:_emscripten_glClearStencil,Wb:_emscripten_glClientWaitSync,If:_emscripten_glColorMask,Hf:_emscripten_glCompileShader,Gf:_emscripten_glCompressedTexImage2D,gd:_emscripten_glCompressedTexImage3D,Ff:_emscripten_glCompressedTexSubImage2D,fd:_emscripten_glCompressedTexSubImage3D,gc:_emscripten_glCopyBufferSubData,Ef:_emscripten_glCopyTexImage2D,Df:_emscripten_glCopyTexSubImage2D,hd:_emscripten_glCopyTexSubImage3D,Cf:_emscripten_glCreateProgram,Bf:_emscripten_glCreateShader,Af:_emscripten_glCullFace,zf:_emscripten_glDeleteBuffers,yf:_emscripten_glDeleteFramebuffers,xf:_emscripten_glDeleteProgram,dd:_emscripten_glDeleteQueries,Fa:_emscripten_glDeleteQueriesEXT,wf:_emscripten_glDeleteRenderbuffers,Pb:_emscripten_glDeleteSamplers,vf:_emscripten_glDeleteShader,Xb:_emscripten_glDeleteSync,uf:_emscripten_glDeleteTextures,Eb:_emscripten_glDeleteTransformFeedbacks,Nc:_emscripten_glDeleteVertexArrays,ua:_emscripten_glDeleteVertexArraysOES,tf:_emscripten_glDepthFunc,sf:_emscripten_glDepthMask,rf:_emscripten_glDepthRangef,qf:_emscripten_glDetachShader,pf:_emscripten_glDisable,of:_emscripten_glDisableVertexAttribArray,nf:_emscripten_glDrawArrays,$b:_emscripten_glDrawArraysInstanced,qa:_emscripten_glDrawArraysInstancedANGLE,nb:_emscripten_glDrawArraysInstancedARB,od:_emscripten_glDrawArraysInstancedEXT,pb:_emscripten_glDrawArraysInstancedNV,Zc:_emscripten_glDrawBuffers,md:_emscripten_glDrawBuffersEXT,ra:_emscripten_glDrawBuffersWEBGL,mf:_emscripten_glDrawElements,_b:_emscripten_glDrawElementsInstanced,pa:_emscripten_glDrawElementsInstancedANGLE,lb:_emscripten_glDrawElementsInstancedARB,mb:_emscripten_glDrawElementsInstancedEXT,nd:_emscripten_glDrawElementsInstancedNV,kd:_emscripten_glDrawRangeElements,lf:_emscripten_glEnable,kf:_emscripten_glEnableVertexAttribArray,ad:_emscripten_glEndQuery,Ca:_emscripten_glEndQueryEXT,Ic:_emscripten_glEndTransformFeedback,Zb:_emscripten_glFenceSync,jf:_emscripten_glFinish,hf:_emscripten_glFlush,gf:_emscripten_glFramebufferRenderbuffer,ff:_emscripten_glFramebufferTexture2D,Pc:_emscripten_glFramebufferTextureLayer,ef:_emscripten_glFrontFace,df:_emscripten_glGenBuffers,bf:_emscripten_glGenFramebuffers,ed:_emscripten_glGenQueries,Ga:_emscripten_glGenQueriesEXT,af:_emscripten_glGenRenderbuffers,Qb:_emscripten_glGenSamplers,$e:_emscripten_glGenTextures,Db:_emscripten_glGenTransformFeedbacks,Mc:_emscripten_glGenVertexArrays,ta:_emscripten_glGenVertexArraysOES,cf:_emscripten_glGenerateMipmap,_e:_emscripten_glGetActiveAttrib,Ze:_emscripten_glGetActiveUniform,bc:_emscripten_glGetActiveUniformBlockName,cc:_emscripten_glGetActiveUniformBlockiv,ec:_emscripten_glGetActiveUniformsiv,Ye:_emscripten_glGetAttachedShaders,Xe:_emscripten_glGetAttribLocation,We:_emscripten_glGetBooleanv,Rb:_emscripten_glGetBufferParameteri64v,Ve:_emscripten_glGetBufferParameteriv,Ue:_emscripten_glGetError,Te:_emscripten_glGetFloatv,uc:_emscripten_glGetFragDataLocation,Se:_emscripten_glGetFramebufferAttachmentParameteriv,Sb:_emscripten_glGetInteger64i_v,Ub:_emscripten_glGetInteger64v,Kc:_emscripten_glGetIntegeri_v,Re:_emscripten_glGetIntegerv,sb:_emscripten_glGetInternalformativ,zb:_emscripten_glGetProgramBinary,Pe:_emscripten_glGetProgramInfoLog,Qe:_emscripten_glGetProgramiv,xa:_emscripten_glGetQueryObjecti64vEXT,za:_emscripten_glGetQueryObjectivEXT,wa:_emscripten_glGetQueryObjectui64vEXT,_c:_emscripten_glGetQueryObjectuiv,ya:_emscripten_glGetQueryObjectuivEXT,$c:_emscripten_glGetQueryiv,Aa:_emscripten_glGetQueryivEXT,Oe:_emscripten_glGetRenderbufferParameteriv,Hb:_emscripten_glGetSamplerParameterfv,Ib:_emscripten_glGetSamplerParameteriv,Me:_emscripten_glGetShaderInfoLog,Ke:_emscripten_glGetShaderPrecisionFormat,Je:_emscripten_glGetShaderSource,Ne:_emscripten_glGetShaderiv,Ie:_emscripten_glGetString,hc:_emscripten_glGetStringi,Tb:_emscripten_glGetSynciv,He:_emscripten_glGetTexParameterfv,Ge:_emscripten_glGetTexParameteriv,Ec:_emscripten_glGetTransformFeedbackVarying,dc:_emscripten_glGetUniformBlockIndex,fc:_emscripten_glGetUniformIndices,De:_emscripten_glGetUniformLocation,Fe:_emscripten_glGetUniformfv,Ee:_emscripten_glGetUniformiv,wc:_emscripten_glGetUniformuiv,Cc:_emscripten_glGetVertexAttribIiv,Bc:_emscripten_glGetVertexAttribIuiv,Ae:_emscripten_glGetVertexAttribPointerv,Ce:_emscripten_glGetVertexAttribfv,Be:_emscripten_glGetVertexAttribiv,ze:_emscripten_glHint,wb:_emscripten_glInvalidateFramebuffer,vb:_emscripten_glInvalidateSubFramebuffer,ye:_emscripten_glIsBuffer,xe:_emscripten_glIsEnabled,we:_emscripten_glIsFramebuffer,ve:_emscripten_glIsProgram,cd:_emscripten_glIsQuery,Ea:_emscripten_glIsQueryEXT,ue:_emscripten_glIsRenderbuffer,Ob:_emscripten_glIsSampler,te:_emscripten_glIsShader,Yb:_emscripten_glIsSync,se:_emscripten_glIsTexture,Cb:_emscripten_glIsTransformFeedback,Lc:_emscripten_glIsVertexArray,sa:_emscripten_glIsVertexArrayOES,re:_emscripten_glLineWidth,qe:_emscripten_glLinkProgram,Bb:_emscripten_glPauseTransformFeedback,pe:_emscripten_glPixelStorei,oe:_emscripten_glPolygonOffset,yb:_emscripten_glProgramBinary,xb:_emscripten_glProgramParameteri,Ba:_emscripten_glQueryCounterEXT,ld:_emscripten_glReadBuffer,ne:_emscripten_glReadPixels,me:_emscripten_glReleaseShaderCompiler,le:_emscripten_glRenderbufferStorage,Rc:_emscripten_glRenderbufferStorageMultisample,Ab:_emscripten_glResumeTransformFeedback,ke:_emscripten_glSampleCoverage,Kb:_emscripten_glSamplerParameterf,Jb:_emscripten_glSamplerParameterfv,Mb:_emscripten_glSamplerParameteri,Lb:_emscripten_glSamplerParameteriv,je:_emscripten_glScissor,ie:_emscripten_glShaderBinary,he:_emscripten_glShaderSource,ge:_emscripten_glStencilFunc,fe:_emscripten_glStencilFuncSeparate,ee:_emscripten_glStencilMask,de:_emscripten_glStencilMaskSeparate,ce:_emscripten_glStencilOp,be:_emscripten_glStencilOpSeparate,ae:_emscripten_glTexImage2D,jd:_emscripten_glTexImage3D,$d:_emscripten_glTexParameterf,_d:_emscripten_glTexParameterfv,Zd:_emscripten_glTexParameteri,Yd:_emscripten_glTexParameteriv,ub:_emscripten_glTexStorage2D,tb:_emscripten_glTexStorage3D,Xd:_emscripten_glTexSubImage2D,id:_emscripten_glTexSubImage3D,Fc:_emscripten_glTransformFeedbackVaryings,Wd:_emscripten_glUniform1f,Vd:_emscripten_glUniform1fv,Ud:_emscripten_glUniform1i,Td:_emscripten_glUniform1iv,tc:_emscripten_glUniform1ui,pc:_emscripten_glUniform1uiv,Sd:_emscripten_glUniform2f,Rd:_emscripten_glUniform2fv,Qd:_emscripten_glUniform2i,Pd:_emscripten_glUniform2iv,sc:_emscripten_glUniform2ui,oc:_emscripten_glUniform2uiv,Od:_emscripten_glUniform3f,Nd:_emscripten_glUniform3fv,Md:_emscripten_glUniform3i,Ld:_emscripten_glUniform3iv,rc:_emscripten_glUniform3ui,nc:_emscripten_glUniform3uiv,Kd:_emscripten_glUniform4f,Jd:_emscripten_glUniform4fv,Id:_emscripten_glUniform4i,Hd:_emscripten_glUniform4iv,qc:_emscripten_glUniform4ui,mc:_emscripten_glUniform4uiv,ac:_emscripten_glUniformBlockBinding,Gd:_emscripten_glUniformMatrix2fv,Yc:_emscripten_glUniformMatrix2x3fv,Wc:_emscripten_glUniformMatrix2x4fv,Fd:_emscripten_glUniformMatrix3fv,Xc:_emscripten_glUniformMatrix3x2fv,Uc:_emscripten_glUniformMatrix3x4fv,Dd:_emscripten_glUniformMatrix4fv,Vc:_emscripten_glUniformMatrix4x2fv,Tc:_emscripten_glUniformMatrix4x3fv,Cd:_emscripten_glUseProgram,Bd:_emscripten_glValidateProgram,Ad:_emscripten_glVertexAttrib1f,zd:_emscripten_glVertexAttrib1fv,yd:_emscripten_glVertexAttrib2f,xd:_emscripten_glVertexAttrib2fv,wd:_emscripten_glVertexAttrib3f,vd:_emscripten_glVertexAttrib3fv,ud:_emscripten_glVertexAttrib4f,sd:_emscripten_glVertexAttrib4fv,Gb:_emscripten_glVertexAttribDivisor,ag:_emscripten_glVertexAttribDivisorANGLE,qb:_emscripten_glVertexAttribDivisorARB,pd:_emscripten_glVertexAttribDivisorEXT,rb:_emscripten_glVertexAttribDivisorNV,Ac:_emscripten_glVertexAttribI4i,yc:_emscripten_glVertexAttribI4iv,zc:_emscripten_glVertexAttribI4ui,xc:_emscripten_glVertexAttribI4uiv,Dc:_emscripten_glVertexAttribIPointer,rd:_emscripten_glVertexAttribPointer,qd:_emscripten_glViewport,Vb:_emscripten_glWaitSync,F:_emscripten_has_asyncify,kb:_emscripten_memcpy_js,Ia:_emscripten_request_fullscreen_strategy,aa:_emscripten_request_pointerlock,cb:_emscripten_resize_heap,ma:_emscripten_sample_gamepad_data,I:_emscripten_set_beforeunload_callback_on_thread,U:_emscripten_set_blur_callback_on_thread,w:_emscripten_set_canvas_element_size,B:_emscripten_set_element_css_size,V:_emscripten_set_focus_callback_on_thread,L:_emscripten_set_fullscreenchange_callback_on_thread,ka:_emscripten_set_gamepadconnected_callback_on_thread,ja:_emscripten_set_gamepaddisconnected_callback_on_thread,O:_emscripten_set_keydown_callback_on_thread,M:_emscripten_set_keypress_callback_on_thread,N:_emscripten_set_keyup_callback_on_thread,Le:_emscripten_set_main_loop,_:_emscripten_set_mousedown_callback_on_thread,Y:_emscripten_set_mouseenter_callback_on_thread,X:_emscripten_set_mouseleave_callback_on_thread,$:_emscripten_set_mousemove_callback_on_thread,Z:_emscripten_set_mouseup_callback_on_thread,P:_emscripten_set_pointerlockchange_callback_on_thread,K:_emscripten_set_resize_callback_on_thread,Q:_emscripten_set_touchcancel_callback_on_thread,S:_emscripten_set_touchend_callback_on_thread,R:_emscripten_set_touchmove_callback_on_thread,T:_emscripten_set_touchstart_callback_on_thread,J:_emscripten_set_visibilitychange_callback_on_thread,W:_emscripten_set_wheel_callback_on_thread,Ja:_emscripten_set_window_title,E:_emscripten_sleep,db:_environ_get,eb:_environ_sizes_get,fa:_fd_close,fb:_fd_read,_a:_fd_seek,ga:_fd_write,ca:invoke_diii,da:invoke_fiii,g:invoke_i,c:invoke_ii,d:invoke_iii,i:invoke_iiii,l:invoke_iiiii,n:invoke_iiiiii,s:invoke_iiiiiii,ea:invoke_iiiiiiii,A:invoke_iiiiiiiiiiii,Za:invoke_jiiii,j:invoke_v,k:invoke_vi,e:invoke_vii,f:invoke_viii,p:invoke_viiii,y:invoke_viiiii,H:invoke_viiiiii,r:invoke_viiiiiii,v:invoke_viiiiiiiiii,z:invoke_viiiiiiiiiiiiiii,$a:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["cg"])();var ___cxa_free_exception=a0=>(___cxa_free_exception=wasmExports["__cxa_free_exception"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["eg"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["fg"])(a0);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["gg"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["hg"])(a0);var stackSave=()=>(stackSave=wasmExports["ig"])();var stackRestore=a0=>(stackRestore=wasmExports["jg"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["kg"])(a0);var ___cxa_decrement_exception_refcount=a0=>(___cxa_decrement_exception_refcount=wasmExports["lg"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["mg"])(a0);var ___cxa_can_catch=(a0,a1,a2)=>(___cxa_can_catch=wasmExports["ng"])(a0,a1,a2);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["og"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["pg"])(a0,a1,a2,a3,a4);var dynCall_ji=Module["dynCall_ji"]=(a0,a1)=>(dynCall_ji=Module["dynCall_ji"]=wasmExports["qg"])(a0,a1);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["rg"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiiii=Module["dynCall_jiiii"]=(a0,a1,a2,a3,a4)=>(dynCall_jiiii=Module["dynCall_jiiii"]=wasmExports["sg"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["tg"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["ug"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["vg"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=400436;function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); +var Module=typeof Module!="undefined"?Module:{};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;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{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)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="eulamadness.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["bg"];updateMemoryViews();wasmTable=wasmExports["dg"];addOnInit(wasmExports["cg"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={456480:$0=>{var str=UTF8ToString($0)+"\n\n"+"Abort/Retry/Ignore/AlwaysIgnore? [ariA] :";var reply=window.prompt(str,"i");if(reply===null){reply="i"}return allocate(intArrayFromString(reply),"i8",ALLOC_NORMAL)},456705:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},456852:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},457086:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},457579:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},457647:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},459299:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},459709:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c>2]}}},460794:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},464424:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},464507:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},464576:()=>window.innerWidth,464606:()=>window.innerHeight};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var exceptionCaught=[];var uncaughtExceptionCount=0;var ___cxa_begin_catch=ptr=>{var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);___cxa_increment_exception_refcount(info.excPtr);return info.get_exception_ptr()};var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}get_exception_ptr(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var ___resumeException=ptr=>{if(!exceptionLast){exceptionLast=ptr}throw exceptionLast};var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var arg in args){var caughtType=args[arg];if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};var ___cxa_find_matching_catch_2=()=>findMatchingCatch([]);var ___cxa_find_matching_catch_3=arg0=>findMatchingCatch([arg0]);var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw")}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++}exceptionLast=ptr;throw exceptionLast};var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;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:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){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}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,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(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.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(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(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(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(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(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;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}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;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);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)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});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;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;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}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;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]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);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}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __emscripten_fs_load_embedded_files=ptr=>{do{var name_addr=HEAPU32[ptr>>2];ptr+=4;var len=HEAPU32[ptr>>2];ptr+=4;var content=HEAPU32[ptr>>2];ptr+=4;var name=UTF8ToString(name_addr);FS.createPath("/",PATH.dirname(name),true,true);FS.createDataFile(name,null,HEAP8.subarray(content,content+len),true,true,true)}while(HEAPU32[ptr>>2])};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var _abort=()=>{abort("")};var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object")SDL.audio?.queueNewAudioData?.();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);onload?.(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);onerror?.()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;onload?.(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}Module["onFullScreen"]?.(Browser.isFullscreen);Module["onFullscreen"]?.(Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x:x,y:y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAPU32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};var _eglBindAPI=api=>{if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0};var _eglChooseConfig=(display,attrib_list,configs,config_size,numConfigs)=>EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs);var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>2]=id}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>2]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>2],len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var _eglCreateContext=(display,config,hmm,contextAttribs)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}};var _eglCreateWindowSurface=(display,config,win,attrib_list)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006};var _eglDestroyContext=(display,context)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1};var _eglDestroySurface=(display,surface)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1};var _eglGetConfigAttrib=(display,config,attribute,value)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}};var _eglGetDisplay=nativeDisplayType=>{EGL.setErrorCode(12288);if(nativeDisplayType!=0&&nativeDisplayType!=1){return 0}return 62e3};var _eglGetError=()=>EGL.errorCode;var _eglInitialize=(display,majorVersion,minorVersion)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1};var _eglMakeCurrent=(display,draw,read,context)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _eglQueryString=(display,name)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8("Emscripten");break;case 12372:ret=stringToNewUTF8("1.4 Emscripten EGL");break;case 12373:ret=stringToNewUTF8("");break;case 12429:ret=stringToNewUTF8("OpenGL_ES");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret};var _eglSwapBuffers=(dpy,surface)=>{if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0};var _eglSwapInterval=(display,interval)=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1};var _eglTerminate=display=>{if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1};var _eglWaitClient=()=>{EGL.setErrorCode(12288);return 1};var _eglWaitGL=_eglWaitClient;var _eglWaitNative=nativeEngineId=>{EGL.setErrorCode(12288);return 1};var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var runMainThreadEmAsm=(emAsmAddr,sigPtr,argbuf,sync)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[emAsmAddr](...args)};var _emscripten_asm_const_int_sync_on_main_thread=(emAsmAddr,sigPtr,argbuf)=>runMainThreadEmAsm(emAsmAddr,sigPtr,argbuf,1);var _emscripten_asm_const_ptr_sync_on_main_thread=(emAsmAddr,sigPtr,argbuf)=>runMainThreadEmAsm(emAsmAddr,sigPtr,argbuf,1);var _emscripten_cancel_main_loop=()=>{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_date_now=()=>Date.now();var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var findCanvasEventTarget=findEventTarget;var _emscripten_get_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var getCanvasElementSize=target=>withStackSave(()=>{var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size});var _emscripten_set_canvas_element_size=(target,width,height)=>{var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0};var setCanvasElementSize=(target,width,height)=>{if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(()=>{var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var registerRestoreOldStyle=canvas=>{var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle};var setLetterbox=(element,topBottom,leftRight)=>{element.style.paddingLeft=element.style.paddingRight=leftRight+"px";element.style.paddingTop=element.style.paddingBottom=topBottom+"px"};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var JSEvents_resizeCanvasForFullscreen=(target,strategy)=>{var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight{if(strategy.scaleMode!=0||strategy.canvasResolutionScaleMode!=0){JSEvents_resizeCanvasForFullscreen(target,strategy)}if(target.requestFullscreen){target.requestFullscreen()}else if(target.webkitRequestFullscreen){target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else{return JSEvents.fullscreenEnabled()?-3:-1}currentFullscreenStrategy=strategy;if(strategy.canvasResizedCallback){getWasmTableEntry(strategy.canvasResizedCallback)(37,0,strategy.canvasResizedCallbackUserData)}return 0};var _emscripten_exit_fullscreen=()=>{if(!JSEvents.fullscreenEnabled())return-1;JSEvents.removeDeferredCalls(JSEvents_requestFullscreen);var d=specialHTMLTargets[1];if(d.exitFullscreen){d.fullscreenElement&&d.exitFullscreen()}else if(d.webkitExitFullscreen){d.webkitFullscreenElement&&d.webkitExitFullscreen()}else{return-1}return 0};var requestPointerLock=target=>{if(target.requestPointerLock){target.requestPointerLock()}else{if(document.body.requestPointerLock){return-3}return-1}return 0};var _emscripten_exit_pointerlock=()=>{JSEvents.removeDeferredCalls(requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else{return-1}return 0};var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var _emscripten_force_exit=status=>{__emscripten_runtime_keepalive_clear();_exit(status)};var _emscripten_get_device_pixel_ratio=()=>typeof devicePixelRatio=="number"&&devicePixelRatio||1;var _emscripten_get_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0};var fillGamepadEventData=(eventStruct,e)=>{HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)};var _emscripten_get_gamepad_status=(index,gamepadState)=>{if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var _emscripten_get_screen_size=(width,height)=>{HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height};var _glActiveTexture=x0=>GLctx.activeTexture(x0);var _emscripten_glActiveTexture=_glActiveTexture;var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glAttachShader=_glAttachShader;var _glBeginQuery=(target,id)=>{GLctx.beginQuery(target,GL.queries[id])};var _emscripten_glBeginQuery=_glBeginQuery;var _glBeginQueryEXT=(target,id)=>{GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])};var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;var _glBeginTransformFeedback=x0=>GLctx.beginTransformFeedback(x0);var _emscripten_glBeginTransformFeedback=_glBeginTransformFeedback;var _glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _emscripten_glBindAttribLocation=_glBindAttribLocation;var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _emscripten_glBindBuffer=_glBindBuffer;var _glBindBufferBase=(target,index,buffer)=>{GLctx.bindBufferBase(target,index,GL.buffers[buffer])};var _emscripten_glBindBufferBase=_glBindBufferBase;var _glBindBufferRange=(target,index,buffer,offset,ptrsize)=>{GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)};var _emscripten_glBindBufferRange=_glBindBufferRange;var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _emscripten_glBindFramebuffer=_glBindFramebuffer;var _glBindRenderbuffer=(target,renderbuffer)=>{GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])};var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;var _glBindSampler=(unit,sampler)=>{GLctx.bindSampler(unit,GL.samplers[sampler])};var _emscripten_glBindSampler=_glBindSampler;var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _emscripten_glBindTexture=_glBindTexture;var _glBindTransformFeedback=(target,id)=>{GLctx.bindTransformFeedback(target,GL.transformFeedbacks[id])};var _emscripten_glBindTransformFeedback=_glBindTransformFeedback;var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _emscripten_glBindVertexArray=_glBindVertexArray;var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;var _glBlendColor=(x0,x1,x2,x3)=>GLctx.blendColor(x0,x1,x2,x3);var _emscripten_glBlendColor=_glBlendColor;var _glBlendEquation=x0=>GLctx.blendEquation(x0);var _emscripten_glBlendEquation=_glBlendEquation;var _glBlendEquationSeparate=(x0,x1)=>GLctx.blendEquationSeparate(x0,x1);var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);var _emscripten_glBlendFunc=_glBlendFunc;var _glBlendFuncSeparate=(x0,x1,x2,x3)=>GLctx.blendFuncSeparate(x0,x1,x2,x3);var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;var _glBlitFramebuffer=(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)=>GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9);var _emscripten_glBlitFramebuffer=_glBlitFramebuffer;var _glBufferData=(target,size,data,usage)=>{if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}return}GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _emscripten_glBufferData=_glBufferData;var _glBufferSubData=(target,offset,size,data)=>{if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))};var _emscripten_glBufferSubData=_glBufferSubData;var _glCheckFramebufferStatus=x0=>GLctx.checkFramebufferStatus(x0);var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;var _glClear=x0=>GLctx.clear(x0);var _emscripten_glClear=_glClear;var _glClearBufferfi=(x0,x1,x2,x3)=>GLctx.clearBufferfi(x0,x1,x2,x3);var _emscripten_glClearBufferfi=_glClearBufferfi;var _glClearBufferfv=(buffer,drawbuffer,value)=>{GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)};var _emscripten_glClearBufferfv=_glClearBufferfv;var _glClearBufferiv=(buffer,drawbuffer,value)=>{GLctx.clearBufferiv(buffer,drawbuffer,HEAP32,value>>2)};var _emscripten_glClearBufferiv=_glClearBufferiv;var _glClearBufferuiv=(buffer,drawbuffer,value)=>{GLctx.clearBufferuiv(buffer,drawbuffer,HEAPU32,value>>2)};var _emscripten_glClearBufferuiv=_glClearBufferuiv;var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var _emscripten_glClearColor=_glClearColor;var _glClearDepthf=x0=>GLctx.clearDepth(x0);var _emscripten_glClearDepthf=_glClearDepthf;var _glClearStencil=x0=>GLctx.clearStencil(x0);var _emscripten_glClearStencil=_glClearStencil;var convertI32PairToI53=(lo,hi)=>(lo>>>0)+hi*4294967296;var _glClientWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)};var _emscripten_glClientWaitSync=_glClientWaitSync;var _glColorMask=(red,green,blue,alpha)=>{GLctx.colorMask(!!red,!!green,!!blue,!!alpha)};var _emscripten_glColorMask=_glColorMask;var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _emscripten_glCompileShader=_glCompileShader;var _glCompressedTexImage2D=(target,level,internalFormat,width,height,border,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;var _glCompressedTexImage3D=(target,level,internalFormat,width,height,depth,border,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}};var _emscripten_glCompressedTexImage3D=_glCompressedTexImage3D;var _glCompressedTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,imageSize,data)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)};var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;var _glCompressedTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}};var _emscripten_glCompressedTexSubImage3D=_glCompressedTexSubImage3D;var _glCopyBufferSubData=(x0,x1,x2,x3,x4)=>GLctx.copyBufferSubData(x0,x1,x2,x3,x4);var _emscripten_glCopyBufferSubData=_glCopyBufferSubData;var _glCopyTexImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;var _glCopyTexSubImage2D=(x0,x1,x2,x3,x4,x5,x6,x7)=>GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7);var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;var _glCopyTexSubImage3D=(x0,x1,x2,x3,x4,x5,x6,x7,x8)=>GLctx.copyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8);var _emscripten_glCopyTexSubImage3D=_glCopyTexSubImage3D;var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _emscripten_glCreateProgram=_glCreateProgram;var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _emscripten_glCreateShader=_glCreateShader;var _glCullFace=x0=>GLctx.cullFace(x0);var _emscripten_glCullFace=_glCullFace;var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}};var _emscripten_glDeleteBuffers=_glDeleteBuffers;var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _emscripten_glDeleteProgram=_glDeleteProgram;var _glDeleteQueries=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}};var _emscripten_glDeleteQueries=_glDeleteQueries;var _glDeleteQueriesEXT=(n,ids)=>{for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}};var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;var _glDeleteRenderbuffers=(n,renderbuffers)=>{for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}};var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;var _glDeleteSamplers=(n,samplers)=>{for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx.deleteSampler(sampler);sampler.name=0;GL.samplers[id]=null}};var _emscripten_glDeleteSamplers=_glDeleteSamplers;var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _emscripten_glDeleteShader=_glDeleteShader;var _glDeleteSync=id=>{if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null};var _emscripten_glDeleteSync=_glDeleteSync;var _glDeleteTextures=(n,textures)=>{for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}};var _emscripten_glDeleteTextures=_glDeleteTextures;var _glDeleteTransformFeedbacks=(n,ids)=>{for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx.deleteTransformFeedback(transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}};var _emscripten_glDeleteTransformFeedbacks=_glDeleteTransformFeedbacks;var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _emscripten_glDeleteVertexArrays=_glDeleteVertexArrays;var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;var _glDepthFunc=x0=>GLctx.depthFunc(x0);var _emscripten_glDepthFunc=_glDepthFunc;var _glDepthMask=flag=>{GLctx.depthMask(!!flag)};var _emscripten_glDepthMask=_glDepthMask;var _glDepthRangef=(x0,x1)=>GLctx.depthRange(x0,x1);var _emscripten_glDepthRangef=_glDepthRangef;var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _emscripten_glDetachShader=_glDetachShader;var _glDisable=x0=>GLctx.disable(x0);var _emscripten_glDisable=_glDisable;var _glDisableVertexAttribArray=index=>{GLctx.disableVertexAttribArray(index)};var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _emscripten_glDrawArrays=_glDrawArrays;var _glDrawArraysInstanced=(mode,first,count,primcount)=>{GLctx.drawArraysInstanced(mode,first,count,primcount)};var _emscripten_glDrawArraysInstanced=_glDrawArraysInstanced;var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var _glDrawArraysInstancedARB=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedARB=_glDrawArraysInstancedARB;var _glDrawArraysInstancedEXT=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT;var _glDrawArraysInstancedNV=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedNV=_glDrawArraysInstancedNV;var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _emscripten_glDrawBuffers=_glDrawBuffers;var _glDrawBuffersEXT=_glDrawBuffers;var _emscripten_glDrawBuffersEXT=_glDrawBuffersEXT;var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;var _glDrawElements=(mode,count,type,indices)=>{GLctx.drawElements(mode,count,type,indices)};var _emscripten_glDrawElements=_glDrawElements;var _glDrawElementsInstanced=(mode,count,type,indices,primcount)=>{GLctx.drawElementsInstanced(mode,count,type,indices,primcount)};var _emscripten_glDrawElementsInstanced=_glDrawElementsInstanced;var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;var _glDrawElementsInstancedARB=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedARB=_glDrawElementsInstancedARB;var _glDrawElementsInstancedEXT=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT;var _glDrawElementsInstancedNV=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedNV=_glDrawElementsInstancedNV;var _glDrawRangeElements=(mode,start,end,count,type,indices)=>{_glDrawElements(mode,count,type,indices)};var _emscripten_glDrawRangeElements=_glDrawRangeElements;var _glEnable=x0=>GLctx.enable(x0);var _emscripten_glEnable=_glEnable;var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;var _glEndQuery=x0=>GLctx.endQuery(x0);var _emscripten_glEndQuery=_glEndQuery;var _glEndQueryEXT=target=>{GLctx.disjointTimerQueryExt["endQueryEXT"](target)};var _emscripten_glEndQueryEXT=_glEndQueryEXT;var _glEndTransformFeedback=()=>GLctx.endTransformFeedback();var _emscripten_glEndTransformFeedback=_glEndTransformFeedback;var _glFenceSync=(condition,flags)=>{var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0};var _emscripten_glFenceSync=_glFenceSync;var _glFinish=()=>GLctx.finish();var _emscripten_glFinish=_glFinish;var _glFlush=()=>GLctx.flush();var _emscripten_glFlush=_glFlush;var _glFramebufferRenderbuffer=(target,attachment,renderbuffertarget,renderbuffer)=>{GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])};var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;var _glFramebufferTextureLayer=(target,attachment,texture,level,layer)=>{GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)};var _emscripten_glFramebufferTextureLayer=_glFramebufferTextureLayer;var _glFrontFace=x0=>GLctx.frontFace(x0);var _emscripten_glFrontFace=_glFrontFace;var _glGenBuffers=(n,buffers)=>{GL.genObject(n,buffers,"createBuffer",GL.buffers)};var _emscripten_glGenBuffers=_glGenBuffers;var _glGenFramebuffers=(n,ids)=>{GL.genObject(n,ids,"createFramebuffer",GL.framebuffers)};var _emscripten_glGenFramebuffers=_glGenFramebuffers;var _glGenQueries=(n,ids)=>{GL.genObject(n,ids,"createQuery",GL.queries)};var _emscripten_glGenQueries=_glGenQueries;var _glGenQueriesEXT=(n,ids)=>{for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}};var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;var _glGenRenderbuffers=(n,renderbuffers)=>{GL.genObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)};var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;var _glGenSamplers=(n,samplers)=>{GL.genObject(n,samplers,"createSampler",GL.samplers)};var _emscripten_glGenSamplers=_glGenSamplers;var _glGenTextures=(n,textures)=>{GL.genObject(n,textures,"createTexture",GL.textures)};var _emscripten_glGenTextures=_glGenTextures;var _glGenTransformFeedbacks=(n,ids)=>{GL.genObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)};var _emscripten_glGenTransformFeedbacks=_glGenTransformFeedbacks;var _glGenVertexArrays=(n,arrays)=>{GL.genObject(n,arrays,"createVertexArray",GL.vaos)};var _emscripten_glGenVertexArrays=_glGenVertexArrays;var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;var _glGenerateMipmap=x0=>GLctx.generateMipmap(x0);var _emscripten_glGenerateMipmap=_glGenerateMipmap;var __glGetActiveAttribOrUniform=(funcName,program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}};var _glGetActiveAttrib=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;var _glGetActiveUniform=(program,index,bufSize,length,size,type,name)=>{__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)};var _emscripten_glGetActiveUniform=_glGetActiveUniform;var _glGetActiveUniformBlockName=(program,uniformBlockIndex,bufSize,length,uniformBlockName)=>{program=GL.programs[program];var result=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}};var _emscripten_glGetActiveUniformBlockName=_glGetActiveUniformBlockName;var _glGetActiveUniformBlockiv=(program,uniformBlockIndex,pname,params)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}};var _emscripten_glGetActiveUniformBlockiv=_glGetActiveUniformBlockiv;var _glGetActiveUniformsiv=(program,uniformCount,uniformIndices,pname,params)=>{if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx.getActiveUniforms(program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}};var _emscripten_glGetActiveUniformsiv=_glGetActiveUniformsiv;var _glGetAttachedShaders=(program,maxCount,count,shaders)=>{var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}};var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetAttribLocation=_glGetAttribLocation;var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var webglGetExtensions=function $webglGetExtensions(){var exts=getEmscriptenSupportedExtensions(GLctx);exts=exts.concat(exts.map(e=>"GL_"+e));return exts};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 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}ret=webglGetExtensions().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]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`);return}}break;default:GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof result}!`);return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p]=ret?1:0;break}};var _glGetBooleanv=(name_,p)=>emscriptenWebGLGet(name_,p,4);var _emscripten_glGetBooleanv=_glGetBooleanv;var _glGetBufferParameteri64v=(target,value,data)=>{if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))};var _emscripten_glGetBufferParameteri64v=_glGetBufferParameteri64v;var _glGetBufferParameteriv=(target,value,data)=>{if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)};var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;var _glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var _emscripten_glGetError=_glGetError;var _glGetFloatv=(name_,p)=>emscriptenWebGLGet(name_,p,2);var _emscripten_glGetFloatv=_glGetFloatv;var _glGetFragDataLocation=(program,name)=>GLctx.getFragDataLocation(GL.programs[program],UTF8ToString(name));var _emscripten_glGetFragDataLocation=_glGetFragDataLocation;var _glGetFramebufferAttachmentParameteriv=(target,attachment,pname,params)=>{var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result};var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;var emscriptenWebGLGetIndexed=(target,index,data,type)=>{if(!data){GL.recordError(1281);return}var result=GLctx.getIndexedParameter(target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}};var _glGetInteger64i_v=(target,index,data)=>emscriptenWebGLGetIndexed(target,index,data,1);var _emscripten_glGetInteger64i_v=_glGetInteger64i_v;var _glGetInteger64v=(name_,p)=>{emscriptenWebGLGet(name_,p,1)};var _emscripten_glGetInteger64v=_glGetInteger64v;var _glGetIntegeri_v=(target,index,data)=>emscriptenWebGLGetIndexed(target,index,data,0);var _emscripten_glGetIntegeri_v=_glGetIntegeri_v;var _glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _emscripten_glGetIntegerv=_glGetIntegerv;var _glGetInternalformativ=(target,internalformat,pname,bufSize,params)=>{if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx.getInternalformatParameter(target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}};var _emscripten_glGetInternalformativ=_glGetInternalformativ;var _glGetProgramBinary=(program,bufSize,length,binaryFormat,binary)=>{GL.recordError(1282)};var _emscripten_glGetProgramBinary=_glGetProgramBinary;var _glGetProgramInfoLog=(program,maxLength,length,infoLog)=>{var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _emscripten_glGetProgramiv=_glGetProgramiv;var _glGetQueryObjecti64vEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx.getQueryParameter(query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)};var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;var _glGetQueryObjectivEXT=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;var _glGetQueryObjectuiv=(id,pname,params)=>{if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.getQueryParameter(query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret};var _emscripten_glGetQueryObjectuiv=_glGetQueryObjectuiv;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;var _glGetQueryiv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getQuery(target,pname)};var _emscripten_glGetQueryiv=_glGetQueryiv;var _glGetQueryivEXT=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)};var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;var _glGetRenderbufferParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)};var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;var _glGetSamplerParameterfv=(sampler,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)};var _emscripten_glGetSamplerParameterfv=_glGetSamplerParameterfv;var _glGetSamplerParameteriv=(sampler,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)};var _emscripten_glGetSamplerParameteriv=_glGetSamplerParameteriv;var _glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;var _glGetShaderPrecisionFormat=(shaderType,precisionType,range,precision)=>{var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision};var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;var _glGetShaderSource=(shader,bufSize,length,source)=>{var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _emscripten_glGetShaderSource=_glGetShaderSource;var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var _emscripten_glGetShaderiv=_glGetShaderiv;var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(webglGetExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion=`OpenGL ES 3.0 (${glVersion})`;else{glVersion=`OpenGL ES 2.0 (${glVersion})`}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion=`OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _emscripten_glGetString=_glGetString;var _glGetStringi=(name,index)=>{if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=webglGetExtensions().map(stringToNewUTF8);stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}};var _emscripten_glGetStringi=_glGetStringi;var _glGetSynciv=(sync,pname,bufSize,length,values)=>{if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}};var _emscripten_glGetSynciv=_glGetSynciv;var _glGetTexParameterfv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;var _glGetTexParameteriv=(target,pname,params)=>{if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)};var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;var _glGetTransformFeedbackVarying=(program,index,bufSize,length,size,type,name)=>{program=GL.programs[program];var info=GLctx.getTransformFeedbackVarying(program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type};var _emscripten_glGetTransformFeedbackVarying=_glGetTransformFeedbackVarying;var _glGetUniformBlockIndex=(program,uniformBlockName)=>GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName));var _emscripten_glGetUniformBlockIndex=_glGetUniformBlockIndex;var _glGetUniformIndices=(program,uniformCount,uniformNames,uniformIndices)=>{if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx.getUniformIndices(program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}};var _emscripten_glGetUniformIndices=_glGetUniformIndices;var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var emscriptenWebGLGetUniform=(program,location,params,type)=>{if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}};var _glGetUniformfv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,2)};var _emscripten_glGetUniformfv=_glGetUniformfv;var _glGetUniformiv=(program,location,params)=>{emscriptenWebGLGetUniform(program,location,params,0)};var _emscripten_glGetUniformiv=_glGetUniformiv;var _glGetUniformuiv=(program,location,params)=>emscriptenWebGLGetUniform(program,location,params,0);var _emscripten_glGetUniformuiv=_glGetUniformuiv;var emscriptenWebGLGetVertexAttrib=(index,pname,params,type)=>{if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}};var _glGetVertexAttribIiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,0)};var _emscripten_glGetVertexAttribIiv=_glGetVertexAttribIiv;var _glGetVertexAttribIuiv=_glGetVertexAttribIiv;var _emscripten_glGetVertexAttribIuiv=_glGetVertexAttribIuiv;var _glGetVertexAttribPointerv=(index,pname,pointer)=>{if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)};var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;var _glGetVertexAttribfv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,2)};var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;var _glGetVertexAttribiv=(index,pname,params)=>{emscriptenWebGLGetVertexAttrib(index,pname,params,5)};var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;var _glHint=(x0,x1)=>GLctx.hint(x0,x1);var _emscripten_glHint=_glHint;var _glInvalidateFramebuffer=(target,numAttachments,attachments)=>{var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateFramebuffer(target,list)};var _emscripten_glInvalidateFramebuffer=_glInvalidateFramebuffer;var _glInvalidateSubFramebuffer=(target,numAttachments,attachments,x,y,width,height)=>{var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateSubFramebuffer(target,list,x,y,width,height)};var _emscripten_glInvalidateSubFramebuffer=_glInvalidateSubFramebuffer;var _glIsBuffer=buffer=>{var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)};var _emscripten_glIsBuffer=_glIsBuffer;var _glIsEnabled=x0=>GLctx.isEnabled(x0);var _emscripten_glIsEnabled=_glIsEnabled;var _glIsFramebuffer=framebuffer=>{var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)};var _emscripten_glIsFramebuffer=_glIsFramebuffer;var _glIsProgram=program=>{program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)};var _emscripten_glIsProgram=_glIsProgram;var _glIsQuery=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.isQuery(query)};var _emscripten_glIsQuery=_glIsQuery;var _glIsQueryEXT=id=>{var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)};var _emscripten_glIsQueryEXT=_glIsQueryEXT;var _glIsRenderbuffer=renderbuffer=>{var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)};var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;var _glIsSampler=id=>{var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx.isSampler(sampler)};var _emscripten_glIsSampler=_glIsSampler;var _glIsShader=shader=>{var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)};var _emscripten_glIsShader=_glIsShader;var _glIsSync=sync=>GLctx.isSync(GL.syncs[sync]);var _emscripten_glIsSync=_glIsSync;var _glIsTexture=id=>{var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)};var _emscripten_glIsTexture=_glIsTexture;var _glIsTransformFeedback=id=>GLctx.isTransformFeedback(GL.transformFeedbacks[id]);var _emscripten_glIsTransformFeedback=_glIsTransformFeedback;var _glIsVertexArray=array=>{var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)};var _emscripten_glIsVertexArray=_glIsVertexArray;var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;var _glLineWidth=x0=>GLctx.lineWidth(x0);var _emscripten_glLineWidth=_glLineWidth;var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _emscripten_glLinkProgram=_glLinkProgram;var _glPauseTransformFeedback=()=>GLctx.pauseTransformFeedback();var _emscripten_glPauseTransformFeedback=_glPauseTransformFeedback;var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)};var _emscripten_glPixelStorei=_glPixelStorei;var _glPolygonOffset=(x0,x1)=>GLctx.polygonOffset(x0,x1);var _emscripten_glPolygonOffset=_glPolygonOffset;var _glProgramBinary=(program,binaryFormat,binary,length)=>{GL.recordError(1280)};var _emscripten_glProgramBinary=_glProgramBinary;var _glProgramParameteri=(program,pname,value)=>{GL.recordError(1280)};var _emscripten_glProgramParameteri=_glProgramParameteri;var _glQueryCounterEXT=(id,target)=>{GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)};var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;var _glReadBuffer=x0=>GLctx.readBuffer(x0);var _emscripten_glReadBuffer=_glReadBuffer;var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=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};var 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};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);return heap.subarray(toTypedArrayIndex(pixels,heap),toTypedArrayIndex(pixels+bytes,heap))};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target)}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _emscripten_glReadPixels=_glReadPixels;var _glReleaseShaderCompiler=()=>{};var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;var _glRenderbufferStorage=(x0,x1,x2,x3)=>GLctx.renderbufferStorage(x0,x1,x2,x3);var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;var _glRenderbufferStorageMultisample=(x0,x1,x2,x3,x4)=>GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4);var _emscripten_glRenderbufferStorageMultisample=_glRenderbufferStorageMultisample;var _glResumeTransformFeedback=()=>GLctx.resumeTransformFeedback();var _emscripten_glResumeTransformFeedback=_glResumeTransformFeedback;var _glSampleCoverage=(value,invert)=>{GLctx.sampleCoverage(value,!!invert)};var _emscripten_glSampleCoverage=_glSampleCoverage;var _glSamplerParameterf=(sampler,pname,param)=>{GLctx.samplerParameterf(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameterf=_glSamplerParameterf;var _glSamplerParameterfv=(sampler,pname,params)=>{var param=HEAPF32[params>>2];GLctx.samplerParameterf(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameterfv=_glSamplerParameterfv;var _glSamplerParameteri=(sampler,pname,param)=>{GLctx.samplerParameteri(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameteri=_glSamplerParameteri;var _glSamplerParameteriv=(sampler,pname,params)=>{var param=HEAP32[params>>2];GLctx.samplerParameteri(GL.samplers[sampler],pname,param)};var _emscripten_glSamplerParameteriv=_glSamplerParameteriv;var _glScissor=(x0,x1,x2,x3)=>GLctx.scissor(x0,x1,x2,x3);var _emscripten_glScissor=_glScissor;var _glShaderBinary=(count,shaders,binaryformat,binary,length)=>{GL.recordError(1280)};var _emscripten_glShaderBinary=_glShaderBinary;var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _emscripten_glShaderSource=_glShaderSource;var _glStencilFunc=(x0,x1,x2)=>GLctx.stencilFunc(x0,x1,x2);var _emscripten_glStencilFunc=_glStencilFunc;var _glStencilFuncSeparate=(x0,x1,x2,x3)=>GLctx.stencilFuncSeparate(x0,x1,x2,x3);var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;var _glStencilMask=x0=>GLctx.stencilMask(x0);var _emscripten_glStencilMask=_glStencilMask;var _glStencilMaskSeparate=(x0,x1)=>GLctx.stencilMaskSeparate(x0,x1);var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;var _glStencilOp=(x0,x1,x2)=>GLctx.stencilOp(x0,x1,x2);var _emscripten_glStencilOp=_glStencilOp;var _glStencilOpSeparate=(x0,x1,x2,x3)=>GLctx.stencilOpSeparate(x0,x1,x2,x3);var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{if(GL.currentContext.version>=2){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,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)};var _emscripten_glTexImage2D=_glTexImage2D;var _glTexImage3D=(target,level,internalFormat,width,height,depth,border,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}};var _emscripten_glTexImage3D=_glTexImage3D;var _glTexParameterf=(x0,x1,x2)=>GLctx.texParameterf(x0,x1,x2);var _emscripten_glTexParameterf=_glTexParameterf;var _glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _emscripten_glTexParameterfv=_glTexParameterfv;var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _emscripten_glTexParameteri=_glTexParameteri;var _glTexParameteriv=(target,pname,params)=>{var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)};var _emscripten_glTexParameteriv=_glTexParameteriv;var _glTexStorage2D=(x0,x1,x2,x3,x4)=>GLctx.texStorage2D(x0,x1,x2,x3,x4);var _emscripten_glTexStorage2D=_glTexStorage2D;var _glTexStorage3D=(x0,x1,x2,x3,x4,x5)=>GLctx.texStorage3D(x0,x1,x2,x3,x4,x5);var _emscripten_glTexStorage3D=_glTexStorage3D;var _glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){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,toTypedArrayIndex(pixels,heap));return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0):null;GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _emscripten_glTexSubImage2D=_glTexSubImage2D;var _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,toTypedArrayIndex(pixels,heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}};var _emscripten_glTexSubImage3D=_glTexSubImage3D;var _glTransformFeedbackVaryings=(program,count,varyings,bufferMode)=>{program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)};var _emscripten_glTransformFeedbackVaryings=_glTransformFeedbackVaryings;var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1f=_glUniform1f;var miniTempWebGLFloatBuffers=[];var _glUniform1fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1fv=_glUniform1fv;var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1i=_glUniform1i;var miniTempWebGLIntBuffers=[];var _glUniform1iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform1iv=_glUniform1iv;var _glUniform1ui=(location,v0)=>{GLctx.uniform1ui(webglGetUniformLocation(location),v0)};var _emscripten_glUniform1ui=_glUniform1ui;var _glUniform1uiv=(location,count,value)=>{count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)};var _emscripten_glUniform1uiv=_glUniform1uiv;var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2f=_glUniform2f;var _glUniform2fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2fv=_glUniform2fv;var _glUniform2i=(location,v0,v1)=>{GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2i=_glUniform2i;var _glUniform2iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform2iv=_glUniform2iv;var _glUniform2ui=(location,v0,v1)=>{GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)};var _emscripten_glUniform2ui=_glUniform2ui;var _glUniform2uiv=(location,count,value)=>{count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)};var _emscripten_glUniform2uiv=_glUniform2uiv;var _glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3f=_glUniform3f;var _glUniform3fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3fv=_glUniform3fv;var _glUniform3i=(location,v0,v1,v2)=>{GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3i=_glUniform3i;var _glUniform3iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform3iv=_glUniform3iv;var _glUniform3ui=(location,v0,v1,v2)=>{GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)};var _emscripten_glUniform3ui=_glUniform3ui;var _glUniform3uiv=(location,count,value)=>{count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)};var _emscripten_glUniform3uiv=_glUniform3uiv;var _glUniform4f=(location,v0,v1,v2,v3)=>{GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4f=_glUniform4f;var _glUniform4fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value=value>>2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4fv=_glUniform4fv;var _glUniform4i=(location,v0,v1,v2,v3)=>{GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4i=_glUniform4i;var _glUniform4iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _emscripten_glUniform4iv=_glUniform4iv;var _glUniform4ui=(location,v0,v1,v2,v3)=>{GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)};var _emscripten_glUniform4ui=_glUniform4ui;var _glUniform4uiv=(location,count,value)=>{count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)};var _emscripten_glUniform4uiv=_glUniform4uiv;var _glUniformBlockBinding=(program,uniformBlockIndex,uniformBlockBinding)=>{program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)};var _emscripten_glUniformBlockBinding=_glUniformBlockBinding;var _glUniformMatrix2fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;var _glUniformMatrix2x3fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)};var _emscripten_glUniformMatrix2x3fv=_glUniformMatrix2x3fv;var _glUniformMatrix2x4fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)};var _emscripten_glUniformMatrix2x4fv=_glUniformMatrix2x4fv;var _glUniformMatrix3fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;var _glUniformMatrix3x2fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)};var _emscripten_glUniformMatrix3x2fv=_glUniformMatrix3x2fv;var _glUniformMatrix3x4fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)};var _emscripten_glUniformMatrix3x4fv=_glUniformMatrix3x4fv;var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value=value>>2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;var _glUniformMatrix4x2fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)};var _emscripten_glUniformMatrix4x2fv=_glUniformMatrix4x2fv;var _glUniformMatrix4x3fv=(location,count,transpose,value)=>{count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)};var _emscripten_glUniformMatrix4x3fv=_glUniformMatrix4x3fv;var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _emscripten_glUseProgram=_glUseProgram;var _glValidateProgram=program=>{GLctx.validateProgram(GL.programs[program])};var _emscripten_glValidateProgram=_glValidateProgram;var _glVertexAttrib1f=(x0,x1)=>GLctx.vertexAttrib1f(x0,x1);var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;var _glVertexAttrib1fv=(index,v)=>{GLctx.vertexAttrib1f(index,HEAPF32[v>>2])};var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;var _glVertexAttrib2f=(x0,x1,x2)=>GLctx.vertexAttrib2f(x0,x1,x2);var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;var _glVertexAttrib2fv=(index,v)=>{GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])};var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;var _glVertexAttrib3f=(x0,x1,x2,x3)=>GLctx.vertexAttrib3f(x0,x1,x2,x3);var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;var _glVertexAttrib3fv=(index,v)=>{GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])};var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;var _glVertexAttrib4f=(x0,x1,x2,x3,x4)=>GLctx.vertexAttrib4f(x0,x1,x2,x3,x4);var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;var _glVertexAttrib4fv=(index,v)=>{GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])};var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;var _glVertexAttribDivisor=(index,divisor)=>{GLctx.vertexAttribDivisor(index,divisor)};var _emscripten_glVertexAttribDivisor=_glVertexAttribDivisor;var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribDivisorARB=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorARB=_glVertexAttribDivisorARB;var _glVertexAttribDivisorEXT=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT;var _glVertexAttribDivisorNV=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorNV=_glVertexAttribDivisorNV;var _glVertexAttribI4i=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4i(x0,x1,x2,x3,x4);var _emscripten_glVertexAttribI4i=_glVertexAttribI4i;var _glVertexAttribI4iv=(index,v)=>{GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])};var _emscripten_glVertexAttribI4iv=_glVertexAttribI4iv;var _glVertexAttribI4ui=(x0,x1,x2,x3,x4)=>GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4);var _emscripten_glVertexAttribI4ui=_glVertexAttribI4ui;var _glVertexAttribI4uiv=(index,v)=>{GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])};var _emscripten_glVertexAttribI4uiv=_glVertexAttribI4uiv;var _glVertexAttribIPointer=(index,size,type,stride,ptr)=>{GLctx.vertexAttribIPointer(index,size,type,stride,ptr)};var _emscripten_glVertexAttribIPointer=_glVertexAttribIPointer;var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);var _emscripten_glViewport=_glViewport;var _glWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);GLctx.waitSync(GL.syncs[sync],flags,timeout)};var _emscripten_glWaitSync=_glWaitSync;var _emscripten_has_asyncify=()=>0;var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var doRequestFullscreen=(target,strategy)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)};var _emscripten_request_fullscreen_strategy=(target,deferUntilInEventHandler,fullscreenStrategy)=>{var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)};var _emscripten_request_pointerlock=(target,deferUntilInEventHandler)=>{target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)};var abortOnCannotGrowMemory=requestedSize=>{abort("OOM")};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;abortOnCannotGrowMemory(requestedSize)};var _emscripten_sample_gamepad_data=()=>{try{if(navigator.getGamepads)return(JSEvents.lastGamepadState=navigator.getGamepads())?0:-1}catch(e){navigator.getGamepads=null}return-1};var registerBeforeUnloadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString)=>{var beforeUnloadEventHandlerFunc=(e=event)=>{var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_beforeunload_callback_on_thread=(userData,callbackfunc,targetThread)=>{if(typeof onbeforeunload=="undefined")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,"beforeunload")};var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=event)=>{var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_blur_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread);var _emscripten_set_element_css_size=(target,width,height)=>{target=findEventTarget(target);if(!target)return-4;target.style.width=width+"px";target.style.height=height+"px";return 0};var _emscripten_set_focus_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread);var fillFullscreenChangeEventData=eventStruct=>{var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement?.id||"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}};var registerFullscreenChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=(e=event)=>{var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_fullscreenchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread)};var registerGamepadEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=(e=event)=>{var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_gamepadconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread)};var _emscripten_set_gamepaddisconnected_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(_emscripten_sample_gamepad_data())return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread)};var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=e=>{var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_keydown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);var _emscripten_set_keypress_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);var _emscripten_set_keyup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);var _emscripten_set_main_loop=(func,fps,simulateInfiniteLoop)=>{var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-(rect.left|0);HEAP32[idx+14]=e.clientY-(rect.top|0)};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=event)=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_mousedown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);var _emscripten_set_mouseenter_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,"mouseenter",targetThread);var _emscripten_set_mouseleave_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,"mouseleave",targetThread);var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var _emscripten_set_mouseup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);var fillPointerlockChangeEventData=eventStruct=>{var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement?.id||"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)};var registerPointerlockChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=(e=event)=>{var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_pointerlockchange_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mozpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"webkitpointerlockchange",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"mspointerlockchange",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,"pointerlockchange",targetThread)};var registerUiEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=(e=event)=>{if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=0;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset|0;HEAP32[uiEvent+32>>2]=pageYOffset|0;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_resize_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-(targetRect.left|0);HEAP32[idx+10]=t.clientY-(targetRect.top|0);idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_touchcancel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);var _emscripten_set_touchend_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);var _emscripten_set_touchmove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);var _emscripten_set_touchstart_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);var fillVisibilityChangeEventData=eventStruct=>{var visibilityStates=["hidden","visible","prerender","unloaded"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState};var registerVisibilityChangeEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=(e=event)=>{var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_visibilitychange_callback_on_thread=(userData,useCapture,callbackfunc,targetThread)=>{if(!specialHTMLTargets[1]){return-4}return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,"visibilitychange",targetThread)};var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>document.title=UTF8ToString(title);var _emscripten_sleep=()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var 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};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var 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];var 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};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":getWeekBasedYear,"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":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":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":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":date=>date.tm_zone,"%%":()=>"%"};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};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var autoResumeAudioContext=(ctx,elements)=>{if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return f(ptr,...args)};var dynCall=(sig,ptr,args=[])=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr)(...args);return rtn};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i+1)}var wasmImports={q:___cxa_begin_catch,u:___cxa_end_catch,a:___cxa_find_matching_catch_2,h:___cxa_find_matching_catch_3,G:___cxa_rethrow,n:___cxa_throw,bb:___cxa_uncaught_exceptions,b:___resumeException,ha:___syscall_fcntl64,hb:___syscall_ioctl,ib:___syscall_openat,Ed:__emscripten_fs_load_embedded_files,jb:__emscripten_get_now_is_monotonic,C:_abort,Xa:_eglBindAPI,gb:_eglChooseConfig,Oa:_eglCreateContext,Qa:_eglCreateWindowSurface,Pa:_eglDestroyContext,Ra:_eglDestroySurface,ob:_eglGetConfigAttrib,ba:_eglGetDisplay,Na:_eglGetError,Ya:_eglInitialize,Sa:_eglMakeCurrent,Ma:_eglQueryString,Ta:_eglSwapBuffers,Ua:_eglSwapInterval,ab:_eglTerminate,Wa:_eglWaitGL,Va:_eglWaitNative,Qc:_emscripten_asm_const_int,p:_emscripten_asm_const_int_sync_on_main_thread,na:_emscripten_asm_const_ptr_sync_on_main_thread,oa:_emscripten_cancel_main_loop,ia:_emscripten_date_now,Ha:_emscripten_exit_fullscreen,Ka:_emscripten_exit_pointerlock,td:_emscripten_force_exit,x:_emscripten_get_device_pixel_ratio,t:_emscripten_get_element_css_size,la:_emscripten_get_gamepad_status,D:_emscripten_get_now,vc:_emscripten_get_num_gamepads,La:_emscripten_get_screen_size,$f:_emscripten_glActiveTexture,_f:_emscripten_glAttachShader,bd:_emscripten_glBeginQuery,Da:_emscripten_glBeginQueryEXT,Jc:_emscripten_glBeginTransformFeedback,Zf:_emscripten_glBindAttribLocation,Yf:_emscripten_glBindBuffer,Gc:_emscripten_glBindBufferBase,Hc:_emscripten_glBindBufferRange,Xf:_emscripten_glBindFramebuffer,Wf:_emscripten_glBindRenderbuffer,Nb:_emscripten_glBindSampler,Vf:_emscripten_glBindTexture,Fb:_emscripten_glBindTransformFeedback,Oc:_emscripten_glBindVertexArray,va:_emscripten_glBindVertexArrayOES,Uf:_emscripten_glBlendColor,Tf:_emscripten_glBlendEquation,Sf:_emscripten_glBlendEquationSeparate,Rf:_emscripten_glBlendFunc,Qf:_emscripten_glBlendFuncSeparate,Sc:_emscripten_glBlitFramebuffer,Pf:_emscripten_glBufferData,Of:_emscripten_glBufferSubData,Nf:_emscripten_glCheckFramebufferStatus,Mf:_emscripten_glClear,ic:_emscripten_glClearBufferfi,jc:_emscripten_glClearBufferfv,lc:_emscripten_glClearBufferiv,kc:_emscripten_glClearBufferuiv,Lf:_emscripten_glClearColor,Kf:_emscripten_glClearDepthf,Jf:_emscripten_glClearStencil,Wb:_emscripten_glClientWaitSync,If:_emscripten_glColorMask,Hf:_emscripten_glCompileShader,Gf:_emscripten_glCompressedTexImage2D,gd:_emscripten_glCompressedTexImage3D,Ff:_emscripten_glCompressedTexSubImage2D,fd:_emscripten_glCompressedTexSubImage3D,gc:_emscripten_glCopyBufferSubData,Ef:_emscripten_glCopyTexImage2D,Df:_emscripten_glCopyTexSubImage2D,hd:_emscripten_glCopyTexSubImage3D,Cf:_emscripten_glCreateProgram,Bf:_emscripten_glCreateShader,Af:_emscripten_glCullFace,zf:_emscripten_glDeleteBuffers,yf:_emscripten_glDeleteFramebuffers,xf:_emscripten_glDeleteProgram,dd:_emscripten_glDeleteQueries,Fa:_emscripten_glDeleteQueriesEXT,wf:_emscripten_glDeleteRenderbuffers,Pb:_emscripten_glDeleteSamplers,vf:_emscripten_glDeleteShader,Xb:_emscripten_glDeleteSync,uf:_emscripten_glDeleteTextures,Eb:_emscripten_glDeleteTransformFeedbacks,Nc:_emscripten_glDeleteVertexArrays,ua:_emscripten_glDeleteVertexArraysOES,tf:_emscripten_glDepthFunc,sf:_emscripten_glDepthMask,rf:_emscripten_glDepthRangef,qf:_emscripten_glDetachShader,pf:_emscripten_glDisable,of:_emscripten_glDisableVertexAttribArray,nf:_emscripten_glDrawArrays,$b:_emscripten_glDrawArraysInstanced,qa:_emscripten_glDrawArraysInstancedANGLE,nb:_emscripten_glDrawArraysInstancedARB,od:_emscripten_glDrawArraysInstancedEXT,pb:_emscripten_glDrawArraysInstancedNV,Zc:_emscripten_glDrawBuffers,md:_emscripten_glDrawBuffersEXT,ra:_emscripten_glDrawBuffersWEBGL,mf:_emscripten_glDrawElements,_b:_emscripten_glDrawElementsInstanced,pa:_emscripten_glDrawElementsInstancedANGLE,lb:_emscripten_glDrawElementsInstancedARB,mb:_emscripten_glDrawElementsInstancedEXT,nd:_emscripten_glDrawElementsInstancedNV,kd:_emscripten_glDrawRangeElements,lf:_emscripten_glEnable,kf:_emscripten_glEnableVertexAttribArray,ad:_emscripten_glEndQuery,Ca:_emscripten_glEndQueryEXT,Ic:_emscripten_glEndTransformFeedback,Zb:_emscripten_glFenceSync,jf:_emscripten_glFinish,hf:_emscripten_glFlush,gf:_emscripten_glFramebufferRenderbuffer,ff:_emscripten_glFramebufferTexture2D,Pc:_emscripten_glFramebufferTextureLayer,ef:_emscripten_glFrontFace,df:_emscripten_glGenBuffers,bf:_emscripten_glGenFramebuffers,ed:_emscripten_glGenQueries,Ga:_emscripten_glGenQueriesEXT,af:_emscripten_glGenRenderbuffers,Qb:_emscripten_glGenSamplers,$e:_emscripten_glGenTextures,Db:_emscripten_glGenTransformFeedbacks,Mc:_emscripten_glGenVertexArrays,ta:_emscripten_glGenVertexArraysOES,cf:_emscripten_glGenerateMipmap,_e:_emscripten_glGetActiveAttrib,Ze:_emscripten_glGetActiveUniform,bc:_emscripten_glGetActiveUniformBlockName,cc:_emscripten_glGetActiveUniformBlockiv,ec:_emscripten_glGetActiveUniformsiv,Ye:_emscripten_glGetAttachedShaders,Xe:_emscripten_glGetAttribLocation,We:_emscripten_glGetBooleanv,Rb:_emscripten_glGetBufferParameteri64v,Ve:_emscripten_glGetBufferParameteriv,Ue:_emscripten_glGetError,Te:_emscripten_glGetFloatv,uc:_emscripten_glGetFragDataLocation,Se:_emscripten_glGetFramebufferAttachmentParameteriv,Sb:_emscripten_glGetInteger64i_v,Ub:_emscripten_glGetInteger64v,Kc:_emscripten_glGetIntegeri_v,Re:_emscripten_glGetIntegerv,sb:_emscripten_glGetInternalformativ,zb:_emscripten_glGetProgramBinary,Pe:_emscripten_glGetProgramInfoLog,Qe:_emscripten_glGetProgramiv,xa:_emscripten_glGetQueryObjecti64vEXT,za:_emscripten_glGetQueryObjectivEXT,wa:_emscripten_glGetQueryObjectui64vEXT,_c:_emscripten_glGetQueryObjectuiv,ya:_emscripten_glGetQueryObjectuivEXT,$c:_emscripten_glGetQueryiv,Aa:_emscripten_glGetQueryivEXT,Oe:_emscripten_glGetRenderbufferParameteriv,Hb:_emscripten_glGetSamplerParameterfv,Ib:_emscripten_glGetSamplerParameteriv,Me:_emscripten_glGetShaderInfoLog,Ke:_emscripten_glGetShaderPrecisionFormat,Je:_emscripten_glGetShaderSource,Ne:_emscripten_glGetShaderiv,Ie:_emscripten_glGetString,hc:_emscripten_glGetStringi,Tb:_emscripten_glGetSynciv,He:_emscripten_glGetTexParameterfv,Ge:_emscripten_glGetTexParameteriv,Ec:_emscripten_glGetTransformFeedbackVarying,dc:_emscripten_glGetUniformBlockIndex,fc:_emscripten_glGetUniformIndices,De:_emscripten_glGetUniformLocation,Fe:_emscripten_glGetUniformfv,Ee:_emscripten_glGetUniformiv,wc:_emscripten_glGetUniformuiv,Cc:_emscripten_glGetVertexAttribIiv,Bc:_emscripten_glGetVertexAttribIuiv,Ae:_emscripten_glGetVertexAttribPointerv,Ce:_emscripten_glGetVertexAttribfv,Be:_emscripten_glGetVertexAttribiv,ze:_emscripten_glHint,wb:_emscripten_glInvalidateFramebuffer,vb:_emscripten_glInvalidateSubFramebuffer,ye:_emscripten_glIsBuffer,xe:_emscripten_glIsEnabled,we:_emscripten_glIsFramebuffer,ve:_emscripten_glIsProgram,cd:_emscripten_glIsQuery,Ea:_emscripten_glIsQueryEXT,ue:_emscripten_glIsRenderbuffer,Ob:_emscripten_glIsSampler,te:_emscripten_glIsShader,Yb:_emscripten_glIsSync,se:_emscripten_glIsTexture,Cb:_emscripten_glIsTransformFeedback,Lc:_emscripten_glIsVertexArray,sa:_emscripten_glIsVertexArrayOES,re:_emscripten_glLineWidth,qe:_emscripten_glLinkProgram,Bb:_emscripten_glPauseTransformFeedback,pe:_emscripten_glPixelStorei,oe:_emscripten_glPolygonOffset,yb:_emscripten_glProgramBinary,xb:_emscripten_glProgramParameteri,Ba:_emscripten_glQueryCounterEXT,ld:_emscripten_glReadBuffer,ne:_emscripten_glReadPixels,me:_emscripten_glReleaseShaderCompiler,le:_emscripten_glRenderbufferStorage,Rc:_emscripten_glRenderbufferStorageMultisample,Ab:_emscripten_glResumeTransformFeedback,ke:_emscripten_glSampleCoverage,Kb:_emscripten_glSamplerParameterf,Jb:_emscripten_glSamplerParameterfv,Mb:_emscripten_glSamplerParameteri,Lb:_emscripten_glSamplerParameteriv,je:_emscripten_glScissor,ie:_emscripten_glShaderBinary,he:_emscripten_glShaderSource,ge:_emscripten_glStencilFunc,fe:_emscripten_glStencilFuncSeparate,ee:_emscripten_glStencilMask,de:_emscripten_glStencilMaskSeparate,ce:_emscripten_glStencilOp,be:_emscripten_glStencilOpSeparate,ae:_emscripten_glTexImage2D,jd:_emscripten_glTexImage3D,$d:_emscripten_glTexParameterf,_d:_emscripten_glTexParameterfv,Zd:_emscripten_glTexParameteri,Yd:_emscripten_glTexParameteriv,ub:_emscripten_glTexStorage2D,tb:_emscripten_glTexStorage3D,Xd:_emscripten_glTexSubImage2D,id:_emscripten_glTexSubImage3D,Fc:_emscripten_glTransformFeedbackVaryings,Wd:_emscripten_glUniform1f,Vd:_emscripten_glUniform1fv,Ud:_emscripten_glUniform1i,Td:_emscripten_glUniform1iv,tc:_emscripten_glUniform1ui,pc:_emscripten_glUniform1uiv,Sd:_emscripten_glUniform2f,Rd:_emscripten_glUniform2fv,Qd:_emscripten_glUniform2i,Pd:_emscripten_glUniform2iv,sc:_emscripten_glUniform2ui,oc:_emscripten_glUniform2uiv,Od:_emscripten_glUniform3f,Nd:_emscripten_glUniform3fv,Md:_emscripten_glUniform3i,Ld:_emscripten_glUniform3iv,rc:_emscripten_glUniform3ui,nc:_emscripten_glUniform3uiv,Kd:_emscripten_glUniform4f,Jd:_emscripten_glUniform4fv,Id:_emscripten_glUniform4i,Hd:_emscripten_glUniform4iv,qc:_emscripten_glUniform4ui,mc:_emscripten_glUniform4uiv,ac:_emscripten_glUniformBlockBinding,Gd:_emscripten_glUniformMatrix2fv,Yc:_emscripten_glUniformMatrix2x3fv,Wc:_emscripten_glUniformMatrix2x4fv,Fd:_emscripten_glUniformMatrix3fv,Xc:_emscripten_glUniformMatrix3x2fv,Uc:_emscripten_glUniformMatrix3x4fv,Dd:_emscripten_glUniformMatrix4fv,Vc:_emscripten_glUniformMatrix4x2fv,Tc:_emscripten_glUniformMatrix4x3fv,Cd:_emscripten_glUseProgram,Bd:_emscripten_glValidateProgram,Ad:_emscripten_glVertexAttrib1f,zd:_emscripten_glVertexAttrib1fv,yd:_emscripten_glVertexAttrib2f,xd:_emscripten_glVertexAttrib2fv,wd:_emscripten_glVertexAttrib3f,vd:_emscripten_glVertexAttrib3fv,ud:_emscripten_glVertexAttrib4f,sd:_emscripten_glVertexAttrib4fv,Gb:_emscripten_glVertexAttribDivisor,ag:_emscripten_glVertexAttribDivisorANGLE,qb:_emscripten_glVertexAttribDivisorARB,pd:_emscripten_glVertexAttribDivisorEXT,rb:_emscripten_glVertexAttribDivisorNV,Ac:_emscripten_glVertexAttribI4i,yc:_emscripten_glVertexAttribI4iv,zc:_emscripten_glVertexAttribI4ui,xc:_emscripten_glVertexAttribI4uiv,Dc:_emscripten_glVertexAttribIPointer,rd:_emscripten_glVertexAttribPointer,qd:_emscripten_glViewport,Vb:_emscripten_glWaitSync,F:_emscripten_has_asyncify,kb:_emscripten_memcpy_js,Ia:_emscripten_request_fullscreen_strategy,aa:_emscripten_request_pointerlock,cb:_emscripten_resize_heap,ma:_emscripten_sample_gamepad_data,I:_emscripten_set_beforeunload_callback_on_thread,U:_emscripten_set_blur_callback_on_thread,w:_emscripten_set_canvas_element_size,B:_emscripten_set_element_css_size,V:_emscripten_set_focus_callback_on_thread,L:_emscripten_set_fullscreenchange_callback_on_thread,ka:_emscripten_set_gamepadconnected_callback_on_thread,ja:_emscripten_set_gamepaddisconnected_callback_on_thread,O:_emscripten_set_keydown_callback_on_thread,M:_emscripten_set_keypress_callback_on_thread,N:_emscripten_set_keyup_callback_on_thread,Le:_emscripten_set_main_loop,_:_emscripten_set_mousedown_callback_on_thread,Y:_emscripten_set_mouseenter_callback_on_thread,X:_emscripten_set_mouseleave_callback_on_thread,$:_emscripten_set_mousemove_callback_on_thread,Z:_emscripten_set_mouseup_callback_on_thread,P:_emscripten_set_pointerlockchange_callback_on_thread,K:_emscripten_set_resize_callback_on_thread,Q:_emscripten_set_touchcancel_callback_on_thread,S:_emscripten_set_touchend_callback_on_thread,R:_emscripten_set_touchmove_callback_on_thread,T:_emscripten_set_touchstart_callback_on_thread,J:_emscripten_set_visibilitychange_callback_on_thread,W:_emscripten_set_wheel_callback_on_thread,Ja:_emscripten_set_window_title,E:_emscripten_sleep,db:_environ_get,eb:_environ_sizes_get,fa:_fd_close,fb:_fd_read,_a:_fd_seek,ga:_fd_write,ca:invoke_diii,da:invoke_fiii,g:invoke_i,c:invoke_ii,e:invoke_iii,i:invoke_iiii,l:invoke_iiiii,o:invoke_iiiiii,s:invoke_iiiiiii,ea:invoke_iiiiiiii,A:invoke_iiiiiiiiiiii,Za:invoke_jiiii,j:invoke_v,k:invoke_vi,d:invoke_vii,f:invoke_viii,m:invoke_viiii,y:invoke_viiiii,H:invoke_viiiiii,r:invoke_viiiiiii,v:invoke_viiiiiiiiii,z:invoke_viiiiiiiiiiiiiii,$a:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["cg"])();var ___cxa_free_exception=a0=>(___cxa_free_exception=wasmExports["__cxa_free_exception"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["eg"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["fg"])(a0);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["gg"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["hg"])(a0);var stackSave=()=>(stackSave=wasmExports["ig"])();var stackRestore=a0=>(stackRestore=wasmExports["jg"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["kg"])(a0);var ___cxa_decrement_exception_refcount=a0=>(___cxa_decrement_exception_refcount=wasmExports["lg"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["mg"])(a0);var ___cxa_can_catch=(a0,a1,a2)=>(___cxa_can_catch=wasmExports["ng"])(a0,a1,a2);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["og"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["pg"])(a0,a1,a2,a3,a4);var dynCall_ji=Module["dynCall_ji"]=(a0,a1)=>(dynCall_ji=Module["dynCall_ji"]=wasmExports["qg"])(a0,a1);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["rg"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiiii=Module["dynCall_jiiii"]=(a0,a1,a2,a3,a4)=>(dynCall_jiiii=Module["dynCall_jiiii"]=wasmExports["sg"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["tg"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["ug"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["vg"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=400924;function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/eulamadness.wasm b/eulamadness.wasm index ebdc0d22366a2dbc492038fc3d4b7a2baca65676..daea0bc435af273c495091270e8da4205616f662 100755 GIT binary patch delta 203746 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 ogH6%P%|~r3}VoEXVVI00Qk?+W-In delta 198704 zcmcG%2Y?kt@;^S^^U}O|30cA>c<+&Rfh7wFqKpAiOm}*o=b7+4(M3-&eZ4!+T@WP8 z!T^oLMKUaLfdwQiIY?N7NKPU-Dj=Evr+Qvm(%pT3-#^Rl^mJEuS9e!eS5;T{oL=$F zph3?}+s~ag)|UNMv71MD-LiIs|E75G_kD%pKT!0-n(AUL=a}b+M^ROUF=ppBRdLvv zo8gTjY@DlzvnxsxQgxeRciLRKs@jl>JWhbyTrA11GL46Ilwr3kcBI*oxXlJ2-h!!| zscKf1s;QdYjUan~GZ$lA(;l?jZTBdRZCp{g-REwcpInMZ4PQ+0Do+@$6PL(TXmvPG{dCjH*tAVGfoY~f1Ao|4!i1hDh&V4G{50S8yuXY&lIzrzfO*w zyD&Bk{aglp#Zf8}xreeK2rhiWBVZ(@`hwR*;p$657!J*n5=uzgvK-%pN zwOkno!!H`@aA*xGIyB(K9Vkq*tA6?K9{N}9o_hj35O6pm5Gwi{MW*{Tj&9=^ZXoI~ ze-|ikJ`?zpIU!Ki{4P+%+#4tta55+UVK|)_NTMg+sfKzI(O`4pd`X*To}dS20T5Tapp zIPgS9)um7qxSMe|eh}bpB@)DghE~SmFTgASP`cOaX;h&q{o4FCdxd-bHpOq30T8s0 zd*~ncSr5*&Y60FjSxXLRS`NK9=!N5rJ1h|SmvN87;cu1;+d#J59vdU>M9`Un@dk?28_br1@uVg&8@(w?4q|Co7$%kqR)9qO z0WcmmX9}k|Bs;_g9@CKWIoStnfp>w|j;Wc;bGgIIbC{7gGo<68=+1wY<8QP>mcO)9 zx;yxr?Z93B+D<8U@weJ3!&Tm{o${lfzuivR>gVsYQ*su0cy>Ewfrqzmr_A^8ciSmH zc=&rr_VB;8Q&xER`|Xrv9{xc);UBhB=6d)??UXql{&72{$iqKrr_A>7 zPunT8JX%Q#Qw*lh_ipiDP;=G&>Tk9q>VE$$zi|HK9pb#9-O#V=i`AamXwN`(V2-+7 z$0PD{4B_SaNasnrsZUZT+pPEkb-w+e=eWmnK%MU1rhTPfbARtT-5vCb}lL#<)hgM!H70_WAevcl)>dxA}kYm-yHCm-^@XXZk1m z^R@B*5&m!def(Yho&7g_7k$6@j`GXgM7R7fzHeN zMg2GZf_`5ARsTglrJvM~>qqs&`j7fg`VV@}Mty_6UN6zt>HU4Zd{fk`wl3-=?*RB}XQ6z~^c3dEzzolH`JCpNDxXt4ljXC(Gf6%tdM3!{c+WWb9P1e)pEF&Hv|nu- z?5i9@Y#r@0TtC}KdA`$vNh3YOJwu&edwSzJgxr=jr3= zqIUP>40c}gO;EdeE~#VmKF)7FKY8YB=hSijBLM8``O4D;U<1_7o-gr!-Zfeutad`E zi`vnXij(OT7ZLfY#-J^fw z8RVJdEO72tm%H=Te9utNpd4p!=Mc|e&j`;j&-Z#?CsEv0JTK{M^wprop|(}}O8H!& zFO$!u`Vu_P=|gRc^$*c|@P77wU)f zgZj_<*UkccvTc{1vs2%u@6c!H)Ag+|$+`dEFxy#TrBXR^9ahPyetISbT0`?q?5I#SQqN9e=#Vfs*gls;JhMjw)+ z3wS4;NIfi?B3+w=q|g#z23dfz1ID`dyRXwdzE{odxiNy#R@rd-E-VU?w{SW z-Lu>?-G%NM?rH9+?kVoc?gIBD_eA#u_c-@v`&joF_W{R#$7uH`cNhD&?tJ$?$6m(> z_i*sg2MEYu{*twBgz?ZKyUx6Iy?5K#n$0>!+DoUoB4?sP@sm)_QBb zv>sY_t((?W`%3Ggb=JPrI%yrXToii4b=`H%b=7snb=h^vbg^ts%Gp#uMA<&CzlzxL`YFK>5kbN%T0!L`M;*|pJC;@aR^?^@?t>ssSl?ONqp>004h z?po$5P?xwCyB6WO(6zud-}Rkqo@=gaj_aUnx9foGC)Xa=Uf0jAL#}4aF8@yd4*zCE<->PG)Sb&`F9 zf4zS)rsq2UX4_hSH`n+0?d<64TJ2xu@8tN>HP=7KKi=NaQRttZ;KlD z=O5!A?H}b|U>oZ1=O5@F;P3A@{X_hN{KCJ{cEkR)zqh}azo&nn?TWL9zq@~&?Xt6* z|0{oidfk`n|J6xMx08RjXP0NEr=x$g{U`f1`&Hjz-*M+L=ePFD{EYpO?~tvp?I+)K z^|14hbH8t|FXyQ9sB?#Jq-%e+~y{~VX zKhM|4_qA`E^N_8lue)!Uy_;`Rj=!t#XU|uN?Cd+_>E!F^yY9W_y<)%UJ*fWXz2H6X zJ?H(^`-}Ii_l)*-YwqE-c8<(-V*Ny?|Sb#@Auv{-qqe!-VM&Po+aKD-qW5lp6SkJ^S*Pw zUwxD9XPrlE-+D)S&p6NePC4_uUweCbdw9EfyLi9!cJ$uxT=QJ^T=ZP)aB0Q&Yx^E z>@(~Wyff@w)TPcPcqal|>=d_oFLo}9q%V}|rQfNx)4o%_lRgUNobVm@9rbllkNAG} z9q{e*?eXpM?euN;{pj1`+l2THzO}yZeQSKHeXD#ce9L{yd`o>x5WmQ`(D$8ho^P&i zj&GK4CSqpzru(M)ruZiN3VaiM<7M$bIY;|O`M&jy^yT|T`1*Q#d%JtDcz*MA_U6iF z|CHk#<{Ro8;v4My#wUDzygj{Nc`td+dpdcqd(PUwa}M;;-vKCoh<%8Ct4cpRoRig_ zww{opZWlM$J~#rmJqCBXIMde~rRMbTb;09HUoQUM@LolC@3UX=4n)`NvtP#ZlxK^F zx_UBVPIx9eCpZsy_SpA&_ISFxwt2RDeszw<5d7%beCM)sS>!)ey5>cmgjOVit#+@r%REtKo`{wMbYy#C)Y%n%TI@ zyQ%wR89{q1TT27spxT%##umVA8DjdYR%ouGK&s_2ufr%ov_k2Kk^#RSNwxAL+R9IW zsMTNfnK&L{^Q)>pzHNv(uZ@l+YGeZP(S@RtaNx3*rTo+ZcHx{3gTws<|attCZATZ-44k7Q(& z>AXG_)$0atgK9az&3|R2Ilj3+$OGHW5gBusE=$<*>dpU9~*<_ zRm?_iyD`=LA~Um5w`o@Qpo>`#VxT%YIV~C2)nOpa-Z)NGB2)w$jYYO3RsljCve6$6Cz-TC~kdES3WigFS{) zqj1JBud(ht6-_-OyNJgUF?Q@RYPk|{1_CLuc*@jueL^OO5>k#Hrm~6VKkHUbior(;lGRPA zThG=Q)rrL&c|&tg-SW>5nk9z}4eT#NhVmrvM~_+wVMc^KR3_1ofY$MjX$%M}Ll~Bc zClNOqqbr9wZ|W;jS3fKDPg;;F{os!uFyTk)mdgq{f;#+JB)LY5;1*)7}s_X1{ZfwWEV*>dZAy zHfzlG7glY4)MoBznU*w2&Te883i^5U`c(XyZsR^j{+2W&e~bCJ@vb{IT&v7QM)@XQ zNjo&G-Z*J^iMVVY7g#|Ce>a5sGWgpT0az?t=Jmz%`iLazJyiLo((A+_{PEKLR5}b{ zdMpaKN&JRA6w)J96rd7UKNM;Z#}};Buw{pxVK=(n5wzpS(cU=2-V4O5DMQ)P9!|?i z%;pZV4DPy9mV07o1n)6eD=!8qgMVf<`s0uzmTIix!Mm4KHU=9siykglClLqdU2#Yv zv@btg>B+<_k;)X=Qsw5BmWx+bPNIF+?ko@J!n{Y)nLk!Ttj{ZYs3;u=}?t zr&Ff=kG*kMG%FF%r>!gfpP*Tp3ftBCze6)fnX(>#Fl zJn?=?C&1=$z~-d^gZD$W3Av(xEf6q$f2dO{vp0Q93+99t%ySD`$ z0r?il4g%qzGceKyfsGOnG}pX*kpJp7r@it)+vtEqM~d_$i&;RFQg0%D%E}adgJnH5DI*vAZc7pP?4o@Y8B)m^i(~dgc2C-wFFqNLGx?iYj5*a zL;AhmJe`a_VbG6p5dmNoCOsf5tyQr1y!iT)WZfG3dMyi(qcKrHr~q-mQ?LI~v+PG? zAA7oOGKx3fY1=%LOjb_P^~vgFN5BIWGGaB-VVwx-Z#;dZ*phCTYu(St~9U)Q=8Ie%W)^;^= zEE{MTL>z=U?5R|;>L5;bFs1=i-d^YlGO!_s6%Dgrx{*UMClIjul-~MB`a~t3qJ9i( z1Wh#DVZtijrZl!R)a4`P;5^8ZVoX(H>ZQ7Ub;>>c#dl0}b5Bw}Xy@sA$>< zbLHDvY0}6FI90+a+14OOEUtlfsz+h(e?ck12& z2T9t%;p96p9Li?bZk#tFJ(FX72%tge6&ZFJh{d}roBHC`PU}Cy{3QFWF!e=9iCbZ% zX;oTbdDIHqr$e&&J)soELzt<#c zrS9|Iy)=PWyw{Cp^|ODAS*ZW^w^6rkx$|}{|FhLqTP%;v_2$}-B+EPeQKK;R z2NAGjdDJl^GY})v!7u{ZRh6K5`mZ#2Nh@Oa$)8q+#VxW#k(tSS^wV#&elQQg zS`_%&Jp5_n=DpNJ>(w#^Q*`-3C7{MtMKT;k)PORy%rIbd4~%;~%@_Y?ekojFA3}rU zxRBMyZ1kDL<@3)HaFIrx@t;*`3|z_u7T*_$RR>VydODe)j)iQj0VaM$Ek2>zdD)2osmIV%*YyMF) zcxpRrhk>uu6c3li>MRA^EdcqWUbYc1e%Wp&{j*Nx3j{>=7{EbHlBoe%(8#4!P}_fI zv(e_-e|Bdp%@;oZh>bVbd>$eT`^nG$5FG9B*regG9@d3iR|hhvVVrYaA2#Oo$kP7C zzg{NT;(t{xGjxMA3X>cW*k&{GH<)Ms70fxeo??SaYS;;@ZP1yeAfM6!le^c3w4j5i zuNwlAEf3m|W=SAcQ6U${k}30tHOlM)^UIIa0)Z102Roov#!lN6m;+}dDA+&AabMYV zARb@?%)Bo$2*r6{gz>Wbi?p2OJy_s7Rqnn7ZI(3|Z92YI2^6a^W0T3Sp3yPb0ly^0 zM|T+tR3qmjgLR;_7DZst$Ey$wl;}2s&Duu5h(`AhP!RRjAT^uz0(zFQQq0eCvIwDZ zIe%wI%usGk|4|q~i41q!sqACsOS!duy$69&paw`DMt(_Q|J;tOObNXGa*XjKY1u`A zqeq(WcB_{2%V=g`v%?@}YTUp-XNT0lFU~McXpDAFE66T#g;EU1V=#;xgMLa0(LBb} zs2J!ctC$vv!!s5~OXgL%#-n9&DTMs9b_7;Eg(^fHR72}hWdq(a=pRG?u;>8*L691e zjyh>g33GahRRTDP%)t@ni`|VfXq=UQ^hj&1FTAJIAJt0H`D`@B;Hp7a+_)&2MAt6! z(_$bnKf-P#wJ+2jlE&xPzUr6=U;{vm%}6uz)vrQvfct_B7Wo(e8I=p~>l$WBUtn5; zsE(^4PAnbdnLFDI^mr-rIWSDcp37<{Ix+Bb;kX`Ov81Q5 z5rs~iwq0&3V)G_DFvMKky*YK2O)(U`EV6@1QW+i;Q-&!idJ5uDT2Dt95J3erfd0I} zI`0Jkh(Z zJ}8=q_v&B2UGDG|6f9|%*hw5RSv5wVG8cVal+@o+92vGQiTE;y&dv z?xG^n6je#;4H&a7o7eh0l0G!L!GW#ZmO<DA4|L{dn}GY~ee zZc0O6D4=cHnv}{14K?XB=Cr&NvtQqZ5A2&rd9X2vJoN&(YT}~d#31t6W=UL8r^OA^ z#n?B|{JLL?xh8K_>RvbV<^)-7#o8wf%3Ul}&I3~m`}J>S541_738IHN{q8q^>(|(I z4OM~>%{1>d8?!OyyXKaAu?dMrT9XM=J{Q|Q(CG2RjwFT>`?$okpmM56&?Q86Rr4=H z#=6~#(PNhq=;u^S*U({Hl3lV{JoM39_4abZ9&gl9$GtkDl7<;IW_o^FgS*vphxNIAe)!ft88VilsUmT@*kK_Xadq~p&1CS0zN;qAPovhMh?e3!>WNu$;b)pbqs}K zter%CT1J7;gSeLiXbh$&67GVruD3|swl+Fz#Az|quGnOZTT(DF*kfjmZ_E2`+NW>x zZHV})k#)zEOY4*sUzTkl2Z;+o z2&B?l&%2ya{$yo44Qb?-E;4>XSV5V7TT97E=*=fNv zt5~WNi|KhAxg`X-?gE)(C%@OUCKb++@^a1zQST$DGKjuF5f{uI(`MdGi9@GX1tl(? zp6*$xLarhIAEKvY(_4ol*sHYe0n>V6ka-4g^brY`k4mZ1e167DlutF3ry zgnFplSfZN32tw+`5eLZCp23^apCA;A^0TWtCOT3mXUo~u8;o~Y3K4@^sTlDR7|A&# z7*Yw~Gmv=X9wAB?H2V=Y#oRr+YTOd~0Om_Y$VEYWTm-z?_=tfBL3MznXiv061|1o^ zVwf-t#e8;38zdp^W8u*-J_#G)cH{o+oVZOsZec|Yu(6h^!EP*5vf(ZQ!3D&5lNUxQ zNMd^~G@_3^UUb|L8uUrERmZGFEshNHM$rdlz9w2C-I|Pq(1r(_xpOkj?Q>e*^KD5Q z6b$f+9S5UCQEP5;@|p)F&%^jZo+E3i!ATG4+P(0Vx$SwmA3^)%u%-k`Komr}a4!YZHqQg4DC?T&B;W>@*wJr8){<`3F;al_HV>xw+r{B?8Y**B4Y?b9T zrs(B}0M4w5c$J|g`B*xvmBAA9LSTn-H3GI#agTvUBH|u$=b-!G@wO=q0-#xc(E+x? zOezjnSWGIoU8>+Hv8j~Ij3Zmjr;0!G)dQB)3Mj9E9u9NRsw%Z?Kt!)W*juyJ5*B03 zNwNk^TFITx6u+6iWDKMHor=3**wer_5zg%n14F9u^%%3m;%fYtvF0E=dQ3DI;W2Nb zd1!Gxeqy3oaY;4ab%OaI9wR53Z{ab&!0f%GIWHM!uEE>P@#a}PipH50msaCLCYcW| zZO%^>n4d3wfbaX#oWC?B=cil-wl;nY{XI9D{vMu0e}A1oe}~JznWUl;i6w_V)?Ih!m%J2{w?m3xKuS>||ohZDap?ooAp_hA6)XY3M38qu8 zwghbuA<0z*&%i00)Pl?h&D#8c&3w^L=P2Gp$ z36M`C@`5FKk?jvg|R zkc-^0cA8Vxy>W|hYX;Ys(=;r(_e))+(fY?(Vc{3+!<_9mN0v-|_=vR8fLe%Xz;c#J z7fgCJ4qBESl)o=xJZtt0D;hY z4!=Y=He#_N@2MNuZqWk5MJ8BiJB&s^F>`jN)cj#zjGT!u!PJr063V08D`J2uT)Oi+ z#y9Rab9Yz&Q_P=LuH#q-AX0+067>&TiA5+XuF@)x{=)vQ=$oQ^5nav{D8$E?NXiwG~ z7p}xw=A$%?S|(?V&p1ny*pjS$7OGY35R$!8p<%=Jj_uCbSM z*D-1OKXYGU{rw-YtYMB&z!QMM7R^&(lXj31J#f~BSP(&CtP(hDZah%7g3RH)HSNlQ z#*QohIAE{1dd3ek>~N4QRUiwTDg5VVf7hi5vXSjm~AL9(oFAQ>jH>{Ct^HgdA=hNa7 zzsi-z(uO-iuvH)ufH!M==2usG@}GY(%U<1rN8!<{&6ulO$l|MJt?TKmN8#hwPpNE> zXv*2}dw#Sxwsav7EN;Q5EdFqKuK=d#H2xXOm$y{MawRbpw|BJ2WF zg$S191UxvnOJ0dsVrSKAOr`e8gpiLOq?K%m=5F2b0Vm##(WtH zL*04OOPt>sHo0lt0#lMv?L%&` z$!?LbCYQ937PN)jdITcq&W3H*f(UBaSp2NQXn8=?T^mGi zAFGfQ=>~9V^3EsU40OdD9~+$ogyrTiI1w@8K9J0)lc^V|cDS(1PQfUl$3%BOOKseL zHeB=Nf($nyYjZo#TAvBe&a=r1LGu+g^^)-jep4&l&FqD{C|bxIkzCl1q~WlN zPNB$H0{Q(A3NbXKR5rPhs^_R**#8BE^o*x{*ilt6jucQcQh?V93METrhZ~%>mDjFA zSJ2v~159)euv%@-NN_UR-cX@+WA%_6B7Zr2CJ0iRe^6MiJlhg>5nYr3m6-jU{1z-r zx402t6;c5hbY<|?Kp4ygLP67aLAofRV3w#~hV|xo-9&L2R)-xIr^~QE@Gh&0THV9W zF}|*wxIc-d<(ylJs%fpI?Z76aB2I(L$LRq$52FOWL|o%&+_xQLarZ{!Ru7HEHHyal z9FJ=ljmsStgKH3t8%lB2tV-%fBj=5b0oIGgjUOqlCb5(UE{RxLooL$DZn3zmXx!;| zT0C>Yltz zykCKp<9i2)uPU%6{LDJBh~BqjLA7wG9L;m3uh^NwnkRRbeLF3ZTq&A-El=P`Q|%~rZBsD}{Z~-!#Szf- zC}`h4qE7EoyyXmnIOq#UnDs-n!Idyl!S?FGP$jZdWOuqk+HLK zor&avUTe+J;j;D3lb6Usb72i3DoKte_vtI9ro~&bKP}dhya;H;DCo#O!k-=oHPU0C z`4P|xQP903#rx^8mQ0HzmyafIzqKXB*i$dvlHy3Na?xBDMu?p#G}&rsNhCQbnmoTR zQN_!A&ua00C5-TzKJ;Ek%*3CHdsa(QvsYzf4}XityPNN%lmO&kdpEMq*@`{UHLA z57Q@&ImBtJh@G;C6p>kleUMxr`TD*Hj5`XmIje-a6}lev7-V{@)Q$-pTO!bXlNer|)zqdm1_Z>FUSeZ)*4EK$GGv3v zqG=8A&Z`BYLk(8ebFly`FD<(UV)AORa#gXo8?go65-z~@<%%CvpYSRvcoC~>uuN~~ z$nuWGyxU}PqXrA7bi+bUei6EXL~G9sa+GddED+5z*qC}qhoBKAGYWyaVeSSrsb7g^ zrnr?w1TtBM$Epa2k5Q_4B$M422HGfx#1m?OCglbvnh=deV@71M3RzZ@DK_G(4L#SA zN*eRl6tbLNtu~9FGFhk&vH-j_DP>R!vq{f$$?e>TkVL8#QlyAjys4-`P1aCl!^B%z z>=Sj`)fBNOi&c_=8(Hi(d%iuWwHNPYvA^AtSif57?Z5$~c5_%@N^b|6Y2PM`MJ?HE zakVb1oMMT?sUaIQx!hd%5*bOKhE&?25ck$&k7E}@m;fDL!h>LTQ7oZ60(jJjY?!hb3W?4LG5s!D3o-_F;NwyLHUCpoS$% zTDE0sZr~SH{P}6tLbSY}rIm##9}Wnl@5F5R;{E$si0u)5?`P}S5b;_IR;B&T8h65O zFHAfcJOgGtde)Xt2&nuPCB0M@=mFTFx-FbI*@C49Q5=L|kjx!6c}2|!SlBz8q$Sd@ zy79nl(f5kG(j!pHv4Mi20td^70|;l9$^C+-*j1wew5YbXD^FQkFr0*rY7pPVwq*8!n*;r9mk#@ zby;AEc&8O>!RCo^tynfcu~&>(0B(G7uc-MLYeTg2Kaa7$zk2a-Dx78U7tM+s#9-Mp z@jD+$H9AW_%v^*nT}3y;DGtGNmIb&MfRYgVn9E&!tADV810B+8pi!jKj$6r(WOCeNGcIkj0%FzUEGwy`q0wa>)K>Ik zMNAIzpBpT+Cs?r3(I072?y-?>Tv4K9j7F*~W9TID*b{JypfR9P!d#P9a&%I0MA1ek zAxN2NQMtoxxv3#WH+WJ>TT^EQq)%io1f)tiKUS_)7RpT#r=DQW%xI@a`#hmg-9Wa; z;&W!AsMLo2>GA0f=|7b)TDQ$ebU@=CAX1WKL&kF=COt}N#ckM2uxF$`$!dr};9Sy? z71k$euWC86f)BL36F=e4u<>lOnDh*5#|9OZeU^R7@!I3}xEeIBAIG;-#G&6alOO+8 z{PQ_h4Qs&2=P=c}iM`LUpfCZ|IF4H3KXjexYSp`ygOZthxwD;kfRvU*q z`yiVk#4j(fm!03(jKTEs;ESxB$o?a{A54GTAK8O{8cJmoRbtu8{S2GcRG>6QA`YZJ z?6#%js!41Q+K?KI9uVojxk!i@F!NC_gXK$_!BF7^N=Itll%H1?6?~R(!K%D18HIHA9GAWNHQ04 z%WxRuqtp&?i)!Gz0NI8NARd~)1VAjt;D9bzFTQz+J(4oU21jmVYy=<0=v=&Ox^&hX zCw_a0J=1q*nMhA!r<;ntT~GQIRF%+`;{8`x`S%jK zPNCs2=y(wph{=iLv8;pC8h!Nr?zvYPB?(dSKeUtq>;xEeZO z493jk#*BGl+ncP4f5yDDY{bD=iXvwV_g`66B&I>mqy19a@J9j|`OJlBGuMmv|H}I7(`KjDWpuC0wAsS<78~rdBAT-x`nzDZnEe*Z zYBpUOs0~#PuC=i&{OfJ@rdCo+YbrJ{#j&?p!>TtX zlEpmCd~|uRl-OkdfFq5THvbf3e2FmLVM(>-g2~FLFpTRs#yIB)5hCt&ib3Y)GLrH} zmx$bVSn^%Z_EH|nrgbBV0oD$B5gXoN)hb`R6Iy|8Hsi=FQ8pW!cWY;fX4&v@{LO)7 z0+DUAS$&RYe?;C@B7`GQ+8rc`1c8VAg@XSH7>MSUGs^YkG>xdodY~&|O&YM(dGsD_ zqHOoIiQ+HqS+&}i?%3{&4kMZGM#+f@6qqa2iB9~xcJ|jpnLK2A1a>uC`lk9IJE0PEv zD_PBAbK0rKtLc# zH~jww(jSFH);#isd_NJpgq1gTo?e0igrY=JNz}Bz?=U>21A_g9sZ&$H( zs?yde8EqE6$0}C8i>MuhCyktAxs%0Jz}}UZBkB#AhKRl(AE>|sQcuYF?=^*>Gg4E; zgp`mQo&&PyfTx!xx)L2Ok^eWA^tNTpN+F|`Y&_LZaypt?5DCD%WyM&=A8eyVtXH&R z5t77d^Cp8)OSKQ;IXLCb-6GQ7XQ8L8Yq+fK#VA&#kV=@hbRC$55^~7^Bw-2}o_ago~5cWV<0njM8b6M+_p%Vu9Vvz2}j9Q z((v_(MS%}km_eIw*nw4HQ^g-Uu(ND&(c>SoSD1Rx85X}=sF$k}KgMs2at9Td{8_+d z-7tm5$|LgvekNPgpKp^x+$qPIkJ+HOv+GwlDhZdO*cCYPL{gM|X?qAOPt1tY2Ywp> zj-6VPm%&M3n577mTz`nXV>$8&3l=};6uDkNqOL0(g%1=Rs*;(hd3VL6 zAIddg2sGAQ#c`K_9y7|2W30INDH|1U;xX;NXySR;2mfso!2sh;yrA8&iJ!9TqVH!c zrAq#fDW$q)2=XMH4x-){>px=^l4HG*cuj${PhJ0v{n?-Ef`Y9RPeBg_x`?;`&Kk3Y zV#MEBb3XH!*!6eT$WM-6^{6&Dup5Z1{0}ytui8|!`yWJda|V9SUdO9=<8#<8@f`X& z!(rV`qUduL7RQ&fzcL|yw}SnpsM){ReXNe@Ab+(WgT2CZ=tr46RYqIQTP&U~nL=O{ zIb#~rj){?9up~Zcb5YS33|HBSqAfXW7>ioIA`X;dafVu6w9LTAJ9>)zj_mP!$nr<5 z;e&_+7<_~mcZ6md=)~-4F<)6M2D06lgHeZkQNI&=FzPi1u5pfxYrLf~*ObREIk8=6 z%8F4>5+`k-;sB#6@lrBFIhO+l876e zxbP*b6jB5DDdOoK zER*dJpY>qB<5Lcc?|ZP%c+bP)(Vna=jOt>1Pl$wTPKgaYSuMvZtnq73&+f%K+LMbM z@QCpR{d6Y450f$ez_9BN6cr8b%Op{b$gX~b^vQ59(t0cqQY07#L^p^pbx+V zPp1mtj1hCjk27q#5f)ldsS7%#?IDa40*y*LdPa_s%S%n@l0uC<=%e+}iGqZ~1U5QN zATB-0o{C|DYVOaDmsr}vANG`lqU6y5i6k*tI@TJg8&@orf|O?z&@vnykO$ofoDR80 zzykmm%b#N1yIieD4Y7No!$Ig;Wh@4YNwQe+xxmLju zOmrN<9u4G4)d87F(1yM*wvJ#mpXs$8yHf_UY<)q+r*Wn*`ln*1ccVm_^04)WaJZh_ zaphJ~P^Bw_EqgDqIWpnma71WllV)M5w<({cH=0xlOvpE|lplS!EiW}du@(H~ZcUu*i zqu?#tNwgltGM`S&NZAs~p>wA$+Jn2jb8CX^iB5!ZJYdWdi$<{qt#{Z!Ikvj&Z=g$; zaT3=w%u~ZSu@7pZ8bS~eEnjcKmbM&%j#N86^$^C0HlazVJ~>w0H=4CdXhOmiGDova z$HK;#(bvS1(X47EECUYk>O0LT+Za~umKjp21sS{>3%O|a$5EyprQKCqHU#lN;HbzR z1B?F-v3v~6Vqc42QD~Vtky~}83S&3s&k~t91^H^+f*;4)s!zJ!1zFgRMeE=9EUtP0 zLbuFq9K)=0D?MBp%PQR(n>mhEA``>o<6!E#Dl*5zP_@6gcy~NRr-fqdc=j}6&yQ#8 z?|Qc44v3tez+T{UW{IaJVkN`#V4ES@*2kDC#%_xi?8Ieuj}==d zvc5S>XiEix1x|meupD7EhZCjU2(?NDkP^=;iIc2t4BoxutFGWeAtHA=IbPaDJML7N z*yXs>0=f{+f1oyEegR{6lOPv|Cb3YUQ#FWLVI7^V8e4*aVo{-hUB0y|Lz7uuwoCkO zGPd7O(9PU5gPFvU9@5kF%q-CZV6C@fpF!$j`o_x4lXE+UMjKmjX1&v0>(q&X8G=n= zHCjS9Gotz#U0rTBVp`lXRbC7(wK#-hnjXS24RD!wdkPE^r1eXjBOVNKI|R7)H&6xX zE)R4&Cy9uR5^&MCj1pkPh?xU>ESV$-u#`z628S6F1@lM25F_moM#LaO&J?7b!1flx zt`bI*4DzteM6D=_)k4c!6M+Uvunz$aI&vC8$^c7G)bwLzu*@Cg#cD~(xM$*=O%Ke# zHjLa$$W6{=fxR|)#t*Q$xc?j$7+|+=z8E@{{Sbf!6>qr#+y#R2XD$>Sr?Ij*t7r?+ zSj9*YAN&n7epU@c1<<{7yEEfZ?CsECW*m;aeK`c@Y+`RKkajfo)*ZK|9E-jEf>Msh z-cI1YlM}JGU42=GaWeLbh1VLtU2rcZ@`%{Ax_k{)LNuSw!qC%Soz5y{_Bu+WALxO} z0plzDa1ARa2oq1>GVTRO6i!_BKPtvdhs_Yr4bxfqCoUhx8X_ef2&4UF8D(79AeSZq z^s034#oWUYN*s;9B2Db5ho*tm=Y-x+mDH8GGuUYIIr(7*tKIYr5XUb-!nuCAK9M@$Ym0iZ%A(Tlh45^` zb4ek)&)WqKykwNNl3X((izDgJGg(IFrQ_f+)LuO>*%3H~Edh|o3`is7Ed|=ZL}-nD zwDS{1!AzFwfNc`?NwIDwORt?Ty$FCwcleFxlkJ5(jJvAxI}4D4B13bYEN`OxEY=7^ z(`FWVC`-SC=+GF}YiwNTU9wAKOKCXkH4cY&lAaXfU?Lo&p|)b8pol_*9)e0md)n2E zi-abpUtZ0dgV4hF%FjD=f=W#!!r&N3bSK3dOeX-stdA zPuyG=8l6zriCA4Xfs!(8TtyS4j7cn+8YC$-hnhgGn|34S6aazJMB;0(O0SvuLuFE>a z@WVXf1-or2#^yzl5N~PB{)T2^?YS(Jvg(EsSYZz-$kY<@GI`E`(tyZD(QYoQc6*sK ze=f{Lqs4-`tbV1N1+oND(wHz-c;>Mt4IoQfDus2f5wwF^xbc%E1IcfmP#7#43$0Dc z?4QhIHOigdKomX;>o7KsVAtSaUc1Hgc`SIVK(c=xt6<+YkQ#Pv9;=doIBZ@~J+aYu ztXdARfh|WR3?x1f0;z|nbS(3Rn?!%;9n#uirNm6>pn|w1J)xy=yXeh~T`Kw-i(ye$ zX6&}Y;GVfIvOwo!q1!9t9>E!{|7S%=9*Mc@9v%20NgcS^Ati7T_d4Vtf*3eU`F);!b!vQC}$VY?ZyxvOQV=;LFJPR(=(0odC0d z{E?f>Ndmz(V00_cqIZzBwFODEMB9Zio&r>26pt$gQjEN4Zy1$7i6DuM#4i@G%6!fq zX<)i%*`AvWOfJ!~fh|ewSilb7vjRdhd?(15ogKu+c3_3rypUy7q%oUCN?& zQ;N@*vgO#+e`pzdg)bW-MlOSna&@z~vY!93iM^>_yythNt zT*cZyfIG?NjAE9-M?2`c9n^m_M!+9u z5{IwHk%*pR&U#kWAG7JBG!h$+uebcA{ToAn_2C_5FNL&imvD_ z9%AHHmga?vz1+ki{jNZ)*~*qziW#eMUe>xGfb87R6i6HVMNIyYJy-PR7Wk89?Z?`X z1dM|Wk^!0KtWSrjx+WuGCBYZat>geqUE5e{v)kN5JF0HtHMH?fQkeB3*U)04CD2oR zv5o!J8M!`I9NWe|C_6IZ_ir~k#hiZL+s>Ye9SFcScJy)|v0*!FOP2BmJEX<^)g5d& zy-%iMDgT)IwSyrv6z26bf9Z__x%`l7*4lB@}#`K~oJK?v5jc(g+=4LRU z`}eRmvFdrefTH*IFc*tqtR`UGZ7*C#BexN$Rt~znLCo39Uf0h;?yyWoUlmo^$DY#? zSaX6cyT?%+Z@s#o6VB&!s> zsD|id$3FP4V%Q^38=iFkym3ht{ZF#0&dVw`Q7)@u(aBQcBwaactu#d!PO|&$w^n_7 zgg*IIA~fJvAoQy$ihgCSTfl{omb=LP1D1#9o&7s)P}|ArP%5Wzg1!G7OVMLqh=^!= zj@3=*!UVy0^f{J$E253ggUO%RAYMGry0h)#zA)kJ*mf{>DTCnh7KA zxyV9QU~GrOJG>I9raNp!JbRJOYfTc}FS2KI{;h?XWYDWpUBfO1=-cu{x!X!`hk6s( zE|%0AJVai4;>Am>JTKWGKDcBdHQ^F_u~uyNjn27%gFsHgP-B^MW@Ey~d@`hHS-(y> zVO+)@*GTcfW%hbTEH4!PW{O`j8P)J-2PQjXo)c7pxOkb>q>qhAR!SRwr~*V1jUn-u zW^(=+5})B;5WAI{F2ag|-8ti+gGD)4Sb(v-qP(l%EER^?gL?ZgJ}~(S97`)d0oek_ z?XIR2ZMw$VGk!`F58l9zUbKGWv=;vuB3+~{F4=j5DzW4qZZyqhT*Yx~H6*`yM)=dk z+Tv*kPrd_Sg($xC)icqV|U;zRYZ zEcBH$am~S-#BcxYElZ7cJ$?F2JnQ6RMIXikl}ncuKv{C{m8z#KMGF~!pWlN+Z|J#F zo%W!O|MkD`v^;WP`A<5n6yV)Dt*>-%iT6Ofd+yL_XK=m7zwI=$w9`zq(+cDLC5yRj ze`PT7gvM)C$AZc%TQ)fe7DsQMrjT`d0Gw#fF)>8r;YVV_up26zar}Fz4mX_|jBJOi z78x*jU8fj(ps^`*haQY-ScaLKr^gYDD1+=KO^~MR@7=sZ><(%Y5iq+eT2qe(Uitv- zck|3xVG)?Xqj7&Mn)@PC=TEeW;(q&rEW9xmuux#dLaqq$cC);nVlD#Gn`)uXYdjMJ z=}y#wy~PBluF`H`&<`YEDD|1qM0Y0g0TYcpyapR3UiR=u`K}>il!w=>VSPoISdQ^U zkpE8yQeCl$0Rf^SHa4-a66=9pdd>qwFm%>Wyu3}2K2Z>+4Q{C`fsDwQ7NiX+d;$W$ zVxO1)Jtv|k$38qPB|+;m7*rn`Brgx4reQCH?o*==8Bo%H`YB>rV!}rsN|h+K`FM+{ zdY$U$^+>&b%Fo9opf5dBZ;O7Ks2AX`-t^I8Qjy`BMb~rFM~hkPqs91yeDtHmAWS6C zM~mU9i@sYmL~IK1kE}07aNd&R;t}gxDi9un_y~zJ^2G@8RvEsM^!mE@@SUX3d&=^P zVp3V&s%}(Wr$rm0PV^Ngh0ynQsl7vsmzq4KiC_}1MN0cqNm$(Sir!D+uknT@mMaoa z+PEn#@Cof$Au2ip`4{|iN`Nj8ohhBfX`p};P~+I(q6rmvImW&biz@Oyq=7t}%$wfT zb*p;pZd2+n5R*;+lHIB@i`~f__xg!z$^2d_w^0gj;yM*XFOzinQ3{tk8!J+HnDr?- zn!>L!{^MD3B#o!j)0qyIJZ8Ii)o!mS^3w4I=b5L)@N{0S>Q6pM=5TSrVRAS?kr-k# zPE?gQ_8Graq2jl!6o=D!^+12iXaNzHF2)(ONu*ceEgrOVLnycCaO@7!-sj(fPbt!0uFS{O zC6$YImqV%%J&OVnNxmQ3uRs8aI2K_`SSnoWgM2;vp=el$KcGTI*;SS2H@x*^G|?1h zIym|-s!lcrkOlsSNjfA0(QGlb8aEuUC)jYj`a(5c-E|6sM@~saRjczP)z;0PqKoU* zczG{GexE_9l2TsFgtx;QaU_$U&|-}gyK6>DkPXvo@hyPaSBqEo_H$vSP^~R7o5*Ou z8@2lFLPER1kplf;>mu1z?yW1v*~W73pSBsLZLeyAV_t%Y{%r$ZBXkwp$^kI5YjoTP z&+B-?mD{*M+s%09ien9Ux4G17jc0hF4L7ud;MoJC?=UvhAR8`*zE3=se&{10X<&CT?3R%67{~bIk^sqgLa)bDV=KI|6uT8c8kblPkvE=r zv>r}F-CUAnGBG&%o`jfOk0;0byD9iJXgolFlHw&Me1y0x z8sJ>(e<+0xN!F3>#@=Qysk9rRkr7lL!32WLMQ}92rN2T<>$xS`L<-5oa%I^pVl9y} zdH4D}E2F21gS8SlaypdP_tGC*;4QETAn03Q#Y>#Ymr((|=jrSU!Qc*ZQi)|fH)M8uf)G$1d zkBa9TTLpjCm^WiHL}6oI6_0I=c{Z*Ue7FhEuQ7MMLYyTDpO2A8*-^yW7NujjvGCw|ai?I}86hV|W8HYoDJk6c_8V-KwO zcL2-p3Lr|FVKyxrB%Wx_TYF9)e)Dz?7yvu9=}A&pH>h zKvX)R9#mAYfrtzXxd)~p52shSw3 z!7MwfUu^ZDN>}BC?TD|s8q8Jjor*S{Lu^ro~X&2q~j06R^;qwPoYZtPgu{o}Ap7b*Nl$CJ>CZ=?H5>EDS&t^h9TN zWoPssI)?Z$sgVo{U~+H|%F{@?3<&jH&^V(mSv3H=zYZt}vJg?!%uW! zn>98}hP!uVHMDXk>bn~@)zUy z%U62gi0ZWLQc|9u^QKYgB^{np6@)9_z;d;ab*q#L6m09T1a_ybk2(tU ztYcJ5eJSctbs~kLc3YJsF+O&U0yT#(!L z(_q|E4JnNes2bE!RS$CN|EY*PRSzf$gRaRo`*~8m9B8+WG6qMgd(jxW27(j{j0-@? zD8)_1+hCF+gVt}k;udyQ0)(4^)KD?B4kR%&C}0c`Sm{>QAjx??Lj$T5{&J#_AaYqC z@3@s!X=3%&B0?33i^kh(ToqV#(fAI5Ku&vO1Igi2a!R*pgM9Z^c6}Ku9pX>8jn#-d zZPg4qFw7GhWae$Ga=KlsBokql{Z9&0V)@c&21;u92}z`ab|Kguha55C0pLXnn8bU z|2tR>*Nz|EFhfc-h(U9vi>9WFyAZL)fgwS+S!>W;coe}pc{&SQ^DR1i$(4L)Va+00 z_D)ta$y)1RCegIQWjM3|&=;yAd)&!VuEe7a8+lmQ_EtgYVtiQZ!@?w~8fKaQHAi>` zl4~(DZJo4qv%BstR)yg$|K7XUDAeBdGT?ftCCks*H|HbnR z3-w!4XzojmG`vDq<#0j#_=WBu$U?(rx0NQ+rP?ZuM$x4x!BR~-d>?xVFDh>S2Wx;A6)*jR zxi2cPxOf)O4X)MR{|9>vq4n+uJ9eb(bwAj#lRuM_?q^N)pM<$?h5Yt@)`l%!EU$k| zt02>Qv$_v{_9>nn#p2ks>SOwVDA;HS{wWJSQQ(E8qw=mX7KzKTAu59iw=@KCOe z-R1~IKX7Y&b~NLwtkQ`VSj|fk3Ptt2kuR|{2?~1%AP1h>ccYd zdZDln>r#I5XL#BbMGBG8stL=GtGx1IbnjMq-^1*-qQRe1mE^jI!ByNUk37t-WCxeZ zdfBYO)qh=X(?4^FvMajoArl0--tiZOCkxhc9CH2S+E{0{6rNA`QtZ@W(hnn;mG!j}*1g0jC@w zaGwM2r~&Ax1D)MOfu{)!Q87mpoC7t)D&wtdDR`Izu2&!)PgtR^tfSD04*1141cI4m zg%;EVG}D2?1m!zW{#!#uqx!?_~f% z2F|L(77D{ewV(qOcG`hXgFOa{5^9fCQx9lsWJ-UW6}QSB{aFW=J5P@7&)P@ZPg6+e z#Mb_-W2mTtPuePg|BER2RLVL!S^>0&=lrRJ?n-L>MCnT5gro6Ok&KqcPiynXF$%du z7Y&JkTDs7Cz~bojWNub*ntaT@>Ol>A7Y7k)vyFU@Sb->Tu)y%ng=yrJB6n?v9%0qX z{J2pOso>dHdXyEEGCj{kRFq{NV|}#m<>QaBhN&(Gs~wgr_=R93d)zTH#U)oghCN~{ z6!eWdqZ!}OgAJC&vVwX>;Ge+qdObEy1F;tf+y&g@S)*pg9cw@93@k~h-@J5y*Eb4J052v1)czFa{E*4QJO%9Gr`beeFB{LXs-979#b9pz4Cr(_sFIt?f7K|>=fEF| zeU{zo#PhOHcZ{Q+^|J7S)R12JoEPNf?(cak_vn9?mOFL29P!W6vha7YmBro9v)i2t zdPNoKTh);07uX$6Jg>Gi7&7+-Hn?OEz2BB?Ut~R8j*nlm>#Y~rp(cNV1fdxN&60He zM9k7}AReZ?h;~MR9fdqkYsPl@QHW)h^?9Br&+{QxO&b|b&S4q6E42L4kiv*#zrMx+ zJtif99R-`^`oJS;0mBXjgwTU}OtKZa+aI`_!lnrM^$<2z`$OLIGI&E1zCOJ+LyBHP}aKBPMl(0TWdWm9RaS6)~(9Cn>$C%OX+Bp(9xP83x~4EE=47+*EnY5 zRybzkUeI(r0L1jRIM&utVsNw(;jLtK$6ju2bOrg^Eh5g9Od%$u%d@5r`Oqt@njG^I zTi~q-MmHGhjufjAm==;d+*=Ve`((c%>|QBfk4bmM52$m2lIGz}1+|sdu`0+y2)cz1 zxv>OSRn{#Mt~tRa$0e+>Bz))<)=g_dg6jw-yoq&AD2_@FioQlkk#;gf36b`7w~LP2 zDw+Q(>#CiVXJ2JkcsB{q)DnSf8<(l?ElMCaJUR4ZArqQfG^MGf0Ge8uPg9Gn3Wl&6 z+W`n zt@p-FQEI0YNul)Kl-4Pa%R5J~>mWT4o0B!a;-a)TaOtD9S2yX=GL7>b?R(|U<&Y= zyH%)#T6GM|4b6`P)uEZg@@er{63x(42TC~R(k3Ncln`VjH2~w@G10(exZyL-GN3## zmhi@v;~k^5JpYUY^`PE02CRrPb&42^a9MvW>!=NtkB!BenH?T87FPk~KF0DxQf3Z1 z4H5#@cPETzGqkVeJLB1v@xx%}l$5gIPZYHL92^hC_=apYfnCd%ESG~Ouxf1ccXHYU zR_ki(r32xtSdzW4FqZA98IOWifiYf3G#VYGv{%^%FKLc1fvNL)_y`{hi-rtXIQW6s zFAd3dXouuc$y#U!W$lSDwt4`&2pt|24im-!dCNp_ZVt-f6Iqjnc%Z?JL$oh&Qa7z4 zrQxy&seo~CHx*?@K0$mVP;Yq1ad0B57j=-Xy`j!jR-44CAfuL(*rcd2O5Kn#MsAtJ zUZx3h?;C9DO-FHHAoJ*WNTtMB&>p&-KuIQ6K9*8_D}+v#0rU4jmsGHan3YoMj#>wm!Dq`MboQz8pA$LuNoj7GpowAp4Z?a|G&f>XD9prot zZaUoaaD#9!z>PJxIZ`d~AzOS@2kVIm2^Y1rSTKZInt^S;FEyG_$3gdcv3&CzhJ zQz?(t({Xi}^$vT1(2&fz%9YdDF4%au&%Ri&^F!FVP!6=nznw2#8UG`j)hH zGMw|$gc&qHd6y0|wyX>0H|eI(6(b7qXd);QmSV1_m`Wr@MUz_=vtZ5q^Hm^)g(XTh za*6S{qPWMJ^HpTEB`h;kkfWL9jkiT|Fo0KO=1cP+1&e2WnC(es5VL&yuK~{^6&~-; zfgF?*BMlx$X8Ala;PE|lH@Gos!Q#QVn-o0rL#5VRd-nl`^~DchQGFv6*nP z$x>E|T=b_)**fQrH98n=;_lh31D&krqWfn}-9O{@nJ#ja1wCX1J}xIqry8^X?ffnL;s&N`EPtLHeU`l~_s8>U zWeVpd(aR_^Q5t1=Ef+Lo`?5Td70#2h%0NOJ?zAer61k(l!>udaf-0r^-xFQB|E%vY z3z4qzMzDe5wmk@31^1q0-jLi;$-GjMQyXL8<3!qIn-Nc$7x@4a;X607H56~oCRUf+ zg@;%&xdl~u!^Td!#DRD_1{)%7GOKZvU74Wa^OucM_#JZI_u#T3k2T-3jG&VTMFxTm zMm5r+`}va`Jg<^5UB zKgtp)!NDIPC;->k%o4l=z?Dc)&YvLVm=)1HW+eGV$UtCI>C=^ zVYR#ranFJ}l<{Y{aEq0}+AR?0LxM++0~f>n=qFZ{+@F84nzH>kOQ_*Ch46UMj#M4o zD!^s?6rLz=`kCE8sb~MpYLL6(XI9G@)K&o?Wyshl3zudr=D3=N6J^6Puvdi0^G@Q9 z6t1?-YQu$-)<|pHAqD{dRn@tgd7O^V*l=8CASd zFWy7fr&`6Cr>!1pRA^;?d!aS)=9lNHx`WOzZ{kL&ndYB?a&sELT{hZj&9rNFT5WuG zr`64JCmTW2sc~igCbjYNU#voo{9+XnyNeZ>-EqMr-za*s8EmDhbCXDuVuc<3l?|YL z?%!h#`mjCL)XCoip(v|uL*%m+Ep+nyUI;2Xold*I zIbeQ??q z5nRzAW&dOwDPC+OS2Rt7NN^Sa_lV^6QXFK*2bzUt2Nc^rW&ev-6<@muMqc5(@$m}j zj&Gz29^VV?voPo=scXDy$6}e05!b|iX|N4hjN*wJXyzQ{0|>oV4p!-xR>c=XKA>47 z+Gx#c#$3&6##b88p=w{tEX?1JS;KViKPmYCX1B+?o%z(`cy1^^IfIuB z^DnZyON@hjE{Z4FJ>bzRx0SI7fMI2pGjdX~_EuSw$LRqMG4ONGV2i7p0yh@c$i(c5$;vl-KWM{&PakPK!EI)Nz}5 z9%c8FwS7`qWy)Ip)UvGAPya2t4!A4Z-7pUuR%cZ&XLZ(JC+-%=eur41+dxB(IAqb< zqsv>%f(Si7omi}oR;F2WB5>L5?ulYh1*^^Z6}Td&*H_>*?Un4&LSrjhgzU!^t%8aZ zdqwFikJu|p1QM}#TWMs^{7P0GwpFs~0OBuQR<8_I+CGAFLuIQDXDeHEC{B76Ez2Xl ziq=hn^ink7K2UD%Ny;L%piQUvNeZM^{r|P)go9^a`Nnn&&HfG66i%K4-Pv~80VL$*MVY80Qi|IVk(axc`l+e!MS9IRFCLh{JS@nZr6;k*DW-_e%DX}bK%|Jsr zPR>PZB+u34)oXu#iul?joK9R#CEiY)+bOGwhi1#HYcS?z*5cK)PvyO}c*V9w^KsIX z$VwfyPD`U_PWXCLx#plP;I^S5miW!*r{uy~yi!o*57r(PK}UMhMWQ4S9jz^UYVqpz zyvku3JC!r6$`LEjuC@jvW{qm|{xEqkr8d6`PGN1{=5qaYZ5`gn2`7ns(l3Ml45m8I z`H1_Qn?oF5dK$&eSN1p;|6rRpX1O`Cd0pP}vg%#}NCp3Nw^a4_lyD4oGhkKyFK3087~;DLf|*Mi|ujJbatn4-|M zSs}0C%90+?DiDxe~wfobo!jC56Tr;B{$%%{vKzno@l^36tBVO z4S3rsR*|GN6bczgPp7p3p0V@}EA%uKV8-hrN+r1&bHt6I>5hF-=-5Eb; z#xHNkZ!6xW>W%nd%Hi!ske`A3b0c0QX;uUl3|5;UxhC8ZX))KS%WGq`jL+mfDc(Jq z-u!p!P4gQgv^JABFJ6olGe6-`NR%IhYp(hxUl zfWo~+kcj>2c34y1nc7s)luu-H&dBU${EiBCmOxbLmfD@!zsb$btl9f#Gu|S+ss+dy zF)C=h8!l|g*Yo&w7KS2maC6;vazz{7^zI>>RDopXj+Q&!%9-#pg%W_62e~g45M^Az zV-X+&(LI?oyfNb~z@#e|6VHwli#QOX(4qN`@b8znIs0;>?B15wEo(pB1v=$;B=Vhn zxh;-{4@+0Q*`ivaGHcrL z8pdf$sR{;`#KF%mmFL>=wq4FEUuYW0%esW7Cx7-Ykpl`<(lX6j@DVa4i)Yky4RP3JF>C{Sc||N^$VapI@UpLyroCW*ENVcW zcZ0daUc+})y$60M9WQLBHU9RF+hLqI|Y#F4^1*8FDD3t{Ez@&0B=zEz{s`xgg zL6xzmkuE%jVYD!touhx0N#2uCqq>J9d8=4?@hV;}MCzrqWQc!5O2eNUWs7|$5%sk? z9iyk_3&yh_4QjT5`YU`#r72Zbh^XY2v4VY(eUqR_PIxjkb7f4RUv^MgC&A=+qXQNL zUZAh&z`OV;Id5B)2_1PbbV9uW!6mVYFLhN&V#8Dm!p9tg^2_1I+IPqz!j{C*HNGM_ZIS{-l%_m+c^^AfN%s zPL6?;*L3D7>_7{cf#&arj($iMg|~0TP3Kn9L=Cwsy8VRi%hM|4j}4lMUy+cU6_lo6 z6JA7YDjG6Og)D1mE^AmMMXvJShs#y`{2?K8q6*pzMcnxLgUmb?@)Hu_S0rSn3i)*g z)O^n<8j`O3wGEggiXCSu0tZ^r&4PV0z8kM) z%&<*hTNpZTne5mNHYH~)lS8`k)KH!Z#e}fbKEtAjB7yL%tYvz4EDKbsQ+M8q+(F%e z@!?MD&XZ%&2bi!_k(K-8%I-X&H8nEYJ)EH0o1AwLL=>s(Yr2HVopJ$ZFUl>$l5$!R@#?Vu}&1r5bG*O}sRuS6xxy00g1)wC<9 zNK8OT9x*im)y#*C_z^X;NSTIvA_U!r>j~qB@Q2rdsEon;PO1qg`U1Jcy*8nxV2vg3nxqR}l+A19}0$!8qvX zUcAY@GqHN0-4J!?ja(HGDgI-fB7Ty=E?eGxBlh4W^0OQHtVcZh{5{eyaE@cRFVDq;$&@Q^a;85_A9*#<>ZBaR%N&Kzf3*qQyz$M=_Y(+>j`w97AEnKt2v9_2Lzo4H30e}dO$bN9%lPw=YKcD8)82da| zPJ515Za3FbTtI?n*pP@Eiy|~?K(=+vuYh5B+?*FjyH%7qS~72V}xOF>u2s$}9c}=I(AOAA}pXQYyU*B#vlC$pQbw+51f?KmR9hP}5P1 z;8T=|wQS>G^L>bX8#$4(((}Aq$#chm=XojG&!;`llPXW9C!cEdf@fq=TLI%;`E98w zv={jOt|WT2PxrvnFYr1Uw#LqAOJiq_21Pp9AxwImv`4_CF`!+(4l5v{4}#DtMS+uo-uxhi6IoWv;Th2?NoP;ikkl&1$(0n|cB0;;D{R0X?g_fq5m zLwRCjr|z@~6sdi#Q~TUvwf|r!uisf^ZjU82w-=34l^B{%QPzpVip30$KZ2-l?j}G-$`S*^h3g4SSW>v)W|XF|7IF78Ia1efKJFnSMbiIs;RG zFrFP_R-g&#ibhB@PdB4=hnNjt<5#&#MSRaEAd_p?lV%o11U!O(t5ihy>7AYX8c(dg zw!O7WS~C&bUIQ|jMf+bSNT|_r*J~Vh>}2qDJ|$*&L~3k@0RA(^hu6H$-y+Q-4~^h2 zK(olNBlwFM&RX{A_3&-$mL4ecKts~eg2|CPlHaNMPE}A7W}j1*`82*kgBi+p?{LL6X)L#bJ9CjJuhsN<*rRX)8GM@J>iD?oi@LNmz z=1kz%x{Z$a@CLMMIa5V7I^H~yVKrKwp1?D;Z)9D`JNjzuRZ9+%{2E_~C!ZPKA$eKR z^MWAjNM$i)dxEVPlZ*idiF|2RMbJRht~lwD7Pi;)~ocwqyuTo|ifi%};A;9{(=K#zENE*c~#05U0nzM8n z0neQjBZ~$;J&!jLkQTmW2ERbt=+S>hRfG{WUXFmBgQ6-{0B0Nm`(P!5M-KT_MS0A4 z2RD>?d%|D8!<%SPuQ#xlf&Lz^q2ypc!#;7>=`Hgx= z^YAR50S2U;#cOKs$&Y67`puj~!5Ff^={}(=<@pLajWh-mbzXHguj!EM>e)xP+5CC; z*+($0$TPp<>c|uduy{}QBfYZft)F``C}vdC!WjX}=%&@^a#UBhX{6T+Id#Uk1?B&*XH?LcD>XCrEX;`Wcg}KQ_>oR{g z?;l@S&y8Rn=Cb~;ymsahyoFJAoX7=#Y*lSLj>RJz803$q;UNmSIDa1FaxhY1>zVy4 zzw2g8A9xzE!m%xlbGc&pvUG0}w()BOPqyYD4);XCVh@a^y8>53IL_QAw1nTahbOtp zJCeavp*iMhlp)nM#Kbg7gACA@rzZ!P%u*TyW(D${p_G*1W1_9Ihg6SPNufzZB`r($ z7Pi(I(m+LeLX^IlM8$~%txBh7+-B;Sw?U<~BYrPWwl%e&Y}|kXhiR@-lK@?929PQA zzF-Q2d!iWRM>ohj_VQ78SPDFdzl+Qi+X6oH*~QWqi^8y?9Q`$_6`uMJr62^H%VKt3 zseeenPp5r6v(`SP;e>p4+scD5o~K}z-qL+UM6J0GnqBtcun2eAKAv{lKJ+67gsN_Q zkEi_B(Ozi}Qm1%TS@lW|I!UNeDi^z6Xe*jutV${Zs?>NtuNgXT^#ppBX9Ynz(8}gW z#a#UGJTGPHnO(ZS@4zk){l>QnjFLzn>?B zXdTmUdnyyYt>W3hvP`OYbK;bGXjHX#VqPUBgJz$DmnpB|3b}~{WMB_wSd}tW{ zT6#n_19(1!;f2Z{D}$B)P6miAfItX zKtAJ&fPBUk0l~PUV_Wev9#hNDwxR)~*HXd+Llk?xXUua9BelFrk65KZs)k8L(}KnX zlYp6vK9CmK*dzSTT0TWSYIJqn7GgKc;FQTN5~Apj8?;=yvn83)Px|M;V*)8Efi5GLyT*dg$`v7o0gbrWPTFs$yUdsFmn+- zA}! z5!2PHVgMNIlC9rx65Oot@4RZ)GmSAQ)*+UPL9gNN7F&0KtV+Vex;!kcpMlxD(k@xj z_7lAR|5rMs*9mmUtBwBu4uR1z%#gNSH#Pkq?~4RE_77Yb|GP`Zny4;bQCl0$U1t%& zdat*LG&;x^TSP_Id6I7x{k4VO`xL+7zl%C5o(A#r-|mNhiA)sQb@83QA0RPSWPO*8 z@Xnm(j}+^NqFMTS_OIpm`I-N)A8^=LSEOpEDKR5JX?Qb2@urK-2!FM!7D4@gt=@Ca z^7;)3WBN1t5Avydj#rKUgY4qfVf~2QGfv7I&Vf>xxQuSMD$CL5Kt=$_KgW}bt$sz05o>|w=ILcmbOKpM1#V2((={+FV_}85- zqb~B;%MaeaI?Sj>ZU-@f>m$!1E$DmKA}zi*yOk_um_uYi)8F(0NQ?zw9DsBl?!H{g z;t99<68eX!uR4hn5vHu~nlzTg__T;V93+4Of~8@Q%gGqT#K_IjVmidj{~05`UwWr_ zSz{Nr$X%Lf2TdH1RO_7lxd_GvW5#}%R%!aQV1>M8Eooqa6@%qq+)SPw_3cv9<87zfjU zIQb@-q$ctAG7dy~;J3J8utsklaKlKq29&}%Q9~wampwop^6dywqfG9HiNvu3xFJG3 z4F1rSk>V)`kLO2<8JVAQSZre^&o=M{tq3H41>rhkT+g}^w>B2FO1=yT-}qDxi4y6k z?yM-0$>ephqEQ{&3N(%zsU$H2fdyM)hS=B<<{#&50$aWpD>8jYFRU_qxyS>t;))c= zvCtV1ya?34II1O8-w%tzc;f>(H%?TkwI5u4aBiX7Hr6CxB_0%O@fC=hi3i&OW4}BQ zCu+fvU-@{^*-Ct8yhvMSupv1VP@DOMNy6tQnED}r@V4CO_5 zC?;kX$z)i1^8!hz!@;>kg3%!p+We-L6S13Sy#$DIZr!4A!)lWNu}VRMVH9 zZVw^1?&P5Ra@bH=RM*1tNM+F+32P>Z#?TFPOM>_ZoDUL2uTY*cEQl$Qr-s=00zz5t z*G%_ouKShmel2momb+go+^?1H*XQon8ux3R{ndb*1+M2N_iMBJwblK~oh!qMB86?9 zBV`p)?at!e>RUs!XF;o)!+yPN%u;tHWm%}=u({TLY34c~Gn9kdh)u-{sAfFC~eZDdSKE$}vVO*<&zi zRD;oa_{7NEF42|bPf4ODJ33p|PZqt%4JC`3CskxPmt^Yp?e(^iJ-RygZQ#$TTRh;a)Z%)@U?a!7 z%!61Ju2Udv$GrPLb?5e6n%I)=W(SktK%9sxAP47($&pG$S-pK^D{ZH|y?tckXlPAR zn!-*WlSglezOrbex@l++xM^*Nu0tp*i%12LsT}=5X zhs2*22yd$^^0nC09E?m*9hmdoq;_X?eK~3niwIwl!#>jFvB%k!jSp^D{mV&YTWKt_ z$iZQ>!{gQz4~2Y2j;QnG9Z#_O$xav09@i|@Ro12yW=?wo%101!#S<*k84K!LdFlz) z+q7PSdB4(JXOuG8Z#w zqExUmFUby94X*`sFz_NMN!6X(qpNxmNJ`p^pu|th9gnVB->s}hv`b5;vfgFAcTq2M z_D9#H`9yUndOHt^pJJ6&i<=@A*Ffl9;nQur;f-DK$>>EixfujzQ0A5*Ud#xM28D)3>`BoW_tn&O2g`NC!%-6jfBL#X3U{S zK87ZzG!mWUZ;ixjz1_|MJD8-T$8)c`p6~!>wL%USt(uq(xed~P?yM}3!Zeoe;$8{} z29`v zc-7iYVgE{cSvD5cLrym4o0Ok#mKA_jMnAhU3QADIT9~lpgfT|Jg+EXlJcuKaHP7BIs*D!75+4eo zE^97c^2dlo3{^d6y2@2e^i(efuC0KsT%@T`>%}JeA97<$kr`(xqeTrcKk}q;rMRbA z?vj+Q@W{ThDAnsVzjU}Qkk#AoqZoC&U6cY<21{!Iw zk{y6fec(%I@ykzvto~Ev!_h+sB>4mQW>?(s_+$U#GRVH&eV)(VgM=a7)^2BHf~J z^{YfALlLz*id45|v|{^u8yF3ryuYKk9xsrWb`;HM!#vPYTvCS`s`*ap# z;yOF^M%QBTV>a&dq2Zznj0g-t>UBm#8$~KVdOk_^zERY8X!jgz*ES3B zu_m9EfcnfErali+Ffl^*`Qsrq#UsDG3-k#U>^N9D6*Nziwqth_R3mx#M$w0FMX9&l zB>HOwa`jE(21vUl-z=`Iz6h3fNXeYD zW6RCrf!6Dwb=W#$57sP{H}hp{MXOVTSG&O_bumACi>P)PHO%?9h_;oMS=w3YonRvU z!BN{dEqB~1Zqi|S+&Cfcyj46>YOFI9>t>ky5j|3`1XX7-GdS(i##D?UHVimer^sVHmi?_W~3mia}$ z3F`%Siox=ayRZnM^!zT71!w(T;7=Wvr|uHBYtt>y>ExL#=ie>1)1n%Ak4Pvx%d;*| z+qhhEkLZGKIe(AXrA>h86_FOViWZVH)8!BMiO1`$QLi6?t?{9nZ@f!evSQ!_`Bfp~ zGm#p_V9oeDIeJWNl}McojsQ46H8wrG>>uI*4P{jAEfTA_N_k@{q9d)fXXfOk;B5*P zpe%czSR-%fEn1PK<59gubJ9@!WpD8*A)nVC5QCxlI_^R7s|z1t=M##@HNTlDA9+Z$WN>FbB-*5WGgC9pli4rqr|%4=ZCuhsFAovVLcKV#g}3i5f2WbgZhY5+9~<$!|335<*J88 zgT(igredYExKMpoK@VW#mU^~m;VnsQYX&aoeE2kcb2dg7eHiL1mL(2}Qqp2bN=p|l zwvgRm*}b0_>lrM^+$w6YTw#ts`-zlP7qz@XHY=b39dpnvP~m_!{Y8yyooF;nC9|?H z9m8hnoDFQ;SE|YK+5JVD_oV6)Cd=i){vxT;EG14CFe0J7L2)!;q+pgzeneDr8)v>& zMpeq&;1tDn3*xwl$Mjn`SM*k<~nD$T(9d0^6+{3hw<=7`gS2)|A5Z7tTWy66Y0Z!+EqDGbF zv|+$JNKjk_aty~4K8(F^Rlry-2fM*|g5U-3)2!f+-QawG@ESY#>_DKj&MbfiwMSF(qRfnFPl8B9PAR8SqgVu+{`Kd2xn8>*_oiH z4RoD~x%6exBHoU1EdmIooq1Wj2;I)l3>6v1h$!4J(4*ioloV>gmkt&4fST@qMckt8 zl^?z$W@&rF4-69{g!X>;_;B%rrj3^mjTEclG#VvZvmIZ_exraM$I0(Ti7P>H#pa4J zaHi&pFWAv<K~#)^ut>hQx@?2@0z(__VWls|Hu7}oI< zn&Xv%hVec=%uIA8bZ(hBIpPU}g5U#}D+7opZyzs`2wgulUbM#0 zE*dXtV{7?oyy%mb8-Y6$AS`5~lK~$5#q$&V&BHhGYbMCv6T}io>Q|BCDHcC`ZIY5= zE(a`?vsO--BsOWg!jHcp%4k?}&rcTfp{%?9o8mz=X~s?gu?>aoc~iyJaQ06X3$-J1 zavq>ba(5mGr6aP}G|_-6morU_EB`eQRtY9wm1F&PvAr=$)|xKrBJFk4#V|2e7)RvR z>7tP~MaI4j|LL;D+rmWfGjEI5y^-2l-dHU;YRwE|(5aeY42_@#bW}@ABKNeGmPqU0 zn69)J(GL2#g|~IGD-=vZnuPa^H=`(Wp_W>O+HO%ZZbv|+k2S>`Xm z>K!V-Ss)V8D|;4*KB!yIdw)bfaIyimowW}#?YadH&p zU4ZJ;<(t8TqYjg!7K$WfJbNK#>eq4|MIS1ET_^@p8A zi*P?TUAA2;hM^n2Tr93AH(lUT2xJ^7gNB7OV|qA#iP+6$nGZ3tQ{|N(imI~wg;)rh z@KoQKyEf(=_Eva^xPpUg9WWlHw*eerc~I z6cfn&Nc6-riNkSmiIrYgY!D3x$-0{MqL~L>DS4Y@a(rCJzhR|Q-@_4&F8oelnp?W) z>B$0U45u0Lh7U#izhTYM-H)sgi4~lB24c#9K&!*r7_DWw3$eBSo>d$7@6Hw=VVo<#EZYiE)N0j2Z@{LkFCyX!d$zVR${4)YsAKo3XjxR~(MZh8R z#9G%QhtBh_ZE)d11TXQz2NQh$D>wWlf){x35Q5)@l@4`2N-|$2cxPJ&97^D~>)qg2 z0Ef)+yIhZ9D*kyFewE-YUifPSzm#L2zmm+?3I4!?hZDRy!zphBf#+c7+^)_@f;YL< z8AV`d<#snbmpl$^bm7qiuiWIqV+hXo@*7L=uD9Llj3f9hs6w&J8&B{TUibup&w8)~ z95UB_=N2%LB24oNm_+cVqi*;c1kY{km>c{Sfn&VPrxJWV z)YM6yNAUMv=T9T}C$II>3108@*4qTXjfdjrr;Mj&n z$nL9|1pnZro<;BuH}z}+xBTR0K8N6MJ$Np`|G^H$PEf`@qFn+V?TW%xb8zj%oC2ZF!wX6KIt&-L=#Oz>M< zr~)B1{kD+Dq*_jeeuOH{9g$E%)`372wvwQg53nq^TK~6c$&9%_7FVC3*Srd58hhbNAN@& zkl9&1qg6C9m3O_~QS}*l!g7>(ojc z$HS>-DSShsll&ZkbG_u}3I5Veeu2QXZed`X0xP+RFA_M$1#_YR9`xqmAcBATF68#x zVDk9NYsyOmFLpa(2!V6G;Fk#==LQcYaFiGP3c<_Wx(y@ncdwzZ61)|av+?h11W#%2 zH2ie}$GZ#o01+-zUv@Xvg9I<|;6ntTe8~+zOz_|#E_{UGF&=!B;Gb1`YyBM~k328J z?*y;*;Nt}6d+-T@|M1|G1aI@;KM0;Q+^xVVfb1}>(N3`HwSz9G zI_-=Lsy-X)j*#lHx$Z`zI;^0Ala=bP_uWv{U6YcXP}N&6Ss<-{)mw|)y$=?g-Rs+&U8Pq{SRR(be*G{MswI`thx z;78Nl&L2zgNe>=J@JjIBBHtzW>pkv3yhre9mx`H5APu=a|7Q{GjrnW>y)mCdpf~1o3H-uEJ@W|M|ASl9 ze1gCE(S;Wf{GGQw<`aC}-k+%d7m~*kmz-Oq(tBjjVuBaDGk*zz3tc3?B(_m!S8zT#{^IE;7m>21WJ zU&v#vJ8ruO{K<{Jo4`eG=&uASJp?ZGrq^DACpC3OX&-@uTyQ^u8@+Y<8^NK$ zUh)IvG1-F;5e7uhtx8G=WGQ*;TM;4cv&Aw`8)hv4Ew$S75SSL1-`BTHN&L-mU{CsZ?iYfZJn zw*wd3?3@2vyM4e^bs8*Z{vcZXowF z`Pnh=a!AhLjyY(n?r|&tC{59}MUNPr%p#C>JM(pE{46Tg+zEYymbw5~fmceiah;>C zf$*U3XLN^pI@0xLQK+q!^|p#0f7dIZ?har4V2LqwFNKc8TiT6sa19?t>W!Q}itL1& z;-IkuH(*yo5E%M42A&ofA;&rf=@Q5F-=G}rY6wH%xnnn_p!W-CingqqAQ)HoxE|#L z(jrNkw(kIBSR}bBV*XG{F_R~e)9tjzt2r@BIhARK^8F2$C4f*MeNGhX@Nf=~V^U(pay7T=KmVKNriIzI09F&CseknEuy0?BhXkqs8BMw<=y*cOGTXsRzPZ11PLiqTHlp)6Ue`CPprDQ7CJp0ce#|r z|G<`BS#kb}7ie|;}pk`YaADHLr}+za^@*eEcPuHP}4A;}=mS24JNgQA*L= z3uK!UehV0H3F8-RUx-_Xg{hJXN{?3#+j$&Qdr?MUh%&|#2|a%h{#O}kPDYzcWCY13 zUq*O0fsC}+5WU={D!3`vlt`J?*OyS$0Fw!e&OBVpS5Y*o4d$D&VD%UT?qd5vS_Lfz z(tsn;n zu{fedjiW8QjB(KI~dCe2ZgA=~J#K+u%NDOJ_MI0jJ`bQ#hP zObaZc@QG|uTAT4{ZOQMMG_L%{!LQx;wD!Ta!S;70BdpE1v^KAI2m}H>@4_r=Gn0h5 zNXYD&n6%#LQ0g>nB6v2^pSq4pXd7&I=`^S#4Hc%ml|)f70?pbEDQu^mr>P%-xX{!{ zxqQEG5ALh&0-1n>M^v%aEeE;f7gx_y1r{UQMeQj3c z8<#KqChE0-@K;yF!{*x8C=j%BrKw1TT3SS3j0R>T*$_kL?u&%XBzDpW2>8iuzlkdK z@nqIk_)Ii`v5YIdT~q{~UV$dr8PzC&r!`8HH}!x>jdOPtlFO3!v6y-?w>gWELl20g zDi&Gcq+R4o`+kwMwJ7agc(L8HrEy5qkxdSYWDnv0h#`l7ms?hCil2SZ7k_Dy_?wHx zuS4+dwOCJ$hv5T|RjQZs4~yDfFE^kRyGy1Bm+{7>+7bV_WKfE3 z@N)ZB9`X0>_F{EvNbxuL<0l;z$zBKSC>FmF;@ch2h&mv;Xa|fqDvXv}%BYuyM6_&--fn8iKu1Y(^=T!^@o~ zm}G|J$NdBIYq4UQQ=-<#MQXfnS&?7%anT^jT^lXnWsgS-8jo^nJnH$R>ob|;t} zS2N4B0(ym5hdg{-RQBq61r<^5gh=gPG>Z+F&SG^k^&%&HfiW&)!mJIxz2!?!9c2hv z7H`S?6QY4v@|6^AFQU0Kx5-I=2mMy8gIZDi?34d$9Fi&?C{~}=l<*J|mUo*-ua9x6 ziA@Yo{X@*r#*fz@*M5~zn%=8~4h@;D=`}0k$f+m~WqJ#g05hkwFun@Eqv?5?V^omS zc>w&78@S#uO&zZ-ON&bHg&+ckn|QiFhiS4KD&OY%Bbh%Q!%Cskwq;NaM9Cb5y~!6} z$Z^Rw`W{Z_95&4kNQ|s)C$C($ZXND5xgi|2d(ugpJkY)~O>o$Mch7Z^o zS}pU1UPJ%*AU#stEcBr9aUnhh9$T#&M7#4$8Kvttk}a;gbu0U~QdqUNS{9U5g~|}-LK3;dLC>6e$Swm9A82O-1*q(My(M?(dR2DzpuC{#$)U}7scGPj6q`2o zTf9>EBmy*G^CZt>C3!R>g+3Ilpr*dyRTSK$xJP53$EOq{6RNFM2A>hs$bmu%Z0L*q zIfZ8w_h?YuqkeIZdQJ_$pbY9Jne&Ee#)sHQQEmW=o>k#rQdk{&phax~)Q%ao9dI=T z)^f60Lr_hpo?j7^jxv#KEq&LZ@2|r*M(WW_S4GMD%jmO8PSdK(BjR`S&C+#bFSB&1C9X%X=D@Jdj(Z>(5dZwm*6^@M8 zQ=r{N)-0>v8X6T5LmH>e_m#p^s2DasP+!n!Y<{S|pexs0p}uzG>m&8G4qqSB7s~=8 zCyMwuV1+oJ)^VD&*8WQdNkw`Bv6*yz(>_D>hue-bo%RuXhfiioSZ0+M+LBgRlXt zxc!8eHRd|BCJ*CoeuEEKYBATtrLs4`O@vzjm&*SZF4gioxOo~rHsYfj+)Z%tZr%JI zE*_1WKftX6_eZ#!qsTnhW_%r_BwO&Yk3N3F$8P%g86So8u@xVi>0=u{U|Rq-@bFPU zA3N}|jy?+Uv4%c&;$tp-{DO~}^sx&cGw5SCK63DZmy_loW^5HYP)@jcMSZ6hyPD=W z44Q>7Tf%9T_3JdK4Gs@X(7Qle{L%17iTd%_MtP@{J)SfkN4!z90g3PbSko+Hysh3| zj3Na**KBKMWkheLtcljZfA^1Ir4f)37`kuML| z)+fQF<*+(>YSIGWR^Z>O=mi6Kj^Iy~!QmpOy|F=lR!6U|9g;`t=#rgSFNf9DtKNLV zQPECH+X+2l>P2Hk2aFlq(Th%4-q8Tg7-;t5`o~oSze;dJFh&Q1llVST+CgWIFN{$Rv7q{8`*o28zicW2Oqeq)Bdo8^BeTQ$_{C*;G1Cr-ZMX;*Sc zc?7j^kWV+4ezti^U5j87PnY-4#Wv{rYii>**y+HCvBcLQy zE;CbaAx}2dpX_oVkCcEV;$&)cNQGv5;|=~F<-D+&-d^U^(%;f@W%b(njPiIMX1``u ztWy)EvgUe|^ffa{KTv!&_ON)xvsa`~oH-fzL^In(OJ9sxd9}+OXHww1wWV+Whf^Z=m`IxQ;eo&8SW@YsnyJEy2DX zYN2N!#k>}JW9=QegAz`Xkyq%C(JW78@;+U!6wl50?sW8|xBDP1re2}fOvk3L72Wh9 z!`qm!7zB?Eo2=M(gXcerlo$5vO_FSw$wx7=Qf}{p1D#V zO;koqD{yX6QbsF1P1_}}Yo%8*J_}Oj%zPKFqFJ77r9a-{cy-VzoxsrmqZZdog!1tP zZbOW@xw`STO)Eh^%MvIj<#?}(fKR`cDXsM&48gQ(tyd1c2c-5GGM)*yBivbV+rXU- z7u*(e4qR|p%(-y0;Ld|ftdRL|i50Q{F7Z+F;r52R5bnKj7s0&~?qayN!d(LQMz~Ai zc7wYN?$trqqX^?8hsc`ca(in%g`J6&7h3Dd?C3a|)CR*dLLO@>4#-}O^(CHajsILd zhj%X82)evf{TxORG%}2GMOnKW2JIG9q>@97q7yO7fvd4f^M03;+JLUapncoM8nokW z^qRFWJy_A{!OXWvmn{w9*^Pwsi0*9HR(~pGu3|EyFyx5{$eWmC3^R@ybLF>f^~xm( zm++~!I^LNcmFL^(e~{_f6Ycd;6~`VV97;+eiEPAugn99#lv(<96k~suKAzkhQ=fzC zhBL0xD`-*UNp}LwnNsiwnb}F#6D-T6F=xuKDBP4_$pHOQjBcIud%Ke1Q&KPlRVK<# z1a53l48EZ8egyR5<3=c# z7txC!F6^w|sKxk{=*#w3>s3fQ|Ls@n$7?`nkeM4}jU(8CQZ<%^a{PuufiIxezpLJg zY>>|Fs@Evdt8zzIJ>jy(j4pw9>Rh8&uSiy3XE&3CL%Tqw@shu=G-5w;ZxR|ROlEAZ4Z1!!GqmkntgdOAk09CY+;s_ z(t|(aO*oNKIa~3Og^%2=N&}GALcaTv79Sj^Ks6*bO^8`$X#+~7ivT&ggP!OeKh<0O zWgYbDbtXFbAbZV9fZU_9v&}bsSq|SSr+%bWx-rk^=T>DiRSvZ^ty&U!p}Go>Yca=h zxN`^&b&gj-I6C3@PS0?me&E55dULt!8a-88D)npiG*7SFT3W)K*mj_EqKc{rxb|AT zHCZaMin3#7^(_(6ihw>tkzh$vUwnA2p5o|tQGBRf*XnnWj*6^qdSbk%ia@>Ef3TZg zqm**eBF&b*DyjP#t7*}yX;jX~-So;t%3&x{Njs2L6+B@^+m-r@Bi+1;D7AJ8-SxWK z+tTc=-&oU)&!J3-2h6WkXZSQFC~a3Cbk|c_IZ@5B=&f|$?UBcWf~hd-@c=lasxM-C zT76Njho0c{1@VDo(;j-4aUBusb6(LMD_?DUTC%$_>lPM?*FuG8E0bZgx*2xYP$WZa43Dd~cpH4WT$ z11pL)H#Z5#afNwTepGO{-Sv8e@N_g#uGn|HT6@zGO`Qy!cs<+R48^AMl--RWS)!|CF=ot*k9y;8nr(N^sw`xZq>k*C# zPTFC*DXL>ZAp%Jp1c9`tSmGjPx>=e{aJk?%y`uLA$Y-P3 z=?hS=VCB%*zv)^7gy*w9r0G-Rn@z{cyX% z{SEHba1X%k2=^e|mT(WjHQ*kGOX%?kTp|IF!o3&nF}Qca{T=SDaF4^i5$*}N&ETGd z3#A3-A8;GMJq5Q;P-|qK#z#6l&cF@YE)mmb0h1C=ax22c1(cb$SJt~*?@{S2XW9$6 zz@mA=2O<#qK~9Eq?$OU_+DZBRefmK-5C22|$a2!p>>iJN2#3|# z@`s1?-vF)ZqbCI~rUG%RsTYHJM}!Xv9Atnw9|@A!+!Q|7N7uBP3AACtu9ggS9v6<|ZXrk(its1+vxrUQbomMo{N)6k-lo%0KAlkMfIb z{a4g!PG9|Sy&XKY9Hbulfz9%>etK$^Eqba!S^or=?*F39 zC@{&wBmp+XbWc(RIx+qLtNxOPu63w3j+eDP8J0hGV{QGIsJ z@7?mt73sTp>bnT52JgwmkLgRGU#HIiy`i>J$^rTnP>r!+fSwldaReQ?uyksIY~&J9&(xxD^y{aWqvFQMa}x(m`GX-E^3hBx$h~x zLLZ5p18NvD0(IyQw(X2SONyiXt~O?=uR82r1G#{L1UDkm$e}bi2NRoF2bThVL}6An zkQp7CfI38K2Y3s!YPMn5aO+e0&a!KiE_34PZl(H#*FB99sDwhmcgYCcPJeErKerka zW!Y!-o@tXrT3MQy2(QELL?wW*$_9z;i?Yjt`dBA(p4F4Jb@I(;^;R7aojBuObQRTN z-BAljKRjASns9<~R*h3T;xzjP8fTXvt2~Eu@8{um&*@8<_MtrSyj~AZ^%wNJsG<;| zD_+sjFX-zuDery}$KG`^_eH$`(0w7j8V-dyA^lrGy>j&H5jG=7{|QiNkX|+84KyGg z1;;?K3jL*fI>^$Y@=*rN7zWGYtE>t^SIaen^g5Vx#|G(@*=h(Ry`?`NetEFogK0Cv zn}+CpHOz;sp{VKFaNnUiG@9n^k$r~iwaFbl9IP9-(?;qQ&{y0YJX`$#ZptP(5Ak)v>FY}F;`<=04) zca6d!wUk(uWc5*cQwq6pRO$ItlnX}b_p;@CWVu{@3&lK`YqezFXshAh+U{MW!FfXX zkkOY6Pm*QF=pEdeL6l977;Uw*l-!c!jxoA2G+$|~Rk_wD!~k>r0VyUewJZ)ADTwPE5}U3DgJl4a+;nR z3+%H1N8B30da&YrXqx^S({_ZPnW2~0;l4gge@_!Tcxz3LoTc9t9y>?xs=&-#R z&c9o4?I$`xa{5VGqG@I1J$i3Bd7<95%sV)}f{#AwuspO-Z_D=9mJJr^|A)LUfs>-R z{-2(i?Vjo0g#i|XJz#dYVRu;$0Rd&38!yzDLxrgE<}l(F6OFS7Dk$PAV4C&+ z6&+NftD>T!u8K$^QAh}aBCdjnitzuwSKVDbvj-YQ{eAv1Y}eHB>eZ`PuU@^XdR5v7 zVgg4`j-y@Tk^mHfl0XstNs!=!@Pe*V5@=7dPyT>FhMbx8NY>LZgdOu}*5}lN_VTRU zQW_BnoJ|W9;b;aucG^OYCB%}BR8$}zDQziZQ&X2`ouL1(h1)!pbxL>`*VvL^A40I( zCYpIQwx-xN5|8FyEUjCM@+BS)cBvK5WDN{S+K_eUqdybIuM|K}3Q;sNwG~e`*9%0|o~)LslUwQguys=>{{Ghb&Y<_aZ+6@w z4)R(?ozaBi3fz7cBireRi%^07oL9({g*=|6LU2+>gzeH+oH@(C6rAH!_Rg5Q~yt)qDtP~LJpzk59C)ppqK==aI}7uSBPRnx6{GRzdlB9F3uaKA0lQQqnl#gk@}Y|Ad521_=8@O$~sza znO?T$481IcvY)c_8gZQdcM?lk$Lnk8`}Xnra(q)WPJm5^BAz`_|0jL#__e-`zSDoB zzeyQR`K|sGXJ~!0{sl!eJw*>|=2E9=aZObIM!!_NG#r?|ak5@2^po`_VIo{AG){kq zil+W~s(vg9#T42zjsw7XI0pzz#iNZdwKF}6%g5^-#h7#SSGhtx_zXw`WXup^L zz*q@j)iL$y1?W1j)PYe;?YKzqtlDzmE=di(MDP2(3fy(6-c}VjFiHX_6{lKUh5_I; zge6yD!jW83nzfeFtc|1Y6ko1ip{hBsToTt_soSX*f7OrtKBZD9b&)D?V7vtIvQuYO z=r0A2a8{*KV`!UjMuu!nQz@@KZJ5}OWq3it)yc3^eFs(iLS=7$0i08*OzW{w_Jkp4I7$cCMDi{3$zD34gJZ6aT? zn(W{L$&!WsxVDld9otgsrCas86*??r+9n(!BY`mB!g>G~BpkqE)*brL)W^5$XZ=t} zDL|U3fV7cq!nsJYgGqGqWt$58afPx?ZDm~QcX#Plan_R&Jh~@-zfdnsUH`hC7Zzu{ zs*mzpC}3oOwba{eqpi!-%dhIX=FbFE1I&SBP0QZ}2mP^4_`}ao{fB< zfAyvKwBMp19jtvsOx~im$ldrz-gunivhd{BT%8_ojLp==ye;~26hG!eDA@R(yj4F! z!x@`fx9MkU3sd{H>21T>+*IKXy+sh7t$Wt$W6J1!j~2qFk^RZu09j80`Pf%lRjJ`l z32xb%xS?fd(XpQ((QfHHv8+~aQNpVqgs8t z@4Z6Yw{%~p{OB_bx2dA}=lTVCR1a-#Q#}D$4@{|C&-~BzHi1D`da{RJG4{dAY!4Fu2oLVsjQ;8 z%ZCzZI;KMo&fx>TA4(Sry(l}xgMc5|^Y*#<=)?89^(nN)-{ebuWZK((T$li-AA1;? zV`SrOv|ASd<1#)SIpyoHl%EpConPvAx9EYxh8UfJk+B6}N0?>tNYd}W(ferIQnSC& z+tB!aaIZckz7PgeYoo@;U}yul2%|anl8#}l#a_^h!lL3^y`7l!tsaTINCHE{W4nL- zR(}L=%J%8ly_}coyI-HICFl|ZZ=1umjL`(tGC6tf%SLY&93gO8hy@3>#vnNG<{bt! z?XVN4WlK(DI}Zd$v1a6V+_xE=HWP+l`#oF{fFpLN*QX&w>`@UUZkwnXXR&O+WxD!g z!^Z&CnL**mGj_}X3P+wDP&o4(wm&8Luu&smB|+npGYGHxfjMVR9rnbjXdDdSL(yTI zYrv`Ku)Q5M;8e6z!z!gU%cmVNz(4Rry&euxe%0 zXj8~0!oYQa^N;wH;z zg^APSGn2$yF7{Y?l$rM0tMEG;ehD_^P(7wQmzwqsZz6?i(&DD5%rSDsUdt#3?5^2H z6AyL}2p^vVO3j|*In$PjIQl~g@TScP?_N<6c*5os@`x>A#bp9~Typ~Xx|RtYWWw6RIUYW*Wpo!A4IkDVPrj^W0uC2b z4e&+H3FMPnCY0eeIHkZVHK&kwYMIhU7JbC;EQ68hEHi3jRVaT4JXnZPtK%e z0(R^u;R6W;0&v?b3tT3n;X9f0lMiK?aD_~OA7V}*f5bAO0=uEqFnA>96!J_gQy|8J!{H(s z&WJe$K8a-lBs~{-Y7oc6*|3bqRKW3bEslrRVHscP#KZ3}Cy@VPnKH*ofrDU9AxFV7 zWuB9ggfC!DBA>uAX}*&LH^7`i?to=Vm6HOGznnsze`N~hH%1Nab~%OI?#dL*ft+%4 zYfgaATp5o^lHx_8h0!9p%*k}eV9o?zwKCIkCw^{wj)&7)8Nb4b-}|zx4qqo_rIP~p zpZ{M6kUcY4u zu3T|z?}9THjHAcvdC+#l_P-s^ z+*%%fJSg&88;Rs2v~~eG;JxXVV9fm$O#2l|`-LZQd^zC+%J)l8`(>p4ilqID%3n#R zdNVE2O8b?a_A4jtSCh0~P1P@)VNar2F()R!2n(7p-<$B0O@p3%sjW?hnx6+1e`FhD zS@KD&l#YV}{uI7=q|083?)r<5MYfgEHyH?fFWyuRGx@s>7g>5TOb_@yZ-h9TDfK;@B$pk(XD33 z5CP{Jj*_;rz-Zs-(G_;5QD==KniU#(Nz#nyfLs|XM-(b{^do3RbeWo$lySqF71o+! znMO-DUK+|1?m==uJNiLPzzT1$d5&pZsn2fLaP^2`6UkhJl)0=hQw*i=O*T@8NSksNbTU zF&d9djcaFgD0O|Ugzc+{b23~H(()QZa|Yd7XUBtoYiFFGy_13$p2xJ{bRnK7G8XCU zV4%R6t1}WtSsuc429fMSAsZ|1E?`dliN)552NTAy<_l{IU?l>~f6~IY97l*nsJ-!* zjQBE&zp=gXtBm+K#qVlwbjw{#EyqF1qhnLD_-bJY&wBOhV3f2#4RlNxgO0197KsZx z7$=F6&c^M{(Oy}<*Ie<>&PIFfeX*~zF-ZGN4D4c@-+3zBtc}VE0KbK|v)GoR5W~{$ zNyS5URZSrFm8j`r^makQsWnlM$dqc?)hN@nsi_g&jNG91t~jOGxGp0fL>la!(xWRLbV~063*rMs>^ow-1|`lwEir!O5xtoKEv zR$^8!!z^+k(W0udf~>xTPL_S`7H3e1*1e5R!O99z-rMNj^^2w+ctGXL450)~?eQ=b zg>p(a7w97CoZd#qvj5{31wedo}N~$EqQ1?fD05_4&sUO zgijRkO|N!?jRANX{p7($PjTTNjhj=QhZ=SlasE@rBdHD-7#)MDb0-+DrM+<pJb%HaZfqCH}2UwTRX|{y>UMPe37MO5}}+bIo}wrg+B^vx#HOmj25ZWE;P!H z7pWtS(^4B>Fq#I%jn5k=^`vfse3A|{q5Pn;R#hm!igu@%E+rt5f(*o|Hmi)YwbZ9C z8Lftk`*#>Q;({-YjpFN^$o6al=4|+Qv=)W5Y*F-RsD-EaXLceSA-nx~J9 z@Zt2UnEt{ia-2hRlRZ6PgB)p+>1W}?Jk-4(=-SivHFicO;zQZ$h#;q;-_K0)D@RTy7M)b z*i9HaRaZt#s(90s2;Z-$y&U^P_&w$72wyJo#kUmI*GBlp$O2JM$z>IhR=4~$avhaE z2%yD(t~^+27v$gllqq&?x(b7}qQ&7O*si}Jrk zVw5Sqy#7o@k3^=3NlPMpv+>~9wD!TDs-}U{?q*xO(pT<-pf1T=! zKK5BJ8kzp~oc~vBmH*e|7rbBHHSy+)ks%)Nl)XBV%qFyI{~c*3Zu}&|>fiD2$l?1L z9-*Sd9$V^9Y$^V@4X}};x`7o#e*U8XxGgN~Y z-i!S8AcDXB{eudA@}`3XJ_X_&OtKe#7`fgh`@vzy{o5j!1c~jA`%3c7l+PtQ-h?O7 zDE@=(b>dr!rk_fFx!{wG#IK?5z4l4u@*fxCf=_>Jh?ji!V?!Lh^T&o*_{EP6@w44O zBE$uqqOHYCdm`8R`+7mp7LD;H={7F53YmUDYVN%r0nPEVRVG1^LW{1$8uZvIh$?%em|1D*S9^v6f^ z#^6B!Ixc(=fOgjp0?@CF=v3YPjccyp zc)5YZmZD=P9_HfYPIZf?Ae2_K^q9~^rry*=5_ifz5O+s^N!-fb^(6M_Dv4Xvr=G;> zuF;bT=YnogHm+-jMtRFX>n^`jPK@$m@`6L_Pv3NClpKS2L<^n`W$rRHy#X**?QPP$9uk(dgActO`+6DcC{;iaAo1E_hW99Ex$3{C|+j&c|>~bljnmrK76@RXUV^Ofgf{UY#WvjVd&H~`5 zMzW<&zaqMw+4bS8qyX%9t^A&HZIm~d?Wvxw)>_1qj_Ayg=vORhBoj+Zb7_>N<em(Gta z;-$?`&QG!Xqi->VevXgb9 z85@oxj5}6EhyE->O<<6pE(Y&0vTk`k5=m`*I~vi%9WO_J^>YlodXX9X+Ajqe1Bb`n zjQ-)5L78b;sfquHo)I$Wper6+Prbe&`Wnv@cYIi%qR<^nwr93WCB(HhoxJ@(IaveQ zx?O4@-99-`c2+|k|0McH?Us+D)kLUY05Y?Af9j}OiG22FQcJ_pkzBE~R@yUg4k}mF z)JB^T%K!N;IdyUVXVLVd9ouW8e5Rz)8nRM{e;zIVWnnaKcQnTP)PMX&(x_~&q!Emt zAj>zBMr;Ay^^K&FvG+hZXYQ3b?>b=44&O!x65UV#R<7Vs5%1MB+ZSyq{{C&04;;Tz zH<6uCpRzB#5TpF~z9>7>ZoNPH20`AopRt|$fXPNz7>sl09%-^A3-;pNx#yeI@pGq` zWR7SgmoBn3lg(MjYX{D|K{NY!wthn#za!E@+|^!=K;M2A?~+~~Gl6y! zZ{VnwE)%*j@E!(_voa<%)-+!TdYKJMO7j#Np%};Kni!d5zU}2@Fll+Yw41lQiTRP2 zw{f_sb!Sla4TEZ=-ToZJI%C}XVzUxkyMfAk=uzcLzdN!nvct8 zlnGZ=aLpSpkqk-N@5N)wa7WQCeqTGIpZbnUMCW$|>8+2*)~>wqpUX9Z$7@rx@d^v)(C=))lK+&x~I z1OTmTFwieJ%>QGM)goZy87!yqaFH`0AbPe3_iTMkoZa5srtK5Qbuj;>eJe^kn(eKv zkI^;e1a4A?#F$QIfw-)rc|Q^poiISQK9(BM$sDes%*@W_Bm(hGXLH0MYaS~Y36kIt zTR4H2aOnl z++P16kpo~Z#LGoi5AJH)KngCG#e;V>eTlx4z7M@0> zn`XJVpMv-8UMH~O@=!VY@sY>Hiej^46GZa$9`Yfw;&t(HvDxOl6>gmL?nLyf3N{01 zszlyMvn#@}>kZ&D^YH@uNBC;viGM2jM_yXO1WK5LocO15;*GUQC1yYB(0fbFN3`AI zq*C*osyc9&CzSy`FU=RST+=+J0iq_+MX#C_A5^OjU!}GLD#qK_4kE0O*Hb`XI zCT?0ImVbr3Uo;SimvECTcOw0`c)Sa)C}`nkB)u=U`3+`(8^z>9&91@gcZ&Iknm2TK z2U3kMi}K?{(j&qfI|+TfmW;n}jL<|J)7LERunsx#PLcF{28T>^VfOh7qTchIlgV>e zU$Z3pwwV+w9}gAl`zcodNE!a-=%h!zg zDHZ#J4>7vkw{$pP6MOk5luJHsEKcfY4jNN~+st%ljIOF)3)fIqC-64aF$$kIPzOC6 zS|d>yG6k0jWBpK@X0--zd)3Ft8oLg+)9rw~)Pk%|o^Pk+aJUghG(4(dNYSh2n3Z&kMm=gL5nm(DILtgcShGYte3*Gi zaP1QD%3j0`d`5Z6urZ8|sA@L3ZMRm++0_yV~iFm+_@{qhG-{ z7vER$#nVpq8hkO^2JP3x@PX!`(cRxL_u@wQ)PZKlL+bVQv8P5nGtlfYXal+|hzFQK zsO?)E#<2tRC{Q4lqAQBAseEHw{!N97Vsw2qh<3zMqT3*|EQz=%XD*^LZf>}mBLML5 z@4}JL+`lBVr~*KW*wq1YijZT6_zo}?!^=PP!3A;pG(n#JqjS*B^ox8#A)?P{>X=xb z3z2Z8FlVKdl-N1QJa))6xW#LdKyqG=!`oTk$NdSt%r^CKa|t|g_Bg^U4}MfDCLdvz z1?PO0y88$-q~j60`-Yj<;?rZe`CjndT_Ssg*L^r`P zZ}JUbIfU#=2(Rf&3t~5k8%LT$+iYDz!iw%s^RTk#AbF;n+(|SWW%fDwx&NYb7h}Zo zsI11*hgIa+?PZFdPtjLlu$J`;&Y{?Uw1;L$k%+5^_X|y@$er&Z>ohkO<9aXdDck#^ z;;vEVp;=r08?bK>{}^Qs3NFIK@1xE3J{N1g@pSBHv)su%d$ie|GFOi_i<^B;UTcWl z@54>}wHWZ?+tFt0#>a;JcKg^~ez+!xi}1LA9I!ummmSB@;C7?-M4e0lH|8mL@RH?1 z9A)ETFv>3HXowuJF*+L^POjnLQ*7Rm=7qu3ZjpVIc|>y8erJ>rufUNTy$;My9OMl2 zK~I*V9Br?9tAPHYa~wrvDeD@zJUssmiY=ly=f8v=7JDZPl5v|}WX3)Lhl37~y9Kc+ z;AcEa!xyZ{%?`$Ke^x{ad{G5f{d@_RJdXR2Ah$w0+C1zJ^$zO#9r&=~V(;GSjBbcO zUu#Hv!WhgVrgQuT=p<5cO@98-W*hitd;Dm#ID4B8cfZs)G*j$2+H7}X^+);W=l3z4 z1!F@Kc-$Vh$hj{-&99;N%Wk}SjnhLiHXvhfl5T+bx;gUl+hFh%aj!W27_*1#CXRd) z5E^$LW5$8TGsj>MXNpb{JJuYpf6d-HMa8k^5#?Wb-beiYA%H3QT~YVVA4iAaB~VNm zn!3GBt|jnZr+H6omVq`{Pt%}9zM4H^&2i?0oMqH;;1)bC4mTVRpJEOWR~~O>2OCTu z8eI0Ju#YnjtFP#%r=e(r=|h8+Uy9maHBz*}^nuYy67M-*h`*d@=4DjA;6!tHu->HE z&(0Vq2A^O?a(3;amXegm#3!_|W@!cxZalT%J7pajT)V6B#x$5dG`M_MLnJ($Itfo> zVSN_B8?f9p7}M}ZjJXG{7guQ6vhecWIzLxXb;fO~`K1I471 z;pTbQPSO7qb7FlI>~;!xpuu#IZRY{V)=>J;;Jk*C1_ZAtMDSdU z0E`-58LWRbpGSn{l5tN%WrqgWHmVmzri&-!gQplq%k{Bg)0@B^VD@)$(z#~m^4W!51A%@4dO!Pm86+Wx1%`TO*nWg` zg!p*4Bf0TsX>DDbLWD1%Ow^ir{d zZ$nkGw~yNM%uhzmB7ZCNFeL?IOITgS6VBE2tUEI)`Z8cI<4#m?x!*i5BP1q-cD{KC zy+kcLfIK-V-y7VqqbHgLDg&8&R0e*+u41B@J3NlJ>+lpaskVfSP7ge1AXE8ELZfK!OZ``{8>OO z>Ek?RxccTU#iH?O8s{;u%I-2Vx+`NgQ9h%j_d)PcJRmBrFk6)`Qq$P{My9b4)OTjT zY~M7-{Jic8bA4xr1Khc!CFW6Hqmi-f3R}BqK;R0?>Jtz}?TlWQwY#NOM(g^r38MC| zW>FGG$|04s*q(-e$$l{3;PrENuERs>?pz1^Q{Cyci=1BZ1heOqN>MCWuKoj1-Vq8G z2Rid=m8|FmP|n(69a^Ljn^tIvkgZKf=yujUfEeAa(JaA zi5|d)OOdy7YPdHrb7RjaVet58^`vfpWK++xmp%#GP%gHlo5v)ryJ77i3B#^XVde?a z8^v&Th(F`u$d2q@@V;o{y@(0+m6Kqvg*mb$@E6#Hg5=t4FDzclS5`bYG!UqGhW-qO z!LWZY*M1`y*O3(z)$l1mhm*A7B3+WeFI|v~%n4)K4q!WnK5V*bb7hO* zdXIWLIOL{`VdQC#n$jL&e@+`wia=6f&2>gp(l?}9sw!Jb9;`Er*fevR91y+%;$huN zfoMe_nvP!J=qfTAtL)nTw)HZ~fZe$lb@z&{EU7`D(&gV3mkMGu+5 zzf#l23_|>yAU1};k{pb>4pC(fAryFS8e8NW6s=Lr9n+KW&af)bh6oYNw*x*>h096Gw5C5~l)Cud!#Sf!s`W?D12@Fco(RF4FJ}3DLYrJCB7)QF{r! zNWmy#=-dP3GoP-he*}8gOh+ihO0sk>ml_HkRZ2(5gPaHpk`_{sIG^U}lBby~d9s_yY^<;bvYW_XIr5V&KeV9? z4m-1`ld7l_H`1F%I;)h<)JQDmNZ?AJp^#GW=xGOz%umo(NY;^9(`QSvby4NIq?4_y zO6f`vlVDd#EVv=X)(PY;wCSVs!MNB|A&^kJNqh3~PKGS#ra*Qhka%&UAz4u6t|T>k zo)iFM(eHL;qrxCO9<8Inq^8&Is><$EWfmsNwwKz$$+kwj>6lydF^}kC$u(x%Gt;Nq zx-x>t@ZPBy!-M-_JUK%cwaT$8tM&$Pv8uY5s%GI45t|IFI0-^6g&S37=`)K;RL+ug z&MH+Yr352DljKr*!wV43EYj%bVhj{7o4pPsMQ`g9?ETtg?iE2^_npCuC4r0R&&3xG zhqMgXP&g~JY-b#pavVg((p$|$pHZj?a|CAhVZ@KzZM2gP-@7!2hoQYr*T6&$Coo^! za+^7*sR5QGt_pMuPSc7?#m2d2s}`m4(wpsgJUHQzIXBJhkCQ6dy14i@Gtrz*uCT7j zN1~={*;!)aEc4e|mbi14+0UYlFOUsLhGl$M^u5vSlVmI))fo$^fVwy$`!vRpib*zQ zB#CW9@JNe6NP?tK>>Y4WQ5Kp2Ivq_Xsc1{BJjBB<;+N=0aN~&S!w$m_06ml$F&?9S zjuISZYaFa%wx079u{Cy=tl>q?WIgDQc9mvvvKh2oqG}?D13TE6#yNs?#_&{5Qc4|; zX-?I!-(FXJqh(7(s+-jO7AkKG&P#QKF$kc(g^S4RI@O7eOA>)F2GF~B@yV+oQp7qS zfy&e;jd&}HR>M5*kceV4)i#_B6W=29T}HC%DqY@F%iQEM>UP4{s_RuQYK1S(CVC2Zme zro2MZ_Xb6K72BRsKLFdodY;C1Y051(9rD0~*%0foK1xV+^s>gG0TZsBSnk<47zJhz z72zDECt9fEOQ}?6$%~y2$ctIxgE?mVV=yI?`U*ieD$YhqVq8xSGlTj?uqWOA6@sdX z{SGNS9Zg3ZGuJ$~I~{`|orO-)&bX~?K@}+mKPjyhV#W^WAXPV+JZAEe+L-Ra9*}>!_ zESX%QOCbc>A(_@SabtWDRI2Yd3ei`Y%K?oMbi_Q(7p?-ckrfz_4bK|EExljVg~^U0 z^%y|RTn+d}8-pdd`scQ&o=_mC}(AIYaGbym2g6rWW~BZ|zZ7p8hgyZoG6(Q7^Xx zGS&O6crWCt7(9+3$d-fpLm@SJ0+itC{O7qy1}j!-$X-=mR4VJ^AHPTS#7(877LfJ} zLeMmMhuI4+#pytn&M&fZEEN@S80K=)!80{?ujd1<{#%-GXtn0rmukNQoX4*I`b7LOdfb+jm9ls#|L6vC6#WL(bqkIn zC^UN!xiP$m>0vRzqE4zFJl{i9umYrEMNhm)IN2L9CV2vl{ae0wNQQ=RQnbCxJnX~@ zr~_#^5(b*jbSUaU+=2?ahAOlKT7Ln4;DZx;q=2@D0t#(V11fQ-&2-MxfH@gDkGTIX zv;4HWkg0YFnfcHM`CJJZD{6v_6I>qTu!IZ)(?vzBFoIX+g9Py&;>ap9j^2Q58B3NS zYKTdqGGt%>5l!!CJjG#H#pW5Y8^oL{vl||Ze5T4Q&@{23%IsL2-oDEu77>XBT$-aF zi8r144qaegpbZoEE-?F!8%5Qk2fGGwM+5J`vQTAC9}u{l7=Azi)UqozZ`tNxa$6Y7 zN8)H+8IZ_y7@AOFTyG1fMlLkZ3(~$^(BAb$Jv*A-z8uY@WRz?rK3QZoJ;4>Pgj}N= z^+1?74?Hxs$fs4--KZDG-eaC^3`I#}#Cn;VaD!2j%OgD%7PfEp`l2DrFO)QzZ zyn-n!XC<6KDpRbqRjZ8g=2SWVM#h$Pba6@%J?}HSxTMK65-U*lleAjImH`fW`;PZy zs^kILb$+ug8E9P;>S*PTnnq_^>=#Ij=rA5z0N&I@O1Rj0AI`pd9MmQaUZ%Yi;*Ut; zfF-E3P{OVRv9)Iy$W&xmRuv=ytaZ@he?HGaIUz^%#}i`VVsnUZ`;I11uTf-Y5&IXL zC*l#T6Ys}ZUXn`QZ*B|f@_~AB{!;UF+EadWso8#j!=;&g;M4KuV*PH{EGUFs*sFr( zWKsH{nb+1ML{p4r6M1;LrbZLPh_fFw&+Y8yv2TF{Bw%!=2G%EEM-bD9FCH{I5n_c8 znf;om^L)JL@P~)Y!*d@13QSQudjeI#XgvCm+8WPX-Kn*hjb?TQ)RJ zKq?fZZBU@ksA+6Yqk7ZX43bxz@;CGJczQcwZ1Y)9hy}%lznS?_H&R^ud^?aBUPm6+w8^k=5dw&4tJ_{jju&2>HeGx{OzxQw* z%yIw4hdHgq#Mnm~#5`^10jrZAfO#BMIcw2)Cg$l2Ho`pr(K?u$X_zMn^ZAc9h_Ml%M#}E z$IMem+VRXPB@xyJK5ofecVOSw# zUSW=?_f4&ITj!I_m6AwROo?_zOr+YA`)syBx-8oJ3+b7Mw+H5iFN%IAKPJGI| zI(aK>XhXDq!DXa=LbHrO@il>qJt0bs`a0LEF&23ZMDA*|Nl|Fg?+&F+EmjPn#`I@*0(%=(egRtrm)< zZmb(itxS&hao!A1@AYm8pn8(fCfvZs%c zrY{CQWA-OyFz3xMRuy2r_G9uRUj;|2?>ZG&FI?^O7sxeO|T4uWu3k6q>S2 zydAW3<;$Nj4l(TG3O-A5;wrO$23K4L1B=TPxO3_?$FDclhXEU^$t>s{>sFI5Uqediy;m96%U`47Ix`8&38lEpt?m{v$TNWd6F<<5+261%wQnB0U0u zf!YeT9UQgVENJV=CQ42lRiyNYt5=)tJ=Ty+<}J;5u(Fa9EXS$_2L{tt^;p~ZmR;#; zl0PFYf4OS^`q!@_iOw&Z?M`v2D3M^>C-GUPRaWVz@nS;2lPD$BgVNYhLYP8bqVhz4 zvEXI1rF&4flp>x*jWJpeZ~TIG4PjlT*xHxPR&F+0*@P zen*w4YK)Jer1tn&KLv1grXz5+<>lvJ@&L zD*Sp0Yxtsb4UpKM?{&wQ`5sGrDuWJ7e5dZn)F;$$g~Uuh60BFGzN~@T--K@2$Qx6* zd;5hL_?CH?5=+m3o78fqaj|4qr)5?=fdxqVAPkUI(i^QlIZx&rj4QG8E%VPwx`dO( zYn*@;CGkv!tha-~XfjC0e(0!L2gJj!i-Viau_-zgIURU(30@4#KW)qL-d)1Ph{jKR zBC;sPBZhYv`+AfXK}PUO0_9MqIAA4$BfuMhQHfxFB8zNzkSjE}@-ZT@(PqTWA^Y*a zrc;Y(*Fd*Ja72+k9_JU$`x3ZU7Gkj-gtvoRdW3V6WRJo8}IsYWZ<{B{n+9_lHMlE*FKYf^w)7UcL=2zBo#pkcwPpd` z^N>RU+jYuD?AvROX9;^7Zp3U{Yeu}>WCqrx8F;IqMk@_xVZCGa(w2xL-Z5L{&|C`! zq5g#=J^dXRMXSWjcg(h<=+=Z}Va=A8Up;vQ$T6Swoo86ak%%k*BhHd@1YgM`=BMsr z`6-)&4H^F=BIijKX_QgP9q<7%s!z+q}~? zbdLFtIkfeiG}&Vsxqx>3F_leZPc(B4@xXuF;k0XKV;j*d388`Ki7U=Ab50!VNz9Ci zk!J`wgW#|LW)RHaycLaEer(!cNt-TN_K)9e9!cvTx+Lz-NSQ)S%^x&>`nsLPpsbkp zm{mq8CRzQX0o$wGHjf zS7hAr-%MvK)$aeAw<}$g*LbXyQ#ERQ${lLobd4Qq7j_fBFQJV`LRUK<9by0C`+C@c$QG=}_8&_)bhh|92#xxw_Ju4j56pQ# z{v7=Ot;lGRG3Rd4wL`>=kFlf6h8@U>LD=S}lPY!=4Q@J2O=r<^6B;>7^u~l7Ry-z% zk<`-1(J(_i{JrdSpdnJ^W#{22hb!N!gq*;+j))HoP8@`xA%h=7NqXKLqe)AJEuQwH#_B9uv1MMDV z?Z3l*qYC)XjEIwVn8Un92TcLKHK>2*UR3WeTSaj2i_TKF7Vqyc4};Q7M+tF-?>15N zsaYVW_jy0ZSoO>KdiAY%t(q}@etntsE${N@4|5&DGyRay%-a(lC#j`lFEucD2HO9b zd4i`Aoc4vQlI{8YfHV7#FJEz({{NUtc8F-V3u~Nr3mh{Uyh_U3d89kNSHw!)eEp*DXdOV9(?Jg0i~l8#C8k?0oYLZj?zn$!Qa*DP~)b7+Yn zT7PSv=_&Gb_%DLfzECI_6`I-Ws6gI~4g}MblSZ^2XjOgW310%4sq%zLOA!0NHCq;P z66H|~5qY&?j+tq{W%?A8t6NyAbP-tGMt_p{<{utAAE zc6=i7+;~>kARW6VfUa`mtgzU#flmvMpc@r6^z$*?)g@BGsS!c+udVxr&`6H z6A4=yFt*b+ zSwZX2BAg^udK+q|o3v@Q(`oUe$}8pC6Zd888SXNa>r@;f2WCBWvJrZF(7M~-N~(v+ zO|7J{AeMxz&gIw22I0PeJ;iMsdx}vk>(xV2+3&%IG&#{c+(+wzDa9OJ#@=#50Coa>y6Yy$cjP(^;F1C zA-a9-3eN9JH=fO=8R_+qDc$QILRJiopq^E-9&$CX(&YoLM@fMO>Bi=W2O{b9r11eu ziu0nV=PT8oooV%a2R`7%QcbjxdU(-vqltPp$xfmE`RDiTA5s*=ZZo}}G`jIx>oLpf zeAE|G@o0*AcDQq#W^YOBDrID8kc1?#Qk}D{mo#mQ_%z3ARWkiEZA88`7>`fT+B#dF zOy_m5y(DcbkvemBL60`6qncQ{rhP45YHxM-kH`Y_xVP4&zDhOeU~Lb12ixubxTuF~ za!QzRceU>s zc0p}(>e553-JwiqURGw*>G|pPWuZP^<+-z!=vd&dZ!w)w@YP4nN}W+)jnK$=xTMf( zCr>g_acaDeW`y>^FK z8n=qHsp9px^(U`auq7MxGZTy5(~GQ8ikI%b;&)!+KEve>*VVfE1NPAyJYZGX|cUeyS%i;ufoy|r&dyJG8@E~|Ye*V)8GdvK^K zjN{h6qtwJ5VotGj0`cwEV#~We#B9StfpksQH#3ey`OlntOvb~?DdwD$;Y%lUD@5rU zarl1X8w%bi^aPo>vBWx~qt~Ih^+IQ@*AwQz+pC8K=^>@o(S-L|rPh$7y7Qu%?V`@; zV>j8)^nhBm4$KJ#rd^3)_BhMA>Y9iw?Z2HsBn-yPb7O-t@@z?s!6F-arRB6I)G6^^HmF5Q?IS*VYQ)Q zudGpaXOR5yw>1nUuL0`Zq^;q=9DA{1ku3#&7Yw|xUrMCk!XknN{DLJzQgEyJ#O1^? zYe=u_LvZ%t@JcO?X&7VtQl=>yQaoN+3F+je*jQ$D>)_HD?t}0w$Axr$!hkgJ8bL=d zMQKm#7{wU35kvQ<1IP^2%gXmws(M;4cAT;WSB9wzlvx;gxzBxFaD6W;&(+ph>!b~) zq&!ie?3*Z9j`JeEF37z9l9rb%p&KFS=Prt|;5uDbJrh@~6;EGD#FJ1meRUP7oJAQq zod(g3AJi3Bb;0{tmZ~eEAS4Ka;s8w0{;Jw@#&h^UbNh^(PF=aOuGXq9{{~VARZ|Bl z?=u*rH>x8tiXMHeQ`9V;$snC5%YA*Ujx@+$?_(X}c2s9dsO@7NuQ=y+;)i0o(`Z6Y z@GzxO)rE4Nb*R;|;aa*P+leG(fRuUrHD{pkY2?HG~@7k8=KffHjWxRPs-?65lshKe=uDL z_8sE#LDtY?yx-wilyxjBHBePF5EbP_SzXkX4hGTQ#13DK&fsM%l_3+1unxEG$U%<> zrDlmY%*11dTfU=^U~R+U>tf<-Tz~~*A3^mIki%8QhZ8lz@gu-&_3^bFd>M>A*elMA zJ=hg_$9m&0gQ7}nj+Zw|QEx`FshLk5!35oQgmp$ckAQcO%-W3huxd`N8A5p{47Ns( z@-l(Sgd?R6^^lDZB}C~dJueCbjz|J~!fzNs+dJ6Wte~MvT~#;SD;*zBy+(cmyeI1O=9@(~->PkE40tFu1ls;A(QAm+MTgbPift694YArC z>NQZBuRP6eq=!I!Boi3NH_3X6da!m_KExW+$18d>mQHk7KuvU`ROwOFA`N^v8X0DZ zenYL#N;ZGe;L>+DEo;1vAarQyE6yKgb;CP{w+^%JYO$cE00uv5@m1to0FSSHCXO0z zU97DU)x)hb>rL-B!g@-3UF;lTo!{mSy(vzIVnGZ`EZXB9DviA%{xZ_~wKhf6jI>%e znSy6!xRQ#G@k(TB_el6B(Owau(ReTN<<#k;t(BU48@>HeR$uL9aq>}Csi-{4D%8n7 zXcvejM_CKijq3e4z)E_*?`j6Ih?sP=HG)LfV@La!t2Bp+O-EY^?Pd`^##&ldfo(Ln zmbItg+Zx}i@Xf_{D!z1(dm6sk_+E`KuSYi?W5wN>n%8L7vDS^>AIvMqDlo*A;)`Rg zn+e|;W2^$TyymsrBV(+AE>U)lv8Jarp6=ko=*Qxfh7luq`*GHYQkRjC0ji`yhj@_z zzxv@$R$3VvgQDs2M3q!8`uviuA@CK_pfyDN`DCl7Tp@NB>rS?MAsju$IxNS(TD)J3 zImL<}5mFjB%M^EAhvT;Xm6ZJeQJCf(Pv$XyJ$QKvlcxD7Srg~;Qc5eu zOcnzDaR>pAp@H-){0U*jS*KzuOHDmc;0*BLC0 zyVD{2gLJz47veOJuVhJ8ev9Z%OKhe)+uO$c-YQj8%`p0>uaaRb!m~j}ET-0y zHl(ZeKXgO-ZcD=H2Oqxve&EfPwx?P{MlapYgbzu=LnTfl{5}m=0Mcd+T2DKKZ|xGE zrh{4H{!_u3vr-?QYP}QE){1A(fDnE_v^&%4rSziD#3^T530LA#4~yw%T3t?qO6S8A zCOOUiG6upjn-jb8Y$KTrmssRv1tSEEYiSev=b)XPwBemW>GLcQV`o`Ks!w*Nk(dUH z(44TWRnZeBmrBp)mV`Y^C1R znm)8hV}lhs;3rjjOVWoI-TbV#CHKRZjgPj??BN~(Fqj%^OW18oW>aXKh$UzHo087Q zp4BQK&p6`x867G0^*WmF<9i-bvcuVNJLhkt>F&6KhuS!APGT`wUoXx|Z+rTvA(h2r z2D@uKm}%#`iQpdwwUvmz{(2P*S5EGocj7_fIeS;!=F8`1+08vPOj(R z=NXh*^LPSI7e7;IUx*4RSP;zFyFwonYX&??ooiSsUmy?dLu z1HbaAHM?G<)+Auupx3;iLSX6GC-#8Ya-nrv%X@>k+hJplMuP(M=xrhpdq_;Y$SN2$ za~Vx_^6_Yd?fJ_JNx{Dp!EbTB7|)m^RH0EwW-SU>A&^n}EdfpGFuPs3T-01-oogWr zhFS1pyK1`W970!IGM^0V0*-pbatDJN80UqZ(~0+c8{2Gv2|F9JCM-eKrHBu zG_}e{voL3qhfJ)MKfT!Mp7m4@YfwPkI4ir2xbdCrcG?bc_9fP!?7P-!HvYw~3&nPb zhc2-aYA~BwPgdVx?Q`PN zKUt%+JH#`8vbtM$&~g>+&|=%g7k{!!t?lH=g(E%|rI%TUSs!~5ABhVuvw9u=5xJ_R z9CpQX@Af!95sKXbBtTL6IdMYlqbv(bYyfrP5tTSxZDxa2Kq+uy>=UsGFpF37i>9>H zK}gDS^7hTj>b5Z2EHhvdSpAk5@n`V;ePY(1tyWo&y%C7rE1C@qtG9#fn{v>L-pt6I z@WG$0G8BpZ#cET$cYPqX*>MXd^|KpuAOctv#4JT<(jdjJ|6-l5Ef#kT2)Ay+J@F#t z3}MGm4F1|`-83u45m|8I3U0eaG`rk7FZhljrc4j!rYbK7T?-$8bL}iX<`kz6LU+yo zw;GwBUtygd+?~Y*1PYufUi+){ymqg+=}N4L?-h?+X$>5-DGWbS4hYcNzHUQ+-}03m z?1Hn-;oWDu_GS4LqFwt60-|zOcIyuQ>2oINLkF<2xbQ{-sZXNGV4N6FCauHs8O>#z zJT$FPAb>#yy51|+CarPm+FV$Y5Ce>ulWBHzg>`fims~*+40nm63riAU)kX!`1ZUq} z7^@8BK^)tw?xsU%Buo)$Z@o4@_81OyBZvdebYAK1LJI{Jqrkpk9$pH!mwN>eX}^R= zUN@sv%adLaL{pJ@s*Xio5k%T^WF3ff>OdqFn6B!W;}t-pU3rzpbs*L$fmqo}w_TPA zpR#)vdaat~0YIc(dkwb=kxqF;QjJ?tz-iU4g)SKoX|KIO)`(cA1Y)VgdR4_{uLL6P zHAz_qVx1C*r4p;1IzZ~RUI|3nH96cUL^=f!X%(QrlER`uh=fe`1awjYj~Ff~#KQ*` z9tgKrF$i>4^+M|YrWR%A{!5lq&;f-K_Qt>E$7bWq6oT7j5QRCN3KLM88t{=Evf%^8 zA;4m>AB%lKU{R^CSm|Q1!o_0olHo4>P}0EyCF~F8Xt6mVdp?5ykU&|bfU8@e6AJuBRKOR&QOcsG8x>9 zV6_ZRe*k?fgL4qvD1%i9I!G)dJY zR?Fbx`;wry3@=CYdooy!;Qck6c@2X9+RwrD2u_6v0<_HtE*nIlT7)D5dlB088YfRj zOWv0V&OvaYM7s*XnX>#+1h4N*<&!HAysbF}S0VJpUIqXboG=09?^m%U6k>6=LLQd0B!cH;6Y(VJgoFq|xD}wVm zau-62I8=cmvpF;qp%*wb521%Rv261jvaufNy_aNoCS4V=Ik3{B@2Y#s2R9d>iWEDpvwnA^tM=P)wP5dky8tlo|NJ7)Sfnh6&^CDoH$VX8sq}b|-|fL= zIl!yD-s8?8H( zfpo8lW8q;sdp5xiUV@_#c&1E)G0QVKr`xKi7cF1yIkNT`MT#RTv9{eQF0Hgq#b;e5 zwrSoJvv0C$#A`QOz$dWNdL%@fzpu@2|Jt8=X39B47u z>eCEKytkoE#!{b_IO4py)(M5Y>~bMn3D(Ndo2wQ;ATAKE%!PsRWy5;7jaHhps~3<2 zf(o^AfulmLSWp;D+RNSeWgJgh|NMs>i_ts;Rxe|p&=jni?gcmO%_G_1@%<{(u0oEs zFyeXKM9G-bNH?cbMe;uk?)2@47fej>h4$x*XbZv{FX@X<7{PegEsy@fG=PKnIKT^* z<_LK8>^dsKct3g2GowOAcMb7xH=!GW0JG zFa_t_ln(eM2Arg93Ud13^`GR4z2qG~;SCXPh&;&Tj!Mw`Wr^)ZKTIwsv-6!2c!YPc ztzAMoh3vpug)Rlx%f9sJ@QQ?tB!w+)wMmL%bDFFc_FfnA9t0e~6m$qo!R<5rbinfD zRS6ks3NmksOPtvyiLZ%kOtod6ZesV7%YIEltyt=Vstl#>j?|pwQimlf5pWQupo1_4 zE3Wq=9I#)PkddVDO`i`4k@+s*c?vKE-7$jT)|vTzVf*!nXulyLBb$PpZnP)Ji(JT6 z3Ni&9$Q0a_fpU!mj3fnEieCAy9b_*-Ug|<#tRPd+flR>-H>4BeO$ixE3UazwP3x7n ze4WRZf4q){;V@O8P*Uh4y!x&7tK_Kt+Q+6OgR$CE+O-tLlN zt0Dsh9WqdGdB$K~Cm|zAks)(C0OQUDT&dPLPnB;>~0)@aJ+AT zapywb<3YA5=%7r&y>rq5uV=tX%BCP^?k!;d|3PPfR3P9C5DGewDY*HTbjbgZC?iP$ zuCoi_bRO~lOt*^ZstO7^RZwu{oo*GRePwLu`8nY|SvSh4x-<7Dg7zG@#>%9svQkw^ z!J50=Dw##?4H7bv6lAtqNe<>mU@`1n$nz9n3Oa3};HoMgU~2!rBxIy1$g~~eh}L{L zI2XB)s}y7kI*=*2Vu24b0KYE*BS`_KW4R9C0sv0>iMQ0PVzH`%f=(3_T)NP$f;xgu z?mED*Xh|FC8)e-nqv~d7tCC#&%q@my(kX8*ck5oJ>ZYJmHwA0%_Sc&p&Iw0O1nMwO1JJ6s%{E8byINHB7faQ3K$>R_0_#u){Qc%?u5#o@YPLKCs(<3 zSF5@y=+sTYdH4G3Zm)o~&j7YX){Qc%?hYzDpV-Czpj+c=1d`5>rm$0G4T2R?C!pA+ z^SE}3-5`T*pW7eG`jAW2*HP8iQKGj2C0XlQkAPDh1-UxR{~HlrB~iSCx&Q{Pi)y zb_sQlA8I$1y_j=dbI3Fu0f$T!bb5t?EAR6&LU#qMdj^U-WZfvE2vw}I^W(aZ zf&e*^d!|xVNkOMd3NBylRw?`NQwbSK3UUb`i@b$aarYYRFtCeOdnuL}(3^?Hv4D_P z5-cDnp5m4+5R(^Ltvh1TA=9wvfcWAxeB?su6=xMMRxZTVt2adGZtO=sCd%)&CTP3F z(z~&zv0Qv{w>4ZH!`^LTZzM~hmZ>1By?a_Y#~$`{>P*!T>xtMhanmBJg|Sklg~({EECVrmV+Q+%IPXn+ zo`AnxSoc_ilk@R_%pIZFUG%6ETS4Y{5yhAs(Fxo~2Vx6pgK<%DVXdihfuE((1Euy} zj4Or*#$-055kO(5)4jp=g=trym(?Dnk9L||qfxPycMyZ{Qkkp?ZoR8A>)r0wi(%%n zHwCMb84C^6TZ=K%SiM|se!cas^y+npxjZvsrk}cyzET6VNzgi@j)D#~C@96R+puZ= z;@^4V;L`TW_Y|Kv=tbtwIvr*F6Pb}F6pv)*P8o`c_p%!svK z1TiPbBbifCZ@Qu$1*PWZ*0|Iw&87(=NEljdKrEha4N|tbrZ89Gp=@vKlmbGVVdaw% zsqGAP7N3T#D4${dh7#t@unOFBTC^Y&&&;q+Ogar&*&@6ubUvhPW~vV1)M*x1hpqE#;*Bi9X8yWmIFmLdJz-g!vJz) z8W7;Fu0X&UC=_&1rQl+TpC>`CGGqU*y*CexqGYg4~GA4K+NLdWbjTi-mjc0mxHM+X5?C7!2pSsM` z_D}?Ub<3=qNCl=5t8{0E*5Q;WiQ(6-(C+YCb&Zl(F#-5Zmcb?+m;y;^GsCAsNX6Fj z{uNq6<4>bt;l-eb{NNxa2F0rtGMEDGkk(dnP!n;<(b_kl!n7}j@y&)su{hG#7zQ%2s3rnhgmd>Q zt!kZT@e(1XoQ=+*XotAI83Tps4H$-uZTzNHS|jR!6t~P08gYJ#;U&3R2mZw>?Qj); z*_@0C7-Pgi(t_36lYz67@A13VXxDU=Y=alXL1nyz=4~9>q?7YBv(iZ@Px*kkk5;_C zuhwYg)wt7P6DvwwxEduMJm= zdGuRaXLU1A`#?+b7Q?JgyZk76N~*r2b~%-rAS#W9zi@G)WE?*G1Kdyf$ObL7$^L`% zi6d-Slt!X>qfkDr94T<8N8nHr+!UP5@GNpB$BQuj`39|_|Ez)`dWOGah=Yi|KGZ6v zSmlZX-Y#5cV$4HBFtVdaV-V@V7B6gWR7s+^`}wri;cJ5mo9Fm6ao_(ApH|lz87W!b zLOf-L~SEf3#L&=Rb|p`7rIZ)>0P`R`~=0~6BJm`n7?>-eOxaErX`rF5aZ?4@+UJ-oJFitp{v3)ASp_^J%fB8b0l zs6+X?x#rFm5cex}-sffK z{mh5X>s8gyeEqg*!yJ*MYslWWnYYjL_gHk?SM#*QNK!p668_8w+AZbFc1ivd`l|y& zSL}!Xb@$76T(bLB+KV!^3n2+Np7w>~tS=|qfh1wBy zzbw;h>wa7Kj~`u0_d5_ihhci&R{r3}+BH|u^Ii$t^Q!wCpJ*dgbt9kstyV+*oX^^! z^}z`K;|{HJ;Ju%BX-=l2>CyhNN4)oQOTN~FNAAQ{*K+>xF;ibWc1){ttsDpfoyou7 zggud<0Re-dioq~wWyrf9*Qy2vm$&$*JGFY&m?2cnMaQ*fyxFJP?SZXc%*jz=P8P!_ zb2Xf$B+Dm?j!n@%op=76OV&0MflwC)fPSmUxM%jO5gDDeR~2GD7xv)AGP-WdrS=~5Ja4bMTk>; z5=%@YG%xbvAGK@!1HSPL2+>;nRUA5j1vZ9^jnp1gRC2UAA5n`4wPZ7I6}#%WDHcND z?5TnyonmW{;-JMhx2&$PI-~K@?fcA>!Bkn%nsBjDpf!oZ^*{b(f5#^%hr*6ayhE(R zZp~W_FFg6%Noa0E4Z5}_Wy`IX7!daw#t@5@`ROdp>%~Xf1N_70H`yQVO}?`1lD(CW z`dn)jn82mv!Wv4VkQJ4`|GCyU@V42rqALC42^lgu`$BuL43l~!5HTU!BcJ)jC76&I z(f9cm+88z2%DKHA_?r#c5&4jP+PEfAZ{wlfCU^73c?z7#Hj805?^T|?QR038k$OXl z6aSTVXW+y`P^J2r2Zk9(N31+xr$;}w+x=zXGyy}wSs3)*{z^-_XyG)av`>Ad-4W;s zL20L2tWwA$8YSHnKq;q&N!h>9Zx$eLM&u&EY}2AaZN=dl^dFHUs)6R@;~#&m)eiLC z+*lm>h(X7JDjw)HEr`(bjW#lHPt&?sykD%*E86&rPm%?QTN3e-Z|v9bg|v=VMDgP{ zTJtMm*P4jC?blk|ZWTuG0OPNzHXxLxC0_oIMun;346?Ntl~r{$5mEur6#%?ozt-?> zE2a@5Y4E%IUER?*LyPgEf}!-VzZw`+eSU#N@p=wvl>_$zgpL99p1+j2U5FXlsxlh# zf?nz88xLsB122z;ud%?(`(E+lzJ0<96`~^*!_^11+GGdncTlUKhm?Xr1k(;`4+YxE zWpZ4m+h0c+r84hCygDD!x?Z$j{^H|u>12xp=#z(a4!YhEn%rN7KHu9YuwN8P~MU`a~<6QxqP8XB1csY-1L#&>&|I}*n z?~iKF@xmf4$5I}D<7>agEd`leJ*Kq{D32eI)*P%J3FYygV_FaMOj+?)ehV32a!jlB zKWLNqK2@1o3)UuA@U-IrWyI1Zrv(&AEGVyBk;FY}ms2DKKT;%xQb=WJDU#g-I^_DY zI;1Fab1cUD6P8GN2l^# z-)pVp`jOPhD5-(+Z3S9IEFWtZYaQwW7fV*ge?gO0W zTUv}ag_iT5iUTSu?jeKnN-Ap$zsg$Qud?EfJ%rj+)>ZtT9|Nr5#>libPFQAx>_dFkY>kB(_-trSP-wIBbY-5JmmgQ_t| z(J*;HY zVVQ{d2CL$2V&^Mm@@uc86-)A_miEdA{i-#vrexBF`TSq)+UnY{+A8VK{K&7`=)eqk zacz~9X8y!)c5OAJZ8Rr}_kX)GZB=N>)qb~YtKsX6v}BpxmXzISR9&#P8d_;WYhL=h z*7TySSg6XUe%BHMdRq9z{hH~;2ewdcnpy<4>8kv>Gn(6~6QMybJ!98L!`DfuB5l`4 zLo+HazpDR-Ry);SM7Zt-cX}A=Fx<04Ez;f~+XqUrJ%9e7cK;RU{^BDBDcro-S*_be z%bFByKKHEF+JEmN?24iv4G`nGC!n+n{rc2dp|rkz&Qw~zI(G$1E562AR{bfpE3GT| zsL~Ln^^H=y(h74YDXmk4YVn--dlrkeD^Xe#d8_kU-Aik(seI{qt^HqAUv=*NQ`16q z*eq-XQBBgwCse8%{?x7s^k8bp#!O*Op6(zGsf-T0mWgd~sebbJFK9Qa`{%~98`}7r z5q;7N79rU8X!Gf8WZ*KyfK``1<4EdMq-Xuy*{niEyipNL`;;|t-VFE780Stao^R&9 z&91?l$Y~B%m6ump9mjOx@3KaIo5DxS>wsYaMKDpsisoLK~F+%u>=k z!^wWFawv)=V247y2?MRQ5q(_=uV8o%@@FI1Z*dg3!mU(8edeNwFTmv@~j(=i2~x@@~k}XptHKZ9#PD# z;yX(dE3g~+l4y22*q)1K?Iqh-8{2*{Y=}hTv#umic11RZuZ&=QYMOFJ()-f5Zqb&H z15pgGKojvRmDs&JS!2(&A4KoVPfV=aP;mlh5FB_pl*USh19dVp6;V2@v%P%LA%y4f}SWCDv*5As7*SXZ9rz7%sS zPIvW?N!}}tr8&+yd4qV?`}%X(fb!zw1>PvU)QxPS<%n#`OE*HZ`O>AcIX#})Y;tl_ ztxPK_jzvM4&E^Q-?O~PG!_<1J^Qdy{Znc#6FUKn47KG}N$mhCptR_&Omt&19m!feo zCR&cgz;JkeddbCF^IqkdhB$r7vo3IExL6zhwTas4V(pln-q%EDx2m{=0&QplcweZ% zQsAUi6sg`EgQ!nd6sayUQH3#VFt1UG-QC!fAkb_qww^-SY%Bz>S^0_Yj%B_0ua(&Q zwhA?ui)CxRFtp}F2(4N)Yo5o%p=*TH`$b}OSC5E#S4Z+&;@A+F|4aGVMAqi|(u-8R zyig^y>gQgv>br@f4tRS!LVR@^{a|KlPi)k9F$D&q(sUzrv2vt~;p&VibFjDYhW)IDFq-^UowcUT(cNv( zw|drKwZl)8G)wVDZCQ=zVn?#L6O^y5!RpeyW)-=avIDPhL2(G)PFu{g+A{wg%wpa8 zL0i^3ptUWb9b{w+-xjAoql9Iqe8{FtgR3Fp5-)qCBAoabpc zQSn7HMSnff;-Al~!%{-{1l1F*^!Yb+SnHbpk`<*wJEPIIQlSMuZ&8=^HRo|_f|K_` zg^qG_E;-8a7wclcS@Kn2z(F~n$8N=dgY!YTV!#0j#+q{VSh5&vFyfJ&t6e?TBEv7K z7#I9IexdJx;f$2{*d?kE!pm-t(Wk9>WC&Zi7%7PF3AhS|2|uS``!385L8DRm;ADku zSFO(~1}x0;xVJv@fB#5~SGROxmBJ4kqR(X_n9r!sl4+#LuFpD!rxjfbLZ)$*dz43vht!-zcYU=1YaPhM5`L%wv{adZ z=z;N_F}`@OVsqn%f%)P7#@JcS<(Z9HqX362UhR5T&Eh~J@`H`pb9_%j zmJ+{dZ!m{)jRc4O&4M}n)FZ$_=+Cnov3EuCvi1DcY*nN2IVubk0bOpLBDhZ4eUcBQpR7XKWt&Tf2clh*lt?JySJ{TKxJ3 zR-f{jmBK2-1%@55ZC~p~hI3N2Su}5v%B~I(iv|w=X-hGn{&XYqyEv826xC_3k-t!# z&+*rLGTROKPnkzcL^eohVUTFtf-O(B3cy$hg~q5#y*6+q5=~1KG4O8G>oG4(lvHPOYjStz%50q z{YBI(`^g5AJ`9dUaDkjetSQRIXxdYJ{a+B?ktxE7qufjR~Vst!vL}`o{&S zQ4Pfbs(_9r)Tv+F+tn#iiqZB#)>5Y`^F7zHwgH{$f|+KpPF24HYaWtMQkSA^`4no^ zgbu7*aQz1B$U>(&+JTMeZgpH^0eUPg>hTH{P6POdK%tqKLp*kl$!LZ5qRQM>Lhnkw z+>x~oqgvreBdJyk#1K=L)r;LOEQIK(xxBg&tYdXISc}eniGr1#zocXFZAM^)cWIp} zIF+y}RpU;7S)~%|HfU4T`Int8wr;ajsv6M?)Z}QfGX4vS)yw~dV)aT`#VV(aPW5T$ zFgn$ovO3jGUD&2F>eRd*tOn+hV0CH^52sFb=Y4y!&isYWtZ^B|>MzJ3Equ79O_;te z{ngitSorGCh*HbR7XxEqPIDP@khLjm<}gdjT2LP(b1I!y2rT3*-R;_d-iD5UF}8spGyh;^>1*RTzlk;WOKrRWl_;#z_U%pV;WoIqMzkAw z7jUS)Hv5wL8sBs?YZry103z*!6IdNffhVbW+>@+Q;82+~%lqXG7$8jZgV=2~YZgmk zSlCJvjZaDwsWGbd4HdDVdF)Bn-ubMvCNG?d4@B7a?dPG6(9HeIdNH*8`XuWR*y_M> z9hX>zLU$Eg9sY_E=UeX0VB-UA*W_oY=>e8Brt;r2SmQutgr+Jwfsx5loBKy}oC*`E z;^J4^+bqIRVNNl)9N1h%@Fkh75kGk=i)<@31!~xG5mH`Id3EzE6lQthI2oAwO*`hI zaU#3HZ}TvOe6ISA^{Q7L7RU*eIiE0*H3%^z`c1r|d2gG@D*AWfjLBpY!?$o?@^nG3 z6=#ZRy&zU5=O(ghmni68rm%n zuqJ%)?W|ru8!KbGG(w(f+wXa5+hi9nRf+uJ?gBtG^#UHk6#d0_E zPBuJH9}`X81=h)Yy6avnFZ}Dba(9`F&TH;sRjv!{mh9uyzpLjb6~-cNpDP{-g2ql+60Ws)X2?tnTYy;7Z%3poe?1F!1h4$nBR*gb$b=VcqFje!%zf}{YNd7+`7&}@z zhH>VSRpTEQ<+;~LuYqdb|?Dych`hPQt{X6E--uA^RD=;1X z5?opTzf4En#r5Xm+=lZ8BsHd!v4oAbQw4TZ%>9(WD#@6^ z?;p?nw=0nr>zg{BIo0SFV9ck3rhL`}*6oT7Ri-6Stcgi?yM&<%n=SvBhAN!Nbs44D zGH}s0qJ10q|I$!}GE3S_(Q%`qJ7F&PIhp<#rX}A7i5`Q^sX%RCn?}C$Z{P z<+qiX|JzIEMS3xGG?2HM%)IJ!e)nWH!hvruZJ*3i$vrojjg9?-j9Yns$xw1^irr9B z=4f^pLrM3kf2W~jtKCpSuMg14@XH%YVBD(A=RU<6Uc2bZEnFcD!?JKy<4M!l&4I;r zz|6HZyqU|k4Ns;-$n3?R`Y;bi*xnVmgypMDF^4gi?D|uS9lx>6im^(#&NiB3t zeeRNDYNwY}2W~qYZ?+$2ZN<@%{*l?5P7ld;7U6GaIC)CfLD3iGJkwk_E`^5Wo6Z_j z13NaI4Ky1VUYq?3*3<0g$}}(A@U=A)kZ zn;O<{&xEtW<@_Zp+{oEMMuE#UD|_LVX;x3_vd*b$&F{KlNE!7ktDH35<&9|I#JQ3N z&S=lG(YPSZ{8R?Df!Cfj+raK;|7`eS=czQCsaH8STce?HFZBmUJ6ob)ufm@p4Q* zK4L!W_;0P5>LI;fXjcXOwH8=8{db1E|EZ2fq{uIThEC?sUUD+$gZRHSYbpL$P_zG? z9q@mu*?xS?Le}Am#@cBASX(73l1`svz%5Db^~)=S^MMvlj*dmI-SdC!@k3X$%8}+F#YK;^rvuhTyvTbwnBW$KUo)phKl4D;KL$*Na@odFL<>7J^vEYOShba}gG z;68TTPy%e%B&{4iuxQx72Wgs<=gFQVKjIuJ)YBIe3Wdb;@>qSo@=ex3UB!QRlTC`r zDoNB_cxSYTKeC=RQqS|(*R!kcJnu}#YwYGNn18d0)k&3$%6LZx4CS7oc&*q$FO3;5t37dZQM!?{HEC#5Y~kgs zO&W^hXQiL<)VEo~Dp?VDzZo~EGT6)DM{BQ7U!wP9@v(2Se(^vtNE}0#pcAs_ZDtUX zvVntzCbGplY#Ed3WAt6}6+iI~UP4}cmTpEYMH%BWo?=k0n#+>dxpwq1ZE64)_VDX+ zS#pZ}P-STOPP=sZZpmdV!|H~j8m$Fb;2<5ElS;QsD4wW9&kS61ACHsERN*>RILw6f z7gaWyLJ>6dLS)&X z-LlO`5Az^cG=F%36_*@Xa> zHR$^W%YBRAWxqMpZ+-K(u^y^Ao1b`(HOFJs_t{|8SDeRE5Xh^2#8wCQ5cw66P^qR| zQYzn$kJt<+_}#vPHEzEEZ%jm>zM^p&1`aMoTjWf}n1$Mbn6?w(7?J6&F#l0s+Lq#5 zcChMQPevru<$(BnLq{2p1#RO{7@9)he&*24B@Ba}^So9*t98ryDBL2C`$@#cnkXB& zv1V0-{9;9DmM32_%PkK$&Fcj`!)n3=jEp=TjT=xPF?u>(&*6oPSzpq3O5tgNYx|9+ zo)vuEPF5?~YU;)-I2|jh%XW5>1{D6=PBtt1MPCUWbF%?w7;CTO1!;P*{{^ z9ERgUKZg^k87JUiDOCgqV?r?;hh`|rxCFqd)pT~DOJ%5{J#+Zg1(*a*`UVxSjcVX6 z1Kh+$wtQS)q67{CixXX`NN;H z_G&g?^Eun-_%V{N-NRb(g5J&fE8HgaR~=hP_u^F`p@ zBtuP(z!Cr8SC47FaALmj@5551n`uK!5wwcgb4=x>0a{Xiev)yO$L&u-^e1C;#LX#h z;49OZ8H|azd9nfo^5SdFVgP*xwWxYjO?D6S9bau4&m9?otDy0Uz2^-~5On>X6MdKd zRK;=bGyL?(h@O1c*Q{Kli7x*L2XC3tcv)ZoTo%d8oo99bf#rj7K5joth_*_DcidpV z)FvJ!R>AhcAknjCZ@|=z%3rgARkoBsp;YePz#h8Ksw;!yM%&^B4^-XUF7zo!M;hh~ z?Pknx{)kRs;zt{DdnKq-@HsvvzDZQO1yGPlw7P?AL7$;of(@ymrQ75C7pqIJfl_-*$*quQWNjYzLm?;t7Y@&HvP) zE!i5{E@0{nJGAkEhgn1IbsEMxP*b1G=O1QC{zi+YU^Z<3^conMMaL9(4hIHwFSLGa z=CyWuOrJux@;pl&sXna31_cFW!GX7QgJw3K zSj6tK4>qdEr=P~0XN#EaTPXHiiK5z8#PskDT?|z}7O{rNM3rw@)0h~cvv^kgV`rqA zRM6Zw^_X^vZ^=+Wi?t}UIP_etg4yz3jlg1|FrWW=iq*>~ z+?{A-eU=ED0Zxd_jHZcDd@@Wi#*<1A?SV!aSP2`GX|P!rk7?FFWQFu>UZBWL{DUQ=_!||B6JDjZs?`t!I7(K2??8MR(8yg_ z%}aN&YyZ?vl4!NFvt`;D-=?{n{4=ZIr*kYpea076ilrNG`6sI#In{-i-~OqE>{lVq zlqqDnI^y^J$r`H#{Fy&t_4+I>S*PzCeGzBu=Ij1sojY%VuI|-w%f=>B+UFK1h7UJ+ zMH=3RYeps+xd#>F6t1p}Ov1#cK9FQMO*${>3g~T_Ta_`ME&S>Wtd2U**Y5(`=BgUZ zF$I*7M41^ulh~UX!wAbC!jZR$-eO@t6uTl-wvxyhE+&8P6c#A0a%4VR% zf^jGef_RI6v{aCf$iSkRevwjivFox)i3gIWkr7A7`q{0!ihFM z$W)D@FR@TGXCj)TNI9c#iB#lAkFo0NN$xn#S_bZ9fkJFQM;@vM3)N2Ooah#?5_))4 zfVI%)GLN(Fw8GwToK@489ivN_{7R znTM`uZDK%FF!$KMI3!MBHTaG-xpT2F@sj8sGuM{rdxJi&5PA|TpnMx{VsEc6vBq8f z9ZT(Z3>yWcl!Rel!7hC0>8(H=8gY`le+6xSzmuna2h&6E@7c#xe>Hw!HO$)%s2;?^ z_r@Pso_dUXpuwt(`G{hcSWVU!OllZWP?3t)A=DUrUhQNQFSnCb;2Vos^*HT=#Ysz? ziZL--+j~BO4~uv2@!jZgXT|z1B)X4yeGS{WeGZ;h$z9pkxPyD7R=aio=FMBQePBT2 z<`1Q`Y}}$n{|6ekY5u^##%&)+Y1z8@gDqP<(6%k#a)UebiYagQt-I0vlIpv^r+awA z2u0aHoR_TB6Zx@m?h45#j=GfX!xiysH$qY7!S^!Y6~KJJ0-o`hJDIn8%w4^Xr^ux! zM6(Yre#_wh58PJ)3jsu*MfBYS=>QvPg^`M~2*IxbUYDec`JwUd+C2VocP&9*V583j z{SweE1-v2YmznfWSoG~cV~J7>|8mf+0IZbs*(UvQi+-7n{;o7dSp~Y)fHjgnhc|sf zie3T17VGWsuLa3Ez?+hEJ>{|{-~5ETfe<~@MxQcDQQiXG27ph}Z{#&5BCAcuyK4yg z5*z&j&~F0W+kkf@eJ=5@&G~p)G7YLVx`Tj2lD?4N zoaw$!h~5Ih7VG`+9|p-0z)?wBWVV8DGG!}RV59FmR#CnM-7&y%Nq>UqP1X?zwpeGw z{~bua2mByOi%E)Fe8oh!SBNs)MxXGAqWlQDp8zK%eF;A~(cP^s_2|7e(tRLxtBMi_ zhzDQ+rj%28=40*zUO34;2^ZM9l#U>pw~r5>>>gP$_fbVj22o8wEdUJxwfV`(?mGqV z!3eg*9zV|H-2`OV4^~nDsR7>c{KYBmF(QE?5sQ1Kx<_VgeN0jA0_EL+nqYnp+a9EJ_q4_;qNEI`@^k`cn`?%9E3jz{{R_2P=-HbhG!`GAQ*&)!IEHz zBp7NEDE*#Llwt4>m*FGejs&CuQd4_(9x^(;%gFR0>BxsdrI!QGemUTt0Pj(tdl*2O z8x5C)8v~bq5fd^LB^?iACBY+b9|ep9(9b(TQ67W;aR4!R0xmHaFT=+}xC!t-DZ?{l zc%}?5d|Xi`!aqrdPnO|RWO&u7c9CMN8O8_dzS^z3Xj%WIf zLijxRUzXvos7i)19}f#8!E~9C|44#Y;VuMZ$?z;0zDS0@2KRNqVi}$*! zER*5;WcYF!zCuOISc!*hNpKnjtKeTP3D&^P0jve2HtXGObpJ79?71I|rbm4XVZDa; zA34k(HU(i+LkPPqJ#A!AsbyJV8O?k5=s#ekfsa`%&33=f3QO(X zb4Y-v=o6={ux7ol8#{VTP=X$0jD%^~`}%>SF>O*hjeyG#61M8yssDq+28~V|J90qp zA;Sk^G9ZGEGE!>u-nWi@;DO;5M+)mF!`k-l*?-8$o&!f>{3HB$KfcS@;r#>nITo*! z-rYy0k4`f~l)fTTb|CQPv4KDlw%rPA*1LDw=m!T|*$&0!$HBy_ZM)0*u+*k2EH^=pHPu&vt zq+|0;-@~`Y%}^bOpZAsC7S~yIYGrraj;N{gBDF(~cs}uUccQQSU2$F2=%?pL zYWvoyk$m=>?gqXYcgLmQ;p?0em+Pqa(@vLG{(_>I|EULD=+y1jF*wBYsY_F_ne!gp zwN89}BK~JyWqsT>*Ppvx+N20V{P~hEuF*>y_$-!l``eO@w&L_v1}OabgBv z(Tk!y?K|8neuwHf{VZR7YkW1wE6@3M-Wq>*zj|jrjSZjGw|B*gtQNq1&%qbH8Gn-J zyczH2jn~Il<(uD(Z|F3#_V99V#p{)G_rz*(pP{rYXnsL4_U+-jH^=La(0EXtmcvojl8{l;^z3uj>5e>c>~$v;ww4M$bdOtnuIxD3dU+afB3EV z1oeb)98>n0p;`M(Ho5Y7pL{-Ty3Sc&Nw(Qv2|{%{_il(!a1?!Iiktbh8GnIvH-2sM z-7B9<7}iV%dJPX!E37DBaTi zW>w5PU{=NY1LkwV0h7M?fT)Vf(+`G8aq&Sj($<3}@qX!^IVhMknsX?OBst-b`G-tS zCk~m(PboCrtU|LTY%H|3gzbf9(G*EH^RO(^!)8%#G+pQ3!?G$$4x42^^N2~XOuBhT zL_}xd5lL8TA{_IMnjF_lx8SH5vDkE-(~D$;#YHCPtwkome(9bmGC9xrRublXYjVt& z?g{BmIc7%8GF@lxF&SYWR@>CPPfLPX$4$cQ z*Vuj{Ozjm}NHiYNZK-8teix?77JO&2+xVTC%wFl1d?#whG4p#9zwCSSIZr+pO1D(v z=lx*Pt(R_rbc>}sz1R$2TrBvwwib(lCwXi9e7!iqF#(%CDYOJw-WQ)VMue9G3y)}Jyftl*Ta`cr0oO#j)$FP84spJmO< z=QHwo&Mziij_Eq{e~}e?LIzAZEo=U?$vF448DXDvPn+TDEUvzX@gw_JL5|^s9@Qe@ zI5U5fTo?Ri#@_gw$#w5)pZU8PzU+51JWoCs%I8w~JnxL4tG)h=t$F3)q0Deo zc*d-XQY+BjjOP7e7X5nZ7D%`F53?$!pEavu@mceE>sgb2|5;HLmCu|Flj59nW~7{R zCUL%WPn;7>8cit;(u*@Kh3f)l?3xHn1t&u2u99=3zD!{BBp0*eD{X4lnr-%^+Vm&J#cr19b{t_)&a*uZ84yeG<br~UT$%tt&FC4Paif$zZ*C-7~ zId7Uw$WFOFgRr3~6@)_;hl@XbdYI^o!y&hZL++p6I86LA;YjDq(6mmx-1_(m{Pi92 zDOVlAb6CB0@za`6_BO!%n7h>rynivYyvFN2^Z11Qh(03HlShxL`AVAFHe*#r zH61#3#Hc2Z_J0JQ`d-WjBv7O!d|HBD-CMjQL95(m7K|Z{EaEYP)6&vS>g=Wb1EMZo z%1iI+8|UqQ$`;=kJv!}C86V*Za}f^9q+dQ-Q(Nh8K>XnKP zib0UzYJis)ss-Xx!x6z%jqHsHTKQ339m)+ooJtB7vuFPksa*XeZd~5TpQxtiXY`JQ z?V*99Ob09m%xDX<^I%1p27zYY48sSYGT>L>dRz|+(G3X4a}$8?CPjIs7Yv|qcL5Fn zm)Z>$vKtje2Y%djiqfzL%)gysNrHbEa5n5^AMWrmoC_FQ9}P|3AY?f zXejM8K%Y7w1Vq(EqJV<(NEDEAhoaO6d~`dEDuCm?(IMJl-SJL>HuU}`ijoLPe;cGI z*W9Kky@q1@Vz{ETs*GfTKY@rJA{WPd!tDaj*FdNdiZbw4MY#cD-6`E}GGbF$pBBIp zwH%hH34lkFVKfD<7S3vyoMaLP9a zTf`_VkWott_|e*WZM6lDt^=wTJcXQ={4UeUG@WH|%C|&R6_fL4GAfqlhwF%_uDT*B z5l0f0lV{g~I4uP;fr;XMOw6Z5+KT@Mr+jOZVaex`;j}M&P3!3+ycK_csfxDAfmvPI zivJfn|Kd^>{KD6E)0bB2j#7Ua&2}-GeP`4J!R(HF#P#|p$JUqmq3iWxN6vh{v%B8a zmARmb_OpX$cGqk8+T5Vut~xRo`kud0@8NJ1yzV>DQ}3!qW-YCvJ;e)q>WBCrH|bZo za+X!mPIcvnd+ODEy?g09YTn`L3HviZxyhw$?Ey0x+{~L@N&z6NmrL>92LCNCC8ama zWOo90k4q`M575u0lst%dgItPdDCkB2MuBb&cs#<#j?r6Y>H58>AdheIO4?_4PbhMj2*lUCPQ+2rLKWCew zy8w;>N&qcV6r}=2jJY*1R+UuIs?4WG&l{xcmEsEU9C;s}@p-Jm65caiuM#`+R25B4 z!rLvU_^5Qffn)C}-~4oav|79HbQLWcowXwbK(ERA6?FZ;6K+JlKyCk(r#_JGW1$*BUw?ZM47<`e>g)wmoXoMR1GyPj$*{3?CVJX zl&g@w^iRYTlq&uAgGF=cpNS#kI_cj8`fk#{95kxKG zGXfD+u=&*p$%t2+s6Psw{Mm_mW%q4$AyS1l9uoUDzILL%!*Q;r@5xE}*NzMt(GDQv zUWAdqQ2GZ!+@sRp3Ha}A`13aZ1?fk0MbS(?KO=6W%^xfM4Zw%l{N=U#TZ@D{Ac8If z$nTYY5+d0ap{DfzT#Ls&rB`wfM)t2kIeL-ycAol_UO8hPiodHw{TxXfQ)cia(Daf1 zCGg)T{U1W6zS4gb{(jQ`9jc|j^iN0mJs|xPK=YvV>y2rX%H$u1svD@LWe8cmgxn9w zfb#GUlKx0Ujzpc3y#GNPa7q6OAi7FF3Ef}%MZ(fg31>1^p=-U3@4 z8HfjNk_>Wa=wtzif?TXbH_|Fxvah{ACDg?xA)pt~-L~xJ1-SVj}&;FGew5+zFxzim?!GMbbkR@h7GNc@_Lc*iNFUq!?fA^bO6@ zpLb?-&c>`CfesIN4e&Z(F<=Q`Dc}vjGQe`c3cyN0HeeNiCV%>k2anZwUIRFD;lc$1 z!sXz3Eg*XZv=0Eh;+Kc8b$EC)0;+i_hzSU}9>})<`$1d+U@}6VRW4-%@IC1xF9q=*0D!EVKr}#Sn6h9wu({1U^`}S?t_5uFL z61|o<1F;Wsoyp;^FVS1M=!}*Jr9f6svsfl>#Zm&sG^_>w>?#RBxV0Ni{-oIT67DAU5RYWpnKf{RXiyKOW)KmO27Y zzlb$1Whc`36wn6G)FueG3(p0Bt#~FN+-^MY0qg^hcB@^=IKWIm7GOPK0H7B@0ThF# zBPD>JY!(@!U08|O+l7^gycA7_l5fKlULi9#E{St}o1I&Q{1cdtv&tC%yKp&0gs(>Q+t$21Jta#ys zXd#7oXiPfKU#?dZt+_UsjnC%4EZ3U}q59#Ong{)^U+Yp1A>l&6VZaf_=Io5Dm_Bws~*)EpOmeiWON0IGv#dru0KtI7gQ%MA>$@b@0ClAiDK{ zw*VUeKEOskYMuU@zF>Nib|JQNo=e#TPbc12q{(-{2EBrq zJt7dVti1e%4f<6g{QB_WUu@8;i{WG@!aL{jKR4)=#B+}MT-_(13(V(h@hte2gyEN) z$4C0~>S8#mjV4WP#TqI`!t_3N25w4m0uc#4M6m->6qt6ZtQj^ha-@ ztT_-YvS8z06*&44ewoDExz|RxQTS4lwndG|H@PR7+#@&XHTi+J^*$LCcdz6_65Dys zl6X7MV&b`MUXnIni`a?Gf?plMQ&H-|tp}(NXaKkh&=AlFAXFI8H-^6npeY~)5R-~O z%>d2$ws-Vy#-H2xgG8u09Zkly8w3sU=3C71@r;jXQtC{iyoay{1wEfpFO*F{<9?i z`$5L}?05BR+CJLjfs`(24-`H9GSMS;o8k=?(d%r{uQ3ok)rx-NGSQdG=%Xn*N)C2g zC7sXMsz2C~3h5~XlN24{mdONgM*i#Q9cqs~rVwK#mq*|}${THyT&_YeaVZMJr8B~e zlEuWOL~tgr zMuUa~Y6Lfw)lA@wjc+7ro1)oXlhu=wRR-Klz(hX#eRPt>@9Q;0C;3jY+Z%>m1bA3Y zX@KN6N%ETvcM4!C@k2cSm(W^Ym&589_sszLDdA%6p#W)1vCRR z2hfkYWSKsWFww;&4XIglr2i>APvb9rq}LGZ$=>_;J0Iya#d>laNa#m{<*0qWlOO35 zqa5qD^3l8W1r5(^OVU`f)VU!Fc3kGYm!!E`Ms$m~BSJA&%c%XY6-72|Db_g%n3LT;kf|%RY2{MZyx@<%zv<0mLiya%RPHwL!mj_3$mPJyrcEp3(uX8 z@=?}vrum$O=evnM2hWQE^h<~PD!dB;S%5`=*8r~r76X<5=yw<55#3UNo$d`hF9R&+ zH9pfDrV{%U0I{XtdKqm+NVJuB&IYXFPaxX;6m6z0TDxz}jIRdC8UX#Sm$)1}ua!6^ zaqIB>Cg8U8wgbmKIB--t4#-m+>K>&iDe)nkMZ*&w6@>32p(+8Bt`Z1}*DgVG1fR6s+*7TMx7f?y=oJv0nG`FRlzETWJa}1nw~4 z2;eB7h$nslC8P~Ts)&S2l?X~eM!&XpoE*unw&92!{jRa&Bwafj?iZ6xX>Z3#x@%2b z1`@ubk~Lg*@DtwQ7p9{fCnFm+oFz;rJ5JJFXTw>-bhhIhF!Ir_i-q*I@(a_|hOV2vej{u+OPG;%oTN*$aJFh1Wy4v*JWTa3iV%b)GV*8}p(V^1J5JK2+i;dJW9>Le z_lUrC4XUO`{kV+4s5j1!1WrbN%!adsdEAbZbWhlDmN4V(I7v6bkCW9z<^QA&X%&qa z7rZ1jMnV}m(?(|rGtrKdbdzj2OPI-aoTQrqHzR@)vDMR5i;${B)H>8fJ5ENPX2V&+ zOt<4C-3%Mf66WauE~An)&^#lMj|A1zOdHM;=2<%qe)>IU!&$;SZ^ucxSvH(049b7D z9VrQ4@Z$pA=|vmP5@wDaC*#hw;VfZZvg0HjCtQY?a(st>2%cvnv`Xe>3umjQS8O;- znE7@b{PbI3!&$=o$A-(W2AWrGNUNR}+HvsHFH7K_3aX|>Hk>8QYj&KB`??J$g~`B4 z0UAb4hL$i(Y&c7prFIT!&$V-)akItEM$JoFz<-9Y?bg{npx$Rz0n=<0RdiHk>8QdOJ?iy@jROf+Id>p&sqH z#d`|NpP!*-0tx}jFHr6Q34p4A>VVydxEV(o;~)&FjOMUxc1J29usfclrJMsVn)+fM`GrAQqqj7{CpP1H=P703A>PP!T|dUm1`9r~=>| z%m>tguP%U8+MzXYss(;%t>PDngIV7p?Fm?E=E0*q0f`?60Xlt7W X+cMuLX>qi}?ztygS&a430@wcsaB54s