From e7fa9472984a9b7ab139ecff3d7f388253825e27 Mon Sep 17 00:00:00 2001 From: blankhex Date: Sun, 20 Jul 2025 12:08:34 +0000 Subject: [PATCH] deploy: 89f350f59312b15697738770f4b2c852615392a8 --- eulamadness.js | 1 - eulamadness.html => index.html | 2 +- index.js | 1 + eulamadness.wasm => index.wasm | Bin 1382079 -> 1385748 bytes 4 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 eulamadness.js rename eulamadness.html => index.html (93%) create mode 100644 index.js rename eulamadness.wasm => index.wasm (69%) diff --git a/eulamadness.js b/eulamadness.js deleted file mode 100644 index 4cca570..0000000 --- a/eulamadness.js +++ /dev/null @@ -1 +0,0 @@ -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["eg"];updateMemoryViews();wasmTable=wasmExports["gg"];addOnInit(wasmExports["fg"]);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={483232:$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)},483457:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},483604:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},483838:$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},484331:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},484399:($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)}},486051:($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"])},486461:($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]}}},487546:$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},491176:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},491259:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},491328:()=>window.innerWidth,491358:()=>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,v:___cxa_end_catch,a:___cxa_find_matching_catch_2,h:___cxa_find_matching_catch_3,I:___cxa_rethrow,o:___cxa_throw,ab:___cxa_uncaught_exceptions,b:___resumeException,ha:___syscall_fcntl64,fb:___syscall_ioctl,gb:___syscall_openat,ad:__emscripten_fs_load_embedded_files,hb:__emscripten_get_now_is_monotonic,D:_abort,Ua:_eglBindAPI,Xa:_eglChooseConfig,La:_eglCreateContext,Na:_eglCreateWindowSurface,Ma:_eglDestroyContext,Oa:_eglDestroySurface,Za:_eglGetConfigAttrib,ca:_eglGetDisplay,Ka:_eglGetError,Va:_eglInitialize,Pa:_eglMakeCurrent,Ja:_eglQueryString,Qa:_eglSwapBuffers,Ra:_eglSwapInterval,Wa:_eglTerminate,Ta:_eglWaitGL,Sa:_eglWaitNative,mc:_emscripten_asm_const_int,q:_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,Ea:_emscripten_exit_fullscreen,Ha:_emscripten_exit_pointerlock,Rc:_emscripten_force_exit,y:_emscripten_get_device_pixel_ratio,u:_emscripten_get_element_css_size,la:_emscripten_get_gamepad_status,H:_emscripten_get_now,Tb:_emscripten_get_num_gamepads,Ia:_emscripten_get_screen_size,$f:_emscripten_glActiveTexture,_f:_emscripten_glAttachShader,$c:_emscripten_glBeginQuery,Aa:_emscripten_glBeginQueryEXT,Hc:_emscripten_glBeginTransformFeedback,Zf:_emscripten_glBindAttribLocation,Yf:_emscripten_glBindBuffer,Ec:_emscripten_glBindBufferBase,Fc:_emscripten_glBindBufferRange,Xf:_emscripten_glBindFramebuffer,Wf:_emscripten_glBindRenderbuffer,Kb:_emscripten_glBindSampler,Vf:_emscripten_glBindTexture,Cb:_emscripten_glBindTransformFeedback,Mc:_emscripten_glBindVertexArray,sa:_emscripten_glBindVertexArrayOES,Uf:_emscripten_glBlendColor,Tf:_emscripten_glBlendEquation,Sf:_emscripten_glBlendEquationSeparate,Rf:_emscripten_glBlendFunc,Qf:_emscripten_glBlendFuncSeparate,Pc:_emscripten_glBlitFramebuffer,Pf:_emscripten_glBufferData,Of:_emscripten_glBufferSubData,Nf:_emscripten_glCheckFramebufferStatus,Mf:_emscripten_glClear,gc:_emscripten_glClearBufferfi,hc:_emscripten_glClearBufferfv,jc:_emscripten_glClearBufferiv,ic:_emscripten_glClearBufferuiv,Lf:_emscripten_glClearColor,Kf:_emscripten_glClearDepthf,Jf:_emscripten_glClearStencil,Ub:_emscripten_glClientWaitSync,If:_emscripten_glColorMask,Hf:_emscripten_glCompileShader,Gf:_emscripten_glCompressedTexImage2D,fd:_emscripten_glCompressedTexImage3D,Ff:_emscripten_glCompressedTexSubImage2D,ed:_emscripten_glCompressedTexSubImage3D,ec:_emscripten_glCopyBufferSubData,Ef:_emscripten_glCopyTexImage2D,Df:_emscripten_glCopyTexSubImage2D,gd:_emscripten_glCopyTexSubImage3D,Cf:_emscripten_glCreateProgram,Bf:_emscripten_glCreateShader,Af:_emscripten_glCullFace,zf:_emscripten_glDeleteBuffers,yf:_emscripten_glDeleteFramebuffers,xf:_emscripten_glDeleteProgram,cd:_emscripten_glDeleteQueries,Ca:_emscripten_glDeleteQueriesEXT,wf:_emscripten_glDeleteRenderbuffers,Mb:_emscripten_glDeleteSamplers,vf:_emscripten_glDeleteShader,Vb:_emscripten_glDeleteSync,uf:_emscripten_glDeleteTextures,Bb:_emscripten_glDeleteTransformFeedbacks,Lc:_emscripten_glDeleteVertexArrays,ra:_emscripten_glDeleteVertexArraysOES,tf:_emscripten_glDepthFunc,sf:_emscripten_glDepthMask,rf:_emscripten_glDepthRangef,qf:_emscripten_glDetachShader,pf:_emscripten_glDisable,of:_emscripten_glDisableVertexAttribArray,nf:_emscripten_glDrawArrays,Zb:_emscripten_glDrawArraysInstanced,cg:_emscripten_glDrawArraysInstancedANGLE,lb:_emscripten_glDrawArraysInstancedARB,od:_emscripten_glDrawArraysInstancedEXT,mb:_emscripten_glDrawArraysInstancedNV,Xc:_emscripten_glDrawBuffers,md:_emscripten_glDrawBuffersEXT,dg:_emscripten_glDrawBuffersWEBGL,mf:_emscripten_glDrawElements,Yb:_emscripten_glDrawElementsInstanced,bg:_emscripten_glDrawElementsInstancedANGLE,jb:_emscripten_glDrawElementsInstancedARB,kb:_emscripten_glDrawElementsInstancedEXT,nd:_emscripten_glDrawElementsInstancedNV,jd:_emscripten_glDrawRangeElements,lf:_emscripten_glEnable,kf:_emscripten_glEnableVertexAttribArray,_c:_emscripten_glEndQuery,za:_emscripten_glEndQueryEXT,Gc:_emscripten_glEndTransformFeedback,Xb:_emscripten_glFenceSync,jf:_emscripten_glFinish,hf:_emscripten_glFlush,gf:_emscripten_glFramebufferRenderbuffer,ff:_emscripten_glFramebufferTexture2D,Nc:_emscripten_glFramebufferTextureLayer,ef:_emscripten_glFrontFace,df:_emscripten_glGenBuffers,bf:_emscripten_glGenFramebuffers,dd:_emscripten_glGenQueries,Da:_emscripten_glGenQueriesEXT,af:_emscripten_glGenRenderbuffers,Nb:_emscripten_glGenSamplers,$e:_emscripten_glGenTextures,Ab:_emscripten_glGenTransformFeedbacks,Kc:_emscripten_glGenVertexArrays,qa:_emscripten_glGenVertexArraysOES,cf:_emscripten_glGenerateMipmap,_e:_emscripten_glGetActiveAttrib,Ze:_emscripten_glGetActiveUniform,$b:_emscripten_glGetActiveUniformBlockName,ac:_emscripten_glGetActiveUniformBlockiv,cc:_emscripten_glGetActiveUniformsiv,Ye:_emscripten_glGetAttachedShaders,Xe:_emscripten_glGetAttribLocation,We:_emscripten_glGetBooleanv,Ob:_emscripten_glGetBufferParameteri64v,Ve:_emscripten_glGetBufferParameteriv,Ue:_emscripten_glGetError,Te:_emscripten_glGetFloatv,tc:_emscripten_glGetFragDataLocation,Se:_emscripten_glGetFramebufferAttachmentParameteriv,Pb:_emscripten_glGetInteger64i_v,Rb:_emscripten_glGetInteger64v,Ic:_emscripten_glGetIntegeri_v,Re:_emscripten_glGetIntegerv,pb:_emscripten_glGetInternalformativ,wb:_emscripten_glGetProgramBinary,Pe:_emscripten_glGetProgramInfoLog,Qe:_emscripten_glGetProgramiv,ua:_emscripten_glGetQueryObjecti64vEXT,wa:_emscripten_glGetQueryObjectivEXT,ta:_emscripten_glGetQueryObjectui64vEXT,Yc:_emscripten_glGetQueryObjectuiv,va:_emscripten_glGetQueryObjectuivEXT,Zc:_emscripten_glGetQueryiv,xa:_emscripten_glGetQueryivEXT,Oe:_emscripten_glGetRenderbufferParameteriv,Eb:_emscripten_glGetSamplerParameterfv,Fb:_emscripten_glGetSamplerParameteriv,Me:_emscripten_glGetShaderInfoLog,Le:_emscripten_glGetShaderPrecisionFormat,Ke:_emscripten_glGetShaderSource,Ne:_emscripten_glGetShaderiv,Je:_emscripten_glGetString,fc:_emscripten_glGetStringi,Qb:_emscripten_glGetSynciv,Ie:_emscripten_glGetTexParameterfv,He:_emscripten_glGetTexParameteriv,Cc:_emscripten_glGetTransformFeedbackVarying,bc:_emscripten_glGetUniformBlockIndex,dc:_emscripten_glGetUniformIndices,De:_emscripten_glGetUniformLocation,Ge:_emscripten_glGetUniformfv,Fe:_emscripten_glGetUniformiv,uc:_emscripten_glGetUniformuiv,Ac:_emscripten_glGetVertexAttribIiv,zc:_emscripten_glGetVertexAttribIuiv,Ae:_emscripten_glGetVertexAttribPointerv,Ce:_emscripten_glGetVertexAttribfv,Be:_emscripten_glGetVertexAttribiv,ze:_emscripten_glHint,tb:_emscripten_glInvalidateFramebuffer,sb:_emscripten_glInvalidateSubFramebuffer,ye:_emscripten_glIsBuffer,xe:_emscripten_glIsEnabled,we:_emscripten_glIsFramebuffer,ve:_emscripten_glIsProgram,bd:_emscripten_glIsQuery,Ba:_emscripten_glIsQueryEXT,ue:_emscripten_glIsRenderbuffer,Lb:_emscripten_glIsSampler,te:_emscripten_glIsShader,Wb:_emscripten_glIsSync,se:_emscripten_glIsTexture,zb:_emscripten_glIsTransformFeedback,Jc:_emscripten_glIsVertexArray,pa:_emscripten_glIsVertexArrayOES,re:_emscripten_glLineWidth,qe:_emscripten_glLinkProgram,yb:_emscripten_glPauseTransformFeedback,pe:_emscripten_glPixelStorei,oe:_emscripten_glPolygonOffset,vb:_emscripten_glProgramBinary,ub:_emscripten_glProgramParameteri,ya:_emscripten_glQueryCounterEXT,kd:_emscripten_glReadBuffer,ne:_emscripten_glReadPixels,me:_emscripten_glReleaseShaderCompiler,le:_emscripten_glRenderbufferStorage,Oc:_emscripten_glRenderbufferStorageMultisample,xb:_emscripten_glResumeTransformFeedback,ke:_emscripten_glSampleCoverage,Hb:_emscripten_glSamplerParameterf,Gb:_emscripten_glSamplerParameterfv,Jb:_emscripten_glSamplerParameteri,Ib:_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,id:_emscripten_glTexImage3D,$d:_emscripten_glTexParameterf,_d:_emscripten_glTexParameterfv,Zd:_emscripten_glTexParameteri,Yd:_emscripten_glTexParameteriv,rb:_emscripten_glTexStorage2D,qb:_emscripten_glTexStorage3D,Xd:_emscripten_glTexSubImage2D,hd:_emscripten_glTexSubImage3D,Dc:_emscripten_glTransformFeedbackVaryings,Wd:_emscripten_glUniform1f,Vd:_emscripten_glUniform1fv,Ud:_emscripten_glUniform1i,Td:_emscripten_glUniform1iv,sc:_emscripten_glUniform1ui,oc:_emscripten_glUniform1uiv,Sd:_emscripten_glUniform2f,Qd:_emscripten_glUniform2fv,Pd:_emscripten_glUniform2i,Od:_emscripten_glUniform2iv,rc:_emscripten_glUniform2ui,nc:_emscripten_glUniform2uiv,Nd:_emscripten_glUniform3f,Md:_emscripten_glUniform3fv,Ld:_emscripten_glUniform3i,Kd:_emscripten_glUniform3iv,qc:_emscripten_glUniform3ui,lc:_emscripten_glUniform3uiv,Jd:_emscripten_glUniform4f,Id:_emscripten_glUniform4fv,Hd:_emscripten_glUniform4i,Fd:_emscripten_glUniform4iv,pc:_emscripten_glUniform4ui,kc:_emscripten_glUniform4uiv,_b:_emscripten_glUniformBlockBinding,Ed:_emscripten_glUniformMatrix2fv,Wc:_emscripten_glUniformMatrix2x3fv,Uc:_emscripten_glUniformMatrix2x4fv,Dd:_emscripten_glUniformMatrix3fv,Vc:_emscripten_glUniformMatrix3x2fv,Sc:_emscripten_glUniformMatrix3x4fv,Cd:_emscripten_glUniformMatrix4fv,Tc:_emscripten_glUniformMatrix4x2fv,Qc:_emscripten_glUniformMatrix4x3fv,Bd:_emscripten_glUseProgram,Ad:_emscripten_glValidateProgram,zd:_emscripten_glVertexAttrib1f,yd:_emscripten_glVertexAttrib1fv,xd:_emscripten_glVertexAttrib2f,wd:_emscripten_glVertexAttrib2fv,vd:_emscripten_glVertexAttrib3f,ud:_emscripten_glVertexAttrib3fv,td:_emscripten_glVertexAttrib4f,sd:_emscripten_glVertexAttrib4fv,Db:_emscripten_glVertexAttribDivisor,ag:_emscripten_glVertexAttribDivisorANGLE,nb:_emscripten_glVertexAttribDivisorARB,pd:_emscripten_glVertexAttribDivisorEXT,ob:_emscripten_glVertexAttribDivisorNV,yc:_emscripten_glVertexAttribI4i,wc:_emscripten_glVertexAttribI4iv,xc:_emscripten_glVertexAttribI4ui,vc:_emscripten_glVertexAttribI4uiv,Bc:_emscripten_glVertexAttribIPointer,rd:_emscripten_glVertexAttribPointer,qd:_emscripten_glViewport,Sb:_emscripten_glWaitSync,G:_emscripten_has_asyncify,ib:_emscripten_memcpy_js,Fa:_emscripten_request_fullscreen_strategy,ba:_emscripten_request_pointerlock,bb:_emscripten_resize_heap,ma:_emscripten_sample_gamepad_data,J:_emscripten_set_beforeunload_callback_on_thread,V:_emscripten_set_blur_callback_on_thread,x:_emscripten_set_canvas_element_size,C:_emscripten_set_element_css_size,W:_emscripten_set_focus_callback_on_thread,M:_emscripten_set_fullscreenchange_callback_on_thread,ka:_emscripten_set_gamepadconnected_callback_on_thread,ja:_emscripten_set_gamepaddisconnected_callback_on_thread,P:_emscripten_set_keydown_callback_on_thread,N:_emscripten_set_keypress_callback_on_thread,O:_emscripten_set_keyup_callback_on_thread,Ee:_emscripten_set_main_loop,$:_emscripten_set_mousedown_callback_on_thread,Z:_emscripten_set_mouseenter_callback_on_thread,Y:_emscripten_set_mouseleave_callback_on_thread,aa:_emscripten_set_mousemove_callback_on_thread,_:_emscripten_set_mouseup_callback_on_thread,Q:_emscripten_set_pointerlockchange_callback_on_thread,L:_emscripten_set_resize_callback_on_thread,R:_emscripten_set_touchcancel_callback_on_thread,T:_emscripten_set_touchend_callback_on_thread,S:_emscripten_set_touchmove_callback_on_thread,U:_emscripten_set_touchstart_callback_on_thread,K:_emscripten_set_visibilitychange_callback_on_thread,X:_emscripten_set_wheel_callback_on_thread,Ga:_emscripten_set_window_title,F:_emscripten_sleep,cb:_environ_get,db:_environ_sizes_get,fa:_fd_close,eb:_fd_read,_a:_fd_seek,ga:_fd_write,Rd:invoke_di,ld:invoke_dii,E:invoke_diii,da:invoke_fiii,g:invoke_i,c:invoke_ii,e:invoke_iii,i:invoke_iiii,l:invoke_iiiii,n:invoke_iiiiii,s:invoke_iiiiiii,ea:invoke_iiiiiiii,A:invoke_iiiiiiiiiiii,Ya:invoke_jiiii,j:invoke_v,k:invoke_vi,Gd:invoke_vid,d:invoke_vii,f:invoke_viii,m:invoke_viiii,t:invoke_viiiii,B:invoke_viiiiii,r:invoke_viiiiiii,w:invoke_viiiiiiiiii,z:invoke_viiiiiiiiiiiiiii,$a:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["fg"])();var ___cxa_free_exception=a0=>(___cxa_free_exception=wasmExports["__cxa_free_exception"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["hg"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["ig"])(a0);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["jg"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["kg"])(a0);var stackSave=()=>(stackSave=wasmExports["lg"])();var stackRestore=a0=>(stackRestore=wasmExports["mg"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["ng"])(a0);var ___cxa_decrement_exception_refcount=a0=>(___cxa_decrement_exception_refcount=wasmExports["og"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["pg"])(a0);var ___cxa_can_catch=(a0,a1,a2)=>(___cxa_can_catch=wasmExports["qg"])(a0,a1,a2);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["rg"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["sg"])(a0,a1,a2,a3,a4);var dynCall_ji=Module["dynCall_ji"]=(a0,a1)=>(dynCall_ji=Module["dynCall_ji"]=wasmExports["tg"])(a0,a1);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["ug"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiiii=Module["dynCall_jiiii"]=(a0,a1,a2,a3,a4)=>(dynCall_jiiii=Module["dynCall_jiiii"]=wasmExports["vg"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["wg"])(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["xg"])(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["yg"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=406576;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_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_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_di(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_vid(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_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_dii(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_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.html b/index.html similarity index 93% rename from eulamadness.html rename to index.html index 8b3cfb3..7ecb40e 100644 --- a/eulamadness.html +++ b/index.html @@ -18,7 +18,7 @@ - + diff --git a/index.js b/index.js new file mode 100644 index 0000000..ce29a76 --- /dev/null +++ b/index.js @@ -0,0 +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="index.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["eg"];updateMemoryViews();wasmTable=wasmExports["gg"];addOnInit(wasmExports["fg"]);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={483408:$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)},483633:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},483780:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},484014:$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},484507:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},484575:($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)}},486227:($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"])},486637:($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]}}},487722:$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},491352:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},491435:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},491504:()=>window.innerWidth,491534:()=>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,v:___cxa_end_catch,a:___cxa_find_matching_catch_2,h:___cxa_find_matching_catch_3,I:___cxa_rethrow,o:___cxa_throw,ab:___cxa_uncaught_exceptions,b:___resumeException,ha:___syscall_fcntl64,fb:___syscall_ioctl,gb:___syscall_openat,ad:__emscripten_fs_load_embedded_files,hb:__emscripten_get_now_is_monotonic,D:_abort,Ua:_eglBindAPI,Xa:_eglChooseConfig,La:_eglCreateContext,Na:_eglCreateWindowSurface,Ma:_eglDestroyContext,Oa:_eglDestroySurface,Za:_eglGetConfigAttrib,ca:_eglGetDisplay,Ka:_eglGetError,Va:_eglInitialize,Pa:_eglMakeCurrent,Ja:_eglQueryString,Qa:_eglSwapBuffers,Ra:_eglSwapInterval,Wa:_eglTerminate,Ta:_eglWaitGL,Sa:_eglWaitNative,mc:_emscripten_asm_const_int,q:_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,Ea:_emscripten_exit_fullscreen,Ha:_emscripten_exit_pointerlock,Rc:_emscripten_force_exit,y:_emscripten_get_device_pixel_ratio,u:_emscripten_get_element_css_size,la:_emscripten_get_gamepad_status,H:_emscripten_get_now,Tb:_emscripten_get_num_gamepads,Ia:_emscripten_get_screen_size,$f:_emscripten_glActiveTexture,_f:_emscripten_glAttachShader,$c:_emscripten_glBeginQuery,Aa:_emscripten_glBeginQueryEXT,Hc:_emscripten_glBeginTransformFeedback,Zf:_emscripten_glBindAttribLocation,Yf:_emscripten_glBindBuffer,Ec:_emscripten_glBindBufferBase,Fc:_emscripten_glBindBufferRange,Xf:_emscripten_glBindFramebuffer,Wf:_emscripten_glBindRenderbuffer,Kb:_emscripten_glBindSampler,Vf:_emscripten_glBindTexture,Cb:_emscripten_glBindTransformFeedback,Mc:_emscripten_glBindVertexArray,sa:_emscripten_glBindVertexArrayOES,Uf:_emscripten_glBlendColor,Tf:_emscripten_glBlendEquation,Sf:_emscripten_glBlendEquationSeparate,Rf:_emscripten_glBlendFunc,Qf:_emscripten_glBlendFuncSeparate,Pc:_emscripten_glBlitFramebuffer,Pf:_emscripten_glBufferData,Of:_emscripten_glBufferSubData,Nf:_emscripten_glCheckFramebufferStatus,Mf:_emscripten_glClear,gc:_emscripten_glClearBufferfi,hc:_emscripten_glClearBufferfv,jc:_emscripten_glClearBufferiv,ic:_emscripten_glClearBufferuiv,Lf:_emscripten_glClearColor,Kf:_emscripten_glClearDepthf,Jf:_emscripten_glClearStencil,Ub:_emscripten_glClientWaitSync,If:_emscripten_glColorMask,Hf:_emscripten_glCompileShader,Gf:_emscripten_glCompressedTexImage2D,fd:_emscripten_glCompressedTexImage3D,Ff:_emscripten_glCompressedTexSubImage2D,ed:_emscripten_glCompressedTexSubImage3D,ec:_emscripten_glCopyBufferSubData,Ef:_emscripten_glCopyTexImage2D,Df:_emscripten_glCopyTexSubImage2D,gd:_emscripten_glCopyTexSubImage3D,Cf:_emscripten_glCreateProgram,Bf:_emscripten_glCreateShader,Af:_emscripten_glCullFace,zf:_emscripten_glDeleteBuffers,yf:_emscripten_glDeleteFramebuffers,xf:_emscripten_glDeleteProgram,cd:_emscripten_glDeleteQueries,Ca:_emscripten_glDeleteQueriesEXT,wf:_emscripten_glDeleteRenderbuffers,Mb:_emscripten_glDeleteSamplers,vf:_emscripten_glDeleteShader,Vb:_emscripten_glDeleteSync,uf:_emscripten_glDeleteTextures,Bb:_emscripten_glDeleteTransformFeedbacks,Lc:_emscripten_glDeleteVertexArrays,ra:_emscripten_glDeleteVertexArraysOES,tf:_emscripten_glDepthFunc,sf:_emscripten_glDepthMask,rf:_emscripten_glDepthRangef,qf:_emscripten_glDetachShader,pf:_emscripten_glDisable,of:_emscripten_glDisableVertexAttribArray,nf:_emscripten_glDrawArrays,Zb:_emscripten_glDrawArraysInstanced,cg:_emscripten_glDrawArraysInstancedANGLE,lb:_emscripten_glDrawArraysInstancedARB,od:_emscripten_glDrawArraysInstancedEXT,mb:_emscripten_glDrawArraysInstancedNV,Xc:_emscripten_glDrawBuffers,md:_emscripten_glDrawBuffersEXT,dg:_emscripten_glDrawBuffersWEBGL,mf:_emscripten_glDrawElements,Yb:_emscripten_glDrawElementsInstanced,bg:_emscripten_glDrawElementsInstancedANGLE,jb:_emscripten_glDrawElementsInstancedARB,kb:_emscripten_glDrawElementsInstancedEXT,nd:_emscripten_glDrawElementsInstancedNV,jd:_emscripten_glDrawRangeElements,lf:_emscripten_glEnable,kf:_emscripten_glEnableVertexAttribArray,_c:_emscripten_glEndQuery,za:_emscripten_glEndQueryEXT,Gc:_emscripten_glEndTransformFeedback,Xb:_emscripten_glFenceSync,jf:_emscripten_glFinish,hf:_emscripten_glFlush,gf:_emscripten_glFramebufferRenderbuffer,ff:_emscripten_glFramebufferTexture2D,Nc:_emscripten_glFramebufferTextureLayer,ef:_emscripten_glFrontFace,df:_emscripten_glGenBuffers,bf:_emscripten_glGenFramebuffers,dd:_emscripten_glGenQueries,Da:_emscripten_glGenQueriesEXT,af:_emscripten_glGenRenderbuffers,Nb:_emscripten_glGenSamplers,$e:_emscripten_glGenTextures,Ab:_emscripten_glGenTransformFeedbacks,Kc:_emscripten_glGenVertexArrays,qa:_emscripten_glGenVertexArraysOES,cf:_emscripten_glGenerateMipmap,_e:_emscripten_glGetActiveAttrib,Ze:_emscripten_glGetActiveUniform,$b:_emscripten_glGetActiveUniformBlockName,ac:_emscripten_glGetActiveUniformBlockiv,cc:_emscripten_glGetActiveUniformsiv,Ye:_emscripten_glGetAttachedShaders,Xe:_emscripten_glGetAttribLocation,We:_emscripten_glGetBooleanv,Ob:_emscripten_glGetBufferParameteri64v,Ve:_emscripten_glGetBufferParameteriv,Ue:_emscripten_glGetError,Te:_emscripten_glGetFloatv,tc:_emscripten_glGetFragDataLocation,Se:_emscripten_glGetFramebufferAttachmentParameteriv,Pb:_emscripten_glGetInteger64i_v,Rb:_emscripten_glGetInteger64v,Ic:_emscripten_glGetIntegeri_v,Re:_emscripten_glGetIntegerv,pb:_emscripten_glGetInternalformativ,wb:_emscripten_glGetProgramBinary,Pe:_emscripten_glGetProgramInfoLog,Qe:_emscripten_glGetProgramiv,ua:_emscripten_glGetQueryObjecti64vEXT,wa:_emscripten_glGetQueryObjectivEXT,ta:_emscripten_glGetQueryObjectui64vEXT,Yc:_emscripten_glGetQueryObjectuiv,va:_emscripten_glGetQueryObjectuivEXT,Zc:_emscripten_glGetQueryiv,xa:_emscripten_glGetQueryivEXT,Oe:_emscripten_glGetRenderbufferParameteriv,Eb:_emscripten_glGetSamplerParameterfv,Fb:_emscripten_glGetSamplerParameteriv,Me:_emscripten_glGetShaderInfoLog,Le:_emscripten_glGetShaderPrecisionFormat,Ke:_emscripten_glGetShaderSource,Ne:_emscripten_glGetShaderiv,Je:_emscripten_glGetString,fc:_emscripten_glGetStringi,Qb:_emscripten_glGetSynciv,Ie:_emscripten_glGetTexParameterfv,He:_emscripten_glGetTexParameteriv,Cc:_emscripten_glGetTransformFeedbackVarying,bc:_emscripten_glGetUniformBlockIndex,dc:_emscripten_glGetUniformIndices,De:_emscripten_glGetUniformLocation,Ge:_emscripten_glGetUniformfv,Fe:_emscripten_glGetUniformiv,uc:_emscripten_glGetUniformuiv,Ac:_emscripten_glGetVertexAttribIiv,zc:_emscripten_glGetVertexAttribIuiv,Ae:_emscripten_glGetVertexAttribPointerv,Ce:_emscripten_glGetVertexAttribfv,Be:_emscripten_glGetVertexAttribiv,ze:_emscripten_glHint,tb:_emscripten_glInvalidateFramebuffer,sb:_emscripten_glInvalidateSubFramebuffer,ye:_emscripten_glIsBuffer,xe:_emscripten_glIsEnabled,we:_emscripten_glIsFramebuffer,ve:_emscripten_glIsProgram,bd:_emscripten_glIsQuery,Ba:_emscripten_glIsQueryEXT,ue:_emscripten_glIsRenderbuffer,Lb:_emscripten_glIsSampler,te:_emscripten_glIsShader,Wb:_emscripten_glIsSync,se:_emscripten_glIsTexture,zb:_emscripten_glIsTransformFeedback,Jc:_emscripten_glIsVertexArray,pa:_emscripten_glIsVertexArrayOES,re:_emscripten_glLineWidth,qe:_emscripten_glLinkProgram,yb:_emscripten_glPauseTransformFeedback,pe:_emscripten_glPixelStorei,oe:_emscripten_glPolygonOffset,vb:_emscripten_glProgramBinary,ub:_emscripten_glProgramParameteri,ya:_emscripten_glQueryCounterEXT,kd:_emscripten_glReadBuffer,ne:_emscripten_glReadPixels,me:_emscripten_glReleaseShaderCompiler,le:_emscripten_glRenderbufferStorage,Oc:_emscripten_glRenderbufferStorageMultisample,xb:_emscripten_glResumeTransformFeedback,ke:_emscripten_glSampleCoverage,Hb:_emscripten_glSamplerParameterf,Gb:_emscripten_glSamplerParameterfv,Jb:_emscripten_glSamplerParameteri,Ib:_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,id:_emscripten_glTexImage3D,$d:_emscripten_glTexParameterf,_d:_emscripten_glTexParameterfv,Zd:_emscripten_glTexParameteri,Yd:_emscripten_glTexParameteriv,rb:_emscripten_glTexStorage2D,qb:_emscripten_glTexStorage3D,Xd:_emscripten_glTexSubImage2D,hd:_emscripten_glTexSubImage3D,Dc:_emscripten_glTransformFeedbackVaryings,Wd:_emscripten_glUniform1f,Vd:_emscripten_glUniform1fv,Ud:_emscripten_glUniform1i,Td:_emscripten_glUniform1iv,sc:_emscripten_glUniform1ui,oc:_emscripten_glUniform1uiv,Sd:_emscripten_glUniform2f,Qd:_emscripten_glUniform2fv,Pd:_emscripten_glUniform2i,Od:_emscripten_glUniform2iv,rc:_emscripten_glUniform2ui,nc:_emscripten_glUniform2uiv,Nd:_emscripten_glUniform3f,Md:_emscripten_glUniform3fv,Ld:_emscripten_glUniform3i,Kd:_emscripten_glUniform3iv,qc:_emscripten_glUniform3ui,lc:_emscripten_glUniform3uiv,Jd:_emscripten_glUniform4f,Id:_emscripten_glUniform4fv,Hd:_emscripten_glUniform4i,Fd:_emscripten_glUniform4iv,pc:_emscripten_glUniform4ui,kc:_emscripten_glUniform4uiv,_b:_emscripten_glUniformBlockBinding,Ed:_emscripten_glUniformMatrix2fv,Wc:_emscripten_glUniformMatrix2x3fv,Uc:_emscripten_glUniformMatrix2x4fv,Dd:_emscripten_glUniformMatrix3fv,Vc:_emscripten_glUniformMatrix3x2fv,Sc:_emscripten_glUniformMatrix3x4fv,Cd:_emscripten_glUniformMatrix4fv,Tc:_emscripten_glUniformMatrix4x2fv,Qc:_emscripten_glUniformMatrix4x3fv,Bd:_emscripten_glUseProgram,Ad:_emscripten_glValidateProgram,zd:_emscripten_glVertexAttrib1f,yd:_emscripten_glVertexAttrib1fv,xd:_emscripten_glVertexAttrib2f,wd:_emscripten_glVertexAttrib2fv,vd:_emscripten_glVertexAttrib3f,ud:_emscripten_glVertexAttrib3fv,td:_emscripten_glVertexAttrib4f,sd:_emscripten_glVertexAttrib4fv,Db:_emscripten_glVertexAttribDivisor,ag:_emscripten_glVertexAttribDivisorANGLE,nb:_emscripten_glVertexAttribDivisorARB,pd:_emscripten_glVertexAttribDivisorEXT,ob:_emscripten_glVertexAttribDivisorNV,yc:_emscripten_glVertexAttribI4i,wc:_emscripten_glVertexAttribI4iv,xc:_emscripten_glVertexAttribI4ui,vc:_emscripten_glVertexAttribI4uiv,Bc:_emscripten_glVertexAttribIPointer,rd:_emscripten_glVertexAttribPointer,qd:_emscripten_glViewport,Sb:_emscripten_glWaitSync,G:_emscripten_has_asyncify,ib:_emscripten_memcpy_js,Fa:_emscripten_request_fullscreen_strategy,ba:_emscripten_request_pointerlock,bb:_emscripten_resize_heap,ma:_emscripten_sample_gamepad_data,J:_emscripten_set_beforeunload_callback_on_thread,V:_emscripten_set_blur_callback_on_thread,x:_emscripten_set_canvas_element_size,C:_emscripten_set_element_css_size,W:_emscripten_set_focus_callback_on_thread,M:_emscripten_set_fullscreenchange_callback_on_thread,ka:_emscripten_set_gamepadconnected_callback_on_thread,ja:_emscripten_set_gamepaddisconnected_callback_on_thread,P:_emscripten_set_keydown_callback_on_thread,N:_emscripten_set_keypress_callback_on_thread,O:_emscripten_set_keyup_callback_on_thread,Ee:_emscripten_set_main_loop,$:_emscripten_set_mousedown_callback_on_thread,Z:_emscripten_set_mouseenter_callback_on_thread,Y:_emscripten_set_mouseleave_callback_on_thread,aa:_emscripten_set_mousemove_callback_on_thread,_:_emscripten_set_mouseup_callback_on_thread,Q:_emscripten_set_pointerlockchange_callback_on_thread,L:_emscripten_set_resize_callback_on_thread,R:_emscripten_set_touchcancel_callback_on_thread,T:_emscripten_set_touchend_callback_on_thread,S:_emscripten_set_touchmove_callback_on_thread,U:_emscripten_set_touchstart_callback_on_thread,K:_emscripten_set_visibilitychange_callback_on_thread,X:_emscripten_set_wheel_callback_on_thread,Ga:_emscripten_set_window_title,F:_emscripten_sleep,cb:_environ_get,db:_environ_sizes_get,fa:_fd_close,eb:_fd_read,_a:_fd_seek,ga:_fd_write,Rd:invoke_di,ld:invoke_dii,E:invoke_diii,da:invoke_fiii,g:invoke_i,c:invoke_ii,e:invoke_iii,i:invoke_iiii,l:invoke_iiiii,n:invoke_iiiiii,s:invoke_iiiiiii,ea:invoke_iiiiiiii,A:invoke_iiiiiiiiiiii,Ya:invoke_jiiii,j:invoke_v,k:invoke_vi,Gd:invoke_vid,d:invoke_vii,f:invoke_viii,m:invoke_viiii,t:invoke_viiiii,B:invoke_viiiiii,r:invoke_viiiiiii,w:invoke_viiiiiiiiii,z:invoke_viiiiiiiiiiiiiii,$a:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["fg"])();var ___cxa_free_exception=a0=>(___cxa_free_exception=wasmExports["__cxa_free_exception"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["hg"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["ig"])(a0);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["jg"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["kg"])(a0);var stackSave=()=>(stackSave=wasmExports["lg"])();var stackRestore=a0=>(stackRestore=wasmExports["mg"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["ng"])(a0);var ___cxa_decrement_exception_refcount=a0=>(___cxa_decrement_exception_refcount=wasmExports["og"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["pg"])(a0);var ___cxa_can_catch=(a0,a1,a2)=>(___cxa_can_catch=wasmExports["qg"])(a0,a1,a2);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["rg"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["sg"])(a0,a1,a2,a3,a4);var dynCall_ji=Module["dynCall_ji"]=(a0,a1)=>(dynCall_ji=Module["dynCall_ji"]=wasmExports["tg"])(a0,a1);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["ug"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiiii=Module["dynCall_jiiii"]=(a0,a1,a2,a3,a4)=>(dynCall_jiiii=Module["dynCall_jiiii"]=wasmExports["vg"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["wg"])(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["xg"])(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["yg"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=406748;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_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_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_di(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_vid(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_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_dii(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_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/index.wasm similarity index 69% rename from eulamadness.wasm rename to index.wasm index 330db20db23a38973fa38e489d8068b3ac96897f..e2a4dd2070f444b9bc28e8b10540d191f1a53ef9 100755 GIT binary patch delta 177410 zcmcG%2YeMp*FSz|_V&6+3!&XyLX(aNDk!WdU>D0{uaAlb8}{e1B%zl8fdz(6Xdyt9 z65yh=00AQg1O){tg3>`chzR)qp4r`dFG=8ee((GK;gh?wGiPSb%$zxM=A1LLD?Wc@ z#JWf3`U1*@!1;n;pdVunePnO~bLlNZcNcsbn!&4wY@P~=huhp-{<8-H0h`a~bGcl+ zp#62bSo-dPb$#hfv-w<~R^~5v<2L?EH`_!f@79gk_^aJ)yHx&KH`^42r**R}PY1%JCwide<*9z zFVsP<--21L)1IH)!gtBHR_X7#=pUzyQ^v|)3XM~~K)8>8g6mh`B>UgaJ-*<6<&1r< zbCbF{ur9FAcR)F*oO4X}W%y?+-`kBWE0pQpl622$?{V)T^=I#J?_b{i-ru}u)RmrX zj+4mnmwj2FIPkgWJFo6It{idy>i)x#@7(1cq4rlNsN>Y1Lw|=d)LD-H?vu(o{QanI zR=-y_swL_=^&7QFU8NSP%hhG-Qgw;CNL{GTS3g&0s5$BwRadjre(DI%rBM1Gp<|(a zq2EF~LO+H!hQ1E14lN1I59NoZg(ii@hK7auhkAxC2G0gh2M-5V`A55U`*-W%~eSd9WZ@pbSu^ z2Pews$Y7Ry_6}Z34^YDSz;XH98`vhF-v>6zXG!22`CJ=VA)j9b=F8{jfn52V5Evn! z*@2<*IV3PxKC=RYV_f_F`|!Kh|C|4q|9AgU{}KOT{~`ZL7Arsdk2;FHXT0aUE7X;amHy*C;o9Rr>=^GY_J8faWMAvw;LP{rrhC@-k1KuE zouSW_BLCmY*MZgkzx->Io%R#{I-8sWm;Lmf-bj@;2^AB?oY5j`lFaD|iDWJ&-_R0Pn`JCjRD4!Gjx~tIlm-A2msz9FSIOf7--$mbFz5$9*F8KcRom7VTCMxIg z9H9K+JBRqQzB9hlzEi%!K!4W>-!b3szW%PGz9YWFzMp-EdFHXbjCAbv{pQ>4+v(fk+wR-t+veNq`^opCZ;NlU?-$<>`og5TY=yo(scm|W zZ<24KZ-Q^UZ=7$eZ;WrWZ@;=J>fm(9iaT~J?cH;J?uT?J?K5)-RIrw z{nfk2yW9JVce`_!cc*uUce{7nE#9r(pS(YMw|F;ufAF62Z}e{PuJ@LBzxA&3e&a3n ze(hcBUE^KtUFBWrE%dJNF840;F7+<)e&t=Pe^;$;`ZVuU@Auv*-pSq^?*ej~-QwKr%=Bg;-`}3go*$gwJ1==Idj9fU@cijH@A<=X&U4nY$$7?e%7Ze~ zohLmfJpCNUJ;yv$=N=_3ZKN_N;gQ;@Rcd z>Dl4g?)llX&9l|>ljldz7SCqS4=Ck(&n6F5ztQs@s@ULJFRTC7v(EF4r`YqgXRT+A zr^vG!rL6K4dRBOrd)&)BOHsuVkA5LJIc<}7wr8einrEtKif6JX$1};Z*g4TN!86`7 z&NJ3C#xvR@Jfl1#J-TPOXP773Gt_h0KHU>_E^sb%E^^Ly7B~lcvOI%4eLTHAy*vXw z13djaeLX!rf4eh0nVw7T%kGQrzue=L3vT_h>NV0Y+Yh@BxevMzxc9sFx%aw%asTGt z6ov4XQ%%LjgEBWId`~sy0^PWI(~Lj8fL6}tNTay8pj&IZo%__W3&4Q z_gcqg`)l1^dHJSq)tCPH;tS6|_v|xIKlS7jYurWd)$Ud9mF`0KDfOg!LhX87J*NJy z9#xO1ht-4X0d>E+PhFw>rv9q#!E?9zi@H9`yR=24e-QT!3xW99M>n?F`a)0k$ z?_TTv+Fk74s-9N&sz0gUsTb);*g zI#HdZZVQc9N4dtTqt$8ZZe@y^;V!ao4GmG}JLWt3sFy=if)_(e9Q&};?hPGM=BVS8 z`Hp;bwmM&#ugp@vv(Hrfy7TZi#M#H4t4>$5oSAN+j#B41204eT+3D&qb*Os5bt06h z9uM_ad#OFuRrbF^CqrjLXF{h#r$QG(=R@a0>+J)azlV;7j)V?}cG>@Q9SR)`&9a|& z9SH3Ytx$G_ehHm$5&PZ~`ZBOM5Dn}O&2}7h^mA?xtqmP^9dgZdT;hK^)`a%iN7`3~ z7AgB(`&@;g<)QS0u7j>GLwSy9Xm03$YhkD$G)tKi`YtqB{aj|ub^M|XQct;7+eg?b z({x7;;Kqkex%!6wc8v;+3@x+ovu_ElRDTLxat#gr8tQ}ifuW^{?d_ZoHgz)ivulRq zL~yctJa{bld+;aMKKqg2!QeEi%F+U>_p)1lI(93GNF19NZS{cWnwCb)5+O9yk&>6gUvr7x*=> zJFqLTBk*(Jr@)rL4}m{J?p-~jia;K1O3;6_)!VBcV$ zV6R}$;C$upz~#VF*Tukvz@LFX0%rrK14~?g1%zvWdM@ZO1u;G6uKrl=so?)h!w8oCcrWY zaOFEyw;{AXR1%`lx1n{RZ$bl<;!sg&WoSicS!ikKtI*=mqR@iSJj8zynjM-Ini9Cj&UTV~S&^LjSk9<|{+(Lm_opap{SXlO2;yz^yUB^5RYfkD}N^!M*t1 z9o&iE?ZK`1-S7A*I1W9t-|-`!>jQHG)YbE;uLAk5>8_Q5-yF*WO9M*+{oD%!ivlNH zvmd}HEC|dAOmfxCk#mgJ;4cDG12Y2ofdR_2Kwe-rp3?&}1GDg)gujXS%L$Cb44my4 zC;!hzA>#wyAp_f-*DpoxsG4^w+<@Ee3b3#(%+gY9yaVr`<)6|YuhZB$`czmOeM%o# zXC}`%rQeu(3okyS_ef20jz_}yQ~J=<{^@gN{;;Eyy@Q5uSZU2|+BBr&4+V#9X%QQu z!b%u>f_GYTdssp7l+-!k)N%kw$rL36A)lFQl!$1fL;}QLnG*FQ?*#Q}b(_U;jp%>X z4f4EGy06}haPgUNTEtGd2*I#D%n27BU_jq&LJj>`y=U*RP_j`iVL~b71IB-|`;g71 zebhrMJQYq$VLTl@LTE(n8oEqVK6o!;>v1OAHgG#swj{J3On%X^LOC>zerGAZRT$`eYu3uMUagi;Bdd7aAJsl7Jo_1z% zavDl;Xp8l;*I&=K_SI7wRjZUesU{&}(+*BF13M<^_c!XC-2Yryk^)GEt6mMS$edzF zpkPj;hZ*19OSd=qgq_zjo20gzfxcDq74$!9)z0@K*gFGE-RBH2pT<(~laUn;vs-L7 zt#?*fJCSQ-xKqpPt?y|P=GilKrD@Bg?3t9a0nb(<$Zu0RPzP&BysznPeEdayaMR@U z7-BXpsk=JKWue9>V4#e`JKH;eh;6DXSPKK0hg3aQep@V-qgq)) zEJm9U)V>;mZM~{!7CeuoVn|qLYAC8xL&>pt$~9w~P3AKDPeGz+afwydKWXN!YoVcy z4Wh>CY1$_}B248e5*5Of>d8p@1h9LMp4qYu$K$J( zjp%WpWvAM^WeF+VC*f>FDCY--o7jj9P>_D_4XI9)N5KznXn0)=JZvWg3}E$nH)vIh zvk2LUL)I9!HB{Uw*J&kLx~Em<^(UNKQI=66rfb-yo^*no%^WVuVb^Ra4uBUdXjOx; z69t=YEaog^w0GL_SL&rd8A*?C=CfU(W83;xqd;Kz;jDhuUUzV>3EPeQywOkO)fgyD&}- z_(v%Ydb}seg34)RW(dVIgeU{|JAJVzRBxgXt5>CZmuV?f?{2NGg-!*ER&TFC(M@lU zL0?DFPsXAjH7l(ct07!bW1Rwa!tHef#aC0Du~cmZ54*yw0e6R;VF&&@yK5)d8)`t# z4n#;%L>-wL7boLZ~LywWZUw z5voN%X`O3z`M*G@HWjw9vn0cWo(WTQN|zV^PwGga!oKZNx{e4%*SPD&>epz8o^o%c z`>b?hh$R`&z|=v0bBflvk`^>YQ^C3A(n64_amZAC!b7$7YIj$so@WmvS)@>xka^r7n8T-Nb36@gwl+#wTfp^i z?h92!67_16I7}0LXQw85()}&|rz6xfURKjdWr8I>t&cmX%c20#B` zReeF%n&q*}I|!DBtaUt7YpRteaQEOn*kxFwUJiNDY`Y?+d8I|2GlD&QL#*s1+AV) zXJM;-+E5<$h8>zeE#5GapY$J|>_oj?{i&E7LsF97`Kg`pyy37-8*kfM#KGzhg*=E(rl7(@FA=bm)*jc zWzihcC%jaZNLXf|>WD-o=0*|T@+*l8S7B@g6Xho@i^sQLB>dRwhc)O;-a1=-Gl=HKQ-DDH)q78zrLq8ZUIwr?)GnS4-=5wE zXrDnKBPRp@?DPuIuon|Zd%K6Wb=HskGD_qP1ZS-tt|jRR(>glO?u z{k7L$tDaYiDFQc?tG*DO{mVSGHf@rS6Ye0AZ(*sB*I&(m$Y{Pv5AY zZs^k@HrnWg`F+)C-;6k^cmk1QE42gpNe6=*Ml|$5VPhsOMZoAtO5Y1SXlt!>2t(2I z9=5YYO2oE^28j+3E}V8`nYL~LosXc`(jJ^E(7+YDIhKh)q?B+|6M1MYszQ=@@leotb4|vF;H`$-ryGTQR)8daH5k-DkrMxvdRX(J1tc47)YN z;@wTEgK|1RQ)f}`i(2S63j$6~{=l4?e;u6b=c+e(}*#gG)*UF@U53*5Z+_u%S^! zMMM78%16CO6M=eg{lDIiFQ})X%pgr!!h%Yxo&Ms#U%7rA3enWGROpRVTME<$Dq>tJ zv-zHduGi2~DN;+NpZa&i60c}mrq}-X@iMZ4-tXg9tVmz_aT7L0Km2h`maDrzX;x#_ zAsd$8aGE+$NhV|zt$CVyj#T1D_7pt)$yUa`)Ej?xi7nHwPfsD0<@ino5mBW}q;qe}eK6eM3DmT1kV_Rhyx2%4|jTxq9vn zEC2~3KNd%*d<)L>OjBybmiIiOKZeH801!-A{DJfb)>%%A3x@8 zsDIk;@kA&)pkjM;DaxJfmr^rU%xZ9GD6wM_Fln|5n)PqMeCPk5RSQ_3`9ptkK)uQ< zVUf5<)6Vvu_BZ~ydQ?}B>k|f4PhY&aMhcNHo?4PRR5od&8HZ;q4(wSgIVaVO_6|x1 z&=y33@#nBQ*r;grIPqPCu}Ii7r(7cdZYV| zEjXv&KTxZQRu~1G`6FyjT;KiB?xLE!i$b01y;DCqup-}>r3WWf(`ygX*dqOfK`E?Q z?=|T8noBKBF=jRJ1(8XWuCXN;o^=b)yQsIzx}TrO)U&c$KX@jS5UgNBBO35WB2t2H zz*8d}Y=f5(<*$(W%NO>q8yvZ*^bQ~)o1A-HjC#rxufIOH?p;fJVjY$o8OAK?Fxh>C z-t(vt%4rK@S=7_&0?c5UP`cKFp9kkLbW=g^p)DDkphvUYCiP!c-LRV2d=VFNDcbI% z$rwp}<*;gconci1=U18l7+s&fXV{Z^&M<%FjU%lI!l9jy=Sk+hSLr*4MJp{ZdYvW| z$j{t=UyVEF*+}qMMINJtJUe5>JYus#KMFw1QA+YcyMB>LFmtxT@^l=bXV)8=ZQMBUHuq1q-i~2XgRi9 zm-it_HIlFxnW?;kCMQlUy;@GYvSq%U((0mu=@HZZw% z*&^FbuGjJ!<8O9eX$XD9E(rd6p&VWX+g zTgs+tatR>=6GoAabZXa7?bRo1^VaJIP0f>K4)xt_6(EbY6uy;aP*9@I@(Dzoo7b*QQ%y}3P{n2 zlj|Smk_}*(GuRetInrj^T`TN;>l^uGKC)>j29Hl~Kj`}G6PkH8WH*2po4^NMZ+J}L zxij?d<{qqB)~0&VGOiw+q;H;gNAr^;;+%A0oqZPq4+=d^5vPraFF4t^ueA7enIE=# zSD`k|(chonysZI~!fCCx!jiWcc0y~B*3!v}j#-4M8C#`y&#zK-(RH$W$xuq`NdvyX ziG_Z=9w?9&*=EM0Yr!LpPvwSb-rBXP=VJ56PBTPHPf^gZG-0s{kO1(5zNsLIO)EHD z@IGg2^ye4NV>$YD(bTwFq!?m6CO`5x;;VlG8<1)O@PZUbKM)cei8_O@vjIeOX-bff}ItxS|G!R%A%Eu1L`584-qxx?PL(-&%N2EM&M?RV zV@oBt43;o4(_|m-tay&H{;;BJGozvgJWIiV7TaD=gW;8yJ4h@}u-6HoCd^oyR!Qvx zPH{wkxbUqCE8H}M58Fs#sik8_L^>V~kr+R%Iw%IxHIwYfhwc8d)mWBX zHs2pk(W1V)qIj?Z3+uNPHD#;xH;R(++rOwDwj^_k>hfO2`j2=N6zi9Yn)7|ddb2h4 z*joJ`YwGf`#rmgsEL*2fThk7cXAe@==m?IU@(k=71t#fn^RMjqyLz=dB75$!DNxuibq2Hrl)9==`^jlI)zx`#*kLxIW zT*l9mzqA&{z@g1`9{hG6!2KCrzrGYdI9BkUY(*}Zi zcvF*WF3+eMbWwVFE=b?>8cV>#i+O5FeHXufu`C{M{xG-WVsoQMSddr62uXVZykciY zWJoK)TqA^Oy;O!GoLm|31KFuCSASvigu2$Yl+g-kypXrbMJX)6HwWl0&eiK|X&G3Y z880`*TOlw2_eTd{|X-7*=)6u+I3=R@xpwyJ+^+z!-zX<<`Yy~yf%Z#02u+GUl8>DZ$ja4L_!bYWgBq)cNK*B-omyrgGgKQWC zQKfi@{n36GX_pVjgu|dAF&W9kHj!LhPYO(wllYUBS@O=Hc7`%Hmy%^rE9kPz&iS8( z1^4fMkFh!W>OJlG9Jk)}*GdIRzy3?%zqKzIv9FPvjn)f)?*lKCPREux{3m)E`-v3Q zZ`ZpXYgwS3Npi3)`jdb5Ve|Cef3|8m*G*CYLw~@>4gLN)bhKF6?yH_KD?D+cyZu7v z8gtz#;9-aaU}<{Qr(YPvdk)fD{TlwvXj#U@ zf|PV`K*7XvY1z4Avy*+rC;ut3U95gNRTjJARUUV-$I7qj2LE|;j&tqe^#2-tfHw17 z9sQvm=5eBF8rn0_!&;<3t7LKu7;LcP!i+-)BdU9f7t8h5>EeWkRcdX-g}rG|ra&Ww z^spx_MbV7x#4<=dCFe+qH9p1D#VuY|M>Uy`U$fnfp(xB1Z+O|~bpWQ}k4o~Up;lwi zA}-pGYQ;!I_FH|drL`c?e9`8JPkgKnn;~+1>^lw!=%Q*?0(3YK_Thh^i?N+8nJ%XI zS?be-i!JP@zq^eTqnZ?#Puqw(@MkoID&33-{23S_g2QBB4m4yHP~bF~DBTaW&AB2H zV9h!h0t9)|ksxKKg7ZN+LF9*R6&+Fo4=8q$P@35hn6BjXW=jcDXABFlY3XQzRHvuH zxP(2|2yig!X6gq*2R?kVTQCY%pTSX9HV7GZ+rS}xZ_&eus=l0082h9!iz2rRRBqVgctEZYQd?us*#fI}Ix{7P0OV*BVMK{nI4SixS@nVQI;!Aspp&?fJzP!EWE?jOtk-0=> zj<|^oHrf(67nyd9<iIX8#m0uhryeb<41~W!wP1zt(tg=V> z-~-Xx71&w!%v7w*HnpFU47I6(p#)oo=sMSz2G?Kh;;%r5bi&XN``geibS}(e z{H?9HCF5gpH(GJizZ5+xvWmBU8B4msO4<>RYiY%ukH@vJ;=WieR-%ZS%VR|}qq&-K zUFSe!6Ppza#7TfOoE8IVV&$F}k85nj4W25RRASJW4>6s8SDq4^DzQr9%}T6R(wdXh z;11nogBw|SCdxcXVreDj^^LzWW6NqoWS)&SqnEC?GJQK$)TqpAR5SYUgqhsXNjblHywS_rY$;)nFhMfqRKA~W?G*i*uG$Eg}D9{XAZ~0-^9wwtcrNBGHWUvRaoV! ziMjLRxkU>kR$KTR#Xypft*LL-oHbuOSB15yHv9x77n;fStmM8^#GERuakZ7FDS5Y< zT-Qqev>e&&5rr-HC`^}B(WQ-71JEiHkyzr7UZxmMAvGps<@{* z^N5<&SoLaqWdk!50|oF&gM8OZz`LuBIW93YlWSYa8D=@(R%59=>o;+-nrxsunKiCi zYHUhqmuHU6_lG9YJ*SIdFiaV6wDf?O_&lUdDb-%2cZn`l(G&{(`gT#hH7Fq0wT z8I714Z*3~ydqVW6F0t%iy)2gFVfskGauY$$76;3L%)b({MGc8%ml`oF=VJ3tte}d8 z#`-1VGbBG?G@{TE7!`;Y0Q(wv6`5cNi|v1 zYQv65S~LMGT7bJ|CjbtP17vLPgk3Fl3p%g78{gQbeNKJoJI|h#f|Y8Etb_{9mTZT>@Hq(SRAj7uKR*=bQE`mS(j>N zHkXktU}YP+kYJL<^C|e*6=o0cKMsjzDagDymhcwEZK606m`B*#)fPzByc^y)G$3B9 zz`2XWFA-K-K+{;GT2DDsay$l%$AZ}~nPA$Q$#czQx0NjB8bv%*ht=Rc_lmdcpy~xi zTrT3wd>hSt&_Nnq@cVMHy$-9{!s1DGaIb?NN;DRe;(c-u&1?=U+o2_*VJfScoS5zW z71_k|sgRf#i1bvJ#eX~^0(Dtx?fgW_g0z6$M!c$@PKgKWvdY&bEN&8u*=NLub=mbS zDyGzBuQ|8&3TsOu}=t@$0= zQj~x{)E`ky=>T}ih_G^Zz?O^`F{K`B7}#ho8VrzHICzYBpduzk*hv9Fjb! zJszqDN+_ej6iaP$HQ;v`2>{hHE;C9n`iC+@t}?Tg$imPCB$^oBKSn2rr43jLM|b|x zfK{z*ia&4zu!ZF|fy|{*Uqd!i;Tt!JMU7c)JflA~X5C?6ibV)Sw5)q8ZB{KEqc-B| zTK1L=_nxGFlN(7=dqDLnckeRNP{x_|*=W^fY$;=x#OCI#KAR^lHfPDzr|*aU-ct9I z-WGj}2iD#^(V_*b{FqsUp_Z|<$AH4-%+`RHFlmKDXuKU_SNs49)W1^02sFYtfI^kX zJ+M5QV$;@%2`yOjl&upe0n(Mk8zS50x#pf$BC@GK9BaW|aa}Stnc}IIEX+nmKWT}h zJnVe5s5KkG_?cDFCvRdu+SyLg;#St;I;f>#g(4Zr(o09*yOmX9W%Max^lhxpe>5{f zQ!3@w(n7L0eH&|1w#?@3*{gJFK@zj32cdvq?`egjYo=-F4;8u%ONUH`GqJKgi(D78 z4Hz0?itmukW7=d1_*^!x8g0~py~UG_olNx4OxQ%(7>S1-FCw;`#UO zEJDvZ9obEIMxW`(lBlP|hj*|?c-BI3@-I8wKo*LlNk_z$OfGh0@`9(hIV2K#nJgBMdRIrij6Ze&!7}}Mrht%MUC2}HHXdu zDP)ABx@mwYNX7~k_0m%waSB7*WxBIAgT^=Eypu7N0cSTha4|RwOuW#ErIsDt$*;4D zRSn%!*(@tMvFfQtcNkkmqdnRIg-i)wUm(if4iAvO#N|%xhDzse)_QNn77uGg5+(up z7)%v+c4jHHc3;4(04Pncq==1t#>OF4=3bg9dUs|G(y6nl*D=kcz8SrdZSGRh8wgTn zV%*a96YmJCfyS0e_5(&5#xL}aRIW@zK>DBLBOtXbS+R1BvQTbvi~n4#PeVqNr)Ot| z#nWBb<9FqfS&g>LWx6i`A!E#Gj8!5VNg|T;KseYiqUE5fOI_H6^c*MeU@#(g#3g+z zz{TB(CyroOa!Un2Y!5N>P28iFPJ?36q@#f`b{lqMnTf!r)apuQrqLMia+rqb@RFx< zt;Af&P|E%!+T6|ViI5Z{#Wes(#wLj*C^_ZIBVAWON~;!HraMx| z#f4^r^oTK0Re@?$xra3=hxv85m*ufSN=S~)nJ3D?BV|KSl0-%&-fS zHNyc$X)+rwJNT#eD)}cxQsepgkEAztB%hipJrNXaNr%M%Ar4lb5)jjD)uo=K)A2}yQoyLwo>_A-0Pz3po$JnRx%US_wIU2*HY!Wx&2#rczl zWn#-cA|jT&!crq&?lvlcEk=Q?i3x9*@IV#EkODiRVBJ`qDkpA{YDr2*lk!-Y7UDm} zE#27j|D2Rb9TQ0dBY|E3zS0UJ}gIYji2Gi}rf|a5uvD|`+Ttvc z{VGf{8=nip0Zdx=|oP^o6 z-H5A}(95M+iLwN|Tv7eb-lf6L_ zE`lW4Rszp3B+zHCB|}M}&MH~rfR`(A0NK$bH?f##U}1}qx9HiO{p-4!2KMH$chm>$hTQ8fMklT6n++y16 ztU|h}QHW*nr?{@3#TMJan-!YMg@oMh|01{B%#AJo%V=$~RDekC0&H%_DG3M#Rsfx3 z#6XQ8VM(1JVX+KR9}&ym-3uIFZdo97ff1LUX=2P9EG6Bz+`!na{3rRDE?F?DK`xV9 z;ARHRruoU~#u&4tA=WoVQU?enCSqTsPYcmtn4i>%c!eliPn9Wea2z}yVl1CXEdG? zJHJhs89l&hpsw%`(}o!C4-y7r4TG=+3{4Y((m@=WFIKcRl+a*t7j*M%o`}59CO#a4 zf?EYSyvNiA*F<6%iqtl4s-Yd;R0Bo(VosT~^$`_6U{mjo6?_P1CI9QzoiV&Nu4vt; z4_W27U&mQ*+17~K@3VIr|q9Rt$POcRX>X{ z8SH83)XrtFw%1v%3*f25qP3%WqGKkTp`OSihtaUDEBLLVozD{&GFh$Xj^+{HhYAGA zVVpXL;FM=c0+hlBoFmMlAA+=oTvQFCFslBrC;L2M zOBXkniko_|Z`n9u?+w-CIPrFGHkjwllRBZQ#q(-_deMO(qzoD`KLRE5M58_o+d0v* z4{HbmYJMNq6&94seb~Qv|BK>Zec21_yx88C)noew@5h?6{m~oxv7U}XP8qt1?Q$YOgHaw09It%Hmvy+}z2qXEE7+uX*G(RO9CD(;>~fF2x?qZhN; zb~_s*wvJ@!3GIZKVd{EB_ff1_>KG?f)#w#Sa;|AXOg6fZK%lbS$fS z^JY_MByl@OYFbi=e3-UTCYX+j)r~uKVr~iWnh@*9vOCqea*Jaw`bGsS>S z)&8WSCi;5B%<5}5L-y(NBTa}*ZC-C1m5YTFAxf&SavfBnee5IEI?W|2t z1nRQ5mjg8JS9m#S;@uuf<+5YwpU57)AwK4DPbfnsHT(%Y0i^P4CSgmAe_`=TW4$}1bQqX&3O(E(YQzZIKVx1EDK7oXP znS=@VweaMyHf0;|U=FL>=$d#mfb~3uyuhGBK|MJ+tf)eNL&64$Lj-YXSy|%!$*gtx z)vuV$lCJ65h{I7y)1i_Be**|#yEHQ36_Ct8Cn$FtRpL#Lm?gI6v4R?xoULt1S2^k-X3S*IrY7uj$z#^E z1rZZ<#CN(4XJKDELfkzITi%Oe{w($)9+hXaXKqU52Uv+9E)FLRFsySka7bAae+fdn z)oUrh;U3+M0nvm;mK!pYcKAF8fki& zI}NDCvf;{PlP5d+&k*vGz?iqb|gVUHPnr3wtfvdAgpSNh2O-`oJ4wZ@s}e zDVjvz(WKkfiWv#iyBC5r;jklgE@)8Rbf)c#y{(EeZGY_T7rY&ay-mT}!Pwh*65O{v!!s*8_3NL3M$N`HUsHia2+h{N#s;$136WY zH&k{o29bBr2Fwym=d(xBN63}l8b-}{jg29_OKzo|kyf-Aobeim!#fECHm!GJd5p-y zh_OHsg$Q4Y#8k7@)y@-kgf{K%C8I1d!g5;!%ePjXDHas4dg(ca-qnU7A$SxW%S(7l zk4H=%q>Pu46}T+`{XvF&DK8U{PRMl8uoF@yEnDUZ*lDzl@STBl@LLGlbO1lLXfFlz z8e%2)X@6xBSr{k%${>hFC)AY{LlB*o*cLhmqm9R~#n>b@NK$b+HGx`pSlZ7HD=A>1 zB{Gpx5YmpAd^Hxi5s^oY$jz}xgtXs{$gQzRgtTKu6Qc`z1DI%YZG>vA>Kh7zDS;qH_q=HTQ2ZJ%B6}UiaHlezt%P6AZ^QPu`tRW2pD3Ayf1cWk*KhkwZg8e6CMq( zk(*?_4&C7y4E*~Ph^dQNy#zGCajfmp&c*DRYbkbp+U%K3gUQ-P3)0>xOru2;VKRES zX%!p_<<2fMeaHVuQ1>TF>Y_&vrD|DW=;)U$>4xJt7?uvcMXcA*@5X5-!)_4|ydls& zXo;n!xXoAC)%_tJ{fgb2Zs?H{@)X*vOkv71w0?{wfQe^haEgRlo>JP?wQN13w8v zYfprTP<-|SyF|GnS(|J1hgSQ2pXQc`qb$*22^++>7Rc>(aBo54c00Ot2`glgn2Khi z^!uUp)E+lp$IjP^AC|F!tiO16Ija@FvvKrl2_1RVi0pP??I7(Ij6*l6|9%M$%DKKaFd7ltdQMh zUWOvp7c#mHMc7xe{VBj9Ab3Nm-eEYWZ^fagvZ&#z{~2))y* z*nvBW^{kWIIu<7$SkJ1t%yV$!t@YR_?i6Fzvo$dliFjoLRAb{Wik~;Ix-5IqcdRF? z9iuLiakE+_-grjpJu!JB`!~$@(VClJl_cft-QTnNmU5O`f$IL3QNBj|v8j7GQjVpAGTo7S<^~<;{}l=9@SiT}~pFZDG|?V=Zh%Qw07_^iwGgN!QVd3tL#tcwaYw zis8f`SJX?l)0sU5u`P_9cA{5_){x3hq>C%B-z8reNV4%V>Ofm{baG8CHI7FW;!@Eu zKe8aZ?xd;Wb7+GsTkn@Yu?J(0dhmNP50H!MTfx!BM02;Y>scd9HRz0`V_zTeP}!LFt%1ay@TBotAWQ#h<>>P>9<=bDKV5#G+Bn}>^d>O zFbcwGd$D~Nl&AZmZ|`CcdlHt{1hv^u2XM+{M^3cqL1;5x2=gS^v ziU147iReWrk^t$x#9|gUDM8@E`HpOYc>fZ6zJbLJuzTmX*g|rxRkTo=n(vBnTe&t| zy2P%3#)2jWfVP1ktQhbC=}A|(hNK!8U}AUe(+vhOu&ZZW{AINFWu`JVBs%hM)}H*L z7ybx8jJQeYm^Xesq-1uN-MnQT3ju8a2?}oQBF-AwQzY9W42j=~qnuZ}3SdSI~xrg1S&;cepgQ)S6gW1UOa zgo|SeUld<0WHBm=p_N4TGeJk|`*;HuJ>ua1pw5YQbnz+weeVn<8{O4=hv?)@53gb^ z_T}_OwzS#Bn-*{PReIyN_rK_k;j+{+y^$;a^725uOJrH)cF7AYDcibWOGC(TCd6DT zE)+R_9*N(Fv;!iw*7rw9Yo)HNG1fzf4Mf3!fgj*GKW`GR-4w=Ie37%}QC0B-zRnoC z#f;W?+z*vxObntKS}Vo=0B;y8&4f|!jNefvOKTeBci&@?QuzfLh@!iBDGPKz!$upk zf=iq4>L9OA<9c$xQt=j(kghaMm;059#CulBE-h{j@i%z>DUlcA*IPpW))22vLjRv3 zp6!T4-2g`rO&(UY)6dU0Ivh(A%SBCjD>1^!H#Z`DYi zk6j7f@JI#VYBZ9BLB5!BaPEU|w7Ea|Z@*O|OEhkAEL)=3S%KebH7k4_Z%)m6=sI4` zXKKo6!@vE;R*4o_?29H<#1xWOF5==?e0)X}R^)W&qWGyIf7iIu5lU#@!MZ1wu9n3e zqAv4FN720!|C+W*tt#{Fv^}a&g*Oil!|f(y+{KSu9U6V03SY%oj<_y~-|3x%^Ty;| zpbi%=B=LXNp5Tti!z=QO8`NdEuq0w92SOm2H>U#B==z<=%-lfd^-bk=6Le3G1LE zCUl4zHF%roQ^~wpIZljYtMfO@%@sv1`0ZU|q0?->jyU21Dkjwm?U%l&$?1MYv8g7n zW^Ip*eUqNCvx*4R;$Cc#l4|j$1l6S$Z&Jx{MWiO!)ZcIj%LZeq7*LDXsBdo9;FvZI z+8R(e(roG;V{1mkPyS^%R9;ex(-!YQE#87kO|H%5v5DJi^M>YkXJB_l`H6QM3ih47 zWp%>5iR}hxdky@JLM5yysm(i6ah1dT?Xoh&$S^N^!Ivls^QPCdV;P3z(p@T2Q+SI< zjpl0EN?MpzH!dIjkD`XJpOd+*3o)RDPE>V+Hi7=E6yBhwQ8W~oBoX5iJU|0hL#D2P z>UE|#4uv+gv{HoEwFXUUzvhTe5q>?ownv0_EZYY~5njJ+>|YVyx@@dghnKyRMZ8sq zCsWOX>hSh;OZSQ)g&BuDz%Rf%B(imQ<9}QO6fklWZRE4npKLu1cn&@~^q+(_D!WH2 z4*C;1sk{wbDpsfRoA9`p%4^|Ky)J*7cHx8T@>D)zwJ4~|>!$u4g0PEC9?mYpo24~A ziDK8bHz3Yt*Y?yW9l(zL;$mH1Pu*+y074L_+XD{fiI(;Ft?dnDA(aC?`5`J*JAVZH zfy$(Pj71Z&O#rK4llvM83L~5Nq8_isi)M%o^>`beHAA@S^IF$Z22yX>x>P#CX3Yp2`}_V@z?Wf#de0DZ>hso-HGK^Q2)1V~Q(P@ngXqTIKcUFJfHY}1*3E=uyc@7HTTZ&3WaqTbh z^UeJJYYn%yZWpmkvXQ{5MK$gWhkNxiCkH(ZQJl3M6JRGfk53j@6&S=Mbxl<|Ij3*x8W%VQ?>j6HI zO%#nD*ppo}{1H;{2Yn;F^ zKx$WTSHl}gN+ZDUiAQ+N+E!bx;?yQaKEiLUVl=QdZ$M3z5<1l3xzU4<@NAZDNKh#x z9vzi_UD*4OXi8m!wdRD3BLN2?$*X0zQ7W*@m#GN+F`M{ezCyQiE|8J(GyoV747+r* zA8fM*Fhu`(mrcF`^+37_O$S>vTi6EhWV*P8Y9qdnqkp-k2Q|=>Ocq48Sq>Rtm19&U zMMyI{9qb4&K*7FxLC9DlV)N;dPtsew>2hEm&K)hzMSp&YT7po)1hDP(! zK6w)03ZJ~Sk72uo3#*Rfc@te&B^L(V=wp~ytjetWyP?Diljx3Jk$GP?7T4+G{>OQZ z^u(sizBh(h&9ws+7QZmOST-~T@&Z~?Vs<~t4^*qH-l`S7VhjU0ZCE3Y@w0{*YEK4K z!0dsHbQ+V`oP3;D{$IE$wts>*NYlPL1Q6TES9o;BncrF0rk1>1Bq0au4Ld6HMFVD!O!n(;~VN1_+RV^0$M z&lMj%$-8=tWQzX&NnWROu~9Re&9ovJB*p+9MWy2Km1ciWogEp zlqTSPA#MtQceVR9;o3Nr!^A=TOEhM6cW6KT)tWa}v#otf! zf5tAGr+pAn9Qt0838ox~4|l@HCJW{vZKJGt5}O!M1?1Z-l@ zGrVrHF&_=5Sh@)xht_Cb61j(;%S7-+UNxQSuvRgo9W;!{+(uT+y;))UlOv1` zJ6d4RrEZ|Q?oBeCQwTTE1NwHAx#UMtUy zKz&uIDpvoKM=cLn%mt+bCN@kCgI?mh_`W@&`^zwckJ>J#zRcV4OPjmf z-(ey`dsp3n9K8V_i`f{DB0h}oVy0=iyBNMjfy)xMMJK(&8O|?!C#H1c_txG()rMI! zwu{m44xBP{YoGPdIC!J>O^FD+%3JcnAEVl`luaz`n zn}MiV7hWlK|M#M68n47hY!ltm`0&uaJ-B4TEpJCtwB4J9yF2fFWn|V5VqACr9C@o= z?9Ll^`9GTvZ@VF<{9pZ%72&n!=Y(R$teHKlH~UWZfTcUx~6 zu!w61t+zpx2AVc7`qP8A^VVA?+yS_jf$Pj5xQGqR2g;`Fjq zSC|#!8_C!zxYfamq2D)_#in7fHyCST$FxYBZ*pGD^v-rCar%`%^7KMVDVL5`k4DJ?< zTes*wd{N_Lp6uL=%V#!@5$!(aDd|=oaAMqMLWV7pM+_^LoC*+WN*#>^DBWigJ3Dyw z&jZTqH>up14XgAQ03M8=A2fieWNFVLEJ|Pcp8$*wg5#!(Zc2&SW$70GXyZ@#6RgGF zOq%^+g;c*1QDa)`v?#-ch&m?jcqDsf(Wkso>>IEo?6->dhV+uU_$h=?bYa!ccyr65 zO3e`uea2sk_anCd?ubH-j&;yAnt>e)8XW8P^1ef0aUH@a){muqrCP_kM!N<6jwqEz zAMQ1>a_Y>|*UnH5(LJ44w;Cf|oQ9?Iw(a9YL1s_M`ltkQTQae^PMTGDhgb{+2u9lQ zeHr}vcwgfB{sh~pwB0|L!L_cj!f^SH{EjJZpreqx4Uc^t^-51Al7?crY{UjySoKQV z_OBUyEe+AE%=qzR>Ra(cCLc`+D|_);)^~ShUrMqFJH?4U&>b%8$sf0%tWF_X6dihj z)tK3>1ZhP*oRDCZ8~^S^*khEtq<7hJ<&oyw`jjnKlGMS31gqRcDl*FbvM+zKG+IPK z;f9c?G3}uB5tSX2aBYKr+s2`McU0TW%JwP)_NP3cdjmQ#MgHT)ci|d zV=-_TY&}E8>S6o?>ch6fcnpke9 z;LH!2VQ@FiJRKj)QEsPPkwc!AFRxSHsZkSl@tAgjqy`N9MHki~oI4ZOkLC}-Hz4}i zXugoahdO%WSni^LxNRJtPu>Ej#_ODdX81B)=N=F|@ijX6#0TT#bHO<=U_5W1 zdU4T}NAkDB5eH&jjDyRWa&$b;ZvD9nVlZxU=$nG6E7iLkSJ*%n@xeEJFid({d2>?C zpTL{qbm5)}{8`pJ+F>Hk=4`asl*9M2Ng_HKBG8oR&yz|2KQelG3UAA9$eC$Lhm&W9 z)px1a5ET>QKI5NgNPsT`Y}P4KE}I#BeHy=yllgT?F2BjLLmP&Ba=NY?`*;m~IRd=F z?(2okv}OD@P5g;&2CvTGH&S_%X7Dzyb*YBPymJQn9+55bfcE6*BYFG)<2w$CTW7(1 z2e*o6X7PHr=Sh1jRpN(f3d%pqYeq8lO?g-juQDFE(4b;pFbkU7nPCF$JuA9q77Tjq zK=fcfPqW8ethdwd7hcfxz{hXBVege|wfJ}*|28<@v|*znZTw8}$b5c7?alHVa2TR= za&5Aymmo?aP9sGNT%<(qd|szUF}9G9Mf_?{I}FkeoV6fyMgeTpEU|AsZx}M|&~Q;y zU`NRlH49+w+nXoa7x1^rYS)$*@CMg1Fj8f>+>j8uiY^Lf8@L@vliRf*G~h*lpi5~O zB(x72CUf!f0{9LT8|R(TRU4l5W?Ew4}>ghR2K zQ8ZO6*(-X`P)?(gW(#@b850j|V6i7Hy&)sTn7PR$gbh+LD*CT55??Ijt?I_^oG>qi zFfT*9@?HqxS_BhRUT$>CA|7H*$2lEvz-i4}Ns5wR9Y9E)89K#ry29)~c~%w!{7aN~ zX$=ge|CZU+SiNx#W6T2nagISy`Pv$W(uaFS3$lb{Gl&88^|0+xI2y#iOocJ*44P!uFUkTRf16BHGc zAh=OlP^uJzq98RCm8O6qqEf!!n%V7~1km>a@B4qA51%;uOj)yLX3d&4Gi%l&6Qt~k z1+v!&ggdOPWC3>YOW588&|x{+hQ%+GKh7-~o{VA#4#HV3JTO8#$QN2b$NI^}CZ00( zXE?|DS&B$06E8C+UKSC5Sj4Z9jEQR^O5_^HdD3Ti%ZtB=LV1OR z+6WZFUqs3vp7QMym@8TmnNrA8RwD&}-ZFr+4+!JWjsdg zw(nE9t$efqud^T!;&<22GERfs!hznTg#pv_0~Jc; z@*lM>2E+^i%RYmW7{dLZ$t{xshzMHdrE@ul=MG+w-gYTGo1lF-HWxP{_RRrKy04}~ z4)~?9TckV6Kp^*{3)%3ca#BQ-aDWaYcT43*%C1b8FOzH6S>`GhIi?aA z6U9&sV0p{roYVo4d4&mUND+{o*O*(EL3+t3oJ$(-8N7?Ih|h&s)dxL;!vpcGXw+Pm zz5@LT$+z7KxIKaBi2VHZ6T5GPoPLd6#5g=BQY6E&Os*bmO}hrZAN^y6T-Wv4iNj&Yl!p4aE9ddesj*US7rU3=Q>NqO_ANGKrCi^RfXAP= zSn*0ZsqKM!{NOJctn4Vy3~_;a?k-E!;x6!Mu4-YWBHsya=oK9b6Ngn-L0UTg7HhUj zzVz1PxZ9IcsPuiD6!39gbj+xt&sNEqS1;erCjnXXaBkH=UpT?U*bF1f=}_IFL`!Xs z1WK>kmWKgme=e`Z`@vJ6%cJ5Dj@%>%WbWK*vwQ`GuWys9vm=`^$oP@41p*|()>{#I z=N7q+m9qx>VTW9m4c{i~PMOjzm~f&@b(Xpn-6IM%b;=ZO#kz<{Ud6+EqIr=n0}RKs$PH`R>TYG9!O=XJhZQ7rjCKE6?pBtG&iENVHlrn4w)JNy ziqB^iekm`p^)K?h&Y6+!s+Sf0BG;p*dbByw#RI!MJS%4hf02_@zFO`R?1mN;u0y9A zuiynTY22kBm8%9eE=6ZRo0GLWDyKF%UCDN;rwg|NoLNJ&Bdn$v%A>r7S6UkT+S2-6Z-j@C!9D$#9>tjUgCn4S}IVRtr zREhKB>E>q$@Bgef$^cO1A8@TwgRGWaSY0%w$=G7xWq1N5?BS#^htj=)0HF!67R5Aae9# zrP?*NlBVBzwTUYIE~m%3g|)L5=+5wxnaqXmh8Y^P6|f*>LyGx~rAx}@*a?C33LSj- z7kb;&WaV|ap*@3KElN~j>xc+VW!czp8K+lst*YGaecK7uZEHVbw$&8uYux>m-%W}Q zDld6UxsMdhX}VIU9QkugtkS#e-26uc<)*T+iz+DBIIW0xx)`k>cb9zja24lxW80-- z)?FT_G{KeOgKBy7IrJs;+0xzSsZ#+Qp!b+bZP9 z=A;*IaS%I)+KCOXruYM!DN7Ef==f?%6F)5^M$N+a7%ipe-ng;C zBe%#m-|mUAK?@E)HFjU`@i*TRF0gqN36$Pz34VElZr}%;;+!Hg9P#EGE)(EJk`8uv zg_T_Axm`Fm;ufl$V_mwIqa8R(j!su<+hQv}BVLxSJnx(l!_l_)!ZG?ni%-?4ODno6 zbL3|JjFRIXCbtM;Zu^AW1QA`4aCP41TbEZ@VSQoTUZDWtxHdznX5+}Ot`21=RowTp zQdp`dw{9+Xg@lc-j?Lv8=#-c`hwib=hMCHZHR>17Pov|GbQrp8HQOQvpNRRw0{1th3jlZlCOI zj-jfpL{W7j#ieFcwF;cPPU*|5e(VNO^}ZWK)lF|yUXUF~@d8qkx9S7|shS08%RiN; zl$a@XIKyWDyj7{6GJhZ`M|l~HYAh6Nl8wJrc?2(qVsBGA%0D+?J#SOq{Kwz+#$b7T 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≶^Zka}kiS!ap@3mdy+pgzEp=|(KFZbt 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

FaAl?ihXlV24h{|qX1E6g`v)_E>s?<2`v&_2 zdj)$2=O~v0mjVl17Xp6;&ISGqoDQ4}eB(MF80pGT&jd~dP6TLB`YTz%vB5FH(ZNwc z5gZvDfwCgOVZoun{>pOKa@QXF2n7(BROZ(7@1uP)6trS$wgpcc@n= zJ#-~_Id~~p5;zh#5ZDpe68J5!TlTxybuoB8_*d{;@NDqU;2(iQfqj9kfu91!fn9;~ zjzZU&ApM>K7IGXpj$ah|ztuHI8Dbv-smq8bb8;8FMfw7o@(;Z{w ze=1~bz`OrgtFw{I;d`o{E72No+r0s%*)-NI#m3w5cKXGV$kTOhavm(v^n)dlfpwIt8412>>aXqGTZCGgFNc5p9%6fcPs{V&v%i!AM@+ zrt#*7BNyui`MHvazuuIDE>Hun+JzdC0*scSMy7KXdVOx(5=sa*YwEhQm2x%!Uo(9yW5uON?0hE6jwo5qRt$u^W z&Wsb9o^c{_xIx3`vnOkMIwLG(Av9~UM!``CQk=#$Jp8;JC897L&=Lz8Q_tGNif-#1 z0CvsjdjmE-R|16X9T3i%9C@!{m6ph3pb=$g_IRmREi>7NmKRToENIxE$?1tTQJGKY z_oEVSf+K$&o33^b+fr>HBv6H4XFAu5BI=Fb*Z6s*Erl>+f6$(W2merCIViasN^$5v zNB+F=#-{mwQ}7mMKrE}^wfULPr`y%RO4z0skE=xHMz{$GGYj_7>dPtShUOkwaarpxDATWEq}Q6MvDy<~1tC z>O_F5pcX|AHt+a&;Q%>$fSxNuy6pjU3Ikyzgc%Y0BAG-(fTHn^DGUfB1Lh#I*z}bc zXgT7u21I(bXwC6h*rE|V4z}o6dzLIAh5IC&jVNRF0Iji&1{VcI9=ti#iSj7;$;}OK zh=FVNfDKf*`i?BNIA=XmbjNh@!aP>5E0760@SDN?O~yQ!=KY2WCc<%3GqRP&Iq>x>oHK zD7wPkH7L62-LXd9K+(^}q8plpRHV}6`k+hbrCD(rYrx%c;A-)NY7$UWBKLNkafn8d9$gwo zZhOcdsq0Z~L#Hr8x?Y?0i_Fw`Z+hgvHNS3-H~;4AqoQRTvL&H{ z=2ycmW#`u|)Vw#lym>YDYpoWo;w81BI(fos5xgJ!tN#w`XdNp@Yc0D*EZO8qWq8M} zNQsPm^zJe<@-~XT^yu3Z{nlf*KacFhX>N~|qunmsAA2{}kvr&}0Ncb8v^J#ywL55O zb6bFSA`np?Z&KfCAf!g6Ay-=~Hhmt~+?o;>ZtntY!Bda_!qrSej)atE%8(tNOeq&B zUVI%A?Z79$U_V4|c5=!Is!~33ScJ>i}XC zDL0U1K?-hpI*n;oZ}lNu^J)&=-!0xvDTr-;rX%6L#8itX8{{J*!UNvei0WO;oQ0wB6D$$??1VmVkc?DYpo zLG#e-jSM&rj9G9HhhuP&k*`0QYA7vCl}ZZdX(VE5ZmG6VEVV_2u5B8UqQymcC-sK| z0YCOLruxE%U9;wUgSPUcPDMWI`Zj4-_IAzSP-VRHMi-9AWp8{%j~;J6PHp?{%~}L< z;LZ1ghR!DJfEop@h;;4t(p^-8)OJvvQl&(6nPT&Me45i#8-@A3$N&`*)F007VF?cH z5;RN^-}^U4ns!$oD3Z7X)M^>PPE%idTDv=~H9D~pf%NQj{Ik<5Ks7HWm;PQ4ecQAx z(;OdAPd8g*kqddbd+qzOWjSF7iX3GG-B6N+J(~N$fJbv^o_hlx+EC`6ru~~PwK*iU z(|=NZ(Lhn={L_)s-P`b$rz6eZx+!3mN*mo#rz73odWEk(9a;a@%}x}9q9U%h+un-m z%qlgzp)S+2WD7JKp#fp3k)q1YdPu8*dOm-!i5&x7*rARiB-D7f5y#`+cbnEEg0brjpqWB_T-L|Bhb3L3 zT_fI&wQJ$KH?^8|T5HH{t+|R$0W&h}))9+$cQ?XEdBn|yX#d{pVL7dAab2KP@X1NV ztx2`>!_>%{_d2IYeIS!GVooQA&NN$sHn2sHXxLDeV$M4s#Qu-EfnZs>Z_E!)iQNAF zBaawFpxLjbb9I%~xzgk?G@M2znt4)Di@AsyAKCH#la>Ot^#`}m+?n@Yji1tZk;+{J{tQL9XlV_9TSl6(u5W0Yt>CUshc3_&>KX zRv2mg`6ad}(kLy3lhQKn39ZnLDMxCRW>9dayL*tT1&vL2Lv`PbG@C2Zo+H?l^x72` zdO?j9!z!r$U0&E;=bScMC9i((CXqM4{`Bwi)OB=ei^3TYt{p(dOV*1JR zG&gM@>R0g3)uXz4EHb`-^|Xv=jTEA9JoO}XhyoEo&o<-mjKzV6>se={!qeVPX$Rti z6mj%4mJk~itsW!hj4)Obo9>hg3BU~%Z65>xiY5XE(#UBIRT6Iw^Q!a~s|0{Z;d-Al zk%tH9HPH*BfR%r0=FIjz#1yhdTs$wdJa5OysR1|e?17QcglZ9Opk8MZ#OLo6sV0Y6 zKx4j!XcOuUqds+_0=@UDNS}c()f{9guE7%8ffXT{XvN%putB%;i{~SE4tj_erAG!2 zYW2vE;Tju@NX5b7Tgz@G61F9B=5{vfDOY^t?ZI{L z9n=$|rR3?bzY#ViZmF{`$$iQqtHrXY=hV5F|5x9@>>QlWfWv~mLs~GF6)DVYleDd< zx?$+C`NA&bQuJ9zk}=E?-_WMM)m9?jI}ClJ@`@4Gq~fp<#38FG`erx|4UJanV_+M@ zUNS->ZCCiEI9#*yfb?`v!K_MYi)#pTNL^`&N(SFuc8j)n`l#Z~Tm9J?S9X+jM zbxC9ZM7rEbMMg$)*|35(!~e$G7F{7M!^nedE!EzNVFfXGmkV5nOUnx7ENyz}NL=7b z&4LXh`ng`S8i5MAZttcFB_%coOYeigSu}`vKuZz{#t?~OdAU*Pdhl^Mi`_<3sA}3F zMHY^G!tv!%n>sjBd3;d<3b9kQPJ-bmtLlVX^FS`jEBD%c9D@P7zs|i4kcx!_b zYnLzb&WZI}Txa}Eb;SF1H4dKsni{ndtZ!e7iM&BJ9eHu@(s0pi9Fg))Udl}2v=hMP$US#65r)a6T zFzpU{+&29Idi0zAjH~y}66*yAr+>eD(F1wBkII<#`%SQoEk{XKb?AX*%d>DGCrvvlE=2M1&KoY_e1%p0@Hj zr}#CK3XT+f#M#Qo%kyWm36YA?)UY+p_0^F7G5Jx9BQ7lv8;Cp|tsYZbXwC*aDGWjO z)|8m3xU}Yhl#7by=|RhsRX7w)cXW&E-r{N#-cEz!BvGdU(3Q4sacdrFDl|PvUDg5? zXoMA3vV>HrwbBZ=xh6C>sQF6aD?Cs<-n8q3>y3@Pv+z)o!G}}e+<;-A1WXBoG3Ywo0rz9InN*pj4YMl z0=0oJ5AA7kiVv2)NLe>8?Lv?GMK#qd&kdUL64NNtpYPng_Z^izb$O z?NYT~4_wibu|R zQzGqFHfGBr@2pJ5Z~v9`uv3|}vMxWmDzX)itnVV1S2pA8zl${cwjTR7^5nO5dGGHc zpW`ukO(gHzJ1{+dL(0mCXBA~_wyG|_^j+l1Rc-jTHId<~+NOIaC-?=L(JQlxAeEK^1azj*@4~@Fn?saSFwJGrb`FyG$n=8>z6q ziA8EssK|*tu)am=u0t_q;)t!h@bCf2VatFuh}NT=^$pm9f*;o3$Qn+&MNTp-)Z7Hu zRXr{?C9L_iHZ)CGUK7^fmp9ZZzq}6F@KMdFPJ?>j4norE>CEgo^FIN zn+M5In3F37eo}0DW?tl#&Ex7?yH!TZp7BBg|5_;yNU2}X$cv`Yym}ma#%VtH2|7zLfYd5X`3`l{~9gzPPbhud89;}`)H9T?3yZd~n z8eh9pz{n5@z_LUe$vZ!gpBWHoabYta1@4QtGuO#fIq@R*UaG|=6})ljDLY#!mN8bq zGZ%=DIjc+0aprR+XJhdmeOY0(7(bUQdfHhMpOq)Z+F4zeBbM1&#fqn6Y7WqO5OiLY zD-PJ%kV?Cix#D35OXe3RiS7<|OC^Jt(V-2p3)b5GiD(L+cC*_!Kp%9nx)lyeP`d?sFjqY3W;cqNPUfk#&1{>Z?~bZ9F zhj^IBiLUAB&v*}Oo&t>%RxXe$8t=u%3eyed!Mc%bIMV^E?6qhR3-$}HI-WGJ?QP5R!YJ;B_8@Wqo19Clg5t}x5s=hT~A z>1an<4pcuw#v=d#k=aA3(xvP?Pt>FMe0Rz$W;Up&Xqb$$lPNNmAO$0%9in=O)o##7 zI*%r!{tOu+*2s0zGwTDS!zDHeKD|#b@k)p_;)8mLAt6@z!OOpyn{C|&=7r2zGIQ8X zWU#@Oz`4luW2~7*gQ;cEc7)xK%WSl^W%Uv#LaZuZJ3x3<_9Yn1Xq7c#qs3~KJ;8t9 z7p+}^ong=CKr>-e`zgs#sVW#s@Mdf|X8F3o7g^u52hAaUF?7fN*0lee1@l?fY%7ny zl@*saHWqhFEUr-WsK_ebSr|*Y*-F|Kk85GYor}jcx8lB9ES8~&nu}vaG^M$kenY3g zO=fGB7Kjr7X*ekc(%8y9J05qF6*o9XG_J&;O}D&}#R;*o600QMsl;j}jV+-Lx9cuD z+{nr^Ugk*>iz+d%?`Y|aEvoH3PI)%i3@qJfW%?mU)TqpAR5Nf`VkS4Vk`GK5T`IG? zn+!Q&)1i0Nhyx6wf=UK6{oG(|U9hi0Tn5FN!!htTv8*zy!lqHy#==pBRj!(te?~mN zXpY2c1BskSppgBkZ`D0$ws^4$YhCT&F-k5nlj~W@UrZEVS7A3*6DKLT*i5c#CI328 z^hjb!!e5oO;MvDSyQ*l?4Dn=DraO(si}6)i<7$)spzN94sJxDqeeE;?Z7GtHSipjB zloW%XWx|Io`0r*>b+ohiChV^zid)tN`stj4NW zTOfxfT``&fPH7PEIth4Rwc|z$&E(ova=Ka057k&I|80*rQB8Kxoy=~kS!Q(BDpaH~ zSx){gx+KfddE+XOyGldOCdkENbuz12ZK7;tvDu93Rx=70h|BTh5;GZ+p3#X(@!qEL z1;<5?>avv?)yuas3x<(|R&FH7Y2x5jAZL_@Y+ggQvU81CD`#QrPRyW+)r@ru#OFwU z*yu!&nOxaQKD^MHmc(Bga(ioKLqZ)!t_^0cN>;9AGic0{#j%>0m`OERlWGSJNm?`k zD_VfNrzHRmjss>ojAq_o0Unn`D@(lFEUd_csbIn67KnRmvFDQd9ih5P%w*L{J|$kR z&DxKw&F-x>Mz$u~X;cEK+!&Hk)5MZm>~4_@7(V8ZI9?m*n@Mr)#l0HqY~^zq`2tqH zA#({PS-g~jpWPaJn6Eo1nx-IgG?wr##ciZG6PSnDd({R=23-t)9vT#{Rp6|7;@2>% zEud+vQEi*S1Uv?e^sXQ-zCN2^+L+0+%w)G!g!tMh;?X(`-r2v2_v)bP0wZoR;>>&- z%zV&68aVi4vDjIM)ogC@B|CW7K~J3i#_yE_X=a0k%E)$TfoPb@Y9=RUJ69^3cqtWf zbAd=pWrO&P!y-_ZrPiLFNL`Q_ugcq%Ny`L&6d#XF<9&7!~C}X*mN_WlOig%_h#PD7kg<*R_vJ64|KvkW|A*~g^M<0X|@Q3=t ziYX&t(<>u1<-UL|880HI9%~rLHkWfO-nqTRwt6g_oQpEa`UTMp#h_S(Y$;T$s8pZj zHA6ZTOnYPk^)}#sz)-sq_xSNGv^Z3sHSil1(UF|&UZQ3LcH8Ud1m+46dGnPLf0Kq13p$UuTv)PSXMp!3%TtZHRb2*P18 zn z+*6VU1S&IZR+&U5DwOy$EV$9CP1z#G4vWprSbdf&E;eJy)h~b~xoO6b`ZnMeYB#LF z^F{OKtn!m)5r&4w(jH6sjHKVSOj_Cy%CbZFiXVD``d8{0i7IjEg({KTVR;+|Ds(Zf zIct`(Jc|+_W65?yaNGPfT5k11-#AAcYtCMG4Xi7BD4uP>G&U*v&lWiR!;VK+wqnB> zU%4#$%&qKaJ3Atp-^rTa0JStsP9!N=dg-iQjEHb)%mxkMCeMT^ja?W zsk>O?@?|z_%if^V76$$!L5u|ZP|p-KyXnA(3N;4}E9fbOtYl(YTNb_{W*abc#1!8y zlgISQ67a=LUNzdN9ebB28~d5+DRz{do({hPz0$`iu#Xi_5p(Yb^TqSZ-7HMcI_=r5 zct)RZ&yomJ;*)#W<9t_vxYCEgS)@Shy@z#v;o!oW2b8|y}s?DWE#dLP5J z1EC!wn!AYLAZab7@j*!6yO6ZpI`h$QA4K#?7Xv!5hG}0wC91UZ+kBYe zWb*?ckO1`*0(yolLobpi?dVLDqVw)S#l{&(A|0j3<4UvlDr(d&tvPfoNg<1yByS85 z1<6>UqF#B{%GjR86d6sS{FP^{5_UKQXD$RqzA&mwh=uCRbA@L#-&Yg@^&1hp-E(ISK1L5cgxdIM%83Q za!Xx5?6@(PlekYV9a6=jS?VyM=EgD;hFPg)X}zXVB6vA@myk1Lr&>U@HP^`wRmKD* zTHnVWOfXcD$th-|iaWwWQ-~7dF2!gM8JuJziBXh3cUB5g8n)20h$BV%zYsXN%a~17 zQE*hbpEbS;^K172%V(>jhaOEOXr<%Yagq86i?AP}g^#cq?1rKV@*Jyl zkRmsh;tAs8N7=7DJzG5a7`u~aXGcdq#!?k{PK!l7+x&pPbCpACwd@ruk+uM0q}XmGeShQd{$>=j^m3sk@vQO9C7;U%dP@tK8gdDl9(N zZmQ7|v#Fxlv#iS72~D$6cXjgag((ysfN-&j)gfET;ZSDt8Q9@*?EKfNw3n~a{{M58 zj`CHK+uZ+qFJHVSVi{FQRAG#s#H=do)MpvwMhm#2pK|qp5tpnX0HlfHQ6%rsE4`&> z=ZL&#*<97obL;_#N(-K2s~}kPe4bUTmw8Cieu~^69W=r&Ox6u%*iF*+ zL9yU@_A9cCd4bJlJE9M~$f8%7eHCA3x45>LV$H)Zvqo&E`0QnNo4RQroRgf5Z8!i6 z&c11gSot!m6WTOH>xMX(YAJG{`156!T7@Fz(QQqdEudigP~RL8&0b+OLfa;3>UQNW zLss5ANj&=s8}8dMP;1KQWbKB5;`}RYOwfpE!=PP<5lG~`${L3@N{yio&v>8|k-J}I zwJI*L9Qr6q1M<|dBJ>(-QuXKn@_Z%+jC1%n><%p&4j~T|kH5xV0{Z5?#%&h9F|;?{Yc-Bdmn=UE!we4Ql?^;~t45er{u zso|Vrqe>WQ6v&#G{)TN&(GMR(3XD5~b!By`eA!0IqLhvf<};0!<#XcpuI!~(k6)>c z0SU7pR~VKk2q|)WAT+I%3gl#cwPA&WX$s2{@YjmJ1S8l?XDopX$9n!EqD9;R5X+aI z&PdEznI|rFWz||=ua}g^Tw$&Dz%&i>EtcB{-@q2}k88D39c0%t28zr#V5T`bKt$hQ zn(GfNrWCpR4c46FS>a8ll}Ek)Caaouoko!vUAucX}WAE5|%@TUK zbSqJofS1xGXtIQ~eb+3Z$e~+_vIM-8E}R-Ty&ux0xFXfWISqvQ&pi?t<3bjgu7+5v%}^WW+$J zAYn zDI{pN4E@U)H!`e!Y{QA6EOy6M#%Uq-Azrswi-3)KTEhJmb zFkLXR%?w*KCg~9`;>&l~gE;CZ^#9?tEN3e6?~Xd(Wt|xGfe*dM>aZEn_upf0GG&h| zEcP7oRjw14=JgzKYUo-S_SrG4zkurA{=wBLM5i#HN(w?o@4Qg;pr`cjj>iQ6B28;WnnEj0Xcj+y!m3t_HPJXNn4mhj@(Fu3 zbjbx`^%)X~P3iSGWC^=1f&S3iS# z1kZ7wv1*i1_!*0Gs7BxWoHgS;my4XwA!eBhuu|@mekPh%U~QsR)7WE-{V2MpV~@2? zj813ILF)N4owd2aa%KQWB?hf8nj+fwWK-0lDdaq=*}8z+D*Eav;(Sk5>%~P=NPd7i z1j(9>j{G9VP7eh}NM+*Dq32MJAjl#&QW1Av)!vb7U~7_k*sOzC@0j`zzXCzSYpU)sJsXgT{4ov^b&U=bHocd zE|^|kBx*N`-N?R;b|1w?GMs*(;}so5NuJj(9vH*i4NZRm2474Ns!=I6x?q&~P-h@j z9?*a{h4|MPR`s@AQ*I>ryF{v9Qiz6dwnQeFPK?!!`+j2H3UH&CDSYPwu7%#|F9 zAQ2wRZsZpyiigIs>W!f0NwE{vK+Th4hmsTn45bP%qR_orhN=gMMo0`F%kE7;LxM`+ z#8~!DiUFIf@0D$oScP%gSgu@Dlt|BF<&Tw%$ysc9TB7^Ff8tj_3#R3PU`Whv8<=rv z=Lgzqn+^(uvbggDRPd#oA9OLahf=xxK>EkCCvJ`peB43GSWXQ$0}nYFsJ+PT3?xKV zP8Gw)v&T})F4YNZumP#+dxUQSq|X)N!3nHZGE{z=v$}&+f4&q@I+<69#7D0XeJ8Mv z3Aj(7<6kFW*6kCXY}UGb2Oi00bsJr`9SvYqPa)?p=u}Wob~amCVVk`2DGWM?6ynf# z4GAGHzIIo7H%eFyya#)k{?d_DqYBehhn}|1fZjpM_L8z&uGc0}B zn2gB54*P`o2p$eRV}&T3#BK*hPEBGDBes1mTmOG)VEa7wH@|kh>LwInonV= zfw2v7@+#~D;uL*}cx4K^R320B=EE{NXrL&{XH|ISK(Q^K71X%sY-LNj#z7A;Wh#3i zHDRku-n6E1h&ZVuzS(U!4O`ne;=XCv^s63rLe`_K?z;XnMaTuwDVXni~ zeCd+-%iPyT_);f}Y13K#TOrfwmXJpm;X&}QM8WSBdDom21rd&kiwMt~B|I}&-P#$D zFJ%pegqmCjI%9Y^*~n2-&zLM8oWWjFNNk)ngH@}H{fxDBvKe(DM(m!!YPhi7qWza( zGg+l(#c~T}Z>JVHeClKs~)SbBO3LlWj@c908L?JWlz6 zH^$!jfOAqbNxugtkx0FokxX4Ym+5=$6s4j=`MFHr7kgVipXvK!Z@=R0K8vO1Yu2ul=i&@`!n8|LBeQ_5DPr5#ESKz6pU+}9-I@v7!XH4x z7SA_E4Y(#Jv>9-$iGzTh$^`_uf13sFXMlpukx~q!tPgL2SqIYR)Xb?@s3u&9~ZH+D3 z6G6R(Y{`B4v7SU0#yP)ob)nM)gW6#w z1uQg6CQ=GQ`Vo__#v-#3dDMu^jYT4)|6xSt$08BZj~S6OVvz{x$BoEY>1osqs%aKt zON`jLF;Il`6GmiVED|C8q!GC&7KxC4%7`qAMIxl1HX>KXA`#Nh7?G>fwOVHN2H?JPx}Ie!dKRM{(>pPbLC|1X5fTzIcan{uK6 zNo<6;zq@q(W9Np&8J4S$m{k3fc45)9w27>G@2D4ckTw(%y+or$rNC zaKdyqt%5_K-`Q=Z&-gzH>i$GYT@2}=R4p$I9sPzS-FysZ$kM>Ki1ivO-Z<@~+b!aO zdj$FiMX^*Cw_bp)-Jjx#1?+(|LzSG6r^sey(kRck`Z1OOCZ3+oDH57>`oq9OV@4tk z94DZJH|ZOp`0PjP66K0yJ>9~GUi%}T?v@QFO?`ufY#`5{Blq0FxpNZt+|g|dSrLmL zi5xE-foMIo$F1411GnO*#cTlUCtg^>YE_CkmGqftnmgxC6q!q4qlLob$0h73zWTIi zxRkvbG_O)|lE2gG5;0~eySWZszaqC&NR;b1F*o!26bV>TB1)FB-tzJfax=i?AL8>O zcCUGdida{~=n@rSU&bT*(Vi>W>ntz~7aEgx4A(}e!^G)tS;KpB-Ecd^RvJQiuG@Er$%_qWj-56X z1G8uyrYn3zi0cby68L^>Z&z`<4m-8?*|sPQVf4BG2sVx6Ld0be_%)@Ptcpa5I7D)aM&o(9?Yr~ z*seqM2t-g_jENGFO_))>8%^YPNE8@2i=$oi~sGR7QxvgxW5or@C$NEgJ9O8*BtYduQnT_^)l1jjLChjTgYc$dzn$o8qBo?n6X~M#ZNhZU z*zjsI%cujL)uQa0dTP8KRftzbNB_)%?1p8gpPoaXYMFq)*~%V?`R_q9XPzq;)whAK zjfzg*#%^SdEG;2+0r7L^avx%xPPV~A$VOoA|8*+lxDHj_(e3*4e)Jf8NFNM)zn^p~Q&-J~_vRxGlAa2>!)3mWO$7swkIm%Kbg}6?d!$=ji5OSiCF+7C@5g2V^O*Mjkp~g^deQT{#Fb z=mO4Atu7JYTrlcCc>(Jcrh8c{nt1ObyTeyJ+LQ+Rj1kd`&?y1ZeTl{FZBm%P1^De* zmiXurd#QoN66i$Q?Y59yb`?F;O`Yb7v0Pdpa4lCQQQ=stZKE0EJr~CmK0m%}$YN9! zBmMoTW`d5^_wfcSdc?v1M#zb_ck!J696LkEZg*|$5Usr9;Z>|v|0>wXly^v>xvk8VHpb|I)e{8+27ZEn`g!Ac?WSzb;;WrCm#T`V@tw)o6=<~B$SKo#NXx@OGJK%-)QX$wuN|Y+7&D523}c=P;vND-ggLgXoIbcxSgp&#Pl(?4x(B`UPG`7{P}Vp-I2=ywk>pX zBo%<$)JRCCu9zR)vFXvo`Z${mE^ag&F@9mJngY>2e zefS^0v6rIt7aOMu6)~ygRgSox7GKd3MHM;S+B;kJ{oom>vlz;jc??@4^Jzc8QBK)b}kd@-UL|14p3bj0Kl zQKJTL9ep;LH@%A6G?|)@z54KZQqh=@g@Y-xfX9+$#7nzF4)xHaBRy4YpUp9i`S@MY;5J=yp{`f z4k#RHHg%7&ZKHmZ4;prBYin`Z{vD{rn^URDwRxDHch%+%OSeIMSQ}pqvWg|XgUq#g zCxWi5@%PFL5F<2R{+chbQsYgoYtMp!0TM5ZIgy&en?GSxuV*UVG*;cXyY%168NPl_ z=C&@)fHpc&l}Y;> zlTu<}xUiA-I}+5UFBf0c> z=>!Z;lR&v9S@Je3;M-t@Hs^`2>+@FO!Y>TP2)1o5Q=Ml8;IACcLF0-=K(zzSW$6 z%-mLm;&2OIU#6jsXwuER66?5iNZhDEJXOsDm+c_&FZ(g-E@@OwMhghndTPQA2SAIp zzk9zWucPpbi-l+nUUTl8SlAjvf%l!Qd9`MyJ*zs*TQHaebie*bLKLo!hK(FT%QAcC z>S26!Zm~$cRhAO%d@JwH>Yv??6%wj~3J%Z$xE#Pwtt=D8^zw5t&{q9$CqXT!4E4VxTGkiYd4Av*p>q zS8e#bN*AS#G7Jr!uF%Z^st!bbatB!cLY(gDj;?#?TWkucPEQ{e+wXuJg6DZW>zqDp zew!^FXNVnY;ngx!zZ1t{vyQ|8an_K-WARR2g=Za!PQH_uuqu}Nz@Df+u#ecIRE(({ z%tMJph#TATYVcP$(w2*`dFLX?Hg@Ngba#T|FeMR9<+kGo`Bm3Wk=>r(an+P)NqheM zRhHrBJMiT4i0s#aKM~W)@K_(B$2#yZG@8@+GI}&aG0Cy_oyYckHyu1QM40@Q4XG2A!M|h+A%zOEOZK>PA z+*4;bF+)LasaO%nK|K|O#2>;WEHqgRfJpSv7fEG5NlR%6i|j{uV_ujietd+teBwGw z$TfV;5;!4Nm8-5N(Wkob(cA%}H>&&dF&>UJNyBw&&IyTDF1K>xn0@FQ!FytD*5TQq2HrWi62WciW zGBuUE8QP(a4^^OxJL7&lO0Gd*Ra;0eTH+Laa7aHP6t5(3{b<3hJb66 z&z>PcRoGs?53{9J(%z#CYs3z`uc9v?4QCJoFT=k(StXvxNk$PPU^dEPf&R zDA~~z_{X6qStj~PoS<6eGG)~YtQf;U9v;?+WBjaPrs~lY@P0H#dYH-9oOp^?{(tak zZ2L5ClzP_b^X0mjk1lJ2QPq_Su}cnP3Z4JNo&fhOi7%h#_k|E`+(nOzmnibU)BL97 zbFy2+W1#Y+@l>#hM;CDYSmS4SwF(9f=Ft34nll1e5Klfs>qD;i$1}W($4I8=P0#Q; zokkfo!!u1EE`!7-z_F-Q9Np6GAF5wV&oFQ-w$2;0KCJ zvYzE_w4<`IQYWZ6x_2|AxDsPv{B%Rs>SuXPj>a57{$@tohyd;8=s_eTO0ZMCBqWxG z5O+KWwv0{B7tisgbemT6Io`Z#tcRKu0n}X%SgX?W#FgjxtFg=MX-`BH2i(inV9J5` zaOZq%vS1$4mdctZvB^OIhUjKZK9=CwYEFyt{;brPfKBXqp4Uw_=A+?3OE>M~$Q#W| zB6sZtUh}qWAeyKZ#4WdnMnxE71Pn4ZU1=GJC2`J0KSp-k`flEnMI!t77kM>~lW*U= z$VZxYGxsXL%>4cmPjrza7jHu$FB-qh?=E%4GEVmKTV6N=hZF0HO3*Q!eiYF0|J@N5 zl#kAWL89hai$w4hUNw#Cu+}uB6&e<2ZX=UtqN@Wo_cX^17Yex&!y`iO_USX8i57Tc z;4~Koo{m;08=-RBO=BSwxv%gB{|h&a#3qsVh1Dh8_lz!4neaM;P)9o%P&C}@j7TP# zonpA5#rh0l2U^wJ`(nXJEV*=Ni2$zES@F`_S93RL@`h4Xtaz12El*iY1En42G>j4h zU*o&^!eY_=?=Y7i-7Y5mo!`NK+93AenfCjy*xLEw&9!GI1>mqS`)3M3Qis_N0m$e5 zWD=UZZ8ybW{h9zLN$H~oeO+VQal~qL!^w^xm_A`W<{;F1)eXpFYnh(&V?0W(03}e} zUEIa+nG2j}+!~$mI%kX@TPJe5@&{_?Qneau%63CkZpr{Q(@h`s<)kT`@Pi1v!CUZ= zTcY|Kyfee~JpqKEl)7l6=+cc>;)l12uHE>s z(86NePT`i9t10^YpM<+R?^8PRw~brmtPb)u6Z;u? zX_|Z!LA-6V(k|`?o6vE=p8-0uC*?e7z3!@yH@Z*F$hntb&(UidRWnGwr{mHxnY!F5t%eUS((AzBQZ45jixL# zx>|PDdX31}4c6CI<7&J zT^+_Yh~w|@5AhXj@%MLmTW=rpj2&(g`s!VNPq_3AK+*>d`4evd5)=9=RnzE99{%Jy zXqesb$#3~?UHBv2VvGxa62WlDS*j__ihW(^gVt_*(>uZbr8m*Q%wV&Lo#2uhc0)eH zyzXRo5=+m@7PH>tovwE^4aq8t*fsPkqG=C)eJ6cGpe?&!5uf&e5@SIsEe#vRlpb8L z1)}ZyxSDT+So=OtdiMCOa*uDEA8^pV8pn9(j^1cuf&!TZamTh|ae_v`fOZ;@OG`!K zYVa#p7!~l7X!`-L%I1qFKj2TMrT3CYnh?LMr=~A7j>;jlNQR0LS}a3*5n3Wc2N7B- zLq`!RlA#iWmdVg*gqF+DIfPco&_#q+$`ER^>_PH65H1>j$lLHMPSNc{-V0BxU;MZscVz9!Z5x5ML)=68~OHRah)tx$g+QgE*4`iUAv|}GsPqXBBX8?Zczrxx`~+vI=86NKK=FLE zr%3(>@6r-IOkva(bPxfw1^q(+Rik@Y^o^_K>8mb~%VlSmi3$IZO)B{ZUxi|$pYn{W zT8q2=56=w8Y(lF^XolyE9U@H3PlfI>5j8&J$Fq(}LcYMZE(yTmSxw!8{dfxyc zh8;^%I>Z(jFcM8u0HqsGVkZi({Ru*OO(&HbvtrSW)25IDWmm_*BXNtD0Zb)J`xUjK z?3V!&fPo-*a=Pd)m6&CgypN(c{gXehLD%VqB2gJb zds+Xfgbu@Zqh%bAW!-{6?T<;Pq4A=9> zFQ?*;Itsa4^Vs)TOFJ!1YDL0L#4S`_VigVmVXtpsT`J)DqWl^g#$h2}BJUD&65x$>Oz zU46@!D@p2LLV{IpA{80se)9!?rfjo_g2Y|@c(1YvL^0yXRT79U#HbAZP)s=(_wkCJ z%YdfZG5Cs2%^o>dsU90teMk^Xqn!CPs6-;swqL^jfJNb@A$)!OmbA62(@G86eE(t&IPGFSB`(T6eX27)GpS;+GLvgDpAwi!`^4CdG@4(^ zYfyJu8Otj|qKkhQ-Ny`wLT=b4-daXg#vW8=k^i4brmM$b(oeg5!hjY+%>ySc<|0g9tR{_&>ij=yhLD`TIS}`?$!DfUbS>eqLaWEQ}`{EfAJLF z+O;i}htPG)igM6={!;+0fE-GJBFra#Vkv!*yVs)cvs#bDLU=Z9D0w5}Ra2^joZ?*%< zKx{6rgA8i0K`KT?|51y?+IhTX-P4vb+r0R}y!@=F)ZGuF?tB=H&gDjn=JODP-@%3` z*8)cC(CNJ%z&j<_MZqyF7441%9A9abXH20b*AbFRV%kAb zGw?+7-Q8q@Qk~`ropJg1w2ACKUkmWU*v*CrN!~>tjVt}_x%%V)Ykqsqx1%ES!;V4! zskY%>T$zRgLbyf&HpYcK@z|I%-i_@Gc}FdKL-lT9x_1pM01ReE>DR&yqU|Dhr{T0m zk44~Hcn)2}6Yq7153)G62z&5fg>x}a<-_h0H!bGhq-B4Z3|ju}sEz(`*feZY7m@Nk zSz87Ag31mq8`@UduFeEc`Hl>@yj4wC!&9#tHRy+s!erJO?Hz?E{aSw6;{&{Z_7g7k8`n{f_o74&t-Z_GpV;uooW z8Aq*)5`Yh^guWL5`BuqIlK_auz06Bzk<8#O;|PIHtKh=~?ZXMTxVIp|LWle~l)jmc zDd2%7)FR#1-~n5&TFPdwk`uz31pDWM*|t^klf}E|&ed`iM>!{ZHSTzZvk9x^Rw<|Y zLmpvz$L)XUHil+zJi!U9HUC(RrAT_wT>b`#(*iT}T&$6LfCSj*i^o6*=dzZcgK$`> z-v7CrbdR-B<>w+?s@vVgb%mAdvhm;3jbJm~fo9|rSl2QU(=quowwGS~grLx>=7-Pa zN}+8c-#;c4;HDV$8wGN?Py*jSK2RXHj9w_NC~-#n9{aFBt{IAe^PczE*9CGy=ih7a zv$-UQpjA9G)&N9?E|&g77YJXj|6rve-#RYSz}$9}C~`NnCb)ZFYI-LK`hxdZ$2Ia* z_Z5KOG*aJz99E;Zvg?q0bKC4N*Sa|A2W$CC$9(S`$9)#2m#0l7BIDZ*4OvT>A<<7z80nJqggmtxoM z6SP1r71@jXa2Sc~sOn}4QA;8l|BakMfK=9aKMo@hy=Z^Q7}aF|I3OoS=PXX;>jdxz zJHA(tI1;tik-6g87ez8Gq3~9O;aJV8vSjp3px0KF$Dn5pV+f5~%wmto*U|SKN95Y{ zoqa@ZOWy@YFbm@Qha&jiz=^35J$ks^#%}c7CTmfyjP&iA&D#J$tJPrX^Ab{O^0X;~Ap<`oa3|-&*jI#{l zO2v=84JKgsQi%g!%;f+x*l6W$*`L8E&ytNC+DiTD02KV%>F=#D1X#-HUHr29tu5M4Zy z%a*XU(tnYYl0!~mxk~`9?xq`qu+AdoxR$@j6@0(00x^R4y8jnBC2D9n?mCZU|01Wx zOlxk8Z5|~58c!qrqhI7IQS+L^dJ;aq{6!ul|2mvK_^X^H{lWJCD&Ke;e_@C@pQJ$) zzo{ZkMW}RTk=bsKLDZt@w7Oi#-6uqeCKQHB(CrmUgfg=iPs(-t9B3XjXEr`V&5RPw z%tgHU!%4ZLTE=R>l|U%o`KNqqM06&i^Zt~-l9sW7r{&6(IB>L$BTN^5RK0~(7vx=g zT28DVLYvf`!Vu31A)XU~c=t*3&m<1)Jq6FrVl%3JzeQBkx_u#+4`(|ZX z87td0xHK3ysY$ zuyp)ATIpVVeDyA+++93&cPZtT+M%%=Yf}$2Ajgz^Lya>_$Wmi0(I zgq`6Lk7g|lr>p^+3XZTmXNFXtgM9SI8o881a8;}!xGDsL9_9yQjn4{@Ba?GgtneFR z!+_=}&$5!Tv_gL_j#uh?X)-9Pv2bNuDCgll8_%ENsl!0$~!CVs#u4iz$jVK1-Y&j6ktaUwZ7 zP06yKx&@=d?te-+Riz6t+8$$_IX6wI5?W{SBiaLL$}9E}EuQAPulgddlK9Fp;<|`# z>`x8O9S4bU>U;ICYN<>L|cm>?v27uxSOKwbXP^L5xmZc8QmfU1*~$s zgs8$Ha!?9NHRR@v$AD@mQ*ZJu92{XDHWItZA)Z(qN{JmUYR3 zx%iqUEuP|1(kqHMbB&>FmWbKLU$6X&!V0aGn~3SUwpLmxHl%U_QlcAD8375}(8Rjt z+8dOr(RP8d!6>TQN)%PcQCv!T1*<^vok}lW^;;c9)lqkes_(c`)mSUUDqDP?@+4kN)##+Oma}WKr#dN9 zvi`Pn1W()ZxAmZQ5TJjsiH7f+I5s5xtb)Fqfnd#Xp2CCJY-7r_6L+qcz&idw8Q9! z6AMrtumfilD_$sU4iwNSR}lZ;TOK+cuk|7!J@7rY;sGW79%SLi6m+(>(`#v8rr~gd zj>Z6#vqs37tG{J3CE5sgS-kboI%sxkZPd z49#DHiJn1qyxXu4L~ff1q%7$+yh_*zTGKDV64Y8cZ5axS)*Lz6Gs9~`>m_jAfuCzxApmRGJbhL}f`KZ>ue;vZEyg{dFE_Nc5}<(bs|}f$CMhkp0`vM zR7l*3blDN6D{E`vVmw%i#SkYcfh!GpRX zQSc*g@cDIZ>o*LC$Zw1-Rb@VqLlB{G7Y4Cp?aZZ*E9rlqj85v^UUq`Svk5(wGJl^# z_V!c~I)sLd3?O{=-IJR8H_^V@aY+iWs>ii!wAi ziB)`B=@`-S{}AlPr0lkQsiMC0a{R)bi_cA-^L;3yf1s4n;5AK$ai&tQ^YIGDZhjB+)F zOP*1ZE~xZ?vZemYod-;|{k3ehi)E`*+_5EUZBQ(q^*X7~vr7DhoJvu1Tc5A+#%Gnx z;!Bv)y_E~AegNd%=K<*={$E(xhA#}<-Tv?J&+omJl)u6ExQrE7`ED$T{S~Okh?`ci zHV0lg5}4;0S+0a~wpc9bbORg200~<}XAuEttzWDc>6%rny;00sPLrK-_y)7BtgcZ| zw`DC2b<1Lf5mFiMWp`T)DHSt#ua5Y1lhdytK1Ci2jdW%KyxWQ)DONt@MP*3^vWo3dS<+84? zD#>u4@+yLIc+CP6q1aHu(4avtNrxA*>90c81`KD%ajZ^1*cXD2DdKEZoKWNqVr}{<)lydt3gXxm7@_HOkXV3T zBD2f5O`bQ1z1dG`S{**AXwDGjjZ!^uJW3itv~5BXKVHFt2f4rRrvz&t8^NMM7ae_o z?7kZP#6uqt84d#giuUMu^wXffa#Q+WeDqU-m+!y$=m!gK4Dfz^%~SoAYuvX0E<(2& zfcxjjIma9}Kq*jSa+fA{t0{X%;>0)SD0_6U@_0nluEEMLq`oyod0cv%H5sb(tMXA} z+F{X7#K)Ia9{%7Xs8Y}SjPXdN%Z&X)L8oHXvfFc%gnJ{Aam!%b;rt?541K|ToX;Y2 zjCi{+ku7^$aoc{x)6o#mNjXZ({{~J8Y-f)0ne;oGG^~WaxZFfx55sB36>m068KJbm z1D|_GC`+K`&XX*Yo7gUq5W&A z^{cjG|X`;uXXmX>^>}iBu-WevRUpZr3Cv<8%8Nf7vx})Hy1qKvMmbzmM!L0 zBfF3FqhBA^XVk@Nzwm%72Mr$X{K%8&##mmUA1jq;%moLRB*x9j?__yCemZa z3TFAS%6LWk%v>86)rZ@cZeJm)PUy;sF0a^=xk~$+Lbo_Lr{kAk;O4YQje6JY>1k|M*hPS!J zl*0teVzS5iHt9GOe#Bb6ucSI&_!iL>nCoc;-SC+&y|2`k(}xV>+i#nglVv=C;q?(c zxz<0o=Dqj1=+gEJouCIRN+%b8=oBXdCJ)ugz!lY6Js+J?D^w3o^05wR9J*F> zZatkFPnP{`bPc*#Bt*imInhj~TRFzOn<-=DD-7o@lx{f#yhR+M`^gg#&dF#fMi4y0 ziNG&RIWJ`Pj*e%ye53?YPX=pvJdHe1*fD+(Ke5E7wIqM!mW6yFCgSg+CiRZ~feoCl zR4rG;b*S;v+-=`A;gGhQ@|NYoMTz{JmrA~d2goOgowQUX}9$vxrG}h zwL6B%4DrgtOZO!r@c887wlW+_ee;gR1EB6r*@~ zB3&CI7WchDJOjlJ8*3(%gEFg~m1^YhqRFs7Jy`I10;z1yg6KH*z+9y+?C!rcSLx|} zdsne%W5bF)8)JAjmd@^;r({b5%pLQTe<{)ev%^B=Wf|{c%ngf`9a3C~BSW<2EWc!_ z(ny+Z{=8JFAv;XXX~Ox0NKQ{MS)=7j2e>1BbGg!hB*^mRN|R9M^HHJXE3KmEMR5b! zI4_>Z+UF~)Y7fw&b?{8!4=**a0IM&?cS)|F0U(ObqjIjyPl0N zRPL0%U?&QdCY5GKMMsxHlSznp0(nu<0sO4v;j317jAb`%Qf_f*j?I%L|7@Di-lROz zY)w=U4jAERB)YG}pYj=FEDB!yP2X*sm5LX5)Az<^ESKi8Nn4b1(l2cLW~IRTVqa}m z{$c7{m9J%K3p@O!(z4yYs3hJPLo(_F_T!_(=?~{p7oYy%QQ^6-l%uj^XWL7go>I`g zpdo_Y&=kkcHgTc(=1yh36n%(G6$lG@>a`n77KGWmm5RjTxx1COq*|%4mYNZ=Gb0!% z@Mjcyjngj*!Pm;C1o5T4N?*L&IYrA5jrJZ&d~SEzsKIQmV>-dtDy z-~x66Ci3J%zc6jTQdh=z!~IG|!XZ8fkUkK8@r@we(jv9je&v+(v-!jU3_=;R-qM3g zLx*)B09}q`iCxW@Z#P;TRVR-4m0DKC9eJ;SXn(o)q4HPN^4rVoFN4+8$3Dd_fwBd-t4j z3#EN`PI)55f|*{b9hO4nf^m1#3L8U+a*pbuHjH&Dg_(vAM&+rm!DVedNv#tY%QFtv-(XW1v;9I}iOx`%2W$5Z7Fd+D*t~Qa5vz59!9Kk=L)zxy* zB$ir=$NsaF+ArmJX?bJ3_^GsUoSiDAc27C}t%S!?=`m#e;#?Fe z_KRP)C1YZKEk+%JZCiA#+5^E0vFbY1+NQMnEse)I0reqi1REAmAD1SvKLQXEBUo}7 zb)GcJEG(lwFUOxApF+yiX=T8Q$F1K1r4{RtsMa>$j8pHH<&nG10~OF1>YAGq)Y}zl zG#i_&zDpG}N>SgFhOj*;>NjMqHdW2PQh11)q(F5WDyqw6RQFbz`WRJrDove9;rr=oPeP}B z2H|ylJbR_GT1^_vrdC#;lc$Y`pc0dUt{geL#=}gxJ74 z?6o@TS!uBOYF+gnP5Qw6s)4#pLO+adsNRO)+lJ~uX`=a5BeksLo5GzD1*Wh!8>{`P zF@YxP#4?*;@kau?22Ac!2+{dX)UlL&e^a$e3CSaxs%Pt-2|a#A??JomR+4za>^7Za zHWm-iNESAL4)-*3c{BAM3FsxZP^U}Mhvw>Q)tX+Itv!Cd`l_5WfIZb(y+O_$U@mN} zZd2&T+c&DKK;LoZT{o+TmAK>eLmBN?aAp3)1`HGgP_p#2s)kH$$#olTi3a9l}Qz)D?RIR{v_f~JS$X1_qeokeS za_Tt<2!xfM7vT-htLe!WPE9>t;2#|<>&EASw*@7~BO?`D@w^)E6u{OD1f~o;jkft zf=|9E8b9Pk(X_XRi+t-}RO5BKi3&TuL``7YOX{6e=)RZK3<|SfQmckKvZ)8t67+IQ zVbcXqS72Mtdt=z%57Zizx${Ut?x7QiA}I3s ztAg9!c~x-R@!6ujN_hhQxmN}J_IWB6pJ)ytRrHzw8l9yk)As{&)H;a{w_!RBEWt;AW{HYwW(!hgeXN#e_h+jw5FfqWU+u^4>mzD=u8*iKw~wgplRj$Q z`k~qqdIw{INv=Kg>hVzOG(Hna;f~ zI=V(bH6=9gn|fGUuIPoQ`nfq1W)UMRo77M3MR4N!i#~7CUocA7{%UQjvT>AN=MC35 z^#SP^%%4d;(%mg$1@qN9c7p@GBkB?j7G=YVRb8Oo%{Jz$v8>4eHJWN`J3y@y3{j3s zc(9|@u?EA_Zby)OyFkrg3kIn7SR?vM3&QRns@+-cAgipDgdq9lo@V~^yL`%_rVWFeiJPZo1v zm&s~nqGIQFg#ei~S%}X`?~3uU>^$)m$CjM`wXy0*g4cYinnvLRQ-y%)G)}Ba@}>&- zYo`kM`Qy|rl<$-G#Qd=5J=hPz_qq2({#x&g{1qpN{LLn)eJOqU1R*JlCWv~JiD*wq zvQM9=R!a}bA*HubRJs=gUvw~`M|!kd68$n!R8}EZt(h8;KSH|SpDXHrDOb&=`cGSu zI(3q$zttoNbTPSJej>j=1EPAaVEEdlcq&htF(yqQBhPv5P+{D>} zRE4uIx&-^&h4{5YgoKD)AvnMIA}ovsy;g`t7^Km?_G13*3emoOEOw|-4nhNd0?KX_^o;NBCIkioQE5>kc+-1@3$JZYeX6Fp&LzkmxTVK6^;5N;l*hJy zs@5oeJQ1@}eNNiIUSFxsmDd%q#;b5{HJ`0mr4FIb+g7X1iIL3DG5I%A}gX-RJUS7j@`?(sdHZ@1oO3pyA#h_y*x=i}>AkHl8 zH;TqsR<=OBx_L?Hif7f;<#kdz-c1vLaXd689KzuhuoKqTr?Nf;YK2N1uJu}(w$rNJ zsy0LdwxB=_)^u{2%N099)zuAEEv5;Jr-(J35`zqLVY}xOs}R<0i2bm1?QLL zH03XsM!YNGfE|grOqlc=Z~P{<`3v;L$T)DFTG5qppgUt_WSq1Q8H32U1`tc28Ad|FdMt3k zx!0~&>qX>vX}wC0{zk1=>r;+`^_cJw9$l~A9Fg<-4QlI%sF54gYZF8p`1?$1JP2WR z*pUtDRh6l^0b>=IlKXXooot0}A!J<3DV)W~6-BF!>hbalM;T#D3^cchZ5d1)Sg76`(VQO()z_(f z?@h2Fjc~>$H4zS;KHH=|PM?{Z)#ec;h$lh4v76OvN=`YqS#3aNui2tzl$>M07PVW+ zDZ#C3{i|UQjGQF6xvC8f2TSDe!B2P1py(K-8!oDi`K;eo^}3Ql{<>9d7)lXzaGQs` zXPb&k_7B*kZR(qWaq#AgAuQLBYd2D$QOuftsdg$Gq9M7E;=^_doA#wzg-UJwl1|}2 zWeH!YwTg?|JHJv}l0%k}U#ZjOwZAfByLwIWTyJd087FdmwOzd`Y1$cRRvEF~aMKwO zvWl+tV~jt~u#6pQv*M+n+@U629jUA7()z?@D5-xGdlSl*>`-r&eqz3zYTd-Qj-(<> zDZ1VakkJJx5G3N8W7%yx)rZwZKDiZJ`j9t~74B4DAv<&JcVTeBjbZOyYL&|HUr0Ci zF8_tFSJ{wE+rWHW8IsTNU--!`tdq>K=B{1poJ*n?<0wPz_5_P5#xN+xoMbQWRomgF zZOvZXyZy@kQG_jI-&Jg95q42%#MApAq|k`r`_%NRXoPGvf}}Xa3k>%dAHrTJG8sb< z@@DMZr#>U?VD0v+Ny*DH0;Z1!t%p>f=HWSs!o{Mo_$ceUAKu~@v91TyRLtO62h?W3 zW61%vZrocI7jq>&yzK_}E@Wp8sEr7vh6e>ocOO)%xKXnFLdwQ45`2Wwu_FB7C`~!2 zJ`bJqq;J&ZYPlLIVHCm{p>-3Ex6tT?Nd7Q8eWR+9^eyZ9t$I?19m0FQQ{OH(xvxE? zLv{y%*k1PMcj{}71`-quprgcZ%`yCh!VHwjf~-p;Ihy4kQiG}c)3`1bDI@F>KS?hD zJWQ6ON1fGeRVuFHQt7ZdB@(=?kHVGAzCNs0OWje41J%%!E#fD-oPctDtYODg8!Er} zZhhneQ2E`r@;#s)OXpB=VPG5*KP{+SJnJ|){RN0#@Rq?H(7l6tUX?F}zHw#)41=fYgS~3MVN#-64hf3;iHeER)&-?(WqeZjf zG1z!3i~_>CyNj+oV*3x_P>C6AsASOt=6?ZouK-23?g)cgthdP62RrlQ1)y>Z@k@^b z>RgAeGcHV5ZZtmqL^#wi3Xq|Aw(o>mt@`I_)jghup3=ZIU(l6^u`rCp90zyDk@M;a{-;08p1)!SwGxJ=sL_6pWf3y^cfah*QeTCDg<%IW|5^W( z+NCNPl!W{s#a3YEcQ7V>MM`pcPX4di#_2-Ol;9%O=QY!F`MzeuTD~VO& z(GC_dmchxp{#2WiUC3d7su}l0N*LD+L=p)CsYF2(maXJ@D(19WsT`TrBzY&d3S0+2 zZxBuMSj*FD9q9ws^R!yE!+sxYXqiEx z?vN!7CgY9Wv!U`r%Ad#S2ThjQdF)(2sl41TkJNpWYH%j!2pHQ?5^6;060*VEkL>7U zl2~Ndp2306z&!TA88snxNFEuR1lq`ZdNv2yF~=2W*H=IlQ!arD00l*D zXe422$(4h>q#XRi864AX`NFh*)@?lTXip%QJ@Ao0Rvilq1D~asi`3?NiKnhpHuH6^~oR4skX-m61=0z zdovy_UPpSA(b$Dfq{^?0{8j@hhvV2MHulPc-qshC9p~BE{`8>tN#7!$K_`vV*y9g*ua(|6KX}L+C$}bhZt3wP0}{ya zS;h3Sf}Ds=q*&PDBx7sk?AT*BE%k8<)Uqv>L&)1uSwkf5qED6|kLTH$rjLngpuRM(Bej*D90Os{h4e*}y{>`>Bv~_~H z=q+!1i%Ra6I9Rz`VqwMVjY7#S!@YIo;xxEmNfRaYl;|;wX^{-?X0S(GYL)kPbL1TF zTs1Pfqxt>V; zlP|sH*r~1FLpE*~rvNpGmpot>x_E;a@M~=j`pUcE@3e|d|JvJ{eYVs4vt89+!!Op7-0%M13gtYC(Wa&q>uY+SO&-+AvhyYBa1?Nk#d zN?F2Ol&T<@E@TCB*#Ymwzf*vrKqvFSH{M!Ksf#0L0=Xyc5ew6hi`kqb-o>E-3o`|a z+4J9f*MuTqg>W&u`KWhJC<4A|7Mt2J@74Aorx@1yNAFkeEUfBr@3)}{4mJLScS9%w zzQq@t$4__{h69=Vi}$Bc7G6)@uUL(`W7yJ@-ov2?4khmtmX)Cxo!}1r!+VQeh+^2g zWwlJU`mDDs+wrS6o}E4G)mhuq-czAsa1pbZ{a#M1V?KArTRyyOtMXc=iLyU(>9s)8 zJ|VI6oUE;*@Onj?htT|8(Him$^)+oLCB#H&hbjCmO4~#k*7~$1Jj1|f?N^G(Dy6BC zK2FG4D7}yNY0tApr!eeVmeT67=cBb)mFQ+Z8>?-jlIG22wDu$uO*H3z{sSnt;XepT zhea>I)7JFJzE9Swu;mHb7xqB-3xjS~5(;fk)OP&MLf_i?FOHcB%-(e52N%q)C4rb> z`Dn9dSaU)}&F74Oi`T%)q@fwVR?>d@8)#9Xb9VlVW5s|~74v~~be&!5;;5OOt7z4n zwp_eR%-L17hJUL->FQcVr@+NgVnC_3`FaiQN2eiNaHXbOf=dXq1R=~U3&ZBP+S)5l zH5V64>{LC?Fki2$-TZe-nJD$FQ{duw;jIp;*;ZfsT)s9m_wxlq#dK?Ah}M)A;@V#O z65DYR?ySdmHqgpSHW1!b6-!u&q?Q2KUU0IkMp`x2p`mvCKLlg~km6v&`LkkZIU|}B z5KXd1jfg8NIxS8th0OfM+C+ygyg)@bWOl8Sc!AV(tAGH)JJ()tnd6&jwWKy7;{JP> zSb*84mRhn|y@eKgDFL$4*J>widjFff|3ynJsQiaO7+5I7yybcfc^lHdM=vw4wRYQo z3WNbjU9)>z&F?_^_oyQpw(SP3vO}UIVzr9lw#-umOIpVBMW-?5Uc27BubuYDe+tP2q#+KFMA4=&Bk9SaO)2hClPcO2 zve{m6yVhKBp8?_o(0#H<=k8{DM{Rt4X^olRU(eZy4*8W5@y4YI2w z)fUw7dm~ZfJEg;GG`63hyDS5BwwkO>aMkH`>ilW4_ImNd?EX`wU5ppXnQVrG6frFxIl|MbH|fD?dRf6eELJ}juyQ0$-n&L z++`Y$-AmvE30$P`Zt{t4A}?;}CU)*aEivum&%p+@aV>KKY(VZPxPu|6OA#BuE!}a} z(;g z&eVLq#Tw`(1s0m0%)~e^-f;gM?dnV-yaHM)eAM9t8lw)sF(gOZL2G_Y0b2K% zqa|0FN6wsvKv)>N;9PYe{ovH@hhIdXY?OR&3k?Eir?)w+G7gFV#?f93dy?!}xKM zkm^Fj+`d4&^#VAxFhg)|MX@1(b7KfjYy98{wIVn#n%a>I;PcAD5F8qoV*tlJECoJ% zU@ly!J?D~@WFpa$&&DF{0nVc`cvR**O4oA9xMU(8RUnIr5R%|gsAF<@P`C*4fD?j7 z<`h)y3pId7CMgyW`ubumHTDDOk7)W@d^ztMkC#JzPv(9mKQE&V^(ODLvo%Q zGMLO>iIx(h(E&;~7@CTPw&1Z9S^~_MXrF57q{dhCQ|LP&y!BJ9LDtlh&}@P@Kp1!n z<|@%je!ojsqQ=q9A`zjL2)!{%IJi?JAhZ(VM8a+h96~E0K_txjMU+5jCBW5to0u$* z@spK;&`Jr4BJ;i!MG#sEl|{mzt3(1qE1|kbn6^bEAhZ%{TP41>N_-tk$P@`#?^s0; zT18-}otpT)RRp1x&{!l4vPvMd5}J#IBTYFak2JNS!NCM*)@e~ULMx%QNaz=n2Bj3m z=oe$f-zegb*5`1J*0-W>710YVI0&tT+eN}ezyX+vAut_9^vT1bUW8WuyG4T8kmolW zB07tDypxFEE%4tR!oQ1%9(z>4L1@8wSR@>>x&fh;@VH1=P>xrypqv%mLqrdc=h4IC zt>~u_odp7Y^u4G6p_S5G6!^6QFYs#xEBXZyy~JWZgjT{UB4Ll!WeBZ=Y%Fo950)Gf zRUoudAZsZl-N4l`_Uk z+4G$MfzV1BXQlMb7iADyDY;h4ISW&SRtjbqL8qlZ3UCOmBuqmb*QJRZx21_zJmx7L zKYp($fzV3Hvr<-lCQ=YuDf6t9b5%L4b5*VQg*+bPbjl`C1fi9*)G9K?$jMl@-56u;3bELE^vyE56X`T7*{0I+2oPd}474LMsXLJ#Xco0@$A+U|0|E z_<@ahsv^@){)&`LUpB(nXa$yrA3`#~cc zGXzep@hk8BApOKz%NWC5bA!>6C0qtg#pH8VQ(m}*ft6&k=59!<=0sO7n;KsX9-av1|JTa?KsKGRx*{x8UFUboJn`xW1#!|>7rYd|r!iOL0wnck6 zA{yTR*vTzg$B5`4qVLZ}-l=^ny<;BOrEQZCF507w zldB#sODsVqn}r($s7qoUg#l2+t+=J1Zv`^3NK35zc^Ug<542=p>Dx^GSp);HB0nN6Stu9MZm0HynEJyA+o$SUsI7hS<(YUowo*xp5)H&Tbw<2ejttS>K7Tj6G z94L}B5W)hdP+>5Qd0hEaYyVobt!PRrmuB}vT6c-uw+ltu&oK639ThEi zY3w@vD7T`2XsV^rYL)t&2<9<1o{|E-G}y)y+OqszLcJqeCdu2bN3^&WR)W(BQs4z3Ol*2Y-%O{Z`^`l%GkgGfxs$NF}lK8~@qJGrcdy?$#suFP7CFL5$ zvj;~#plyV`y1<)e+>oeVcV^~oPYMk5Mn_X0-^ww~oWD2f-9*xm z>hOCM*Bg9JgyuWHM~&wGGb0mT{PR2s_nbLTLX&gnNl27@CD-x0e4d0Is&8tESOMJz zlKE$pPu8e4C(?Xe8!|1y$6J+|B0?$Am&7v5`?xk_PQrOJaecuqi6y3+n-amrEU}D_ zd#b+zRrQFwVpT1VzcN+5z@4l~6MGDqjV5ysmH1Wdgk= z^D=?Xy-Wzd)8H~8T!FpP@Unq^pz&n`eO*)Em=b7Ro@F-^OjrW*g(Y$hOlC`)`4UQE zLnklsqIq?5Ujq_K;B(H(!PbJsr5kJ(PhwqKimF|SK>y45~A&bIIvaPhTsR+0_@I zOo2yB&Q#`MUmte={XYKkVYd&Q>_QDOic@jx|g4Dzdw3qn$w4MdE&~{l+8Zt z?rVJ>>Xm1+dx|OH0$lE70;}JC9xit>fz|7nhkE*+l<*G9obWGSEs4GUw6B5lb+DKF ztIf0SulIYqzoMRZe?9&$`>Uq|+-&@kFS`_>wT$^HvBK#-TJN#?W36F4KumxgMwOh1 z32=az0J{t=IY*pXdY~_hulRG`6vI1jkO01EkS~sX|E7;u|9eS^Uk(S(KxfdPu#zT9 zj^H4HG@o`S4Y$P2Sb*#~Tz~}9#S%y72#7$pSem(HsDiwQ&oQkn`nyVTYf}h zuX)&Nq|OHOgHtat*zfZ$3)n>;Uk0$e_bze!?^i$_gnhyL4~b& z!^Wj2+N*khBJsAIn@ zA@R&6-(G6jB?f!-*2@C+i7$P}>~8V0GV}brTQEJ9XG6DJD@aSgtoTYaH!`t2OWp3f z+TNJaJN>R-`I3nUky+!+ncIEyIN4Y170~t-39|PpLY2#RiX-rKJBuaqSMB%jDi$Bd z7Vh%hOO+LVEB21Vz7u=PuDeBOd?$p{jNK)tZ>sN4Wli_^S`m;}_LQ7y(pCOsGxG;u zUx^LcD;D^dt_2nLUD*~KI(VsD(EHmf*n&P1YjZ?weJ))e6n%dMTkt-&jnP!`^V=Zl ztYFkis-NEq?K|sB!uxP~R$#s8U}@5Mv+_Hk6X!{vbI$iAvGtXyY6|lzetx!oW$K&E z=6n6uQTux87{jwPu_A&1NMKE^k6uj$QA1K-m?kJ$VkRyMDnft*|(9E%kWUHh=|u72LNAr&B)A$I!=Ad{Y-yu9*(SMjY@e+gmICxpW{*r!Kz&5OM zS-`$f?XrMfT;sBUJzdLx%Hjm)Dgg)gh6A@--`uW9n+6!V%IFTvhBWIT`^-E5Nyyo+C=2a!8 zn-I&V_{jP%R6IgrqZ|7lCbIt*Y9B7KQ_cO){+DVWA(@XG{@i%ZbC;)Y8BMth?(-K4 z$$5Dzc}8MQyZAd_?&g>|4_>kMeDT;7Xiu=)6>HDEPhElbBd*WFBWPcg@*z#9$YOM1Vf4I)V?#X_xEOEgayk?!L{@VXr7`2<`Pv94@ zkIfV`%9$x>gcH0t)@7EU5svZV*wLASM&~Y?v)?R#nXr??r)LWCoF90~Y=1NAfO}?( zJqWLHXr7W$ws<8MP2c&kpaX7Y;@H`b{Tl1>u|Vy`kN-mUn+Whtb1#;2!(4w; z%Bjy2$ntYm_l1y6)2Mn<_-U*wS9!K^p5HmRg+YV!W{qPH%;&8)SIqbSL#rCHR0A6a zuq8+jvO+Pi@B*WNBF1d7)W2J{GsDq99Z#4sHy_2siOj6!a{m@PF9#ErmzNIZZJh5v zV&}auT=T{i{=ETpb>+Ymv({$+^HNOCME(Sy9s}i#XS25W6Qh4Tg(oR^KHv$AWSh76 zYsdwI*_kc=cJjc%?AERR!_v>J;WqysIN^x<(w{-GO}_MRAfFsxq4Nh0Hfw+7ZzCbs zGu!<=DS6*^f7|$@gMv5USqW5?RJbt83c~%M$5=X;UAx2o59tUSwZngZnL}DBSZbgw zl&l60Gi9eg!*`0_wc)XnS$C&@lw9WcpkUw^jnv~6<23zdTX*}1!;Si5d;IrEXV{88 z{z?e;A&}P%V)EDi7O`6g1?gc+;H=Wd_^mH%_qD%bn}WXdjIT|M6ga5S^J=_Ght+z@ zNDpUrMoCdwc-_>h8@+C_-ZtS0&DJSYN^OPLc^+f)V3zl_ze){6^7k6BsBLWL87yy9 zfnU__#vd?S?ztI{SGP}LXTSC*+=fcamJ(c**kuL)YrXdkx(e$4II)_@8EsLhD;@$z0 zjCJpYlJJW^PC{)3JTaZqV%>Y})qVbqXiA2U3=b07^nLzH9cQ8`n$?Vfp=LxI7GTth z*G{MvWTa>ETXVaA^x(Mi3itEcs475Dr1%kS2mOQP zPqv#=4q{Q2aCRj*wAtY4hW}@F3j~D6ljA?LmEZUe*V)9Cc6{rvcPkL*JE`OGYBR0}ee~`Y0+%L7 z<7pnfI$O4j_tsq2@jHKw^51_>D6aQ_xdO9*jT(#!WV7Ml`LCB}7qG9s^WQE{*~V%d z!W8jG5qtEI|DNi7R#1`BR3ebheFFV@+GD+IBik{;H_6CP&F>ERKa$F>>_gAg`r(b2 zF$Ydot$Fd<7*K{)sk5j*}3Np;F3lymNWc zJC4({p1?jl&L!gyw&jREf50q9U?0TWhVJn1W}_ecZKdnZ z9)(>Aa@BKI<}T4ZfA6)i@zWn{`H%ji^4T}o%;PwFoMwJ~+^=fVcy{2Ve*l8+r~JEM zb>fEK{5SfXr%wvEA#cBKqX%)Lrt7t;j}F%Jc$#_0OTb&gF9{|fe&NE@K4XS3dxN($6CPCPHnKiSmq7-S6TD8IMKMb3jW-YJkA+Kf(5t}JMv`* z!3i0~AJ{{p;jQ0fNGviClN9Q6tS!*fR8cy&z+PQ$4de92$l_6B+)-H~+cXbQLBnadGKbwpm_8;5yf53dBBOR-%Waa z*6!lu#_ZrCcW7YQWG{i-ZE%wtNpBt(MsT?`j|(F>I)O($W3eavR)gdj_}MNiiHVNsFYhc&rH zZ=Qb8l5Vt43vy4E#Pmm8LyECmVD$*1Y|$vvXRR4lx7X7uhfwzf`YK7Z zv9*ME5Q{V{ozRM{*-XDpuOSbq$ga6f?@?@~VRLTNtKa(PZqanZ(;koUgC25_C<7z8 znBfc8@;1o%p;!)9<#s*o_I<-5WephJLRY-K_rkZOMM%-wt-C_>$81MkXGhTNGx~PD zuAB?C_S^Mq#ah$d)|+3LGE|%*K6Oq9LrIe7KFQ0W5*=E z!XO@#jUwzilp73;n`C?!H^&mjl}2GTYuzBjga-x%);p|HXT5UW6R_MRRul?PG4N6z zsYiG;R_fqLEJ3jhmC1Am>(yDmNgB(Rbk?g&j2-N(x6Io1j#%)*N(eW#MkYdtovq!_ zl16-j<(5N?gC7Lx53{SaFI~qssbK7-QzrA-RDq@+EkQzlU198m4ez4YkoK~rUG$nAbC;*0W4}hn z%7N?Cah3t&L%eT5*fTJVBRXyw?4!A2JtB4%%zn9Ixldk?arjf#w5x8r2N#Ivs3J^*2t2Bz21Ri`6`?MB>i28lqE#?1auxm z$i11!A1o&S!%bSr;dj# zePR7TA`D*v>nnwSrC49p`B!!8s{#LNV12dfPUTuzUof#lpSN0{+r{VI*5^U-`7r-{ z!ebm4-%ne~r^V+h*5^Qp!x~6dk_f|*;(KK1J6C+?hQ4Qr?-|y29nV53211`){63-Y za@c7PAL)Suk{I7KaB0M|jsKG36GL=2ijC{)-Sq)=@+Zh`lcQTo5}a3JLFgVGn*r7_ zCB`9k?h~D8{@Pu?%H?%g!8{>5H51F3?fU9R!%e)28>J>C+6+@=AT-ETk(p4{pSK~zv zZhnUl;cKOhFS@HKgy?lw!(9Nzyrj34NRZ$4vYr;=O=`sleO}fjXE4>m+QEmVM0GiZ z{ugwlTcljX1cs#zaDb^)z_EtgMmlgK{^fAevD^%BX+*d>HiO7s5G*gz?M3Z0_y`>R zs{T-W8%7XJwEL{*{GyU1rJcJ3X~m`FoLBW>t%i)lmV=NuBS(+&Nvczv5 zND)Cm1XwOsm$yp-MImm}F^_p1w&zoDFk4S>xQ+<)c2QW5N3t8XLN--O=<-P3;y#8$ zOc`ck$(f~@nXSi2MQnAp9xS&?>K1qtelY`*Cz^WI7&6ZMEn9E$zbQ%zN){#6WLAHW z{wj_0yg_Xk@{TcVNd8Y=>&di%D4xoU;Xc0)dWxORwl~I2ps9 z^$U$~dn24^Lo_6;mJ$i7OK8-9BLdY;aAy%5#98!TSuG|LMr`_9`ad0~taNx^+vVby zFIXzQt=Fs^q8$ux;=bn@Y{}B2FxA-jrV_B8Z|m)-hnBwWuvbM&*!#BrS;E-gVD_CT z>4-|3l5uQPj$SU*tD$vxl7Sr%8t&{M1Ua$QvB_Dqv^R6$1eW$Dl z)V4bv`!Qk+YfEO2lIjjR)!7NAr?7$%dd&H&tU-`}8lhLaC_B}poGnJ`|8R1KT}$r#VvZMdMsdDb;~2LDsGNBfVvJ^1zEogcM(J@O)~ik6vPS7I6ID)+ z($hk`Qx^%A_^8WEVm6P7Dq-hGghJJW!mF-l7w6--UU={E?O)guATyM|jwhJ;*9LTb zLVe9>z0LVM;3~>e3zozjvO440?;g)rQ_kK@@8IMN?*Ptv)Bz1B=V7MTKYz8?P?knx zaQ}s{%NU2%8d5^vG3W1QZW5DfX+$|skI~1wrKUydt>L1xF|t~mK%%oTk=hYC#Yx@7 z&L3=YaZ39Lo2GRICixJA!%z@ktkYoI`j*GB19BZg#ZJ6(l zsZ4VMee+oT0D-PIPOlVVz!na$7Stp)crDns_{l?v_ahjvrCppeU`qnwh??S5u@})` zz*ZM03!!ch>VJ&WhgGsW;Byij*l9X@vFj+)N8|OIZnQIjWP}`nxZcJxcs*fA`a5&ei$UPffYOt|oW`r(Y0W=^H_LK*H*g z{hX`c=8!303Br8>b|UtCdLyCIb&~#a=^;_HKN%uP3bwgM5qs)Ay{UZq4<^mfJ79h4 z`fL*&z0As%&)Ci>dUq?|O>D^&y;Qk^iK%?Q6TPIwTy5Bpsk%=t8qFqspeIq$;Cp%- zcKkhE^>?#s4@+w==ZIk=J5%owB0lsK z1ogt>L--AM<98F=KTB^R9}0`Ka?S{g>>!7KTbYJLWD5VbG94Y}uCs$2{%vJi7m+Fa z8_j*wYSxgjjBQxXJbg@h5u-k`hk!9z4rtxz^JI~ikCx?a*?GB;cK&2=b z4FjNA3;H9Ve19v^^e;*}G7$)Wpi*9Jh+2Ru>6Al(D0h zAeJ3*!%x2MU#LGK)ywBS2Pp-yovxC|I&U}9tV+8tj+NL-h4&!IX;x>ko^n;FE#%qD z)q{~8<-uYaXGXoLT=uikHA2fW>L)gPv0mOe4Rev52*OP;7cJJSrG69AKJplQLfS{1 z)ciOst9P`$(xpyiZI|eiokdOrRQF*yYk6OErRx2HxZ7z8H7Ad8x{}?ezlfh!pYkI@ zcSYQU^m9w~c2c8He)DjqhzEcLzj-(W0yfL~O&s#R_1glMOlbc8iE}i^>0V`-{vz>x z?lQe@h)g_T$1?qq^xTrhpFKD6@z-U!9`B4Sx`lHlFAgaAJ3Ym|O5h5#P6j?vi7w}7 zOF)&*mL3MGV(kS60-5^R1BkQ2E30vvbeg^NiC+7G%)sjkDT|iEy!am7hrWTotVZyu z1Vzmgf-tH0z0&%ffZt23-;`&r^_vJb-TG}2tjhTa)>ba>VUy;>lw-H7)c?_VOp4Wk zl93~Rq7j5Paf)b$F&!#{*q9SR_`st*1lzGvuN6sqF0ERw()*-m|IgC?>g`@BhK@Ni z`BfOn+lLK5_uD2@XX3gD16~P&q=#U_Uc#AA7CW{Ycb_&rc9QT2(hg_;c3i0ieEj5r zMxe91qP*GSQKFcFasf!foj{-b! z{TM8ht2I*K<~$8MJtLu8sVIJ-OmaklVrMp;IpN5`Yiv7*wYO2X6g*Rc)vfeDn;NAk znS9P6wLaaCI;lT4GfIo|igQ_qsdPi!aJ$kE6nP9kWsr@J8z8xfb(<}KgSD>P@b%C? zz8tzc?`O{)I1@TYnQBI-abDsrF)V5lwk}FKloMy+a&(r%kf0@Xfbnh^IU^@BNs!Zh zi|8U}@%aqYv#A*{G)~PxHyhV1S~y}P)R4g*KI2QQRe`fiw*iEVbBym6nAA%sRohcb z=>Fh7AV_Oj6v^yX*;6_i+o70}(qrhH^<0z`YoExo#I^cZ=|?tytzO4}vKjZiiDxIv z*6ZmkW}O~ro1bEdWyM$+8r6!C7aG+HjcO9h&Zx$HE9pwu1DlJyS{w9gY|uKrv^0dh zyH2kbH{>@A3tzA_`Flfa1FMz5K(=k2UYUmfpX>CDkm%)eNsaaT-N3T%dZ@mfWOLW+ zEt=Uf25J{!*o4cN^I_B2s;5%faBOM*H%D*4@;bd}^o5pMB=c#hRnHOi;d3-!L`84X zU8^iCV_b7IpL?&{q-WT3FT_KbZ0B=tpG|r#TTEb)6zmonyq>g3uJD7HP-ZWMpkFqo z4Ts^46~tPc)GieGF@PBR+%pD0{ShPRQ`$DkR#jJ(uri90TXB^(*%*>7k&3c}t(K7; z*Gwu))wBCI>rFCj#`uaxR~&IQI@{(Ae$}>UvtHe4U?8l44r>L=5ZhA&;cSo^_-E6L zx6iqf4wj|jjwm&(_VHV^>aylZ;|s<|x9BbG?l2T1V3Pn8;J3=lx9HVMz21zkH6UA! zKiN-P^p+QEC_ne^xK+Q~X=r>{L+SKdjG1UK?Tq47Vmceh=<@%*&=^ftYN z)A-b|#?x80)%c2`#$)!R#$zt{`>j7u+aVOGBAQd_berw?Qcte%eG#tmX=#GW{Ma^# zI@tr8^#)blM;awFa2mmR_$&S9d+ipahczw3XmEix+nSnvG*nLRTN3%Z{EvAW+pr!K*#~_ zh5HVNh}?r5q9CZ~uGcCGDu-Nx*9tE{z9QsfLLF8pwf+OAT92DXC93sZB92BVD(m%O>}?%{`1p$| zs!661Y~P016q>@3Kr!&P910o|YVg_(+x}y0VjMg*h0GW~WTY#s>i*c|M!>r;j=akQ zehFTXd$3Ep4$uQi8WIj@UpVhE)9AD zN@cd^mso$D^FgudJ{}~tjxz069`r!aRPWe-ktHSN*VvRgCK;AuNwFDbEdE25l&QbQ zu8T-bzw+?WzWYCq#>QPvJEK+Q6>VT0o>Xa*ldD8zYoi4Ll8F?_reh7TodDOR$~a71 z_O$|v04b|M!9dftpuA$nFjyjc*ptU%E44qxEiO1ZM|jX29hHxG={RNQ6yIBNhJM6gurwc?%bq?Fd%e^RJop}*P!TVWJ?I3y2bUVn zwO|~Q;`q}r*|sE(md{VRbYIr!B=^!7ax%8LMRbT3wgNs}u5}VLXv1z-39EfHMA(pG z6d&+kzI_hWmkl}O%E2<=|__i~# zov>%@Ozd@cn5@C=_d)WpZ_uG6lX(T_9HP*z%Yt44CKxiEuxe+e5g3(UW}J;p#u^_u z8yjeC0zmcFoV`gnNnwhh*#uQrGZ{9n5@gfKFXP>_u|Wj1=WJ|;HYOmqE=w(Wkkd0~ zBYe^eB#rx$RbXU6pXh}%7?h6gvTj&SB9p**ZS$`~9n{2@%Z&n8ALz?T z%4eNu7%@~_*`@QbRm2u=ptdpDYoiX-B~55`a7beLn4-35Cf7Bxp@3i&^$=vg3$ccv z@j!jbAv)Lqb9`_i_Hmh`p)*G#%yG+~u^YvT4pp7BU}T`NGh-TNYfpMnz?WB-oBc^(<) zYFdY-=M`hiT(5sC98tG%b`lT7ym8{Yb=jzZ4z{%5O<3`R5o$FHEOGKl5$fOT3F?6@ z^t#^1z$$CJ<%LBFOiP={Bg+JAl0Plz0DRdX&us9&hU4l|njv#%OCr^3A#88%ENn0M za&z_}xg?k`K)WaVgOlZ(t98@Z4{wOJ@OFZFXerSFV4IU2CLB6Lb$|z@VaAczK{z%8 z2kRWAmK8JG_!yU6-TY?+?Mu#q?)K>CKpc(?AY5&U$0iEUIL78YBfma!F6NEH#f7tN zu)?EeS?DIt{(Y2Msi6hL*n$m;mbM=^kH?0xV6-YWU69+ed!kk8%#B`atvp-ONe){vGlK`}S$9asTi6HiOSFBp2z9Hy%xn{Y5=IFmeH&tt>6_Jp4;uEz+$0C&rs&A&snW&}2pe(gaV2Qw zH%`J~GN88t5QKvNBIgd@=~qKa&4tPS-N3#O0vG*uX|(*Z#uCU4m!f|mNT+{vrh6BvoUKVIMf=srvNqu zMFLwKuRhxnt2k^jQZNW1g2RU!JMrC!MSIJ;eiR#@g zMXTTxw?#UnRJcjUMtB_&3QJUPjtFJWDs7{~i7cQ_L=|X%V3)m5wjCyv&BFvYrOkoo zj>bIygSg3epJT@nc0}Uj0vI_h8(d9&0=0r4tEqKS#X&65s+*Ho8EdRq?Epw!GlP4X zCK$7i^S`HZ_!k1OW59)``$}A8zfUGc1_oU;|HTy?m3!2PZK> z7zzL-B2Xa6+K3R@QByH-7iV>q$GMMMamlQ+ZMIBCx}PRs_AVqrslyko`djFQ(x@!M!UsR2i+ zB#XwiCHpj0ZF;+vE0Bm##Xz{%j$pLG-jF6mt>97^jvImsBpZ)v2D`Ponp_tdp3odc zTcB~El?b{ZO=D(tb)i)It2zi3+rxU+P*d(C0SI6RnT8_Gpuq|E-4X{s#(=GgP zP4yuk>?MCxM}11HaspsHx3g_z8tm@6>P_OXjIn{%t@(0rk#De#b=Ai^SuKD?sPvn) zO(b9z;N}YROELt<`AK9TY-m08HRN3h_0{SYYjRI$8(qK=pGfnFj~HjEOaXoRxQ8p! z6G|}2&tc~r&v8cth1TJm+Q1FiyY%=wMf#9CGp0txPB+6_%? zena&US93K-b7`-YGa@)W1aw_$bKQL8YMQ&JvAwx?dd7iOWE$qgN-3$ia9^JdyKdW6 z>CJUBkgI8KN)vl?kv%w?D;aShSWYYMD8SB99LmnC+7Rg$uUAkFR zY1qyvNWK~XXOylw-NYj@`jAs9gMhyamO(b1TGy-0yL2_%c)eONPM#xxMbhi+hwIe` zqWE4C?PuTHQmt)|&ugisDl^%}mg;6@W_bJ!YQ9hM%eCmSk`Lw{+)mAfgQ~>0v7hKA z!v?ig$%p8*wrb#hXeEBI84BP8vBTYj_KrwN#f)xsmWGJ)32=|LEr=1fta>}O6>{JQ z+NpH75g|C#)e@>Ap@SKnSaqz`;~Z7lWeYZ5${~XAw#U+c(7yxC`W-TFkF{gvtN?J=`!0LK4mFsvHj=ZXk z9l4H$5Tw!+NOnTtICI#bEGF+9xjV zx6bO5)g~5r$cT*|N@LBixm$`v&JK5$6iaR`<+`Z-vE|QoQN?Bn+O62zUDWD-w-CWw zEVL%6FC&YD)d|cQ`pD-o=xa6=3t6v;&bn4c)}*T{&PO8GWxcwpa&LxL*8mG5g6c~M zWbu;n08L*pa%ZZc%-9gC0&b1vB|>pE;w3{i-dG{%un{l!7%nHt3g)GL!TNEwVqTI= zw!stGriokD19|cla1T)&yL*zl2oR{UWH>NeA9vPCJr>95svM;No^^nJFLEdKlHjDuFM1WpxCW&xTO-lp&RT|bj+$ww1a*) znLLQtLI*L?L}N7+2WQ4qbYWM}p-~_av5Y1++Hj3x8xKZA6NyucjWsAa;h#|m=0Z^h z1MJ`}>g}Pt>cSOmt!&0}M>A+C&%s^386+Y(mdO4hheEdDguM+Y(gN(A?&@u!39=Cv ztzAg)C*na97gyB?w=|TEl8pdwc!>y-ifm#JXvDJW=B2k@W1+;v90w+(OetkRNaS)% z#3H>&$txR?ZWr#P&9J*~g+^?*w(Y#eC)T!|*LdIBwj-*zDonVAwT#O~Otv?Igm$=Y zPqm}s-IC27@1@#K3giL>Nu8>6He{@FWR`RQx}kIScyMb)Of$(X=sY)E^vi1ArtVX6 zSoG~`pE^tFq@bJ-#ZRH}$;*ZwjIAiNL1aWWBOx}1<=?I*i!C;O7DjMbnjw7bBAM}o zTA@D7HZXS$l@&{~(7|X)NJwd{?H%eHsr*Qz$PeZHHd7$h#F}hZd;7DcjLotz9Qyo^^Z2nvQT` zqBR{o$eM6D&g|!+km{FozEf3F56&#jwo5}mu5Nors{iJBLG+c9x|kEuCH0)np;^e5 z(~{rdWX!d+Xoq8(m07QQRLzci*hCig?*A>gzx7_g{mN9~kGMoq`zsD=N0#fL zb_@5_*vI#(zoahx|Au=v$%Do7e;wLydEMv#3r9OGTpwXG9#9``eLBh1mf$P^51NX$ zOMXz$6-TaW6VqcYyc}N|Wnt4@&n8-@wTeMF9`@{Bg&Ly0{nf9=H zGb;af-tX2LBs&5LVxL^Zm$-G!WISAZua9?o83|wx*8!&di@i(!@ z#H6rY&VALcx)%=X!akJ;&+K|>&7M7n1F>J>xWWO$y|EGnXKovqr7d3!8zQ}q)dE?| zMm(-|x2gJ$3}`iDyB}9)q%OazX_!zdUq^;=<@+n#!r9KYOVo*a4w1_LHKLD_P9)s1 z|H{n>mYlA@#tl_7B~OJMN}}Jbk<6u|i83DH6;Z0>I89ZMZZwP7G65q)xsnI*R{qpd%0?|I3uT z+I5y$ZwPseh1Ssxk1@wOxB?qM=`??I; z=l)Z@t2T>S{fVF{{6bIDz4*|PUJwF<6E&ON85SvwrKhG5r?Qu_*a zj(j=>TnfQYh%X>uG>WNBqCwCahd$$8Y1rjEwusah9ALM6Xd!bNt>E++0CRv@KK^QSwZ7r`bf~Of0f+PSCf_oXE1Uz-UZD?PO?Hdg@1_7Qi zpHusB9Iun()UXPg{ml|?UB@QAWC?$wtpq7JQ$lKG?mqrf`1O$bywY%9)@3hBpWv{& zVhs!~O5a`n{Z|9fM7Zt5SY|$!$!-~|j#Tp5`(xFG zT?bHPY4Gun=KqlWGedpKdp13MB10{!C>vPB1oeJpefXgX>KR2@&+g4skIP;EX$T_1 zaT5cXOb1U?yCBiMJy8|cl@m4oFj4&zKkS>N2CM-jI@VrL*W-uJUXUMfP0UWcpw7S# zt!H=>%i5gjh=$ipRzGpH2Hl|G$fD4+Q9onzrtsG6pCVg>tS0QAst&t0Z-}1fE%CB> zxFLEBQ#T_%Zknyux7?GY;TYCJuuo&ZXW7_}4i9*BDJ`Fo&}oR?oUJDI6dVR!JYIuW z7;G0DyDbtn^Fdw6t-*mY0P3(yuu5~(M#78E;Jf|QIINa5$p`1C6$RHZ;1z&Kx%`mK z0J`CEb;IsV=VT+`p+>6|7*Ug7+Fv7Z@{g`?tF(umn4`98o;ja*Z4~iZ;5t!o-d%$D z%7+Kz?c18fXC8VTy61h2 zx7v%!oe~i+1dC&Y>bmwn0~?f)zjF;d2^vo}1zom`X2EBR)Kodb?X%F z^v6bkav>IoN18XCnr)bN_QxXd2Vs)Xc`{PA#q|;o(eJ7p zHCcM}K98dYhtGuL4cQug%~5OLB1kP0^Q1=_MK&{$+ds!%^F)X6M#${`SJkGjSPiFH}3PH%Or7KdbgRiiw{$G>>+=bKpy z{=EI2M@@ph;Y(3)>lt)%?Mo@frn#)#GIen!0=*+cfL3RD;VBaKz%sQ8`*N9jHeC3+ z+8_d+<1MpNtpz`6E7e;xYP(s8J+o3xVL2<+`cVjX|4Z!am2f%h8|;BxHTkCHuCoVZoE>5K31t#IpuHst?-9Ju0EmR8{Uo_F=C2mg9 zO+v0op*Q!j72V?_} zI1>r$qb%#v zEv&xm{W6-}Hq#p)&JU|MDe*aALXU*&41p@m7iuny4JW^&mh(2Adf4OtG1BT*)>tti z)ko>&ETd>XzZTpmdKm(2U#vGFlJo)AAU|4`g{Ovz70u9lcp&+41+(!E!!F zaN%suXKM3vdFpN6rDNC^d1{r=(lNYZH5T;nGXeiBU!qzQPD!1?`*e{rLZY#Ace4Mz z2uwt?ya$BrnE)2p0tLoEfm-m;y(j>QM*6pi!$eFqOF$}?SSPF4ge5{$2c#Mqybee; zOF$wY@^$GFHvnR(taPoY6cUXk@E$!@3aKUtNX1HL%Sv-Z2}m@Gc7>>8kZP8IR4kDx z>&O-*AkjFul-B{NW(i2e5@${e++~OokZ9!XqADQKEC7jE;2;zj;|meCPn@=}4XH*} z9CZT{%@UBvWtoKuH5tmM2ZJ782asCYKo~V(sRil5t~wCZT`+tE5Js=)H1hGXDrPqa z6hbCkC=fCV#-;dY`;04TP{|_F9!n{%_j6ktc_`ymS*ej);re6$DPq#p(9agOcR;`fVtQA6L ztx&?)aw!>mIvIiod2sf{P{5d+P6)_>v-@C1b6aa#wB=_mIt#SxL_>hod>~O2!^0ROCg-klh;D9fCuv-Xf|Ri1dDj; zP6!_5!Tk_S=OcC$f>}Ix0fGy7FcW&8%Y)ev%;!PC7e_SU%SaDh3?QZfJ&5U}e+DE? z(eM_W=a|liOj|8XZ?P~9`Atki$iy_1Fy^W_yoC^&L7{^XTJWm}6Hh?!^CAkSUkDhX z$#IxE8G`%a;#>&MhTv{0l>?#eH83p~LX+UlR0!rl@a)$V+ycQdJaq>Ivw5%xf=dc1 z!(j++m_wv?27-A!Lk2YU+Yc#2)}J95e`>)zNL~FMr7nfwGTy|s5PXd{JRgFaIfShc zTv;DmvlBv_Dqv_oguZ!^>H<7*3jNO=!Ja4ip>fZ$FZOotIT z$b*w1c!mdOLok!iiW~^ereMg(h450IoCm>mJP7UNJ0219E=W^H&Dblts|ZmHcmjeK?oYug z(*bw0Kq-LWWC*_B1Vhkpjsj@70nI}cz>lgz&y5`7`Ji`0crmP4K`QYNS+)<;*x*fS zt+p1r)M&`vz*ENjjUkTjeX zl32~n>P@LuKG2ikR<(hkD*YNwr>;oXC)4V*&FX0R?puTb#*k(B75<+T6c!OutD1hK z_7XN5Q$0Ey?b44Hex%xN@x7!P9{3M*L{Oy26aa7uEc^2#wPvx7kYx_D&^o03$Ld=? z?DXl6)p_C(EV>;O-0ktkmdJsIcO(G+&3369Szb17QTr+HvzniPw)TEF`x98p;4*y8 zr_wZx2AJ^PPt|7?<#Tq=R`qM|i9cDBZR-2VhwS(^breR2f3EKFW^HG;eWA9)-|1g~ zi5Y&s`$D}AfBgmEl9u@=t6iY>joN<-sPYt>UI6B(kD}F8Rg^{{qv#Y;Hwfm!Q>I|v zc`5*}bMLUy3n(4bc_VLJkn3*iAh0e2l|ci8S%t|~aBBett#LIzRDsI}jjFJ464>>i zf(TB^3Bpa<*rXZ-8A0Qxe6$aXK_wgy+734sehN=2!p2Y{{*9o&ol zjKQ5nPRO5g$nZ%*b{cMx);3vy^Ce&mnt(C5e{aYM`3nvizDdaLtxveh&Vsx}LdKv8 z8G~E*IRO`N!0<@|MlJ+W&w~;aF6D6eoo}~|p4|fcS z@{NiR)n49J`wkBFpdGB+C=6E^k2PmUCIrmcfk6`u7|e0a<*zwl_++91=0D%Y$yn6EFsso)mzI z{*65xGJKPe-A8I|$lGdFu|-yaL9+@B&O2pQfdgT`TERKhLdITRHx!a}7rR_R45YEc zs=GkejX|?+4CbG<*X=&YYwO28)d-=M0fl7Uuy(MBCg5zVQE1h@Q`U_^vu+ITKVz>O zShocW7UvEI_apCi2nxx%Q)T{CSN{E0-9@r)44QRgF!P+f?&=a&br-AyylyDt4+&+Z zhRk1s=Ra&!c~Dk~L9@!E5Ij1LR5eVUcbIC&)U7;d_1*Z1*9W;|S8MX>Xdi|y)&u1T ziXuBU&OpHArx-NrONWul=Bgp4<{Y8=Fm(qHiu!)$^+7IKUoF|aS~hfG{l-C?Sg0-Y z(S3b3a`}aW%^YU~TSsQ6i&t&g580sBmD%V_v&a^L8^k%-*>1F)rpxe+t*~%_DTt#0%L2a2gk=GyV;cOxQ8f>L1XCd$ z9kw2D{~Z<=JU1*Z3|LoSZusFV$&anIBW)aI{>c~V>H>Ju03NWc!zS-h+bUbxr+d^k z%4!zO+gr+N0$ zAPD(|b|}8A!NH)3Bn)y%Xcf=47r$y5Zk3)aN}GMjI2E$U#Z0;2M&AjMKoikIh}r;% z6Pm}_m~8!0*?J6eWzMR9tAJ(Jw&|q1{ycY{ zf*n`DozMA^`1~Y(IQktixie#e{+VFq@`pIpEEPc80~fP^!kWYaib0EXA-G~EZF*zs z77nq{g2(|b5CF}tX1Nn)Q$ol#^E2I9(nZ2Rc={D4a}Lx;7+(MZlO15tY#9b;^X6Fd z%NV2jqok2b3L)S{=z({qv2;ujFSjf{rO&vj<)Ay^s7Q$PfYHJl=H(~Zp8aZdZ_Y{P zJ)qv#N3`X45E;Pv1VeTjR~-I;M_pN+))Le03!j{UhZ{a)8xN?Jl+VK798mi!(khps zf{U(KI{(oYKOO%b`m@?e*p~w3;3mceD%`@<5bR5|QbmOqm$vNNpVjNp^5#FNidPbF z)fw)25FBKxh@KsZm6i(fjyrlr9gPJO52-ie?j}NX`WW%PNjl)ay&`CVBI(R5bG2p7n=X%ks@4 z3m&~l5(h`Kq3K7)FvoJZ7f-n$N0Dl`^PzQRw7fvEE4Pj+20co9(ktb&j(%RaHYStR9=YxXI zo!q1pnljhy;52~`Ju;Yy##S%tK9?o4WHwsS5=zE^gVsJ(w9C-iU80>Cu~()w-bCZi zShx!oZm!tsO-0rX3Yz9ug+~$5;6SfNG`QNU2`*sK;O`~3*g<}EBD5Qk-5}MMM1E#V z=CB7&stFd!U=zYXhA$|}TWm;BtA@TBSwSt4JskyCJp97mjnXG=i`F_y8V3Is{g#eA~EejCNODf!p%1g@Lbm!Hx3( z1Dp}dOBPF;GE-wTa)#fOs@1&D?6x#adpq#|fFhhO;J_d7&5X-x;o#Fk_k;6mQ&4uW z#bq>cgB4XBs;)I3>o|&U#!1}J{25SJqZiKo zRkV1WtbYg|Sp@sEuGUVj1mM&IZp#ULx$Sw<0&av6846%5h7&eIbert7Ko#`MF;Q-; z1NMY|`7oH$-x`R$nKdS0UIVU-i$;yNK@3e<`_Pad>Sy(|M%Y>GQ;1Ad*aElROAVxe zN4;o)yMJy|m2FsT{evYcpTTZxlo|+hM(}r(+QXozKLB>5tLb1Wlwdu|X)WZmHCs-0 z9_(m!%(9@I)=(a2m`sBw_!rt}*e~U@hl>FrD+vNYvkL29z7!y6AqlT8uRWmz1rlwT z5rl#!64oVNnn!bn*Y;qH=oKQcF_rS0K=MPjP6F4&Ixi~7#p)C8Y zk~SDyeW|jRXx&73odkLv>(f-LaoMqNfgnDutTnShSfb^6{7@r7qgxJP>QriLVz{M* zO)nV4csm3X@~X3F+eAq#%!tjr0YSZ)pw(}AIrO)dFk2%MV!#OuMlIg(bmu2aumM)f zhzgoi(JG5)k}N6^MAk;aYr}0@qGqB=7zAWT?W`8I#TL%0qBWD}h)TwIdkMHb0=Bbf zv)iH($j?~iM2+5WZkwoyg9!$H=$oiLQX+k0&&1rYdUhk$i@5BFWrImtm&=Z5C(JP} zNuxDMUXmu1h0ge4Z<6*CR{L?XRFF`b@<%b$6s@eR8-#6)TiCMeQ?wKWa94`db4aYt zN&#U5AGW4w;-nloDx68t?krgWB8~Tvs@mZC>tKQ6@t-lb&&6Q9t{NY0vfb=PqV`f% zt*Q{UFfH)S(40uA6OgEFQ%&oLtx2z@iK|#ikA9(*R-J9Brp-+=Pa=3-M^qPsnGR(S zIueMnBu&D&ORLW|1hibPYz@4^qLY5rGF6*|jrps}PAoLyuPHm7 zt4o1yDLcOOLjng#8&4qxLjVz!NzyLS|!Kbk&=`g*^$&MYB!)~Ku;__ z9YnU04+)Z^xSL*r`r>X=b%fHnf!3skMKZ<=!oN^oNYmjMtHF+y)9#h^xq*?UQ@)|r zL~>6TFjREH4>SZd1}CgFh-Iukp+dwW8fz0o9f6L4I{qEe!Fuq8I5a6ZOB!?S1%|^Z zw@`bLQ^Vap_a2UiG+eM21Qg?vGR&dDxEkI7TQ(()YcNCwrRhX=4aRJQ&|pv(GAAcp zJc}P#=O$WR3kj$Zv1gia!S+fM*+bNsSbh_2IN}cV5vv3$MeOdTT7%2t9n~PVuxW8U zgmj$qO}QR|=(Hw^UB@Avp_m@x#xChP8O^lDmu&?pJzq4_=qzEeu|vsxc`o4Ai%{7_ z0upE=H7KJw?;@h@dXr+@+K*kSaQ6W<8y0mP$9;qAv}8-=LlwpxwYF?fqV^9QgA%(S zNY`)!M}3I-TWDP`iy+j0*b^h)VW$ z)w(LX*o8Z^XC0L~a*}HGN;j=F`@FXnr|f1M?$o-lTf1q^uUw{^QpmG6zF7;Una4)m z7+O#|hRWQcW!q}v7T;nhIUEZk#&NKh<#yL9E8jCfMOAk3Htm6M=N?-9NM%oW*zH;^ zJ5spjR{~P@xRK(@=|l=U*iGx|M#*JLbW`>sO78HRhhzmdSnw_>)KL)*gCd-ycqe|# zh78l1*iZlm!(b@Mih|l2+DO>?VcN~?)ZYNh=IL4imvbxQ<U+! z*1cLSobeU{d1YQOh@y`w--Yur$)0@ByTwQnn|ttnt+!Zrp@~x?6Q@8S_4TX! zwffFXun`g=7iZMtjZbNn*`fQjIJW;OEuo!-Q5sgE)*(-^I?r!F_J|Y=SnC1S>S?W0 z8!N9926o*XEz>j7idzuKcK`0vTK5_@L(O!=02;4jZB~A=)@MGT)#zfuz%2eOoDtL* zr`4WciD8b^R5ef*W(E-%wi`Ri{&+x36-sRYt_lixz}J7o0I2l`0hBD5Eg#gDxR6=~ zkV+UraA?b97a!Dm$+a`pl|223tRH~S?6JODzmoG1RsYmi ztBLxQ-cPHE2t=eydZEb)4(H}R;cfk-W1cnZ9jXR2QG-k++E<$$T(;#itE$+qXA z$KxK?CM(OCe=r||lE!H2i{rG&mf4DboDc3QEB&&x%UPnbhuD|8-q#MWe&N*_5_r!@IoT}~AZ9H=0*`#kE`bT2gUMSGxb0=+uAQ&(2L=8+>`)27-MHcmdLHlRz0iP96v7dI-PPi z`kz`eS3gmtM%(&HqW8XkYF(Y<>r|dd?tbu3?QvvKO`eks3WXxO<2m3rAdpu*_wNYg zn*Ww8#)d_Vmh$f^1@L9mV@vi{iDM7VhJSqK8v~zt|)@a2S;AI57V4avf)h@^(^+ z1Cd`&ipxW>2Ijh)?7nY;=C9enqws|TUuJQr_Nhao+I51~Ku+na7TGYROBUJoDP0B> zX;|6VrnDu%2e3iUYaJa^40Qn8<$snGpUVY!63fWc+9UEVJJPR6rTZ7Yv@RxtpJPu> z(i(~;8q-0tmMDlfP12r8Gw+FV6V2SxiDvc-oKV)kqty%nsiO`c88=ET{13KNoNGwa zk|UZdS6#(koq?qQob@V5Hr_2r22v}4tr@8rN~r-dgY|h=yGx>lfxRA-7-7wziM-=o zt-aLqz_lgH$OGrED0m+ew|sGV-(r?Xn~Im8*zLyWWZBW>263Tu>)?3iuQFY<}^?RF33n zH;Vg&JcU!iWz+VkR zIAn2}HC=lSKTUsMt6-@^#50@BaE*xrHc`UH&$Nb7Tgm9nR?Lv&f+KHg?(|#{(kR24Oq5&6EOwI(T#@SNjvQwPcGh+_oNS0CZk# zYY->futlrEUdq;9y&4own#EDr<0T1&5V&*Jzlp#+j=*CtUIBr5bN^igrm&4nqxY}< zv$X^ya3ll7A|EZ_GG0DIA_J9fpgV?H_t{rKYs!3y5DTr<*=Mu0o72pj^4$FJC7`5I z_UVVt(fa>qjfmtA7x2PYPaSU_zGis?txUxjv2F9T$~Xo7^&x4?7R}d&T^YG_aq{-n za$t!gY=6Btr4y4+Us)QfK!Lyt*Kqb-cCDoHVq5?-c37)jXR(Q5{5?>v6gEM`w_>f< z7jg970!`e`O>AP{0**Xmm89pAEDWs4LfLH+1}omu9%O&6(uVve;B8xu>^*X1Hfq=Z z;f-@g^gOg{3J!Yve(C?=4Q#^!u7_RyJngVoOSA-$)Br#b`7A-?#al;#5dX!A`^%gE z84OR~uT{}eGnDe;|5%=-*pxbTd;aoYIdvaTGw=9yYdv#H)q0}osxH{k8}+s}MG6{N zpgG{axa-HykA@o{wqu7>+{`yV#Z|e03rYf$(iHp zSVC83BRFzDwF&e|7>6;RXz}dzO>n>zBAYj9SywYC3pVpXdHIWC zgK}i^zcnaiTe|H#Ek336A!zyWRWHIXi~anqT2Hx!bIDxt#DTnVPHx_`it!2U(fVwYJs>L?ME2`y8Al;dkigT2=hb`dnLf<%vMca~NP@ z&LV*x*i(E4kcfVuptR*Vt>CME$Cu|Y1B7*zCIYvv@+V7C2IcL?DlWQQO5jy-F=%1})hXRoOhqZeIZulYiJaqIr~cq(;#G(daL=$J5L^ z|J@RWl`c`be5F0~A2k+Nwf6rDh<}iE|Mou&g;!+;_)93feYe)$!7}<3`iNzu7y5{0 zEGYEVV3&4l>_3WD|24b8U&4H=BJhAW-(?_X-KR*ag-m*45ogxRinMqCqmT|Zh9t{a z^WVa%A7n8Hq#92;N|OT|=^!DKB7N|5z!LV%0c}Xy1^z~bo2S3{e>~kGU$4rz@t3AW zw?kUxPI#lzn?86P1fI*8ZTiBQuZFlsWLD`T^2H%7Q%)kd+2cy~4%n){lD*>)WU*T^ zguMgTO?->-S6p^q+1_F1J{-&1t&=3*EMdK=U}~2nj=c*W?n!7qed5MmcB$AaQx5JgHvrx; zHs*KjvocwmlJPC6%ysO}quLW`<_jHem@`X-$*LdI#+TU~%`fVkz*ZdtJCS)Wyc^Pt z(jf)^(6Z%$|5@-P4m^OJ8X54x;0SMExfSp204p8nj>A>HE}$e5Ks~8A0L$%fOq?lw*&%Z(Ta^u4{%LBI7DQ{z*2~w<5~pAnepm;z;7=5 z;-r@9huhyVvp@<{PDwW%>=p~2(&YV0;Jx`LaZOy1(ca3iQ(A+x6a4Z+0mUS_tkO|? z=9E@WIn82EYqeRK)3B8841bhNcF$?8>Mfa3@TLn8UCcoLwg@MgnO7~kYnxVjZAVUP z0p%kZhIw6H2*o48>v_Cd@h<_fV=>=MCpSiC!Ebak_5pJ+20YZKPbFu@Yn&MAU$Bi0U3Y4 ziq;25yig(NV+(JAN8cWb(Yy88{*t0;srsJheH2VK=g7UHet^nd5ehOGqL`xxnrJVZH z%%e>b*@SZXlxwU<$I9yg@4-{7LIu48Jl6TfFTNfr6_7uIu@K*Sg1-a&lO(&D#5PpW zZ@H#AF-A_k31AgB5}a=I#HZofzy!AOU_=bNy`tVqydwzx^ujBA3Gz4<&9B!h>J4NU z!K95(h(yS@OWgYxaBqz3)OG|gH=;D81f+OQ#o(Wb{%Imk?uMZ4NT+|{S;g+Gq?dCX z_63;YYyg^W*w{)sU5~e_k}f>E$lLCVN_thnMT|`H@f%>+-2BMlPOq#t>TI>ln8|a= zJH^~P6q23|`y;)ijHXxC>sAqj|726WukD9Va$H50ngo_BL)z(0c~Q z#h{-fz0m^?+!Z6!^cc3Ff?knrNzhx$;kzan$M;qAsmf&bc%q&pZg>>LCq#hcWnR>j z=v@&c7WQtUo@Q;zk(@Z0s0V`0?27|ou!WBRcmdy?)>wg!63P2U=ipV3W6A%YJZg@i%TzfpMGhI?-0=IXLc3im} zfGg0t>JivEIk6p`vk<{POwq@QMi|!wW!0#rKj}Ssip{I0SF4y2Q+!rTVFlIf?Ce@- zb$C}m@8`Y7Fqu+A?{U9H@rEC$DBgC(qD2EqN3^#bsMOeE zf(f@esxCk6m|FULZ@~h#q?TSguHe;VBWp=Ati`ke{)w!xmYyKkk}(#AXrUhjo?uMQ z&g0zj8b=qfTDA3t)d7xCuoPiIUna&NTznTR7zr1JMZ%$3NMKLa)@ynTUJcK$t#6FH z#)iFBBfTcdS&-D`RcUmevQc;<5Ww|=%C=Y2>tADy&So7Y5Hsh-W&g= ziJqpMV~I`mB<;_#!3uaqX1d=v&y1$}?UiO0!o!{`;YxoaFf27P$(ZrG$9Q=)Th>(X ztjr4k-c%nI?alryJh+t}uV5gfwLV?(7A*`{ZmV~@)>Z=T+FwHhz!xWdI$U#2$}p~_ zCiUv5KNXb^HoN>~GgozrXZt$p*Ii@t`oxX;{nuEN8h6%vUSmzVuZ#YGG(^N0TV7I( zF+aoEX{j@kY748rN^I)x*cf)ci(c7#Dw-YpH6otX>8c013BlVRk!+Nsk%V81E? z6;lwblcJ>@CMA1%SG^m06BKsUQ!1P~;{nm@5S&cANx$nBTYU}e^+}bJpX#E9aJ>{> z%>=0$;eR1o0wf*b&6{+iyA9yh^aMLd_j;4m25utJpc7#H0_|Efk=z4Xb<-RDZCNxv z{fR4oKmW|j_>3KBs}mSO(JcicRL%TW^?T>>N3e50%z9IZ_++^jc-hiDqyqBm7HDM38E1@^s7 ztp6?gTpZP??z*@$lUAZlyX#Lwfj7Fl3LNaN7eo>Y*=>t}?!M}wCn=}c?>+P>Xt*AI zt9}fBhxOF6@i)4cz6^g?_tI~@#-`Wzw_QtIn+$Kt9r{IO;fuZX_|ON6e-k`q3_7R> z?-TdHfjeUsypvumao*b{B(BVLCxQ|mGX8{zevF(`9{(jTm^>4Wix@xrrHEg``2JlG z5Ah7?u;4a!Zxm1>*ZSj2FrZGBBRGS$rRl@o88Ahd%-1D^7^`^B7+b zFFuFN44Ihlhs-b$;}c#|EC7?JfQ-L@@eNI_&yz8__8S3z3dYaF4u}bUD#l;@UBsth zd`FQ-)Srb3Yxao@(=opED-oZ8@ozVZ_RPfijC>K##`rt(`z(wfk?|KXe*Sv_k70by zSDuj7!r7Sc;{*Y44#qRDw?4mw(N9`f(YYA?Rf3y`@%`6XpXXzAl5G9U7(dj?`uqw; zR{{1fc|$}W3ov1u?EONF=SXxd!uWYfKZ`NG0=5E8^yXkZL${)@V)SqmEBYEnCpEL8 zOE9|5EF1#rT#5;=h|Pe{B?{Uk?}V$o+oK>ImTy7RKJPwZzU#IVEnv5-Aasp zVv$NH(a6Pwu=u_TquT{4S7WqLpl%IDm&3E@X3y7Re3~4Hw=h0i4BOinEs*mdjPWfM ztkUaZV1L#4ypk1v2R|Q_Wcx10vqbjyF#3H(D|a47-xgojV{}Gk>+1%Lu7~H>&6aM& z_$pCVK1NSg67=^z#$T7&Kfw5FVhlgT=)5ta-}MuQ#t8=hIq(0azwQAAZGYX z5X3JS-2+OkiG@QL-zEs;SB#F8?DR0kXC4*Vf5Uh|l2!T$MlVU6{*Lk2L!!2$7(XTX z*D;K*62~`hPCo zDoEY`QGBJ|znfxxrOxMwDE0jh&H74R|5iu`>iA}g5<{ns{~&TxzrPm}mb(3ZmgpvR z`&$_|yM6dWq#V)hX-GW>C1cOR_?%`|i>70A)duB$D`5sE{IWsRG85xp%Xl`%H^}%b zjGvY97cnl;%rLr_oq9lT9g--Whp7^W^D!zr`Z7lI#e8@Lqw~beEd)zzm8Ek zd~aa%r(_GU%R?BS@RO+PO^hFs@f8@KCq>jsj4wMW^5P)i*8NY>}zn1*;ZHzCLk|vDtKSl9%7|j!<-@$06h`x)_vr-dz590+A zSRTehAIgOFnDDlYZ@~DAGQJVxhXwq6jD9bo?_;z;L_fgj3K9JfqX&e>wh5!BVZNGj zW;4bo3JUoMqi;w&e2npzWqb?9m&p~>Cm4UfjWr6NVsx<($e&^KwK(hRR*Wt*kqB~T z8^(8mameIUpJV*h-$eWijN7Jo0mf}pd^^UOR8PLd_!t@g3geSxdHlj? zIAtb4{2PpC3wHG_M&A>IzLRnb3jPkGUx>`RFuM9Wt1r7TnlGY-7~S)+=-M8lzh7j+ z_n6@~IpljWK2Ho=5k@ac#b_VKPY7k>2aINj+&^NpP<-8wQO*cSjXQwxo?ptj_7f)T z6?5rljD9Sl2Qhl|fN1+K7=J~UK7{dg>~vqfVQ7pbl_Qw^f@HP7WBe@{KZ^0!HwxBz z4C9L=>-+=bQv@v?$LO2$MfMjk{=1Z`Comq$1WSlXO*W}Vy*`NxGaAf<7;I3GY}6M?@9n}L3}02eYba`p4iczwPtM+DDtWH;mp7~9$00eX$lYQ_JS zFEs{89roha^EDi7!7IT?1R7%;xl1zoj`1NnR`IjY3QUZ>)%5BwRHYh-`ru zfJM`@+q+j#6_HSdfjgG3)TgPYBpTj8WQws^M1Amay2;j+M2Nh>?j5KnwFaFPnkdS@ zWD0W*z*XLCn@;7Aonos7>a7zNEB?;_Ktu>y7HwpD;mP%00Dc3D7zCbrU$V}F^cMcC zMJcdtUC!e%vKOVmKlZ{PeFofOU-fbQcI6{B>~X!Scj93-{c(M_GM_y@Sg%^V$lSsD zi~jBB!I%no4@RJC=<{DQV~GBQ_vdr$?IC)RvVyUp`lzaz=R_vFTOCgm8~Z=l{z4S` zb5CPUhk=Lhel~QNUJFYM)Bl#bCdTmG1RpbhaFx8z(0f4oqMw<6xLyg|nrjc&gYj#Q z@N77Wk+2H^H(Re{_YKz{gVzo=4~H(j$r7H>JB6~=r@$!BSf2tr8Pm{5HPKi^NjdhU zwUqR>J?SG#+G0=INlClxNk~)<}^@Mvc%rH(p}lFABX~p@Z>8S;WG3`%LWc z^u|g(bVPWU9UGy)n)GQ^xB>Md&6dc{9xAT=&xG_ceQ#X85x{Xy`I!E zkkO>px1Z7{DeIW=w0^U9>(6Y=GvK_p=xP0q#zhm&766{$>RD|5oNA)^Wenf2&Ve$4 zxSqohQJa5aHJ;J$EjRg~t=R$9zlvo&qgPSpu-Bi_S0=nx7DknLOE3yNodfV@UkfiH zaoDqZcjarg;aNQe=&OCKGtvks+nDWC!oszxa}jQL-NKc1kgUT@Jhwj)#jvVAF;uL9f_c3`4DqIgUD zPtvEEBa#Un9ruF141O9;)?0Z$`<3;dtS?nQVdbajBa0VhQ}nLIQ;$s1YZp(gIaN2V zF)7?>n%+P!T7phaAe3N47qRJ|MpV8r(wOZV0Gr&Z@m6`_1?bZbs+Xrbj9G;7LIq1~ zN1#x~Z(i$L&aYf(hrgYs-*c_G=aikHH%u`58;$)9_zNRI7J)Zt(Gu1hzJ}ILPFdu zOi*@21K{N!W8pq1?=fE61IgC-MjGk)9_S$S;L^s>F!;&IV{5YY`UtQnTVIa9Q)lTD z;5S_9MLil^w3e`HOwU#3u>z()jnSKD>oxFq=xn`T$ZP;TM7k(bVim9y1@*was~(`Z z66g>!z>5^AO2C6Rh$@g7?8YvY$HqJHP!XK`g6v8DExs1s7{Y#4AbD_UNJ~{vUj$qR zlyV@S+Yqo)_DY z&6}&=4RYnwTu^xCu;%mhG2;E3K)HsVCeEvAS;0I#C?7;^3#SQe$6@F;19G$o#G_v+ zsG`tXjX$i&(<>rK;rmI~Ah(;ZCrK6qE)Rf2e%UN9QW-%3IuMf0{lm;iw}|nK3AT*( zS5oSDo67?XbnJlVhldXVFgaP&B;v{Uz}4_RW2e z;lzc*>6LD4|NG1Ovl4|q|96qHa`LhH?Pa}kvHsFqio97V*eu(*3bUi`R}*E9fX~rG zyuLlaK~-~s5*-W;fPT7q7?9-xu5xA*f-(m@99>c)Q)P}+XAWm0Zw^+MIjcK!8m(v) z+F%nmIR~MJEL6iP#JVrg#qF6jAwzih0{s;q-0)RCN52Vv?#AB3OXuj$pwzyE3g1qU#QWginIY!7Qo^d^c@#M&(d-M5haW2s&>B4R*L zW6v+upMpbRtlBc&2<`;G{DG-4r27IBLJ#3F0r2Mcq{g5in)wbJvkcfremYwMzX_Yt zk+@-v0~13vF15b}W-&ZeQ^9ufNjHRG?@MH+cU}k7QA*szS)qE*9KnH zprAqqTWua*n`B5hT{;14pJ-~IBpD#BfpO4>3ir1*<`tmTr>C8fZ#54~--nF>UOFQ( z5$cjH2eBE5Zs9G$rDS>p95@9@itL4LdtFaLFQY@R>(#9T9(3XZT-O4u=oWagq~{xY zVim{>NC0LSL|(Z%rm@G3~D$iD`qiolHSKbDgxBUt|=tAJE77=b|QOHw}Ks-OiF zFxhwuBxOI5a-41UAjD>C^hVZXqi012tpNdT%LG>#BF&6QE+0X+_Rvf23g7eK--J zyJd`{s8!hJQ%kI4S8FAwsd3*<2u$QuykO>6a_yDLwvm0f9tnQ|eM#1^0ZYwffD zxC>?O7fvg>X8+)~>|}SsRk{t<`Sx4?4*E{I`iifmvKDXiZiMf7TTk#6Ut*1YN55X# z6n^&|eX(M#YtWbo>zV=Y>1jdKrGWv1E**)AbcBZInGHAqhl+FrD$?)0rw>k>YI1aL z5`;Cl|K%vs5NR5UE&r2=>7fn?hMJ`3gP!8%j?VD|x&!X!}nQJDmd z6A~7qF*5=JV=&+`Rv%zn^1!IDjU9%Uv#6==0X=HSYlEcuyNb2f>H1BaHkB(60yxtQbcfTzvrVl;h@7A2#vab$k`4LY^WI z2pVAZpb5hnJkX9NviJ>pQ2Bwi*r4x#)BWm3eUakLUlv}OuO}+XBKGO~`tp{gDcDLK zZ;oR6Ub^$K6(8s;QR#o+LpV|lzhges$9osNACB3iw@@(9VY9x(+j0S%M8B{&V5|dy z=rPVf=p70jh0wbcItZcnD3p;CF!CsLcrmNCMQ>P~67JgqcAL5E*)96b$@v#kfCrTw z066d?!eHoHdGJz-?=PmXqAmK+$X8)s3HghZF)E9!yMr!w{29qo%%Z*k_1u%3g%41@BtloM}WVx$d7MEgd;!Kzg4_j zUkHEy1(=1r1s{ZKZ`Y4&^$I>oB1Ooj1HCHnL~E+gI9k^zZK*@Vq zr|DBOe(mp*E ze^>0&9|`0_Rq(GKR6xnM~ER#)Ee zLU`N23%lOofNznpb4j4S&$EE-JD^tuC-x=bPY&qw6=e#0^k@B5?YlF{Z@@zcV`9`l zUk@i71Z#Jlu6_Cs4m3*(JkjsrA%puq(ID{9$Pt0Z`w#B-MBu6Zg9ZiqJw0^LkiPw5 z!{ra@_2RE9G5d(e`UM{D^JKq3|0e>2hddSg#ACyUjO^R5Zva5|?K6BJ8*))kC|9g# zc+y2Z6d!I^A?|2o^_@k^p)=cDS?Nc3G^8p=-;>hkP(dn z;e*L>d%WJ*Shl%ZT)ptwYH?*FN(Klm9o~<3>>=n=N{zT@)fz4OHE+@HhGtD0_I;#j zTEpf|(;jK~P>ZyO8a8XztZDOpE&8Q3Z+ZiJAT6#Zi%pAba#h*GkiCJz;+w|(9)I_c zk%2x?Yu|o-`UV5NhWC5oi9lFs7FQG>KGQX>hd2E9o8x|{>|HvFwRv?qHM zQjo_J!=8C4?vC=FTcbT&At|$CG$oH1&Axvq?jA}{8!gj|MzfnAj=QHE=AUOv@6O(O zIPPA`9utz;*M(SWUo-m%TY3#PrLUR2$d;U)&d&9X`v-yPo-V;$NM{53#oa~edA9V& z#;`B@nXRlbM&{o!hP8XdtTxM*-hnN9#H{v$Ejf2AtMq8xKd4iWjg?@M+4x7z>^p7A zS>xCrkH$Sj**lGs**&b^V{s2qBiGrI2W7Bt9y1$RCqri6nZY{tHyfF4OYgwm>>u|x z0^=Dkvo9UbDh-Ici#O7i?q{P0nAr<#$xlyUKS6c^({h3Yvws4-P-)h>z?R;Ny)!WG zUV^SYFSGku%|UT1V{y2jreya0ptwiN5RG^|y(h9BkH=M2V%VU^$5+@ib}LyVsyTg9qB{iJ#2d4&Uw=F=Vi#4QbZ5X1%-j z>D#y8aH}A|>~4Ka>wQbVXRHsrUyoVen)Ghg130Yw3I#K)k4<~uICA(C@*{j(K;PJ? zVR4Dn@H{i`b-i!uH+%>OUSyST(Ys@xhX+0i9C&cw-u(yl8_vI*A@-s2SewF*_+;pWf2OY!#IwA$OXe6@F$YTxsbs@17J_%F)5 zgN)KO-V+qHs!v3adi4$)xYftsv+yUIrr@6D&`(C}Rv$yL{kX!et#UOw z7x;uJ%yG&`V`H}Y)Yx8o&91F+=W0Kw4IejSu+!&TRo%GW=(*G9%#&(MCA;C`=;pHV z19#>V?dZ>p6ydUfRdbJ?My3|GD4rj&@WlYRf@Z8{_C^-+0JF zJ6)+TK5FB>v5o<8F0DU#vO!yY{JhJ4_B3Z$4gR6ZKHKVOVP9=^bmHibE-^VPS%cHz zs~Rg=#18P9m27S)c#G7htrD_x72B{I`l?mJzfQ`xrJbd)y=4wxpQ02^v(>Z{0*a|f zVRQF7{MB0UcfoI@uu}!#S*wMVU9;-9C1;tULM4))$P@)`$}}sgq_XdJAS&Nv zYQ+W-UAsYe-H>wDn?heCc{RAXN8V%+h9iLG?ZhJGW{E{QkR^=gByR=h8zCcGBrVJq z@)5}|N!|{Qq}U)U3;71wDBNo{ijlSmb=oG8-3gAYK2@76OIx!^RH|i@s9YM82aMqU zRqP(iQpZHuZ%fWLi=dLtBH0Pan>L$eN69jGW9jqX5@LlAYu{p>|K*@~Z^REhHR~TD zxJdG9$r~k4$r1Kk91ife9mvu68DVOXBZqyv$AM3AY43Zk}bg6y=FEs0KF|GEb~s$`-B2qKr43qU>4Q zMH!1Eua>-VyC{3g4&k4>!<3Z+EUpy0i(@e?$JlaP7zbMQ{+A(`K6sAXZudk zcTS<;MxpSpDHQe=$n+i>EiT~=yx z|B}*sEX|2hQSv6qQ_Dn9ewj#CA$e_?S$g$`l(Wi(TvRUnswHof`V>Rxb0t3@`8mm3 zCC}K$_Wuj_0$=UZ%v%PZ-2Iw)%di*x80*AhT{`z-pKa-!oqF+r1JoJR#khFDSD)0= zc`85)@WKr(fAkWw1WybGPESZon4dJ@mAOkvOyem=?X;)rJk5r4-guflWy&?|Z+6;M zZLDGcu+w1Gd4}x+Pi{ODp!r?JXS0Rw9qA@6S+GbXbABG61wNiZ$Og|2W9&<>B)mLR z+8bdHxbhYuPleyLzcByBB^}{s1GJ#A9~06Lh)*U73l=5LO-fiiaPqX7;|3%xOTu8! zCL=*;Js~}mUwR0;^Bnpg+d#;Js?{8`@KqVl?JF-4Ji@oyCr^|4o#$cS@--pP{mMR5 z#-Hzo*}GpB{ZDvlVbbD(V-uGo$lkwTE$%2);}@)x2TJGslHKpYM>J&rM8}!{+8nnCDr{k0d25klE^3yeA)59b4nc zw?aMJ;mNbtvrjx}ch%Xzu9 z-o<`OE^s5o;JmS;Ui1?+`-H(tI?EI^g zkdvT)#1rx+s4vJD^vHb7_F?>~<2Qn|KhGOR$Q}%J;WBK;xr7}3D=7=Yp&t&HXiu8Hai_iD}DXzVm3LdNP|$oJTLK*^CXIPu~d2&JEJW z*qikwE%7_x3Ktl`n{H!FBN&XaY&%8TJbiisN81E zd6qt;XnEVE#@KG`evU2((VbU=wEZgX@<}EBwGW+bC+V}h&fz`*qr^)_=<;t)mlc#s3M?zE|1LuhSkz`8qmNQH#GbI;GRes%^y& zL0YA1M69R&3R{{%``J$34AR!944RAVl?-~nT7S#fn@O8{&5JI#k$TV|!$z)`*~lXB z;(a#kOdB}~iaiK?z((Q@*+^z3bX7LuI0E{_MnXPC+({dWu7TfK&=>H#fE;zuM+_b^ zG;-MRs1dAl4Gm&}rPL?6{)4U>KV_58v5jwFn>T=mV~Z@pq<_HTEydQ(!CrEmO2{(E zn^AxlforjtCD3PcJ2q`(7ecDRH}*oYg0P*U2pI$#1)2a_2bwevGQMAR;lr+4U=H6v z%vnnPyjN6p)!cA+MdQsvW)-V0rGcIYp;NlzuZ2~y|CG|c>gvNrU>SW`>799`tL8o( z&VMv_;7N!|9CCuY9ye7tkFcV0`b>|5$GU2rFhqiB5u_)5NX!}N8dMx~qz~)yE$w4W zH|TJ@|2fXm_tCN8+doCN#U!Q_yepomnGMgw%!X%T{NW~9{)`=8>id-4+DG@P1t*Ns z{dAWtkRLM{>NBoA;KA_*iLbC%D`{w_E4>K`v-I?)p)U3Rz+*oG5o~x z6$%joH;(Hi_QudINqiMUzGl(?bQiPFKBj)jZ^7416FE5cl=vj#yeznj#Fx>JuLXxl z%=_$V@$V%up|vhy+WHUgy#0q=rpJfOUkYzi--vysxkoyJS7KZ5No@n9PvPfOev z%RNit$-uKEUVy>Pk$4?&oWz;PKUd=Wa4nc8aqqBXLgq`Mcqk$95|?4r2@?Mu_*sef zBk6Mz??O^HEIOafNNf_D#2FaS1c~{e=SpmLEOBq-$>SLPlkaixZjpwY{R!DB@nY=G ze2H5}5KNxLO z@TU?VzZ{~fR_EJW%h~spXy8XXK*>PH;suyn= ze?CD+xTsrKvTdhnn0jiJ@#$&$jiOepF-p(S0h-$SHv77cM%&38Tv;mr$@i@4;<_P_hk}m7w;m+sLC9o( zJBfsT7>MWK`MGX5R_xFEU8ZBy z6+!I9%k)|ErQlK6t^~2#%XF9 z3&zngZfjjShG?zJZ`XshG}4hlypLcE9iM9mZhQ%k=e*R9J#>XmG+%Ee!afxGXy|!s z3&49dlwb<44`g01uA2(^QBWmhPFxoY`A?vu$Po_tdC+oDCa3^30~8Iq4*LaAH17aS zu1T`FC>@qeP6ouyr+6U-v)!XSBH zIAxk`d!U_6!^Eb84kL~e*Uf-D6XXRv4)g>l1k@2{U9^rk>)57FPZ~03&ftg<^X4vo zVg8&K7AL*TVz1H2dHg+J91?NoL^+6YL3Z*OI(rS`ym(M1C2SrBj7+s-E1 z-NyI!nIKjTY^J-8@YR!9YZLAD5T8Z>VvkS88Rukquoil;i|a-njj`WtvGBk>J$Y!r z%o!8wk zVo$#ithIX%W!u_lAM-tW@BpmDSW%7A0qkNMeYQWJ@+RobV-}n@ejE)2=6sjrT>mip z%YW%}19(W-KoQ~!&YLwP8agiXc5ooG{XnPQ$J1~A9p6Fh)gS1iVcgYg&~K+L7{vb5 zk#@!J_y(}KH|V2*JZ;;(T-mW3w4Z5?LallG#bj8go3w{{BrS)TmqqUM;qzZgU} znLmEK`C>Wm|FOR!?Ulc@N6t@rb&-rV%U^$w?q&H|;Y}Lo!M7kCj6twZZ_=*fOCMas zn0PCVV7G4KanP9v7W5@nGm z!CJL4j)mW%Y!vsTL+_p8q|9c`5Dwp%D_4TGI&9ANTQq+>AIta9ntfU_c}0q>T)$cB zt(hq7F(W8!PpO6nc*In<Zv0rEY7QiRiyO*VRe!~-V$diNapoQoLt%@lzsV!& zN3k|lUuuTDFGH4r|GJa&JY@AP9gUuVBQDgo$ecNc`XIFiRi+giQH*L40+1%3I%`3%u zb367@a7-dzthZ{41kmjZt9#Emujc<3wb>eg(w)1klJ@5;t*8h#7T zoDF^q#1q4{o4RSXNc?vEW3Koc^bpiMfcG}BzjW67*uI9M){{M0Pea)Io%Qo7E}WaY z=waqrD-jpXQS3+;y@z?MWlmh!yH;-M;Kg6A7w{%JNvQ2$9)@#*-+6<>x2)J#p66kHg5ZZ?f(b(v!K=h