From 30a917c464c26a43d15224afda65ba03ce4abb48 Mon Sep 17 00:00:00 2001 From: blankhex Date: Sat, 19 Jul 2025 18:43:15 +0000 Subject: [PATCH] deploy: f1e896671c1bbeb399902ef0366c567352daff2a --- data.pak | Bin 368411 -> 368122 bytes eulamadness.js | 2 +- eulamadness.wasm | Bin 1285082 -> 1297432 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/data.pak b/data.pak index 2091b81b3a89e56d49aa07acb8c9eefdb660f7f0..30b3b08f96ed99ba8724ebd48b55043021d37e98 100644 GIT binary patch delta 782 zcmY+BPiWLY6vmTm6PMVFl`JS)+pPPiJ=nn(gbIQf4EP5YA<%=pEe30(0dv}l3Ld<9 z=n!AETJYq#P$(z}UOnh3h?IoQ;=!XQ4@$xB?Iu;<%**ea;hQ%zna%gLU+-#0=i;TS zZ`ZetrF1+JA`n7E!W5xgNt@MjLT;p!YAAQpa}$_i2P}>djw3>6J)1Hx5sFAQvpKnw zA3Zx7vMKO|;2uC?A*5jGIF64DOt%QRo!1ur)<$VmhS|iLVXz!2-xsD^N>_T>b!qm` zJUm!jmULayys^4^*YvS17NJ2F@t+)CsJs=9#eqEzqNwxF{=$#=1QCwX_0hV11z-6( zvt^LaSEF#aO(fssv$K3KjQOvY6PSKLH`9e#ipV#*K6q9~IyPZ?Q-1<(|23Y?=9`nObikYAGDPdN0vYvw<50l5tCn#p# zI!+1m-ZWV+z^BvXF*TcFX4j^Kd8kg-CfKQy$6TvZ%-las3A5E8>m~TPK_2sWgJP!B xq=fmXN!BaSZjr~l)1sIewwu3W1qe*nJO_+9`2 delta 865 zcmb8t&r1|>6aetq*>=(IdbCAsv({a9XVSwQh6Js(aA3uXL<-tNor<}Ph&Xo-5rPO( z&wS;NLw`X8Uor^t-wnvSFM1>(EB6@H9QFIV}@aFS|;k`FsW`2IoFMr8rM{f_^ z`3fJhj{>-<1l&+Lmj3N(ZT-P;qhZP*>QU5IF3i@z;`t$o}L68sM@KwgUM&RwP}#KE8fxjdBRH8(QZ%F zDMl&WI`pVQ@&oWs!1*e?2)$7&9fUIKOj*wx(M%&sQR%FlL>7w2^EcpwI69M#+}57_-}LXul!# zcJ$eqODNfeZj9OY-DtlhOC|K#7bTReQO1~^ETg?du9VSdyDBKz;R?p=UIp!CvQR~z xeO5)uzN=!)4jE{#kaGt5>_-D7Ynm9d4@|UI$yF15wt5XE+48ckYa@5l+8;j^BY6M- diff --git a/eulamadness.js b/eulamadness.js index 3c174dd..d6e81e1 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={455392:$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)},455617:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},455764:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},455998:$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},456491:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},456559:($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)}},458211:($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"])},458621:($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]}}},459706:$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},463336:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},463419:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},463488:()=>window.innerWidth,463518:()=>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={p:___cxa_begin_catch,u:___cxa_end_catch,a:___cxa_find_matching_catch_2,g:___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,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,h:invoke_i,c:invoke_ii,d:invoke_iii,i:invoke_iiii,l:invoke_iiiii,m:invoke_iiiiii,s:invoke_iiiiiii,ea:invoke_iiiiiiii,z:invoke_iiiiiiiiiiii,Za:invoke_jiiii,j:invoke_v,k:invoke_vi,e:invoke_vii,f:invoke_viii,q:invoke_viiii,A:invoke_viiiii,H:invoke_viiiiii,r:invoke_viiiiiii,v:invoke_viiiiiiiiii,y: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"]=399832;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_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_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_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={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(); diff --git a/eulamadness.wasm b/eulamadness.wasm index c7e8ad4d5d04481d4c750ef8983ffce34f35ef49..ebdc0d22366a2dbc492038fc3d4b7a2baca65676 100755 GIT binary patch delta 215398 zcmb?^2Y?hs)_+%b&rF9&$O4;y*&!`Ch=8C#8}Sr5y*s_ntapmHnDEroJ9QQ$$JGW3 ziAzw@5*JuNa!^FVl7nPWP*4Gp9R9yo-4lp+_kI6`nXaySm0rDi_3FJ>H9JZk9z3|+ zv=OYF5u?BNW3dlDV6o@C6pF>{Vm33(K1784;fL(~=j2$7y>EXc*Ef||>_bVse`rsa zU&`>X=hO5M7OuIL^ELDo`c8e_7qxAJ(@TcnsOON#6X2E9tq>&a$n*fb2kEX&Nts#NjR zQzfSRLXw2)m=bNRR+JTnRK+jJvQLpb9$E7HJ&MPJ=E|(Tm92UkuQTLfrZB!#^?prL4aJA10Vy8U?^7j3mlQ&j&ntOkWRWD)!qAm~ z&!Z@cM^%96m{(Cu*)+Y9mjU?_Q&^j{2YiO2RFcu5a^)H*m45f2Ua4WW;tvHihPpkn zBFPvr!}m~qhVH0xz>u`ILGh=fUuaOk#9(?%#&k8{L4#1M`zL#S8k%FslA*~Sb}L$f z6hk2#qV;G$dZS7PkpV-SB_snqO!ayc!zVHPw`+v%iFsui11PDw!q8@q&nKa)pagWE zItdz4)Q8jBp?Saev5;Qx5noy~%_D1|Cb{nmhZZx#BNR>h! z5x|5G%6|HjgU&;i^=e_cNrs*g)^!SdDJ+L$c=I|S;+x5Suh;MM%YX3y(O(_;{a!r0 zpj_rxWuLD4bf(EVcmT%2X|?JBp?V~DK$+}A(3c4!L=y=cOw9z5P#2g=Z-f;ZLg3gZ z#}u$nB;pIec&NTi87V~Uhy`E1mGb%68*D*fLBIn>lrQJY-hdoqR>9016A#JseNaw* zp*^zvrM=YCEC01Un9z&urNx^3QhRBHBDZfZZ4JpUx0kkrr&@>}ht z62JU*dug^`ey6=O%deMaGRb1*{J^HrDJ5Uor<_&~EBivTLfm&CFw}QhzieJImngmU zvHn5IAZ5Er-}EmwNcj;jE6h>8pFFlXNtvuV2}R0$&q4nYzkk0n-PopgGcOw7Xx|&7 zjNayHDn}{NQ+I>CTO2&W3*A)NNsOuPiR+YduUr|bEq`5Dzq## zKQuEmIaH{R4~-0c8tNbF9_kXh96S>|5&SWDFt{tYIk-0XRd8`|ey}(=Dfn4%L~w9$ zmpRCH&OBqDHcy$qnZKGR%%9Dl%p>Lx<{@*ddBEIkt~b}2Yt2$~jX59|>=T@#Tu{3z zX9GV6rYK#N{ei9GxjOKbcrFQ)i09P6=i)gcFjPE033M0F3;tjIl<$Q9C-MBze@Hy{ z`ge%uM*kY|T;X3Ro-_T$;yJ@V9nV--WtxAgh?wG^ES^RFN#Z%tKS4al`^Smr=l;*c zbEdXP|5aV*S?L|BcJj>7zVnRnf1yXxM)^nhhxz*X`{KKgzqgFFQhyBM6H^zffmK8u&MGgo@{n%lhd^hx?2 z^Q5xd{M0|#Kgn0*+oh~93Y9|tF#lj*U*Ayw5dTR3aDVI@^J5=T+yy+(nybvOL5;)I zmF8FC`K7sBJeQeE@jPh`QFMa&{|p?Tc=#XM#%Fz1VyFU+}k9yRBfCE|UyISbFj z=1jBL{N6lherNXc6`7OOo#waZHgktL!<=qziJ8;PspckggSin&)Q}=~3S9e~VopYZ zgOt_gBy*xU!5nYSGsl^qoBKRP$VLAqD|IvD)~?SQRtAHdY#68DAR9jb+ACV~MfYSY#|T z78vu5FN}G{Tw{(=Vti-JHf9+!jbdYlG0m82Ofe=KMaCp!qA|f3XKeI*ZhU6!_wMtK zHO3fSJ)@06W3P9Qccd}G7;X$Rh8jbRPmRF_N7^7`pt0M#%R9iZk?#{D_OY?k`>nUY z=x_8h`Wk(V-bOE@r_saM;q7j86NPp)x*+36MrToICnFyjFXf3{)_&z{*!)GKcfGr|DYe%59#0QT|M9F2X(6cfWBYf;oYb2 zjps$3LC}y+1N#Ce%(AVpwsA8SIR$rs9*1yqL>0j$B^{@0V z^%eSZeW|`gKWHr07wB{J5`DHlOP{G1>r1^e^y&IEeX2f1pR5<@6ZHxDczvAyx&E0x zRv)8ZQ0MAPybHaHys^dJ`Q8QI(fTNTq&`IdR3EI5(1+{8^r1S}2j~O!LHZ}Ut$(Z+ z=!2C0dOy9d-be4H_tbmn-SuvISG|k=k=|MFr01j1%i1OFqIN+$ubtD*YA3Zb+G*{S zHqSfHTi}_jY*gu=L#zd!V(%~7G41D=R^a(bqeM&{?TGfHw$QT>z(3%*&vRHiq%HDX zQ2+VnD=#;lq_uzP#lQaLh3B7p_L--j+OBQWwrZQTP1;6ny;iEN)7ENhwAI=w?Q3nN z_LcUfwnAI36)8)#CE6l97itT%`PvuSJZ-KvM?0wP()McywB6a-9_>5rdu^|_L;F_S zsg-COv}M{XZK^g!n_L{t^vJRC+BofVZLBsx-5uH)`Zly9v@z6E`!cj7R1#VoS{gbR zTo~FA`XV$h^i^oPvLe)3Tcn;1P7O`+O!9ml8WCC+7#{jX{T>Tq*U)#$`p_U{l4o6L zZD=y4>zdF;b#eV^(V>FS zXQ8p7F`)(Ou+S%=L7{=60UNg&pG*+=lkII>c{GV;B@7X z?|a|A;GSUY2j36A9l=qaZNc@y!@e!Sjls{A(%`Y+l+YTHainLPQWW~lw@@umDbong z62L78{^lDO?4*?hX9wq?_osrRwbQ}NzG=aaLZ2gkVz30U=YXRk<&)sIzCzE(!R4WX zVE=e8dxEMI^ITJXjoDQ4{{1!MF z_%(1Ma6E7<@JryQz|p{wz>k3+0*3>K0^bL|3mgpW3+xT-3G5E+3hWGg8`u%p9@rMx z64)Hr6xbNp5Lh254Xg{S4Xg=#6Id1aI>>LI{BK178H@1?C3k1ZJbKS%H~>;y_nrg>QxLfI7o7 z!!sc;!_!q+=39z)BCsVsex3KlzC~{OLXm#uJJt3}@aN!9K?=o=29E@P2zFHt2fqvM z5AF@_4(<$o8{8h;8r&4zfcSO6)xmFqtAbw#R|dZft_Us<~!}DkVCO@Hi zGGdPUC;KM&_WO5x_V{=EdurSK+x@@##$pJz`ZxH;__99}bCA~R_5QE?tNf*qXIA>Z z@vp=4YyWEhT0EEHvjm@I{sEYwWyg93h<{YdV!zRO`mKlU>5+RXY#UlJSC$?Ku!t04 zc{!5YT5fIa9BTV>>UdWUt!S+rYPZapAeRocf5>SbIWxRsUQ|Vfh;pCWI-*A8CJ4&` zW~~P7>Y?`C(H^nAqR5B`5EjA_1u)hoq~k+brM##_*^~&R{WqJ)YD7VelyrZJW5)Lv9&TuSq)ao1^nx2pfVC*Bl^ zN{>)eLMB>znYBe0$$Gb=b!=$Gyc{OSfE=nms#?IFrM&Z2RO)yyIt`rNQ|<3n2w6GU zoB^dV!ViHmfXZ)0RRITl?WnfEdl(%#Jk%auy=E+beYTa)sP`92v#o;l*%Um3AjL)G z2p)d9H6@}j3(%tX5f(n9MionH6987-=m!Fl)kOeA)q4?k@*tVzMU{wJMnStN9)&pg zB!GyTtmnG5WSZ#9;&kQBN*TN0?Y&Wpv$7+sxg=RL zXJuQR+zj_x+a}vxYe(e88|-nl8>KJaKsj^e0`vtVq_n2?T1Y%zJ4^SW_2F}}*^poE zFK3w6XWP-0tcVi6Xg91=K4+qmY5t2TF=q^vs*>CqIjOuTG?cBaBla708e}X#EjcI! z)~MG=2Ewf2U)gi(WXIN}~Q!-VMa+E|W(d+%7Qe?6_)b0G&+lf}<^`ZXs4&gCAinzMP zqGisAWrlkylKB`-*mzEBNC26$@~rneMp;Kmg}}MTnl`@u5AhUUj)(mc74T zZF+?2-&Z*fWr~avQR4Vn*>xqNGn8z&*2Czy@3t~}U)RgbA2i#G^TevCPD%@l*xg#%@ zLIW!a?P?zNH{!uRse^Tly&4V(DkriEBq%QuAc9u?8j8)8U&#S*uKcn?fX=%2Zwm{G z!a9gGG)Sc>exE4qU8l6S{;SeL$)<&MGc_EE70P-8ZBj#*~{3G)@gy%?1pW%F55JT!&{QTw-7^C z33G`qdlRV^sup=0C-as~q(;gn@+Odyy#1DFqbEVXw2UP`=~} zOD%L(+2o|6K5I$fjASJl7PI@`Q=wU$SkSMDT1`o6szj`1GTs{GMHn8Dyl{e0lj}_+ z)82hgU3>A}bwlw2QmFijj%6k5%%YB&DIIJ0U_gip&Yb-}bSyhr30S#(&)pRo#M||s zbgUw>+r96;%{K4-_Z_N~tg8}r$VlnXD(S(1SmpoEJ*u3nrLtxByC?m>>QIC_wB?@L z?8on``};U1tp5XobCS);vHRYW@n6wRG?_Un=%#<03ijXbFQ0Xjmf6Q2NoyNVcgQ#) z4^>H)SA|9(N$-|og&~Ousf%Vu)g)w9d%^E3+nH^$>c&e=&^hg$Qt7-}GFLUbpj}UTahh_V+U>y>P*pP=(m{pvWT#e$|)btS#+-BEo+c=i!=>LI0>m*xONAv?@ zTB6sNq!ug}!ThuqETsdAHC0bAyC~AH!|m!OORQ@@{O}W%J*iUqwN1Sl#nwxfRqy6l zuAhXgZ`W*Bxy^RbP{|9_Zghe!mK_O3>^W|PoS62+ee?aQDB@4SvaFa(KX?(p^vrVcv&?K3u3AI&DS!99_V&{I7Idd~Y zY?{azX?k-UG)qD@6FB%JiG$w%Ee>u^7IwS9!S|0gOHds)6{c0lUcvT7eJgKrM6>ov zuSC3glkbXj>k#Qt z?jRXSix+uk67o)a(I2WeiDMd#K<#0Y*_O)@4cdalg48mZr==*}jPOoh`)kz2<`uny zvPiNF?A!f{DW)Ct1y-}Xa6fF@g!BpRPF~b+zy8N}!-dW^3VTXt3uT}FW6rgaxqs?) z%M?}YSJWsYkrq3@E%x$1J>2B#0-QZq2ik*~q^WSAuZFVQJa+fB)eL8r0 zNzED|+bTN?*Q5pI$nPjUl9>3aezSS{7Me*@Vsy!eMD_7C@SpyhPXs41} zmWcN%K$pIRRz%2h5uboSZ)2q8i4%oI^%Eru`f(t&>z9?33nRMNzFw=vamz~1Zgc^v z2uL`nS8)17y)LMcRL4Y&>(`rPQJ7{|N=p|~bW;9ApRntp{V-8#${KSq1vX_TUKU$% z==CB&B4ocT`egt8oho+Z+1fI6xNVf^gsU5HUr4oVk`OBL@6i2P~Kxa)g z`v3Y|OR7PrmZ?smx0fsp8h^iTf`%O3d{lk_84v~)dpkr0I8^vhLMu*tLHb9g1JMP5^%!Y?`eNPi5;ZDYvHJqxJ=i>s#Wvx^I`Ps- zbA!@CFJ+|z3{#DG7SziyQFMs-I!4v-68o-~>Zd!cj$)e_Q9F>vM()rtDkHJyOBJ)x z4m6UgwNw};NL`Fdb1-cIu=J&x&CZOdh*}6BqB>R#>w@zt5#kUQ1_RR5xy>haFq&Vb zeT|r7YKdYxL{M$pEYim!PK*VJ4_cc(BP$9GJaRbEunSalX6;b~9MluF3~*7Z5D!z{ zf;N!I4rEG179~1D_yR?Vu;Am>z=ohoHO26%RxVWZ*1PDw1?;d6A`^}C&+Q}LgQ#rU zNIUK2y4k{j12{#%!E_^N!m;MqPrqEfr2|VSA?j5`M@WT){`ggsI!M@(A585m@km%u z2r)}ut}Wy7^UL++O+)R><6*bGTH#smgHHEnhlNBrh zFptMgSvz03jV5>5S9{QmAO32(7p)|d+ZV5nxo$UoS9kL*r;Ac*7X?1vihAPqsB*7= zMaA!aJ)OABnb((Iw`k?+qBHE@-gq)Ii9uR&2z3sUQBq#Vwb{aW=n>RF);DNAiB2V9 zJhcD#=KQM8V7b;lVPIpBsA#Z!5yxT%uG#qSjjIrvh_D6MBz&0|RN`eOR+4ZYS)S~H z?>rqzEIB6)nsN|Tl7bJdp!O~Qcq#oG6fQD_XxYG)FpL;qm=&M+$6G8}#AOySu=4v; zil8ON?)Kh&G9GK+%Q4-BjWnwEx%d82n?xv&RVtxD?(*W8B2Z1(De4nwi=j9U_p^un zvq_6SN~-2|IeKBOI4Fgcq*5SNVM;3OdZH0Ce7)f@QG@$km{}OF& z_=RneXJAB0n3gE(=zm1x-6oOJ zUiXhIkH}+>eZSeYQrXe>>lug0?tAQW7CvNG{h(Iv&)cDz4|h{Cfg&(vxvm5oWLWHL zt*~{1Qc-ufoBhrQ)hnM8uTXdZ9wMZG3X1|qEu#Xz_#lsswX1(vh3&L|_u+On-mV(U zDeoA->Pkh5B?uDrOW~dNlQ9dx!($c6@HRj86g@KYE0-CzP8erMatUu!t-^Ko@A4z^ z$+h+?`RUF2tjmsgiS&9PK-N-g@VabAz;W{BXfl@EwZi14!>kg~!1++d{QM00*jjsQ zehaE6ty8O~SM*}xFBD;gji^}v2w1g_td_!y6;Z* z@-&yyU>WJJ2-^%Iyoexj{Q;mvLc2Uv(~pTaqG?3;rx9RQ5JX5V9S@r?k|GOSSSR#xk;ITEsZ4%lPwk z%nF~dzvz+`8+;%$hvqMyR(kjoQSLN14$nj!)*S1CkR^Zvr8UMGveW93SOz63I(&je zEri9c#w!*>fI9}Xg9rfBS;ruQjjV_&X?=m@PH%}y04N$m8RCse509|l>)N<1`s9>0 zc9bItM5N+5_F0+b+cO3|St-Gfn$dnRq9ygyf@jp`^Rp8m&|pIyDD0hu2-dnJ2O#@N@vgy{EPIn0DNA$xL(FE-_z@*XrZoX{n?Ku* z4bQND?rPQi>3~azSjlPcW!41d(2^*y5+1I=Z2GkiSPp+z{O4}nSlYv|jsmmOwv&8- zKzd$yC_nZ;M)M{n*t3cmXO^XSKgJ?g_M@OOOv*Gf5r^`6d!vAeNFWH{{4(o!pREk9 zCr{gM-#Yv*`6tFl)njG(-cEAR&gqfP4%*Foe49T0=M2X~Kr*8~EGSTweVT!Bw(It+ zZw`(p;=O&(m&+YGj|#|(K(Lu4WQJmm{rQt#C20ek-7AAz1kt200@~m7YRt}m(z|@_ zP4z=sCz_vbnIn5wYMdD53mb`1WYTWbLfE>n zAsYz6PVGK&VG#Qt8hzSU*~fdA)m?r(i}A(xu}r&lpV2M%P87UGqG{hCoUf#=AwCQ* z94Fj`=}Kcfwm#P0iFTy#*S6UwBWsVr0~D)Jv7`zyQm#ooK;(p6t+YXEh$cFyu3HunOQdo^Dr@8u0 z;k|O{Bzr+&lizQeL?C4(5KylCM@PAmD_4!mC{@0u)D&&VjWjEFkBT&rr*h?K>_2Hjt~~!naCVu|={LpO4Kzbfj;9U)95=a$1aiNDFg042)Mq*Pp6E{K3`iq$E#>DjQWH%gF@!kcW zi;W#k4n;Uykw=v?a};YXB|0-l2xH`oCDO^K2pvCPwTT>|_SxgM%g~m+I`MIQubB9D z2>LNESt#HjA(UbdOyWq{H)*O!p?#pmBAyQ6QN<&RnlbyC>HlDBi?>WSSn<}$pmuAU8$}|^Uc?rAu<3L%2q6k!V6RZdSf#>iu7kC> z%bl+lk=qI!#7eXA_~5R?z7OB0{z}O103UXN5Bpx#UEsZ?cInjSY>I78s~Nb`smhub ziN`3^s3Z1k(;8HEU~*)X> z#(FJPeAYdol4z5;U$`GcoKY;Y-Nwxh(yt#6E zl-iqsq9bcWKkZpvR9PnvCzn*n@)<-Q|LUCN?^gzG&H%t zCs}k-bs7m;wmq*YyJ&wi?_So=F7w5Ew~Q{$2A{*k-ElBJ#>2kI$XL}%5Hf}a`#92) zS~B?tcJEod_KQy$>u$fiV12o*pjvWLmBOVMdxU@wg+ISWscpZv@EvV@9hc9YUig$8 zt53}LhAy2uT>Xg3MgR=yVQWuISKFFx;th<3zovg}=X>1Xz|Wf^k6&+KoORbwaY58_cW&VCb* zp_A-SSF~V1+nZOkitYV~38&?+XKbDUN-K-TY@V@wmFNCI1?xaQ(yZ~H(f7%*^nGX& zeg8UvzDJ1fjT0%nR)jYfQFxXJ9~)2M?c%$u$W=IwVtR`2&LaMYajYSthKiTolPUR< z06o%~!s|rX7KNVcLoqW8m}#H<@^@^%-Ri5YY+-SQmG?2WsQ8($^JoS5dewtZ+)qQh zL~4hDTe%_IBDZK_ejr0qx%XkOSkpFT=OI8&y&yj%B%?9HZi4v)k(A5A97fHTbX3aQ z^;R3i3Y)LKyV{~1E>+V+jth{WRTSy57FBcBL3{M-8tglJ)#@H_0sh09Q8m}rcPN+S zWhWDq7uQ>Z?TTybrwEKGdyVJTR=QST?6 zTU#*on!0lO`C>Si)(Bc2?5Rvc^Vf9ky-3st;6f= zL7N)|4nu1rcBsrcyw={l`8F8|{w=jVV!K;>$CiqW&9|S}`T|>GFWB0$VuHJOCG(q{ zWY5IeZS&iwi{IY%7*Xl!?SI90!yOA!vOrwCI!m$n?YE$9fH$!h?ey5uUA6Gma7S(X z-Cd8{Y2Vx(oCu8&sr(-ThwY@>FMd;tl*u1|Qz7lLX65T)u92D(YAJ?YQp8@fD@)(J zH%qO!m+BbLzhA-J=_RMGN?X`Pq z{5jz%E*4#Ic1UdQHe~o$RGzbs5~;vAR%SG<4^)!Eo0c?M9xO3Z8Hlg$v~!tY+r1Ha z`Dy$0z2(xJg0O14vkf!-PJ8g)da+5JsfGrWAeI&DivgtW5^t!iH;=!O`d6q~BZ|4L zB`Zrh%2K66G$`f@O>`_|r_LuPc96=@Nn9Z;A?-L#dPl$wI$c8YEl4Lh2kA$nj(}@F zzpuQ0h=3bF+_m%f9RvM$+}{u1&mYLNGY{M+LOH%4g%fg*hf2<4JWal4m3bo~&pbuAvY~h{+2>`In7nNr$JH_EazQE2(pWV% zm0KDsTXvJnPRQLp5(LvJT*upMtO`5Mduyyg8Yy^%UY8WSVid=&5?eQPV_G2+Ul^%lldNGRu(#dW;zZ?w0UpEnmmm`dN+_(G-5m&u*6ix<+T!%B&Qi zY8-UsI=6PZVO;oJ;4#$Hg{-FRSagNVgypI3TVDsdOTX@)HHLg=-8#7tu z>n3~r`c>WPAMe&8TSfnQ^8q^5f8*wd0!;U!YZm%bDZm=$KsgR}fk}kM8?X)%cMwq> zatv$}daUDb1Xx-VCk~#;&}Rbg$P&@>a+9XB%^!c5W;#8O8Gp&3y93Q7k zRCyOf;N!Fm5m@Ych|MN(OCJbwlVdy(XEM5!^3h>dzqPYP5ia1^%c@lHPEb$~`7yhJ zm~1?t-A+eoE<(T@>4XS*LI5dc%CNC9^gtL=!BmLLkqV#CP57YZfd32hU^L>mgZW%^ zNO(43!7*QlxN8lVjUysrakXGM7Q<5DthLmeF0*O7PFhb?-$%qF0092zVpjf%dVYTIBMLblNm1|qLf;oCZq0d0(d~s|msu4MqqK1T4m<;)j*psS8QKA}l>%zR3 zKbdzd3wBmCi}xza`pN}8ct#qlXB^4G#&E9zn-zZ~jXh*`U5P5K#S~F8K8+n=u{Aw# zyh{py1VyRvas>Nn0FY^B9u5OqCzlaCRzb3nH6?w|G=HA;%fNUZf0KCJ=uU~a+v0Iw z4@<-~j>mnMjJp+aF;QUt@C0C^IN-2kT*G+Wyip0b2JyJ@$+-G7#q)2uKTyYQ=vl1N zPUrmf;_zD%9ro8XBUx^bl96@dfO~mS1y;o@ik}4>S;`+tXKDQB3anCvG3y915LgH? zwc}ZiQ;di#aHHQlyP(|Wr3(5^3;mw8PS6eOJ~{X4yup2$u;B2`*~?PyZhd` zdnF5EVuW}|A1bE+XWa(>Mn*eE>iQlO=MLKB<@AydgEKWQH(t`Yetdm8tINA)uyPer z%PUHj$EPDP-6;Sn-Qy4Ovu7Ej&r z2|u32(s`du)+l4VDB+k3Q#B4V{$sv1lUZJ;YrIkxikq}rG){J!QY8*Lr$2!<=7Y0X zAPzq%2|vw+kH+Dr45aFB_pSieW^UpQvRUJd#Wek_QWrEQ4%+7vzCN2(;NMhYIv<|R zvND#6fy-B%Hh={?G_z6w{x1Er(?mD9ay}WAFRl#rgsq|GR+046bHG;yH{j& z8(%e)t4VF?4&{I^1+LwU72_E{?#~ZbWOc62x$~NwrEbpbc+SxL*`IwuGU9HpQ5lP%sjiUv+4kELRI86VKxmNkwwhe>F;+4HBaC4@|bB^lI zUq;Sbufj*sH8~62oE73Z_wcVOvr6esr>427<>RT_`9-9*b5a+(spaCSr$)wk1Tnyx zvf5NBO{vkzRqEzSi|3mEF%eWIe=P?bVQ_@i%h>(3Abc0FY#eY^{}jMLP6DvNzZ&iFfQ|mR-pD8ti_Kma#)!jg`jkIgomJ+w zsP|VrdyrP7QQZipg_}IhO~yG#rEZ~$~l{*8}EuG>>{ow+90F*g^y zld*&Y_ZrSG*I<2OW5l56)6xwLk~9ks2UJm4n&yWyg#*02AeERQlVIzZY~QR> zDioVtDuMEf#kW&p?QL`7_D?y-&)Wzz>ugeBGywIFVYh=}sL zfRu?B9<9Y{2D-RX5oDkqllh-(v1n$G$=Skl)wGZ(9AL0Z$)Q^LfLiRc21uuZNn1pq z22|;23$-g%F_u&&@xRq(xqhc2x-_86WInt$yZt5f0_BhxNBz;MKkzPdI!v+DH(#!N zkCOmUEB_Ls1P4Eq8A7U?&5`ba0+RC_$6E&p{Ej*-M+Q2dt-~smb7e_fY#~L&-ix#s zCB5t5`b##PFRIVpmZx3dO&YMu^nAPlJHrb3?;El=uZnKe>`DXT!2j5Q$lEny-)1_y zh^!nHD$M-+#ZpHr?VTLBST5ec@41yd02>MKe=CfpcoyHvn$h#8TiF}hD0i35Uu=vf z_NrFWtuau-j_@_j*dVrn;~4$JY!WZNofSkjsL-tlLOjMg(!~v`by=dTE>uf?#~Sbp z|4VcB6+6Lew_v}+7X6(T>}_V8ASD&>8s1Ry+a2sf_Ru7}LPhE*fWku*F*$PO#%L|M z!$WNZnuAfGj28<3h)NKs6S5TcA(Ti(p&?M+hKKM)E!jWQifXuqG1By6F9F5s3Es99 zd!j515Of^_8kn#^@OiCR4%^LlwqnQczS#zYPP*ozc6!zkPq9t7Itve5Ed3g#CU0i3 zitUgY+X{s#sVn3!%zWU-=~8NGr$)x=Q@f!jDpbI#Elq^d4w{HDQoo!AXSAuD-3p& zT4srH7n{yX7Tw4C%Nl8^!q$}L{ILgEuB+SH!Mi@ds=B^)SDLo{j89KvElSQk!2ZBM zZVx}m>S8nf{)6l(ww`Z)kku+PRiXVMT#p>jfbdeD_7Ha5^Z26=vAl*y_hb_9pp7LB zz2)zK*F5Wth!&A#qFbQCuxlNKw7#DI^bosM2C+ulviF`jb0`a&RD4q*j!Om0BhJ(1 zaF*3YIF9BcboK&95srKao^*JG5 zr8S%+!Cn<;DgcPupq56!8Z64NO4m>vX+q(6*dd5(cyUp%Re(~&l?~GmD&ZNbuxXQn zoI;K*f@i|6K|!L?FzOYjvz@JfLJ3zt?oQ-vMjie}hq zgrKn06N3KjM8x1j(*d6@q1o$#fbik$gMd)+%}pz{6q>g^kJeVK{-N~0(vsz#Ma>vHjYiBrd9#sr*opm|c_;m;QsxMOShkzYePqJ8^7o%&70ZrMaVZD*eVRo8X#ZH17d-`ib)U6- z<5R5Uuitxff?{dNfn$JGB=k*DuN8xLsx=_t_=1pN8YE+Rt?_Y62Dl(VN3iopG)P(G zYDfUYIxHE`MQi!bPqTZnK2sslTA#ZOf+BM9&gpaj${MHgw$HGKtB1=Xfnf!x1Sg zdvX$cu;bqddm#x`rJ#>n&$05arl3orA+YFp6cM@d4jiqotW*B4>-_JkRIjblIg9k) zbn|*u*0^CWJy%r8+4HPiLzfV5g39aF@$3!jU{nW@X3Fq|1uDVGi6n#|pjf~9aEl3u zTmT|EM^|X7OI8|e{A>CA=kbdGcwWFy6{MG7DTmshCNNkE!VoM+E70P1d4WA7_d3Zp zyuem8ze142Rb+2rcI_P`T!(XLFSghX`w%X4!y3Z*gZTQtust=B`EeeIE&*dET?K_E zUE}QBk}vx!dk>bTJ70vs=^+2hi>z(hNyYk&1Uvb@sF9W9w@%@mFMpB2JXZ4Ei|jUb zEnlzIp53M$i3{=V+p}8iJN`*~c6)fn?CiWK_M5mu39I6adHmbwG@EzGW6#May?jj`8=7m*dFd@k!($)>G_fA#WC z9oS#=(#1k9TyUHp?Z9r0U7kqhj3^7r3IjHO@(wZdoCh~KT zZRdhdy9p#%S#u5(nd7RuM85odMgpKyj3Wqx_hF^eG9BL*k{)iQOj2BqOOe<_{jT^C zZzE|5tjiNQ94)FDVF%Zn5Fi?6Y2 zbKa_rA`m#(ukDj+3etPZT-uLKM&e zLLJ$cF};YkoykT*;`J#>X>Ap_m-Jz=L6C?bjn+RQjW@U%ri5r4FIlwV*hIelbyl&= zC8s(mLAc!a2CEc1CPW~d8xeP4N<=}}>Vt7e;bV|bLKdbEwuCqodtJy-91>6kYb+|8{#3(cIjQHZ4?^`H|%&z%4iRG8Z^Yr6U~TJ@+>V$=nb!RJ8);xr2Q=haQ;mEL4I zZJqo1oGl+_)J=CAba9{<3=6qjwt;I1EgZ=S!y^}l(LQgojGN(ztfy{H3?S(>tYNT1 zeyf0TmMPYZLCo6WhUqTMZEl#Zx!mrC<0L8Q6fbD9Ggr)hGOekMSN%JyuP|~7eb30| z@BAIkJoiYF#BlUO#&wGEKm39UE~Ie&w0I!p=`l@%UR8X2_~>B39w@qW)AHh>iA_7M z&4Yj}e2*c^lS{D=4{Rh1JTMhBJY-Y1bUeXVO&-C4P%Q%*3G7|xasC#og0=pOx3J{T zyuwek4qL(}zs**$i@Z!@GmG2ruz$!0ecT%BFLxUx@`UkvUwzANvRUBP-yO{=r_8zq?LJ{68$|5`Xbs_K0>#&V*RaB)Uj|+?sg>K86A~<$TsPmuFxxfF|#X+fq~SvY_)^{Dt?~LzP@@ zpCkE5;d}@Xk{N&N%2&V7ny`gj`G7U?JxUH7Gk@eu?`Dld;o}3;4)%90h$2F@cUSl_x+IF6I}(Z z0&VJL(pg{j!D$yLkw!U@H2$3b`XQ^6E8w8=#d;L}hVnp;M;NN$Rq7B2S|pX+A7gD; z%=RV}!M4}@fe9I$+%z^hOQ+z{;gxC*rs_0tg{{LF5fx!?QtV)H*p6ZqG$~hp2w1{8 zOJBmJT}psbR5ORCN8qANuRPd^eVP4@NcQ0B%Sk+TU&E&an4w#g%@fS$!b8GbeVh^aMD=BTBYAn z7!ES1X-yaQ3M=BxyRy63DgHrMc3ZrmbdV0)t3_R5b3lCuy0V;jlH+d5%XDLPy0La_EuYejJ$Xyq|4x!2>Y}(|8+cZCHZE4UfsW!tq(>kyDb{%B zjXjFXK5*v;Rw)+V;vvkU!BE=_+aP?5WDD6MxcL!F5vWtBRgpEq5F>>9yJC+*!Ld!a zTOlLR=4M5=DX*yVQG|oZ8mTPat_ORQt>a63u$tA1l_(uK#`%9J3)8Ih>v{$8a8I^_ z_2)-=vJQAW-i!T%H|))_eKR{jAPkS^f9%cb(_HG>n|<;u%_Ve}^tM(EiWIu*gCI{?>y-#^)rZxRr`*On z^nvT-4nCj{dqkdch#%_1-j#bF;?MVG&(}P%Qv#oXOKb-4L&HL?kUK`J3)%>8!s1QG zZdU!wkMxBfockWBPMekRN-UJCeksX@53Glk@DVnvz)DJH+xR)K*kBcBN+BQO`Xh}_ z+MrK#cm|iRgr{J?fvPaEG&;PC2?;fmy9zpDN=qoU=rj)evl8cNl1nEY1jQ!(iusiU?Pj!`UVQ|I?&sBM!o-&vI(&20xf}lKU{;;&UGv|(%r9%F{F?s(K5&RRHWHF&?_Ao@=H+;H{})~V#p5iG(| zRM2$Z#&MnFpO0kCGq!*sUv~poa&{!En3~g*%voy`YeqQ{g@YK^$ix2{1trOP{`n}F zCkOMKok}DA@MyN9LMO4JG?C{(pKFeR7)b|+Pp;*y#<1)s;Z;eV*U38^Tu~p_=3+vO z1!Z?}cksk6N`;XihZq;ku_D1eI+o>J*qw0WgtsZ5J%-&IE)Y9hWF}&VqKlhjS*><` z*21J~LCAHcKoCE|NCGZaG_a>0lt_FER*D?*L?D_FD~du_`a6~i;=^QofN3l|n0Fb= z?n*&-ipGD(SoYfePL@n-x#Q)DS%|gEX;~Rxyu?g8lLlI#r2z$8Z_CmDGqyC=C&dTz zKXJ|!9L@19SnMc3Gzs$Ml^&#|Zgssp3B5@VQW)T`@F2DL9~QH6*DB0@`<&IiW2zGM z62}5p$ct)LoiHNk1`dnS9P1GEQcByb6z-k$cIVHGW0lHwZkn7aIxN=Sa3|h>9IMbS zwP>f{L`~tZg%9YByyR09Ho!1cLt$%PQ~n#yNZr3f1tqEV*=sB8xnev{WSAn6DgjD3> zniXL28oqF1BCB_8ml{lB*B-Xw&mfj`Ums3lFR<=>-y~Kx&|Qi6z-qw|(qPJ|=NpLBd5+Ok01hxVZ zWa3nojUDS(Q(2`Hf=PNd^Rq~~ZA4S#5UWB$2*;KQj1=ZBAc81Tu{u|Sycjisbj8{f z2`}akO=ForTKj2i&$ak|Y&y`hlXsiWDrX+0-@u>=&qVR`5N_|sX7NP;YqK4kT4)!{ z^_AfiaXpSlHd}bs-{{9u2tVN&yvYn!qXm=;g z=x3bG0B&hHshZ&#uqx)rGJFg2S$K~s&ffwwKmKDa*53IrjMBv1TFlnPU@Jf?@J=(A zECVyYIS1PZBo)kI zxi!xoakdSaW_YqU{39%8psN`WS-fKUVix1np$yXG`{uB$cF?THwd*bc19d>D?2xMp zdMXrtGiYE>Xyyt@*+@qRy5m49jb;3w^&9D#`Ga#=V=%M)xhy+&Qh3_L$IfzI69Y%@ zVrOG*x)RQLO~T=wBrnN2m;7Mz$kD54Ny=7=U+QZ?%gHIv#;I~p;VW1X;2fWfuU z8b67*o`>y3zGLl_NQ47CicaLEc8c>kFi|7rg5y4fU+0Eqa<6!~UM4g;CDYDiCOA|O zMdQatFvL#y-T?n@9#pEm4`US+^Gx|ve?(M0K2fyOBB1vFYnq{62L zT@b`dZKm$b5wUX=xSYhSB9TZ*2w8I-hCVG3iI6qViJX~;M9BKWiJX&&M97-&M9xn{ zB4jOaA{Qqj5waFKk+J28ScI%aPVCA=Btq6=C(^k$h8l{HwZw@mO+X@KEp;ND+jj^O zA#0fvxh(;SkhR>2+!;&6?nLYg5sO2zFbzs(4jHq>-2xy)nm>+33TEd#T6rNky_o~M zr_ah)$uj{KuDF%UomI|hDQX8o$?>2c?us-1J0C{se=f=6K$oLhain(MZ~-fqwRs-# zj9qG`wQ-Rfl3QD|Kc%Vp`~sGfweqqQ{?d~}_Mz60$7#KU6$lltZ^(x)U{xFbTgeZ= zm~fa-VY(~K8p}^CU=1r>E#jpJf!2i2xwVirZ4_tqj+FfJ0?XKBskijMr2p6l5mr&LHibH#uRF?khb7EK!~Q+K)i4PTpf{Oz0(^6PV&yf0hSp) zg9~6{F2%!8J7O`blnZ-r+~%8DFQ{Ct^h?We!0T8J|PAyd={q zh~vqs{I=V8rzm&2A`aSP4_WzR=3})TRoys8Yd;?mMVU9 z87ruKK6E*&9UP&cAIxg)+`z#%EoXn0$B*RoRjzMu6^pw*s(qDF1B*`^cmVUFoO-E_CG|eaRkh zFTLd(zGQUkE!V$dJ)B=}B;90$@|;{azW5=l zsw`8-m2CN%RAGmB(U9e|iaJntJ8#Rj4mv8(AI`rPW z^=g(aZ`;71S&b9vWB3QFk+_mCTa8uHF-8!!25;oyHSAw0J2DRu9^BBzuH_@wAZMqN zg=^UT*Krgow~oDbvwR%+(o5E^!|vdmh5|Dp9PBd*hT)&003 zB|_@{0qdbnaPAW2%ht2HF~<#ux*&y*;($)dO-hK_rh@5$?Yfs*0m>0V=?e9+-Uys} z7;;Eqw`L(M(23z|Z5%9V<4De5DVM*#fmH}4j3lUyq}PEPV4T2n?gpG&iPuOo`3V1I z18y6E{9Nmh$A@KBW!zA8x+|{Y@`rBA7 zR?MH+#+n-RW14g&RCqccis*YsD>B1Wr(uO4(LtyLo!|acOkG4mCu5p!GQ=2j5m{kq4hl<3cpwA|nhF|zClz~_xLE?` z3P6mhpL)}D(%uen)V*mMj?B1fn&<9hFZ$d|qWOTG>`&}DzNoG*v+OAMV2;P?oN%El zzl*g?oY;YbNc_&Ql6QB(roe{q%ez_K1b{aQz+3IXVYlf!Oa8nEo)7YpMkQ1BGM!;b zoU@NTn8+cg3@LLYECVbx!md2)(oH_yvTM9EyQNuU- ziTz2wu)3t@PwaiNr+9y1FX8d(FKpnov**WCtje{q_a1{4sF=Taj78W9-t8EBhn?mZ zDe?@jcpO%fv%JM|R?T}(fdT0pf9W`@n$i~N7u^M=WW;fHhv(YzuU~7$)1uZpPovgf z`7@{4124eCm$r4dHI2M79XH_{`&+{rpXzSyx_AStWT}L6rtnq|yFkKY9p38t8J2oS zR#JNA51nE8*S3A<8L<4L>js@=J=u2N>nv+r`)gd05m9R4fP){}nC0{vhj_yeaXN3h zlNQ9=*ZhaG>b9J>P=d0NEqyIXLF!#r`qe%d)5uk#@sa&sH8$Befg8;SwnvJIrb>9XqGC>;~ot2Ku)cbVw*@IpPA>c zclhHBD)B=-EvyP~Fq_01USPjZ*>&7NpH2(_J9ShKn-7^^|1G<`fk7yRXJc8uEaNx1 zWOL9(R^C^Nn;AT~@1o*G)~JkISK`V%#t*-tKJZAK`GDPPFbP9qCC_BM`SKv2B|L7f z5?w)ZiL-4Op3AWKS4AE=9>kx!h-om2e|Ql-D{ze2dy!R$P4*>xfv)0c7+yu}vr~`D zsnFnx8~u{J5$!~~K%prO7FOrNV=BBFv6JQj`&AD#Q!3UE$OZX+`#qUXLB_l6m zeWH~1XKZ&i= zu*REc{h}v-v6*iE=Y_J|s7fNamw^>Tvo7H1oRTAcwUoL@zXiab(&daB09FuP0wDcZ zDQ~FARg!m|^+t(s*AhnYIJ$U8MNX@nsI-p(QVpWQ1Q7jjC^rqcY4XnUzM`DOn9;9( z@@EYBb3R;^!&j9RMp?pGP8Cv?k_M)X-%LH}k+a!~k}_Vo7AsRI@R@?jl81cqOaC8n zSwIe7{|PRy0K6G4KNenLNi-4ZU4_eI_`TPEi%a`T@3J^9i<4*+#atJSe_+)iA~39@ zj&;CV9KTkdLe5bn%)dE5@(F%9dQW1IcVYW!9r*?tjhkJP447g2Gp*g&UP|<%8(?9O zD?$OeV&bPl;~QCa!(FVy3iwk2`Ohuj=^~k<6bQq#(BpT-KoZWW(VUb^&ml8`$D})R znTY29vG*R}RTW$R@YyqS(i09Xq(M#&E%eZfAZ(;6V!xuO*Iob%*stY;BBCNBQU;Y0 z5Tzqc0*Fc{ASED3l_H2J3RtnAe7`lb+c^Zh_q}hq|L6JOIoW&7p1Njc&CHrrlmOkS zWLC#P3GJ&8C(s!e^k@`CA_^p1rm)Meuv=+Gipoffcwk`wn+CV&lw1q44AVk{jy#AG zO5BvfJkASWqCsTz0k_F1Hd2}rhb8O^FCq&V?ZnG=SFb&el*0y(Far-d0|IaP69u5e zMRGtn){gCeQ_e5P>e@%{!{t~u9l2QmTz5K-2iO&G2_s7b%yu~=PX^f2Ve7!Jd|}b~ zUhSZ9;wPs#z#E$5D)5q`7I9|u*}rQtY`!3(N`WBt0zztW22_s35m4W?C!F(hl*h`m zc6O!fRA6~j>E0FCG|eXaIh62*ACY; zmTMjPSS7YF^(E%R2q8Wb+#L9>Og0c7Y=_TFjD5sz_-F&n)$Fazx&&+%1MNbvP<<)$ zQduVW4?R*@L+}@#No66315Zq4uNhJ{uEOp&WbqqS*j+}`QY9Kkb=$T*EATi;ry|In zvgC-KK7ieY17lTU$e`T3bT$op@!jccG$j8X%wV-3`8PU)ksjH=nvO|mrMr&_nK+ns<@Rwcim%Whi{;sTg}bs?%ea$4Vg+Fj zJ|&B(>!zQw(Ats3X;s-DhOtYgX0vK|G|y&_u($WfY1ym>TXafp&So{MA4#D-m@=<{ zAx^%sh51bl8hyh2zB=W*Lsky5+JVtpP7+&DvXVA#yX+BU?e5j5aO_Kgcih>MxW`)1xW-p!*grz7H4Zy1 zt7B~KEZ$U|%{O32;(2Jm((x~`Hk;ns&c{>?LY)7B#_w@C%T)V`pwq=ISayNMU^A)E zX1S~zxc1-FW(^a;LTALAfmsPzGndthJBf}b0XBIZZai@`+n>v3G8Ib0s(3^__P7!6 zv{EKDu+pfOwQ0b9XRpP{mJM0^E@yuBvBYo%Eou;~*#}2U;@NIig{Q0VEqYXHUk@ zz$%GN)+R2iHe&USG4k?8>HtA9XdAmopE?251xeLY3T3}8_ELm;h+(I&;+{V`0;;+6_~`WVvs zgXbC`6{Uq>O zwF#@$avNAcF{Wib0$2s7nDUIa9-%5m)*}#CS&#Tf6P8JCy# z22@_vlyz}YZ)LA&niG#)`RG+MSb;Vh5C>Bw^h}0gi~Y%Lg_Q%#Ak;4*StrXodLlC3?N)B$N zGoIFpwJ{dR&s(t?c*M45eIQagpfxM1wR8(6D6m=Hk2L|)09kBm7a79LgR)f{*7IUy z-5j*tXAw%=R!}9@=!~C*u@E8-;6G6AUn&I!9S92=I`Cj76{rK@xl0EQIjSnAL*Zc- z`U?I_*qQTrB}r`=3Ga?>%NkU&aHlpjWWX?B0;@amCA>Zc*M>k!{FUm01h+|R##zpm z@?jLrA6WNS5!U`ygf$n5AP2T%9g@EB6e&lxW7+bXb}W^BGp<-%%C;HCJo#yRR;{hg z)DtdKkH(;0g)m_i)19yxB^j-VeWMOAnYyvP?B0QmuHo^4;+TF{d?3H;0i_s&=1b;b zt@%L=th<`Cm$9~GektzJiQQ^k)ci_pW?{};Jp(6}5>Z`#7H>;@q7%dRZP$verDcSbkX!T3}5 z?#3Qq)8@!^-PmQRrN8>%YgccIXb)+ahhQ&WW_M?;y8zE19@yx>UNM8&u6*2x^AL$8 zqGi7a1HY>KcQn;J`ms+z5T_wmbc1s&2m@?Y@x<2)i}F6s61d8lY*6BrL{R8!P02aR{{%OPIWi2;*J; zdNpgn#$gk94QqBobe%lRwF^k=dSZZUS$4zbU&Ag6dw~pXNUWAiqCr9U;qgxL;KVg@$4XXdR_i#{f!8XX#*RxAf zHD+3{T*8ssOG8_$wAj3X6&ThvV-B*ltT;n^!&;27r-l7);$>oV(VJRn6ut@LsK9Bw|YJZ{lvoJ#H3WM0AaK}-j-D74|F z(n#Vj5w^W8jb7MmQ-@Xt5q8zrRIAc0vhYTh!Ju?7=SG(GH&QxKl7eK?nwD7%mjv_< zDID1P2BfRy)i+?#`UWaOguX#`FIJnumU%ZktHOe_K0U*_v%Z113qu>_@Lnvv&S`}M zGzi=2z)+l4jKCOyN}N%;uAU~zExlOPPTE9t4um36>$4XAXpcZ8sLg_10vfOJNHULh zm!Shtw?;Ry^sAkMQ8X2-%KUdUEqc}vHS6ZXIYL}u5OjT~#u|ylQ-{z|EO_dt)$qt6 zbt6*!_-3p8@+Q`?3MAn{k>D^H)u){zS&>c% zf6=wW&6@e6dL_C6(g+y*lNeJx7O-lXVIr<}=WNFf3B=~0uqq{XK;kid%Ya(}oQAsM zwgXHE*i;WD(OZ1{`NF1+lqR2OMGH%8nt&+`_uiY&dueYedG?1Glnj zb(M9Hl+Hl6uj>FhU_mZYk5E0>z#7}-$HDs0R@v)T1~Y$h+^wv-<@`wt6F^KEshr_O z+t#6ibbSuq%2M0g!;@5Y^zPQ4qK0RtS@Wz6eV%5wv3eOu3tAKOk(LZeIFL3X-cYD~ z`ZiXzHMD{(0-y{YSkoEULs@#3l&TzZ3=Bo@^ex_sV^Ax2@phI2H-K{H?QGEbJH57duoj-(2#B4%PZ@d#>loorQ0};c)wq#l zr*Pqb4JpK^XiCgFPE%BGq%fht3Feqk|GeCwB`!F>A4~1)DF1|Ftx}*^VHaXArNCr~ zmZ&m(q_7*QC8X-4r5n}8!m%?C*=(lJ7MLA^a8=X!lm>A!ZKkAy?~~F2?9R8TaSr*u_XM@9qmc@0Y{-vYR45 zucAuHGkwAB+%GfwvDUXiS%wG>hlU|W7=xH;2z0hG&0l?yM z{?x<JC5!w<6F;h*P#aFZwu3?yShZOJDPM*iQz6_0uH z93g>x7%A{r3LvuPub^GYfOgx^!Ce&fkPS{aLEv#4JXjqN8TwZ#f7?MHe<3hT#hg-b zK8)k5&-*vhXK1czaEk(=o}X?pG$0Tz5+{a@XHzWb+-*3qQ)Pxq3`1X9k-!9^bPY}*XRU&`^AQSDWU4- z!veo*>IvEPVb&O<@9BqG-OTH>C=GT}Mh$c-Fcb5Hc{a8`%+tugBdkG|Wz$OuKkqOg z%ix&)fi0h#9$}qAk>;DVq&qz9IYyn&&X$Fjiz?ystu>=o%0P~7tyu|@x+beFx#l2j zc`3%WrJe=bY&cyh0VfYjGCOEsz2?}yf_sGtl@ldaATp_Ov*Gx@s`pBgSjw=GQmsEr zkKgr)+U0_&+@U`!J%4!#4q(q3JLQA{tYMDBBD)lH4SY?o!d?CwX^_ir2C$6y{jhjC z`d1^cS(bYg_W*V(Of)E(EA}W=)s*hWyk&NZaV zDGcKL-X;0!=*X0_x`m`#DC5BTxRMlA2k5IIP6VHl#H z&=JF2?s3o{8yRutZ|Gv0X&}|$J3A<$i1Hs#vP)6U(kIzXBpMQUmQ{;jk+*vahXdfyUN0+-Q@NM)y+K_*Z_+d8=S#gKM?T{w zxARr(`PR>}fp$&oe7zibE8pi>@90=wF1(Jl)Dz1tMDg9*KhJtP3?Z*f-=yc+85rA^ zVK8S8$PdH7?E(2mm{lu3f(HZSSsrIPZIVVl_&95xfUYI#k;~f3#=R19UAS2kTwlTH zsn$=Z@zGa5Cg{gj{eUf{#vEA|*UtyzDjSwsspsLLcYKR zSu~JkRk9)-^&!p#k$8?+WTOgOXUkIqaf3Qm4jRO|8cXHIL2PN~!#E6+Dm;y~#ApNB z`;~uDbdJTq_8QQpP?{@h$dwFc)w)K?)|c2WOPAX&OP>SDB)r67C3mtMln{t@@GGu9Hn@vGEiJ4mvlP&h4lF9J zHIy}hOGTM88VU>pUc@!MR$%A^6Ioxq$Obx8&xFON7~C)^L=YC;`G>I+8%c9aSbQ>+ z#ivqOd}1DpPtkG^E>R=nRuKg#Qy%)J1H!ivbk!V%{81T)2zw{3ii*v>T9E8cv8`b_ zDWb_Moev^YC~H{dJR%=zYCriBo8&wl~{W0_BSDYFR;SG$97a;DA?Z&X zK~o;F_aBb5!L=WvHy~HedZFgq4F%xW$I68TtV!p&vDjf4=CFB6s)Klj44Qgia3o&X zIk7XrgA5E&803<53t4vXPspU&ge3vgB{1Dj^DhanB+a)?K2QkO#!xw#iCEL%)0cgiq?rj5rMTL zRD8#Fut9K&4S&L#r|#p!ajOn)ywNGGL8t3~&-wMEB4~SU`~>#_d*w+)sl1QdF}CM4 z4L`f5!U~GfY6oua_R3p#AmUg#a0kl??zJNZR1y$9AP43Bknb2dMxmoY`UAhK;v)OZZ@gLX&gq3`aU1@^}w)l91~+?n4lcM zdp!s!Jhz8ctN1R?Z_Lck4-P<&KusP=pwOd)eY#=mV0|Casf=^Pum2L{MLR?>nJI z6oeXMn2bVQA=Pj;_9{qEBY@KuZLD0qpXFpCM|82E-k_`nI%qg06M?DrS);P#$fpyiqCz;zT%bg7iRQ;7K-$6)ljdr`WXsA2`K&vK0%8m!4w#j7o>*XY{GZDIxd? zMN>dN@)yYI-?2RZV5Qmm*>|jJg^%8$qZcl}=!l9L1zV6w-?Oyqwotem2o5uG(=hlS zBLj3koYgt_Fx2{_eh?3vcQzddD@-F8qDLs?$)f{G&dMjhXN|+9`G#2`@Rq>MFH{@N z!E+!b4fPJpvJ5kb0uFrPa|3b^uyht=)a)1`1e}`T321&zJyMIu}fUwo4GLa{kuH-Bb#YVEuQuhdoYEq`?NS!@a%ZyhQw!X zXf4|%^L~}5f}2KsI9#@&f9V#V?(jcM=4r;^;$6ucQq}Y3$oUO;V;LyN3)rDK^0{2z zfS%jR@oai-y%9SzclR*}`%`^-JxHhG8^f}(&JTzzQ&AP}Qm-BhDU1y#spSvA*R7iKI9z3Dp znO9Ngd)pO}`NRj|bj!&{K3rdCG`k{yjFSCPU$^y|N<53;{2n}2zEFu@Wnra+0*fm1 zTJ$Wjo~J8=)Brx!kXNB+gH-*@X~aXBRvX&*$ZA<)u!6Vr+ZySJ<5P78E0D0dlK^~1 zBq;Amps>-#$K~l>s8*l~zmJN0x(aVd&ly#8|7@(HtG79iS8b|L;sgc|}Q&%{As}47^^nhA=Pcsk{Is+Mkfwc5JnBmc&$%fHv=H+jd}|0vx$P=^nt zn*1M=tPif>z2%B)G*-%_Temm(U!+^^5IUc3$<2-U3xu-&V^YxG@>efabH6>`& zMvunJ+vxc|@&e(fE)ZV(5FrS1E8uX%{zFSjJuTIMhObK=#^-G7hUk|OVL0K zfYM9(Ec*UjdtJbU_PT(N+Uo*NwCCyBcE)j!nfa%AeE}l_)#t-24ASm%&;yY`O zEL8m6;uO#Dg!CHypL`d80TvBw-_3(jT6NbWD0j^noh3=15+4zqBVwgaSWjFhOXj`QHTK2{*gIJAL89`kJ&_>13 zx(BbNT7AySsr@}DWX&0Q$347qB~>9}k5Qe7(P|E_AYZK)(%Zp-~Z8bVJ~=p^YEl>CNZvKxokXsg&4* z3jHcy;=AX;25bLN9GdI)s|Pc+J($rZn8;ip+K0lQ!owG^EIF-zfH$gR^`=gLo{tGI ziya>m*?oBR^K33%(+9f;)cNr~a2p_$FIn? zlhSyM@uJKcz~vw0H%C?TsR#LBO8>`$yhWBypUaLjOckiYf>N009_}BE8xWWwuX>2z zPcfH1#M?$?g6W+@wzFzJ%$r@{(@PKYMz;FvhY$1W7l>B=5#9w;rq?4pbb%N%AK{If z7r|aDiMazk_8g7sRbT+a2gvjEYD#}@ULewVj5qmw#Yr>e>^N;d+OpFW$-YK5*I4|IG<3ISNDVsD! zAt`Hf({`Eq3~zedkR5c*1eSLgGXLN!|m?>}x;xp$!@(Sg|1^$5Q2FA32ad${H zGP*EPru@)GD^3#P;Nrm#Gkiod*WvnU-6wL|GrUeYOA#0vrX2bT+vUM$FfB)Km&UXF z;qy7z`Oos)i>Y=|h2YS*Oj6>}*tnoR1S+QuHkzmx{m_1;i$&EQr%@zpKgX*De$fVL zfCv)LKKq`$;W^&!?`KsgOc)e(2&ucu^9Y)!7D%PV3vq#GPG6yH*dkj~XHCTt6{W#W z0?(WZ`R+NM8ioyMoT?#qi#t%OPJdk%BI;{GUFbhoJAHxp3O54o8XA;6p5`U4GV6BI zD}uf$Jz&lgHwgjdas!yt3Z(7+!C#e6KF=G}bezvvUSKSrq(vS_Fw;S7p69QV4#3@E zem8u;YzXtE*-FyQug!dZPrk~mhAV^G7%h|YdF##))mKBFbYZX;K#P^_0jnExxEb`Q z2Lof)EsE|Dve!&$WcEOw6{CA!nge;AFq!^0GT~?d!VwzX=nLCk4t#4f*bq=1X?GmD zvLE$lA5tDr6i#X9&?1S5N-7!j%j#u{?CJlAoS@M(eMKU^YactmyeEI8%N}U3rw-y? zrvn)9_LWfoK|GlBqf&o?eluyiPZ-3j+=&o~v8wq>V@he|U2JS(n~|8<1Vqg7fs8k0 z#lS2n%?d2?6K&aT1p(QIP^ZB-SVF75`2(KQ00uC6| zZK2#agf9r6exID7AArvt{9u9>LP~U%2Wz6gs4qWnHB9^>zT_{bG^IPBs<0#S%P{q2 zaYJ))!-y0GD*QNZ3i0!P!N66YzJwKa{JfvcBK2i265$u|WxD$E#Z+8gPmTOCPkq^i zFZg-Wpu+1>Vf^e+pk~SP^t41$==W0~t_rW9Wt?se0|Sdk4dur^zzQf2{V%b5bApnC0N|yzL8x#O4^wSd{bYcaXWZPg~sZ4sAXLS57hGeH{Pdv<0 zvtZaeu?`>`t_ZXbDm9R1RJ%tK+}Ebuk+z1~8H+t&;}xFOs7S@az@ilivz4ZzLmV>5BsXGMrb$dB?(qswuM8XF$X&?^QG4L( z2eIToUIFtE&q=TFHeoAYWiX2_^L>a$cyP)CVX!plu%}n;GXiKjh9&71xh=&dn$q@A zUahpUM}l*VK)rX^stlm?8g0HDU$7Ecbn{}spc?iY&Tp)(NMwvAktTUf!^DH8)Oj1~ zuZQ!R9_tHfuktKoyKMd{ZyY*(P?^RhF=5o;=s}3;^h2-W!d&a{|9DVd`H;w}?MPi= z2Y}CgXe40?2nkn?M+wG#{3_3BU}s~NQhpwRu+7+2L%2%G0@GrltRI}ktC8P?-;>rw{R)|gV8vCnPPxja-;|voT*!quYnKbhsYcj4EK%T)v}JCQiII) zEi;Bw&|tvL;>#E@XRjc=^dgw%(G#* zfS#!*2IcxxA%6fKF+VTl{SEj%dyQXfd@rZH#@_~XU#WkrGrefR+SPVA-G_6k114 z;-d|D+Z28aD>^0%r}AoY?-U#w0Gye^o71!5Tl(4fZJsWle+z6V9WyB7rt?a2?%O

LkN~o^P2b_aQeeYrybV3)%s@8fW`SP@VDdEVw(*=b z9d6xFaaEUxXQR$rXJJjom+xlr`m%63PqU(_Dj`Nw>tm+;Xf{uh?PuuHP)arVj~To% zeMV82(-Wnn%ZYPv6WM$w&OZoQHnZ%?)Ri~R;+cs>$1;`SJ`7#?-87Bp=vsA(j#Wi| zJRLk#Br=;`MfrpeN2{Hz&jFr-2z9YQNygLC;zQ+$4U&&sJFZkLUg@yr^wi3I37t#F8r zt#oHDCDEOH`QS2s<@x8Gjmsd?9ZeDBZ_B`Idq>uNzpRfpzt3w!{&>*){1QieJi#ql zZhfEU-VGxGbfinr7FY8P*yVvC6&OKq*+w`)DosmsV|z``Xi22QEaJTkxi&K3KxrH+ z1i=*jaZ5YP{7>)YJTvY{d19=96ZHIYo|Q7Nx%p$Wpn$cDM<{Iia$Y0u)#k*I0kmT| ze+l+fZ~K7f8=uI7AMkDo3Sld#dNS`rp4x~|Ny}O;D^baU<5f!eQGix>f)YvEo zt>HBuP_?86LEufPHG%bpHx+!l6?_QC0nH^;n*ytXx;3CZcjl}dy>}jdRhhUjq!mm&Nr5Vj1LPZ)C2{93j5ST5SFNc@##?FZJDl}{@ z;i-<}M89hUm`;@L=)y{mA&HLj4oGYtLHX*FTQ$X%!;Y;mMdoebdlHAoS<5(*8*y+GN*+wB9>9FZI z(NIr<;(f@_YkC;g%d8Vm@fBP6(z4B!6sK+DL%pe7i?hWGwqun(f7&1ag!er^^sXJe z*ZH9z@8ETyqx{nj?7(dLlj2eVEZ`BXNilzHpj#t5?&NvKX8Gt&-pO-{b89C*-pMcb zd~wAQi|c&KYl!pfa_e56aenBFdvV;@ESK-)XW^W7={|m+_8j>uL=!VVIO zHo}M+Cw~s@7p#(phsITsi;nQ}1T-E4V4nq?Ji==t zu(!I@GF@8^YPK;53 z_%hJU5_$w<3>#(|?Z+9cjiZqsqf(mtLpG&g<;yUS?!d;`Rf}_X%_gm;ainG8QHmkM zQij*C6ciPj+IFm7<3|Mi!{C4 z(s2!X>1|P5Y%r!gokK7mbG+IdVL9!ESssV6rmPA-oEuv?*J(EpSckQ3$$Ahf>#$BO z+4Xj7m1*JGxv^ENjG$GM431&X@d}Cd2aH5t;(9sZI3HX5^_RS63eEt5pZOH*{pG@6 z_;x&o{>pdaam#P?C~opQ|0=$&we8GF3;Jmzo~bwLYAc#kg~GBz5MrjydvRyK*ly4q zNskpz((|=g(VeEpXR+Y7K)B%Z<}FGXa?UdiG% z`+b{wFGhH~I49o)vRGQ-?QgZ=`*_r`01S8xs zor7%~Z0=wLgSCPhOjYlAq3{~!(z>g9z z@TRuWWKHA>6sUs9T210w!-#<%5iQiNVH1pF1Q?F}6D1tvLrJhIL$za?S9E%-{5(gD z?5!<-5bGG3XpR)w2Z50fOWh{Oz;L&$hv=rcc0-h95gah0JP?D8Nyc{MrjW=pk1H!9 z6mrzU6uR~dx5Bk`ljFK-ln$*1MaeVIoqN7Ntw+bV%68R7=q5x_oG|cW13RJquh|jk z2aEHd>aP^%v@I2#u~k(x9~ghLsK5dEQCQI#$(U!^DD*||bpWNyzDwNlS3mB{QonNmj_@a#_AYl5+L#c${D zLKEtVTM|8Xe`No9BAv<_UQhJAR`FE1=Be)GpgjMw`5mG^*wkRm1A$>Ey49~Q(tBLc zh))=@9o~D-%a?Z5#%g#>RiaDp(XTaTp)=go68McS0HJVC?lg>t#($#YVgk?WJU{7uRak`Z$^Ka&n5OouZ(S0 zB92b9Dxza=r~VE6OwJN>Sw98*6eF)~iQVwH#q#NvqA5M+wiFpHFOnf8P70MRLLtw! z6jlBzas3M=zOt35a@${&-1Y*AJv&>fV5bX2ldD>Zyz}=#thKnfU=_0Lb%87+O8(1T zvxkm=jCgzbzcO6DX)Ut;g;@{L11-ejtp)8jIE2r%V1Yh3pk4(A#>yEoL5x$0HocZW z0s%xjBTfimLI52^&fnqVs$L%qkj&cZ=jW4~cGutUYL2p(Skh$J6yufpkBm6eGw|0) zS2k=a{dK&kGf^4!Rc$?holGD<*7aD7Q-b5M81K8Cx>^}tOd!uJg+Lpe0l_~zw)xR1 zFEZ54{hoy0-m=Eb5JD*I!a|xP$9i+fFwU)I5Z|g7DJ?Nkwyh zgM9H)v9hj~@zR3@JP7n|xE#?UbMjAgS|O2j4l+xUeFNHyn(#0o8k>@$ZVNP0;OAhENT2_TH51l~4JVG;~yH&31DjvA( zP)cAKV&R&XmN9))B{6O&UHbxG39?P2xX-2=k)mPFJCWpoZlV^N@p?DWrM@>BF)DBs ziW*#iRiD^hWCcd+(JnOeso*`?vb(5Vb?STC`41`%8WU$u$1sN*Ju?3^`aStfchM%d zKqUmIc4^QcO;VDCbd<#>#ZUvH5&N_5B3K8}C@&?yn0SPwP;4uJ7+BvZOMk?WfknVt zmy7QItVO^s|7DASnvG-G1C&=^A=2aLAGZ5-z!hS!r(fN>BN^XA^v1xyr-vAE{_4c9 z6kX2`z4=N}|NPLgSBg4KqsN42iNe}n<{Blxzf#n!?${aBvS+k!P(0fhbMyf;f-an7 zo1P-XMm3YS^%U1*Rxa!*IvN-zKVK#8MhkjhEgr&SzgE=E zfLtgjN(;7x1~8Tl*mT8T7&IL!-?~=x2oLp>dB`H=coO5NNR5lYS_r&3Z_}N(+0NTM z=WUVmw#0c`?!2vV-qtv8CC=NX*-dCDQ*otE;11_)xAV5&c`KML&-DV=XZI|5@Fr31 z{BBOZS!CRNk#4>~FM9@pc5Ae^vU$mc4(XbU`ExTZ`dtp;k5a zt6qYYE6Y)+UOymd4-tCL(7mtBEe8Y}XCWV$Q^k@?{fze&^q!cA%M%)cuqVpZb)n{? zgW+zDMl{qTP)NSygA_uj0A3K1C~vh)03?fFl*(&g&Y}i|5fOvQBjr+UPGv%Yb z#kKToe2b_k_x2VQ2sqhWm{wrhdJ|*8;5ERIP6VAw!gB#6wy?)H7vhH=h;zJmk#rph??mpkCoW!b6$C*@hIP_=*Z9TX#2zvSxZ+0P$TKP{ouA(* z+8Bpr)n1~poYpI$T}5>vX-2l&xFg}xYsxgO3LIjW%5&6}AyrS^LaMDMtqLUPg0b*% znU+UDJ^NZKfjqXiwrPnRTbAby-_1Q^YuE3*V>coe+4@ z2UPcRvLWhPT7|J+R36vVWVzLKVMSdaU$|4$%e4E2R`6yyj=4J}LHhBXB0bfKKw}PC z2`IFZSzrEkr^vE^8V^6RymJEM1*Yhm1%P9u?it^HCXeRQOY{uB;k*6fxSyr7KJkgvfrt z?Y-#X=teZT83g4~?T@286@|%PlTf?E)T(uSzLq`+LYm|CD-l&3pj=@Ea{;_rp%Wl1 z!OTj1T-gvBtTKCB!u6mM{dYil{SP^LN5ajCBa{HaEYj?fs z!-`|LTX}`hS05BvuHXU|73#xxa1RJ#2G6xF`U$&o+k>L4@({PU{ zEZeD;rPx@s2TNq)7N(54n#&J(W!dK)fb2O*l{m8OD-Qf?vg`#9iR|`vHs*NB&ok~w zLll^IW|$IC(Y+2wTM(r|!G}JTCm#}3U2B~a$H0I9-F?!)3T$f);wSUhPd^WhFe zS>ncq5jGHieptMj`Gubvd)9!PBzpP9ei4BZIr|Y&D@|LzT?;u&>gLhwGR+vWtUVTI zSpNxL3G$|A9uV)lj-OFKRNoP+QIvK|A2HY)BNj2JifUM^HS)o}BFBvZePz%qhiWSN zIQzcP7TXKa7whKmd9vZ7B8?R+ zlHDE^*E7Hq0pEa#eNFbnB?dHnfPhAZkHjtz3fY?=w4!k=rGuFP;^9U`ZrZhMB1sg` znAu>Bkhs1e@oVJ7VX^gZUgM)HO2TFR5S=RVk{3evglGlj7;jL4$f13a(YL-2^M=MC z2WVk;|v%1=-c0zT-jgTBx}DE+Z@y8)|X;y!J_%uM@3f%HYn<&g0__$$lg&CiQww3rk;FIwA+nxfDaM@uZ5K3V{1pf3VD*LYADf_OeGzId9T5|!sia#Np z>q}I@yI-(^v2*;hI4xhinCwcDDRP8~aon>YL{4nlUWvdWx$RX^5%~Y&RguF^pOtYV zM2+y#S(c6JLwG5fN9CCGS~N_(enX#$e|6j&@AO$kS17FL4|;_`eH`d*beg}AacXA? zj_ME^w`x=p+e6M8fjY&?k4A{LZ2wvL#|UwMEVY~kN@c&1;yTD)t{5p=XD@)$CbDl! zW8N277>o6nG}Z;3PvP%WrWJ@Q+~pD1`xfD&p-BBHpDz&iT(T(^$X9~CgUAs9Fh1Qv zEr_zNu}(SYeDm7X3PrU>b`ycmNb}m(&I^XFm1Hw9N@&#eEflp=7i){YWL-av{(w0W z_$5|OFBI#`{PwH*cD>y5n)rM9N$6HgQ9KN^o&_e!?xVymbR&#q_tevkTAftf`ih9@oiu(lQ_p6BK62H!_If zWEd(9d@7fW5$$h18k?cb5gTTMz!w0nEz6z48XA~?x#`z_J-r^@uOBNu!*n?#apg2g zJ}SjvV~U2R$X4UTR5bmwapHP+W%d)VDG3`Pu)7E__idD$BxX~my%`%S5 zwnbvB`T1xga1tC>^rX?i=hJ3n!G|k7lF=vXgSlpGbX;@ubXjq-XvOfnaQ-ZdOf6G(}6YZ*Oy+P1@NbQ?=4Z!ot#+X0}ztNWVKf!YkG1$J*~-EZmJk+EVp~9 z8#<`Q+hVaXMDBZA%)G^!>gXYGozu!9Xsm<%A7e-zV zBdTBV&y_$qdygmPFl}Mo*#@b_=c;KUEfD{<2z`c$dTZmy_;NA0cUKOYb9k8#%qgyBe)hfS0T$V!R($|iDDzNy@1rS7*V@I=gjpz6i-_3@r6#w(! zuod896I@dTp>>k#hC-Q$i3rP?P|x! ztyoY%0U%E8szH?#AiW88jEa*zfz|XM<3yXgPhdA8kGCekuympPVFHY*BaH_u@Au+ed{*-X~TSSKHx39lyW#?E4E+3C%4{Ve4?*qF_RG+dWL z4Avwv9t7%dL=E5l*TQoNXX=nmM~GxPJsqXGJa5F<#GOvQt}UmY)K$6Mh; zJo)~+aIFe_?|PSAf&o`?9=xEAjgxKXvHNg|I&~g63INy5V++~1IQh(c;IB}gnvckZ zvfct1gfEoy7O*?;sIZV-gU8(q+3=L%8#CxOGN(MqW&TF_=R(#9pBgSwV{OTp>UI5u_( z`n^y#TcRrS$P#vMvPzEbAfj9-k1T;_okAH}%0{JcwG*)F?%z-q7w zaq^)LSZ>`Z0%Ghz!wh!o-#=sw2&^C?H;?tffXbk(S16KJ!jR{R4}gI2^2ZO@)t#r% zc3k=? zU&wRds*t?+5n5w_*7+Y1T8mGAMEzDMe_O%Y5sq4~WcQY{dk8V9i{#vu?AE^lKV*Fi zeS*f2Ly@4U!}I7*EBX_pKe>VNh*gKDfpv&S0Hp=XnZ^@yf>o~bHVo+xfwh{9%HFX` zRd(PiRt;DvTE(hXbo)ktZtG~JI@)Rd2&`uL)M0QRfbZZw7sTMsyl6G{MdRhl)hu+m z`Ur<^_D8DnX^LA1M)2wHIQ2JQ{T+sWpv-`4Y*^#L-GJ#=J@`?>25XS*2-$NDyCg|v zTZ(Lf1vv&Es;Gq2v+gYEL!5|(C+FCJ3@cN8?NwrpS>*_(026*jVsMx{4#YN^9Z z6|#3@IYKv0k*7aqb5P{OO`uXE<&sUT9u5{qH?jKZ4o2zpa~hRR$B0V7fRc4K!-?t? zIdL=VkEDSuEEP?yy@j=islma+kOux*&r)SMi$4fJ=s{7^rB*~WUyy$b~yD@<4VB`5 zi1z={^*p>rq*Zir9FJ`V*x7P)tW z=&er98^w3@toyMTP0tk{iy8FnyGeBX&ut;b|26B?7+Ud#sQsT?&sKI%oW5XBB-J8)7T{O9bz6zrRfI;Czdxl3~6=@G=)3 zPVo8$cJfyV{QYAmyAcHMaH=zs!0?I#&i4WeIPr-C7ZSW;hXcPx@H{uaQ3M}(%c;(2 zf+xZlmsR~S1g~|!k0tmw7nXp-=Em(#0plpbWVe9V3Epwq`ThpMvm4v_ze(V?c{Vtn zz-4Z369^vWe4a?)Yi{O~2tFHbY9}uuc&Cf}$pr6pTR(;1EiSg+B6zTy-&BG(ed$#8 zZGzV%+1bBC;7|2!a2kQ58V14^uBH?GshfHR!3UkxGYQ*(b8xqSz@Hk~m0w8UNe6R_2>ckkb*nA! z5qw~q1A|v>n9H4RD<<$~YZ`=6_!0`3Siw%dl)$N#ZEzWZE1gmMK7q%|+h3OxxTum1 zen8-GC#w$$Jnm%m5rIqhITc$G8w?xfi_Z6z^!;N8Tt(nJZuHdzzw3128Uo)s;pDcK zV7cFc*Ae_`6}xKd2^{Ivw1mJ@Rl@e?4FvCT%HBxeVV72XOz@vhX6n*mLaLp3GkyKu zLCO{aPgJ+RZY6MrOU6nGF8NtiG)%p}jRJPKqh~w8Mea=cgy13W_Z4H{;Gh%z zB*E`w*v&mf;O7e03e~3x&UXq6e@AeUoBVr%Uv!fHK;Wlt@*fHQ!5Mfz5jfaQ{WHO{ z((S^}5V+Az{R_dzoYcRn`FG5vslU%^RNcZ!L1TS&w zHjKdU-G;tI@P1UzqQ5T_JfXea@K*>N<4oWav~ijAg0rxGL-4yU{4K#h4R*etBzVve z2R=pcYc716;C(8+o`2s_K#?2adxF=y@DBvfbKxHe{@I0pBKR{G{+Zy{hdUKGL-1-B z{)OPV1Y7O@l>&yk5q=~1C2ZrYDgQgcBe2)A;IjnJaABYM2Zj6qUx{Z~W+DlgV#BBK zwyT+)NTKbh11hYAKTohfE3AFvfC_29I-tVYP^X6!#%4PUjY3#yMLR2nucgjcg|62# z?XL=3gEdI=Utw#3v(_tQ9dec#g{v(Ns4z9fiL4Mc$XQzzo(`XJ2DQS|85g$jw3djY zLQ|OVR6xURrAyBX37*o>uJ3CEelW#B{wRWfa^cYgA9mp}1aEZVu>`;159fChT=5)j~f`4&#G1Cd8F1N=241(Q0 zpGlzG=d%cO`+PQmYaP-vhrq8sb&8rx@aA0({4T-U-Q{r}!9Q5*6XAb81uSy5a|={@ zciXd&;Dye}Uqs-1hX}t%;7O+g78AI{CE3LU4|Nx_B?N!sq+S{(_%&zZEF@3`=X1i$XW9})bki;5KluX0LT8AtoSMGm}5W#@pa2^`{pYY2Sb z*`ci^aI;g@bp#%C*46a{j&Si%LNHuj*mG(F!SCc7&i-#B1-#MR{{At6zdB`aBJfzU z{dF^eXPl~RA#k`m*tQZp^fRZhQi45HVVg>>sDh^d+bQ6EcMJ3h!Ed|p4ua>p@J@nX za^X)2e#3=#5&VNQLU$8b=yduX0(a`KH2(GyJl7$Q`w0BhIc)4F@TdcRM&M$wZLO8y z0KuzV_#nZh?hrUc@b}K{=`exQ-Gw;(IR$KV`t1mTd!6V<30&ZO{enP6Jk?(67=iD( z!|O|eUvFwx?Kpu09q=mxKXK>j*93S41OVaDA+|-&;LsB2ylunuqXJZHX&iP3(<$* z=uOB-Re)P#pXu3_IGYTG7k5mkW_sqDYK3P7j#}(n{7b97&s239)L5?lTr~X8e+Am#Qzt*UULj#Z z)9a-Nl8rsUeii0nSgh5SWFU&D>=S{pZhb4-hoY4d;5}c80yu>E`AaeJKl}>mN*it8 zTo`SqQefN&Xv>G>N*pPN*?3dN?Sp}XxRdJ!c@P+5N@V^9#tzw<`Kz(DbL35U*0J3# zDJ$wK$=sp9Cmi8qz~CEh$XI_+LrPu5{2AK65P4f##r(}}k4(qpIp$a1hO)T-Ix_pz zpChjF%oIS}QQY5DLqYSH+`|3JG}O1;-=@0d^d>eJA}~sVtT zZqC|<1zEP$wqfYP!8|%sSuKdg00(YxZ|y_v0-d17O^OsyC%`i<$B#tN4oo1?r3Su| z{4_*|3{x9=4MO`TKrq?9U|J|XL}F{&jvhWLOL;-r=B3z>wyFu~cQOG59Y;i>j37)( zqX9+fxZD(1AxmyP+aHpkz8oL#fT>3Ma}H#Vn;8ta-b0eug(q8Z?7C<;p zD;7Y1T^Zs-JCrDH9-jCHquUTHoPf?mbr9h62fgaAbbZ+lzc@0XN=ElWsv{zj6MoR) zd9dZ9WYtKMEeYKOG$sc=k>*#TVpZhc0a>O{!d4;P_bSL1L5K}LAD{yz`+o)Vkg5VS zoPc4-(88br6`qviHFw&;*H|f(DXGy&?Xxb)B3Kcrse}%M2}=+?8Mkq2yR2{3k5vyAf zTUhOfekcu=wh&W=AX&s%so|!oVP~&YL`kHd&{)%rP?JQJl`UZODC7p9Y?&0BC~vw; zoD|jNTPqT3E4s|J_8^9T4q}lIx|XEKQG=Ib9FuA|+&)1D5__UV z(pHDj*8r_ow0x?yO`(R?8w_?VKq?a77+QsBV*|c;anOoO-Yt$!6t!zk%*&g)uHF+Pb$C$mYkA56glfCvzv zuHi#>KxvmUC93l#av`a68XQqe6ZK7Qm{o%10xH>Fl@gSNO|=(+G(B>{vP3e}v@X$B z4i#X8zDFQnp9jTkt{SgVz)(4p^-YQKVf^_F3;^2Fm@KfxuaX`2^)bhO?F&p4fzN5T z#LO@x0CQBvg5pAX@&Hd}u(M3IoQEiPjj^z|jDetXGVGjopO+KdDtI!2IwmqQNKQL4 zVM%1dFzV2uuP33Z0jM6vu6eSSr>1CfTeJ^~;JNG($dD)X!>A;*p{HoF#9*>;;3f#2 zxMup1s~gyKlF+7JtOK7-(mlyFej9!M}WeB~zgqM7Jc^NOy;`s_|5rzj;D5ijP zVGzJh1rahVFlZNTR(xhI?ZnjfO|=_ab!3xet=nHWKK9%^M*dCqlZ9s4nRA{uHP?&089*2k%H9l#@;-Z z&ROVQHNQ|V$LoaUyhEQsW9>62=FWbYOrXg~<>j&!A~-5;d1XHZaT)%Mcg40B;l0Wm zK2S5f?N+91I4s4INO&&W0Ua8>X74vbWPUsF37-~HQ4blR7$_|SMR(+eZFb*4sfhZD zjzDe6T`UlL9Af5p24f($92AdW4~x0;1UvqXm7yQ5z?az+!A@X$OI- z#9{n{8ynZi=exvkHv$ODuXKr#fajh#(pcv{b0-o&{Lslp}r; z31J*Dx}oB>O0IR@v5Q%7kz!`r#e5o7Of7ej*s5aqCcr z>Hy8de+3W2y(mXvJK_``u(dEZ0T1%P8Ik06!rrLD>$-*4rNZGq;$JCzWK`iNH0G%j zjz)HZYstgh7gdLPZXN1T9dMm{u{zKk8Ut5oz-q)CiU*eQ=~Y!Or&x#)Z|=u12z$p} zeYd#!R2+l_{;Ig*_zO?jcU4DY%6=9#mm0X`gd0#n;3;3Mpo`8WAatTTxTH0>5E?nQ z4n(20p{@h@Yz#J}IzZX)->JhEw+`zsREL96b!g-{#x$ZjfYALbbr=yf#`frfiFNcz zL>*lFGUlPkI^^c$xt)qD4$b;JvMo7H+@>_4@{<3$JTHlkp0b~p z_!On0IlIq#rzt}t%QI<@MAf3HTZ^VtiydL+Som6VOO0zfwG)tZb8kc zpmG;4D0&t}lgCwh1QU5&7BPBU3p3^yXln$?XztdbIn^O>@jAHYbWMaX@jGr__4W^+ z&Un4}CtBVS97k)yv8bWc!YwDpi8K+sTVDXY*B%+os^~yuU6Ea$*Iu+mBUF@BBNAFN{tMtm{d73ph8lm z$bj-m6(a)zNfjak$|aSL3`j`|=zy^9vYyGwN#!D=BqgOp1|%jWM+PJ$B}E3rCn*bC zz^57qJ(J^-5+Y;7CdEevgkzH8B18OO714>`$wWY5I3j?9brTW5aG;I|FmU3I2taNi za*8jb`3Klf zXi?lI(LcqoFK3i*v=j2HB!44)|K!7+QZU({Mz=U^lKl_m?fMQI3bM$lOd|TA@IOl( zeJB)f;I=OMjNXUScU;`a-O0EET69YOne5N0eIy0EEtr}aN-T#MI%3BmU%Ee6n_o>hu^^Lk9;`A9}IkW2(JP*MK%q@JP%BllT!TGllSwV5Rr1P|!pn!YTyzY^Vrf&L{m7@M6tLbV-UL)PsN<=@UdK2=;{=C`YCH zE3!c~<@9ua_sl~x$o*D1T*(E%R;2w1He4w{+MhFIQieY*`5MD`7CXg*B7?LZ{~qt} zENf)=yM$4`r%HmdvQx;ZbDUy(52>Pywt#R3!YTeRy@=2EX9+G+lD7? zIJe_j1XhXp30`{OxdTs_jWc)RnTO}6c;@1{3(wtgbfDdhw{IxP9=sfx0^N(SBUZ2(7)z#J2RnR}V_y=vs11G2XW$=(J-yYEdnl9Yq1jO(?v@|`Lpg~!o%RT)M2YSzW*pnWcfbTOp9 zZH;`Vi%~inPoJ@89q$D^;Hbbd4<&93yYI!(F5y0mrt1)xuL`U?kvhiP~82w=Sm;yV+@qv_A+kNXGZ0m-o~ws&Q+e0T?Gm} zc_&3*qpQAZksQ$1XsX|ErySka=v$lpxVf)U{4Y5l|DrF5_I%m6pV3xZCHwX>I+gw3 z93oY4hXtxg+qafzNvO4KGCYuiGnm>BdN}jt1O1Ft!zB^&1r@SOk(nH)-Y!4tXUrqM zVRC=PH{8+RXx$171MyVEl{gFo%-y>1E^n{oCn49%FZ&xU8aZw7tB#>W83ge1Zrd2C zy&-qnMn}BO-fpmQa^$Z`uq`tN8`Y7w`{7rEA;z`kSWsXKaphE_HH?Pfp|xgHh@NFH zAOs*ezYQj452SA20a7{v;Ua`X z5#EWgAHu~5dn3FHA#O$NB?t#0yc;3iU;H0Jy1uvvA>Dl}MK~7Wy$Hu3ybs|C2=7OD z48jwa;m0WacmUzS2p>c^0$~PW4e?3K@nak)NH3r;q$2B}8$&e40r>koX4e>I&>6b- z>D@3AQZ5I+l1qmfon*@a#uxCtS}@SK*Z0QxuY2_L9hAO`Eu&7Co(+;A2UgyG-;kdJ zjwUY4Oxz>5R|w?oh2O}k;oyFOiQ|SthXs>=)o`PAaPl2Y)a@JTVIi9PA6~@|n*8;{ zjX%K|<-z+KC2g0mA_hhWH6s-*)X8FGuG!y+XxdkD)(B&}{^&Y6{Q%>yjb}N0Ee#{9 zG1))M$^(tVDMQVH#vBTp9c0{8Fcp^}Hf|))aoSo}9%MAvoJ?1jM&hxMy_8?!jDH`~ zqtLR#vILE{QGD7V#+WvbI!|TdFwEJKAy&&kEM^o!4iv^eSuoN_(L+OBMj96Y)I}qW zky&pLYKI#924U%;#(~;jGiMxX#I&poe>qHLn0uIU4m@rcha1O&A3XVRBU#B$7V7rp zc?p>A==Q4=67kRn0Zu$egKaUbt0yTI;zh;7jXpZUj}JFm)$h+9@;c)6FfP02>Tm_b zWWJsp;0xl5HKn7uFpjre@OT-G3g$E~qz_6AwySB#*2}p^7?mULH*rn@veS(qy-3Qc zWSAiQcP(+&gP_Frgkdjv9WiuPoT~;Yij%JO(-8lyiACh@X7ca%|~Js=m1GScN9yYvFB?l9fZ!M%OdbLvM`$@fPYeNW8I zIq1w<8C8=QOEikhXb(W5Q-h#`<+PDgl7z}~(ox3ozN^VFJivz&_KON8>`^&x-+wv^ z2wEGUw1xKweArpxNr}}2kAeq~3rTr)XML$v5}1jLH?Kf4+(R#i(wfr)D%T*;5{XFV z|BW`xjL){^=dnciQ27b*$U*8FNGC_Jtp+rcnWv@sW$3NXy>LVyK zuN`MB4rAl1ImtM_%*#oYV_)?vCw)Wt{Yl27!OanFEP3Vf66Qn4%O@L?gE?q@dE-q7 z4|&cQBjs<7FT-I|P&1Lv8kr?yj1o;-FISynbZ#&Qr(?P;hdL7^C!3`CJL6S-ijZ&r z&PW}&>t){L9{U=z;9l`#YaH|5+@jXv5&`SPj8R6HAV>{ugRn}MA^);PLy z<12s!jV@_GH~wHs=#>dQ@f;lm`7?2?nT8X!W1*?HOEx&oI2%syE(hC6aV5+AOHqVAsdrrod-3gbutmVo^+n3}^7 z{uANB2tPqM0^z3!ha&t8VQ++=Bg7Sn{RKkW6~06WIhy?y!Z8THMtB0kZx9}Xa4W)5 z2)7~Zj__NA@WeOF-i{v~5%C?u3WPflmLvQgVbTfdL6slyO%JM22w^{Iy4VXpDuFs< zLdxgPz&@}#^VJzfk1$Z6&6&ny@yTF$a7K&ZfGOX*BwQp%oN46C#%CGlYm+lqo@KnN zYpdnBKN!zP-U}!0kv%3DL*eOf(gfp^zVC(Mz%Z1`Q)lWp&eYXOK{yh(e@?kG69*y@ zM@Y)jmAIz1a1yZBXKtEkXj*hmT4j@q{%DlyliSN@|7aXP;uRysiZpOXxC7Kc>1IL3 z2=9bDNfF3?)v(vI&U#TviX3CwulXguf}S>T=yklUB!7Rd@gaac^gJ-g@5uq@8%-O( z?X(EblL|0Gr;wlm)6=^$@8-}pT|qvc&-ERU{mIwn_N zU=(XV%8xEEUV)h4;XfH|?Y9m49mC#eBpZ_E8`K2>3l8Gci{T}N*zX$ldz@O74wrB) z?h^F$itSB?y;-I&G)_ZH(=Id?M_+SW>houe%^mIJF@HAhhb!H@Nk%7ah3q@Y=w&`( z76WGa#h;B9=HvLS#pNNBAOLzyJ~_!qH-41(r-q;);IepSE$<+=PXbf9SlWLvzH5aU z{m_IA2NMW`nF11us0l2vm$)-?{6%Q}p7!$37a7OHEB0#_8OgT)FzgTD2o-9RC8@?V zXdfD>#`KLTa>jp)VZ*oP#l~!NG4MU{oP6+NUMABy*V;5XvjMMIv zMzztk^iHTB)7f!MVl_Qq2UYf@m8ij{5>CvQM^+nc-MVV3jX9vQO=}?9+%6BPG1A(i z%!C?@i*{$`rpZQQ4JYIKFEu)em66mRfR*DD&u2cp6b2sJBXZv5MtcNLUv8X;+^H*! z;;^yNdrD)hrrmDD>! zcDcj2DAR7b(TK=@zZpggZGGlA3IN%KR~wf`w5gdNuQeKk^@Uqx-W;PXg)hy4pa8kvn7^RUA1Fg5~8~lGY_&sUw`KmJ& z^LLwGEbpIh4DsN>;Y4Xe_} zL|(GM=tdRazaY14p)B|tcPTUBZ^mDqgl(z}gD z2Exww8Fy$1-?-nnlfual7>^;812Z_X&X<{tF%e|5-Eu7FZ{=T?8^^mhPb`M`RDQSI zXr)hYC`%tQ4#;!tmvl&XK9v(6GD?eF!!)~^NGEpS^XSIu+0W(e4;gJo3hY2YJ;KwG zkW^7R_P2labSCp3FVlH|V!FqYlqu46&KHj57D{Uy@T)G+Yu0^D0Tb6D_!XS=?nM5cB zb;-(5i*#czmKdE>DaDqio2b}K@#Dr3=H97l=}P1Hh^ndywbV>O)zE9dh+>;7sC-z7 z4NjFPs2o@`hdyug4XdgeQ*skkRi0Os-|ZG@zX8A7rS4#4)~q&u3K#ifRhTqsR0>p8 zGP%Vl1P*7uUuRS~*|61wQjM~+VRPhcN3S;ykEq(5K5}gi2y(>+&UVM^8;nRNZZkoZ zHB^=5d*C-xokH1C7m`e5qp?X>g$gJ+p$awd3i)uArk$!XjW!wEjXm~GqIWlD)^9OJ zhE)SW*nOx9so5fG)`#k_PmI+LRKK{8M4=lqAAfF~RT5vcg|RNrUa}=~a?A`H!5G{- znTKT_D=-^|-RLM~e6t~h4Z#?Rn8PyX7n(Qe`jRbF?C{JP&CJIm&evg?Kb4v-!t{ll zW%A;mj4qiETbjFYZxf8_o;J7Y?P+4Dt9i*dp@KI66jwlTr7lj%!&{p_d-;XR?_nY3 z&sX_fbXwcdtdfh{nD728h4SPVZOwt_uL_ZFP%wtH_Lx* zuhN;BJ@AIL*Vdl9#ZYDdWr^RnCJLFFy33o8shL8iA{Ccu*~gseH&dtzID}haa8p&F znN#4+zUEE8rhr6&6EeH{2WNKAa7n;*VrJ>Uz^a9-oGo(oVDn*j(L&6>MP56^eBO-+ zQN(FO&3oO5FfH`dFteMt&?!cqyubNIFpIQDm|NTkuC?m{<{CF5LY2f1G?!;rvgTm( z8#fEL^Wq_<26?ZdMcmFCBh7!h5nRiQhnlbG4V^3k^)lT`$WzWX%QLSWVd4?0Kw@Us zk>+t;Oq?JuJj<-i%sk3$;zd&}nWdx6mQ0vlKGuAUsL{;h%+(a0biBC?VW#i|$P*~y z;FHX^D6BZy{3nHt$CxiuhAm^vM>xZ+r<&hV#Qd=)j{V57@HF!?in!)<^EEx{fZRZV z{MX+DvndlGt&-EvHXCKW8*i3SR0g09<1_$QbqCUXw5$i26AH_ud7jx?zBR#o!CL{p zV70B8Xzu!z`CH49bIm8cLVJcR1IVuQDIt?)Z>LuaCZQILv#Dkty1=`Nvs9I+xO~Rc1idHgzzSwN*_hrvhl6m10v*)iW(7whj^9%ff z(E>;vGdE5)zw|r86stwrp;&5Ciqxbuckt_;D@{AIV~W|=Z)?v)DRbf#=Ja1vK%#)1 zIdYoW)i1SY;4%O%8Xn+s5X>!?n1sk(#(dXZv}3 zCit^q?%42BE32bGi?mZfRm^kiaa<~{u}t1!mSo;)o-mtqLQ}q!MWzw z-WdIBQ=j=zn#sL^KkYJS-GDvG1Lt3yvKJSahyK<|Br55Yx#Gs)T>XoqgN3obKRU&P zUS;VLgM5p{2l+qAE9iAi1l@6IhzLg)8IohzEVxgdk&FWl2cjea!OsY68WG?s8=?qx z?}&>e^GTz=%iQnjiAW14Ll=h#-`P@pInUcn1l$ zZ4vwR#jh>a$Qn||)m9q*SMbso#FJoua9a&02Cq>%?wV8~y!>@uItG2HNHTT+tlD1HTr7EjF6e=thtaxGaLblpm8NFp`!iNjl_QH(3kUuFCK*pPf4WQ6IiHxC+gxL`(Lc#x1Q0J`Ha=q+zD5yedjF58pF{`t_>po*(i z1EF||g-djif+^)|D;ieZuAmAu3x#AzmZ>x+(+FV{ps$&vJ7xfY8w+Y1Iu(WZ6?l@B zdZ7&a)0CMS*2pfMuYMBMc>EP&WqKn)>7Juz^blDQz>7sz<$$XYBkff`61~@85~x~G zLzCuLV^JrG`&Ap%L>^z7>WOW5k~Faye^_fDG!NrTw>kMp&$N5fd^`+MgFNRu^YcRg1`{j8y}|s$4s%{HHA!j<)MQ9C$r^)8=E>Ce zX7kkFx~l50Z;)NRy=k4(!13RkHw79n{00hsF!ygvH(j`SFcbIzfieA%<9;yP)xHJ2 z`3JL8?b!EzFxxbDWVOn>lVc-LOk!HOwnT4MoFllc3{{cuD*!TI9{QtMls~7OZ&tBd zNmcv2AIOdBh@}l4^H{z?;@cN8h2phGr=fP?NSBVmHtWs)1*hoN&+( zvxN6S;!$J1_!o1u9DdV)99 z@B7*8UWSEC{$1D=2+%gTkWDOPkd#()+FEad$Y`2Hdjn#|wzvh?H}OpxeEw0pq;^4< zm?kK`mUu?qq*?8w&(hwaC05FpHS0cVhB%s|6msc(3&ZNhD>V$d5$262TuB=bTpD2)AiWi$8+mG_vIrZyK#gIQ zl<)cgjn4qC+Hb?;X&U`tGBE|eXqans>@-gp*6I4nnR0?D+#dRJRrBiWln`lsSH;L+mDF79ThI39}FRkKafZeE<}Y)1{cb;mQ^IvF(8=J z(OPxSMlk|*CKu;%qhCMLxX}+aZuET7>yo?8#? z8S_w2aL-WfW7m)`=2;g6xPpM<)KU4?$;|)gKtr9;P-isM9sUQd6@iADLPLIB-km@2 zKXALIctqxZoY|v2_IP1= zMk6bQ6?o_RHK=!J!y{e)~xX!C(KGqlA>DTN4C-Nfqp=2l5`)fPvE>e1#_nR}Pdx89%1 zodsI+xy6?7nLpCCAsr&0`71BB(!#yxPex`{-OHw?3xgdIU=)bXN&@*NPM9eJhm!2>{iF7p*vfUba#R{Zzuv zZXCa}n-h(7PWe}Vr1B$7RI36*Rmw_upTv0J$to2+LPdYuk)!c+m5PQb2i1eOsyLqB ztWpVwsf71bHF MZ*My^5gL;&QFh6sf1(TkBd^?uHpo|Hl^ZWL_*PDDERTrl!_js zqVd2IXQzjjRKi%5@T8gqycDIP$EoNUjW|2rgi_IGspyZJAi6qCk3*^W2`c{YZ>#DN zItk~ggcqqmm|llc`7cz_c%q5p>8U1_aFI&Db4Q#&&mO6S8cn6(;UiAD@l8BFqmrgL zNz1x&3Z6bv@z|_*EFS5{@p#in#m{i!=fpW4j~l6Y?01|W&l_<9J#(Z|up@E`-XY=? zdXH#YHLtIEPST1Est`h_&;lm~uMKe_dUZ%ux6nz!!$O=w4-Bak?AY88UiIM=dfi8* zU{~jq>xwu5PxCnVhkc(D@H!8t&?`Nv2zUcd`P)EFzymod9=rp`&uPW+cqvE4FL&a1 zKCfy*=%hUAq~J|7E<$gkIsISZBt2KjDR@6mRR(5;8~I$}Cmxzp@vEG8JYmKK=qWRm zvf4?(6Jwl0PmQURbxz7naL)=Xx~U7t!z0gnCt-<7z~gqR0E}k2alAgrCFm7GmGX|0 za#@Y)2|_1jlaunWlY-Dm`2Z={43Z`ud#QQ3)UM$TaAzgVPiDSM4?~kVsJ(+Ncd+(~ z?VZZjhZJp15$6yYnK*hIr$qbPZ`D%_TCoj=+&wdeie`Pq)Ys`w^CBw|Hc5d> z^RmA3v%U(lz8d&nFt@2jw-PEw*5IsEezRGeScuK{K-yBt5#&X7cf zuY?*KjyD$bl^PEJ#8*ZXUkPWGBv+H0%B|+fn@I+ehY@-PUg*hZ1T*RI89^sW;?{~< zTjgDI4^(vf4>>4uKp07!MC~KjIjybYYGRkzl{j-u^sA%8G=WtjPZf?M&iFMEtpQG) zs5TWaiP6b@Z@AZmO_KJKemllyu@ji!LSf%6Z&?#0f~cl8h<%X@hp{tRuA7G8eV89?CLZ0HUhI>vBT}t4HzcV7j4+N*r%)dfSfH&_=hcDp#D0rT zpo3u4A}{V}P0ER{qWD;)b!1L_lH$*)wAyQn2SUufJ@M;!~ z7Y$0LPgk7Dpu>GaH>;HnL+F|w)>S$A7?zTr*3oF@+@4lt#T!sv4<#-&u(CuxZi=AI z4!@xAodeXw-m^}FcnWqkFUeIsAzyka^Ut2vlrRdP)5rQO^Q>(((b~)iLm2O3jNK0~ z!ijGPg}h}*>r-k&tirUHtv~7y!R%2>IG&>j>-kCXUPG*^BfWgEBSD2^Y^PRv_R_Pp z6rHBB?E3InIac-R61%;B=SFK#K0L%4djLH;4U4gOD84yy+;bwFYOSw{b zI!eu~p*sye-`P{QIOs3?^|RW9kt9#+XSHwlZ3C}%RO%QfDRCW@#U@WCNn~}uyr0#& z>K}N68SY}pxXWI-r3BYwcuAC1uo5dke(ePxsW{l(U`P`yWPX3E#qU;gj-);j2Cl#b z$QU@HVK|i5@<}FW-^Td^IZzQQaC6XL+1CwlKt%~iB-Hx}K>U>qj}GKcoURQr_L) z`h$B&jiT#ND{nWz>Z(8fqdakdb#{*%=TZj%ezA?8)Uj|J=I2@x!vpqBBUiMb6NrEq zVM7=!OCD^hejZ@W1$NFIXmx0LnNzH%K93}!_buQN!5yCs*FA}+{X$O zkXo|94AsF)K;9s$sIg0sfTS)#l064m2hh42WX&)iBGKby*~qq9n|Jm_g>TCKwpG~% z#*S!=WWeY#*ncby?8bD<2)_^G@n<%k)c#7&w5^V@g<$L8;VTrEZHHR0#*o8?T3v9_ z_NSrN(1`r+Xoj#Rodnf4bsa&%nB+|KaG! zo4)O4UxpPJ0||716tIcu`$tFmXq#n=VpS#gbOYh_hJ8pby;o>A|t$u64Y`_!b zMNW4p2Gc}A5(EzWFNj=CO;Lid0t8PzQ-Ubq#>yJ!c?R0;+9aTR;)2bxf0A!OP>&sz zmSP$Xan4LdAcl|HD45c#!yr`{UEDE;NcWmeE9iQJglmMxB*G^%`jvbEOoAJ{5<>Ki z6dSN;a52mm)no+@B8nAuX2%dfBqcmN~Sv+To?dWElrh@jX%|%kTd_JSM*>f{>X`Y1G<+$H6-TeYOrH_)kJAN zXaNyh9eQxBwWyJ7|AzHLX7T&hoP@l)VRU6Cf17n=o)k@^_hg!B(XEAZ#zZ6VI@=|F zTUg7J0~cCFnKn(MH%2qBmPMyTVzCgW152-qyf7Kvkm*z&y)MzU=8EQtD~veqz%fJH zi~QeP0>5A9-xl(KY07Nt9-Z5qOm=3BjIx>3QWa*_kBrXM>PlF4*lrSLAF-Q+^G59^ zVbti|By>M!HwlHuMQ^JUDuCNv%k(@ks+$D#rr$@|`0M8Js#gs!RN>*{qip;&@x0xp z7t5t*M2Ao%_W8Tb)I3u?E?S|vE~RdMt5Xj9o?O7tqO=il8>!4>AaX7ExVU=hH7F)fx=?;UD|*Ghsp{9~{M)L&U;f*wo_YPht?ILH z__tMk;NSjjRkytyoxDhKY9)87aNwQMV)B<6t_(Tq+;YwCvz|y*-FRo6Rb?71jvmeX)Y|*h5}Npk zT3!>Et8ns)XfrwTet5e;E!RF=Po~5p(fugXJ@@W56GQ~}L3sh0_EB@YmhIE#PRs1m z=2kznPn+xZ=ss<3{^R?wxs|&?$|kbvDaE|)X(8m~#A;|KFM2AP*v*p2%3dj3Jsq7O zZ+JSo9Ud++Z?2AZ(B$LKM7#T6EuRa1)vOABZGJxZHTcEg*R89)ud_9;y3Dz2qcyyw zZ{8ejDJOiVcE^_!F~IeX>hLM_kq<3L>cOTD>d96lAA2WSMcF2PxVvmmz8@{j9Jn!B z&71j)?eaM6Y(IXWyY**RP}J>x4Cjf2Zbm;tqur+Ky3F3&)u9q#`jUSNDcNc-Q_#q2`3VT8WIBT7Gss__jhh zIuiR60loKXEI0Rdjo(;%yT%oNal%Fu{0CWL))wRCLS9rlr7pQ z6dh9$V@cM*ZR$>JBHyiuu@q}#T{&iUh&7dc+Qv3gZ~ko!OlbFSYaoLjz;TAl#^4Ei zd6*E)vS71mBG+`RO*VFRbjB(tLy%P?KsdtDpX^S`ERmuj+4pI8qb z%e^*r&-VSV>EC2L0W&Z*bno`BtNmZoze}}DWLRvOSx|u6!uyAWLX(EhNoun*nS){z zS!grk7=`7B9P6wYCj^x&lw(G#l~aCf{h3U8&#^JzK_L_wW#zFkc2KyxdJTEWaj`4q z?MKDfh2no0jM2yZ7l831Vc`=e$6CxiK~XU#X)}&jAE!*OgQWdD_Lt;lvUc@pu>x6r zLaZybvi7uJQjY1{z!PH+E57e+MY2mzR$+f9Jn7`v$qwW$A!gbO8eAkF9iyPnBE*1t z4>?_knGgfmJ!A)v9SdFe+fkAYx02WV(0!BL3DwZd3bK@i#%2*WA(Jm9k<4A zW5Lh9!<})N@ylY3HTl53v6E=->skw=svi+HS1zW?%PJ!?ZXvIoxDhs2W^P`Zr^tDVlC7Bo!A^r zW;Vta!^70?-i=)W4^#hqH&$d=N`1HYgCE3RVq(4ai|p;$-l{hItdrA>t@UK$LsRiK zCA~UfTRk~3AXet%ZLvRSvgf^@(R)nV3GdH1_m0f7a5mBPj_ zF2Rd8&>(?{imO4=WXB##$@x2C2Y6CWc#@H2JCsObw+&^+e;@1e-v-lFKgCw+4;(EH zXTTQgg3rQdhDDmj2XfRx84n8{EC^EzW#_P9Y3JbZFUV=im%@T?%-`B$_LC!`FEzO! zBGmm4wYJVs#R-lkG(}MIar_&yTSh#Ixw%iQv0Q2h#&QNRSV)dB1WSPC8oQ}her*VT zN#jUUtR(=-E!DF_EHwrboe=k2h4M~Ib^p=>BkVEb)wJJvB9q2|W6@MII7UfRS)K z_ew41O3^L(y7p-cd1l%)L zhO#`4!#7=J$noDQ&npzKdU?67th`*>&3kqe@rjqW{(3VPH-#T77#3aCOmx;k1s`rM z9w)bZ2+K0EL@dNdrgsamjKa^$L>o#(Se)sUq>|3ZQ7Q3AL>9FXU%{suj3i(X8|NP| zqLqbhMYqzHh$aJ$#Ex(p#vpKW05guk)%M#-ykR_{t!UMr^TRME-a7ib=5q{oQRB2DivI^0r=~H3&4Og}xQ#3qwNk0=G$>S+6eq%;xKTb)A|M&rUb$jtoeU~XO>>&ORFJ-pvC@S@zOgXwERv3~ebrg>`!jqYKQP|%p z+tx?|=?7Md6s4bCDK?jEJo|wO!-DJFd)XSw#THZ{`@RQD#}i&hU=n6WY(m2jUNWaH)AOTt z4f}VaGHg6XjtrKskqx_x<~qWT-9^!%OCKmj4PX7|Yj6mM2S@p% zI4gn7_U+loiGO}hJP$joJC-O=YIS$UzE8W0;|Ldfh~D~k69&lQ^uxY|ts+KxHY~ts z@a>f!v%#pyt`KHye&b{&W>0yLKqayO6IKNwe$0GOPUsYAc2Yg=1>*Q04Y}LV8eR4D zHg=U!Y%f{oCgB&`U!t`|oCx}XAz89c-qlmIic>N@N{>YOW>3*_)I;cs>2zbB+l{#G zRE$<((1})21zC1-Q8fMz-onB--%BIMW_sYHFxV4m)@R%;5AG!@EAgl=>^XOV{=pS# zg7Mf;t{4lMwj{nZFu^lcmtc^Ra#3$F3dZC=^%f)aho{N?_Y=Rz=e_%hF2$F_hMS!< z!UCOsjUXRSSSyLCa_4^HM9O}AA2B_=@v>6+&px6D%C+n(Mm9k?cC_ghX$1tHDlhFT z&S`ezmnEQkYeHna3XfL>Y$IszkXAqON#zGiFoZO7o0h;U6G5ljg=g98mKTlhtnqtp zNU#Ov_+W`F>n}PVf(RN3!xnJIfLQ(tdtbCt2oW(Lg=f*ndE?#cQhFS8jf{#vSj*`0 z*S2zge^H@N-zr!37gslZ4YsaqG0qPUDt{d8FjE$72h5nQ*_*FNuSyc1hT#V8)rR)74e^!K z;379}|1?=cJP1i%;9X7w21MDu`mIx-)3iWk|UbH&uK{nctX;lR?~K#t=+g(DgghGEZOjIfu%M@}U1sr-X2 zN;EuoZHt5Zt-Fh+y46MHd2)1DZ67viV8Wam$*=SM&|VvvV1|m#Jff){*KWcF<2oZ;o%h@3#X9fyh* z$3FETCU_B6F|X7Wco}*jnPWds(F-X0QY_%AUixf`eX|u16ilI zu~_Rn;g$ez)t+;h=xJ{GFl1ldT`oRM^cAnTadpmxqaxx>sV^;bM?mYV6^n zy;BOVh_8_I4j1JG-;kp!nv{3(I?q)3!r`K%{?%f?+A6V=p90k300XDXkp1}^>_Q5N zs<}}+Vos)z8}kSp_^EPXj8%q8~6a60L38()8md1{k50m-;WS2n_(LS zR|ng8ghZ%U(069LeCG%;pnBWS&YB`rgFi}*kdoZIs1518E=+kj+FtoeDg6V9ak!c# z%(%dLz=E|Dn}VPE#COD&zh;20{?kl}#OGKK7$A_EQgXiya!~|s0C7N5toq)}#*_x4 zO5=5-HQaMC1Eyn{1pxK{7`XjohZcaY26{uR7}mZ)Na{EwF#!|Y zXPh}o6q7TOsiQ;(xaPcnlxRO{#U~{g!FRED>xm)hkiDixQ}%hO-G4lGHEt~qL{1QR^y~*Q2X;BRIo5oK4gB=`KSqn&ORllV#{iD8 zVe(YHZU^Rw1_skMPIfs)R0wz%P~T(tyD@tku$R(g0)y&?J5%=}K?drW;b)RzG@^pz`)6;`|1->Uv~44vyaa~MY>g)V3J z{i|ceuwR$Gk6b!N#Pn_3WS8UXgS5U3+}HKn_R!b*GH?ycw$(e{17yueQQ|)qT9zcn zG~{~(Vmx|iq_{#{>CAq8HFA@)_XKo(8EAsU6HZgxw#uJQ7TvX<z;Wym~TVtqj-e%fL14_@-VM2DA(wXg0ja2bxgaorL;IbM+hQuYR~* zUk0vW`JQU1F9T}mD?6PoqVk?&M2|XWjo7(Y-v9ii9&HNRhniyQtX zFyThea_GFA{Jdy>=2;%yr#>e9oH@>Lz<_Ebnwvm7|5+(^^~2i*J@o+ZF|H4tT=#rV zvGb5F*F7!Tk>4X8FTdRw?>|)U1cJ}qhQf9dUWdGjYkB6AE6#`%|9)1BcA-$OP!xkV zUH!!P&^a;T*K{8-c**feVrmM<`?Sb+uB2T2BU?K?2^L&ej)VZwm=txO0OKqZ&tQ88 z5_j?02(E!vXqo{YKw%?xIc5d?UNGi)&Xww5IjAT+ZF(h`sr213Ik*5H zup|^@ACg>P3}NaC%6X(hL6VXB<=9b`N&t^Zt|z(J*d(5%MtAA-MO`q-yHQRTX4cV# zYQN@xxevdk3)R1}4_|#pjEFa=_HUgA_<(lTN;=X56uKIn+4B54nHFWS4*P9Zy-A*L5hrNnhOdBl96ZynO|p7-^aCzG5#8j=wwn9wlb4lAC`on#hAEih>dkIkNW; zT7|O9L!#8r0H3mfor0ZCjvf!;5x@s=oWi6+4R(0&G&-_te_GorJSsWATyET2+CP&SMbo^4rgykMBmk!NqKg~Jp^r$c&Baf zwFEx)_L}NmEVsI|%-aBNF7q~k>-p#LAq+i@K=uxR#&CMXk_&EGwRZpvND}X|hrKOp z0`C9~d+BEZr=*sQ!?x>>qH&atVc<~8=O*J7ZTN%9z4N*Nk$b=A_QLh0_&4j`!G&ix z>=h0r8xBrQyTjj%>+(J8oE{$r_X0hB>3Vu>Sr$2DclT|QN1y3T#$MOT_k4d!#M0xVs38J`JYs?xb z23m9z+aNKn65G^DY>Py}iE`2eApqCq6S%bpRq)XS(V;CdeD=&eFU` zz(=R&rIMMizx`2+G8ot8O>3BaOP?!_v>a@Z7o980^zI?qu*&LOjcoDlO|&W^+AgCF zuHPlvG{wX~lJCznc39lH44xTSk49^ejle{hQH&wLz>BK68RzccgU!a?nMg*?v@bau zH&wV7s0>ZwNx?kq#OCTd_Dt&NWX%)wXCV67TQ9WN>PZvxhoRRHlmcUjvT_juuOgeK z?VnFhKSQ{Nr@$Hhk@?tL<-_MggzNPsdz}1Eg7`+V9VB}r#n?b?)*^?=#O_DR-yM<- zafqaQMvP6Zk;?zKk5nT}WYn3-M)K_oM6#^0Kevr-J~&eZK}T3E4{s1Jmg@?&M)Lb- z^5WH4NM3#$+Z>L0jQo_p&`U`cDmst-M6I^qo=U6DJ5*`@p$fNjSqsk}G_~*wvG8!` zhUxbyMH9ctCJJ9`FE+JIe6TT>;MzQ>oBCBWr79ZHQHG8hbdVys0Zu4U@OtP=g^ovc z@Cje=BpV>4rdQ$kqtvg4?<}TFaijxzguUwcij9T9PZJV@-g)@j%rD!FK;T{Jgj8Tj z6rmW6yyNP=xnH0;6%eQp-h2R%eS1%gxR-3dLTzjC1n%{>*h@?nQ&}JF?N>>9p{KYw zjX{Z@wS==Kt4s57YX;JqYT>7~uxIFj0WI@W%BU3BWGc|ok8WwtMgfmNCH<5n6~HO4 zLSLw13V0@;~x!nmGWz(pJgmtt<WOsCEtjynryP9E)Ipk*Ev=;*`Lkzis96lHhxG^oJSbXXQ_7RAKw(3mcPr+Qu$ zV^fuW*~)Ar?Bu6(qFO_=^Dd!RfEjf(`doyy=4G>A$LIqw%rotuwTV29*sXjpI|ttT z=uBvBDrAhRz*2z|nX?6B8XWXi(kqNWgcy9jCL>G+fuzHbPr&fK;!>~(WpEO1zk!1{ zigaZLAP?eJdi_JKwJHz(WEBAw;nfxT75YXK@tH-wXaM{-D*!yh&nUTbGltpQgj!Gz~Ihgy5$qat zC`o?i>BdD$xgEM#o`h~_q#+C%f~Mk7pvd1@ZjmXOGHb$8vXhb z(Zu!8Pt2KYSS^Yh(pb;_p2pg+L-Ap$hI20!RVPu~4Z(W>1K{Qznsrbafx=IAr#4OfREw^|yfV=ga~71E%cWS!rWDOBDWM78N2k^(mY4yF zhlI*UdsShjc2~J6Ll#?*1(*F2F(e8R!*H0-7ZQnlzbNqy@{t;`A^jTYe#!u&i@o*W zG`+^957GyP2hrFlV0dIZIY8xd0=y?r)07sh?TxnFFs)_K|Xe==;9B$kxIL%SsVeilT7Cfdf?Hc zR#a8D%S8EcUPIY~p0&#})EGW$isx^41J4^XwMwjjy!SHkAP{)m6!G^Uj#peRPPQ>0 zUS;@^4Jl0x7Jk-~ElI;4QrfNMs>{V8xeJ2!YT4@wkvfT{XcH43oHOwZJ6_afj!>ar zgyon70X3Yv9|vX#*fLEc0+;f{3bd8V2d@z4R(B%hk_cnNPHqaCx^!xtt)&9Hkmh>z z=rlXk)on6&?=zBJ`TTbx)u5myOhwz&5mh^>p^if;#CCixE?PJ!)k(F7vI_^DgyykN zf{Lt|3Z>1T)sID{-~_6kr%nQWjoU9S@JJ^s)%UHDA^|46KAjQGc)R0ir$;18%qRD-Kj6vgp?%NbOT z_!KUNFsW0q5nMv9n=TH}uE`Y75U1*WrVFjaQEm$e&2@VlD}WF(s^y%0@k$GY&cRJd z+Ksi3O_*fGCwTd(rFySlIsX`B1xgbNXpyn0b!^@j)JtXi`I68qkeMLWO43AKwu$!@5- zN~?L%E0Pi8k?@BgOfUe&5dd?T0f4aIV*ql6Q2r$s;33P1-fkm-{g_2ieoniZ=Y^RO zqEp1SI2$y-&gSP#<`c4c%we{8D5x-%geV&_Xm4}!g?&m??N>>{)DdQinF4Cumrg*W zLrCER(})`9Z_1b@UvVhCLIHxvCL&EfR%(^L2(9c z6q=G_;td?^n z4xpYiFoy-Uya8w*Ts@AXeg|`T4p2569vp3C+6ETzCIe61I%sc&o|Lz&5EXnlqFW4r zXwWk}c=ris0WB{QKrEI3c_R}zZ9waTCALKRz1}9tL<&+2TILZ*^65oJ+~2uTh>fyR zHl9PuGfv^wxI1*P(fCu{-cU6dH=-RC7-}5y-Bg`#wKaaThlZDhzu2fTQmmX$GGkOp zMmi8;R$mJSLdrJR!S<;}zIL5B5MRkzqR)OZj3fA0IELu-7yl9xx8)IgQ<$Rg*N<9f zP!#@hl$%`G5n z@d)z2}Plg^K|oV<28}qQqHqw*wNkWl z!OUIIzXZ&V^F(nQ7ldR{E||e3EIUeZdJedF!88DF?z*lY+}!2-OTazr`XIPu5JqU? zjcV{HQ5U#4X$HW}l}pwSZkD)`<^nV5%-n8~V9ER-xXD~_gC~-@z!h2Gro9G}={+Mu zD?fKD&h35My9M{N8-n1L=YmUT7H4~HT^G2qEO7a#qgaDBdj_|bT+(Z6_uzK?TX2a% zxqy*@HxXK5eAXHJH!;o^b?_34Vo&h}B6PNqpZ!fV@3t6Mfrh(QaVe?)D%5WYXt`$ln))@{C(3hRUPL1Fy!;eHm}8VI&UTMt@Px(EaqOLQK* z30Ig>zJHTw=iTty&tYRvFlR*hSPIi-p%`B0`-0gbnEmq&*aY~ElPTO++F1}Jd5eQc zwR~WqNTb;e3t_e)`n>^ zwmE@bS;TweVcdEqv0F7pgEXjt64hKn<^Lcw0o5iC!M4b4;O{Ct3pvZmC-Vq!=1+!@ zrX#fiwIZuA5?OIXI1hV-Q=$S8BBki8@g(}kPD>_rQM_P{4Z$`>@a}Bb6%+w}Aqf*N z?DojYa0cq28W?V*p%Ma#cIs7Z^AVGo3UPvUyCI~WW< zCt?azgq|CL7aFs3L~ividnMt1FVuB(-v0URNaI zU@fGeuFh)SjrAg_`C5_Ge62`ozE&hPUn>%EWWl8RiRaVRxKi)EST~ZIuN6tn*NUX( zYeiD?wIUH$LmJ6-wC_g;0jM2I5Y&$4L!no(TLZyRJ1+sTj`Cvsv98?AGzc7>6-%Q~ zJC=Z`9ZNvejwK*+V(rDTicly8?Z;bV?eL?!U7ZRM#SZ=#9+Y?xix{aUo8KC1=0x?f`#^v zpaRm{!a`rFUL1uiLmlfufFmGQu#pQK&QX0kMDz-epdu>(Upsw7;9#ArMHe_!spGP@ zzvLd?{hUc?(FNqHe($g+0&et7wT-8R&_4ZM2{PJKzYT*!G?v&@C`>@FBY4On1KD;c z(F-JfC0#n`WRU0W*SV*69~`B(#77MxcG){$mcY0m3+`N%jDYs5t!`O(T&d3N1BSX6 zMTh>y>7R$`r|xA^(zZF2a*#rf`nYpMp6Z6;GN4?$w z)XTjf$(_M!mTAy%=botioJmr#@Gn1dg&G0WBl(t(dNVK}?y%H>dW3n?x&ZVlLOoiV zu)_CHFZY}k!N~Jm$eQQ#lmsC}8+XX=PZ9)&oa~00>~%UqIxbn5lzY&tkB-#PD7kbb zsFurg1X{UtJLl4o;0>KG@2O4}@v8T^OBTC%cZ$J7Vs^$PxXAz=$vyD}CiBAJTwatt zl`tB}A|o`H7eWT_5)s(vdNY|Vy2(;zVW9cUM;I79DiY9qdRNDlvMium29|Bh?3}qo zB3j`M)HE5OxG z@W+L*ZbGkck&kpm0Sc0P#^rfcO8aUPD5t7u{<^oKwwTc@_l;o?2RR`jA#MZIaH*C?M=HSV zrOBZS_!YNe1s>l{5*Bvw5|XSoHp5Z~RYjI+7sMp2X%)_Ck`!yub?8ocZM&a# zwd#uczF%nhbS0ZSGp&_}m=-}K4>V?FeRxMAYuli*ejX-qaZ4tYxM#F)Q9o&FK_`8_ z-hPrKB86~(lcd^UYvnDn2vKsS*qnGzH0C`ukj&yHVYE}ey|=$SXif4fk~^tU#_+X%C?|38DAdD*Y6O$Tv!(Ru*~ye znfdEs$vsH=u=%h+^~@heK2OTOFJf5UU4(IYx+QHNFqPHqM|@cB&w|B2G}JRLd}dYS zB4}LvqpJ@~O^{9EBdfgNPJdi}F7f8*yAlsuzEnRQZ23iVlzUF~zkOI{1YzOxYG(Li z(NimcEkw2~3!tzFRzgA{#9!&lq0iIlHyL{n0i>)KQUg z5WRZTBM5f+?*EC>R_-p#`ok%Y3E+jNX5Wz4J}nx{s(VD#%T4#;%1jMLYCbv=zRKh8 z5nZ*rwDL%JfpcgQyWfWBhH~kUOxaLXkP3nBXU< z-g1vI+G?9)3wigNG}r?-gL8Sr#}Zz~v|;*-49do+$wvaR%}=Cwo+)GQ>hv?>RN@)i zD|ZGo5Z^2nZ4dgQ3}UdJp$6#nN519ad+I0lJffKX(Og+s)M0DS7Z_vjh5x*u34Lo> zaG&TjhV09Iv+^e3Ejr@F%pxwjyrj)9eub&$d)BH!F9`Pf>=DnwFUAyDtG4p4OmZ}B zm@@CtP?e10I(WF2J*jn#Yt~fyqzBhQSu>=7Wy(V{luNVx#Q~$u;8gkqM46uY8EZ`? zkrG+65}tr!_lm^cnoqtNYWZ@`d>+@{F|Bi51RSMBd?RSynElms_5-2|2*phgh%#l} zxNKic6tHnbT7n`X89crLSX6ZuG5*U-Q@GOId3&urKY-|Ajk;E#;asS-H{o zZ816?u$qHmkZw zCv+A|}3TpH-_QnX_SP$Bn!w_Z_CNX)EhrzaFd`aa}@`1QcKE{pA^jw`k;lw0^>a6TVt=!vc~oS^0xonjnU+e9=885+sS|l2+*4Kdq&Q^zpwv)T0^dld|LC;Gf;=*J5I&+vd*>* zMMjvDBwk}n)vQ7B4y2a4Vk-&f;M+LB&D)PskC{AD0bWw6 zRic;+O!oYfNreh>8nKl_9S&8#yYJ*v>YI#p{!#c8xg&PiG;N`yb=!n#q;xaDIBD)R9lYceraj z41d+G@i3o<1M(?%=O-Pl;Lg7r9BYnvpyd4@(btcAa5~&tA>zz%5EhT%l|7UP{&cyWxD@MXy#)+xA}lSVRvUu zn7`fr+6nUxP<4p*HoqgvgQ)>9FM7UEhur!<0(vr;x9+TMbKK+FIM*r z2A(_#oV%93Eh6&v4I*)@(hG}vw-U)HS*-PQR6+aMvo%r|!%HI{5%o>#B;oZ1t@d>q z2u7YVO$d8x6D&n5cvE!n1i&Qr?C$dyKJUSjMejfcZBoB-9MIUf1(AhzNBoBSq$qJz zVY>!5C7@II(|CL$MSBdf8o383JcY6RO>qR>27B8OF%(hs2aFcCMCEGna(-^z&f>D_ zVc)(RAq2q>yyn$+MUr0)CyG{=o$NF{r)-3x5ttjJ6k2LSqEX1{P-==wJ%O0 zjc6(RaKhrSDBDEaIUn+g3MbumdOx;Wl1IHQT2?p%maBpkIGSc7i{X~YRVS*mM537P zDV;W$J=5M1&0@qbentGBOuZw{!wGBdJE8(i+Y|4ICOHyppn3a-K89O-X_=6P8%4)b zk8M=KV2=Z)>69mI6dev)>F#}D`%!oA3){=wy)R6%;M~0rxTR3p=S^7R`pQNzDhvdY zsrN-CV1DvL(Nv!OE?zadMlN_)^hm+P##dUhmF`_OOs-p@ge-keqz27Yr*8{re5HF3 zXOMiHQ52&NkXZ14@q6M(K=Sf?kV`T^ErMf09u|032n}hS$$pz~{GY0NZ(_+zb_as> zJAIV)TBVI8=%b8SS$XTGU)(CoOn$eST2=R9uqd!Eb+5*_Re#CtwpAt~&u{+4t+d{{XG7RIL&{eALAzZq+9zyB%T5BKv+=U#nTz#02Pv57FxPeqXm{wfYON ziO-g&Z285l@`*F~5nA1>CX?p%tzSE@#6QWYAJx}t)(G>lb@<1SVt=c+vj%AO3wN{E z>@8VS?2E8=JJ@`zUH)+n08C5rGpGC$?_+6OWX&gVCphhEZFot1pr*lTF&uCyS)@8C z-<5SU>JwkUMhZv`a2u7dmyH~3C$&u!JKl9x0E?VJO4U%wW4-w&3;0)Mtj2?mRm^06PKcbb#x> zgY1^!6%ZOY;S6dNi^loV|zTmp_V=M$HHZk!U5#+SmOv1oJ{~qsW$K z1C`KGM>^9E$hCTPiQV3Zm`Ux;J25@efo*ZC=sm1%zSpGD_Jx8gZNIQD|F5_#d~#dO@ycueYlYB4SREsIIc zipEpu?*q~JF%_!ae>;e6wWC3kKSCkdBNjh`R>YODc!hgb^QjZ@`1Bu9sh~(T zX#eP8A}?5`b|^r49Hjb=2_-vfpJ_|Nbz!zmq(_2fm586(+QSJLMv^`G27(-Ld+qRs zuw29sCb;pU<1iO)zt1k*3_DB|g3AI`E_@wG&U%J$++ojSQh{g~esC3pgt-iMKnEgh zuL4MT%#W8pG8^pAK(39)JGNPZ_noZ7b>VIV!$7KRl}n6df;oo+ZvP#*##r7SG6HkUB{ z+&CWKKo+30c)SFiB_4uY%wng5%QTN9cJiuBLL-|AFT5^-+=EK^0Dwx+m;uJ?{vUg9 z0v}b8^?}~o-RUfKlQe0Tkg#+T_BHH_AY6731r(QYTmVI65fISP88s0>K~PY^LX8p> zHDJ)7(V#|&iW)UQ5Y!+b0i)tf)Trn%2=e}?s_xRAfao~y`MsYFl{&ZT)T#Z{sZ(2c z8avy;1*;I-r(?~ru4K{?bFUL$rX3(e7a9Hnub^CYpz?tCv2YuXs$KQ`U=Is;4CNr6kQyW*x!93zFF+Vu~`xhdsP$V>ak)+rbxz6|xxx zJHv_T48#;4D{9p5$ZoivAOR;uQBJn7OZP1C{Ko9zc(ehJXag96mhcNwm}|o+8hf;A z=^d!0WZwRf7b*0_}6 z+oo)2ds@{6y1b47Ljuj|^xD@kFca4?Ol-zl={xwMW~>bw*2ZQKP4DJA@#TjKlwlgE zH)qXz*qQcTfkhGPK|IvkDy%Y zXqzK}a5t}L&c~B%o|H4D}MR&Epi^=-C{K1y&QvIExBQ05!j+yJvt=J3J)krV3 zWzH1@g26D2RnDA#Z|GR>cGg&~-#Jbx2Qr&nm- zsGdf*3SrlF2U36c)skUhDu>(hL$UHaPLyfPpur^*n;R?voKoIBoi15uwx%hV(MA&upYtA|)Xo$(|nE zZb1(mz_*u}IJqJfVt~XI%OB_!xNb?a&dETmrZnCgh2BJ(e&}^leAHHW+cs=A>gd5X ztbJxS)~E5pgLx}#oI5n$keHrRADVF7G9M6wVz$@%<;Ht2kcFNm3Rs4ZLe>&fhI z>yV+c<#FxUy(9@e(vCH==!wYp74uNe zXX1#t&rF_263VT~FF5(72vcbbSeG$!U}vWYk?gy^&YGA=Y2EDyTW*%s&~ zFX+1Mw&2W$z!y>d@b9Q)rbplR;Ei1`vA6}opmw9J+Kr;x4JYFgV8vEy)ULS0OI^Pl zC(%*6c;`hH3r}nhUjKhe(XjNtP&7=4S&4_jQ9rS~IEHoRdELSKR`T-hY)HIY?XZrg z^YkCC>!~hDkg>;5Lg!gMSjrfy=7jM2^ao+GwZj}RE>V>`%z`9q zTwd-4QCs>F&H7Le*2$jdnP{f&0n|}~LwLc+;iYCD2sl$?6MEbzXJ~L{fyfn@S6Hsx zIxQgsNuH5t>fOXyzp&}GTdPItOeMwPDI(lmF4S42Jz4LO<==>L*DpsyAKlIB5+n0H zp*V~j5n5kGimrF?4a86griP(#WG^->-HONjNe|%(N$_L0luwc--`I;a8E@mYM&H3< zLa(_$ye8cG9jXau%!H7NH&tX!2&E|TZJ|g`>s`Ahgm6n3;rf^1sM^Syz#y&vhMEXp z2eoR#m0ovEgsWz7pOvTyy$|a$GQV2Xgjd!CaVvLC{H)`3v@oHBG&iay=;i`Z6C`Hb z&Hn*%&2e;7O2kl;(+kGp#0nS;zCsvT_|1LU6_8vG^kuX%V4fkYHPX`iiLZ&$dQDns z{e|PL(mDXkbKJwz2eAqIdVbp=)-}#bkNGX%Jcy-R%%9rRecz4?@)Lttg9(_YxXNaW z2C3%X0W=cP)u^I`m?T>^gaj#UL7^6ai0>9wze8=ASthQ!b7qlZ{FyhHr8)ia`>;x- z4y(#c+?`4a%sLYE!vJ@J991#B_jA$&9i{{=D5-c3mv3R<1*dS$r^TvXn;|ZZkof~G zC)hG!cz>o@2&5*=Y3&4?;W-KK(sTtxojF-oMY?^vZ0niMrQztlr^<`Z%1dNc#PUYM zP@+{st#DEd-wb0}Bu&j8?nqNYOZvcYHaaU>&Kay2kBk$&j@eJL3-DG8R2a?Nbg0;JB!Y_iA5dDMf&F+iU@8wNN=@) z$Vr>!AiYaJj|go!NbiczZ0~p(xpLv}_F;v5$eHYni$xJsRoRHlr)6j?N;B`sV1Ddw z{a7RG=ug5rvQ=ZL5Ie=K=$I*C3-nv5=B~F>v7g!0hRZlCV*I5u**HwBi~+0(thNJK zKYd%#RRdUk9iRUg$U4J%Y9RZ&`togqY{Q=!$eQx&P4;x)HJ^Beo`h3Umx~}RdFK(B zd~GZ0H-dR|h&}^Gvf;4q7|D9U+B}k-0qducY*0vK?8v81#%Alda0*Nm+M zH8gTCvvq5V^|g<{Yy zUhd5LY4`udXv}-8Gn(_)&u0Dot3TAu)gSVxb6A_scF$fBFXSPo_d9Z^I?IY${h42K z4(r|cXHN=xCOW04wM9;?@tkwm^;z!c&2z2i&CjKxj$~)|#*18e(}Z|P<3f10ASF_( zeJ|B)8bDz|BqN>E5?ZcD?6QNZ*jbTR&bC5)#TeG#Q}a6CIfjkUALdQQvi7h>jAie^ zsy~jk)xY9rj$?f~l)m2taniIAkQ|w5QYNI~FMUXhL;!~`eV;!zjty`6WVFUGqr=-s zbnewd5+16>e15wYcp{qLdX3SjnaqozX5JI;R*wi#z2CX4ak5>2Py%3&Z1xRwg`5_6 zl3xSgi;h)jfhu)htf;Wu5dqo^~D^t>4dQp2wzoK8WV#>w10u)p=}*Udp%5$BR18jc3c7u8*cUom?xH zm7R0Y?xICw&S#J4`V;)?3!uVzf+t?c&ggdl_iXxA2+~R1xmOE(5`|VSD$5GZrih&% zX3aae*`NAe&AR}&{ud*;g?l_*it?k~keKn<4WGt*{^o^X1KGU#Le?^wL!bl=nZAMp zcKUd$i`do9QDdJhN;G(CXH<54-9;E`Vo|QbOD54GAjxg1w8^nJG}6bK29|qMSW7g@ z$7q8ru?IMshwexXJnth%(#v4B3r7l&hXAM&)(ZCp*a6^ZzFkIjoMIMc*+Jk;K~_0& zthIx{(Oe#6UPcW036Nb^K}siTvZ6T%3NCcVsTlTdE`+$R|{+ca5QUf z7rBC?3J*t$@el&2TpfPYDh4>3yY7-P!c~QUD}|_VqNuV%z|kzrl5xOQg@7xCC{=Nw zsCU^R;Aob|i%h{$1%M-Kf&fo7P1C%@FO2D^q;$N3{!~-Cu!&uO+7cvCStXBB^@B+Q zUDRLJKmrvhgfJ_gNe$eGU6lZ?942^Ioe zut5YX0hlYnGJvHLtN?h3z%1zb0WW=8AlCpakl-r4lRzxJQB|0N0fZ+_EQ|W|{j=2)F{y zw}C5xS{1;8egxG3k_k8l=aFYac0G3J+8IV~=227;0rw9BOHnpuIYh76vZL9n-ne`pWdXAO#RaVx4ud)tE zWgQ{RBGF*>0(w+*Q9QhE>;Ms6(c|2vAmJb^XK64Ge(Ck{U*nIljfor1q=J{Ne! z{bgFnY?PR7(6I?Ir0WApi=oOYWn?uE?_{vUBVeMba;XJkue( zd>t*7KO}gBYidYn^9Ks)zIP#I#X)9*&=yaQ{J=zZk)zecl9G9BCkd?hpPFW?J{+wk z1V5P^A}9~eggoNKQ5+H$kw6A4Ug&9MYmt;pSrhH#t}dYxlsc7L@I@AU^Oa z_OPSVJ%%+6tm0uu=XBF^9X1HzZCM@KFk5dPuI!@9WvoaV28fl2-V=C>H=oAN=6|2YhV#_v zEF)1Qf5kql1Mq&+F*`poP0(pF9ZN3{@KMuQ7fhByQIG+S;_HsVB=UwA>4XJIxPro|bA$a}|Kn0-6p8Fn5s+?md=5u6A?T5@+TDxf%3- zcFQ7fe(5zV*|}Eg%{UD6P0jDt(sGI2Tc~aERoAd4SzEEk9<4To{^AV<{Ds$K)!E4ei)xd=+2N-cpEvWDz(cvn(} zmqWPLN~3wqBAj)^p-iBnOknlm@N#%hQihj9xz^&N(>}`LoP8nTI(K(*Wtm$g+3b85 zS%>Xg>trkPRf|{-K(z=0ReA}`UJ{<(ZIUp&ob-mXeIz6cVzt%u9m=a5$^;%-8cun; zqzo^Ia<~?svbfeFoa+!KP$ikb!%MQlDVIyi@N+1K^HQRmZ&A*3C=;kC6S()TaKbwz zVR$)&iA`eOK^;wA``~Jz@4IR*axK7xwo{TVaFeBz3yP|^q1}bP%SBbLz|rG-S|~}V z&g^jJ2a;^5n{1@o-(yx=#c;?e1_D(v5Lg(|mp_z*;iZZJ{lC^-FL=4oqFm!pCQwl( zFz>$b0{%!+hL=;o)=C0$C>9bt<}r)#5k;8z55bBufyY*aQ?8Jd;pI?{Tx`Jpiw&w7 zX9G|jgg`}@z^ePh3GW8sEU<9+Ih4a!5ZztXTxvzJ$cchL6$OFCk62NVpb@czh?Z-$ z40Dgn)S@hR+>uKd9&?2i<#H!V0#%d*man#=ltac|Nf};Fri9i?HuMzP)N&NzEOV7Z znLtIEz%9Aql=n%>@Ny_e-o}n@uP9@-ZC3<=iZFqj*4Tta`!_$4l;P)4j=Y53Re1SU z6nRb*1ga2vHv&0v*Lu{;4sRA(aThpo6R6@Qu>3K1 z+>sm6UHLc|XJ(PWfj~~&Av>;6C_JrZu@(0wCvE~&+yow8>yA6kp(Qq^yW*~r+0H^B zC+>6yKRqJuEmqtmPTT~lxCvbKggfpGhgL=etpbu z_{g>JK@lIhR!Pu~?~sfSSWbMcob0u76$iy{e(4$(T03~HU3i4{Pf7NWn`|2gy-fuA zzg$$?I%sXf&@k_>mSm5($+mOw+lAp{oe2$Al+q#qs+0&+r9@!ylkSGl-l5e#g4Wk@ z;6Dg}Ku$?@aPT`w{1reEQ7#8y2|oZ;l;m2NXGJM7zmb`OmqWOtLs(v)jtvjI>5Z&G z7HN?&g(}B7gSfcE%*T8J38PZSY(Z)cFk2vZa)X82H#K^#29tjwy32=ZXwD(AG3NlE z6WFliOzB-~)}QOsnV7Bm@Nk#bhPV9(c7AT>6aInK&gc2V|6tSg!#wsTtQ!^bb8nId zrewZ;j6-};PM#tqOJ^4VO{xPMZDBl8q(rI%1;}rV*sda{gobbn88o5BLM_&L#17Cl z9^UX~7C7%YJRu;aDzx7K+6&8#22hn9mUJ|Ff5R@05&LZPz4cIfac+MLwqSgEmSmE~H*Cqu#F8E76u zrxgtfjovIBEIT#9szup7`G+_&8%@Yr?{t-~+*@o?u;Pb#aARp=s=wLPH)P#S92kMM|I?{H@^Cc5s!Nsz`^ukq*0T2Wotv zC>fp=;V7(jIWZC_viTb~vNrZ^S2GbhCZFrL zL9Ons;nIK4Ky)G&b_9p+R*>gw=tO|6kDyM^hyR@ouZI_VMTf=#EG!I?^Xk8|Ce{`* znilf6{?5h=DYb(2D1PO5N#$KfNG=!s-zN_C(~!Mn)z`7 ze_B(jnlL3L1{kT{H5cXcf%93Tb1Uq~R2E7j9q7GeSrt(l^f6XpE{&|R1UMiF=@xQVGd%>Zbw&lfLbOL>Fx{_aB7p_8hL$i1@I zCTe~ii|wPZW6+^sA$x21%_~_ae(vq;{Wgzy1M|J~{+*WYai9PCCf3mji7mCO?`O9- z`#N9eyY9f*4>1j-M2GL(3oH1?Ne)0l=)?&P#B|akkmM*B!>8UjI3!;0z$SR?=$Y@u zE>+q<0M$ADjS;KpL}oA6t3!P0BGx57%$vWvh~2H1^S>-+srvi;5@aY#bo{i6HtWaB-06%XaG)=|WF*YVLgYzCiwH%_}O=Zo)R1N^UGQ2;x5Y93|{ zqpJyC?&YC}S^X$t%csWoOMKpGJxjfR8SB!2?PQEz#wdE&SljXD(w+CfH3`^gp}%MbiGA zEHnspBh{a%;(DuDlkWM^)F4RO^2`g!)rFKQ3qO zsH?;ycNMaKP=S_7&{2D$s|>xz=_<9fC#v9Ez-}Y!qy=@A)%UOx)l2Z&;wgHG*!-Ed zhIMrJl2`9#{aV?*BwT9}(M#}xy>l#?vdAYq%9@GRt%=4TkG6Qteawt-dig%K#KnMO zPr-l&hx4A5b@QH2Rg#e3+z5r8hs9R00qr-ZlWtjB4w zod^GGwnIC^{9-GZ!*=p@Vmo^{*iM)?Z@h{v1lw7?3T$U*5!g;pmn>(QVmUjD_CCO- zd!k5!lf1*?FR$i=^BT*&`NOP16v=m|Mvs(ex#GIos?XM?c~d@K}DM@K^NQE%%|o$z2tP+&KtSxmEX#CO8EXYtj}q&od@Gi z!gi>2YohTJ+gb7`*iN|9?nl`r`azyw%tr8KkFjg?P5k&{thx7tXhwS@8}XiN*x1sFb3 z963%*J7#QVUHOGiu=7XRVIaOm3-QgK$b_$Ghn=Z^DNbCGVN0td^6~y9EZI56E$C&s z7iwvgV0*O&VOY#qsL~)D zbh8!-ut-8(1|pgvC)0AagQkYN=^W*oI4F{p?>-e5mP4`ZK(r&*GFYf74hh;VDKfW_ z%MY$b=gMt}2oUw==2VMRNIWjfLZP8<`gP_v&5l2WwSm*gF0Bsm{cp3L4g*jr7rJ{& z3Mu{hp$)8~b2;2yqAG3alJxGp%hT+NT0~k?f`|yI%K65pPeFvV-bF{B#)f)G2dxU& z@HDFc+|9w}9;E%|cNehsQRUdA9mCV!W9huIfOYL#?sdQ4IXu)Zuq#?z=pqu*9^vFf zHzYLIaiI=$NS%ce0_A-4MmE6NlM`0&cErvWA`f=OlQJ93z`YEp%C8eeL|G>lHQ&FH zrJl6>Iul02XW0c#X9e*8O}t?y%CbYpOR8RcVP!TVhaQy4Y5)oGq5r zmk_A{`Vi?K3R(M;Rux^j!uvhXQchA;cI0(5laobnhoQS!RDyAZw0lX@t}kMV;u;ol z_g8;P&A#VZH)k(j-Sy?%xDpb#t+>a$NKQ47h+h5zYthzD4f;nL+@?rxp4K-b>dqwe z{1@0&&OJ~=(f?zo zI)kJXs;1&K!VOPFMc==R#W;KsGkVhIhD%pjFS4dI!pafp`8fXMi>!5Gq)@f*Mb^W? zx;KtDeTgMo`m98ERq2DxDQwtzW*iGzuiITWVFDW zQ4x*usW@|Wf9E`|kkW>|%$nI!8dwM2H~MgtlVKsH-S#pYHY$JcFm=!3&ng8PzcBdmKze)3sa2c;IK^Zc+BPjpO2fxZX$vv6XyKP-C zpZzM!_;1B$62v1bn8atN>ek2cGd8pIS``eb`3^^5hR)&i1!mmyNq5SfN?;cBNMIHc zFqN()FgM}LOISxoYA&oTHHU9hij#SOzL zJx#nRgcUDkLytA|<*2-Q}VhFQ6FQTQ8ST)_8Hh-iQ3$*I7T~ zqiEJlN#P6mgRirmN?!mWx}p7 z$prI`Hp96Gh`%J5^Vi;G8IC&X7liR=NEpXzaHKG9jc%4K-a!kvWpT9PTC%tr4^tt| z#`7ilEPaxl?ywA=u3R3O*}CL%nOT=CZbezQC|+l7)4;k^+AUH17jhfEQD->+=i98k zGjK$vJA+tb*HYHS85!>r^=M1wB*62mQnyqdNkja2<5!#d+dA?ze$u=c^?#N6Zj}v3gpBPA~&tXh1xmdcm8{B@jI+~Z5gQ! zDI#3_j?5zo{Cq$eYkty#qRlD%?`3ZBJ1p)nNnYhkY&OwCo!sKLirE&wNvv1sox{a% zTCzC@+u)(Ej{z*V-3?YGhqlTI=kA$9ALn9*5KqVT1*12-Of6nw4#LMU%Z{A zOtA{qtUIx5;yLsfyA9`M%0jy`UmcCOWeO-G0^0KAK$@-pR^WeF2N_fe-eosho&5f zTTCU2--pCaDpAAIk^)W;u#&jDbvUUvPy=FlGh_yIjctk66Zo|k8O=hZ@uDZ6Rtd2K z%4EO+rREe8`SUxS(XqBfZr|x*E{v@$k*kVhqT*;2>#HrpQ6ajLMTl5ZP=_3M_O7}G z^<@6gF4lCM)dWna$+6MOTp*HpxA=P$Q)Fj>?sVn%*bi9xuaMto{u*FnXE=<8+MS7;4Dol7ha|sRqI(9Pb%_zh3qE9v4Y6}Z$=kfwN9-(pFTd?0 zCLV{~{t-)|N}-6HH351_o20`iI_pFgjH?m+a$_3~Op&9w0WMuLvv8Y}`O{%7u!nc5 zz~vuL@@W;!^qjzZ0u}6f-eouI8oL*h5mNv8_}LXKIf|Co1zHpS_-@uxpU>ah%{Dp= zN^McF^H0g*k9^Lm<2um0lsK&w*w2^kVU6@pc>WixS<#z&nBS|v%F8}sPwK0S=Iv)! zc=Ua|;sARUuKXbD+J6e&Rk1+53Z?Fs@rdiIsFY>9;@Aa1s?4xkWvSiqjd@0U{?0+x zJuHzl->@gSqN%5Ripx;;@yf5+-%pN7`Qjf}u`?1Oso_#UnI~`H6aLyaI5W1m>QvEK zfk*25CHg-;W92e;r~~olmAW1$GI#f%I(KJ%?$$-3bJ8x6T2=5v0bXP%8$8z0gONwef{5y7|Uc_Jfj?IbNLNS9C z26A}+@7dXUF<mReKA$MInn6lXe1twfev@_uuH$zGj4mNN*I14-LjDqr0AdZq9xm?tHydxOgJ=(zVUiBQt|w7K=hQPA z@uo*u{cucleHW(4{n#U{zoYu0YP6?2&Y*!J5VwYEP7xrTlq8Y$_l~e3{p^H?(V&d0 zv0oi-vcAcKD2RnQ@Qrwz<^)V_07=<{8IX zT2tau&_M|KyFOmg5~OSZjx;VJGL)q|J_lJogourSQBpdx(jCU4 z1P5FAGs`6IWT=uE0vn6Rf;-`@MU>2rpCxySIw^M&J-IB|XdY9H0b7h315dD)7LRh) zo&=AgYbqmn)WF6V(N&WdoxR`$>*Z*v#O_F;K1Ax;ppTQzHz`8Z_;zEX*~+fQO8wx< zQlm2~#_b2zC}%b`#Pyo89CPD%XB~IGtN18&yvA#c#2}Ze8}mFb?&7bdq90{?jQT_d zw{ejsdpjTFi6Ao|-610+#2qn$%vT;`Uev*znyIfWGur>=qzvJ=_>6ju6c1)XUx{(s z;=*S&GrEU$J(7v2WE@r`bopzVVGv4+GTMi+Y+R^CEZY{Z#7KCe8MtvrzY)(fnj0O$ zIzKiIxY0%1nb};TC$#LK>8{JbiP?j`8(%b$hJK@i!xV8rtBWa$*@LJcc@3tEgM%rO zBq(~5&C1(_j5cnjh}no_ihdVU6r(9aaJ{*5yWC)zbw)J!y$8SQ^rR*bD%Rvg7Enb8L8 zHL->fCNM5E3=$Z38b;e@wFJg3a$}to7pkS~k7yoh+jMEhVn#YvsY2pzO{wsvQ2Yyiq z#16N*guoRI=;(o4{-XmNk@6o_m+F-N_5=)<{6|=I%YW^i&M8QR2^p5?*N8t;&uDcL z`OiJTfJ@T84D<^%rB-bI_mlrdw{YZ5((XtJFxJI(EeWtOZxS?O9FBL|V&D(4b%=q} zf<}6pl`SO(PQ!jON3gVHz$YV0G{((|E%C1rzq7v4$B_X~$T;mzAY{PG`bIZrj1ie7 z@h;kxSs@1YXkhdenmkLqbIQMVoeF{Qp$0}DaM}+V7~Mu%nKE-Q=>mCZ+vue{n@I{G zNsbLzhbE;E&KlObJ&4X9j%#T2a?5}BHZ(~7`>>%=TmD<2c#f3+>Nl#zb8Ok{7v#Sj z@EVf;N)^ws!~HMhzp%)D2l=mevhfS@--2Yxo_<;W6Ay>|3ds+Q=@%qFu|fSbB)Bz96E8?N2J_ubjE++5<2R+8Qtmr-T879$ z{PZ4>KZ&Za&Ejaio;sWuN19Vpv2vFfDVce=7>O=^axwBuM}kDJKA8kLHjMk6L~aac z`gIA5n;?NYtn;*mMX=7gg+({(Bw-Qi3>WLPB*kfbU&t5~o`br@#YX)6G^3rA8H4qp zvJH8L(Gf)Q&;OL_Lz^kOCC864AUR?lZAp$Dv@pr>UdU=E zlN=lHQ7w!hvT<1pW3X&^xZ6r-an(iQk<#Nmr^RL-_7S5_Hr?$oM(+O z8eHHE4oc5%XUZ8_r5;BtBFbqSbS=0b^;nAe?lBxWF>w^bH3*4GTvkh?zkU~gr6riX zJ*2EcU89fKdJ-`^{i&rfz*)(_CM3U@#6y}ED;f6GKamE;2gtvF(i3VX4u~W2CMzkBAz# zm19Dqf1s1mfIrvHm=ad))a>2WF4|m4w}@&Fi(fRhaTgmMdzD3QyQJtv)rU1URkPx? z4N>)n+8cw;d?dq>j27KI zY4y=HN&kn_mgvtC%Jx#7*T}ZVr74`mM*IM;XN`0ZMgH&9r-otzP ze^uqhwW=I3pGK80zZ_bXh24$zze~Nd9`1V2ruT_Z>%~;-y`3`~qNA*tU^H^qJI$qO z;gtdyzpCEdMI2u58@m|oddPYPc~#?B8>+L$EsO@F9p-6WjS+v={OR}j@R~m^-a}F~ z-=}uX2PgH$-3`__f_nd7)qclcRr~y`o<_f>FZt3ijGNFBVcrWHJo`mDuD=OQ==8^c zKrbUXVhkt~yr5K!0b(hQ7?fb_6VHek^&@$KkPVs-ITiaC^TwM-M2z|emtrLiJ9;^#zALXQXkZU7zMps`@eN)8>WyqU3FM7SEUCjt81`p*_KL zHd&sI=lh2mjR!j%{}gIk!SUS%DwfnJ1|fxv8D+F%vhGoj7{O-`Ga8L^IbaxQL>*nO z1L0C{xs^b^UlS>WE~o0i%Ku3=O1v`4=<;W)`Hii{=_5zOTMZLJy^vE$Eacl~8jU=# z|F>-Xfaj)9pp8qAAcWS)&Jj&yq8AwVRUj|xD*;2bAiz-%bL8HcL2q$ z^NY|b%C}#`o=06o$~Xg0WjnefXHiiuDbf^KEh#Q0Y^=o7$vZzTPQb07(IFqyae=?8 zB0s<9LSu#p-zVrBcGruHTTWZca=yc`Y8?ltrCMviv;Xq@sZ?E>bUIT*ClO9VxAy$S zP^YdreRXO?L!c3y3w7$be|4+X9Cd0*-Re}DCDr^jY$kmQ-D$0|tffN}M=PS$z)MRZ zKl58Jv8U6*0nI?@%_NhqQPXMlAZR3$zWdZnI{y-*Sqs&AeD<@JfhTZ&9#<7&9v-;E zk8O`=K3`vAbfjj~^ipHyX*Z)z{K%zlHLb`$@e{F+rTy&YTDnUDa~+{@|JS8;B=I;CBH>ETdQEh8y1xE?UZ^B01GAY>}%W_ z;4l^=6u%UskeK93TD-M^jqk`dIt{{-ciqBO@&b1WwU-#12LC)>Es3?S)%M z#&xTL8`Z4}t|db`0&=aAB@M998xq6e=KKg%aMoO$Kyghr_(QXdfqz!8e8%WBE7%dm zew)_zcdpI|&3?n$ntk=cccdtC*QrI3hi<_RzdyTvqFkprt*-C1jNhjA{heDzSVvzo z*BEhHBSMTlA~fciIld?oGJECtTJQ_!88iND5WkUC{5Ey*|FS_Wz5zSNTp|L0@dl%L zEJOmIYybytFq%=_>o*$9{;c+2Rqf9BTw9U+#}ffAyg6cKvG``$5FFW1G=v>D8&i5` zt1XK;2gQwEkz>lzKgSe^UB9O|>5M7AO;i0lvye=e@Ce0+ls4*#bMWGNF>GL}hu4aP z?pkhpt~kfI(@`qpvVmXHJ7fRtFX^5C1r)amIYJp*hu*oGbeN~Dcm9g7Ph0PdJ-wL= zjk)zvG!bg&pFMmUX__k*8m8RxYwfluI8bN*S#rw$6HL`Iuup7yx{h63@(5xz?{K@3 zr+>vixZRkT)df#TsaK}cu!$3gKk?+Wc?>!Lx+EY=Y@22#9&5qdD{vi_%Ie__4%7WI zwbWv*Qr&z@Wu3{qv+iV)@=aWyaqtdffM-J#&sc#%2_XCTxx;b(K(ARSRqz}f2y z;)uVTr}{|*rPs@-?^)Y8Yqp3z@X!jj^=Q33eCZOSSpy)@du*bQ(mVinwv-;=o0k|Z zX(ay~DD?_TQm1v+u|BaebsA239^1(qEH&CU&h_EQHtyS|?T3KTyV~IDAHe)CON|MM za59jeSb8>v97~rPCOJ|jvBg&h-5=Fese0(=AyUWO^xArLAoqG&*g#d(b|J_FFr9brxRNoYiPezfr|BXAl4JsO4M`Qb`7d^r91RfEtO>rrsuIeX3SZx)6=58Sd(k9S6fyN zazMA@Xo2XIz+yy?_uoXz3R1$bpHsu~6aG#M9E}c7ntF^oGHJK#p@yeg#v8NDsMq#M zAFD*;i{ zB)AGavb2sbT5jyov-y?x80oO?xW_2c-{J%AHJa(A{IYwE5B0ZskNa?f`!k+(pK%es zo>_qo_|<*JYZ7jv-^0sR7~MRd`S{e8#m8rKl90lmIANPqkWX=&vo5UM}534G&En- z@4$52HiUMZBOW&L(oLGw+;QE)8gH7_Fq2(pwlQ+iO^|{gkV1-LsqoLb&aeh0tT4SC4fv zi!|RE19k%b3|2*#DTNSQ?nm^tJAm%E$H43ySkF7HF*58cUd#t^ltv`UwE^69#*j|S z;NBQK+>Y+UZ(n0v><9`E$Wu5%QAWii4qzW&V@$A*3W(#!xcVmKDkrfUwF(&)88(tc+7Z1caCl1ZcW<0Pvctn@-~0v@d)K5 zT_0dK0n%?4ML%IMJ$XS4w&SDFs4ry=PX+&^vIzu=+C6EE()r#zy3H!t)^%(Jh5$k+*3xoMvBeh zc3E-12#ZGbW7yzFpE8E=XSe#AWv%prAI1chdeg*UCfKCeS}@#nuX)=C)OPJ*(P<5) zo`#E~>KGQi7#8hK2;svbU2mbeuZwFN((9XLWvOO6CkoNQ?%CoSlldf``$JmITOm5s zM}k7w4KMih5?tV+2Xv-7k-P|k-N7g3`O;G92AIH;80lz-KID;P`qKnUzel3^gL%Hu z{DXWWGd?eh#Zga)nI6cC;v2X6n*VVNqK8!w*(WcE9X`qHLetan9I4q4?{I8+*a$ft zG!X?@-}U68=z97iMiY_(n?K^*bVR~AHy;6q=6vxZMzc%p#ziDzTqMG|-0*lm`kZGV z@!49>HfrkGMmp0K){nSvwV|GE#IhLJl6toBlGR44B_4{!g88eB+cNk1_4>r*kV|lM zYVESQ-hq7y;%yh#6%Z5+AD76Id6WHdG5oy^MqgX%!`SDUhNdC;Jn<_k4oM8+kT^;m z74j3aj8c7CiVJB`o`GIu(Z;6RHhpM}xXg>(h*ZSv2C{LSx)N1B=!u06ABsVA4Z;`u z>!oxeZdY{Wiw-DacIDh_K}DgGDbGUDg&2^(odpWI8588~lWy(>6z+Y-XlXNKb1??4 z5Dt6$9M&d|?2UNFXl56cjpf<`6uH#mA!ZA{m!=aB77P$WFcKz(DffNGD`cGEH>9f^ z1xRpKIS~&=AJ?6C1jDxl(36WQMzB_@`@p&=I~8^znQjV^Q)}ENq5={(352IO%b{^+ zWRfHI`s;!EM2gr`2n>o2XE~wWDG;kYvZnEJ04-68od}c>*}MjTKnR`O7vi55;I@$4 zxv>#a*lm2`G9&1j@8@|NjWOK&<{z1Dr&-+U1cZ+|**5=SqtRY}jHf+ow6xoq-6d@i z!WnA>QxP}qJAEUB=^9qidwByA(&z%byND08p~)NuYmQ|`oO0l7j9yXABbq(htuX&Ak}dd86lyp6*2Zz(?vkJk9Bdo`GPOf|FqKcB(0C4RyT0EY<1L#xL#;nY`=Sf67>ouXCGB{mne!Z}J2e=QYH(g?MRX5K`PAPPa-(MOoK5yyHq z5%Po0_aZm~ZgugP*;`3QHZ)=m2oYF952m3HK=wc@G2ho`ru*@CMmo=Y#qeh!0cPbc zN(AJ!r7@HsTmp7oS`;?eMnOP^1OLk_P%~BTD9V1tcrNOXEBubMdd*KKs|gLtrI6M_ zXUzpSBY6k~4L%h@2wV&Z07EJc%KovX{1hvrM{8x2mwe`H{l~2$Tr7R!B_p||Gc7w` z_mI{aoO*n^E~dw5!eS%po7^n)C1YxFaiK4ruYTUw8*s(*zMilWU+`V^2j>gO>a1cT zImXH=pZkKZBd(}h^MWtc*qM+Pq}jrU3FZ!7`hsuBkj-9n&miusdJ%xRvRpHZa8YNJ z8M-z-D%C9hL^Hp|-Oo{}C@XzZs_B(@A(CFuce6{hxq;1mY>}^}XH`tm-->+0{rc;C z^DDj^nuJr%LFTr`wXnp&}4BD?4L4I0RTmdNhCaUFfWibN_oN zkI#AQ_n>Eefe(k(2c_(>QWld&T3>WPT=Y(&Rlq4ApXCK~;q@I~{hpEH`6ilQ`;MKdye)K)#FTN3z=gi`x%ZyG@<7dse;_9NgWk#>q;F#;?&6#!f zJZXV%~N#~&E$`R<)b@kKX%X!K!4n-8FS`Old(c-A$ui*_9} zuF7c9Yht%<-TO?svSYWaGJACF-hJYvj=j50n%uF^q|6?@x?Rzu=cGP;_+|e1?9;{^ zQ#39*-q+EycLx9KmBAD~r+a+;riVWDYo#+Z@#}YurmX_>0L+6h5Appy;#>04?(xl9 z2CDp;M*bDB@yi4JFziQQR>M35lgm%^if_R?_lVCB_*c5{>(A7*HNbfk<}ro87AIhV z|B!`W?!wOo{^P)V0_I7DpC|F7dn)?6xwE7GyWg*y+puL0+Em^TO)W(%dGB|p|XK3&kx1dc_!3hnjc>z0>Z7X0fWJj|3*fE5*#@(naAC@M^S<$8M3QfC zp?06EX*=NkKFm&qx=R+_^LMhX}f{< zG0Yx?zn7|Bwvtj8>O7$C1Ii~b`xR;>B_%Dc&-k+^PMt};n;+;CpDc3G9q3jpdjTIn zkb^Lvs-RUO7c6tU!w(R)p$MDf3OnRFP5TUCK8N{2g*{}2wYdt#E5rJLZ^fGr_)CQO zC(OT8*lH`uL$8}LF+9mLTtSns*R-z?Raf1Y|r=*Z_z)#r^x=* zK(exM(+xyX(>lRm%Ks|qpQV)nVG2I3 zRtQrS!ZeAXP56hVO$R(f`CkKjCd@3DE?veCnL20Q(3$h5&O<&l%3}e5y^13r0`1wr zyB3BrHwQK)ZZ2&4`EJhAw0ZcrP9ak$`0p@8;2*Gwz)i~kCM51= zz_%#>EajiA{44*iX}1ENul#RQ{tJ|UlPnNeh>zP9!W{}>kwO><|HXjsRQ^j~FNL`a zhJJxtH0^G{%U~#h88DQHhywG0ed8OT^hBArQI1`DBEak!v*u2nHPecc>SVO#-*xaOcWyYo={Fnxs{lWs{Iebe@DNN64E+|V+&ruh9)Z0YCRh3A zD*rXg|54bF!K_vO#mfJ2<^KfiCt>oGe}(d2C;hXu^#GoN$yW%6fv^Ga(=e2SXJ8k= zY=r63b^P!-6X(u#m(0~@q0|N8H+IIvnbX~V3*bjZ4Zri|&6*ijYPrG><=>^-_|X%u zymIm!6_Sdy*b10A{;bJ2S|nvvRakyq#-Baap((2Iu;tfv{NU^6%nge$fQ(UMdWxl`&_2`G9SjDq?6gQ{Gw=L>ZFQF>l zn3tJ3BQrB|US?e8Y~HqcLaP|dgbd$jD&{Wod`f5 z@d*9r&f`32kCC=gk%|&Er>PB(!Tw ziGu@`u|x%0!K*|QQ1pXb3(if);kuE?_Yr+%aC<_Js7LRQVb7CqMiG2h>YmC6c=sI%L;dR? zjA0w5Q|t|kR_;i6pogb&ASh5e`$N1$b0#Ae&TP5$$Y?!#67&( zjKuL?GxvQy?v})0qvH4DSi;T|5M`C=b^?38-sjg|lNj_ImPnrEJLPx&PQK$>xR>q} zfjw2~JA0S#&&b&YVj!Toj9CarzoKq#;c2rIlRcHY_>S3$jXcM8adQ^zRUhyj|A1Yn z>~h%TUoF4&MZBDXt^H7stnB5xCEfhp60a0CC8uh)q?`S*bk9-tCfMY^OMTa<@1=VrUY@jDY}tdNP-SE8 z!iOk%tFTZ;X3ZX1Elc;-Q7w6UWi@P3cBQh9?UmKCYM-o@!hQ0)e4oJYP`$5?YFYG2 z9nr7-L{cdEM8>pN*+)JR6g#ZgUq`YE>T)dGFDV_`FVnK1QrInWE9*$hCOFznq!gG` zIaSKeKA;L4HWl(FW$!v5E2-vys1$uE|Mt4XWIazzMjp^{I3(RCYOR z(bAN?s7m6mt&&w;QYHQOD*Fg*O5KXjBwoR1^1Dpghm^hGa~UpI*~Onr{EE*d-NVX# z`4>Bxr` zAskZQ3l6J>a#%KuVti8rt5Eh~<-hy~>7Eap5>cwYtCXGnqokYjqr}?;oA7r1DCyQH z_oe@q{&}#;e~bFARNu$c_o^cTuSMYzSA*Pwk6Jvd@`$XJW0t48;jQ|Qtc5~lmn*ya zKeAR99hJ4R_Ne?WIV$iw>^)jXtsEgoqHZ-#z~+jdB!z;XWK3nsKJ=5I*kQpj708{e z+`1f#k4Z`u$7EU#OS{GL<8`DZ4~}*V*>qeMDip4w@@ka5^k-SfdCJ~`%U)=}s{C12 z$}#1>>V(8AgiV!SenR3^%WvR2|g|ujqL|Uut5@qjI_7P>TSj-zP zNF44txR_tQAhA*0+B=yL+FrQxj_d`AFael)McE6I%FhbrKbp)M8JKkqhB2?Za_X$k zGbYZRJg3v&CSH$6Paoy8%ahUu=0BFql3$6@vvmH53zAur=nVee&ZH*M)%Zvm zo58={nUoTpzY!(>j|`r;E2(jGH9k^~V@+ij`8*4s)-Cy1;e(Hq?JfCi;qx4Pern0@ z5kB}x9@2_$+=W8RFN9BaD_$;q=p(%~uc43p=kYPUH4l71@!%tQWow@K0fl)1J~3_h z7~zADn8kgt+Hkd|-7yjh!7oTB}h51_=l;Cj7z}bwN;-Z?5l780f9WF^`F$*upV0A- z!5oMA8HRpd4^+x9Q80eY>kGFgvxI1T#K6SD#KCbFImY7yM*+1&m;f9PlVd%6B*6qd zS}UzST$gW4W{IKJer+tw>^6RFd0W3`mcZ5165czu@o{^TGCZ9<{E@v$4f)c&NdZr$ z_-N(nBJ4(d-`=D|Pgf8BdT&xIPd5*5xG$+yQa8i`0+r>8QcXEOXJ1kaPj?TW2Y<42 z$nN3cTa;a`?E0S|d=G@zF+A>6;V}sx{fP`e2mTbE@S_ON%Nu=yM1mBN6i(6n?S0az z?|xwS^zccr8}^b^Yd%m^@Axp8eKD|T^*2dJqKoeTBI(-X2LHalF?-R2u}~|){}V&L z_iH)duWS;0qQOYi%L8c7YtbKupsvW=v+|?hwVsj(_$WPC9aZp9V`lOaJ=mOI>&*Rt}Rp)~|)m13b>JWsZl^ z^Fp{??AIzUg_(eL%qtLXieC#%1Ku?-vw=4kG_L2B?SnnC3chK~X2u}9R}Do;qT9}a z-5c$GJ+eBI47%%PbdawGVj&Sl;6t|0G&OBFy7xzLp925+=!s(jSb&B7bu-xLU`IQn zKf!zsQv=gIQ`72$rL1g@v9YExYy1#(55A&9uwj>Sd`Df1Z)|w31YG|B;7XW-Fo+8?*SoBDn4Vy! zXpqJRzqL>B`j!RhB(}sSQiAE1 zS-*FH;PYA`krvFG^bNkJ|5S9SZ*Y&NKXJ`{D2ou#2(DD{6r}%C1rLJzKV9y}E%^R3 zgN?Gj17;MH6bOz}a9e~jTyTIpWtIMjP=f_z)b1 zDVP#HQNbc&1>cOYxdbDA?Rs?KHOk{?Yit!!a1gnFOu-j-0f$uZ7l`a}1)FexLcxCp zohKE%4LErUrm*W2OmVGOFvXSil=`5^@)f+UJJ!M!Op!gUV2bP+1yf`N3Z}?5DwraB zPQg^i&nx&6zBhT6^63)Up7{d z#l8#$KZu4l4BZ{gL7NJi!_eI=_+y2Wm5d_#P<^}s-`xtnhv%8WWm&z^-aMfXLlll+ zuM76M;3yaDcfqkPIL-w#7i_rTco&=y`Y_9mIML-%&jlyB;07+Zp$l&0f|FfvV;7v_ zg7twi!<#Y~a<4uv=K}`^GxU}G%E7_;o=t0t4h;@I=ka{~MA5^;f_=Q6XE*SQk-=7; z15dv&D)^c1+5T+N7iR@KG0$!9@J1H~2S(@8fKvVrZaNNf&$sXLe_t4E)#<7CQkZUF ze=_U_sB7>x`V(u=Uk!iZ_Zi^?uxI%_e%3|7l(^Mp_)gNyr^@)Oi-H-=58^u^1?VX$ z^cTNa&Ae|bkm_sZ>aBQ_4uQ7PcSFtGy|w6ri-OC%Swr$6Q25aCVIGBf3}!9N<1kOa zJPDHrvkqoG%u_J=FdJY~ zFfBL+WHRJf2*>AP_5!&EMrI#8c7tDg0q#XG_%9+Mw@vtX5#}($lOea4@clB3@swXX z1e(WS0&s5u(;aRh82XjqyVwW5_X?1$oWBZqGmJauCHSVCzXn4&e;tN?%M1M48-TaK zyb1Fb%-b-fFz>)vCHF313jZDqg)f6S=e&8{F2B5MpGo|{rNIobZKne1I#R$BE(`Yb z)26^cJ|A^iuxru`tTK;A9_XjT`11MPz?n?$E5h9Uniqv&m6^LztnzVJ3Q{3{uF9xg z7q|vD807sf4~9}Gz78leFG6`>h!)vf^7-|b2S;VmYWPj?rv^0;?)39L=HnK$H zup)6c4l5FO;}|G{hPPY`&s|7FkACh#Dn)|HxEt&_=kZr31cyzfLMTQ8DK4;D@!N#V z?L@|Q!EB*$Fy!_DzCVO%0(d;k)i9YbRycPBTH)-p;fCYjSt7dG2tv*?RCMFfEI$I- z3YZm$iVV5!#`niC<-m`@cN3T@z*abSbXGVgI<$jsqM5cpu$%JvWs`zk$5C!4;G3$P zej_&ewf%^q66OHRL6}crs$g(Gi1;-D&L@CBhxtOe9RZC)fWPDiCIuUb)?Zb?f1VU< zCZg03WW_<=>WX0cV2ZL0zV{vk7p**)!ZJQd@~tGw$fo_90F3%@8{Fyq@xway#{E5? zrZDe3xSCiKTXIG4tmsf7KGq&8+IL0pgl^DvOWw?v;8b{+oP0X3zAE^Wr{Ea>a!Rm6 z%e8O&wUv;e?uX$p^z)VawN-#0P;L+MP1gjQ>l%OL>R{`lTdxl8(SvIjrn0X*GZ6Yw zU_C~dJac9+b=-P@^y>#APXW#+FPIH5Ps2O|QvkCOhJF)(_blM&U;T-^YESVN z74Bsfu9)92JJ^$7Fe8}Ohgi}R@E2?cHvOpkQ(R;hE1TRedQ-+z#zlHKLiO!0_=bVJdP>|R4Xt#q5vS4u~&=<&d1 zRDU9wV7Vwu2t#J)ePkZPRYJRV#gJ*q6?S}i!;q+lgmM4%N60TnB7e>j(T0E8-Th9F z2s7@_rSQ{+sS9FciYJ3U*PfmdA8%X?)%Wn{D}Vi+{^2R!!fdlQe!UVa)pD2o>cWuU zdPFbt4uVTLu2x#JMQ>wJ(~Pz`v04bUVE)%>4FG!Ias#*tkTt{q57hq&kpEx6E#Th( zS;_CsHT)0S_)JQdKAZ z8b(USFN8Gsot3-ow$H3de=w5=Ac~TALKz4=2y_N)KoIZ{&;@uH=n8ZL~nxc@)Y4z+=GUKr}EA7z7wc55x~f z{R!YnAO?`T3vj|2;T3a?pF1Dd$?aYdWh~7F%#B7@fRc<(KKgc74~|CFN4NchBE@?NMIB&8W;nN1!4gj4#kf{eLOG$m)Wq!*iW{e{}AN-^jgOZG|ZYgm}C-{#6mZ@k?Q##X0 zXU1IWT6dqWRp?6hvZqwn87LEgnZPXIX<#-m2Y3cZlo9!2QgFtDD$N( zR4UPMlS=blRN~-swp5Zzi&802DupQ5$}ww|%I8XD3(AgTxk4&she)ODOLHtmN@X3& z_3|QA;%G)WaMM@@q3ozq3eI`vu-*1SU{Ir}@~l!RMp*)EkQyajX-*UoC7sVYeOYN;iwahISx_Q2 zbn-j(8+q{sv2Wn5vvylhq&j?KD0q@ne$H+S816sSKiS{nJdTE61uEyx$;vHafZxq? z^86OjI;8AUfMpMaB|wLFbvJhm$t}#qV^&uxzFbES80cWR4zUTBnI+<$hG(04jh3z?;B9pb~fsAe)DN z6n6;Vafi{a0^XKew~2ucl8*sMmh80Z_D+XxN6q^!!HB0mlrI=1{@^YA9PyYN1JvTJL1UjtV~Za_t)HA^dmj8TBT8=G!Q=`JuA+IiJkT5?Y8%WYw&^`i^Z*u z!lxpr)9dqhxMz>V1C|D>rHer{<0Ir*Aik3B9YS<#LeTfXCEy33S#H`P!i(`Aqg(uY zhJ+AWXb7;;oKrWiF^r?51KC*4skm6i-7v!}<2a|{#+zIhBu);|cgP9S@sbeZCbq>V zhqS18C*ySfNt{!0ljR1Ih-0oB$`!ASRwbPS1FT zjNA!{1jChVEUup8OvdSqvp9!3+0$|jNz7(0dazG6hjBXNGn`X#iSjH-B(=G)oTh?h zF6UHuGUN1we=WQ1g2X)L(i!J-PDw1#99!ar(oGVJm`iW!V#eu=OE`x*nMghyT{iEQn{+;zq^oKxXBjMEd&mCoIe@G_Uq=;NG{$TPSp zcPw$f+(i-v%%wNAka0TWTF#+PRwTbCiFM4SH+6j**S^HhGEPspSUSoeQNmn0;|9*5 zPWBw*^n{<68%ScKcCib06XSHo&74D>>;>6C5?h!{Z|aMT(;2sNPDyN&k*`3a)Nth) zE3Gqb=bQ@P!8kqPm*g6f*vVWv<1WrAiI>~B_9fme&yqwLbLmZeg>gFL9?qdoCS|uh zkSJ#^y{WHijxF(C#_0*aCfy{lkGXWl*Exqe*?z|93F8mZlSGB#+I+`_dw_8|})RT=k`F@B7Jai@A+> z07L2o1Og8NodFvV1Uv+E0Uidr0s;sIx&t9V51=Q|3+N5lfl#0i5C((;5kMr+7w8A1 z^~XPt0#N`Ro>t-Tv;uV;mJE9UzbteWLtKydG_|PMig1!!3)If+WO052#){RrhLXMv ZXBeIt{LOCbLQiYEE(o+#;_$sM;Q#on2{ix! delta 205030 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