nissy-core

The "engine" of nissy, including the H48 optimal solver.
git clone https://git.tronto.net/nissy-core
Download | Log | Files | Refs | README | LICENSE

commit c2f3b1c9c534cadc81ebab3e718832d121cdf9cf
parent 97ae34da2a51d9bbc13905598ebc80633c3f80c2
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Thu, 15 May 2025 19:14:29 +0200

WASM and JS port - work in progress

Diffstat:
M.gitignore | 2+-
MREADME.md | 17+++++++++++++++++
Mbuild | 15+++++++++------
Mcpp/nissy.cpp | 14+++++++-------
Mcpp/nissy.h | 12++++++------
Aweb/adapter.cpp | 164+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/callback.js | 21+++++++++++++++++++++
Aweb/examples/solve.mjs | 10++++++++++
Aweb/logging.h | 37+++++++++++++++++++++++++++++++++++++
Aweb/nissy_web_module.mjs | 21+++++++++++++++++++++
Aweb/nissy_web_module.wasm | 0
11 files changed, 293 insertions(+), 20 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -22,7 +22,7 @@ runcpp runtest.js runtest.wasm wasm/*.wasm -wasm/nissy_raw_module.js +wasm/nissy_web_module.* runtool tools/.DS_Store run.DSYM diff --git a/README.md b/README.md @@ -233,6 +233,23 @@ with the comments in nissy.h for more details. NOTE: Support for the Python module is still rudimentary. +### JavaScript (and WebAssembly) + +Bindings for JavaScript via a WebAssembly build (using +[emscripten](https://emscripten.org)) are work in progress. +The JavaScript module can be built with + +``` +./build web +``` + +Some examples can be found in the `web/examples` folder. They can be run +using [nodejs](https://nodejs.org): + +``` +node web/examples/[filename] +``` + ## Cube format This format is a "base 32" encoding of the cube. It is not meant to be diff --git a/build b/build @@ -118,19 +118,20 @@ parsesanitize() { } # Build flags -CFLAGS="-std=c11 -fPIC -D_POSIX_C_SOURCE=199309L -lpthread" +CFLAGS="-std=c11 -fPIC -D_POSIX_C_SOURCE=199309L -pthread" [ "$ARCH" = "AVX2" ] && CFLAGS="$CFLAGS -mavx2" WFLAGS="-pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-function" OFLAGS="$OPTIMIZE" DFLAGS="-DDEBUG -g3 $(parsesanitize "$SANITIZE")" MFLAGS="-DTHREADS=$THREADS -D$ARCH" -CPPFLAGS="-std=c++20" +CPPFLAGS="-std=c++20 -pthread" # Build flags for emscripten (WASM target) -WASMCFLAGS="-std=c11 -fPIC -D_POSIX_C_SOURCE=199309L" +WASMCFLAGS="-std=c11 -fPIC -D_POSIX_C_SOURCE=199309L -pthread" WASMMFLAGS="-DTHREADS=$THREADS -DWASMSIMD" WASMLINKFLAGS="--no-entry -sEXPORT_NAME='Nissy' -sMODULARIZE \ - -sLINKABLE -sEXPORT_ALL -sEXPORTED_RUNTIME_METHODS=cwrap" + -sALLOW_MEMORY_GROWTH -sSTACK_SIZE=5MB -sPTHREAD_POOL_SIZE=$THREADS \ + -sLINKABLE -sEXPORT_ALL" if (command -v "python3-config" >/dev/null 2>&1) ; then PYTHON3_INCLUDES="$(python3-config --includes)" @@ -250,9 +251,11 @@ build_web() { run $EMCC $WASMCFLAGS $WFLAGS $WASMMFLAGS $(odflags) -c \ -o nissy.o src/nissy.c - run $EMCC -lembind $CPPFLAGS $(odflags) $WASMLINKFLAGS \ + run $EMCC -lembind -lidbfs.js -lnodefs.js \ + $CPPFLAGS $(odflags) $WASMLINKFLAGS \ + --js-library web/callback.js \ -o web/nissy_web_module.mjs \ - cpp/nissy.cpp web/wrapper.cpp nissy.o + cpp/nissy.cpp web/adapter.cpp nissy.o } dotest() { diff --git a/cpp/nissy.cpp b/cpp/nissy.cpp @@ -36,9 +36,9 @@ namespace nissy { const nissflag nissflag::ALL{7}; const error error::OK{0}; - const error error::UNSOLVABLE{-1}; + const error error::UNSOLVABLE_WARNING{-1}; + const error error::UNSOLVABLE_ERROR{-11}; const error error::INVALID_CUBE{-10}; - const error error::UNSOLVABLE_CUBE{-11}; const error error::INVALID_MOVES{-20}; const error error::INVALID_TRANS{-30}; const error error::INVALID_SOLVER{-50}; @@ -48,12 +48,12 @@ namespace nissy { const error error::OPTIONS{-80}; const error error::UNKNOWN{-999}; - const status status::run{0}; - const status status::stop{1}; - const status status::pause{2}; + const status status::RUN{0}; + const status status::STOP{1}; + const status status::PAUSE{2}; namespace size { - constexpr size_t CUBE = 22; + constexpr size_t CUBE = 24; constexpr size_t TRANSFORMATION = 12; constexpr size_t DATAID = 255; } @@ -160,7 +160,7 @@ namespace nissy { solver::solve(const cube& cube, nissflag niss, unsigned minmoves, unsigned maxmoves, unsigned maxsols, unsigned optimal, unsigned threads, int (*poll_status)(void *), - void *poll_status_data) + void *poll_status_data) const { solver::solve_result result; diff --git a/cpp/nissy.h b/cpp/nissy.h @@ -33,9 +33,9 @@ namespace nissy { bool ok() const; static const error OK; - static const error UNSOLVABLE; + static const error UNSOLVABLE_WARNING; + static const error UNSOLVABLE_ERROR; static const error INVALID_CUBE; - static const error UNSOLVABLE_CUBE; static const error INVALID_MOVES; static const error INVALID_TRANS; static const error INVALID_SOLVER; @@ -50,9 +50,9 @@ namespace nissy { public: int value; - static const status run; - static const status stop; - static const status pause; + static const status RUN; + static const status STOP; + static const status PAUSE; }; class cube { @@ -96,7 +96,7 @@ namespace nissy { solve_result solve(const cube&, nissflag, unsigned minmoves, unsigned maxmoves, unsigned maxsols, unsigned optimal, unsigned threads, int (*poll_status)(void *), - void *poll_status_data); + void *poll_status_data) const; static std::variant<solver, error> get(const std::string&); private: diff --git a/web/adapter.cpp b/web/adapter.cpp @@ -0,0 +1,164 @@ +#include "../cpp/nissy.h" + +#include <emscripten/bind.h> +#include <map> +#include <set> +#include <string> +#include <vector> + +extern "C" { + extern int addCallbackFunction(/* args intentionally unspecified */); + extern void callFunction(int, const char *); + extern int callFunctionInt(int); +} + +static int logger_id = -1; + +void log(std::string s) +{ + if (logger_id == -1) + return; + + callFunction(logger_id, s.c_str()); +} + +void log_wrapper(const char *cstr, void *data) +{ + log(cstr); +} + +void set_logger(int id) +{ + logger_id = id; + nissy::set_logger(log_wrapper, NULL); +} + +// Some of the solvers are not available to the JS interface because of +// memory limitations. +const std::set<std::string> available_solvers +{ + "h48h0k4", + "h48h1k2", + "h48h2k2", + "h48h3k2", + "h48h7k2", +}; + +std::map<std::string, nissy::solver> loaded_solvers; + +// TODO: this should ask the user if they want to download or generate. +// TODO: this should also save the data to a file (IDBFS / NODEFS) +bool init_solver(const std::string& name) +{ + auto se = nissy::solver::get(name); + nissy::solver solver = std::get<nissy::solver>(se); + log("Generating data for solver " + solver.name + "\n"); + auto err = solver.generate_data(); + if (!err.ok()) { + log("Error generating the data!\n"); + return false; + } + log("Checking data integrity " + "(this is done only once per session per solver)...\n"); + if (!solver.check_data().ok()) { + log("Error generating the data!\n"); + return false; + } + loaded_solvers.insert({name, solver}); + log("Data generated successfully, but not saved " + "(feature not yet available)\n"); + return true; +} + +bool solver_valid(const std::string& name) +{ + if (loaded_solvers.contains(name) || + (available_solvers.contains(name) && init_solver(name))) + return true; + + auto se = nissy::solver::get(name); + if (std::holds_alternative<nissy::solver>(se)) + log("The solver " + name + " is not available in " + "the web version of Nissy. Use a native version.\n"); + else + log("Invalid solver " + name + "\n"); + return false; +} + +int poll_status(void *arg) +{ + int id = *(int *)arg; + if (id == -1) + return nissy::status::RUN.value; + return callFunctionInt(id); +} + +nissy::solver::solve_result solve(std::string name, + nissy::cube cube, nissy::nissflag nissflag, unsigned minmoves, + unsigned maxmoves, unsigned maxsols, unsigned optimal, unsigned threads, + int poll_status_id) +{ + if (!solver_valid(name)) + return nissy::solver::solve_result + {.err = nissy::error::INVALID_SOLVER}; + + return loaded_solvers.at(name).solve(cube, nissflag, minmoves, + maxmoves, maxsols, optimal, threads, NULL, &poll_status_id); +} + +EMSCRIPTEN_BINDINGS(Nissy) +{ + emscripten::class_<nissy::nissflag>("NissFlag") + .class_property("normal", &nissy::nissflag::NORMAL) + .class_property("inverse", &nissy::nissflag::INVERSE) + .class_property("mixed", &nissy::nissflag::MIXED) + .class_property("linear", &nissy::nissflag::LINEAR) + .class_property("all", &nissy::nissflag::ALL) + ; + + emscripten::class_<nissy::error>("Error") + .function("ok", &nissy::error::ok) + .class_property("unsolvableWarning", &nissy::error::UNSOLVABLE_WARNING) + .class_property("unsolvableError", &nissy::error::UNSOLVABLE_ERROR) + .class_property("invalidCube", &nissy::error::INVALID_CUBE) + .class_property("invalidMoves", &nissy::error::INVALID_MOVES) + .class_property("invalidTrans", &nissy::error::INVALID_TRANS) + .class_property("invalidSolver", &nissy::error::INVALID_SOLVER) + .class_property("nullPointer", &nissy::error::NULL_POINTER) + .class_property("bufferSize", &nissy::error::BUFFER_SIZE) + .class_property("data", &nissy::error::DATA) + .class_property("options", &nissy::error::OPTIONS) + .class_property("unknown", &nissy::error::UNKNOWN) + ; + + emscripten::constant("statusRUN", nissy::status::RUN.value); + emscripten::constant("statusSTOP", nissy::status::STOP.value); + emscripten::constant("statusPAUSE", nissy::status::PAUSE.value); + /* + emscripten::class_<nissy::status>("Status") + .class_property("run", &nissy::status::RUN) + .class_property("stop", &nissy::status::STOP) + .class_property("pause", &nissy::status::PAUSE) + ; + */ + + emscripten::class_<nissy::cube>("Cube") + .constructor<>() + .function("move", &nissy::cube::move) + .function("transform", &nissy::cube::transform) + .function("invert", &nissy::cube::invert) + .function("toString", &nissy::cube::to_string) + ; + + emscripten::class_<nissy::solver::solve_result>("SolveResult") + .property("err", &nissy::solver::solve_result::err) + .property("solutions", &nissy::solver::solve_result::solutions) + ; + + emscripten::function("countMoves", &nissy::count_moves); + emscripten::function("solve", &solve, + emscripten::return_value_policy::take_ownership()); + emscripten::function("setLogger", &set_logger, + emscripten::allow_raw_pointers()); + emscripten::function("addCallbackFunction", &addCallbackFunction); +} diff --git a/web/callback.js b/web/callback.js @@ -0,0 +1,21 @@ +addToLibrary({ + +cbfl: [], + +addCallbackFunction__deps: [ 'cbfl' ], +addCallbackFunction: function(f) { + _cbfl.push(f) + return _cbfl.length - 1 +}, + +callFunction__deps: [ 'cbfl' ], +callFunction: function(id, arg) { + _cbfl[id](UTF8ToString(arg)) +}, + +callFunctionInt__deps: [ 'cbfl' ], +callFunctionInt: function(id) { + return _cbfl[id]() +}, + +}); diff --git a/web/examples/solve.mjs b/web/examples/solve.mjs @@ -0,0 +1,10 @@ +import Nissy from '../nissy_web_module.mjs' + +const nissy = await Nissy() + +nissy.setLogger(nissy._addCallbackFunction(console.log)) + +var cube = new nissy.Cube() +cube.move('R\' U\' F') + +nissy.solve('h48h0k4', cube, nissy.NissFlag.normal, 0, 8, 2, 99, 4, -1) diff --git a/web/logging.h b/web/logging.h @@ -0,0 +1,37 @@ +#ifndef LOGGING_H +#define LOGGING_H + +#include "../cpp/nissy.h" +#include <emscripten/bind.h> +#include <string> + +#define LOGGING_EMBIND \ + emscripten::function("addCallbackFunction", &addCallbackFunction); + +extern "C" { + extern int addCallbackFunction(); + extern void callFunction(int, const char *); +} + +static int logger_id = -1; + +void log(std::string s) +{ + if (logger_id == -1) + return; + + callFunction(logger_id, s.c_str()); +} + +void log_wrapper(const char *cstr, void *data) +{ + log(cstr); +} + +void set_logger(int id) +{ + logger_id = id; + nissy::set_logger(log_wrapper, NULL); +} + +#endif diff --git a/web/nissy_web_module.mjs b/web/nissy_web_module.mjs @@ -0,0 +1,21 @@ +var Nissy = (() => { + var _scriptName = import.meta.url; + + return ( +async function(moduleArg = {}) { + var moduleRtn; + +var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("module");var require=createRequire(import.meta.url);var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(!import.meta.url.startsWith("data:")){scriptDirectory=nodePath.dirname(require("url").fileURLToPath(import.meta.url))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;var isFileURI=filename=>filename.startsWith("file://");function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_U16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}if(ENVIRONMENT_IS_PTHREAD){var wasmModuleReceived;if(ENVIRONMENT_IS_NODE){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>onmessage({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort.postMessage(msg)})}var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);self.startWorker=instance=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModuleReceived(msgData.wasmModule)}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){__embind_initialize_bindings();initializedJS=true}try{invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,shared:true})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker(Module);if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["__wasm_call_ctors"]();FS.ignorePermissions=false}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}var runDependencies=0;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("nissy_web_module.wasm")}return new URL("nissy_web_module.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();return{env:wasmImports,wasi_snapshot_preview1:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;registerTLSInit(wasmExports["_emscripten_tls_init"]);wasmTable=wasmExports["__indirect_function_table"];wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(mod,inst)=>{resolve(receiveInstance(mod,inst))})})}if(ENVIRONMENT_IS_PTHREAD){return new Promise(resolve=>{wasmModuleReceived=module=>{var instance=new WebAssembly.Instance(module,getWasmImports());resolve(receiveInstance(instance,module))}})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i<callArgs.length;i++){var arg=callArgs[i];if(typeof arg=="bigint"){HEAP64[b+2*i]=1n;HEAP64[b+2*i+1]=arg}else{HEAP64[b+2*i]=0n;GROWABLE_HEAP_F64()[b+2*i+1]=arg}}var rtn=__emscripten_run_on_main_thread_js(funcIndex,emAsmAddr,serializedNumCallArgs,args,sync);stackRestore(sp);return rtn};function _proc_exit(code){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,code);EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))}function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=16;while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(()=>{addRunDependency("loading-workers");PThread.loadWasmModuleToAllWorkers(()=>removeRunDependency("loading-workers"))})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){cleanupThread(d.thread)}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),loadWasmModuleToAllWorkers(onMaybeReady){if(ENVIRONMENT_IS_PTHREAD){return onMaybeReady()}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));pthreadPoolReady.then(onMaybeReady)},allocateUnusedWorker(){var worker;if(Module["mainScriptUrlOrBlob"]){var pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}worker=new Worker(pthreadMainJs,{type:"module",workerData:"em-pthread",name:"em-pthread"})}else worker=new Worker(new URL("nissy_web_module.mjs",import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var establishStackSpace=pthread_ptr=>{updateMemoryViews();var stackHigh=GROWABLE_HEAP_U32()[pthread_ptr+52>>2];var stackSize=GROWABLE_HEAP_U32()[pthread_ptr+56>>2];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return GROWABLE_HEAP_I8()[ptr];case"i8":return GROWABLE_HEAP_I8()[ptr];case"i16":return GROWABLE_HEAP_I16()[ptr>>1];case"i32":return GROWABLE_HEAP_I32()[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return GROWABLE_HEAP_F32()[ptr>>2];case"double":return GROWABLE_HEAP_F64()[ptr>>3];case"*":return GROWABLE_HEAP_U32()[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var invokeEntryPoint=(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=getWasmTableEntry(ptr)(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result}else{__emscripten_thread_exit(result)}}finish(result)};var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":GROWABLE_HEAP_I8()[ptr]=value;break;case"i8":GROWABLE_HEAP_I8()[ptr]=value;break;case"i16":GROWABLE_HEAP_I16()[ptr>>1]=value;break;case"i32":GROWABLE_HEAP_I32()[ptr>>2]=value;break;case"i64":HEAP64[ptr>>3]=BigInt(value);break;case"float":GROWABLE_HEAP_F32()[ptr>>2]=value;break;case"double":GROWABLE_HEAP_F64()[ptr>>3]=value;break;case"*":GROWABLE_HEAP_U32()[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){GROWABLE_HEAP_U32()[this.ptr+4>>2]=type}get_type(){return GROWABLE_HEAP_U32()[this.ptr+4>>2]}set_destructor(destructor){GROWABLE_HEAP_U32()[this.ptr+8>>2]=destructor}get_destructor(){return GROWABLE_HEAP_U32()[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;GROWABLE_HEAP_I8()[this.ptr+12]=caught}get_caught(){return GROWABLE_HEAP_I8()[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;GROWABLE_HEAP_I8()[this.ptr+13]=rethrown}get_rethrown(){return GROWABLE_HEAP_I8()[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){GROWABLE_HEAP_U32()[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return GROWABLE_HEAP_U32()[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>typeof SharedArrayBuffer!="undefined";var ___pthread_create_js=(pthread_ptr,attr,startRoutine,arg)=>{if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)};var __abort_js=()=>abort("");var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var 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;var readLatin1String=ptr=>{var ret="";var c=ptr;while(GROWABLE_HEAP_U8()[c]){ret+=embind_charCodes[GROWABLE_HEAP_U8()[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>GROWABLE_HEAP_I8()[pointer]:pointer=>GROWABLE_HEAP_U8()[pointer];case 2:return signed?pointer=>GROWABLE_HEAP_I16()[pointer>>1]:pointer=>GROWABLE_HEAP_U16()[pointer>>1];case 4:return signed?pointer=>GROWABLE_HEAP_I32()[pointer>>2]:pointer=>GROWABLE_HEAP_U32()[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`)}if(typeof value=="number"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var init_ClassHandle=()=>{let proto=ClassHandle.prototype;Object.assign(proto,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}});const symbolDispose=Symbol.dispose;if(symbolDispose){proto[symbolDispose]=proto["delete"]}};function ClassHandle(){}var createNamedFunction=(name,func)=>Object.defineProperty(func,"name",{value:name});var registeredPointers={};var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])}var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};var throwInternalError=message=>{throw new InternalError(message)};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var embind__requireFunction=(signature,rawFunction,isAsync=false)=>{signature=readLatin1String(signature);function makeDynCaller(){var rtn=getWasmTableEntry(rawFunction);return rtn}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(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<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(`Use 'new' to construct ${name}`)}if(undefined===registeredClass.constructor_body){throw new BindingError(`${name} has no accessible constructor`)}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};var __embind_register_class_class_property=(rawClassType,fieldName,rawFieldType,rawFieldPtr,getterSignature,getter,setterSignature,setter)=>{fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${fieldName}`;var desc={get(){throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[rawFieldType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[rawFieldType])}}else{desc.set=v=>{throwBindingError(`${humanName} is a read-only property`)}}Object.defineProperty(classType.registeredClass.constructor,fieldName,desc);whenDependentTypesAreResolved([],[rawFieldType],fieldType=>{fieldType=fieldType[0];var desc={get(){return fieldType["fromWireType"](getter(rawFieldPtr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);desc.set=v=>{var destructors=[];setter(rawFieldPtr,fieldType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.constructor,fieldName,desc);return[]});return[]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i<count;i++){array.push(GROWABLE_HEAP_U32()[firstElement+i*4>>2])}return array};function usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){return true}}return false}function createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=["fn"];if(isClassMethodFunc){argsListWired.push("thisWired")}for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);argsListWired.push(`arg${i}Wired`)}argsList=argsList.join(",");argsListWired=argsListWired.join(",");var invokerFnBody=`return function (${argsList}) {\n`;if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["humanName","throwBindingError","invoker","fn","runDestructors","retType","classParam"];if(isClassMethodFunc){invokerFnBody+=`var thisWired = classParam['toWireType'](${dtorStack}, this);\n`}for(var i=0;i<argCount;++i){invokerFnBody+=`var arg${i}Wired = argType${i}['toWireType'](${dtorStack}, arg${i});\n`;args1.push(`argType${i}`)}invokerFnBody+=(returns||isAsync?"var rv = ":"")+`invoker(${argsListWired});\n`;var returnVal=returns?"rv":"";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=`${paramName}_dtor(${paramName});\n`;args1.push(`${paramName}_dtor`)}}}if(returns){invokerFnBody+="var ret = retType['fromWireType'](rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";return[args1,invokerFnBody]}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){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=usesDestructorStack(argTypes);var returns=argTypes[0].name!=="void";var expectedArgCount=argCount-2;var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];for(var i=0;i<argCount-2;++i){closureArgs.push(argTypes[i+2])}if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction)}}}let[args,invokerFnBody]=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync);var invokerFn=new Function(...args,invokerFnBody)(...closureArgs);return createNamedFunction(humanName,invokerFn)}var __embind_register_class_constructor=(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker,isAsync);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var validateThis=(this_,classType,humanName)=>{if(!(this_ instanceof Object)){throwBindingError(`${humanName} with invalid "this": ${this_}`)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(`${humanName} incompatible with "this" of type ${this_.constructor.name}`)}if(!this_.$$.ptr){throwBindingError(`cannot call emscripten binding method ${humanName} on deleted object`)}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)};var __embind_register_class_property=(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext)=>{fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],classType=>{classType=classType[0];var humanName=`${classType.name}.${fieldName}`;var desc={get(){throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])}else{desc.set=v=>throwBindingError(humanName+" is a read-only property")}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],types=>{var getterReturnType=types[0];var desc={get(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})};var __embind_register_constant=(name,type,value)=>{name=readLatin1String(name);whenDependentTypesAreResolved([],[type],type=>{type=type[0];Module[name]=type["fromWireType"](value);return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F32()[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F64()[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker,isAsync);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=GROWABLE_HEAP_U32()[handle>>2];var data=GROWABLE_HEAP_U32()[handle+4>>2];return new TA(GROWABLE_HEAP_I8().buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=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};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=GROWABLE_HEAP_U32()[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||GROWABLE_HEAP_U8()[currentBytePtr]==0){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<length;++i){a[i]=String.fromCharCode(GROWABLE_HEAP_U8()[payload+i])}str=a.join("")}_free(value);return str},toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||ArrayBuffer.isView(value)&&value.BYTES_PER_ELEMENT==1)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;GROWABLE_HEAP_U32()[base>>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}GROWABLE_HEAP_U8()[ptr+i]=charCode}}}else{GROWABLE_HEAP_U8().set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&GROWABLE_HEAP_U16()[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=GROWABLE_HEAP_I16()[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);GROWABLE_HEAP_I16()[outPtr>>1]=codeUnit;outPtr+=2}GROWABLE_HEAP_I16()[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=GROWABLE_HEAP_I32()[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};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}GROWABLE_HEAP_I32()[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}GROWABLE_HEAP_I32()[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>GROWABLE_HEAP_U16()[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>GROWABLE_HEAP_U32()[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=GROWABLE_HEAP_U32()[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){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:(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);GROWABLE_HEAP_U32()[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var getExecutableName=()=>thisProgram||"./this.program";var __emscripten_get_progname=(str,len)=>stringToUTF8(getExecutableName(),str,len);var __emscripten_init_main_thread_js=tb=>{__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,5242880,false);PThread.threadInitTLS()};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD)__emscripten_thread_exit(EXITSTATUS);else _exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var __emscripten_thread_mailbox_await=pthread_ptr=>{if(typeof Atomics.waitAsync==="function"){var wait=Atomics.waitAsync(GROWABLE_HEAP_I32(),pthread_ptr>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+128;Atomics.store(GROWABLE_HEAP_I32(),waitingAsync>>2,1)}};var checkMailbox=()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);callUserCallback(__emscripten_check_mailbox)}};var __emscripten_notify_mailbox_postmessage=(targetThread,currThreadId)=>{if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}};var proxiedJSCallArgs=[];var __emscripten_receive_on_main_thread_js=(funcIndex,emAsmAddr,callingThread,numCallArgs,args)=>{numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args>>3;for(var i=0;i<numCallArgs;i++){if(HEAP64[b+2*i]){proxiedJSCallArgs[i]=HEAP64[b+2*i+1]}else{proxiedJSCallArgs[i]=GROWABLE_HEAP_F64()[b+2*i+1]}}var func=proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;return rtn};var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var __emscripten_thread_cleanup=thread=>{if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})};var __emscripten_thread_set_strongref=thread=>{if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}};var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);GROWABLE_HEAP_U32()[timezone>>2]=stdTimezoneOffset*60;GROWABLE_HEAP_I32()[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _cbfl=[];function _addCallbackFunction(f){_cbfl.push(f);return _cbfl.length-1}function _callFunction(id,arg){_cbfl[id](UTF8ToString(arg))}function _callFunctionInt(id){return _cbfl[id]()}var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _emscripten_sleep=()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"};var _emscripten_unwind_to_js_event_loop=()=>{throw"unwind"};var ENV={};var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,__environ,environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,penviron_count,penviron_buf_size);var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}GROWABLE_HEAP_U32()[penviron_buf_size>>2]=bufSize;return 0}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)))};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var FS_stdin_getChar_buffer=[];var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>GROWABLE_HEAP_U8().fill(0,ptr,ptr+size);var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,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.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===GROWABLE_HEAP_I8().buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===GROWABLE_HEAP_I8().buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}GROWABLE_HEAP_I8().set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url).then(processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",queuePersist:mount=>{function onPersistComplete(){if(mount.idbPersistState==="again")startPersist();else mount.idbPersistState=0}function startPersist(){mount.idbPersistState="idb";IDBFS.syncfs(mount,false,onPersistComplete)}if(!mount.idbPersistState){mount.idbPersistState=setTimeout(startPersist,0)}else if(mount.idbPersistState==="idb"){mount.idbPersistState="again"}},mount:mount=>{var mnt=MEMFS.mount(mount);if(mount?.opts?.autoPersist){mnt.idbPersistState=0;var memfs_node_ops=mnt.node_ops;mnt.node_ops={...mnt.node_ops};mnt.node_ops.mknod=(parent,name,mode,dev)=>{var node=memfs_node_ops.mknod(parent,name,mode,dev);node.node_ops=mnt.node_ops;node.idbfs_mount=mnt.mount;node.memfs_stream_ops=node.stream_ops;node.stream_ops={...node.stream_ops};node.stream_ops.write=(stream,buffer,offset,length,position,canOwn)=>{stream.node.isModified=true;return node.memfs_stream_ops.write(stream,buffer,offset,length,position,canOwn)};node.stream_ops.close=stream=>{var n=stream.node;if(n.isModified){IDBFS.queuePersist(n.idbfs_mount);n.isModified=false}if(n.memfs_stream_ops.close)return n.memfs_stream_ops.close(stream)};return node};mnt.node_ops.mkdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.mkdir(...args));mnt.node_ops.rmdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rmdir(...args));mnt.node_ops.symlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.symlink(...args));mnt.node_ops.unlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.unlink(...args));mnt.node_ops.rename=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rename(...args))}return mnt},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>PATH.join2(root,p)}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push(...FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(e.target.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db,entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>callback(null,event.target.result);req.onerror=e=>{callback(e.target.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(key=>{var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(key=>{if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=transaction.onabort=e=>{done(e.target.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var NODEFS={isWindows:false,staticInit(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process.binding("constants")["fs"];NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],256:flags["O_NOCTTY"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"],131072:flags["O_NOFOLLOW"]}},convertNodeCode(e){var code=e.code;return ERRNO_CODES[code]},tryFSOperation(f){try{return f()}catch(e){if(!e.code)throw e;if(e.code==="UNKNOWN")throw new FS.ErrnoError(28);throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},mount(mount){return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(28)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode(path){return NODEFS.tryFSOperation(()=>{var mode=fs.lstatSync(path).mode;if(NODEFS.isWindows){mode|=(mode&292)>>2}return mode})},realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join(...parts)},flagsForNode(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;flags&=~65536;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(flags){throw new FS.ErrnoError(28)}return newFlags},getattr(func,node){var stat=NODEFS.tryFSOperation(func);if(NODEFS.isWindows){if(!stat.blksize){stat.blksize=4096}if(!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}stat.mode|=(stat.mode&292)>>2}return{dev:stat.dev,ino:node.id,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr(arg,node,attr,chmod,utimes,truncate,stat){NODEFS.tryFSOperation(()=>{if(attr.mode!==undefined){var mode=attr.mode;if(NODEFS.isWindows){mode&=384}chmod(arg,mode);node.mode=attr.mode}if(typeof(attr.atime??attr.mtime)==="number"){var atime=new Date(attr.atime??stat(arg).atime);var mtime=new Date(attr.mtime??stat(arg).mtime);utimes(arg,atime,mtime)}if(attr.size!==undefined){truncate(arg,attr.size)}})},node_ops:{getattr(node){var path=NODEFS.realPath(node);return NODEFS.getattr(()=>fs.lstatSync(path),node)},setattr(node,attr){var path=NODEFS.realPath(node);if(attr.mode!=null&&attr.dontFollow){throw new FS.ErrnoError(52)}NODEFS.setattr(path,node,attr,fs.chmodSync,fs.utimesSync,fs.truncateSync,fs.lstatSync)},lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);NODEFS.tryFSOperation(()=>{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}});return node},rename(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{FS.unlink(newPath)}catch(e){}NODEFS.tryFSOperation(()=>fs.renameSync(oldPath,newPath));oldNode.name=newName},unlink(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);NODEFS.tryFSOperation(()=>fs.unlinkSync(path))},rmdir(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);NODEFS.tryFSOperation(()=>fs.rmdirSync(path))},readdir(node){var path=NODEFS.realPath(node);return NODEFS.tryFSOperation(()=>fs.readdirSync(path))},symlink(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);NODEFS.tryFSOperation(()=>fs.symlinkSync(oldPath,newPath))},readlink(node){var path=NODEFS.realPath(node);return NODEFS.tryFSOperation(()=>fs.readlinkSync(path))},statfs(path){var stats=NODEFS.tryFSOperation(()=>fs.statfsSync(path));stats.frsize=stats.bsize;return stats}},stream_ops:{getattr(stream){return NODEFS.getattr(()=>fs.fstatSync(stream.nfd),stream.node)},setattr(stream,attr){NODEFS.setattr(stream.nfd,stream.node,attr,fs.fchmodSync,fs.futimesSync,fs.ftruncateSync,fs.fstatSync)},open(stream){var path=NODEFS.realPath(stream.node);NODEFS.tryFSOperation(()=>{stream.shared.refcount=1;stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))})},close(stream){NODEFS.tryFSOperation(()=>{if(stream.nfd&&--stream.shared.refcount===0){fs.closeSync(stream.nfd)}})},dup(stream){stream.shared.refcount++},read(stream,buffer,offset,length,position){return NODEFS.tryFSOperation(()=>fs.readSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),0,length,position))},write(stream,buffer,offset,length,position){return NODEFS.tryFSOperation(()=>fs.writeSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),0,length,position))},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){NODEFS.tryFSOperation(()=>{var stat=fs.fstatSync(stream.nfd);position+=stat.size})}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr=mmapAlloc(length);NODEFS.stream_ops.read(stream,GROWABLE_HEAP_I8(),ptr,length,position);return{ptr,allocated:true}},msync(stream,buffer,offset,length,mmapFlags){NODEFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]==="."){continue}if(parts[i]===".."){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+"/"+parts.slice(i+1).join("/");continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+"/"+link}path=link+"/"+parts.slice(i+1).join("/");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}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)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS,IDBFS,NODEFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,GROWABLE_HEAP_I8(),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){GROWABLE_HEAP_I32()[buf>>2]=stat.dev;GROWABLE_HEAP_I32()[buf+4>>2]=stat.mode;GROWABLE_HEAP_U32()[buf+8>>2]=stat.nlink;GROWABLE_HEAP_I32()[buf+12>>2]=stat.uid;GROWABLE_HEAP_I32()[buf+16>>2]=stat.gid;GROWABLE_HEAP_I32()[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);GROWABLE_HEAP_I32()[buf+32>>2]=4096;GROWABLE_HEAP_I32()[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));GROWABLE_HEAP_U32()[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));GROWABLE_HEAP_U32()[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));GROWABLE_HEAP_U32()[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){GROWABLE_HEAP_I32()[buf+4>>2]=stats.bsize;GROWABLE_HEAP_I32()[buf+40>>2]=stats.bsize;GROWABLE_HEAP_I32()[buf+8>>2]=stats.blocks;GROWABLE_HEAP_I32()[buf+12>>2]=stats.bfree;GROWABLE_HEAP_I32()[buf+16>>2]=stats.bavail;GROWABLE_HEAP_I32()[buf+20>>2]=stats.files;GROWABLE_HEAP_I32()[buf+24>>2]=stats.ffree;GROWABLE_HEAP_I32()[buf+28>>2]=stats.fsid;GROWABLE_HEAP_I32()[buf+44>>2]=stats.flags;GROWABLE_HEAP_I32()[buf+36>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=GROWABLE_HEAP_U8().slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(6,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=GROWABLE_HEAP_U32()[iov>>2];var len=GROWABLE_HEAP_U32()[iov+4>>2];iov+=8;var curr=FS.read(stream,GROWABLE_HEAP_I8(),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(7,0,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);GROWABLE_HEAP_U32()[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(8,0,1,fd,offset,whence,newOffset);offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=GROWABLE_HEAP_U32()[iov>>2];var len=GROWABLE_HEAP_U32()[iov+4>>2];iov+=8;var curr=FS.write(stream,GROWABLE_HEAP_I8(),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(9,0,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);GROWABLE_HEAP_U32()[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}PThread.init();embind_init_charCodes();init_ClassHandle();init_RegisteredPointer();init_emval();FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="<generic error, no stack>";if(ENVIRONMENT_IS_NODE){NODEFS.staticInit()}{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"]}Module["ExitStatus"]=ExitStatus;Module["PThread"]=PThread;Module["terminateWorker"]=terminateWorker;Module["cleanupThread"]=cleanupThread;Module["addOnPreRun"]=addOnPreRun;Module["onPreRuns"]=onPreRuns;Module["callRuntimeCallbacks"]=callRuntimeCallbacks;Module["spawnThread"]=spawnThread;Module["_exit"]=_exit;Module["exitJS"]=exitJS;Module["_proc_exit"]=_proc_exit;Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["runtimeKeepaliveCounter"]=runtimeKeepaliveCounter;Module["proxyToMainThread"]=proxyToMainThread;Module["stackSave"]=stackSave;Module["stackRestore"]=stackRestore;Module["stackAlloc"]=stackAlloc;Module["exitOnMainThread"]=exitOnMainThread;Module["addOnPostRun"]=addOnPostRun;Module["onPostRuns"]=onPostRuns;Module["establishStackSpace"]=establishStackSpace;Module["getValue"]=getValue;Module["invokeEntryPoint"]=invokeEntryPoint;Module["getWasmTableEntry"]=getWasmTableEntry;Module["wasmTableMirror"]=wasmTableMirror;Module["wasmTable"]=wasmTable;Module["noExitRuntime"]=noExitRuntime;Module["registerTLSInit"]=registerTLSInit;Module["setValue"]=setValue;Module["___assert_fail"]=___assert_fail;Module["UTF8ToString"]=UTF8ToString;Module["UTF8ArrayToString"]=UTF8ArrayToString;Module["UTF8Decoder"]=UTF8Decoder;Module["___call_sighandler"]=___call_sighandler;Module["___cxa_throw"]=___cxa_throw;Module["ExceptionInfo"]=ExceptionInfo;Module["exceptionLast"]=exceptionLast;Module["uncaughtExceptionCount"]=uncaughtExceptionCount;Module["___pthread_create_js"]=___pthread_create_js;Module["pthreadCreateProxied"]=pthreadCreateProxied;Module["_emscripten_has_threading_support"]=_emscripten_has_threading_support;Module["__abort_js"]=__abort_js;Module["__embind_register_bigint"]=__embind_register_bigint;Module["embindRepr"]=embindRepr;Module["readLatin1String"]=readLatin1String;Module["embind_charCodes"]=embind_charCodes;Module["embind_init_charCodes"]=embind_init_charCodes;Module["registerType"]=registerType;Module["sharedRegisterType"]=sharedRegisterType;Module["awaitingDependencies"]=awaitingDependencies;Module["registeredTypes"]=registeredTypes;Module["typeDependencies"]=typeDependencies;Module["throwBindingError"]=throwBindingError;Module["BindingError"]=BindingError;Module["integerReadValueFromPointer"]=integerReadValueFromPointer;Module["__embind_register_bool"]=__embind_register_bool;Module["GenericWireTypeSize"]=GenericWireTypeSize;Module["__embind_register_class"]=__embind_register_class;Module["ClassHandle"]=ClassHandle;Module["init_ClassHandle"]=init_ClassHandle;Module["shallowCopyInternalPointer"]=shallowCopyInternalPointer;Module["throwInstanceAlreadyDeleted"]=throwInstanceAlreadyDeleted;Module["attachFinalizer"]=attachFinalizer;Module["finalizationRegistry"]=finalizationRegistry;Module["detachFinalizer"]=detachFinalizer;Module["releaseClassHandle"]=releaseClassHandle;Module["runDestructor"]=runDestructor;Module["flushPendingDeletes"]=flushPendingDeletes;Module["deletionQueue"]=deletionQueue;Module["delayFunction"]=delayFunction;Module["createNamedFunction"]=createNamedFunction;Module["registeredPointers"]=registeredPointers;Module["exposePublicSymbol"]=exposePublicSymbol;Module["ensureOverloadTable"]=ensureOverloadTable;Module["makeLegalFunctionName"]=makeLegalFunctionName;Module["char_0"]=char_0;Module["char_9"]=char_9;Module["RegisteredClass"]=RegisteredClass;Module["RegisteredPointer"]=RegisteredPointer;Module["constNoSmartPtrRawPointerToWireType"]=constNoSmartPtrRawPointerToWireType;Module["upcastPointer"]=upcastPointer;Module["genericPointerToWireType"]=genericPointerToWireType;Module["nonConstNoSmartPtrRawPointerToWireType"]=nonConstNoSmartPtrRawPointerToWireType;Module["init_RegisteredPointer"]=init_RegisteredPointer;Module["readPointer"]=readPointer;Module["RegisteredPointer_fromWireType"]=RegisteredPointer_fromWireType;Module["downcastPointer"]=downcastPointer;Module["getInheritedInstance"]=getInheritedInstance;Module["registeredInstances"]=registeredInstances;Module["getBasestPointer"]=getBasestPointer;Module["makeClassHandle"]=makeClassHandle;Module["throwInternalError"]=throwInternalError;Module["InternalError"]=InternalError;Module["replacePublicSymbol"]=replacePublicSymbol;Module["embind__requireFunction"]=embind__requireFunction;Module["throwUnboundTypeError"]=throwUnboundTypeError;Module["UnboundTypeError"]=UnboundTypeError;Module["getTypeName"]=getTypeName;Module["whenDependentTypesAreResolved"]=whenDependentTypesAreResolved;Module["__embind_register_class_class_property"]=__embind_register_class_class_property;Module["runDestructors"]=runDestructors;Module["__embind_register_class_constructor"]=__embind_register_class_constructor;Module["heap32VectorToArray"]=heap32VectorToArray;Module["craftInvokerFunction"]=craftInvokerFunction;Module["usesDestructorStack"]=usesDestructorStack;Module["createJsInvoker"]=createJsInvoker;Module["__embind_register_class_function"]=__embind_register_class_function;Module["getFunctionName"]=getFunctionName;Module["__embind_register_class_property"]=__embind_register_class_property;Module["validateThis"]=validateThis;Module["__embind_register_constant"]=__embind_register_constant;Module["__embind_register_emval"]=__embind_register_emval;Module["EmValType"]=EmValType;Module["__emval_decref"]=__emval_decref;Module["emval_freelist"]=emval_freelist;Module["emval_handles"]=emval_handles;Module["Emval"]=Emval;Module["init_emval"]=init_emval;Module["count_emval_handles"]=count_emval_handles;Module["__embind_register_float"]=__embind_register_float;Module["floatReadValueFromPointer"]=floatReadValueFromPointer;Module["__embind_register_function"]=__embind_register_function;Module["__embind_register_integer"]=__embind_register_integer;Module["__embind_register_memory_view"]=__embind_register_memory_view;Module["__embind_register_std_string"]=__embind_register_std_string;Module["stringToUTF8"]=stringToUTF8;Module["stringToUTF8Array"]=stringToUTF8Array;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["__embind_register_std_wstring"]=__embind_register_std_wstring;Module["UTF16ToString"]=UTF16ToString;Module["UTF16Decoder"]=UTF16Decoder;Module["stringToUTF16"]=stringToUTF16;Module["lengthBytesUTF16"]=lengthBytesUTF16;Module["UTF32ToString"]=UTF32ToString;Module["stringToUTF32"]=stringToUTF32;Module["lengthBytesUTF32"]=lengthBytesUTF32;Module["__embind_register_void"]=__embind_register_void;Module["__emscripten_get_progname"]=__emscripten_get_progname;Module["getExecutableName"]=getExecutableName;Module["__emscripten_init_main_thread_js"]=__emscripten_init_main_thread_js;Module["__emscripten_notify_mailbox_postmessage"]=__emscripten_notify_mailbox_postmessage;Module["checkMailbox"]=checkMailbox;Module["callUserCallback"]=callUserCallback;Module["handleException"]=handleException;Module["maybeExit"]=maybeExit;Module["__emscripten_thread_mailbox_await"]=__emscripten_thread_mailbox_await;Module["__emscripten_receive_on_main_thread_js"]=__emscripten_receive_on_main_thread_js;Module["proxiedJSCallArgs"]=proxiedJSCallArgs;Module["__emscripten_runtime_keepalive_clear"]=__emscripten_runtime_keepalive_clear;Module["__emscripten_thread_cleanup"]=__emscripten_thread_cleanup;Module["__emscripten_thread_set_strongref"]=__emscripten_thread_set_strongref;Module["__setitimer_js"]=__setitimer_js;Module["timers"]=timers;Module["_emscripten_get_now"]=_emscripten_get_now;Module["__tzset_js"]=__tzset_js;Module["_addCallbackFunction"]=_addCallbackFunction;Module["_cbfl"]=_cbfl;Module["_callFunction"]=_callFunction;Module["_callFunctionInt"]=_callFunctionInt;Module["_clock_time_get"]=_clock_time_get;Module["_emscripten_date_now"]=_emscripten_date_now;Module["nowIsMonotonic"]=nowIsMonotonic;Module["checkWasiClock"]=checkWasiClock;Module["bigintToI53Checked"]=bigintToI53Checked;Module["INT53_MAX"]=INT53_MAX;Module["INT53_MIN"]=INT53_MIN;Module["_emscripten_check_blocking_allowed"]=_emscripten_check_blocking_allowed;Module["_emscripten_exit_with_live_runtime"]=_emscripten_exit_with_live_runtime;Module["runtimeKeepalivePush"]=runtimeKeepalivePush;Module["_emscripten_resize_heap"]=_emscripten_resize_heap;Module["getHeapMax"]=getHeapMax;Module["alignMemory"]=alignMemory;Module["growMemory"]=growMemory;Module["_emscripten_sleep"]=_emscripten_sleep;Module["_emscripten_unwind_to_js_event_loop"]=_emscripten_unwind_to_js_event_loop;Module["_environ_get"]=_environ_get;Module["getEnvStrings"]=getEnvStrings;Module["ENV"]=ENV;Module["_environ_sizes_get"]=_environ_sizes_get;Module["_fd_close"]=_fd_close;Module["SYSCALLS"]=SYSCALLS;Module["PATH"]=PATH;Module["FS"]=FS;Module["randomFill"]=randomFill;Module["initRandomFill"]=initRandomFill;Module["PATH_FS"]=PATH_FS;Module["TTY"]=TTY;Module["FS_stdin_getChar"]=FS_stdin_getChar;Module["FS_stdin_getChar_buffer"]=FS_stdin_getChar_buffer;Module["intArrayFromString"]=intArrayFromString;Module["MEMFS"]=MEMFS;Module["mmapAlloc"]=mmapAlloc;Module["zeroMemory"]=zeroMemory;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["asyncLoad"]=asyncLoad;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_handledByPreloadPlugin"]=FS_handledByPreloadPlugin;Module["preloadPlugins"]=preloadPlugins;Module["FS_modeStringToFlags"]=FS_modeStringToFlags;Module["FS_getMode"]=FS_getMode;Module["IDBFS"]=IDBFS;Module["NODEFS"]=NODEFS;Module["ERRNO_CODES"]=ERRNO_CODES;Module["_fd_read"]=_fd_read;Module["doReadv"]=doReadv;Module["_fd_seek"]=_fd_seek;Module["_fd_write"]=_fd_write;Module["doWritev"]=doWritev;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];var wasmImports;function assignWasmImports(){wasmImports={__assert_fail:___assert_fail,__call_sighandler:___call_sighandler,__cxa_throw:___cxa_throw,__pthread_create_js:___pthread_create_js,_abort_js:__abort_js,_embind_register_bigint:__embind_register_bigint,_embind_register_bool:__embind_register_bool,_embind_register_class:__embind_register_class,_embind_register_class_class_property:__embind_register_class_class_property,_embind_register_class_constructor:__embind_register_class_constructor,_embind_register_class_function:__embind_register_class_function,_embind_register_class_property:__embind_register_class_property,_embind_register_constant:__embind_register_constant,_embind_register_emval:__embind_register_emval,_embind_register_float:__embind_register_float,_embind_register_function:__embind_register_function,_embind_register_integer:__embind_register_integer,_embind_register_memory_view:__embind_register_memory_view,_embind_register_std_string:__embind_register_std_string,_embind_register_std_wstring:__embind_register_std_wstring,_embind_register_void:__embind_register_void,_emscripten_get_progname:__emscripten_get_progname,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,addCallbackFunction:_addCallbackFunction,callFunction:_callFunction,callFunctionInt:_callFunctionInt,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,emscripten_sleep:_emscripten_sleep,emscripten_unwind_to_js_event_loop:_emscripten_unwind_to_js_event_loop,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit}}var wasmExports=await createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var ___getTypeName=a0=>(___getTypeName=wasmExports["__getTypeName"])(a0);var __embind_initialize_bindings=()=>(__embind_initialize_bindings=wasmExports["_embind_initialize_bindings"])();var __emval_coro_resume=(a0,a1)=>(__emval_coro_resume=wasmExports["_emval_coro_resume"])(a0,a1);var _pthread_self=()=>(_pthread_self=wasmExports["pthread_self"])();var ___cxa_allocate_exception=Module["___cxa_allocate_exception"]=a0=>(___cxa_allocate_exception=Module["___cxa_allocate_exception"]=wasmExports["__cxa_allocate_exception"])(a0);var __ZNSt9exceptionD2Ev=Module["__ZNSt9exceptionD2Ev"]=a0=>(__ZNSt9exceptionD2Ev=Module["__ZNSt9exceptionD2Ev"]=wasmExports["_ZNSt9exceptionD2Ev"])(a0);var __ZNK5nissy5error2okEv=Module["__ZNK5nissy5error2okEv"]=a0=>(__ZNK5nissy5error2okEv=Module["__ZNK5nissy5error2okEv"]=wasmExports["_ZNK5nissy5error2okEv"])(a0);var __ZN5nissy4cubeC2Ev=Module["__ZN5nissy4cubeC2Ev"]=a0=>(__ZN5nissy4cubeC2Ev=Module["__ZN5nissy4cubeC2Ev"]=wasmExports["_ZN5nissy4cubeC2Ev"])(a0);var __Znwm=Module["__Znwm"]=a0=>(__Znwm=Module["__Znwm"]=wasmExports["_Znwm"])(a0);var __ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var _nissy_applymoves=Module["_nissy_applymoves"]=(a0,a1,a2)=>(_nissy_applymoves=Module["_nissy_applymoves"]=wasmExports["nissy_applymoves"])(a0,a1,a2);var __ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var _nissy_applytrans=Module["_nissy_applytrans"]=(a0,a1,a2)=>(_nissy_applytrans=Module["_nissy_applytrans"]=wasmExports["nissy_applytrans"])(a0,a1,a2);var __ZN5nissy4cube6invertEv=Module["__ZN5nissy4cube6invertEv"]=a0=>(__ZN5nissy4cube6invertEv=Module["__ZN5nissy4cube6invertEv"]=wasmExports["_ZN5nissy4cube6invertEv"])(a0);var _nissy_inverse=Module["_nissy_inverse"]=(a0,a1)=>(_nissy_inverse=Module["_nissy_inverse"]=wasmExports["nissy_inverse"])(a0,a1);var __ZNK5nissy4cube9to_stringEv=Module["__ZNK5nissy4cube9to_stringEv"]=(a0,a1)=>(__ZNK5nissy4cube9to_stringEv=Module["__ZNK5nissy4cube9to_stringEv"]=wasmExports["_ZNK5nissy4cube9to_stringEv"])(a0,a1);var __ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var __ZN5nissy4cubeC1Ev=Module["__ZN5nissy4cubeC1Ev"]=a0=>(__ZN5nissy4cubeC1Ev=Module["__ZN5nissy4cubeC1Ev"]=wasmExports["_ZN5nissy4cubeC1Ev"])(a0);var __ZN5nissy4cube3getExxxxx=Module["__ZN5nissy4cube3getExxxxx"]=(a0,a1,a2,a3,a4,a5)=>(__ZN5nissy4cube3getExxxxx=Module["__ZN5nissy4cube3getExxxxx"]=wasmExports["_ZN5nissy4cube3getExxxxx"])(a0,a1,a2,a3,a4,a5);var _nissy_getcube=Module["_nissy_getcube"]=(a0,a1,a2,a3,a4,a5,a6)=>(_nissy_getcube=Module["_nissy_getcube"]=wasmExports["nissy_getcube"])(a0,a1,a2,a3,a4,a5,a6);var __ZdlPvm=Module["__ZdlPvm"]=(a0,a1)=>(__ZdlPvm=Module["__ZdlPvm"]=wasmExports["_ZdlPvm"])(a0,a1);var __ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1,a2,a3,a4,a5,a6)=>(__ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1,a2,a3,a4,a5,a6);var __ZN5nissy6solver13generate_dataEv=Module["__ZN5nissy6solver13generate_dataEv"]=a0=>(__ZN5nissy6solver13generate_dataEv=Module["__ZN5nissy6solver13generate_dataEv"]=wasmExports["_ZN5nissy6solver13generate_dataEv"])(a0);var _nissy_gendata=Module["_nissy_gendata"]=(a0,a1,a2)=>(_nissy_gendata=Module["_nissy_gendata"]=wasmExports["nissy_gendata"])(a0,a1,a2);var __ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE=Module["__ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE"]=(a0,a1)=>(__ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE=Module["__ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE"]=wasmExports["_ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE"])(a0,a1);var __ZN5nissy6solver10check_dataEv=Module["__ZN5nissy6solver10check_dataEv"]=a0=>(__ZN5nissy6solver10check_dataEv=Module["__ZN5nissy6solver10check_dataEv"]=wasmExports["_ZN5nissy6solver10check_dataEv"])(a0);var _nissy_checkdata=Module["_nissy_checkdata"]=(a0,a1)=>(_nissy_checkdata=Module["_nissy_checkdata"]=wasmExports["nissy_checkdata"])(a0,a1);var __ZN5nissy6solver11unload_dataEv=Module["__ZN5nissy6solver11unload_dataEv"]=a0=>(__ZN5nissy6solver11unload_dataEv=Module["__ZN5nissy6solver11unload_dataEv"]=wasmExports["_ZN5nissy6solver11unload_dataEv"])(a0);var __ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_=Module["__ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)=>(__ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_=Module["__ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_"]=wasmExports["_ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);var __ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l=Module["__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l"]=(a0,a1,a2,a3)=>(__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l=Module["__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l"]=wasmExports["_ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l"])(a0,a1,a2,a3);var _nissy_solve=Module["_nissy_solve"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)=>(_nissy_solve=Module["_nissy_solve"]=wasmExports["nissy_solve"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14);var __ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var _nissy_solverinfo=Module["_nissy_solverinfo"]=(a0,a1)=>(_nissy_solverinfo=Module["_nissy_solverinfo"]=wasmExports["nissy_solverinfo"])(a0,a1);var __ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var __ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var __ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE=Module["__ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE"]=a0=>(__ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE=Module["__ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE"]=wasmExports["_ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE"])(a0);var _nissy_countmoves=Module["_nissy_countmoves"]=a0=>(_nissy_countmoves=Module["_nissy_countmoves"]=wasmExports["nissy_countmoves"])(a0);var __ZN5nissy10set_loggerEPFvPKcPvES2_=Module["__ZN5nissy10set_loggerEPFvPKcPvES2_"]=(a0,a1)=>(__ZN5nissy10set_loggerEPFvPKcPvES2_=Module["__ZN5nissy10set_loggerEPFvPKcPvES2_"]=wasmExports["_ZN5nissy10set_loggerEPFvPKcPvES2_"])(a0,a1);var _nissy_setlogger=Module["_nissy_setlogger"]=(a0,a1)=>(_nissy_setlogger=Module["_nissy_setlogger"]=wasmExports["nissy_setlogger"])(a0,a1);var __ZNSt12length_errorD1Ev=Module["__ZNSt12length_errorD1Ev"]=a0=>(__ZNSt12length_errorD1Ev=Module["__ZNSt12length_errorD1Ev"]=wasmExports["_ZNSt12length_errorD1Ev"])(a0);var __ZNSt20bad_array_new_lengthC1Ev=Module["__ZNSt20bad_array_new_lengthC1Ev"]=a0=>(__ZNSt20bad_array_new_lengthC1Ev=Module["__ZNSt20bad_array_new_lengthC1Ev"]=wasmExports["_ZNSt20bad_array_new_lengthC1Ev"])(a0);var __ZNSt20bad_array_new_lengthD1Ev=Module["__ZNSt20bad_array_new_lengthD1Ev"]=a0=>(__ZNSt20bad_array_new_lengthD1Ev=Module["__ZNSt20bad_array_new_lengthD1Ev"]=wasmExports["_ZNSt20bad_array_new_lengthD1Ev"])(a0);var __Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=a0=>(__Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=wasmExports["_Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"])(a0);var __Z11log_wrapperPKcPv=Module["__Z11log_wrapperPKcPv"]=(a0,a1)=>(__Z11log_wrapperPKcPv=Module["__Z11log_wrapperPKcPv"]=wasmExports["_Z11log_wrapperPKcPv"])(a0,a1);var __Z10set_loggeri=Module["__Z10set_loggeri"]=a0=>(__Z10set_loggeri=Module["__Z10set_loggeri"]=wasmExports["_Z10set_loggeri"])(a0);var __Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=a0=>(__Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=wasmExports["_Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"])(a0);var __ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_=Module["__ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_"]=(a0,a1,a2)=>(__ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_=Module["__ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_"]=wasmExports["_ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_"])(a0,a1,a2);var __ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_=Module["__ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_"]=(a0,a1,a2,a3)=>(__ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_=Module["__ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_"]=wasmExports["_ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_"])(a0,a1,a2,a3);var __Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=a0=>(__Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=wasmExports["_Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"])(a0);var __ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_=Module["__ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_"]=(a0,a1)=>(__ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_=Module["__ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_"]=wasmExports["_ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_"])(a0,a1);var __ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_=Module["__ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_"]=(a0,a1)=>(__ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_=Module["__ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_"]=wasmExports["_ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_"])(a0,a1);var __Z11poll_statusPv=Module["__Z11poll_statusPv"]=a0=>(__Z11poll_statusPv=Module["__Z11poll_statusPv"]=wasmExports["_Z11poll_statusPv"])(a0);var __Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji=Module["__Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(__Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji=Module["__Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji"]=wasmExports["_Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _memcmp=(a0,a1,a2)=>(_memcmp=wasmExports["memcmp"])(a0,a1,a2);var __ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_"]=a0=>(__ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_"]=wasmExports["_ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_"])(a0);var __ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_"]=a0=>(__ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_"]=wasmExports["_ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_"])(a0);var __ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_=Module["__ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_"]=a0=>(__ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_=Module["__ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_"]=wasmExports["_ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_"])(a0);var __ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_"]=a0=>(__ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_"]=wasmExports["_ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_"])(a0);var __ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_"]=a0=>(__ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_"]=wasmExports["_ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_"])(a0);var __ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_"]=(a0,a1)=>(__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_"]=wasmExports["_ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_"])(a0,a1);var __ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_=Module["__ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_"]=a0=>(__ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_=Module["__ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_"]=wasmExports["_ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_"])(a0);var __ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_"]=a0=>(__ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_"]=wasmExports["_ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_"])(a0);var __ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_"]=a0=>(__ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_"]=wasmExports["_ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_"])(a0);var __ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE=Module["__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE"]=a0=>(__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE=Module["__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE"])(a0);var __ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_=Module["__ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_"]=()=>(__ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_=Module["__ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_"]=wasmExports["_ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_"])();var __ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E"]=(a0,a1,a2)=>(__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E"]=wasmExports["_ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E"])(a0,a1,a2);var __ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_"]=(a0,a1)=>(__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_"]=wasmExports["_ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_"])(a0,a1);var __ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_"]=(a0,a1)=>(__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_"]=wasmExports["_ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_"])(a0,a1);var __ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_"]=a0=>(__ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_"]=wasmExports["_ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_"])(a0);var __ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_"]=a0=>(__ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_"]=wasmExports["_ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_"])(a0);var __ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_"]=(a0,a1)=>(__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_"]=wasmExports["_ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_"])(a0,a1);var __ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_"]=(a0,a1,a2)=>(__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_"]=wasmExports["_ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_"])(a0,a1,a2);var __ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_"]=(a0,a1)=>(__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_"]=wasmExports["_ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_"])(a0,a1);var __ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_"]=(a0,a1,a2)=>(__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_"]=wasmExports["_ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_"])(a0,a1,a2);var __ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E"]=(a0,a1)=>(__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E"])(a0,a1);var __ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji=Module["__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji=Module["__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var __ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi"]=(a0,a1)=>(__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi"])(a0,a1);var __ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE"]=a0=>(__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE"])(a0);var _malloc=a0=>(_malloc=wasmExports["malloc"])(a0);var __ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l=Module["__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l"]=(a0,a1,a2,a3)=>(__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l=Module["__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l"]=wasmExports["_ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l"])(a0,a1,a2,a3);var __ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_=Module["__ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_"]=(a0,a1,a2,a3,a4)=>(__ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_=Module["__ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_"]=wasmExports["_ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_"])(a0,a1,a2,a3,a4);var __ZNSt12out_of_rangeD1Ev=Module["__ZNSt12out_of_rangeD1Ev"]=a0=>(__ZNSt12out_of_rangeD1Ev=Module["__ZNSt12out_of_rangeD1Ev"]=wasmExports["_ZNSt12out_of_rangeD1Ev"])(a0);var _write_wrapper=Module["_write_wrapper"]=(a0,a1,a2)=>(_write_wrapper=Module["_write_wrapper"]=wasmExports["write_wrapper"])(a0,a1,a2);var _gendata_h48_derive=Module["_gendata_h48_derive"]=(a0,a1,a2)=>(_gendata_h48_derive=Module["_gendata_h48_derive"]=wasmExports["gendata_h48_derive"])(a0,a1,a2);var _parse_h48_solver=Module["_parse_h48_solver"]=(a0,a1,a2)=>(_parse_h48_solver=Module["_parse_h48_solver"]=wasmExports["parse_h48_solver"])(a0,a1,a2);var _nissy_datainfo=Module["_nissy_datainfo"]=(a0,a1)=>(_nissy_datainfo=Module["_nissy_datainfo"]=wasmExports["nissy_datainfo"])(a0,a1);var _free=a0=>(_free=wasmExports["free"])(a0);var __emscripten_tls_init=()=>(__emscripten_tls_init=wasmExports["_emscripten_tls_init"])();var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"])(a0,a1);var _emscripten_is_main_runtime_thread=Module["_emscripten_is_main_runtime_thread"]=()=>(_emscripten_is_main_runtime_thread=Module["_emscripten_is_main_runtime_thread"]=wasmExports["emscripten_is_main_runtime_thread"])();var __emscripten_run_callback_on_thread=(a0,a1,a2,a3,a4)=>(__emscripten_run_callback_on_thread=wasmExports["_emscripten_run_callback_on_thread"])(a0,a1,a2,a3,a4);var _emscripten_stack_get_end=Module["_emscripten_stack_get_end"]=()=>(_emscripten_stack_get_end=Module["_emscripten_stack_get_end"]=wasmExports["emscripten_stack_get_end"])();var _emscripten_stack_get_base=Module["_emscripten_stack_get_base"]=()=>(_emscripten_stack_get_base=Module["_emscripten_stack_get_base"]=wasmExports["emscripten_stack_get_base"])();var ___get_tp=Module["___get_tp"]=()=>(___get_tp=Module["___get_tp"]=wasmExports["__get_tp"])();var _memcpy=(a0,a1,a2)=>(_memcpy=wasmExports["memcpy"])(a0,a1,a2);var __emscripten_thread_supports_atomics_wait=Module["__emscripten_thread_supports_atomics_wait"]=()=>(__emscripten_thread_supports_atomics_wait=Module["__emscripten_thread_supports_atomics_wait"]=wasmExports["_emscripten_thread_supports_atomics_wait"])();var __emscripten_memcpy_bulkmem=Module["__emscripten_memcpy_bulkmem"]=(a0,a1,a2)=>(__emscripten_memcpy_bulkmem=Module["__emscripten_memcpy_bulkmem"]=wasmExports["_emscripten_memcpy_bulkmem"])(a0,a1,a2);var __emscripten_memset_bulkmem=Module["__emscripten_memset_bulkmem"]=(a0,a1,a2)=>(__emscripten_memset_bulkmem=Module["__emscripten_memset_bulkmem"]=wasmExports["_emscripten_memset_bulkmem"])(a0,a1,a2);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"])();var __emscripten_thread_init=(a0,a1,a2,a3,a4,a5)=>(__emscripten_thread_init=wasmExports["_emscripten_thread_init"])(a0,a1,a2,a3,a4,a5);var ___set_thread_state=Module["___set_thread_state"]=(a0,a1,a2,a3)=>(___set_thread_state=Module["___set_thread_state"]=wasmExports["__set_thread_state"])(a0,a1,a2,a3);var _emscripten_is_main_browser_thread=Module["_emscripten_is_main_browser_thread"]=()=>(_emscripten_is_main_browser_thread=Module["_emscripten_is_main_browser_thread"]=wasmExports["emscripten_is_main_browser_thread"])();var __emscripten_thread_crashed=()=>(__emscripten_thread_crashed=wasmExports["_emscripten_thread_crashed"])();var _calloc=(a0,a1)=>(_calloc=wasmExports["calloc"])(a0,a1);var _fileno=a0=>(_fileno=wasmExports["fileno"])(a0);var _realloc=(a0,a1)=>(_realloc=wasmExports["realloc"])(a0,a1);var _htons=a0=>(_htons=wasmExports["htons"])(a0);var _ntohs=a0=>(_ntohs=wasmExports["ntohs"])(a0);var _htonl=a0=>(_htonl=wasmExports["htonl"])(a0);var _strerror=a0=>(_strerror=wasmExports["strerror"])(a0);var __emscripten_run_on_main_thread_js=(a0,a1,a2,a3,a4)=>(__emscripten_run_on_main_thread_js=wasmExports["_emscripten_run_on_main_thread_js"])(a0,a1,a2,a3,a4);var __emscripten_thread_free_data=a0=>(__emscripten_thread_free_data=wasmExports["_emscripten_thread_free_data"])(a0);var __emscripten_thread_exit=a0=>(__emscripten_thread_exit=wasmExports["_emscripten_thread_exit"])(a0);var __emscripten_timeout=(a0,a1)=>(__emscripten_timeout=wasmExports["_emscripten_timeout"])(a0,a1);var __emscripten_check_mailbox=()=>(__emscripten_check_mailbox=wasmExports["_emscripten_check_mailbox"])();var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var __emscripten_tempret_set=a0=>(__emscripten_tempret_set=wasmExports["_emscripten_tempret_set"])(a0);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports["_emscripten_tempret_get"])();var ___get_temp_ret=Module["___get_temp_ret"]=()=>(___get_temp_ret=Module["___get_temp_ret"]=wasmExports["__get_temp_ret"])();var ___set_temp_ret=Module["___set_temp_ret"]=a0=>(___set_temp_ret=Module["___set_temp_ret"]=wasmExports["__set_temp_ret"])(a0);var _getTempRet0=Module["_getTempRet0"]=()=>(_getTempRet0=Module["_getTempRet0"]=wasmExports["getTempRet0"])();var _setTempRet0=Module["_setTempRet0"]=a0=>(_setTempRet0=Module["_setTempRet0"]=wasmExports["setTempRet0"])(a0);var ___emutls_get_address=Module["___emutls_get_address"]=a0=>(___emutls_get_address=Module["___emutls_get_address"]=wasmExports["__emutls_get_address"])(a0);var _emscripten_stack_init=Module["_emscripten_stack_init"]=()=>(_emscripten_stack_init=Module["_emscripten_stack_init"]=wasmExports["emscripten_stack_init"])();var _emscripten_stack_set_limits=(a0,a1)=>(_emscripten_stack_set_limits=wasmExports["emscripten_stack_set_limits"])(a0,a1);var _emscripten_stack_get_free=Module["_emscripten_stack_get_free"]=()=>(_emscripten_stack_get_free=Module["_emscripten_stack_get_free"]=wasmExports["emscripten_stack_get_free"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"])(a0);var __ZNSt8bad_castD2Ev=Module["__ZNSt8bad_castD2Ev"]=a0=>(__ZNSt8bad_castD2Ev=Module["__ZNSt8bad_castD2Ev"]=wasmExports["_ZNSt8bad_castD2Ev"])(a0);var __ZnamSt11align_val_t=Module["__ZnamSt11align_val_t"]=(a0,a1)=>(__ZnamSt11align_val_t=Module["__ZnamSt11align_val_t"]=wasmExports["_ZnamSt11align_val_t"])(a0,a1);var __ZdaPvSt11align_val_t=Module["__ZdaPvSt11align_val_t"]=(a0,a1)=>(__ZdaPvSt11align_val_t=Module["__ZdaPvSt11align_val_t"]=wasmExports["_ZdaPvSt11align_val_t"])(a0,a1);var __ZNSt13runtime_errorD2Ev=Module["__ZNSt13runtime_errorD2Ev"]=a0=>(__ZNSt13runtime_errorD2Ev=Module["__ZNSt13runtime_errorD2Ev"]=wasmExports["_ZNSt13runtime_errorD2Ev"])(a0);var __ZNKSt13runtime_error4whatEv=Module["__ZNKSt13runtime_error4whatEv"]=a0=>(__ZNKSt13runtime_error4whatEv=Module["__ZNKSt13runtime_error4whatEv"]=wasmExports["_ZNKSt13runtime_error4whatEv"])(a0);var __ZnwmSt11align_val_t=Module["__ZnwmSt11align_val_t"]=(a0,a1)=>(__ZnwmSt11align_val_t=Module["__ZnwmSt11align_val_t"]=wasmExports["_ZnwmSt11align_val_t"])(a0,a1);var __ZdlPvmSt11align_val_t=Module["__ZdlPvmSt11align_val_t"]=(a0,a1,a2)=>(__ZdlPvmSt11align_val_t=Module["__ZdlPvmSt11align_val_t"]=wasmExports["_ZdlPvmSt11align_val_t"])(a0,a1,a2);var ___cxa_pure_virtual=Module["___cxa_pure_virtual"]=()=>(___cxa_pure_virtual=Module["___cxa_pure_virtual"]=wasmExports["__cxa_pure_virtual"])();var ___cxa_uncaught_exceptions=Module["___cxa_uncaught_exceptions"]=()=>(___cxa_uncaught_exceptions=Module["___cxa_uncaught_exceptions"]=wasmExports["__cxa_uncaught_exceptions"])();var ___cxa_decrement_exception_refcount=a0=>(___cxa_decrement_exception_refcount=wasmExports["__cxa_decrement_exception_refcount"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["__cxa_increment_exception_refcount"])(a0);var ___cxa_current_primary_exception=Module["___cxa_current_primary_exception"]=()=>(___cxa_current_primary_exception=Module["___cxa_current_primary_exception"]=wasmExports["__cxa_current_primary_exception"])();var __ZSt9terminatev=Module["__ZSt9terminatev"]=()=>(__ZSt9terminatev=Module["__ZSt9terminatev"]=wasmExports["_ZSt9terminatev"])();var ___cxa_rethrow_primary_exception=Module["___cxa_rethrow_primary_exception"]=a0=>(___cxa_rethrow_primary_exception=Module["___cxa_rethrow_primary_exception"]=wasmExports["__cxa_rethrow_primary_exception"])(a0);var ___cxa_guard_acquire=Module["___cxa_guard_acquire"]=a0=>(___cxa_guard_acquire=Module["___cxa_guard_acquire"]=wasmExports["__cxa_guard_acquire"])(a0);var ___cxa_guard_release=Module["___cxa_guard_release"]=a0=>(___cxa_guard_release=Module["___cxa_guard_release"]=wasmExports["__cxa_guard_release"])(a0);var __ZNSt11logic_errorD2Ev=Module["__ZNSt11logic_errorD2Ev"]=a0=>(__ZNSt11logic_errorD2Ev=Module["__ZNSt11logic_errorD2Ev"]=wasmExports["_ZNSt11logic_errorD2Ev"])(a0);var __ZNKSt11logic_error4whatEv=Module["__ZNKSt11logic_error4whatEv"]=a0=>(__ZNKSt11logic_error4whatEv=Module["__ZNKSt11logic_error4whatEv"]=wasmExports["_ZNKSt11logic_error4whatEv"])(a0);var __ZdaPv=Module["__ZdaPv"]=a0=>(__ZdaPv=Module["__ZdaPv"]=wasmExports["_ZdaPv"])(a0);var __Znam=Module["__Znam"]=a0=>(__Znam=Module["__Znam"]=wasmExports["_Znam"])(a0);var __ZSt15get_new_handlerv=Module["__ZSt15get_new_handlerv"]=()=>(__ZSt15get_new_handlerv=Module["__ZSt15get_new_handlerv"]=wasmExports["_ZSt15get_new_handlerv"])();var __ZdlPv=Module["__ZdlPv"]=a0=>(__ZdlPv=Module["__ZdlPv"]=wasmExports["_ZdlPv"])(a0);var __ZdaPvm=Module["__ZdaPvm"]=(a0,a1)=>(__ZdaPvm=Module["__ZdaPvm"]=wasmExports["_ZdaPvm"])(a0,a1);var __ZdlPvSt11align_val_t=Module["__ZdlPvSt11align_val_t"]=(a0,a1)=>(__ZdlPvSt11align_val_t=Module["__ZdlPvSt11align_val_t"]=wasmExports["_ZdlPvSt11align_val_t"])(a0,a1);var __ZdaPvmSt11align_val_t=Module["__ZdaPvmSt11align_val_t"]=(a0,a1,a2)=>(__ZdaPvmSt11align_val_t=Module["__ZdaPvmSt11align_val_t"]=wasmExports["_ZdaPvmSt11align_val_t"])(a0,a1,a2);var ___dynamic_cast=Module["___dynamic_cast"]=(a0,a1,a2,a3)=>(___dynamic_cast=Module["___dynamic_cast"]=wasmExports["__dynamic_cast"])(a0,a1,a2,a3);var ___cxa_bad_cast=Module["___cxa_bad_cast"]=()=>(___cxa_bad_cast=Module["___cxa_bad_cast"]=wasmExports["__cxa_bad_cast"])();var ___cxa_bad_typeid=Module["___cxa_bad_typeid"]=()=>(___cxa_bad_typeid=Module["___cxa_bad_typeid"]=wasmExports["__cxa_bad_typeid"])();var ___cxa_throw_bad_array_new_length=Module["___cxa_throw_bad_array_new_length"]=()=>(___cxa_throw_bad_array_new_length=Module["___cxa_throw_bad_array_new_length"]=wasmExports["__cxa_throw_bad_array_new_length"])();var __ZSt14set_unexpectedPFvvE=Module["__ZSt14set_unexpectedPFvvE"]=a0=>(__ZSt14set_unexpectedPFvvE=Module["__ZSt14set_unexpectedPFvvE"]=wasmExports["_ZSt14set_unexpectedPFvvE"])(a0);var __ZSt13set_terminatePFvvE=Module["__ZSt13set_terminatePFvvE"]=a0=>(__ZSt13set_terminatePFvvE=Module["__ZSt13set_terminatePFvvE"]=wasmExports["_ZSt13set_terminatePFvvE"])(a0);var __ZSt15set_new_handlerPFvvE=Module["__ZSt15set_new_handlerPFvvE"]=a0=>(__ZSt15set_new_handlerPFvvE=Module["__ZSt15set_new_handlerPFvvE"]=wasmExports["_ZSt15set_new_handlerPFvvE"])(a0);var ___cxa_demangle=(a0,a1,a2,a3)=>(___cxa_demangle=wasmExports["__cxa_demangle"])(a0,a1,a2,a3);var ___cxa_guard_abort=Module["___cxa_guard_abort"]=a0=>(___cxa_guard_abort=Module["___cxa_guard_abort"]=wasmExports["__cxa_guard_abort"])(a0);var __ZSt14get_unexpectedv=Module["__ZSt14get_unexpectedv"]=()=>(__ZSt14get_unexpectedv=Module["__ZSt14get_unexpectedv"]=wasmExports["_ZSt14get_unexpectedv"])();var __ZSt10unexpectedv=Module["__ZSt10unexpectedv"]=()=>(__ZSt10unexpectedv=Module["__ZSt10unexpectedv"]=wasmExports["_ZSt10unexpectedv"])();var __ZSt13get_terminatev=Module["__ZSt13get_terminatev"]=()=>(__ZSt13get_terminatev=Module["__ZSt13get_terminatev"]=wasmExports["_ZSt13get_terminatev"])();var ___cxa_uncaught_exception=Module["___cxa_uncaught_exception"]=()=>(___cxa_uncaught_exception=Module["___cxa_uncaught_exception"]=wasmExports["__cxa_uncaught_exception"])();var ___cxa_free_exception=Module["___cxa_free_exception"]=a0=>(___cxa_free_exception=Module["___cxa_free_exception"]=wasmExports["__cxa_free_exception"])(a0);var ___cxa_init_primary_exception=Module["___cxa_init_primary_exception"]=(a0,a1,a2)=>(___cxa_init_primary_exception=Module["___cxa_init_primary_exception"]=wasmExports["__cxa_init_primary_exception"])(a0,a1,a2);var ___cxa_thread_atexit=Module["___cxa_thread_atexit"]=(a0,a1,a2)=>(___cxa_thread_atexit=Module["___cxa_thread_atexit"]=wasmExports["__cxa_thread_atexit"])(a0,a1,a2);var ___cxa_deleted_virtual=Module["___cxa_deleted_virtual"]=()=>(___cxa_deleted_virtual=Module["___cxa_deleted_virtual"]=wasmExports["__cxa_deleted_virtual"])();var __ZNSt9type_infoD2Ev=Module["__ZNSt9type_infoD2Ev"]=a0=>(__ZNSt9type_infoD2Ev=Module["__ZNSt9type_infoD2Ev"]=wasmExports["_ZNSt9type_infoD2Ev"])(a0);var ___cxa_can_catch=(a0,a1,a2)=>(___cxa_can_catch=wasmExports["__cxa_can_catch"])(a0,a1,a2);var ___cxa_get_exception_ptr=a0=>(___cxa_get_exception_ptr=wasmExports["__cxa_get_exception_ptr"])(a0);var __ZNSt9exceptionD0Ev=Module["__ZNSt9exceptionD0Ev"]=a0=>(__ZNSt9exceptionD0Ev=Module["__ZNSt9exceptionD0Ev"]=wasmExports["_ZNSt9exceptionD0Ev"])(a0);var __ZNSt9exceptionD1Ev=Module["__ZNSt9exceptionD1Ev"]=a0=>(__ZNSt9exceptionD1Ev=Module["__ZNSt9exceptionD1Ev"]=wasmExports["_ZNSt9exceptionD1Ev"])(a0);var __ZNKSt9exception4whatEv=Module["__ZNKSt9exception4whatEv"]=a0=>(__ZNKSt9exception4whatEv=Module["__ZNKSt9exception4whatEv"]=wasmExports["_ZNKSt9exception4whatEv"])(a0);var __ZNSt13bad_exceptionD0Ev=Module["__ZNSt13bad_exceptionD0Ev"]=a0=>(__ZNSt13bad_exceptionD0Ev=Module["__ZNSt13bad_exceptionD0Ev"]=wasmExports["_ZNSt13bad_exceptionD0Ev"])(a0);var __ZNSt13bad_exceptionD1Ev=Module["__ZNSt13bad_exceptionD1Ev"]=a0=>(__ZNSt13bad_exceptionD1Ev=Module["__ZNSt13bad_exceptionD1Ev"]=wasmExports["_ZNSt13bad_exceptionD1Ev"])(a0);var __ZNKSt13bad_exception4whatEv=Module["__ZNKSt13bad_exception4whatEv"]=a0=>(__ZNKSt13bad_exception4whatEv=Module["__ZNKSt13bad_exception4whatEv"]=wasmExports["_ZNKSt13bad_exception4whatEv"])(a0);var __ZNSt9bad_allocC2Ev=Module["__ZNSt9bad_allocC2Ev"]=a0=>(__ZNSt9bad_allocC2Ev=Module["__ZNSt9bad_allocC2Ev"]=wasmExports["_ZNSt9bad_allocC2Ev"])(a0);var __ZNSt9bad_allocD0Ev=Module["__ZNSt9bad_allocD0Ev"]=a0=>(__ZNSt9bad_allocD0Ev=Module["__ZNSt9bad_allocD0Ev"]=wasmExports["_ZNSt9bad_allocD0Ev"])(a0);var __ZNSt9bad_allocD1Ev=Module["__ZNSt9bad_allocD1Ev"]=a0=>(__ZNSt9bad_allocD1Ev=Module["__ZNSt9bad_allocD1Ev"]=wasmExports["_ZNSt9bad_allocD1Ev"])(a0);var __ZNKSt9bad_alloc4whatEv=Module["__ZNKSt9bad_alloc4whatEv"]=a0=>(__ZNKSt9bad_alloc4whatEv=Module["__ZNKSt9bad_alloc4whatEv"]=wasmExports["_ZNKSt9bad_alloc4whatEv"])(a0);var __ZNSt20bad_array_new_lengthC2Ev=Module["__ZNSt20bad_array_new_lengthC2Ev"]=a0=>(__ZNSt20bad_array_new_lengthC2Ev=Module["__ZNSt20bad_array_new_lengthC2Ev"]=wasmExports["_ZNSt20bad_array_new_lengthC2Ev"])(a0);var __ZNSt20bad_array_new_lengthD0Ev=Module["__ZNSt20bad_array_new_lengthD0Ev"]=a0=>(__ZNSt20bad_array_new_lengthD0Ev=Module["__ZNSt20bad_array_new_lengthD0Ev"]=wasmExports["_ZNSt20bad_array_new_lengthD0Ev"])(a0);var __ZNKSt20bad_array_new_length4whatEv=Module["__ZNKSt20bad_array_new_length4whatEv"]=a0=>(__ZNKSt20bad_array_new_length4whatEv=Module["__ZNKSt20bad_array_new_length4whatEv"]=wasmExports["_ZNKSt20bad_array_new_length4whatEv"])(a0);var __ZNSt13bad_exceptionD2Ev=Module["__ZNSt13bad_exceptionD2Ev"]=a0=>(__ZNSt13bad_exceptionD2Ev=Module["__ZNSt13bad_exceptionD2Ev"]=wasmExports["_ZNSt13bad_exceptionD2Ev"])(a0);var __ZNSt9bad_allocC1Ev=Module["__ZNSt9bad_allocC1Ev"]=a0=>(__ZNSt9bad_allocC1Ev=Module["__ZNSt9bad_allocC1Ev"]=wasmExports["_ZNSt9bad_allocC1Ev"])(a0);var __ZNSt9bad_allocD2Ev=Module["__ZNSt9bad_allocD2Ev"]=a0=>(__ZNSt9bad_allocD2Ev=Module["__ZNSt9bad_allocD2Ev"]=wasmExports["_ZNSt9bad_allocD2Ev"])(a0);var __ZNSt20bad_array_new_lengthD2Ev=Module["__ZNSt20bad_array_new_lengthD2Ev"]=a0=>(__ZNSt20bad_array_new_lengthD2Ev=Module["__ZNSt20bad_array_new_lengthD2Ev"]=wasmExports["_ZNSt20bad_array_new_lengthD2Ev"])(a0);var __ZNSt11logic_errorD0Ev=Module["__ZNSt11logic_errorD0Ev"]=a0=>(__ZNSt11logic_errorD0Ev=Module["__ZNSt11logic_errorD0Ev"]=wasmExports["_ZNSt11logic_errorD0Ev"])(a0);var __ZNSt11logic_errorD1Ev=Module["__ZNSt11logic_errorD1Ev"]=a0=>(__ZNSt11logic_errorD1Ev=Module["__ZNSt11logic_errorD1Ev"]=wasmExports["_ZNSt11logic_errorD1Ev"])(a0);var __ZNSt13runtime_errorD0Ev=Module["__ZNSt13runtime_errorD0Ev"]=a0=>(__ZNSt13runtime_errorD0Ev=Module["__ZNSt13runtime_errorD0Ev"]=wasmExports["_ZNSt13runtime_errorD0Ev"])(a0);var __ZNSt13runtime_errorD1Ev=Module["__ZNSt13runtime_errorD1Ev"]=a0=>(__ZNSt13runtime_errorD1Ev=Module["__ZNSt13runtime_errorD1Ev"]=wasmExports["_ZNSt13runtime_errorD1Ev"])(a0);var __ZNSt12domain_errorD0Ev=Module["__ZNSt12domain_errorD0Ev"]=a0=>(__ZNSt12domain_errorD0Ev=Module["__ZNSt12domain_errorD0Ev"]=wasmExports["_ZNSt12domain_errorD0Ev"])(a0);var __ZNSt12domain_errorD1Ev=Module["__ZNSt12domain_errorD1Ev"]=a0=>(__ZNSt12domain_errorD1Ev=Module["__ZNSt12domain_errorD1Ev"]=wasmExports["_ZNSt12domain_errorD1Ev"])(a0);var __ZNSt16invalid_argumentD0Ev=Module["__ZNSt16invalid_argumentD0Ev"]=a0=>(__ZNSt16invalid_argumentD0Ev=Module["__ZNSt16invalid_argumentD0Ev"]=wasmExports["_ZNSt16invalid_argumentD0Ev"])(a0);var __ZNSt16invalid_argumentD1Ev=Module["__ZNSt16invalid_argumentD1Ev"]=a0=>(__ZNSt16invalid_argumentD1Ev=Module["__ZNSt16invalid_argumentD1Ev"]=wasmExports["_ZNSt16invalid_argumentD1Ev"])(a0);var __ZNSt12length_errorD0Ev=Module["__ZNSt12length_errorD0Ev"]=a0=>(__ZNSt12length_errorD0Ev=Module["__ZNSt12length_errorD0Ev"]=wasmExports["_ZNSt12length_errorD0Ev"])(a0);var __ZNSt12out_of_rangeD0Ev=Module["__ZNSt12out_of_rangeD0Ev"]=a0=>(__ZNSt12out_of_rangeD0Ev=Module["__ZNSt12out_of_rangeD0Ev"]=wasmExports["_ZNSt12out_of_rangeD0Ev"])(a0);var __ZNSt11range_errorD0Ev=Module["__ZNSt11range_errorD0Ev"]=a0=>(__ZNSt11range_errorD0Ev=Module["__ZNSt11range_errorD0Ev"]=wasmExports["_ZNSt11range_errorD0Ev"])(a0);var __ZNSt11range_errorD1Ev=Module["__ZNSt11range_errorD1Ev"]=a0=>(__ZNSt11range_errorD1Ev=Module["__ZNSt11range_errorD1Ev"]=wasmExports["_ZNSt11range_errorD1Ev"])(a0);var __ZNSt14overflow_errorD0Ev=Module["__ZNSt14overflow_errorD0Ev"]=a0=>(__ZNSt14overflow_errorD0Ev=Module["__ZNSt14overflow_errorD0Ev"]=wasmExports["_ZNSt14overflow_errorD0Ev"])(a0);var __ZNSt14overflow_errorD1Ev=Module["__ZNSt14overflow_errorD1Ev"]=a0=>(__ZNSt14overflow_errorD1Ev=Module["__ZNSt14overflow_errorD1Ev"]=wasmExports["_ZNSt14overflow_errorD1Ev"])(a0);var __ZNSt15underflow_errorD0Ev=Module["__ZNSt15underflow_errorD0Ev"]=a0=>(__ZNSt15underflow_errorD0Ev=Module["__ZNSt15underflow_errorD0Ev"]=wasmExports["_ZNSt15underflow_errorD0Ev"])(a0);var __ZNSt15underflow_errorD1Ev=Module["__ZNSt15underflow_errorD1Ev"]=a0=>(__ZNSt15underflow_errorD1Ev=Module["__ZNSt15underflow_errorD1Ev"]=wasmExports["_ZNSt15underflow_errorD1Ev"])(a0);var __ZNSt12domain_errorD2Ev=Module["__ZNSt12domain_errorD2Ev"]=a0=>(__ZNSt12domain_errorD2Ev=Module["__ZNSt12domain_errorD2Ev"]=wasmExports["_ZNSt12domain_errorD2Ev"])(a0);var __ZNSt16invalid_argumentD2Ev=Module["__ZNSt16invalid_argumentD2Ev"]=a0=>(__ZNSt16invalid_argumentD2Ev=Module["__ZNSt16invalid_argumentD2Ev"]=wasmExports["_ZNSt16invalid_argumentD2Ev"])(a0);var __ZNSt12length_errorD2Ev=Module["__ZNSt12length_errorD2Ev"]=a0=>(__ZNSt12length_errorD2Ev=Module["__ZNSt12length_errorD2Ev"]=wasmExports["_ZNSt12length_errorD2Ev"])(a0);var __ZNSt12out_of_rangeD2Ev=Module["__ZNSt12out_of_rangeD2Ev"]=a0=>(__ZNSt12out_of_rangeD2Ev=Module["__ZNSt12out_of_rangeD2Ev"]=wasmExports["_ZNSt12out_of_rangeD2Ev"])(a0);var __ZNSt11range_errorD2Ev=Module["__ZNSt11range_errorD2Ev"]=a0=>(__ZNSt11range_errorD2Ev=Module["__ZNSt11range_errorD2Ev"]=wasmExports["_ZNSt11range_errorD2Ev"])(a0);var __ZNSt14overflow_errorD2Ev=Module["__ZNSt14overflow_errorD2Ev"]=a0=>(__ZNSt14overflow_errorD2Ev=Module["__ZNSt14overflow_errorD2Ev"]=wasmExports["_ZNSt14overflow_errorD2Ev"])(a0);var __ZNSt15underflow_errorD2Ev=Module["__ZNSt15underflow_errorD2Ev"]=a0=>(__ZNSt15underflow_errorD2Ev=Module["__ZNSt15underflow_errorD2Ev"]=wasmExports["_ZNSt15underflow_errorD2Ev"])(a0);var __ZNSt9type_infoD0Ev=Module["__ZNSt9type_infoD0Ev"]=a0=>(__ZNSt9type_infoD0Ev=Module["__ZNSt9type_infoD0Ev"]=wasmExports["_ZNSt9type_infoD0Ev"])(a0);var __ZNSt9type_infoD1Ev=Module["__ZNSt9type_infoD1Ev"]=a0=>(__ZNSt9type_infoD1Ev=Module["__ZNSt9type_infoD1Ev"]=wasmExports["_ZNSt9type_infoD1Ev"])(a0);var __ZNSt8bad_castC2Ev=Module["__ZNSt8bad_castC2Ev"]=a0=>(__ZNSt8bad_castC2Ev=Module["__ZNSt8bad_castC2Ev"]=wasmExports["_ZNSt8bad_castC2Ev"])(a0);var __ZNSt8bad_castD0Ev=Module["__ZNSt8bad_castD0Ev"]=a0=>(__ZNSt8bad_castD0Ev=Module["__ZNSt8bad_castD0Ev"]=wasmExports["_ZNSt8bad_castD0Ev"])(a0);var __ZNSt8bad_castD1Ev=Module["__ZNSt8bad_castD1Ev"]=a0=>(__ZNSt8bad_castD1Ev=Module["__ZNSt8bad_castD1Ev"]=wasmExports["_ZNSt8bad_castD1Ev"])(a0);var __ZNKSt8bad_cast4whatEv=Module["__ZNKSt8bad_cast4whatEv"]=a0=>(__ZNKSt8bad_cast4whatEv=Module["__ZNKSt8bad_cast4whatEv"]=wasmExports["_ZNKSt8bad_cast4whatEv"])(a0);var __ZNSt10bad_typeidC2Ev=Module["__ZNSt10bad_typeidC2Ev"]=a0=>(__ZNSt10bad_typeidC2Ev=Module["__ZNSt10bad_typeidC2Ev"]=wasmExports["_ZNSt10bad_typeidC2Ev"])(a0);var __ZNSt10bad_typeidD2Ev=Module["__ZNSt10bad_typeidD2Ev"]=a0=>(__ZNSt10bad_typeidD2Ev=Module["__ZNSt10bad_typeidD2Ev"]=wasmExports["_ZNSt10bad_typeidD2Ev"])(a0);var __ZNSt10bad_typeidD0Ev=Module["__ZNSt10bad_typeidD0Ev"]=a0=>(__ZNSt10bad_typeidD0Ev=Module["__ZNSt10bad_typeidD0Ev"]=wasmExports["_ZNSt10bad_typeidD0Ev"])(a0);var __ZNSt10bad_typeidD1Ev=Module["__ZNSt10bad_typeidD1Ev"]=a0=>(__ZNSt10bad_typeidD1Ev=Module["__ZNSt10bad_typeidD1Ev"]=wasmExports["_ZNSt10bad_typeidD1Ev"])(a0);var __ZNKSt10bad_typeid4whatEv=Module["__ZNKSt10bad_typeid4whatEv"]=a0=>(__ZNKSt10bad_typeid4whatEv=Module["__ZNKSt10bad_typeid4whatEv"]=wasmExports["_ZNKSt10bad_typeid4whatEv"])(a0);var __ZNSt8bad_castC1Ev=Module["__ZNSt8bad_castC1Ev"]=a0=>(__ZNSt8bad_castC1Ev=Module["__ZNSt8bad_castC1Ev"]=wasmExports["_ZNSt8bad_castC1Ev"])(a0);var __ZNSt10bad_typeidC1Ev=Module["__ZNSt10bad_typeidC1Ev"]=a0=>(__ZNSt10bad_typeidC1Ev=Module["__ZNSt10bad_typeidC1Ev"]=wasmExports["_ZNSt10bad_typeidC1Ev"])(a0);var __ZTIv=Module["__ZTIv"]=42740;var __ZTIb=Module["__ZTIb"]=42848;var __ZTIc=Module["__ZTIc"]=42952;var __ZTIa=Module["__ZTIa"]=43056;var __ZTIh=Module["__ZTIh"]=43004;var __ZTIs=Module["__ZTIs"]=43108;var __ZTIt=Module["__ZTIt"]=43160;var __ZTIi=Module["__ZTIi"]=43212;var __ZTIj=Module["__ZTIj"]=43264;var __ZTIl=Module["__ZTIl"]=43316;var __ZTIm=Module["__ZTIm"]=43368;var __ZTIx=Module["__ZTIx"]=43420;var __ZTIy=Module["__ZTIy"]=43472;var __ZTIf=Module["__ZTIf"]=43684;var __ZTId=Module["__ZTId"]=43736;var __ZTINSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__ZTINSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=12e3;var __ZTINSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE=Module["__ZTINSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE"]=12072;var __ZTINSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE=Module["__ZTINSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE"]=12144;var __ZTINSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE=Module["__ZTINSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE"]=12220;var __ZTIN10emscripten3valE=Module["__ZTIN10emscripten3valE"]=12296;var __ZTIN10emscripten11memory_viewIcEE=Module["__ZTIN10emscripten11memory_viewIcEE"]=12324;var __ZTIN10emscripten11memory_viewIaEE=Module["__ZTIN10emscripten11memory_viewIaEE"]=12364;var __ZTIN10emscripten11memory_viewIhEE=Module["__ZTIN10emscripten11memory_viewIhEE"]=12404;var __ZTIN10emscripten11memory_viewIsEE=Module["__ZTIN10emscripten11memory_viewIsEE"]=12444;var __ZTIN10emscripten11memory_viewItEE=Module["__ZTIN10emscripten11memory_viewItEE"]=12484;var __ZTIN10emscripten11memory_viewIiEE=Module["__ZTIN10emscripten11memory_viewIiEE"]=12524;var __ZTIN10emscripten11memory_viewIjEE=Module["__ZTIN10emscripten11memory_viewIjEE"]=12564;var __ZTIN10emscripten11memory_viewIlEE=Module["__ZTIN10emscripten11memory_viewIlEE"]=12604;var __ZTIN10emscripten11memory_viewImEE=Module["__ZTIN10emscripten11memory_viewImEE"]=12644;var __ZTIN10emscripten11memory_viewIxEE=Module["__ZTIN10emscripten11memory_viewIxEE"]=12684;var __ZTIN10emscripten11memory_viewIyEE=Module["__ZTIN10emscripten11memory_viewIyEE"]=12724;var __ZTIN10emscripten11memory_viewIfEE=Module["__ZTIN10emscripten11memory_viewIfEE"]=12764;var __ZTIN10emscripten11memory_viewIdEE=Module["__ZTIN10emscripten11memory_viewIdEE"]=12804;var __ZTVN10__cxxabiv117__class_type_infoE=Module["__ZTVN10__cxxabiv117__class_type_infoE"]=44240;var __ZTSNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__ZTSNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=12008;var __ZTSNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE=Module["__ZTSNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE"]=12080;var __ZTSNSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE=Module["__ZTSNSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE"]=12152;var __ZTSNSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE=Module["__ZTSNSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE"]=12228;var __ZTSN10emscripten3valE=Module["__ZTSN10emscripten3valE"]=12304;var __ZTSN10emscripten11memory_viewIcEE=Module["__ZTSN10emscripten11memory_viewIcEE"]=12332;var __ZTSN10emscripten11memory_viewIaEE=Module["__ZTSN10emscripten11memory_viewIaEE"]=12372;var __ZTSN10emscripten11memory_viewIhEE=Module["__ZTSN10emscripten11memory_viewIhEE"]=12412;var __ZTSN10emscripten11memory_viewIsEE=Module["__ZTSN10emscripten11memory_viewIsEE"]=12452;var __ZTSN10emscripten11memory_viewItEE=Module["__ZTSN10emscripten11memory_viewItEE"]=12492;var __ZTSN10emscripten11memory_viewIiEE=Module["__ZTSN10emscripten11memory_viewIiEE"]=12532;var __ZTSN10emscripten11memory_viewIjEE=Module["__ZTSN10emscripten11memory_viewIjEE"]=12572;var __ZTSN10emscripten11memory_viewIlEE=Module["__ZTSN10emscripten11memory_viewIlEE"]=12612;var __ZTSN10emscripten11memory_viewImEE=Module["__ZTSN10emscripten11memory_viewImEE"]=12652;var __ZTSN10emscripten11memory_viewIxEE=Module["__ZTSN10emscripten11memory_viewIxEE"]=12692;var __ZTSN10emscripten11memory_viewIyEE=Module["__ZTSN10emscripten11memory_viewIyEE"]=12732;var __ZTSN10emscripten11memory_viewIfEE=Module["__ZTSN10emscripten11memory_viewIfEE"]=12772;var __ZTSN10emscripten11memory_viewIdEE=Module["__ZTSN10emscripten11memory_viewIdEE"]=12812;var __ZTISt12length_error=Module["__ZTISt12length_error"]=44948;var __ZTVSt12length_error=Module["__ZTVSt12length_error"]=44928;var __ZTISt20bad_array_new_length=Module["__ZTISt20bad_array_new_length"]=44712;var __ZN5nissy8nissflag6NORMALE=Module["__ZN5nissy8nissflag6NORMALE"]=12844;var __ZN5nissy8nissflag7INVERSEE=Module["__ZN5nissy8nissflag7INVERSEE"]=12848;var __ZN5nissy8nissflag5MIXEDE=Module["__ZN5nissy8nissflag5MIXEDE"]=12852;var __ZN5nissy8nissflag6LINEARE=Module["__ZN5nissy8nissflag6LINEARE"]=12856;var __ZN5nissy8nissflag3ALLE=Module["__ZN5nissy8nissflag3ALLE"]=12860;var __ZN5nissy5error2OKE=Module["__ZN5nissy5error2OKE"]=12864;var __ZN5nissy5error18UNSOLVABLE_WARNINGE=Module["__ZN5nissy5error18UNSOLVABLE_WARNINGE"]=12872;var __ZN5nissy5error16UNSOLVABLE_ERRORE=Module["__ZN5nissy5error16UNSOLVABLE_ERRORE"]=12880;var __ZN5nissy5error12INVALID_CUBEE=Module["__ZN5nissy5error12INVALID_CUBEE"]=12888;var __ZN5nissy5error13INVALID_MOVESE=Module["__ZN5nissy5error13INVALID_MOVESE"]=12896;var __ZN5nissy5error13INVALID_TRANSE=Module["__ZN5nissy5error13INVALID_TRANSE"]=12904;var __ZN5nissy5error14INVALID_SOLVERE=Module["__ZN5nissy5error14INVALID_SOLVERE"]=12912;var __ZN5nissy5error12NULL_POINTERE=Module["__ZN5nissy5error12NULL_POINTERE"]=12920;var __ZN5nissy5error11BUFFER_SIZEE=Module["__ZN5nissy5error11BUFFER_SIZEE"]=12928;var __ZN5nissy5error4DATAE=Module["__ZN5nissy5error4DATAE"]=12936;var __ZN5nissy5error7OPTIONSE=Module["__ZN5nissy5error7OPTIONSE"]=12944;var __ZN5nissy5error7UNKNOWNE=Module["__ZN5nissy5error7UNKNOWNE"]=12952;var __ZN5nissy6status3RUNE=Module["__ZN5nissy6status3RUNE"]=12960;var __ZN5nissy6status4STOPE=Module["__ZN5nissy6status4STOPE"]=12964;var __ZN5nissy6status5PAUSEE=Module["__ZN5nissy6status5PAUSEE"]=12968;var _loaded_solvers=Module["_loaded_solvers"]=47496;var __ZTIN5nissy8nissflagE=Module["__ZTIN5nissy8nissflagE"]=12984;var __ZTIPN5nissy8nissflagE=Module["__ZTIPN5nissy8nissflagE"]=13012;var __ZTIPKN5nissy8nissflagE=Module["__ZTIPKN5nissy8nissflagE"]=13048;var __ZZN10emscripten8internal19getGenericSignatureIJPvS2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJPvS2_EEEPKcvE9signature"]=13084;var __ZZN10emscripten8internal19getGenericSignatureIJvEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvEEEPKcvE9signature"]=13087;var __ZZN10emscripten8internal19getGenericSignatureIJvPvEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvPvEEEPKcvE9signature"]=13089;var __ZTIN5nissy5errorE=Module["__ZTIN5nissy5errorE"]=13092;var __ZTIPN5nissy5errorE=Module["__ZTIPN5nissy5errorE"]=13116;var __ZTIPKN5nissy5errorE=Module["__ZTIPKN5nissy5errorE"]=13148;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJbNS0_17AllowedRawPointerIKN5nissy5errorEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJbNS0_17AllowedRawPointerIKN5nissy5errorEEEEEEE3getEvE5types"]=13184;var __ZZN10emscripten8internal19getGenericSignatureIJiPvS2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJiPvS2_EEEPKcvE9signature"]=13192;var __ZTIN5nissy4cubeE=Module["__ZTIN5nissy4cubeE"]=13196;var __ZTIPN5nissy4cubeE=Module["__ZTIPN5nissy4cubeE"]=13220;var __ZTIPKN5nissy4cubeE=Module["__ZTIPKN5nissy4cubeE"]=13252;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerIN5nissy4cubeEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerIN5nissy4cubeEEEEEEE3getEvE5types"]=13284;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy5errorENS0_17AllowedRawPointerINS3_4cubeEEERKNSt3__212basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy5errorENS0_17AllowedRawPointerINS3_4cubeEEERKNSt3__212basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEEE3getEvE5types"]=13288;var __ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_S2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_S2_EEEPKcvE9signature"]=13300;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerIN5nissy4cubeEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerIN5nissy4cubeEEEEEEE3getEvE5types"]=13308;var __ZZN10emscripten8internal19getGenericSignatureIJvPvS2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvPvS2_EEEPKcvE9signature"]=13316;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS0_17AllowedRawPointerIKN5nissy4cubeEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS0_17AllowedRawPointerIKN5nissy4cubeEEEEEEE3getEvE5types"]=13320;var __ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_EEEPKcvE9signature"]=13328;var __ZTIN5nissy6solver12solve_resultE=Module["__ZTIN5nissy6solver12solve_resultE"]=13332;var __ZTIPN5nissy6solver12solve_resultE=Module["__ZTIPN5nissy6solver12solve_resultE"]=13372;var __ZTIPKN5nissy6solver12solve_resultE=Module["__ZTIPKN5nissy6solver12solve_resultE"]=13420;var __ZZN10emscripten8internal19getGenericSignatureIJvPvS2_S2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvPvS2_S2_EEEPKcvE9signature"]=13468;var __ZTINSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEEE=Module["__ZTINSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEEE"]=13476;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy5errorERKNSt3__212basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy5errorERKNSt3__212basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEEEEE3getEvE5types"]=13572;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy6solver12solve_resultENSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS3_4cubeENS3_8nissflagEjjjjjiEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy6solver12solve_resultENSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS3_4cubeENS3_8nissflagEjjjjjiEEEE3getEvE5types"]=13584;var __ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_S2_S2_iiiiiiEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_S2_S2_iiiiiiEEEPKcvE9signature"]=13624;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJviEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJviEEEE3getEvE5types"]=13636;var __ZZN10emscripten8internal19getGenericSignatureIJvPviEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvPviEEEPKcvE9signature"]=13644;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJiEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJiEEEE3getEvE5types"]=13648;var __ZZN10emscripten8internal19getGenericSignatureIJiPvEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJiPvEEEPKcvE9signature"]=13652;var __ZTISt12out_of_range=Module["__ZTISt12out_of_range"]=45e3;var __ZTVSt12out_of_range=Module["__ZTVSt12out_of_range"]=44980;var __ZTSN5nissy8nissflagE=Module["__ZTSN5nissy8nissflagE"]=12992;var __ZTVN10__cxxabiv119__pointer_type_infoE=Module["__ZTVN10__cxxabiv119__pointer_type_infoE"]=44492;var __ZTSPN5nissy8nissflagE=Module["__ZTSPN5nissy8nissflagE"]=13028;var __ZTSPKN5nissy8nissflagE=Module["__ZTSPKN5nissy8nissflagE"]=13064;var __ZTSN5nissy5errorE=Module["__ZTSN5nissy5errorE"]=13100;var __ZTSPN5nissy5errorE=Module["__ZTSPN5nissy5errorE"]=13132;var __ZTSPKN5nissy5errorE=Module["__ZTSPKN5nissy5errorE"]=13164;var __ZTSN5nissy4cubeE=Module["__ZTSN5nissy4cubeE"]=13204;var __ZTSPN5nissy4cubeE=Module["__ZTSPN5nissy4cubeE"]=13236;var __ZTSPKN5nissy4cubeE=Module["__ZTSPKN5nissy4cubeE"]=13268;var __ZTSN5nissy6solver12solve_resultE=Module["__ZTSN5nissy6solver12solve_resultE"]=13340;var __ZTSPN5nissy6solver12solve_resultE=Module["__ZTSPN5nissy6solver12solve_resultE"]=13388;var __ZTSPKN5nissy6solver12solve_resultE=Module["__ZTSPKN5nissy6solver12solve_resultE"]=13436;var __ZTSNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEEE=Module["__ZTSNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEEE"]=13484;var _nissy_log_data=Module["_nissy_log_data"]=47516;var _nissy_log=Module["_nissy_log"]=47520;var _getcube_options=Module["_getcube_options"]=45392;var _all_coordinates=Module["_all_coordinates"]=45376;var __ZTVN10__cxxabiv120__si_class_type_infoE=Module["__ZTVN10__cxxabiv120__si_class_type_infoE"]=44280;var __ZTISt8bad_cast=Module["__ZTISt8bad_cast"]=45296;var __ZTISt13runtime_error=Module["__ZTISt13runtime_error"]=45080;var __ZTISt9exception=Module["__ZTISt9exception"]=44608;var __ZTISt11logic_error=Module["__ZTISt11logic_error"]=44844;var __ZTVN10__cxxabiv121__vmi_class_type_infoE=Module["__ZTVN10__cxxabiv121__vmi_class_type_infoE"]=44372;var __ZTVSt11logic_error=Module["__ZTVSt11logic_error"]=44752;var __ZTVSt9exception=Module["__ZTVSt9exception"]=44588;var __ZTVSt13runtime_error=Module["__ZTVSt13runtime_error"]=44772;var ___cxa_unexpected_handler=Module["___cxa_unexpected_handler"]=47468;var ___cxa_terminate_handler=Module["___cxa_terminate_handler"]=47464;var ___cxa_new_handler=Module["___cxa_new_handler"]=68188;var __ZTIN10__cxxabiv116__shim_type_infoE=Module["__ZTIN10__cxxabiv116__shim_type_infoE"]=42316;var __ZTIN10__cxxabiv117__class_type_infoE=Module["__ZTIN10__cxxabiv117__class_type_infoE"]=42364;var __ZTIN10__cxxabiv117__pbase_type_infoE=Module["__ZTIN10__cxxabiv117__pbase_type_infoE"]=42412;var __ZTIDn=Module["__ZTIDn"]=42792;var __ZTIN10__cxxabiv119__pointer_type_infoE=Module["__ZTIN10__cxxabiv119__pointer_type_infoE"]=42460;var __ZTIN10__cxxabiv120__function_type_infoE=Module["__ZTIN10__cxxabiv120__function_type_infoE"]=42508;var __ZTIN10__cxxabiv129__pointer_to_member_type_infoE=Module["__ZTIN10__cxxabiv129__pointer_to_member_type_infoE"]=42560;var __ZTISt9type_info=Module["__ZTISt9type_info"]=45272;var __ZTSN10__cxxabiv116__shim_type_infoE=Module["__ZTSN10__cxxabiv116__shim_type_infoE"]=42328;var __ZTSN10__cxxabiv117__class_type_infoE=Module["__ZTSN10__cxxabiv117__class_type_infoE"]=42376;var __ZTSN10__cxxabiv117__pbase_type_infoE=Module["__ZTSN10__cxxabiv117__pbase_type_infoE"]=42424;var __ZTSN10__cxxabiv119__pointer_type_infoE=Module["__ZTSN10__cxxabiv119__pointer_type_infoE"]=42472;var __ZTSN10__cxxabiv120__function_type_infoE=Module["__ZTSN10__cxxabiv120__function_type_infoE"]=42520;var __ZTSN10__cxxabiv129__pointer_to_member_type_infoE=Module["__ZTSN10__cxxabiv129__pointer_to_member_type_infoE"]=42572;var __ZTVN10__cxxabiv116__shim_type_infoE=Module["__ZTVN10__cxxabiv116__shim_type_infoE"]=42632;var __ZTVN10__cxxabiv123__fundamental_type_infoE=Module["__ZTVN10__cxxabiv123__fundamental_type_infoE"]=42660;var __ZTIN10__cxxabiv123__fundamental_type_infoE=Module["__ZTIN10__cxxabiv123__fundamental_type_infoE"]=42688;var __ZTSN10__cxxabiv123__fundamental_type_infoE=Module["__ZTSN10__cxxabiv123__fundamental_type_infoE"]=42700;var __ZTSv=Module["__ZTSv"]=42748;var __ZTIPv=Module["__ZTIPv"]=42752;var __ZTSPv=Module["__ZTSPv"]=42768;var __ZTIPKv=Module["__ZTIPKv"]=42772;var __ZTSPKv=Module["__ZTSPKv"]=42788;var __ZTSDn=Module["__ZTSDn"]=42800;var __ZTIPDn=Module["__ZTIPDn"]=42804;var __ZTSPDn=Module["__ZTSPDn"]=42820;var __ZTIPKDn=Module["__ZTIPKDn"]=42824;var __ZTSPKDn=Module["__ZTSPKDn"]=42840;var __ZTSb=Module["__ZTSb"]=42856;var __ZTIPb=Module["__ZTIPb"]=42860;var __ZTSPb=Module["__ZTSPb"]=42876;var __ZTIPKb=Module["__ZTIPKb"]=42880;var __ZTSPKb=Module["__ZTSPKb"]=42896;var __ZTIw=Module["__ZTIw"]=42900;var __ZTSw=Module["__ZTSw"]=42908;var __ZTIPw=Module["__ZTIPw"]=42912;var __ZTSPw=Module["__ZTSPw"]=42928;var __ZTIPKw=Module["__ZTIPKw"]=42932;var __ZTSPKw=Module["__ZTSPKw"]=42948;var __ZTSc=Module["__ZTSc"]=42960;var __ZTIPc=Module["__ZTIPc"]=42964;var __ZTSPc=Module["__ZTSPc"]=42980;var __ZTIPKc=Module["__ZTIPKc"]=42984;var __ZTSPKc=Module["__ZTSPKc"]=43e3;var __ZTSh=Module["__ZTSh"]=43012;var __ZTIPh=Module["__ZTIPh"]=43016;var __ZTSPh=Module["__ZTSPh"]=43032;var __ZTIPKh=Module["__ZTIPKh"]=43036;var __ZTSPKh=Module["__ZTSPKh"]=43052;var __ZTSa=Module["__ZTSa"]=43064;var __ZTIPa=Module["__ZTIPa"]=43068;var __ZTSPa=Module["__ZTSPa"]=43084;var __ZTIPKa=Module["__ZTIPKa"]=43088;var __ZTSPKa=Module["__ZTSPKa"]=43104;var __ZTSs=Module["__ZTSs"]=43116;var __ZTIPs=Module["__ZTIPs"]=43120;var __ZTSPs=Module["__ZTSPs"]=43136;var __ZTIPKs=Module["__ZTIPKs"]=43140;var __ZTSPKs=Module["__ZTSPKs"]=43156;var __ZTSt=Module["__ZTSt"]=43168;var __ZTIPt=Module["__ZTIPt"]=43172;var __ZTSPt=Module["__ZTSPt"]=43188;var __ZTIPKt=Module["__ZTIPKt"]=43192;var __ZTSPKt=Module["__ZTSPKt"]=43208;var __ZTSi=Module["__ZTSi"]=43220;var __ZTIPi=Module["__ZTIPi"]=43224;var __ZTSPi=Module["__ZTSPi"]=43240;var __ZTIPKi=Module["__ZTIPKi"]=43244;var __ZTSPKi=Module["__ZTSPKi"]=43260;var __ZTSj=Module["__ZTSj"]=43272;var __ZTIPj=Module["__ZTIPj"]=43276;var __ZTSPj=Module["__ZTSPj"]=43292;var __ZTIPKj=Module["__ZTIPKj"]=43296;var __ZTSPKj=Module["__ZTSPKj"]=43312;var __ZTSl=Module["__ZTSl"]=43324;var __ZTIPl=Module["__ZTIPl"]=43328;var __ZTSPl=Module["__ZTSPl"]=43344;var __ZTIPKl=Module["__ZTIPKl"]=43348;var __ZTSPKl=Module["__ZTSPKl"]=43364;var __ZTSm=Module["__ZTSm"]=43376;var __ZTIPm=Module["__ZTIPm"]=43380;var __ZTSPm=Module["__ZTSPm"]=43396;var __ZTIPKm=Module["__ZTIPKm"]=43400;var __ZTSPKm=Module["__ZTSPKm"]=43416;var __ZTSx=Module["__ZTSx"]=43428;var __ZTIPx=Module["__ZTIPx"]=43432;var __ZTSPx=Module["__ZTSPx"]=43448;var __ZTIPKx=Module["__ZTIPKx"]=43452;var __ZTSPKx=Module["__ZTSPKx"]=43468;var __ZTSy=Module["__ZTSy"]=43480;var __ZTIPy=Module["__ZTIPy"]=43484;var __ZTSPy=Module["__ZTSPy"]=43500;var __ZTIPKy=Module["__ZTIPKy"]=43504;var __ZTSPKy=Module["__ZTSPKy"]=43520;var __ZTIn=Module["__ZTIn"]=43524;var __ZTSn=Module["__ZTSn"]=43532;var __ZTIPn=Module["__ZTIPn"]=43536;var __ZTSPn=Module["__ZTSPn"]=43552;var __ZTIPKn=Module["__ZTIPKn"]=43556;var __ZTSPKn=Module["__ZTSPKn"]=43572;var __ZTIo=Module["__ZTIo"]=43576;var __ZTSo=Module["__ZTSo"]=43584;var __ZTIPo=Module["__ZTIPo"]=43588;var __ZTSPo=Module["__ZTSPo"]=43604;var __ZTIPKo=Module["__ZTIPKo"]=43608;var __ZTSPKo=Module["__ZTSPKo"]=43624;var __ZTIDh=Module["__ZTIDh"]=43628;var __ZTSDh=Module["__ZTSDh"]=43636;var __ZTIPDh=Module["__ZTIPDh"]=43640;var __ZTSPDh=Module["__ZTSPDh"]=43656;var __ZTIPKDh=Module["__ZTIPKDh"]=43660;var __ZTSPKDh=Module["__ZTSPKDh"]=43676;var __ZTSf=Module["__ZTSf"]=43692;var __ZTIPf=Module["__ZTIPf"]=43696;var __ZTSPf=Module["__ZTSPf"]=43712;var __ZTIPKf=Module["__ZTIPKf"]=43716;var __ZTSPKf=Module["__ZTSPKf"]=43732;var __ZTSd=Module["__ZTSd"]=43744;var __ZTIPd=Module["__ZTIPd"]=43748;var __ZTSPd=Module["__ZTSPd"]=43764;var __ZTIPKd=Module["__ZTIPKd"]=43768;var __ZTSPKd=Module["__ZTSPKd"]=43784;var __ZTIe=Module["__ZTIe"]=43788;var __ZTSe=Module["__ZTSe"]=43796;var __ZTIPe=Module["__ZTIPe"]=43800;var __ZTSPe=Module["__ZTSPe"]=43816;var __ZTIPKe=Module["__ZTIPKe"]=43820;var __ZTSPKe=Module["__ZTSPKe"]=43836;var __ZTIg=Module["__ZTIg"]=43840;var __ZTSg=Module["__ZTSg"]=43848;var __ZTIPg=Module["__ZTIPg"]=43852;var __ZTSPg=Module["__ZTSPg"]=43868;var __ZTIPKg=Module["__ZTIPKg"]=43872;var __ZTSPKg=Module["__ZTSPKg"]=43888;var __ZTIDu=Module["__ZTIDu"]=43892;var __ZTSDu=Module["__ZTSDu"]=43900;var __ZTIPDu=Module["__ZTIPDu"]=43904;var __ZTSPDu=Module["__ZTSPDu"]=43920;var __ZTIPKDu=Module["__ZTIPKDu"]=43924;var __ZTSPKDu=Module["__ZTSPKDu"]=43940;var __ZTIDs=Module["__ZTIDs"]=43948;var __ZTSDs=Module["__ZTSDs"]=43956;var __ZTIPDs=Module["__ZTIPDs"]=43960;var __ZTSPDs=Module["__ZTSPDs"]=43976;var __ZTIPKDs=Module["__ZTIPKDs"]=43980;var __ZTSPKDs=Module["__ZTSPKDs"]=43996;var __ZTIDi=Module["__ZTIDi"]=44004;var __ZTSDi=Module["__ZTSDi"]=44012;var __ZTIPDi=Module["__ZTIPDi"]=44016;var __ZTSPDi=Module["__ZTSPDi"]=44032;var __ZTIPKDi=Module["__ZTIPKDi"]=44036;var __ZTSPKDi=Module["__ZTSPKDi"]=44052;var __ZTVN10__cxxabiv117__array_type_infoE=Module["__ZTVN10__cxxabiv117__array_type_infoE"]=44060;var __ZTIN10__cxxabiv117__array_type_infoE=Module["__ZTIN10__cxxabiv117__array_type_infoE"]=44088;var __ZTSN10__cxxabiv117__array_type_infoE=Module["__ZTSN10__cxxabiv117__array_type_infoE"]=44100;var __ZTVN10__cxxabiv120__function_type_infoE=Module["__ZTVN10__cxxabiv120__function_type_infoE"]=44136;var __ZTVN10__cxxabiv116__enum_type_infoE=Module["__ZTVN10__cxxabiv116__enum_type_infoE"]=44164;var __ZTIN10__cxxabiv116__enum_type_infoE=Module["__ZTIN10__cxxabiv116__enum_type_infoE"]=44192;var __ZTSN10__cxxabiv116__enum_type_infoE=Module["__ZTSN10__cxxabiv116__enum_type_infoE"]=44204;var __ZTIN10__cxxabiv120__si_class_type_infoE=Module["__ZTIN10__cxxabiv120__si_class_type_infoE"]=44320;var __ZTSN10__cxxabiv120__si_class_type_infoE=Module["__ZTSN10__cxxabiv120__si_class_type_infoE"]=44332;var __ZTIN10__cxxabiv121__vmi_class_type_infoE=Module["__ZTIN10__cxxabiv121__vmi_class_type_infoE"]=44412;var __ZTSN10__cxxabiv121__vmi_class_type_infoE=Module["__ZTSN10__cxxabiv121__vmi_class_type_infoE"]=44424;var __ZTVN10__cxxabiv117__pbase_type_infoE=Module["__ZTVN10__cxxabiv117__pbase_type_infoE"]=44464;var __ZTVN10__cxxabiv129__pointer_to_member_type_infoE=Module["__ZTVN10__cxxabiv129__pointer_to_member_type_infoE"]=44520;var __ZTVSt9bad_alloc=Module["__ZTVSt9bad_alloc"]=44548;var __ZTVSt20bad_array_new_length=Module["__ZTVSt20bad_array_new_length"]=44568;var __ZTISt9bad_alloc=Module["__ZTISt9bad_alloc"]=44684;var __ZTSSt9exception=Module["__ZTSSt9exception"]=44616;var __ZTVSt13bad_exception=Module["__ZTVSt13bad_exception"]=44632;var __ZTISt13bad_exception=Module["__ZTISt13bad_exception"]=44652;var __ZTSSt13bad_exception=Module["__ZTSSt13bad_exception"]=44664;var __ZTSSt9bad_alloc=Module["__ZTSSt9bad_alloc"]=44696;var __ZTSSt20bad_array_new_length=Module["__ZTSSt20bad_array_new_length"]=44724;var __ZTVSt12domain_error=Module["__ZTVSt12domain_error"]=44792;var __ZTISt12domain_error=Module["__ZTISt12domain_error"]=44812;var __ZTSSt12domain_error=Module["__ZTSSt12domain_error"]=44824;var __ZTSSt11logic_error=Module["__ZTSSt11logic_error"]=44856;var __ZTVSt16invalid_argument=Module["__ZTVSt16invalid_argument"]=44872;var __ZTISt16invalid_argument=Module["__ZTISt16invalid_argument"]=44892;var __ZTSSt16invalid_argument=Module["__ZTSSt16invalid_argument"]=44904;var __ZTSSt12length_error=Module["__ZTSSt12length_error"]=44960;var __ZTSSt12out_of_range=Module["__ZTSSt12out_of_range"]=45012;var __ZTVSt11range_error=Module["__ZTVSt11range_error"]=45032;var __ZTISt11range_error=Module["__ZTISt11range_error"]=45052;var __ZTSSt11range_error=Module["__ZTSSt11range_error"]=45064;var __ZTSSt13runtime_error=Module["__ZTSSt13runtime_error"]=45092;var __ZTVSt14overflow_error=Module["__ZTVSt14overflow_error"]=45112;var __ZTISt14overflow_error=Module["__ZTISt14overflow_error"]=45132;var __ZTSSt14overflow_error=Module["__ZTSSt14overflow_error"]=45144;var __ZTVSt15underflow_error=Module["__ZTVSt15underflow_error"]=45164;var __ZTISt15underflow_error=Module["__ZTISt15underflow_error"]=45184;var __ZTSSt15underflow_error=Module["__ZTSSt15underflow_error"]=45196;var __ZTVSt8bad_cast=Module["__ZTVSt8bad_cast"]=45216;var __ZTVSt10bad_typeid=Module["__ZTVSt10bad_typeid"]=45236;var __ZTISt10bad_typeid=Module["__ZTISt10bad_typeid"]=45320;var __ZTVSt9type_info=Module["__ZTVSt9type_info"]=45256;var __ZTSSt9type_info=Module["__ZTSSt9type_info"]=45280;var __ZTSSt8bad_cast=Module["__ZTSSt8bad_cast"]=45308;var __ZTSSt10bad_typeid=Module["__ZTSSt10bad_typeid"]=45332;function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}function preInit(){if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}preInit();run();moduleRtn=readyPromise; + + + return moduleRtn; +} +); +})(); +export default Nissy; +var isPthread = globalThis.self?.name?.startsWith('em-pthread'); +var isNode = typeof globalThis.process?.versions?.node == 'string'; +if (isNode) isPthread = (await import('worker_threads')).workerData === 'em-pthread'; + +// When running as a pthread, construct a new instance on startup +isPthread && Nissy(); diff --git a/web/nissy_web_module.wasm b/web/nissy_web_module.wasm Binary files differ.