UNPKG

sudoku-wasm-engine

Version:

A WebAssembly-powered Sudoku solver with multithreaded batch processing capabilities

1 lines 20.8 kB
var Module=void 0!==Module?Module:{},ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="undefined"!=typeof WorkerGlobalScope,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type,ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker,ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread,ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&"em-pthread"==worker_threads.workerData}var moduleOverrides={...Module},arguments_=[],thisProgram="./this.program",quit_=(e,r)=>{throw r},_scriptName="undefined"!=typeof document?document.currentScript?.src:void 0;ENVIRONMENT_IS_NODE?_scriptName=__filename:ENVIRONMENT_IS_WORKER&&(_scriptName=self.location.href);var readAsync,readBinary,scriptDirectory="";function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}if(ENVIRONMENT_IS_NODE){var fs=require("fs"),nodePath=require("path");scriptDirectory=__dirname+"/",readBinary=e=>(e=isFileURI(e)?new URL(e):e,fs.readFileSync(e)),readAsync=async(e,r=!0)=>(e=isFileURI(e)?new URL(e):e,fs.readFileSync(e,r?void 0:"utf8")),!Module.thisProgram&&process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),quit_=(e,r)=>{throw process.exitCode=e,r}}else(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:"undefined"!=typeof document&&document.currentScript&&(scriptDirectory=document.currentScript.src),scriptDirectory=scriptDirectory.startsWith("blob:")?"":scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1),ENVIRONMENT_IS_NODE||(ENVIRONMENT_IS_WORKER&&(readBinary=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),readAsync=async e=>{if(isFileURI(e))return new Promise(((r,t)=>{var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=()=>{200==a.status||0==a.status&&a.response?r(a.response):t(a.status)},a.onerror=t,a.send(null)}));var r=await fetch(e,{credentials:"same-origin"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+" : "+r.url)}));var defaultPrint=console.log.bind(console),defaultPrintErr=console.error.bind(console);ENVIRONMENT_IS_NODE&&(defaultPrint=(...e)=>fs.writeSync(1,e.join(" ")+"\n"),defaultPrintErr=(...e)=>fs.writeSync(2,e.join(" ")+"\n"));var out=Module.print||defaultPrint,err=Module.printErr||defaultPrintErr;Object.assign(Module,moduleOverrides),moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram);var wasmMemory,wasmModule,EXITSTATUS,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64,wasmBinary=Module.wasmBinary,ABORT=!1,runtimeInitialized=!1,isFileURI=e=>e.startsWith("file://");if(ENVIRONMENT_IS_PTHREAD){var wasmModuleReceived;if(ENVIRONMENT_IS_NODE){var parentPort=worker_threads.parentPort;parentPort.on("message",(e=>onmessage({data:e}))),Object.assign(globalThis,{self:global,postMessage:e=>parentPort.postMessage(e)})}var initializedJS=!1;function threadPrintErr(...e){ENVIRONMENT_IS_NODE?fs.writeSync(2,e.join(" ")+"\n"):console.error(...e)}function handleMessage(e){try{var r=e.data,t=r.cmd;if("load"===t){let e=[];self.onmessage=r=>e.push(r),self.startWorker=r=>{postMessage({cmd:"loaded"});for(let r of e)handleMessage(r);self.onmessage=handleMessage};for(const e of r.handlers)Module[e]&&!Module[e].proxy||(Module[e]=(...r)=>{postMessage({cmd:"callHandler",handler:e,args:r})},"print"==e&&(out=Module[e]),"printErr"==e&&(err=Module[e]));wasmMemory=r.wasmMemory,updateMemoryViews(),wasmModuleReceived(r.wasmModule)}else if("run"===t){establishStackSpace(r.pthread_ptr),__emscripten_thread_init(r.pthread_ptr,0,0,1,0,0),PThread.threadInitTLS(),__emscripten_thread_mailbox_await(r.pthread_ptr),initializedJS||(initializedJS=!0);try{invokeEntryPoint(r.start_routine,r.arg)}catch(e){if("unwind"!=e)throw e}}else"setimmediate"===r.target||("checkMailbox"===t?initializedJS&&checkMailbox():t&&(err(`worker: received unknown command ${t}`),err(r)))}catch(e){throw __emscripten_thread_crashed(),e}}Module.printErr||(err=threadPrintErr),self.onunhandledrejection=e=>{throw e.reason||e},self.onmessage=handleMessage}function updateMemoryViews(){var e=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e),Module.HEAP64=HEAP64=new BigInt64Array(e),Module.HEAPU64=HEAPU64=new BigUint64Array(e)}if(!ENVIRONMENT_IS_PTHREAD){if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else{var INITIAL_MEMORY=Module.INITIAL_MEMORY||134217728;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:INITIAL_MEMORY/65536,shared:!0})}updateMemoryViews()}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(onPreRuns)}function initRuntime(){if(runtimeInitialized=!0,ENVIRONMENT_IS_PTHREAD)return startWorker(Module);wasmExports.p()}function postRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(onPostRuns)}}var wasmBinaryFile,runDependencies=0,dependenciesFulfilled=null;function addRunDependency(e){runDependencies++,Module.monitorRunDependencies?.(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies?.(runDependencies),0==runDependencies&&dependenciesFulfilled){var r=dependenciesFulfilled;dependenciesFulfilled=null,r()}}function abort(e){throw Module.onAbort?.(e),err(e="Aborted("+e+")"),ABORT=!0,e+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(e)}function findWasmBinary(){return locateFile("sudoku_pt.wasm")}function getBinarySync(e){if(e==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(e);throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(e){if(!wasmBinary)try{var r=await readAsync(e);return new Uint8Array(r)}catch{}return getBinarySync(e)}async function instantiateArrayBuffer(e,r){try{var t=await getWasmBinary(e);return await WebAssembly.instantiate(t,r)}catch(e){err(`failed to asynchronously prepare wasm: ${e}`),abort(e)}}async function instantiateAsync(e,r,t){if(!e&&"function"==typeof WebAssembly.instantiateStreaming&&!isFileURI(r)&&!ENVIRONMENT_IS_NODE)try{var a=fetch(r,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(a,t)}catch(e){err(`wasm streaming compile failed: ${e}`),err("falling back to ArrayBuffer instantiation")}return instantiateArrayBuffer(r,t)}function getWasmImports(){return assignWasmImports(),{a:wasmImports}}async function createWasm(){function e(e,r){return wasmExports=e.exports,registerTLSInit(wasmExports.D),wasmTable=wasmExports.C,wasmModule=r,removeRunDependency("wasm-instantiate"),wasmExports}addRunDependency("wasm-instantiate");var r,t=getWasmImports();return Module.instantiateWasm?new Promise(((r,a)=>{Module.instantiateWasm(t,((t,a)=>{e(t,a),r(t.exports)}))})):ENVIRONMENT_IS_PTHREAD?new Promise((r=>{wasmModuleReceived=t=>{var a=new WebAssembly.Instance(t,getWasmImports());r(e(a,t))}})):(wasmBinaryFile??=findWasmBinary(),e((r=await instantiateAsync(wasmBinary,wasmBinaryFile,t)).instance,r.module))}class ExitStatus{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var terminateWorker=e=>{e.terminate(),e.onmessage=e=>{}},cleanupThread=e=>{var r=PThread.pthreads[e];PThread.returnWorkerToPool(r)},callRuntimeCallbacks=e=>{for(;e.length>0;)e.shift()(Module)},onPreRuns=[],addOnPreRun=e=>onPreRuns.unshift(e),spawnThread=e=>{var r=PThread.getNewWorker();if(!r)return 6;PThread.runningWorkers.push(r),PThread.pthreads[e.pthread_ptr]=r,r.pthread_ptr=e.pthread_ptr;var t={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return ENVIRONMENT_IS_NODE&&r.unref(),r.postMessage(t,e.transferList),0},runtimeKeepaliveCounter=0,keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0,stackSave=()=>_emscripten_stack_get_current(),stackRestore=e=>__emscripten_stack_restore(e),stackAlloc=e=>__emscripten_stack_alloc(e),proxyToMainThread=(e,r,t,...a)=>{for(var n=2*a.length,o=stackSave(),s=stackAlloc(8*n),i=s>>3,l=0;l<a.length;l++){var d=a[l];"bigint"==typeof d?(HEAP64[i+2*l]=1n,HEAP64[i+2*l+1]=d):(HEAP64[i+2*l]=0n,HEAPF64[i+2*l+1]=d)}var u=__emscripten_run_on_main_thread_js(e,r,n,s,t);return stackRestore(o),u};function _proc_exit(e){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,e);EXITSTATUS=e,keepRuntimeAlive()||(PThread.terminateAllThreads(),Module.onExit?.(e),ABORT=!0),quit_(e,new ExitStatus(e))}function exitOnMainThread(e){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,e);_exit(e)}var wasmTable,exitJS=(e,r)=>{if(EXITSTATUS=e,ENVIRONMENT_IS_PTHREAD)throw exitOnMainThread(e),"unwind";_proc_exit(e)},_exit=exitJS,PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){ENVIRONMENT_IS_PTHREAD||PThread.initMainThread()},initMainThread(){for(var e=4;e--;)PThread.allocateUnusedWorker();addOnPreRun((()=>{addRunDependency("loading-workers"),PThread.loadWasmModuleToAllWorkers((()=>removeRunDependency("loading-workers")))}))},terminateAllThreads:()=>{for(var e of PThread.runningWorkers)terminateWorker(e);for(var e of PThread.unusedWorkers)terminateWorker(e);PThread.unusedWorkers=[],PThread.runningWorkers=[],PThread.pthreads={}},returnWorkerToPool:e=>{var r=e.pthread_ptr;delete PThread.pthreads[r],PThread.unusedWorkers.push(e),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(e),1),e.pthread_ptr=0,__emscripten_thread_free_data(r)},threadInitTLS(){PThread.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:e=>new Promise((r=>{e.onmessage=t=>{var a=t.data,n=a.cmd;if(a.targetThread&&a.targetThread!=_pthread_self()){var o=PThread.pthreads[a.targetThread];o?o.postMessage(a,a.transferList):err(`Internal error! Worker sent a message "${n}" to target pthread ${a.targetThread}, but that thread no longer exists!`)}else"checkMailbox"===n?checkMailbox():"spawnThread"===n?spawnThread(a):"cleanupThread"===n?cleanupThread(a.thread):"loaded"===n?(e.loaded=!0,ENVIRONMENT_IS_NODE&&!e.pthread_ptr&&e.unref(),r(e)):"setimmediate"===a.target?e.postMessage(a):"callHandler"===n?Module[a.handler](...a.args):n&&err(`worker sent an unknown command ${n}`)},e.onerror=e=>{throw err(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e},ENVIRONMENT_IS_NODE&&(e.on("message",(r=>e.onmessage({data:r}))),e.on("error",(r=>e.onerror(r))));var t=[];for(var a of["onExit","onAbort","print","printErr"])Module.propertyIsEnumerable(a)&&t.push(a);e.postMessage({cmd:"load",handlers:t,wasmMemory,wasmModule})})),loadWasmModuleToAllWorkers(e){if(ENVIRONMENT_IS_PTHREAD)return e();Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker)).then(e)},allocateUnusedWorker(){var e,r=_scriptName;Module.mainScriptUrlOrBlob&&"string"!=typeof(r=Module.mainScriptUrlOrBlob)&&(r=URL.createObjectURL(r)),e=new Worker(r,{workerData:"em-pthread",name:"em-pthread"}),PThread.unusedWorkers.push(e)},getNewWorker:()=>(0==PThread.unusedWorkers.length&&(PThread.allocateUnusedWorker(),PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])),PThread.unusedWorkers.pop())},onPostRuns=[],addOnPostRun=e=>onPostRuns.unshift(e),establishStackSpace=e=>{var r=HEAPU32[e+52>>2],t=HEAPU32[e+56>>2];_emscripten_stack_set_limits(r,r-t),stackRestore(r)},wasmTableMirror=[],getWasmTableEntry=e=>{var r=wasmTableMirror[e];return r||(wasmTableMirror[e]=r=wasmTable.get(e)),r},invokeEntryPoint=(e,r)=>{var t;runtimeKeepaliveCounter=0,noExitRuntime=0,t=getWasmTableEntry(e)(r),keepRuntimeAlive()?EXITSTATUS=t:__emscripten_thread_exit(t)},noExitRuntime=Module.noExitRuntime||!0,registerTLSInit=e=>PThread.tlsInitFunctions.push(e);function pthreadCreateProxied(e,r,t,a){return ENVIRONMENT_IS_PTHREAD?proxyToMainThread(2,0,1,e,r,t,a):___pthread_create_js(e,r,t,a)}var _emscripten_has_threading_support=()=>"undefined"!=typeof SharedArrayBuffer,___pthread_create_js=(e,r,t,a)=>{if(!_emscripten_has_threading_support())return 6;var n=[];if(ENVIRONMENT_IS_PTHREAD&&0===n.length)return pthreadCreateProxied(e,r,t,a);var o={startRoutine:t,pthread_ptr:e,arg:a,transferList:n};return ENVIRONMENT_IS_PTHREAD?(o.cmd="spawnThread",postMessage(o,n),0):spawnThread(o)},__abort_js=()=>abort(""),__emscripten_init_main_thread_js=e=>{__emscripten_thread_init(e,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,65536,!1),PThread.threadInitTLS()},handleException=e=>{if(e instanceof ExitStatus||"unwind"==e)return EXITSTATUS;quit_(1,e)},maybeExit=()=>{if(!keepRuntimeAlive())try{ENVIRONMENT_IS_PTHREAD?__emscripten_thread_exit(EXITSTATUS):_exit(EXITSTATUS)}catch(e){handleException(e)}},callUserCallback=e=>{if(!ABORT)try{e(),maybeExit()}catch(e){handleException(e)}},__emscripten_thread_mailbox_await=e=>{if("function"==typeof Atomics.waitAsync){Atomics.waitAsync(HEAP32,e>>2,e).value.then(checkMailbox);var r=e+128;Atomics.store(HEAP32,r>>2,1)}},checkMailbox=()=>{var e=_pthread_self();e&&(__emscripten_thread_mailbox_await(e),callUserCallback(__emscripten_check_mailbox))},__emscripten_notify_mailbox_postmessage=(e,r)=>{if(e==r)setTimeout(checkMailbox);else if(ENVIRONMENT_IS_PTHREAD)postMessage({targetThread:e,cmd:"checkMailbox"});else{var t=PThread.pthreads[e];if(!t)return;t.postMessage({cmd:"checkMailbox"})}},proxiedJSCallArgs=[],__emscripten_receive_on_main_thread_js=(e,r,t,a,n)=>{a/=2,proxiedJSCallArgs.length=a;for(var o=n>>3,s=0;s<a;s++)HEAP64[o+2*s]?proxiedJSCallArgs[s]=HEAP64[o+2*s+1]:proxiedJSCallArgs[s]=HEAPF64[o+2*s+1];var i=proxiedFunctionTable[e];PThread.currentProxiedOperationCallerThread=t;var l=i(...proxiedJSCallArgs);return PThread.currentProxiedOperationCallerThread=0,l},__emscripten_thread_cleanup=e=>{ENVIRONMENT_IS_PTHREAD?postMessage({cmd:"cleanupThread",thread:e}):cleanupThread(e)},__emscripten_thread_set_strongref=e=>{ENVIRONMENT_IS_NODE&&PThread.pthreads[e].ref()},_emscripten_get_now=()=>performance.timeOrigin+performance.now(),_emscripten_check_blocking_allowed=()=>{},runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1},_emscripten_exit_with_live_runtime=()=>{throw runtimeKeepalivePush(),"unwind"},abortOnCannotGrowMemory=e=>{abort("OOM")},_emscripten_resize_heap=e=>{HEAPU8.length,abortOnCannotGrowMemory(e>>>=0)},printCharBuffers=[null,[],[]],UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder:void 0,UTF8ArrayToString=(e,r=0,t=NaN)=>{for(var a=r+t,n=r;e[n]&&!(n>=a);)++n;if(n-r>16&&e.buffer&&UTF8Decoder)return UTF8Decoder.decode(e.buffer instanceof ArrayBuffer?e.subarray(r,n):e.slice(r,n));for(var o="";r<n;){var s=e[r++];if(128&s){var i=63&e[r++];if(192!=(224&s)){var l=63&e[r++];if((s=224==(240&s)?(15&s)<<12|i<<6|l:(7&s)<<18|i<<12|l<<6|63&e[r++])<65536)o+=String.fromCharCode(s);else{var d=s-65536;o+=String.fromCharCode(55296|d>>10,56320|1023&d)}}else o+=String.fromCharCode((31&s)<<6|i)}else o+=String.fromCharCode(s)}return o},printChar=(e,r)=>{var t=printCharBuffers[e];0===r||10===r?((1===e?out:err)(UTF8ArrayToString(t)),t.length=0):t.push(r)},UTF8ToString=(e,r)=>e?UTF8ArrayToString(HEAPU8,e,r):"";function _fd_write(e,r,t,a){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,e,r,t,a);for(var n=0,o=0;o<t;o++){var s=HEAPU32[r>>2],i=HEAPU32[r+4>>2];r+=8;for(var l=0;l<i;l++)printChar(e,HEAPU8[s+l]);n+=i}return HEAPU32[a>>2]=n,0}var getCFunc=e=>Module["_"+e],writeArrayToMemory=(e,r)=>{HEAP8.set(e,r)},lengthBytesUTF8=e=>{for(var r=0,t=0;t<e.length;++t){var a=e.charCodeAt(t);a<=127?r++:a<=2047?r+=2:a>=55296&&a<=57343?(r+=4,++t):r+=3}return r},stringToUTF8Array=(e,r,t,a)=>{if(!(a>0))return 0;for(var n=t,o=t+a-1,s=0;s<e.length;++s){var i=e.charCodeAt(s);if(i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++s)),i<=127){if(t>=o)break;r[t++]=i}else if(i<=2047){if(t+1>=o)break;r[t++]=192|i>>6,r[t++]=128|63&i}else if(i<=65535){if(t+2>=o)break;r[t++]=224|i>>12,r[t++]=128|i>>6&63,r[t++]=128|63&i}else{if(t+3>=o)break;r[t++]=240|i>>18,r[t++]=128|i>>12&63,r[t++]=128|i>>6&63,r[t++]=128|63&i}}return r[t]=0,t-n},stringToUTF8=(e,r,t)=>stringToUTF8Array(e,HEAPU8,r,t),stringToUTF8OnStack=e=>{var r=lengthBytesUTF8(e)+1,t=stackAlloc(r);return stringToUTF8(e,t,r),t},ccall=(e,r,t,a,n)=>{var o={string:e=>{var r=0;return null!=e&&0!==e&&(r=stringToUTF8OnStack(e)),r},array:e=>{var r=stackAlloc(e.length);return writeArrayToMemory(e,r),r}},s=getCFunc(e),i=[],l=0;if(a)for(var d=0;d<a.length;d++){var u=o[t[d]];u?(0===l&&(l=stackSave()),i[d]=u(a[d])):i[d]=a[d]}var _=s(...i);return function(e){return 0!==l&&stackRestore(l),function(e){return"string"===r?UTF8ToString(e):"boolean"===r?Boolean(e):e}(e)}(_)},cwrap=(e,r,t,a)=>{var n=!t||t.every((e=>"number"===e||"boolean"===e));return"string"!==r&&n&&!a?getCFunc(e):(...n)=>ccall(e,r,t,n,a)};PThread.init();var wasmImports,wasmExports,proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,_fd_write];function assignWasmImports(){wasmImports={g:___pthread_create_js,m:__abort_js,k:__emscripten_init_main_thread_js,o:__emscripten_notify_mailbox_postmessage,l:__emscripten_receive_on_main_thread_js,c:__emscripten_thread_cleanup,j:__emscripten_thread_mailbox_await,i:__emscripten_thread_set_strongref,e:_emscripten_check_blocking_allowed,h:_emscripten_exit_with_live_runtime,b:_emscripten_get_now,n:_emscripten_resize_heap,f:_exit,d:_fd_write,a:wasmMemory}}createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports.p)(),_solveSudoku=Module._solveSudoku=e=>(_solveSudoku=Module._solveSudoku=wasmExports.q)(e),_allocateInputBuffer=Module._allocateInputBuffer=e=>(_allocateInputBuffer=Module._allocateInputBuffer=wasmExports.r)(e),_allocateOutputBuffer=Module._allocateOutputBuffer=e=>(_allocateOutputBuffer=Module._allocateOutputBuffer=wasmExports.s)(e),_allocateSolvedFlags=Module._allocateSolvedFlags=e=>(_allocateSolvedFlags=Module._allocateSolvedFlags=wasmExports.t)(e),_freeAllBuffers=Module._freeAllBuffers=()=>(_freeAllBuffers=Module._freeAllBuffers=wasmExports.u)(),_setPuzzle=Module._setPuzzle=(e,r)=>(_setPuzzle=Module._setPuzzle=wasmExports.v)(e,r),_getSolution=Module._getSolution=e=>(_getSolution=Module._getSolution=wasmExports.w)(e),_wasSolved=Module._wasSolved=e=>(_wasSolved=Module._wasSolved=wasmExports.x)(e),_getCompletedThreadCount=Module._getCompletedThreadCount=()=>(_getCompletedThreadCount=Module._getCompletedThreadCount=wasmExports.y)(),_requestStop=Module._requestStop=()=>(_requestStop=Module._requestStop=wasmExports.z)(),_resetStopFlag=Module._resetStopFlag=()=>(_resetStopFlag=Module._resetStopFlag=wasmExports.A)(),_solveBatch=Module._solveBatch=e=>(_solveBatch=Module._solveBatch=wasmExports.B)(e),__emscripten_tls_init=()=>(__emscripten_tls_init=wasmExports.D)(),_pthread_self=()=>(_pthread_self=wasmExports.E)(),__emscripten_thread_init=(e,r,t,a,n,o)=>(__emscripten_thread_init=wasmExports.F)(e,r,t,a,n,o),__emscripten_thread_crashed=()=>(__emscripten_thread_crashed=wasmExports.G)(),__emscripten_run_on_main_thread_js=(e,r,t,a,n)=>(__emscripten_run_on_main_thread_js=wasmExports.H)(e,r,t,a,n),__emscripten_thread_free_data=e=>(__emscripten_thread_free_data=wasmExports.I)(e),__emscripten_thread_exit=e=>(__emscripten_thread_exit=wasmExports.J)(e),__emscripten_check_mailbox=()=>(__emscripten_check_mailbox=wasmExports.K)(),_emscripten_stack_set_limits=(e,r)=>(_emscripten_stack_set_limits=wasmExports.L)(e,r),__emscripten_stack_restore=e=>(__emscripten_stack_restore=wasmExports.M)(e),__emscripten_stack_alloc=e=>(__emscripten_stack_alloc=wasmExports.N)(e),_emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports.O)();function run(){function e(){Module.calledRun=!0,ABORT||(initRuntime(),Module.onRuntimeInitialized?.(),postRun())}runDependencies>0?dependenciesFulfilled=run:ENVIRONMENT_IS_PTHREAD?initRuntime():(preRun(),runDependencies>0?dependenciesFulfilled=run:Module.setStatus?(Module.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>Module.setStatus("")),1),e()}),1)):e())}if(Module.ccall=ccall,Module.cwrap=cwrap,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();run();