From a2a4f302199e57d13b8f54a618eb375ca7533172 Mon Sep 17 00:00:00 2001 From: yhirose Date: Mon, 8 Jun 2020 23:51:34 -0400 Subject: [PATCH] Updated Playground --- docs/native.js | 2 +- docs/native.wasm | Bin 353812 -> 353276 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/native.js b/docs/native.js index c6640d3..d47559a 100644 --- a/docs/native.js +++ b/docs/native.js @@ -1 +1 @@ -var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(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",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}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"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":837,"maximum":837+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var DYNAMIC_BASE=5278112,DYNAMICTOP_PTR=35072;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="native.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_last=0;function __ZSt18uncaught_exceptionv(){return __ZSt18uncaught_exceptionv.uncaught_exceptions>0}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(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:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(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:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};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.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=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);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){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;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=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+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(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:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(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:function(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:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(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:function(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:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(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:function(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(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(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:function(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(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(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:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";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=function(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);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(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(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});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},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0||i==length){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8","_":__getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"a":___assert_fail,"d":___cxa_allocate_exception,"c":___cxa_throw,"q":___map_file,"p":___sys_munmap,"k":__embind_register_bool,"j":__embind_register_emval,"i":__embind_register_float,"t":__embind_register_function,"e":__embind_register_integer,"b":__embind_register_memory_view,"g":__embind_register_std_string,"f":__embind_register_std_wstring,"l":__embind_register_void,"h":_abort,"m":_emscripten_memcpy_big,"n":_emscripten_resize_heap,"r":_environ_get,"s":_environ_sizes_get,"memory":wasmMemory,"o":_strftime_l,"table":wasmTable};var asm=createWasm();Module["asm"]=asm;var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["u"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["v"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["w"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["x"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["y"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["z"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["A"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["B"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["C"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["D"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["E"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["F"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["G"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["H"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["I"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["J"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["K"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["L"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["M"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["N"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["O"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["P"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["Q"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["R"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["S"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["T"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["U"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["V"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["W"]).apply(null,arguments)};Module["asm"]=asm;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(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",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}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"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":838,"maximum":838+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var DYNAMIC_BASE=5278128,DYNAMICTOP_PTR=35088;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="native.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_last=0;function __ZSt18uncaught_exceptionv(){return __ZSt18uncaught_exceptionv.uncaught_exceptions>0}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(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:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(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:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};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.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=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);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){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;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=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+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(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:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(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:function(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:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(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:function(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:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(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:function(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(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(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:function(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(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(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:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";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=function(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);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(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(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});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},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0||i==length){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8","_":__getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"a":___assert_fail,"d":___cxa_allocate_exception,"c":___cxa_throw,"q":___map_file,"p":___sys_munmap,"k":__embind_register_bool,"j":__embind_register_emval,"i":__embind_register_float,"t":__embind_register_function,"e":__embind_register_integer,"b":__embind_register_memory_view,"g":__embind_register_std_string,"f":__embind_register_std_wstring,"l":__embind_register_void,"h":_abort,"m":_emscripten_memcpy_big,"n":_emscripten_resize_heap,"r":_environ_get,"s":_environ_sizes_get,"memory":wasmMemory,"o":_strftime_l,"table":wasmTable};var asm=createWasm();Module["asm"]=asm;var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["u"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["v"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["w"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["x"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["y"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["z"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["A"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["B"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["C"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["D"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["E"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["F"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["G"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["H"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["I"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["J"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["K"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["L"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["M"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["N"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["O"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["P"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["Q"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["R"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["S"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["T"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["U"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["V"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["W"]).apply(null,arguments)};Module["asm"]=asm;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); diff --git a/docs/native.wasm b/docs/native.wasm index 89b2c773f809a50f13bbf21720d57a1b99eb9d2f..1b9f64951b7b66fd42945e80efcf3aa0f5716b89 100644 GIT binary patch delta 33714 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