From 340e972fc99bebfeb0ee05bb9e5bb47d648d9af5 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 25 Jun 2026 09:28:23 +0000
Subject: [PATCH] Update J to 9.8.0-beta4
---
index.html | 2 +-
scripts/generate-og-languages.cjs | 2 +-
scripts/known-versions.json | 2 +-
wasm/j/emj.data | 172 ++++++++++++++++--------------
wasm/j/emj.js | 2 +-
wasm/j/emj.wasm | Bin 3166441 -> 3114275 bytes
6 files changed, 95 insertions(+), 85 deletions(-)
diff --git a/index.html b/index.html
index 376a70e..619e858 100644
--- a/index.html
+++ b/index.html
@@ -1256,7 +1256,7 @@

diff --git a/scripts/generate-og-languages.cjs b/scripts/generate-og-languages.cjs
index 728d3e9..9491140 100644
--- a/scripts/generate-og-languages.cjs
+++ b/scripts/generate-og-languages.cjs
@@ -31,7 +31,7 @@ const LANGS = [
{ name: 'BQN', version: 'CBQN 0.11', file: 'bqn.svg' },
{ name: 'Uiua', version: '0.19.0-dev.4', file: 'uiua.png' },
// Row 2
- { name: 'J', version: 'J9.8.0-beta3', file: 'j_logo.svg' },
+ { name: 'J', version: 'J9.8.0-beta4', file: 'j_logo.svg' },
{ name: 'Kap', version: '2026-06-20', file: 'kap.png' },
{ name: 'TinyAPL', version: '0.13-beta', file: 'tinyapl.svg' },
];
diff --git a/scripts/known-versions.json b/scripts/known-versions.json
index b96cc22..f20b970 100644
--- a/scripts/known-versions.json
+++ b/scripts/known-versions.json
@@ -1,7 +1,7 @@
{
"cbqn": "v0.11.0",
"uiua": "0.19.0-dev.4",
- "j": "9.8.0-beta3",
+ "j": "9.8.0-beta4",
"kap": "20260620-1",
"tinyapl": "0.12.0"
}
diff --git a/wasm/j/emj.data b/wasm/j/emj.data
index 937dba0..a6c9068 100644
--- a/wasm/j/emj.data
+++ b/wasm/j/emj.data
@@ -4,7 +4,8 @@ NB. output capture setup
output_jrx_ =: ''
coclass 'jdict'
-SIZE_GROWTH_GEOMETRIC_STEP =: 2
+issym=:0 NB. dicts created through jdict are not symbols
+check1x =: (_1:^:(_&-:))@:(13!:8@3^:(<&0))@:(13!:8@14^:('' -.@-: $)) NB. verify no get from empty values
create =: {{)m
if. 'literal' -: datatype y do.
@@ -13,26 +14,12 @@ if. 'literal' -: datatype y do.
else.
'index_type creation_parameters' =. y
end.
-NB. Default values of params.
-keytype =: 4
-keyshape =: i. 0
-valuetype =: 4
-valueshape =: i. 0
-keyhash =: 16!:0`''
-keycompare =: 16!:0`''
-initcapacity =: 100
-NB. Names of params.
-long_param_names =: <;._2 {{)n
-keytype
-keyshape
-valuetype
-valueshape
-keyhash
-keycompare
-initcapacity
-}}
-short_param_names =: 4 2 $ 'ktksvtvs'
-search_short_param_names =: short_param_names&i.
+
+NB. Names of params, and defaults
+long_param_names =. ;: 'keytype keyshape valuetype valueshape keyhash keycompare initcapacity name'
+(long_param_names) =. 4 ; (i. 0) ; 4 ; (i. 0) ; (16!:0`'') ; (16!:0`'') ; 100 ; ''
+short_param_names =. _2 <\ 'ktksvtvs'
+occupancy=. 0.5 NB. hash only
if. (-: (index_type {.~ -@#)) 'concurrent' do.
singlethreaded =. 0
@@ -41,20 +28,27 @@ else.
singlethreaded =. 1
end.
+if. #creation_parameters do. names =. {."1 creation_parameters [ values =. {:"1 creation_parameters else. names =. values =. 0$a: end. NB. requests
+if. index_type -: 'hash' do. long_param_names =. long_param_names , <'occupancy' end. NB. occupancy supported only for hash type
+names =. (((#short_param_names){.long_param_names),names) {~ (short_param_names,names) i. names NB. xlate short names to long equivs
+namex =. long_param_names i. names
+if. (#long_param_names) e. namex do. 13!:8&3 'incorrect attribute: ' , ;:^:_1 names #~ (#long_param_names) e. namex end.
+(,names) =. ,values NB. assign values to local names (, to unbox if singleton)
+
+if. 2 = 3!:0 keytype do. keytype =. typeid_from_typename keytype end. NB. translate type to internal code
+if. 2 = 3!:0 valuetype do. valuetype =. typeid_from_typename valuetype end.
+name =. ,&'__'^:('_' ~: {:!.'_') name NB. if name is not empty and doesn't end with _, append __
+
select. index_type NB. set up params for create, based on map type
case. 'hash' do.
- itype =: 0 NB. index type 0 is hash
- occupancy =: 0.5 NB. default for occupancy
- NB. Parse params and update above attributes.
- long_param_names =: long_param_names , < 'occupancy'
- search_long_param_names =: long_param_names&i.
- parse^:(*@#) creation_parameters
+ if. issym do. NB. override & audit parms for symbols dict
+ valueshape=.0 [ valuetype=.0 NB. type=0 signals symbols
+ if. keytype e. 1 4 8 16 64 128 5 6 7 9 10 11 do. 13!:8&3 'symbol key cannot be numeric' end.
+ elseif. valuetype=0 do. 13!:8&3 'valuetype invalid'
+ end.
internal_parameters =. (0 , initcapacity , <. initcapacity % occupancy) ; singlethreaded ; (keytype ; keyshape) ; < (valuetype ; valueshape)
case. 'tree' do.
- itype =: 1 NB. index type 1 is tree
- NB. Parse params and update above attributes.
- search_long_param_names =: long_param_names&i.
- parse^:(*@#) creation_parameters
+ if. issym do. 13!:8@3 'symbol requires hash' end.
internal_parameters =. (0 , initcapacity) ; singlethreaded ; (keytype ; keyshape) ; < (valuetype ; valueshape)
case. do.
13!:8&3 'Incorrect index type'
@@ -62,67 +56,71 @@ end.
NB. Create the map, which remains as dict. dict is marked nondisplayable because 1 {:: dict is.
NB. 1 2{::dict appear to be empty so that the user can't crash by touching them. To see the actual values, use 1 2 (16!:_8) dict which returns a virtual block.
+NB. dict is a local name; after this function completes the only link to dict is through the verbs. This is because there might be no object
if. keyhash -: keycompare do. keyfn =. keyhash `: 6 else. keyfn =. keyhash `: 6 : (keycompare `: 6) end.
-size =: initcapacity
-dict =: keyfn f. (16!:_1) internal_parameters
+dict =. keyfn f. (16!:_1) internal_parameters
NB. Assign names.
-get =: dict 16!:_2
-put =: dict 16!:_3
-del =: dict 16!:_4
-has =: dict 16!:_12
-count =: 0&(16!:_8)@dict
+clsnms =. 'get put items has count items invalidate close'
+('get',name) =: dict 16!:_2
+('put',name) =: dict 16!:_3
+if. -.issym do. ('del',name) =: dict 16!:_4 [. clsnms =. clsnms , ' del' end.
+('has',name) =: dict 16!:_12
+('count',name) =: {.@(0&(16!:_8))@dict
+('invalidate',name) =: dict 16!:_5~ 1:
if. index_type -: 'tree' do.
valuemask =. 2b100 * valueshape -.@-: 0
- check1x =: (_1:^:(_&-:))@:(13!:8@3^:(<&0))@:(13!:8@14^:('' -.@-: $))
- mget =: dict 16!:_6
- min =: [: 13!:8@6^:(0 = +/@:(#@>)) (2b11000 + valuemask)&mget
- max =: [: 13!:8@6^:(0 = +/@:(#@>)) (2b11001 + valuemask)&mget
- items =:(_1 ,~ 2b11001 + valuemask)&mget
- after =: _&$: : ((mget~ (2b101010 + valuemask) , check1x)~)
- since =: _&$: : ((mget~ (2b101011 + valuemask) , check1x)~)
- before =: _&$: : ((mget~ (2b101000 + valuemask) , check1x)~)
- until =: _&$: : ((mget~ (2b101001 + valuemask) , check1x)~)
- range =: 1 1&$: : ((mget~ 2b1001000 + valuemask + #.@:|.@:(13!:8@3^:(1 1 -.@-: e.&0 1))@:(13!:8@14^:((, 2) -.@-: $)))~)
+ ('mget',name) =: dict 16!:_6
+ ('min',name) =: [: 13!:8@6^:(0 = +/@:(#@>)) (2b11000 + valuemask)&(dict 16!:_6)
+ ('max',name) =: [: 13!:8@6^:(0 = +/@:(#@>)) (2b11001 + valuemask)&(dict 16!:_6)
+ ('items',name) =:(_1 ,~ 2b11001 + valuemask)&(dict 16!:_6)
+ ('after',name) =: _&$: : (((dict 16!:_6)~ (2b101010 + valuemask) , check1x_jdict_)~)
+ ('since',name) =: _&$: : (((dict 16!:_6)~ (2b101011 + valuemask) , check1x_jdict_)~)
+ ('before',name) =: _&$: : (((dict 16!:_6)~ (2b101000 + valuemask) , check1x_jdict_)~)
+ ('until',name) =: _&$: : (((dict 16!:_6)~ (2b101001 + valuemask) , check1x_jdict_)~)
+ ('range',name) =: 1 1&$: : (((dict 16!:_6)~ 2b1001000 + valuemask + #.@:|.@:(13!:8@3^:(1 1 -.@-: e.&0 1))@:(13!:8@14^:((, 2) -.@-: $)))~)
+ ('audittree',name) =: 16!:_7&dict
+ clsnms =. clsnms , ' mget min max after since before until range audittree'
else.
- items =: {{
- (0 0) 16!:_9 dict NB. read-lock.
- r =. memu (<<<0 (16!:_5) dict) { 1 (16!:_8) dict
- if. -. valueshape -: 0 do.
- r =. r ,&< memu (<<<0 (16!:_5) dict) { 2 (16!:_8) dict
+ ('items',name) =: dict {{
+ (0 0) 16!:_9 m NB. read-lock.
+ r =. memu (<<<0 (16!:_5) m) { 1 (16!:_8) m
+ if. -. y -: 0 do.
+ r =. r ,&< memu (<<<0 (16!:_5) m) { 2 (16!:_8) m
end.
- (1 0) 16!:_9 dict
+ (1 0) 16!:_9 m
r
- }}
+ }}@valueshape
end.
-EMPTY
+ ('close',name) =: (4!:55@;:@(,&name&.>&.;: clsnms)) , (dict 16!:_5~ 1:) NB. clear the empty chain in the keys to avoid errors freeing it
+dict NB. We never use the dict itself, but in case a user wants to, this is a hook that they can use to get to it
}}
destroy =: {{
-(1) 16!:_5 dict NB. clear the empty chain in the keys to avoid errors freeing it
+close'' NB. delete all verbs, which also deletes the dict
codestroy y NB. destroy the locale, freeing everything
}}
-NB. Resize operation. Nilad. Allocate a larger/smaller dictionary and repopulate its keys
-NB. We have a lock on (dict) during this entire operation
+NB. Resize operation. Nilad. Allocate a larger/smaller dictionary and repopulate its keys. For the nonce we assume the call is to upsize
+NB. The dictionary might not be in its own class (i. e. it might have a name), so we must not refer to class variables. The dict is
+NB. the y argument
resize =: {{)m
-size =: SIZE_GROWTH_GEOMETRIC_STEP * size
-NB. We allocate a new DIC block of the correct size. This is a temp whose contents, when filled, will be exchanged into (dict)
+'cardinality minsize maxsize hashsiz' =. 0 (16!:_8) y NB. fetch cardinality,minsize,maxsize,size of hash 0 if red/black)
+maxsize =. 2 * maxsize
+NB. We allocate a new DIC block of the correct maxsize. This is a temp whose contents, when filled, will be exchanged into (y)
NB. This also allocates new areas for the keys, vals, and hash/tree
-select. itype
-case. 0 do.
- newdict =. dict (16!:_1) 0 , size , <. size * % occupancy NB. allocate new DIC (hashed)
-NB. for hashing: call (newdict 16!:_3) to rehash all the keys. Limit the number of kvs per install to reduce temp space needed.
-NB. Install the kvs from dict into newdict.
-NB. to allow the key block to be freed. Then (<<
idx =. search_short_param_names attribute do.
@@ -152,6 +150,12 @@ end.
(attribute) =: value
EMPTY
}}"1
+
+coclass'jsymbol' NB. The only extra thing about the symbol class is the path
+issym=:1 NB. symbols are created through this locale
+coinsert'jdict'
+
+coclass'jdict'
data/jfiles - change history
== 1.0.0/1 ==
@@ -18729,7 +18733,7 @@ rxapply=: 1 : 0
if. L. x do. 'pat ndx'=. x else. pat=. x [ ndx=. ,0 end.
if. 1 ~: #$ ndx do. 13!:8[3 end.
mat=. ({.ndx) {"2 pat rxmatches y
-r=. u&.> mat rxfrom y
+r=. u.&.> mat rxfrom y
r mat rxmerge y
)
@@ -19220,7 +19224,7 @@ sdinit''
cocurrent <'z'
3 : 0 ''
-JLIB=: '9.8.1'
+JLIB=: '9.8.3'
notdef=. 0: ~: 4!:0 @ <
hostpathsep=: ('/\'{~6=9!:12'')&(I. @ (e.&'/\')@] })
@@ -19366,7 +19370,7 @@ libpcre2-8.so.0 libpcre2-8.so.0.6 libpcre2-8.so.0 libpcre2-8.so libpcre2-8.dylib
)
3 : 0^:(({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};Module["inspect"]=()=>"[Emscripten Module object]"}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}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")}function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;ifilename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="emj.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(instance=>instance).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={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);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;function execHost(ptr){var cmd=Module.UTF8ToString(ptr);try{var ret=eval(cmd)||" "}catch(e){console.log(e);var ret="error"}const byteCount=Module.lengthBytesUTF8(ret)+1;const retPtr=Module._malloc(byteCount);Module.stringToUTF8(ret,retPtr,byteCount);return retPtr}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;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___call_sighandler=(fp,sig)=>(a1=>dynCall_vi.apply(null,[fp,a1]))(sig);var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return 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:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{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 zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};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=>{assert(arrayBuffer,`Loading data file "${url}" failed (no 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,byteArray=>processData(byteArray),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:null,genericErrors:{},filesystems:null,syncFSRequests:0,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,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){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){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}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},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.apply(check,m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i0,ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var 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)},ensureErrnoError(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(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};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};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){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=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_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var setErrNo=value=>{HEAP32[___errno_location()>>2]=value;return value};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.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}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 ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}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>>0]=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>>0])}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_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}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}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}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 __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var __emscripten_throw_longjmp=()=>{throw Infinity};var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}FS.munmap(stream)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var __tzset_js=(timezone,daylight,tzname)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=stringToNewUTF8(winterName);var summerNamePtr=stringToNewUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}};var _abort=()=>{abort("")};var _emscripten_date_now=()=>Date.now();var getHeapMax=()=>2147483648;var _emscripten_get_heap_max=()=>getHeapMax();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};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>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0};var _environ_get=(__environ,environ_buf)=>{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};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;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}}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}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}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 _system=command=>{if(ENVIRONMENT_IS_NODE){if(!command)return 1;var cmdstr=UTF8ToString(command);if(!cmdstr.length)return 0;var cp=require("child_process");var ret=cp.spawnSync(cmdstr,[],{shell:true,stdio:"inherit"});var _W_EXITCODE=(ret,sig)=>ret<<8|sig;if(ret.status===null){var signalToNumber=sig=>{switch(sig){case"SIGHUP":return 1;case"SIGINT":return 2;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15}return 2};return _W_EXITCODE(0,signalToNumber(ret.signal))}return _W_EXITCODE(ret.status,0)}if(!command)return 0;setErrNo(52);return-1};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var wasmTableMirror=[];var wasmTable;var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.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;var wasmImports={__assert_fail:___assert_fail,__call_sighandler:___call_sighandler,__syscall_chdir:___syscall_chdir,__syscall_chmod:___syscall_chmod,__syscall_faccessat:___syscall_faccessat,__syscall_fcntl64:___syscall_fcntl64,__syscall_fstat64:___syscall_fstat64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_rmdir:___syscall_rmdir,__syscall_stat64:___syscall_stat64,__syscall_unlinkat:___syscall_unlinkat,_emscripten_fs_load_embedded_files:__emscripten_fs_load_embedded_files,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_throw_longjmp:__emscripten_throw_longjmp,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_tzset_js:__tzset_js,abort:_abort,emscripten_date_now:_emscripten_date_now,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,execHost:execHost,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_sync:_fd_sync,fd_write:_fd_write,invoke_ddi:invoke_ddi,invoke_diid:invoke_diid,invoke_iidiiii:invoke_iidiiii,invoke_iii:invoke_iii,invoke_iiid:invoke_iiid,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_viiii:invoke_viiii,invoke_viiiiii:invoke_viiiiii,proc_exit:_proc_exit,system:_system};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _em_jdo=Module["_em_jdo"]=a0=>(_em_jdo=Module["_em_jdo"]=wasmExports["em_jdo"])(a0);var _em_jsetstr=Module["_em_jsetstr"]=(a0,a1)=>(_em_jsetstr=Module["_em_jsetstr"]=wasmExports["em_jsetstr"])(a0,a1);var _em_jgetstr=Module["_em_jgetstr"]=a0=>(_em_jgetstr=Module["_em_jgetstr"]=wasmExports["em_jgetstr"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["__main_argc_argv"])(a0,a1);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["malloc"])(a0);var ___errno_location=()=>(___errno_location=wasmExports["__errno_location"])();var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["free"])(a0);var setTempRet0=a0=>(setTempRet0=wasmExports["setTempRet0"])(a0);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"])(a0,a1);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["stackSave"])();var stackRestore=a0=>(stackRestore=wasmExports["stackRestore"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["stackAlloc"])(a0);var dynCall_iii=Module["dynCall_iii"]=(a0,a1,a2)=>(dynCall_iii=Module["dynCall_iii"]=wasmExports["dynCall_iii"])(a0,a1,a2);var dynCall_viii=Module["dynCall_viii"]=(a0,a1,a2,a3)=>(dynCall_viii=Module["dynCall_viii"]=wasmExports["dynCall_viii"])(a0,a1,a2,a3);var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=wasmExports["dynCall_iiiiiii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiii=Module["dynCall_iiiii"]=(a0,a1,a2,a3,a4)=>(dynCall_iiiii=Module["dynCall_iiiii"]=wasmExports["dynCall_iiiii"])(a0,a1,a2,a3,a4);var dynCall_iiii=Module["dynCall_iiii"]=(a0,a1,a2,a3)=>(dynCall_iiii=Module["dynCall_iiii"]=wasmExports["dynCall_iiii"])(a0,a1,a2,a3);var dynCall_iiiiii=Module["dynCall_iiiiii"]=(a0,a1,a2,a3,a4,a5)=>(dynCall_iiiiii=Module["dynCall_iiiiii"]=wasmExports["dynCall_iiiiii"])(a0,a1,a2,a3,a4,a5);var dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)=>(dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=wasmExports["dynCall_iiiiiiiiiiiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16);var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=wasmExports["dynCall_viiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_ii=Module["dynCall_ii"]=(a0,a1)=>(dynCall_ii=Module["dynCall_ii"]=wasmExports["dynCall_ii"])(a0,a1);var dynCall_vii=Module["dynCall_vii"]=(a0,a1,a2)=>(dynCall_vii=Module["dynCall_vii"]=wasmExports["dynCall_vii"])(a0,a1,a2);var dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=wasmExports["dynCall_viiiiiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=wasmExports["dynCall_iiiiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=wasmExports["dynCall_iiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7);var dynCall_i=Module["dynCall_i"]=a0=>(dynCall_i=Module["dynCall_i"]=wasmExports["dynCall_i"])(a0);var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=wasmExports["dynCall_iiiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_viiii=Module["dynCall_viiii"]=(a0,a1,a2,a3,a4)=>(dynCall_viiii=Module["dynCall_viiii"]=wasmExports["dynCall_viiii"])(a0,a1,a2,a3,a4);var dynCall_viiiiii=Module["dynCall_viiiiii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viiiiii=Module["dynCall_viiiiii"]=wasmExports["dynCall_viiiiii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiid=Module["dynCall_iiid"]=(a0,a1,a2,a3)=>(dynCall_iiid=Module["dynCall_iiid"]=wasmExports["dynCall_iiid"])(a0,a1,a2,a3);var dynCall_diid=Module["dynCall_diid"]=(a0,a1,a2,a3)=>(dynCall_diid=Module["dynCall_diid"]=wasmExports["dynCall_diid"])(a0,a1,a2,a3);var dynCall_ddi=Module["dynCall_ddi"]=(a0,a1,a2)=>(dynCall_ddi=Module["dynCall_ddi"]=wasmExports["dynCall_ddi"])(a0,a1,a2);var dynCall_iidiiii=Module["dynCall_iidiiii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iidiiii=Module["dynCall_iidiiii"]=wasmExports["dynCall_iidiiii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_vi=Module["dynCall_vi"]=(a0,a1)=>(dynCall_vi=Module["dynCall_vi"]=wasmExports["dynCall_vi"])(a0,a1);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["dynCall_jiji"])(a0,a1,a2,a3,a4);var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=169620;var ___start_em_js=Module["___start_em_js"]=295360;var ___stop_em_js=Module["___stop_em_js"]=295661;function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(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 dynCall_iiii(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 dynCall_iiiii(index,a1,a2,a3,a4)}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{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ddi(index,a1,a2){var sp=stackSave();try{return dynCall_ddi(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iidiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iidiiii(index,a1,a2,a3,a4,a5,a6)}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["ccall"]=ccall;Module["cwrap"]=cwrap;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();
+var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="/build/wasm-output/emj.data";var REMOTE_PACKAGE_BASE="emj.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","jlibrary",true,true);Module["FS_createPath"]("/jlibrary","addons",true,true);Module["FS_createPath"]("/jlibrary/addons","data",true,true);Module["FS_createPath"]("/jlibrary/addons/data","dict",true,true);Module["FS_createPath"]("/jlibrary/addons/data","jfiles",true,true);Module["FS_createPath"]("/jlibrary/addons/data/jfiles","test",true,true);Module["FS_createPath"]("/jlibrary/addons/data","jmf",true,true);Module["FS_createPath"]("/jlibrary/addons/data/jmf","test",true,true);Module["FS_createPath"]("/jlibrary/addons","dev",true,true);Module["FS_createPath"]("/jlibrary/addons/dev","eformat",true,true);Module["FS_createPath"]("/jlibrary/addons/dev","lu",true,true);Module["FS_createPath"]("/jlibrary/addons/dev","modular",true,true);Module["FS_createPath"]("/jlibrary/addons","math",true,true);Module["FS_createPath"]("/jlibrary/addons/math","lapack",true,true);Module["FS_createPath"]("/jlibrary","bin",true,true);Module["FS_createPath"]("/jlibrary","system",true,true);Module["FS_createPath"]("/jlibrary/system","config",true,true);Module["FS_createPath"]("/jlibrary/system","defs",true,true);Module["FS_createPath"]("/jlibrary/system","main",true,true);Module["FS_createPath"]("/jlibrary/system","util",true,true);Module["FS_createPath"]("/jlibrary","tools",true,true);Module["FS_createPath"]("/jlibrary/tools","ftp",true,true);Module["FS_createPath"]("/jlibrary/tools","regex",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{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};Module["inspect"]=()=>"[Emscripten Module object]"}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}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")}function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;ifilename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="emj.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(instance=>instance).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={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);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;function execHost(ptr){var cmd=Module.UTF8ToString(ptr);try{var ret=eval(cmd)||" "}catch(e){console.log(e);var ret="error"}const byteCount=Module.lengthBytesUTF8(ret)+1;const retPtr=Module._malloc(byteCount);Module.stringToUTF8(ret,retPtr,byteCount);return retPtr}function execHost1(ptr){var cmd=Module.UTF8ToString(ptr);try{return eval(cmd)||""}catch(e){console.log(e);return"error"}}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;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___call_sighandler=(fp,sig)=>(a1=>dynCall_vi.apply(null,[fp,a1]))(sig);var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return 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:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{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 zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};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=>{assert(arrayBuffer,`Loading data file "${url}" failed (no 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,byteArray=>processData(byteArray),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:null,genericErrors:{},filesystems:null,syncFSRequests:0,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,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){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){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}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},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.apply(check,m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i0,ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var 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)},ensureErrnoError(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(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};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};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){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=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_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var setErrNo=value=>{HEAP32[___errno_location()>>2]=value;return value};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.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}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 ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}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>>0]=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>>0])}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_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}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}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}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 __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var __emscripten_throw_longjmp=()=>{throw Infinity};var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}FS.munmap(stream)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var __tzset_js=(timezone,daylight,tzname)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=stringToNewUTF8(winterName);var summerNamePtr=stringToNewUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}};var _abort=()=>{abort("")};var _emscripten_date_now=()=>Date.now();var getHeapMax=()=>2147483648;var _emscripten_get_heap_max=()=>getHeapMax();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};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>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0};var _environ_get=(__environ,environ_buf)=>{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};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;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}}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}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}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 handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var wasmTableMirror=[];var wasmTable;var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.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;var wasmImports={__assert_fail:___assert_fail,__call_sighandler:___call_sighandler,__syscall_chdir:___syscall_chdir,__syscall_chmod:___syscall_chmod,__syscall_faccessat:___syscall_faccessat,__syscall_fcntl64:___syscall_fcntl64,__syscall_fstat64:___syscall_fstat64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_ioctl:___syscall_ioctl,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_rmdir:___syscall_rmdir,__syscall_stat64:___syscall_stat64,__syscall_unlinkat:___syscall_unlinkat,_emscripten_fs_load_embedded_files:__emscripten_fs_load_embedded_files,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_throw_longjmp:__emscripten_throw_longjmp,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_tzset_js:__tzset_js,abort:_abort,emscripten_date_now:_emscripten_date_now,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,execHost:execHost,execHost1:execHost1,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_sync:_fd_sync,fd_write:_fd_write,invoke_ddi:invoke_ddi,invoke_diid:invoke_diid,invoke_iidiiii:invoke_iidiiii,invoke_iii:invoke_iii,invoke_iiid:invoke_iiid,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_viiii:invoke_viiii,invoke_viiiiii:invoke_viiiiii,proc_exit:_proc_exit};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _em_jdo=Module["_em_jdo"]=a0=>(_em_jdo=Module["_em_jdo"]=wasmExports["em_jdo"])(a0);var _em_jsetstr=Module["_em_jsetstr"]=(a0,a1)=>(_em_jsetstr=Module["_em_jsetstr"]=wasmExports["em_jsetstr"])(a0,a1);var _em_jgetstr=Module["_em_jgetstr"]=a0=>(_em_jgetstr=Module["_em_jgetstr"]=wasmExports["em_jgetstr"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["__main_argc_argv"])(a0,a1);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["malloc"])(a0);var ___errno_location=()=>(___errno_location=wasmExports["__errno_location"])();var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["free"])(a0);var setTempRet0=a0=>(setTempRet0=wasmExports["setTempRet0"])(a0);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"])(a0,a1);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["stackSave"])();var stackRestore=a0=>(stackRestore=wasmExports["stackRestore"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["stackAlloc"])(a0);var dynCall_iii=Module["dynCall_iii"]=(a0,a1,a2)=>(dynCall_iii=Module["dynCall_iii"]=wasmExports["dynCall_iii"])(a0,a1,a2);var dynCall_viii=Module["dynCall_viii"]=(a0,a1,a2,a3)=>(dynCall_viii=Module["dynCall_viii"]=wasmExports["dynCall_viii"])(a0,a1,a2,a3);var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=wasmExports["dynCall_iiiiiii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiii=Module["dynCall_iiiii"]=(a0,a1,a2,a3,a4)=>(dynCall_iiiii=Module["dynCall_iiiii"]=wasmExports["dynCall_iiiii"])(a0,a1,a2,a3,a4);var dynCall_iiii=Module["dynCall_iiii"]=(a0,a1,a2,a3)=>(dynCall_iiii=Module["dynCall_iiii"]=wasmExports["dynCall_iiii"])(a0,a1,a2,a3);var dynCall_iiiiii=Module["dynCall_iiiiii"]=(a0,a1,a2,a3,a4,a5)=>(dynCall_iiiiii=Module["dynCall_iiiiii"]=wasmExports["dynCall_iiiiii"])(a0,a1,a2,a3,a4,a5);var dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)=>(dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=wasmExports["dynCall_iiiiiiiiiiiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16);var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=wasmExports["dynCall_viiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_ii=Module["dynCall_ii"]=(a0,a1)=>(dynCall_ii=Module["dynCall_ii"]=wasmExports["dynCall_ii"])(a0,a1);var dynCall_vii=Module["dynCall_vii"]=(a0,a1,a2)=>(dynCall_vii=Module["dynCall_vii"]=wasmExports["dynCall_vii"])(a0,a1,a2);var dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=wasmExports["dynCall_viiiiiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=wasmExports["dynCall_iiiiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=wasmExports["dynCall_iiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7);var dynCall_i=Module["dynCall_i"]=a0=>(dynCall_i=Module["dynCall_i"]=wasmExports["dynCall_i"])(a0);var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=wasmExports["dynCall_iiiiiiiii"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_viiii=Module["dynCall_viiii"]=(a0,a1,a2,a3,a4)=>(dynCall_viiii=Module["dynCall_viiii"]=wasmExports["dynCall_viiii"])(a0,a1,a2,a3,a4);var dynCall_viiiiii=Module["dynCall_viiiiii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viiiiii=Module["dynCall_viiiiii"]=wasmExports["dynCall_viiiiii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiid=Module["dynCall_iiid"]=(a0,a1,a2,a3)=>(dynCall_iiid=Module["dynCall_iiid"]=wasmExports["dynCall_iiid"])(a0,a1,a2,a3);var dynCall_diid=Module["dynCall_diid"]=(a0,a1,a2,a3)=>(dynCall_diid=Module["dynCall_diid"]=wasmExports["dynCall_diid"])(a0,a1,a2,a3);var dynCall_ddi=Module["dynCall_ddi"]=(a0,a1,a2)=>(dynCall_ddi=Module["dynCall_ddi"]=wasmExports["dynCall_ddi"])(a0,a1,a2);var dynCall_iidiiii=Module["dynCall_iidiiii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iidiiii=Module["dynCall_iidiiii"]=wasmExports["dynCall_iidiiii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_vi=Module["dynCall_vi"]=(a0,a1)=>(dynCall_vi=Module["dynCall_vi"]=wasmExports["dynCall_vi"])(a0,a1);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["dynCall_jiji"])(a0,a1,a2,a3,a4);var ___emscripten_embedded_file_data=Module["___emscripten_embedded_file_data"]=169044;var ___start_em_js=Module["___start_em_js"]=294208;var ___stop_em_js=Module["___stop_em_js"]=294648;function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(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 dynCall_iiii(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 dynCall_iiiii(index,a1,a2,a3,a4)}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{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ddi(index,a1,a2){var sp=stackSave();try{return dynCall_ddi(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iidiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iidiiii(index,a1,a2,a3,a4,a5,a6)}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["ccall"]=ccall;Module["cwrap"]=cwrap;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;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/wasm/j/emj.wasm b/wasm/j/emj.wasm
index 4d79f741078f0cf34feecee01f938f148fa071c0..477ecd2028e7bdd80c51283971e275fce1df1483 100644
GIT binary patch
delta 618094
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 pE~
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 | |