@knuth/js-wasm 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)](LICENSE.md)
7
7
  <a target="_blank" href="https://t.me/knuth_cash">![Telegram](https://img.shields.io/badge/telegram-chat-blue.svg?logo=telegram&style=for-the-badge)</a>
8
8
 
9
- **Knuth JS-WASM** provides Bitcoin Cash primitives through WebAssembly. Build wallets, validate addresses and work with transactions in browsers and Node.js. Version 3.0.0 uses KTH 1.5.2 and Emscripten 6.0.13.
9
+ **Knuth JS-WASM** provides Bitcoin Cash primitives through WebAssembly. Build wallets, validate addresses and work with transactions in browsers and Node.js. Version 4.0.0 uses KTH 1.6.1 and Emscripten 6.0.13.
10
10
 
11
11
  ## Installation
12
12
 
@@ -26,7 +26,7 @@ async function main() {
26
26
  require.resolve('@knuth/js-wasm/src/kth.wasm'),
27
27
  require.resolve('@knuth/js-wasm')
28
28
  );
29
- console.log(Kth.getLibconfig().cppapiVersion); // 1.5.2
29
+ console.log(Kth.getLibconfig().cppapiVersion); // 1.6.1
30
30
 
31
31
  const address = PaymentAddress.fromString('bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a');
32
32
  if (address) {
@@ -39,7 +39,18 @@ main().catch(console.error);
39
39
 
40
40
  The following examples assume `loadLib()` has completed.
41
41
 
42
- ## Migrating to 3.0.0
42
+ ## Migrating to 4.0.0
43
+
44
+ - Address factories `fromHash`, `fromShortHash`, `fromScript` and
45
+ `fromPayPublicKeyHashScript` return `undefined` on native status failures.
46
+ Check the result before using it. JavaScript programming errors still throw.
47
+ - Native address creation uses checked factories instead of direct constructors.
48
+ - The callback chain interface calls block submission `asyncSubmitBlock`.
49
+ - The `tempnet` network and tick-based consensus helpers match KTH 1.6.1.
50
+ - The optional Worker module described below is separate from the synchronous SDK.
51
+
52
+ ## Migrating from 2.x
53
+
43
54
 
44
55
  - Use `ScriptFlags` / `ScriptUpgrades` and `bigint` for current script flags; for example, `script.toString(ScriptFlags.noRules)`.
45
56
  - Construct wallets with `new Wallet(mnemonic, path, network)` or a seed. Release their native state with `wallet.dispose()`.
@@ -203,12 +214,12 @@ Try it in your browser at [kth.cash](https://kth.cash/#wasm-demo) — no install
203
214
  ## Browser Usage
204
215
 
205
216
  ```html
206
- <script src="https://unpkg.com/@knuth/js-wasm@3.0.0/src/kth.js"></script>
217
+ <script src="https://unpkg.com/@knuth/js-wasm@4.0.0/src/kth.js"></script>
207
218
  <script>
208
219
  const { loadLib, PaymentAddress } = __KTH_MODULE__;
209
220
  loadLib(
210
- 'https://unpkg.com/@knuth/js-wasm@3.0.0/src/kth.wasm',
211
- 'https://unpkg.com/@knuth/js-wasm@3.0.0/src/kth.js'
221
+ 'https://unpkg.com/@knuth/js-wasm@4.0.0/src/kth.wasm',
222
+ 'https://unpkg.com/@knuth/js-wasm@4.0.0/src/kth.js'
212
223
  ).then(() => {
213
224
  const address = PaymentAddress.fromString('bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a');
214
225
  if (address) console.log(address.encodedLegacy());
@@ -254,3 +265,48 @@ MIT License - see [LICENSE.md](LICENSE.md)
254
265
  <a href="https://t.me/knuth_cash">Telegram</a> •
255
266
  <a href="https://twitter.com/KnuthNode">Twitter</a>
256
267
  </p>
268
+
269
+ ## Browser node Worker
270
+
271
+ The package also includes a Worker-owned header-validation engine built from
272
+ KTH 1.6.1. It connects directly to BCH peers over WS/WSS, supports peer discovery,
273
+ validates headers locally and can persist its chain with IndexedDB. No RPC or
274
+ indexer is needed. Content sampling and transaction observation are optional;
275
+ they do not constitute full UTXO-based validation.
276
+
277
+ Copy these two files together to a directory served by your application:
278
+
279
+ - `src/browser_headers_persistent_v1.js`
280
+ - `src/browser_headers_persistent_v1.wasm`
281
+
282
+ In a classic Web Worker:
283
+
284
+ ```javascript
285
+ async function startNode() {
286
+ const assets = new URL('./vendor/', self.location.href);
287
+ importScripts(new URL('browser_headers_persistent_v1.js', assets).href);
288
+ const core = await createHeaders({ locateFile: name => new URL(name, assets).href });
289
+
290
+ const directory = '/kth-header-cache/Tempnet';
291
+ core.FS.mkdirTree(directory);
292
+ core.FS.mount(core.IDBFS, {}, directory);
293
+ const sync = populate => new Promise((resolve, reject) =>
294
+ core.FS.syncfs(populate, error => error ? reject(error) : resolve()));
295
+ await sync(true);
296
+ const node = new core.HeaderSync('wss://tempnet.kth.cash/p2p', 'tempnet', 500000);
297
+ try {
298
+ console.log('Validated height:', await node.asyncRun());
299
+ await sync(false);
300
+ } finally {
301
+ node.dispose();
302
+ }
303
+ }
304
+ startNode().catch(console.error);
305
+ ```
306
+
307
+ For a continuous session use `asyncFollow()`. Before disposal, request stop and
308
+ await the run/follow and stop promises. A rejected disposal leaves the handle
309
+ alive so cleanup can be retried. `reset()` clears native state; delete the
310
+ network's IndexedDB data explicitly when you intend to remove its saved chain.
311
+ Network display names in cache paths are case-sensitive. HTTPS pages require
312
+ WSS endpoints; peers must allow the page's Origin.
package/SHA256SUMS ADDED
@@ -0,0 +1,4 @@
1
+ 4e4dc6e211d7f4bba16fd2a3df2b8f235fefb179f46146ee7b749b1f573523bb src/kth.js
2
+ c174f954f36ae110aabbe5864f287ffd86ed3e823548c39d31d7c864274a5b82 src/kth.wasm
3
+ ea21df74f54955d439328c7aadfa384053316841b3bb5432c8c7f3db8437972e src/browser_headers_persistent_v1.js
4
+ 5fbfda25cf3f39178239e9d2197d1c4f7e49c825f80129d5b4f0ea02fed2613e src/browser_headers_persistent_v1.wasm
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knuth/js-wasm",
3
- "version": "3.0.0",
3
+ "version": "4.0.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -10,7 +10,10 @@
10
10
  "src/kth.js",
11
11
  "src/kth.wasm",
12
12
  "LICENSE.md",
13
- "types/**/*"
13
+ "types/**/*",
14
+ "src/browser_headers_persistent_v1.js",
15
+ "src/browser_headers_persistent_v1.wasm",
16
+ "SHA256SUMS"
14
17
  ],
15
18
  "types": "types/wasm/bootloader.d.ts",
16
19
  "devDependencies": {
@@ -49,5 +52,10 @@
49
52
  "homepage": "https://github.com/k-nuth",
50
53
  "engines": {
51
54
  "node": ">=22"
55
+ },
56
+ "knuth": {
57
+ "coreVersion": "1.6.1",
58
+ "coreCommit": "c7ec3c96adc9c24695e14d0a76f6f0326a8760b1",
59
+ "emscriptenVersion": "6.0.13"
52
60
  }
53
61
  }
@@ -0,0 +1,2 @@
1
+ async function createHeaders(moduleArg={}){var Module=moduleArg;(()=>{"use strict";var e={402:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.convertAsyncResults=function(e,t){if(e.length!==t.length)throw new Error("Invalid callback result arity");const r=t.map((t,r)=>t.owned&&null!=e[r]),i=[],s=[];let a=!1;try{for(let n=0;n<e.length;++n){const a=t[n],o=a.read(e[n]);a.adopt&&null!=o&&(i.push(o),r[n]=!1),s.push(o)}return a=!0,s}finally{let t,s=!1;for(let i=e.length-1;i>=0;--i)if(r[i])try{(0,n.free)(e[i])}catch(e){s=!0,t=e}if(!a||s)for(const e of i.reverse())try{e.dispose()}catch(e){s=!0,t=e}if(a&&s)throw t}};const n=r(906)},571:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.HeaderSync=void 0;const n=r(402),i=r(407),s=r(638),a=r(906);class o{constructor(e,t,r){this.disposed=!1,this.native=(0,i.withNatives)(()=>new s.HeaderSyncNative(e,t,r))}live(){if(this.disposed)throw new Error("Object disposed");return this.native}dispose(){this.disposed||((0,a.free)(this.native),this.disposed=!0)}async asyncRequestStop(){return(0,i.withNativesAsync)(async()=>{const t=await this.live().asyncRequestStop();return(0,n.convertAsyncResults)([t],[{owned:!1,adopt:!1,read:e=>e}])[0]})}async asyncRequestRefresh(){return(0,i.withNativesAsync)(async()=>{const t=await this.live().asyncRequestRefresh();return(0,n.convertAsyncResults)([t],[{owned:!1,adopt:!1,read:e=>e}])[0]})}lastHeight(){return this.live().lastHeight()}running(){return this.live().running()}idle(){return this.live().idle()}status(){return this.live().status()}indexMemoryBytes(){return this.live().indexMemoryBytes()}async asyncRun(){return(0,i.withNativesAsync)(async()=>{const t=await this.live().asyncRun();return(0,n.convertAsyncResults)([t],[{owned:!1,adopt:!1,read:e=>e}])[0]})}async asyncFollow(){return(0,i.withNativesAsync)(async()=>{const t=await this.live().asyncFollow();return(0,n.convertAsyncResults)([t],[{owned:!1,adopt:!1,read:e=>e}])[0]})}reset(){return this.live().reset()}headerHex(e){return this.live().headerHex(e)}headerHash(e){return this.live().headerHash(e)}chainStateSnapshot(){return this.live().chainStateSnapshot()}runtimeSettings(){return this.live().runtimeSettings()}configureContent(e,t){return this.live().configureContent(e,t)}blockMetadata(e,t){return this.live().blockMetadata(e,t)}contentState(){return this.live().contentState()}observedTransactions(){return this.live().observedTransactions()}addPeer(e){return this.live().addPeer(e)}configureDiscovery(e,t,r){return this.live().configureDiscovery(e,t,r)}configureLegacyDiscovery(e){return this.live().configureLegacyDiscovery(e)}peerCount(){return this.live().peerCount()}peerEndpoint(e){return this.live().peerEndpoint(e)}peerSource(e){return this.live().peerSource(e)}peerState(e){return this.live().peerState(e)}peerAgent(e){return this.live().peerAgent(e)}peerError(e){return this.live().peerError(e)}peerHeight(e){return this.live().peerHeight(e)}peerAnnouncements(e){return this.live().peerAnnouncements(e)}peerConnected(e){return this.live().peerConnected(e)}}t.HeaderSync=o,t.default=o},407:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NativeScope=void 0,t.withNatives=function(e){const t=new i;let r;try{r=e(t)}catch(e){try{t.release()}catch(e){}throw e}return t.release(),r},t.withNativesAsync=async function(e){const t=new i;let r;try{r=await e(t)}catch(e){try{t.release()}catch(e){}throw e}return t.release(),r};const n=r(906);class i{constructor(){this.owned=[]}own(e){return this.owned.push(e),e}release(){let e,t=!1;for(;this.owned.length>0;)try{(0,n.free)(this.owned.pop())}catch(r){t||(t=!0,e=r)}if(t)throw e}}t.NativeScope=i},671:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CallbackRegistry=t.CallbackStatusError=void 0;class r extends Error{constructor(e){super(`Native async operation failed with status ${e}`),this.code=e,this.name="CallbackStatusError"}}t.CallbackStatusError=r,t.CallbackRegistry=class{constructor(e=128){if(this.capacity=e,this.pending=new Map,this.owners=new Map,this.sequence=0,!Number.isSafeInteger(e)||e<1)throw new RangeError("Invalid callback capacity")}get size(){return this.pending.size}assertIdle(e){if(this.owners.has(e))throw new Error("Native object has pending async operations")}invoke(e,t){return this.invokeWithOwners([e],t)}invokeWithOwners(e,t,n){const i=[...new Set(e)];if(0===i.length)return Promise.reject(new Error("Async operation has no owner"));if(this.pending.size>=this.capacity)return Promise.reject(new Error("Async admission is full"));if(4294967295===this.sequence)return Promise.reject(new Error("Async request identifiers exhausted"));const s=++this.sequence;let a,o=!1;for(const e of i)this.owners.set(e,(this.owners.get(e)??0)+1);return new Promise((e,c)=>{const _=()=>{this.pending.delete(s);for(const e of i){const t=this.owners.get(e)-1;0===t?this.owners.delete(e):this.owners.set(e,t)}};this.pending.set(s,{settle:(t,i)=>{this.pending.delete(s);try{if(a)n?.release(i),c(a.error);else if(0!==t)n?.release(i),c(new r(t));else{let t;try{t=n?n.take(i):i}catch(e){throw n?.release(i),e}e(t)}}catch(e){c(e)}finally{_()}}});try{t(s,()=>{o=!0})}catch(e){this.pending.has(s)&&(o?a={error:e}:(_(),c(e)))}})}complete(e,t,r){const n=this.pending.get(e);return void 0!==n&&(n.settle(t,r),!0)}}},638:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.HeaderSyncNative=t.LibConfig=t.LibConfigTypeSizes=t.NativeStatusError=void 0,t.isBorrowedView=function(e){return null!=e&&!0===e[h]},t.CurrencyToInt=function(e){if("string"!=typeof e||!Object.prototype.hasOwnProperty.call(b,e))throw new RangeError("Invalid Currency: "+String(e));return b[e]},t.CurrencyFromInt=k,t.NetworkToInt=T,t.NetworkFromInt=function(e){const t=C[e];if(void 0===t||!Object.prototype.hasOwnProperty.call(C,e))throw new RangeError("Native value "+String(e)+" is not a Network");return t},t.RuleForkEnumNativeToInt=function(e){if("string"!=typeof e||!Object.prototype.hasOwnProperty.call(U,e))throw new RangeError("Invalid RuleForkEnumNative: "+String(e));return U[e]},t.RuleForkEnumNativeFromInt=function(e){const t=H[e];if(void 0===t||!Object.prototype.hasOwnProperty.call(H,e))throw new RangeError("Native value "+String(e)+" is not a RuleForkEnumNative");return t};const n=r(447),i=r(130),s=r(671),a=r(906),o=new s.CallbackRegistry;Object.assign(Module,{kthCompleteCallback:(e,t,r)=>o.complete(e,t,r)});const c=Symbol("ptr"),_=(Symbol("derivedClass"),Symbol("dead")),h=Symbol("borrowed"),u=Symbol("parent"),l=Symbol("epoch"),d=Symbol("parentEpoch"),g=Symbol("retained");class w extends Error{constructor(e,t){super(`${e} failed with native status ${t}`),this.operation=e,this.status=t,this.name="NativeStatusError"}}function y(e){for(let t=e;null!=t;t=t[u]){if(!0===t[_])throw new Error(t===e?"Native object has been disposed or consumed":"Borrowed view outlived the object it was borrowed from");const r=t[u];if(null!=r&&(0|r[l])!==t[d])throw new Error("Borrowed view was invalidated by a mutation of the object it was borrowed from");const n=t[g];null!=n&&f(n)}return e[c]}function f(e){for(const[t,r]of e){try{y(t)}catch(e){throw new Error("Native object depends on an object that was disposed or is no longer valid: "+e.message)}if((0|t[l])!==r)throw new Error("Native object depends on an object that was mutated after it was retained")}}function p(e,t){if(y(e),t&&null==e[u])throw new Error("External async handle has no owning parent");const r=[];for(let t=e;null!=t;t=t[u]){if(r.includes(t))throw new Error("Cyclic native ownership");r.push(t)}return r}function m(e){if(o.assertIdle(e),y(e),!0===e[h])throw new Error("Cannot mutate a borrowed const view: only the owner may modify it");e[l]=1+(0|e[l])}t.NativeStatusError=w;const b={bitcoin:0,bitcoin_cash:1,litecoin:2},v=["bitcoin","bitcoin_cash","litecoin"];function k(e){const t=v[e];if(void 0===t||!Object.prototype.hasOwnProperty.call(v,e))throw new RangeError("Native value "+String(e)+" is not a Currency");return t}class S{constructor(){throw new Error("LibConfigTypeSizes has no constructor: create it through its factories")}static _create(e){const t=Object.create(this.prototype);return t[c]=e,t}get size_int(){return _kth_wasm_LibConfigTypeSizes_get_size_int(y(this))}get size_long(){return _kth_wasm_LibConfigTypeSizes_get_size_long(y(this))}get size_pointer(){return _kth_wasm_LibConfigTypeSizes_get_size_pointer(y(this))}_destructor(){if(!0!==this[_]){if(!0===this[h])throw new Error("Cannot destroy a borrowed view: its parent object owns the native handle");o.assertIdle(this),(0,n.clearStack)(),_kth_wasm_LibConfigTypeSizes_destructor(this[c]),this[_]=!0}}}t.LibConfigTypeSizes=S;class E{constructor(){throw new Error("LibConfig has no constructor: create it through its factories")}static _create(e){const t=Object.create(this.prototype);return t[c]=e,t}get version(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_version(y(this))>>>0)}get microarchitecture_id(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_microarchitecture_id(y(this))>>>0)}get currency(){return k(_kth_wasm_LibConfig_get_currency(y(this)))}get mempool(){return!!_kth_wasm_LibConfig_get_mempool(y(this))}get db_readonly(){return!!_kth_wasm_LibConfig_get_db_readonly(y(this))}get debug_mode(){return!!_kth_wasm_LibConfig_get_debug_mode(y(this))}get architecture(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_architecture(y(this))>>>0)}get os_name(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_os_name(y(this))>>>0)}get compiler_name(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_compiler_name(y(this))>>>0)}get compiler_version(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_compiler_version(y(this))>>>0)}get optimization_level(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_optimization_level(y(this))>>>0)}get build_timestamp(){return _kth_wasm_LibConfig_get_build_timestamp(y(this))>>>0}get build_git_hash(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_build_git_hash(y(this))>>>0)}get endianness(){return(0,i.UTF8ToString)(_kth_wasm_LibConfig_get_endianness(y(this))>>>0)}get type_sizes(){return S._create(_kth_wasm_LibConfig_get_type_sizes(y(this))>>>0)}_destructor(){if(!0!==this[_]){if(!0===this[h])throw new Error("Cannot destroy a borrowed view: its parent object owns the native handle");o.assertIdle(this),(0,n.clearStack)(),_kth_wasm_LibConfig_destructor(this[c]),this[_]=!0}}static getLibconfig(){return(0,n.clearStack)(),E._create(_kth_wasm_LibConfig_getLibconfig()>>>0)}static getEmscriptenVersionMajor(){return(0,n.clearStack)(),_kth_wasm_LibConfig_getEmscriptenVersionMajor()>>>0}static getEmscriptenVersionMinor(){return(0,n.clearStack)(),_kth_wasm_LibConfig_getEmscriptenVersionMinor()>>>0}static getEmscriptenVersionTiny(){return(0,n.clearStack)(),_kth_wasm_LibConfig_getEmscriptenVersionTiny()>>>0}static getBuildTimestamp(){return(0,n.clearStack)(),_kth_wasm_LibConfig_getBuildTimestamp()>>>0}}t.LibConfig=E;const N={mainnet:0,testnet:1,regtest:2,testnet4:3,scalenet:4,chipnet:5,tempnet:6},C=["mainnet","testnet","regtest","testnet4","scalenet","chipnet","tempnet"];function T(e){if("string"!=typeof e||!Object.prototype.hasOwnProperty.call(N,e))throw new RangeError("Invalid Network: "+String(e));return N[e]}t.HeaderSyncNative=class{static _create(e){const t=Object.create(this.prototype);return t[c]=e,t}_destructor(){if(!0===this[_])return;if(!0===this[h])throw new Error("Cannot destroy a borrowed view: its parent object owns the native handle");o.assertIdle(this),(0,n.clearStack)();const e=_kth_wasm_HeaderSyncNative_destructor(this[c]);if(0!==e)throw new w("HeaderSyncNative.destructor",e);this[_]=!0}constructor(e,t,r){(0,n.clearStack)(),(0,n.checkCString)(e,"bridge_url"),T(t),(0,a.checkInt)(r,"capacity",0,4294967295);let i=0,s=0,o=0;try{i=(0,a.allocZeroedSlot)(),s=_kth_wasm_HeaderSyncNative_constructor((0,n.allocateUTF8String)(e),T(t),r,i)>>>0,o=(0,a.readUint32)(i)}finally{0!==i&&Module._free(i)}if(0!==o)throw new w("HeaderSyncNative.constructor",o);if(0===s)throw new Error("HeaderSyncNative.constructor: native call reported success without a result");this[c]=s}async asyncRequestStop(){const e=y(this),t=p(this,!1);return o.invokeWithOwners(t,(t,r)=>{const n=_kth_wasm_HeaderSyncNative_asyncRequestStop;if("function"!=typeof n)throw new Error("Missing native async export");r(),n(e,t)})}async asyncRequestRefresh(){const e=y(this),t=p(this,!1);return o.invokeWithOwners(t,(t,r)=>{const n=_kth_wasm_HeaderSyncNative_asyncRequestRefresh;if("function"!=typeof n)throw new Error("Missing native async export");r(),n(e,t)})}lastHeight(){return(0,n.clearStack)(),BigInt.asUintN(64,_kth_wasm_HeaderSyncNative_lastHeight(y(this)))}running(){return(0,n.clearStack)(),!!_kth_wasm_HeaderSyncNative_running(y(this))}idle(){return(0,n.clearStack)(),!!_kth_wasm_HeaderSyncNative_idle(y(this))}status(){return(0,n.clearStack)(),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_status(y(this))>>>0,_kth_wasm_release_string_kth_core_destruct_string)}indexMemoryBytes(){return(0,n.clearStack)(),_kth_wasm_HeaderSyncNative_indexMemoryBytes(y(this))>>>0}async asyncRun(){const e=y(this),t=p(this,!1);return m(this),o.invokeWithOwners(t,(t,r)=>{const n=_kth_wasm_HeaderSyncNative_asyncRun;if("function"!=typeof n)throw new Error("Missing native async export");r(),n(e,t)})}async asyncFollow(){const e=y(this),t=p(this,!1);return m(this),o.invokeWithOwners(t,(t,r)=>{const n=_kth_wasm_HeaderSyncNative_asyncFollow;if("function"!=typeof n)throw new Error("Missing native async export");r(),n(e,t)})}reset(){return m(this),(0,n.clearStack)(),_kth_wasm_HeaderSyncNative_reset(y(this))>>>0}headerHex(e){return(0,n.clearStack)(),(0,a.checkU64)(e,"height"),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_headerHex(y(this),e)>>>0,_kth_wasm_release_string_kth_core_destruct_string)}headerHash(e){return(0,n.clearStack)(),(0,a.checkU64)(e,"height"),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_headerHash(y(this),e)>>>0,_kth_wasm_release_string_kth_core_destruct_string)}chainStateSnapshot(){return(0,n.clearStack)(),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_chainStateSnapshot(y(this))>>>0,_kth_wasm_release_string_kth_core_destruct_string)}runtimeSettings(){return(0,n.clearStack)(),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_runtimeSettings(y(this))>>>0,_kth_wasm_release_string_kth_core_destruct_string)}configureContent(e,t){return m(this),(0,n.clearStack)(),!!_kth_wasm_HeaderSyncNative_configureContent(y(this),e,t)}blockMetadata(e,t){return(0,n.clearStack)(),(0,a.checkU64)(e,"height"),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_blockMetadata(y(this),e,t)>>>0,_kth_wasm_release_string_kth_core_destruct_string)}contentState(){return(0,n.clearStack)(),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_contentState(y(this))>>>0,_kth_wasm_release_string_kth_core_destruct_string)}observedTransactions(){return(0,n.clearStack)(),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_observedTransactions(y(this))>>>0,_kth_wasm_release_string_kth_core_destruct_string)}addPeer(e){return m(this),(0,n.clearStack)(),(0,n.checkCString)(e,"url"),!!_kth_wasm_HeaderSyncNative_addPeer(y(this),(0,n.allocateUTF8String)(e))}configureDiscovery(e,t,r){return m(this),(0,n.clearStack)(),!!_kth_wasm_HeaderSyncNative_configureDiscovery(y(this),e,t,r)}configureLegacyDiscovery(e){return m(this),(0,n.clearStack)(),!!_kth_wasm_HeaderSyncNative_configureLegacyDiscovery(y(this),e)}peerCount(){return(0,n.clearStack)(),_kth_wasm_HeaderSyncNative_peerCount(y(this))>>>0}peerEndpoint(e){return(0,n.clearStack)(),(0,a.checkInt)(e,"at",0,4294967295),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_peerEndpoint(y(this),e)>>>0,_kth_wasm_release_string_kth_core_destruct_string)}peerSource(e){return(0,n.clearStack)(),(0,a.checkInt)(e,"at",0,4294967295),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_peerSource(y(this),e)>>>0,_kth_wasm_release_string_kth_core_destruct_string)}peerState(e){return(0,n.clearStack)(),(0,a.checkInt)(e,"at",0,4294967295),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_peerState(y(this),e)>>>0,_kth_wasm_release_string_kth_core_destruct_string)}peerAgent(e){return(0,n.clearStack)(),(0,a.checkInt)(e,"at",0,4294967295),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_peerAgent(y(this),e)>>>0,_kth_wasm_release_string_kth_core_destruct_string)}peerError(e){return(0,n.clearStack)(),(0,a.checkInt)(e,"at",0,4294967295),(0,i.takeUTF8String)(_kth_wasm_HeaderSyncNative_peerError(y(this),e)>>>0,_kth_wasm_release_string_kth_core_destruct_string)}peerHeight(e){return(0,n.clearStack)(),(0,a.checkInt)(e,"at",0,4294967295),BigInt.asUintN(64,_kth_wasm_HeaderSyncNative_peerHeight(y(this),e))}peerAnnouncements(e){return(0,n.clearStack)(),(0,a.checkInt)(e,"at",0,4294967295),BigInt.asUintN(64,_kth_wasm_HeaderSyncNative_peerAnnouncements(y(this),e))}peerConnected(e){return(0,n.clearStack)(),(0,a.checkInt)(e,"at",0,4294967295),!!_kth_wasm_HeaderSyncNative_peerConnected(y(this),e)}};const U={no_rules:0,easy_blocks:1,bip16_rule:2,bip30_rule:3,bip34_rule:4,bip66_rule:5,bip65_rule:6,bip90_rule:7,allow_collisions:8,bip68_rule:9,bip112_rule:10,bip113_rule:11,bch_uahf:12,bch_daa_cw144:13,bch_pythagoras:14,bch_euclid:15,bch_pisano:16,bch_mersenne:17,bch_fermat:18,bch_euler:19,bch_gauss:20,bch_descartes:21,bch_lobachevski:22,bch_galois:23,bch_leibniz:24,retarget:25,unverified:26,bip34_activations:27,bip9_bit0_group:28,bip9_bit1_group:29,all_rules:30},H=["no_rules","easy_blocks","bip16_rule","bip30_rule","bip34_rule","bip66_rule","bip65_rule","bip90_rule","allow_collisions","bip68_rule","bip112_rule","bip113_rule","bch_uahf","bch_daa_cw144","bch_pythagoras","bch_euclid","bch_pisano","bch_mersenne","bch_fermat","bch_euler","bch_gauss","bch_descartes","bch_lobachevski","bch_galois","bch_leibniz","retarget","unverified","bip34_activations","bip9_bit0_group","bip9_bit1_group","all_rules"]},906:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkInt=function(e,t,r,n){if("number"!=typeof e||!Number.isInteger(e)||e<r||e>n)throw new RangeError(t+" must be an integer between "+r+" and "+n)},t.checkBytes=a,t.checkFixedBytes=function(e,t,r){if(a(e,t),e.length!==r)throw new RangeError(`${t} must be exactly ${r} bytes (got ${e.length})`)},t.readBytes=function(e,t){return new Uint8Array(s(e,t))},t.allocBytesBuffer=function(e){const t=Module._malloc(Math.max(e,1))>>>0;if(0===t)throw new Error("Out of memory");return t},t.checkU64=function(e,t){if("bigint"!=typeof e||BigInt.asUintN(64,e)!==e)throw new RangeError(`${t} must be a bigint in the unsigned 64-bit range`)},t.checkI64=function(e,t){if("bigint"!=typeof e||BigInt.asIntN(64,e)!==e)throw new RangeError(`${t} must be a bigint in the signed 64-bit range`)},t.malloc=function(e,t){const i=t*e.BYTES_PER_ELEMENT,s=Module._malloc(i)>>>0,a=function(e,t,r){if(e===Int8Array)return new Int8Array(n(),t,r);if(e===Uint8Array)return new Uint8Array(n(),t,r);if(e===Uint8ClampedArray)return new Uint8ClampedArray(n(),t,r);if(e===Int16Array)return new Int16Array(n(),t,r);if(e===Uint16Array)return new Uint16Array(n(),t,r);if(e===Int32Array)return new Int32Array(n(),t,r);if(e===Uint32Array)return new Uint32Array(n(),t,r);if(e===Float32Array)return new Float32Array(n(),t,r);if(e===Float64Array)return new Float64Array(n(),t,r);throw new Error(`Unsupported array class: ${e.name}`)}(e,s,t);return a[r]=!0,a.ptr=s,a},t.free=function(e){if(null==e)throw new Error("free() called with null or undefined");"number"==typeof e?Module._free(e):!0===e[r]?Module._free(e.ptr):e._destructor()},t.buffer=n,t.copyAndFreeByteArray=function(e,t){if(0===e){if(0===t)return new Uint8Array;throw new Error("Failed to retrieve data")}try{return new Uint8Array(s(e,t))}finally{Module._free(e)}},t.readUint32=i,t.setUint8Array=function(e,t){HEAPU8.set(e,t>>>0)},t.subarray=s,t.allocZeroedSlot=function(){const e=Module._malloc(4)>>>0;if(0===e)throw new Error("Out of memory");return HEAPU8.fill(0,e,e+4),e},t.takeByteArray=function(e,t,r){try{const r=i(t);if(0===e){if(0===r)return new Uint8Array;throw new Error("Failed to retrieve data")}return new Uint8Array(s(e,r))}finally{Module._free(t),0!==e&&null!=r&&r(e)}};const r=Symbol("custom_malloc_sym");function n(){return HEAPU8.buffer}function i(e){return new DataView(HEAPU8.buffer).getUint32(e,!0)}function s(e,t){return HEAPU8.subarray(e>>>0,e+t>>>0)}function a(e,t){if(!e)throw new Error(`${t} is null`);if(!(e instanceof Uint8Array))throw new TypeError(`${t} must be a Uint8Array`)}},447:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clearStack=function(){i.reset()},t.checkCString=s,t.allocateUTF8String=function(e){s(e);const t=3*e.length+10,r=i.alloc(t);return(0,n.StringToUTF8)(e,r,t),r};const n=r(130),i={reset(){this._usedBytes=0,this._toFree.forEach(e=>Module._free(e)),this._toFree.length=0},alloc(e){if(e>5120){const t=Module._malloc(e)>>>0;if(0===t)throw new Error("Out of memory");return this._toFree.push(t),t}if(this._usedBytes+e>this._size){const t=this._usedBytes+e+10240,r=Module._malloc(t)>>>0;if(0===r)throw new Error("Out of memory");0!==this._ptr&&this._toFree.push(this._ptr),this._ptr=r,this._usedBytes=0,this._size=t}const t=this._ptr+this._usedBytes;return this._usedBytes+=e,t},_ptr:0,_usedBytes:0,_size:0,_toFree:new Array};function s(e,t="string"){if("string"!=typeof e)throw new TypeError(`${t} must be a string`);if(e.includes("\0"))throw new RangeError(`${t} contains a NUL character`)}},130:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UTF8ToString=s,t.consumeUTF8String=function(e,t){try{return s(e,t)}finally{0!==e&&Module._free(e)}},t.takeUTF8String=function(e,t){try{return s(e)}finally{0!==e&&t(e)}},t.StringToUTF8=function(e,t,r){const i=HEAPU8;if(e.length<100)return stringToUTF8Array(e,i,t,r);{let{written:s}=n.encodeInto(e,i.subarray(t,t+r));return s??(s=0),i[t+Math.min(s,r-1)]=0,s}};const r=new TextDecoder("utf8"),n=new TextEncoder,i=new Array(128).fill("").map((e,t)=>String.fromCodePoint(t));function s(e,t){return 0===e?"":(null==t&&(t=Module._strlen(e)),0===t?"":t>30?r.decode(HEAPU8.subarray(e>>>0,e+t>>>0)):function(e,t){const r=HEAPU8,n=e+t;let s,a,o,c="";for(;e<n;)s=r[e++],s<=127?c+=i[s]:(a=r[e++],o=s<=223?(31&s)<<6|63&a:s<=239?(15&s)<<12|(63&a)<<6|63&r[e++]:(7&s)<<18|(63&a)<<12|(63&r[e++])<<6|63&r[e++],c+=String.fromCodePoint(o));return c}(e,t))}}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}(()=>{const e=r(571);Module.HeaderSync=e.HeaderSync;const t=r(638),n=r(906);Module.getLibconfig=()=>{const e=t.LibConfig.getLibconfig();try{const r=e.type_sizes;return{version:e.version,microarchitecture_id:e.microarchitecture_id,currency:e.currency,mempool:e.mempool,db_readonly:e.db_readonly,debug_mode:e.debug_mode,architecture:e.architecture,os_name:e.os_name,compiler_name:e.compiler_name,compiler_version:e.compiler_version,optimization_level:e.optimization_level,build_timestamp:e.build_timestamp,build_git_hash:e.build_git_hash,endianness:e.endianness,type_sizes:{size_int:r.size_int,size_long:r.size_long,size_pointer:r.size_pointer},emscripten_version:`${t.LibConfig.getEmscriptenVersionMajor()}.${t.LibConfig.getEmscriptenVersionMinor()}.${t.LibConfig.getEmscriptenVersionTiny()}`,wasm_build_timestamp:t.LibConfig.getBuildTimestamp()}}finally{(0,n.free)(e)}}})()})();var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName;if(true)_scriptName=self.location.href;var scriptDirectory="";function locateFile(path){if(Module["locateFile"])return Module["locateFile"](path,scriptDirectory);return scriptDirectory+path}var readAsync,readBinary;if(false,true){try{scriptDirectory=new URL(".",_scriptName).href}catch{}if(true)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=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok)return response.arrayBuffer();throw new Error(response.status+" : "+response.url)}}var out=console.log.bind(console);var err=console.error.bind(console);var ABORT=false;var EXITSTATUS;var runtimeInitialized=false;function getMemoryBuffer(){return wasmMemory.buffer}function updateMemoryViews(){if(HEAP8?.buffer?.resizable)return;var b=getMemoryBuffer();HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b)}function preRun(){var preRun=Module["preRun"];if(preRun){if(typeof preRun==="function")preRun=[preRun];onPreRuns.push(...preRun)}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();PIPEFS.root=FS.mount(PIPEFS,{},null);SOCKFS.root=FS.mount(SOCKFS,{},null);wasmExports["M"]();FS.ignorePermissions=false}function postRun(){var postRun=Module["postRun"];if(postRun){if(typeof postRun==="function")postRun=[postRun];onPostRuns.push(...postRun)}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized)___trap();throw new WebAssembly.RuntimeError(what)}var wasmBinaryFile;function findWasmBinary(){return locateFile("browser_headers_persistent_v1.wasm")}function getBinarySync(file){if(readBinary)return readBinary(file);throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(true)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)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(){var imports={a:wasmImports};return imports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0)callbacks.shift()(Module)};var onPostRuns=[];var onPreRuns=[];var noExitRuntime=true;var HEAP32;var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.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=()=>view=>(crypto.getRandomValues(view),0);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(i=samePartsLength;i<fromParts.length;i++)outputParts.push("..");outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{idx>>>=0;var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder)return UTF8Decoder.decode(heapOrArray.subarray(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 FS_stdin_getChar_buffer=[];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 stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63;i++}}heap[outIdx>>>0]=0;return outIdx-startIdx};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){if(true)return null;FS_stdin_getChar_buffer=intArrayFromString(null,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===void 0&&!bytesRead)throw new FS.ErrnoError(6);if(result===null||result===void 0)break;bytesRead++;buffer[offset+i]=result;if(result===10)break}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 mmapAlloc=()=>{abort()};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=MEMFS.emptyFileContents??=new Uint8Array(0)}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){return node.contents.subarray(0,node.usedBytes)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents.length;if(prevCapacity>=newCapacity)return;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<1048576?2:1.125)>>>0);if(prevCapacity)newCapacity=Math.max(newCapacity,256);var oldContents=MEMFS.getFileDataAsTypedArray(node);node.contents=new Uint8Array(newCapacity);node.contents.set(oldContents)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;var oldContents=node.contents;node.contents=new Uint8Array(newSize);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!==void 0)MEMFS.resizeFileStorage(node,attr.size)},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="<generic error, no stack>"}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&&FS.isDir(old_node.mode))for(var i in new_node.contents)throw new FS.ErrnoError(55);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,41471,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);buffer.set(contents.subarray(position,position+size),offset);return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer)canOwn=false;if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length}else if(!node.usedBytes&&!position){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length}else{MEMFS.expandFileStorage(node,position+length);node.contents.set(buffer.subarray(offset,offset+length),position);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.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc();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);HEAP8.set(contents,ptr>>>0)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_modeStringToFlags=str=>{if(typeof str!=="string")return str;var flags={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[str];if(typeof flags==="undefined")throw new Error(`Unknown file open mode: ${str}`);return flags};var FS_fileDataToTypedArray=data=>{if(typeof data==="string")data=intArrayFromString(data,true);if(!data.subarray)data=new Uint8Array(data);return data};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=365;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>indexedDB,DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",queuePersist:mount=>{function onPersistComplete(){if(mount.idbPersistState==="again")startPersist();else{mount.idbPersistState=0;IDBFS.onAutoPersistStateChanged?.(false)}}function startPersist(){mount.idbPersistState="idb";IDBFS.onAutoPersistStateChanged?.(true);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){mount.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)};IDBFS.queuePersist(mnt.mount);return node};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:()=>{for(var value of Object.values(IDBFS.dbs))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.lstat(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.lstat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode))return callback(null,{timestamp:stat.mtime,mode:stat.mode});else if(FS.isLink(stat.mode))return callback(null,{timestamp:stat.mtime,mode:stat.mode,link:node.link});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.isLink(entry["mode"]))FS.symlink(entry["link"],path);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.lstat(path);if(FS.isDir(stat.mode))FS.rmdir(path);else 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=()=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=()=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];for(var[key,e]of Object.entries(src.entries)){var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}}var remove=[];for(var key of Object.keys(dst.entries))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=()=>{if(!errored)callback(null)};for(const path of create.sort())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)});for(var path of remove.sort().reverse())if(dst.type==="local")IDBFS.removeLocalEntry(path,done);else IDBFS.removeRemoteEntry(store,path,done)}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var dependenciesPromise=null;var resolveRunDependencies=async()=>dependenciesPromise;var runDependencies=0;var dependenciesPromiseResolve=null;var removeRunDependency=()=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(!runDependencies)dependenciesPromiseResolve()};var addRunDependency=()=>{if(!runDependencies)dependenciesPromise=new Promise(resolve=>dependenciesPromiseResolve=resolve);runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=="undefined")Browser.init();for(var plugin of preloadPlugins)if(plugin["canHandle"](fullname))return plugin["handle"](byteArray,fullname);return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;getUniqueRunDependency(`cp ${fullname}`);addRunDependency();try{var byteArray=url;if(typeof url==="string")byteArray=await asyncLoad(url);byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile)FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}finally{removeRunDependency()}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:[],currentPath:"/",initialized:false,ignorePermissions:true,syncFSRequests:0,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=365;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)}addListener(cb,exclusive=false){var entry={cb,exclusive};var listeners=this.listeners??=new Set;listeners.add(entry);return{listeners,entry}}notifyListeners(flags){if(!this.listeners)return;var excl;for(var entry of this.listeners)if(entry.exclusive)(excl||=[]).push(entry);else entry.cb(flags);if(excl){var i=(this.exclTurn||0)%excl.length;this.exclTurn=i+1;excl[i].cb(flags)}}},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("/");nlinks--;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;if(perms.includes("w")&&!(node.mode&146))return 2;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{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;var mode=FS.flagsToPermissionString(flags);if(FS.isDir(node.mode))if(mode!=="r"||flags&576)return 31;return FS.nodePermissions(node,mode)},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);try{setattr(arg,attr)}catch(e){if(e instanceof RangeError)throw new FS.ErrnoError(22);throw e}},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)}for(var mount of mounts)if(mount.type.syncfs)mount.type.syncfs(mount,populate,done);else done(null)},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);for(var[hash,current]of Object.entries(FS.nameTable))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&=1023;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode=511){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)},link(oldpath,newpath,flags){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.link)throw new FS.ErrnoError(34);return parent.node_ops.link(parent,newname,oldpath,flags)},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);if(new_node)FS.hashRemoveNode(new_node);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=false){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=false){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&-4096,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow=false){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=false){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow=false){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,dontFollow=false){var lookup=FS.lookupPath(path,{follow:!dontFollow});FS.doSetAttr(null,lookup.node,{atime,mtime,dontFollow})},open(path,flags,mode=438){if(path==="")throw new FS.ErrnoError(44);flags=FS_modeStringToFlags(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&=-513;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&=-131713;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);return stream},close(stream){if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(stream.getdents)stream.getdents=null;stream.node?.notifyListeners(32);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&&!(flags&2)&&(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??=0;opts.encoding??="binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary")abort(`Invalid encoding type "${opts.encoding}"`);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")buf=UTF8ArrayToString(buf);FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags??=577;var stream=FS.open(path,opts.flags,opts.mode);data=FS_fileDataToTypedArray(data);FS.write(stream,data,0,data.byteLength,void 0,opts.canOwn);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)=>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){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");FS.open("/dev/stdin",0);FS.open("/dev/stdout",1);FS.open("/dev/stderr",1)},staticInit(){FS.nameTable.length=4096;FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories()},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)},analyzePath(path,dontResolveLastLink=false){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{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){data=FS_fileDataToTypedArray(data);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===void 0&&!bytesRead)throw new FS.ErrnoError(6);if(result===null||result===void 0)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(globalThis.XMLHttpRequest)abort("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)}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;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))abort(`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=1048576;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort(`invalid range (${from}, ${to}) or no bytes requested!`);if(to>datalength-1)abort(`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))abort(`Couldn't load ${url}. Status: ${xhr.status}`);if(xhr.response!==void 0)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")abort("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(globalThis.XMLHttpRequest){if(false)abort("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 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={};for(const[key,fn]of Object.entries(node.stream_ops))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(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)=>{FS.forceLoadFile(node);var ptr=mmapAlloc();if(!ptr)throw new FS.ErrnoError(48);writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var HEAPU8;var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):""};var HEAPU32;var HEAP64;var SYSCALLS={currentUmask:18,calculateAt(dirfd,path,allowEmpty=false){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){HEAPU32[buf>>>2>>>0]=stat.dev;HEAPU32[buf+4>>>2>>>0]=stat.mode;HEAPU32[buf+8>>>2>>>0]=stat.nlink;HEAPU32[buf+12>>>2>>>0]=stat.uid;HEAPU32[buf+16>>>2>>>0]=stat.gid;HEAPU32[buf+20>>>2>>>0]=stat.rdev;HEAP64[buf+24>>>3>>>0]=BigInt(stat.size);HEAP32[buf+32>>>2>>>0]=4096;HEAP32[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>>3>>>0]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>>2>>>0]=atime%1e3*1e3*1e3;HEAP64[buf+56>>>3>>>0]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>>2>>>0]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>>3>>>0]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>>2>>>0]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>>3>>>0]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>>2>>>0]=stats.bsize;HEAPU32[buf+60>>>2>>>0]=stats.bsize;HEAP64[buf+8>>>3>>>0]=BigInt(stats.blocks);HEAP64[buf+16>>>3>>>0]=BigInt(stats.bfree);HEAP64[buf+24>>>3>>>0]=BigInt(stats.bavail);HEAP64[buf+32>>>3>>>0]=BigInt(stats.files);HEAP64[buf+40>>>3>>>0]=BigInt(stats.ffree);HEAPU32[buf+48>>>2>>>0]=stats.fsid;HEAPU32[buf+64>>>2>>>0]=stats.flags;HEAPU32[buf+56>>>2>>>0]=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=HEAPU8.subarray(addr>>>0,addr+len>>>0);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:void 0,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};var bigintToI53Checked=num=>num<-9007199254740992||num>9007199254740992?NaN:Number(num);var HEAP16;var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount(mount){return FS.createNode(null,"/",16895,0)},createPipe(){var pipe={buckets:[],writerCount:1,writeClosed:false,readerCount:1,readClosed:false,timestamp:new Date};pipe.buckets.push({buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var rName=PIPEFS.nextname();var wName=PIPEFS.nextname();var rNode=FS.createNode(PIPEFS.root,rName,4096,0);var wNode=FS.createNode(PIPEFS.root,wName,4096,0);rNode.pipe=pipe;wNode.pipe=pipe;pipe.readNode=rNode;pipe.writeNode=wNode;var readableStream=FS.createStream({path:rName,node:rNode,flags:0,seekable:false,stream_ops:PIPEFS.stream_ops});rNode.stream=readableStream;var writableStream=FS.createStream({path:wName,node:wNode,flags:1,seekable:false,stream_ops:PIPEFS.stream_ops});wNode.stream=writableStream;return{readable_fd:readableStream.fd,writable_fd:writableStream.fd}},stream_ops:{getattr(stream){var node=stream.node;var timestamp=node.pipe.timestamp;return{dev:14,ino:node.id,mode:4480,nlink:1,uid:0,gid:0,rdev:0,size:0,atime:timestamp,mtime:timestamp,ctime:timestamp,blksize:4096,blocks:0}},poll(stream){var pipe=stream.node.pipe;if((stream.flags&2097155)===1){var mask=260;if(pipe.readClosed)mask|=8;return mask}mask=0;for(var bucket of pipe.buckets)if(bucket.offset-bucket.roffset>0){mask=65;break}if(pipe.writeClosed)mask|=17;return mask},dup(stream){var pipe=stream.node.pipe;if((stream.flags&2097155)===1)pipe.writerCount++;else pipe.readerCount++},ioctl(stream,request,argp){if(request==21531){var pipe=stream.node.pipe;var currentLength=0;for(var bucket of pipe.buckets)currentLength+=bucket.offset-bucket.roffset;HEAP32[argp>>>2>>>0]=currentLength;return 0}return 28},fsync(stream){return 28},read(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var currentLength=0;for(var bucket of pipe.buckets)currentLength+=bucket.offset-bucket.roffset;var data=buffer.subarray(offset,offset+length);if(length<=0)return 0;if(currentLength==0)throw new FS.ErrnoError(6);var toRead=Math.min(currentLength,length);var totalRead=toRead;var toRemove=0;for(var bucket of pipe.buckets){var bucketSize=bucket.offset-bucket.roffset;if(toRead<=bucketSize){var tmpSlice=bucket.buffer.subarray(bucket.roffset,bucket.offset);if(toRead<bucketSize){tmpSlice=tmpSlice.subarray(0,toRead);bucket.roffset+=toRead}else toRemove++;data.set(tmpSlice);break}else{tmpSlice=bucket.buffer.subarray(bucket.roffset,bucket.offset);data.set(tmpSlice);data=data.subarray(tmpSlice.byteLength);toRead-=tmpSlice.byteLength;toRemove++}}if(toRemove&&toRemove==pipe.buckets.length){toRemove--;pipe.buckets[toRemove].offset=0;pipe.buckets[toRemove].roffset=0}pipe.buckets.splice(0,toRemove);return totalRead},write(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var data=buffer.subarray(offset,offset+length);var dataLen=data.byteLength;if(dataLen<=0)return 0;var currBucket=null;if(pipe.buckets.length==0){currBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0};pipe.buckets.push(currBucket)}else currBucket=pipe.buckets[pipe.buckets.length-1];var freeBytesInCurrBuffer=PIPEFS.BUCKET_BUFFER_SIZE-currBucket.offset;if(freeBytesInCurrBuffer>=dataLen){currBucket.buffer.set(data,currBucket.offset);currBucket.offset+=dataLen;pipe.readNode.notifyListeners(65);return dataLen}else if(freeBytesInCurrBuffer>0){currBucket.buffer.set(data.subarray(0,freeBytesInCurrBuffer),currBucket.offset);currBucket.offset+=freeBytesInCurrBuffer;data=data.subarray(freeBytesInCurrBuffer,data.byteLength)}var numBuckets=data.byteLength/PIPEFS.BUCKET_BUFFER_SIZE|0;var remElements=data.byteLength%PIPEFS.BUCKET_BUFFER_SIZE;for(var i=0;i<numBuckets;i++){var newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:PIPEFS.BUCKET_BUFFER_SIZE,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data.subarray(0,PIPEFS.BUCKET_BUFFER_SIZE));data=data.subarray(PIPEFS.BUCKET_BUFFER_SIZE,data.byteLength)}if(remElements>0){newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:data.byteLength,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data)}pipe.readNode.notifyListeners(65);return dataLen},close(stream){var pipe=stream.node.pipe;if((stream.flags&2097155)===1){if(! --pipe.writerCount){pipe.writeClosed=true;pipe.readNode.notifyListeners(81)}}else if(! --pipe.readerCount){pipe.readClosed=true;pipe.writeNode.notifyListeners(268)}if(!pipe.readerCount&&!pipe.writerCount)pipe.buckets=null}},nextname(){if(!PIPEFS.nextname.current)PIPEFS.nextname.current=0;return"pipe["+PIPEFS.nextname.current+++"]"}};var pollOne=(fd,events)=>{var stream=FS.getStream(fd);if(!stream)return 32;var flags=stream.stream_ops?.poll?.(stream)??5;return flags&(56|events)};var doPollSync=(fds,nfds)=>{var count=0;for(var i=0,pollfd=fds;i<nfds;i++,pollfd+=8){var revents=pollOne(HEAP32[pollfd>>>2>>>0],HEAP16[pollfd+4>>>1>>>0]);if(revents)count++;HEAP16[pollfd+6>>>1>>>0]=revents}return count};var SOCKFS={websocketArgs:{},callbacks:{},on(event,callback){SOCKFS.callbacks[event]=callback},emit(event,param){SOCKFS.callbacks[event]?.(param);var fd=event==="error"?param[0]:param;var flags={message:65,open:4,connection:65,close:17,error:8}[event];if(flags)FS.getStream(fd)?.node.notifyListeners(flags)},mount(mount){SOCKFS.websocketArgs=Module["websocket"]||{};(Module["websocket"]??={})["on"]=SOCKFS.on;return FS.createNode(null,"/",16895,0)},createSocket(family,type,protocol){if(family!=2)throw new FS.ErrnoError(5);type&=-526337;if(type!=1&&type!=2)throw new FS.ErrnoError(28);var streaming=type==1;if(streaming&&protocol&&protocol!=6)throw new FS.ErrnoError(66);var sock={family,type,protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode))return null;return stream.node.sock},stream_ops:{getattr(stream){var node=stream.node;return{dev:1,ino:node.id,mode:49663,nlink:1,uid:0,gid:0,rdev:0,size:0,atime:new Date(0),mtime:new Date(0),ctime:new Date(0),blksize:4096,blocks:0}},poll(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg)return 0;buffer.set(msg.buffer,offset);return msg.buffer.length},write(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname(){if(!SOCKFS.nextname.current)SOCKFS.nextname.current=0;return`socket[${SOCKFS.nextname.current++}]`},websocket_sock_ops:{createPeer(sock,addr,port){var ws;if(typeof addr==="object"){ws=addr;addr=null;port=null}if(ws)if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result)throw new Error("WebSocket URL must be in the format ws(s)://address:port");addr=result[1];port=parseInt(result[2],10)}else try{var url="ws://".replace("#","//");var subProtocols="binary";var opts=void 0;if(SOCKFS.websocketArgs["url"])url=SOCKFS.websocketArgs["url"];if(SOCKFS.websocketArgs["subprotocol"])subProtocols=SOCKFS.websocketArgs["subprotocol"];else if(SOCKFS.websocketArgs["subprotocol"]===null)subProtocols="null";if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=subProtocols}var WebSocketConstructor;WebSocketConstructor=WebSocket;ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}var peer={addr,port,socket:ws,msg_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!=="undefined")peer.msg_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]));return peer},getPeer(sock,addr,port){return sock.peers[addr+":"+port]},addPeer(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents(sock,peer){var first=true;function handleMessage(data){if(typeof data==="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{if(data.byteLength==0)return;data=new Uint8Array(data)}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data});SOCKFS.emit("message",sock.stream.fd)}peer.socket.onopen=function(){sock.connecting=false;SOCKFS.emit("open",sock.stream.fd);try{var queued=peer.msg_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.msg_send_queue.shift()}}catch(e){peer.socket.close()}};peer.socket.onclose=()=>SOCKFS.emit("close",sock.stream.fd);peer.socket.onmessage=event=>handleMessage(event.data);peer.socket.onerror=()=>{sock.error=14;SOCKFS.emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}},poll(sock){if(sock.type===1&&(sock.server||sock.listening)){if(sock.error)return 8;if(!sock.server)return 16;return sock.pending.length?65:0}var mask=0;if(sock.error)mask|=8;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED)mask|=65;if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN)mask|=4;if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED)if(sock.connecting)mask|=4;else mask|=8208;return mask},ioctl(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length)bytes=sock.recv_queue[0].data.length;HEAP32[arg>>>2>>>0]=bytes;return 0;case 21537:var on=HEAP32[arg>>>2>>>0];if(on)sock.stream.flags|=2048;else sock.stream.flags&=-2049;return 0;default:return 28}},close(sock){sock.listening=false;if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}for(var peer of Object.values(sock.peers)){try{peer.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer)}return 0},bind(sock,addr,port){if(typeof sock.saddr!=="undefined"||typeof sock.sport!=="undefined")throw new FS.ErrnoError(28);sock.saddr=addr;sock.sport=port;if(sock.type===2){if(sock.server){sock.server.close();sock.server=null}try{sock.sock_ops.listen(sock,0)}catch(e){if(!(e.name==="ErrnoError"))throw e;if(e.errno!==138)throw e}}},connect(sock,addr,port){if(sock.server)throw new FS.ErrnoError(138);if(typeof sock.daddr!=="undefined"&&typeof sock.dport!=="undefined"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest)if(dest.socket.readyState===dest.socket.CONNECTING)throw new FS.ErrnoError(7);else throw new FS.ErrnoError(30)}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;sock.connecting=true},listen(sock,backlog){if(true)throw new FS.ErrnoError(138)},accept(listensock){if(listensock.error){var err=listensock.error;listensock.error=null;throw new FS.ErrnoError(err)}if(!listensock.server||!listensock.pending.length)throw new FS.ErrnoError(28);var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock},getname(sock,peer){var addr,port;if(peer){if(sock.daddr===void 0||sock.dport===void 0)throw new FS.ErrnoError(53);addr=sock.daddr;port=sock.dport}else{addr=sock.saddr||0;port=sock.sport||0}return{addr,port}},sendmsg(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===void 0||port===void 0){addr=sock.daddr;port=sock.dport}if(addr===void 0||port===void 0)throw new FS.ErrnoError(17)}else{addr=sock.daddr;port=sock.dport}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1)if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED)throw new FS.ErrnoError(53);if(ArrayBuffer.isView(buffer)){offset+=buffer.byteOffset;buffer=buffer.buffer}var data=buffer.slice(offset,offset+length);if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(sock.type===2)if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED)dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);dest.msg_send_queue.push(data);return length}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(28)}},recvmsg(sock,length,flags){if(sock.type===1&&sock.server)throw new FS.ErrnoError(53);var peek=flags&2;var queued=sock.recv_queue[0];if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest)throw new FS.ErrnoError(53);if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED)return null;throw new FS.ErrnoError(6)}throw new FS.ErrnoError(6)}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(peek)return res;sock.recv_queue.shift();if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued)}return res}}};var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var _emscripten_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;var readEmAsmArgsArray=[];var HEAPF64;var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>>2>>>0]:ch==106?HEAP64[buf>>>3>>>0]:ch==105?HEAP32[buf>>>2>>>0]:HEAPF64[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind")return EXITSTATUS;quit_(0,e)};var keepRuntimeAlive=()=>noExitRuntime||0>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(0,new ExitStatus(code))};var _exit=status=>{EXITSTATUS=status;_proc_exit(status)};var maybeExit=()=>{if(!keepRuntimeAlive())try{_exit(EXITSTATUS)}catch(e){handleException(e)}};var callUserCallback=(func,...args)=>{if(ABORT)return;try{return func(...args)}catch(e){handleException(e)}finally{maybeExit()}};var safeSetTimeout=(func,timeout)=>{var id=safeSetTimeout.nextId++;safeSetTimeout.pending.set(id,setTimeout(()=>{safeSetTimeout.pending.delete(id);callUserCallback(func)},timeout));return id};var _emscripten_clear_timeout=id=>{var handle=safeSetTimeout.pending.get(id);if(!handle)return;safeSetTimeout.pending.delete(id);clearTimeout(handle)};var getHeapMax=()=>4294901760;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func)wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr);return func};var webSockets=new class{allocated=[void 0];freelist=[];get(id){return this.allocated[id]}has(id){return this.allocated[id]!==void 0}allocate(handle){var id=this.freelist.pop()??this.allocated.length;this.allocated[id]=handle;return id}free(id){this.allocated[id]=void 0;this.freelist.push(id)}};var WS={socketEvent:null,getSocket(socketId){if(!webSockets.has(socketId))return 0;return webSockets.get(socketId)},getSocketEvent(socketId){WS.socketEvent||=_malloc(520);HEAPU32[WS.socketEvent>>>2>>>0]=socketId;return WS.socketEvent}};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var ENV={};var getExecutableName=()=>thisProgram;var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"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]===void 0)delete env[x];else env[x]=ENV[x];var strings=[];for(var x in env)strings.push(`${x}=${env[x]}`);getEnvStrings.strings=strings}return getEnvStrings.strings};var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;try{var curr=FS.read(stream,HEAP8,ptr,len,offset)}catch(e){if(ret>0&&e instanceof FS.ErrnoError&&(e.errno==6||e.errno==6))break;throw e}if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=="undefined")offset+=curr}return ret};var doWritev=(stream,iov,iovcnt,offset)=>{if(iovcnt==1)return FS.write(stream,HEAP8,HEAPU32[iov>>>2>>>0],HEAPU32[iov+4>>>2>>>0],offset);var total=0;for(var i=0,p=iov;i<iovcnt;i++,p+=8)total+=HEAPU32[p+4>>>2>>>0];var view=new Uint8Array(total);var voff=0;for(i=0;i<iovcnt;i++,iov+=8){var ptr=HEAPU32[iov>>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];view.set(HEAPU8.subarray(ptr>>>0,ptr+len>>>0),voff);voff+=len}return FS.write(stream,view,0,total,offset)};FS.createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};FS.preloadFile=FS_preloadFile;FS.staticInit();safeSetTimeout.pending=new Map;safeSetTimeout.nextId=1;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["arguments"])Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var preInit=Module["preInit"];if(preInit){if(typeof preInit==="function")Module["preInit"]=preInit=[preInit];while(preInit.length>0)preInit.shift()()}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=(...args)=>FS.unlink(...args);Module["FS_createPath"]=(...args)=>FS.createPath(...args);Module["FS_createDevice"]=(...args)=>FS.createDevice(...args);Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=(...args)=>FS.createLazyFile(...args);Module["IDBFS"]=IDBFS;var ASM_CONSTS={228500:($0,$1,$2,$3)=>{Module.kthCompleteCallback($0>>>0,$1,BigInt($3>>>0)*4294967296n+BigInt($2>>>0))},228597:($0,$1,$2,$3)=>{Module.kthCompleteCallback($0>>>0,$1,BigInt($3>>>0)*4294967296n+BigInt($2>>>0))},228694:($0,$1,$2,$3)=>{Module.kthCompleteCallback($0>>>0,$1,BigInt($3>>>0)*4294967296n+BigInt($2>>>0))},228791:($0,$1,$2,$3)=>{Module.kthCompleteCallback($0>>>0,$1,BigInt($3>>>0)*4294967296n+BigInt($2>>>0))}};var _kth_wasm_LibConfigTypeSizes_get_size_int,_kth_wasm_LibConfigTypeSizes_get_size_long,_kth_wasm_LibConfigTypeSizes_get_size_pointer,_kth_wasm_LibConfigTypeSizes_destructor,_kth_wasm_LibConfig_get_version,_kth_wasm_LibConfig_get_microarchitecture_id,_kth_wasm_LibConfig_get_currency,_kth_wasm_LibConfig_get_mempool,_kth_wasm_LibConfig_get_db_readonly,_kth_wasm_LibConfig_get_debug_mode,_kth_wasm_LibConfig_get_architecture,_kth_wasm_LibConfig_get_os_name,_kth_wasm_LibConfig_get_compiler_name,_kth_wasm_LibConfig_get_compiler_version,_kth_wasm_LibConfig_get_optimization_level,_kth_wasm_LibConfig_get_build_timestamp,_kth_wasm_LibConfig_get_build_git_hash,_kth_wasm_LibConfig_get_endianness,_kth_wasm_LibConfig_get_type_sizes,_kth_wasm_LibConfig_destructor,_kth_wasm_LibConfig_getLibconfig,_kth_wasm_LibConfig_getEmscriptenVersionMajor,_kth_wasm_LibConfig_getEmscriptenVersionMinor,_kth_wasm_LibConfig_getEmscriptenVersionTiny,_kth_wasm_LibConfig_getBuildTimestamp,_kth_wasm_HeaderSyncNative_destructor,_kth_wasm_HeaderSyncNative_constructor,_kth_wasm_HeaderSyncNative_asyncRequestStop,_kth_wasm_HeaderSyncNative_asyncRequestRefresh,_kth_wasm_HeaderSyncNative_lastHeight,_kth_wasm_HeaderSyncNative_running,_kth_wasm_HeaderSyncNative_idle,_kth_wasm_HeaderSyncNative_status,_kth_wasm_HeaderSyncNative_indexMemoryBytes,_kth_wasm_HeaderSyncNative_asyncRun,_kth_wasm_HeaderSyncNative_asyncFollow,_kth_wasm_HeaderSyncNative_reset,_kth_wasm_HeaderSyncNative_headerHex,_kth_wasm_HeaderSyncNative_headerHash,_kth_wasm_HeaderSyncNative_chainStateSnapshot,_kth_wasm_HeaderSyncNative_runtimeSettings,_kth_wasm_HeaderSyncNative_configureContent,_kth_wasm_HeaderSyncNative_blockMetadata,_kth_wasm_HeaderSyncNative_contentState,_kth_wasm_HeaderSyncNative_observedTransactions,_kth_wasm_HeaderSyncNative_addPeer,_kth_wasm_HeaderSyncNative_configureDiscovery,_kth_wasm_HeaderSyncNative_configureLegacyDiscovery,_kth_wasm_HeaderSyncNative_peerCount,_kth_wasm_HeaderSyncNative_peerEndpoint,_kth_wasm_HeaderSyncNative_peerSource,_kth_wasm_HeaderSyncNative_peerState,_kth_wasm_HeaderSyncNative_peerAgent,_kth_wasm_HeaderSyncNative_peerError,_kth_wasm_HeaderSyncNative_peerHeight,_kth_wasm_HeaderSyncNative_peerAnnouncements,_kth_wasm_HeaderSyncNative_peerConnected,_kth_wasm_release_string_kth_core_destruct_string,_free,_malloc,___trap,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_kth_wasm_LibConfigTypeSizes_get_size_int=Module["_kth_wasm_LibConfigTypeSizes_get_size_int"]=wasmExports["N"];_kth_wasm_LibConfigTypeSizes_get_size_long=Module["_kth_wasm_LibConfigTypeSizes_get_size_long"]=wasmExports["O"];_kth_wasm_LibConfigTypeSizes_get_size_pointer=Module["_kth_wasm_LibConfigTypeSizes_get_size_pointer"]=wasmExports["P"];_kth_wasm_LibConfigTypeSizes_destructor=Module["_kth_wasm_LibConfigTypeSizes_destructor"]=wasmExports["Q"];_kth_wasm_LibConfig_get_version=Module["_kth_wasm_LibConfig_get_version"]=wasmExports["R"];_kth_wasm_LibConfig_get_microarchitecture_id=Module["_kth_wasm_LibConfig_get_microarchitecture_id"]=wasmExports["S"];_kth_wasm_LibConfig_get_currency=Module["_kth_wasm_LibConfig_get_currency"]=wasmExports["T"];_kth_wasm_LibConfig_get_mempool=Module["_kth_wasm_LibConfig_get_mempool"]=wasmExports["U"];_kth_wasm_LibConfig_get_db_readonly=Module["_kth_wasm_LibConfig_get_db_readonly"]=wasmExports["V"];_kth_wasm_LibConfig_get_debug_mode=Module["_kth_wasm_LibConfig_get_debug_mode"]=wasmExports["W"];_kth_wasm_LibConfig_get_architecture=Module["_kth_wasm_LibConfig_get_architecture"]=wasmExports["X"];_kth_wasm_LibConfig_get_os_name=Module["_kth_wasm_LibConfig_get_os_name"]=wasmExports["Y"];_kth_wasm_LibConfig_get_compiler_name=Module["_kth_wasm_LibConfig_get_compiler_name"]=wasmExports["Z"];_kth_wasm_LibConfig_get_compiler_version=Module["_kth_wasm_LibConfig_get_compiler_version"]=wasmExports["_"];_kth_wasm_LibConfig_get_optimization_level=Module["_kth_wasm_LibConfig_get_optimization_level"]=wasmExports["$"];_kth_wasm_LibConfig_get_build_timestamp=Module["_kth_wasm_LibConfig_get_build_timestamp"]=wasmExports["aa"];_kth_wasm_LibConfig_get_build_git_hash=Module["_kth_wasm_LibConfig_get_build_git_hash"]=wasmExports["ba"];_kth_wasm_LibConfig_get_endianness=Module["_kth_wasm_LibConfig_get_endianness"]=wasmExports["ca"];_kth_wasm_LibConfig_get_type_sizes=Module["_kth_wasm_LibConfig_get_type_sizes"]=wasmExports["da"];_kth_wasm_LibConfig_destructor=Module["_kth_wasm_LibConfig_destructor"]=wasmExports["ea"];_kth_wasm_LibConfig_getLibconfig=Module["_kth_wasm_LibConfig_getLibconfig"]=wasmExports["fa"];_kth_wasm_LibConfig_getEmscriptenVersionMajor=Module["_kth_wasm_LibConfig_getEmscriptenVersionMajor"]=wasmExports["ga"];_kth_wasm_LibConfig_getEmscriptenVersionMinor=Module["_kth_wasm_LibConfig_getEmscriptenVersionMinor"]=wasmExports["ha"];_kth_wasm_LibConfig_getEmscriptenVersionTiny=Module["_kth_wasm_LibConfig_getEmscriptenVersionTiny"]=wasmExports["ia"];_kth_wasm_LibConfig_getBuildTimestamp=Module["_kth_wasm_LibConfig_getBuildTimestamp"]=wasmExports["ja"];_kth_wasm_HeaderSyncNative_destructor=Module["_kth_wasm_HeaderSyncNative_destructor"]=wasmExports["ka"];_kth_wasm_HeaderSyncNative_constructor=Module["_kth_wasm_HeaderSyncNative_constructor"]=wasmExports["la"];_kth_wasm_HeaderSyncNative_asyncRequestStop=Module["_kth_wasm_HeaderSyncNative_asyncRequestStop"]=wasmExports["ma"];_kth_wasm_HeaderSyncNative_asyncRequestRefresh=Module["_kth_wasm_HeaderSyncNative_asyncRequestRefresh"]=wasmExports["na"];_kth_wasm_HeaderSyncNative_lastHeight=Module["_kth_wasm_HeaderSyncNative_lastHeight"]=wasmExports["oa"];_kth_wasm_HeaderSyncNative_running=Module["_kth_wasm_HeaderSyncNative_running"]=wasmExports["pa"];_kth_wasm_HeaderSyncNative_idle=Module["_kth_wasm_HeaderSyncNative_idle"]=wasmExports["qa"];_kth_wasm_HeaderSyncNative_status=Module["_kth_wasm_HeaderSyncNative_status"]=wasmExports["ra"];_kth_wasm_HeaderSyncNative_indexMemoryBytes=Module["_kth_wasm_HeaderSyncNative_indexMemoryBytes"]=wasmExports["sa"];_kth_wasm_HeaderSyncNative_asyncRun=Module["_kth_wasm_HeaderSyncNative_asyncRun"]=wasmExports["ta"];_kth_wasm_HeaderSyncNative_asyncFollow=Module["_kth_wasm_HeaderSyncNative_asyncFollow"]=wasmExports["ua"];_kth_wasm_HeaderSyncNative_reset=Module["_kth_wasm_HeaderSyncNative_reset"]=wasmExports["va"];_kth_wasm_HeaderSyncNative_headerHex=Module["_kth_wasm_HeaderSyncNative_headerHex"]=wasmExports["wa"];_kth_wasm_HeaderSyncNative_headerHash=Module["_kth_wasm_HeaderSyncNative_headerHash"]=wasmExports["xa"];_kth_wasm_HeaderSyncNative_chainStateSnapshot=Module["_kth_wasm_HeaderSyncNative_chainStateSnapshot"]=wasmExports["ya"];_kth_wasm_HeaderSyncNative_runtimeSettings=Module["_kth_wasm_HeaderSyncNative_runtimeSettings"]=wasmExports["za"];_kth_wasm_HeaderSyncNative_configureContent=Module["_kth_wasm_HeaderSyncNative_configureContent"]=wasmExports["Aa"];_kth_wasm_HeaderSyncNative_blockMetadata=Module["_kth_wasm_HeaderSyncNative_blockMetadata"]=wasmExports["Ba"];_kth_wasm_HeaderSyncNative_contentState=Module["_kth_wasm_HeaderSyncNative_contentState"]=wasmExports["Ca"];_kth_wasm_HeaderSyncNative_observedTransactions=Module["_kth_wasm_HeaderSyncNative_observedTransactions"]=wasmExports["Da"];_kth_wasm_HeaderSyncNative_addPeer=Module["_kth_wasm_HeaderSyncNative_addPeer"]=wasmExports["Ea"];_kth_wasm_HeaderSyncNative_configureDiscovery=Module["_kth_wasm_HeaderSyncNative_configureDiscovery"]=wasmExports["Fa"];_kth_wasm_HeaderSyncNative_configureLegacyDiscovery=Module["_kth_wasm_HeaderSyncNative_configureLegacyDiscovery"]=wasmExports["Ga"];_kth_wasm_HeaderSyncNative_peerCount=Module["_kth_wasm_HeaderSyncNative_peerCount"]=wasmExports["Ha"];_kth_wasm_HeaderSyncNative_peerEndpoint=Module["_kth_wasm_HeaderSyncNative_peerEndpoint"]=wasmExports["Ia"];_kth_wasm_HeaderSyncNative_peerSource=Module["_kth_wasm_HeaderSyncNative_peerSource"]=wasmExports["Ja"];_kth_wasm_HeaderSyncNative_peerState=Module["_kth_wasm_HeaderSyncNative_peerState"]=wasmExports["Ka"];_kth_wasm_HeaderSyncNative_peerAgent=Module["_kth_wasm_HeaderSyncNative_peerAgent"]=wasmExports["La"];_kth_wasm_HeaderSyncNative_peerError=Module["_kth_wasm_HeaderSyncNative_peerError"]=wasmExports["Ma"];_kth_wasm_HeaderSyncNative_peerHeight=Module["_kth_wasm_HeaderSyncNative_peerHeight"]=wasmExports["Na"];_kth_wasm_HeaderSyncNative_peerAnnouncements=Module["_kth_wasm_HeaderSyncNative_peerAnnouncements"]=wasmExports["Oa"];_kth_wasm_HeaderSyncNative_peerConnected=Module["_kth_wasm_HeaderSyncNative_peerConnected"]=wasmExports["Pa"];_kth_wasm_release_string_kth_core_destruct_string=Module["_kth_wasm_release_string_kth_core_destruct_string"]=wasmExports["Qa"];Module["_strlen"]=wasmExports["Sa"];_free=Module["_free"]=wasmExports["Ta"];_malloc=Module["_malloc"]=wasmExports["Ua"];___trap=wasmExports["Va"];wasmMemory=wasmExports["L"];wasmTable=wasmExports["Ra"]}var wasmImports={c:function(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:var arg=syscallGetVarargI();if(arg<0)return-28;while(FS.streams[arg])arg++;var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd;case 1:case 2:return 0;case 3:return stream.flags;case 4:arg=syscallGetVarargI();stream.flags=stream.flags&-289793|arg&289792;return 0;case 12:arg=syscallGetVarargP();HEAP16[arg+0>>>1>>>0]=2;return 0;case 13:case 14:return 0}return-28}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},h:function(fd,op,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:if(!stream.tty)return-59;return 0;case 21505:if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>>2>>>0]=termios.c_iflag||0;HEAP32[argp+4>>>2>>>0]=termios.c_oflag||0;HEAP32[argp+8>>>2>>>0]=termios.c_cflag||0;HEAP32[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++)HEAP8[argp+i+17>>>0]=termios.c_cc[i]||0;return 0}return 0;case 21510:case 21511:case 21512:if(!stream.tty)return-59;return 0;case 21506:case 21507:case 21508:if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>>2>>>0];var c_oflag=HEAP32[argp+4>>>2>>>0];var c_cflag=HEAP32[argp+8>>>2>>>0];var c_lflag=HEAP32[argp+12>>>2>>>0];var c_cc=[];for(i=0;i<32;i++)c_cc.push(HEAP8[argp+i+17>>>0]);return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0;case 21519:if(!stream.tty)return-59;argp=syscallGetVarargP();HEAP32[argp>>>2>>>0]=0;return 0;case 21520:if(!stream.tty)return-59;return-28;case 21537:case 21531:argp=syscallGetVarargP();return FS.ioctl(stream,op,argp);case 21523:if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);argp=syscallGetVarargP();HEAP16[argp>>>1>>>0]=winsize[0];HEAP16[argp+2>>>1>>>0]=winsize[1]}return 0;case 21524:if(!stream.tty)return-59;return 0;case 21515:if(!stream.tty)return-59;return 0;default:return-28}}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},t:function(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;if(flags&64)mode&=~SYSCALLS.currentUmask;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},z:function(fdPtr,flags){fdPtr>>>=0;try{if(fdPtr==0)throw new FS.ErrnoError(21);if(flags&-526337)throw new FS.ErrnoError(138);var res=PIPEFS.createPipe();if(flags&2048){FS.getStream(res.readable_fd).flags|=2048;FS.getStream(res.writable_fd).flags|=2048}HEAP32[fdPtr>>>2>>>0]=res.readable_fd;HEAP32[fdPtr+4>>>2>>>0]=res.writable_fd;return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},y:function(fds,nfds){fds>>>=0;try{var count=doPollSync(fds,nfds);return count}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},q:function(path){path>>>=0;try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},i:function(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},s:function(path,buf){path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},r:function(dirfd,path,flags){path>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags)FS.unlink(path);else if(flags===512)FS.rmdir(path);else return-28;return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},I:()=>abort(""),B:function(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);if(isNaN(date.getTime()))return 1;HEAP32[tmPtr>>>2>>>0]=date.getUTCSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getUTCMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getUTCHours();HEAP32[tmPtr+12>>>2>>>0]=date.getUTCDate();HEAP32[tmPtr+16>>>2>>>0]=date.getUTCMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>>2>>>0]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/864e5|0;HEAP32[tmPtr+28>>>2>>>0]=yday;return 0},C:function(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);if(isNaN(date.getTime()))return 1;HEAP32[tmPtr>>>2>>>0]=date.getSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getHours();HEAP32[tmPtr+12>>>2>>>0]=date.getDate();HEAP32[tmPtr+16>>>2>>>0]=date.getMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getFullYear()-1900;HEAP32[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>>2>>>0]=yday;HEAP32[tmPtr+36>>>2>>>0]=-date.getTimezoneOffset()*60;var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>>2>>>0]=dst;return 0},D:function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>>2>>>0]=stdTimezoneOffset*60;HEAP32[daylight>>>2>>>0]=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)}},A:function(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id))return 28;var now;if(clk_id===0)now=_emscripten_date_now();else if(1)now=_emscripten_get_now();else return 52;var nsec=Math.round(now*1e6);HEAP64[ptime>>>3>>>0]=BigInt(nsec);return 0},f:function(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)},b:_emscripten_clear_timeout,v:function(){return getHeapMax()},a:_emscripten_get_now,u:function(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;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},d:function(cb,msecs,userData){cb>>>=0;userData>>>=0;return safeSetTimeout(()=>getWasmTableEntry(cb)(userData),msecs)},p:function(socketId,code,reason){reason>>>=0;var socket=WS.getSocket(socketId);if(!socket)return-3;reason&&UTF8ToString(reason);if(reason)socket.close(code||void 0,UTF8ToString(reason));else if(code)socket.close(code);else socket.close();return 0},w:socketId=>{var socket=WS.getSocket(socketId);if(!socket)return-3;socket.onopen=socket.onerror=socket.onclose=socket.onmessage=null;webSockets.free(socketId);return 0},K:function(socketId,bufferedAmount){bufferedAmount>>>=0;var socket=WS.getSocket(socketId);if(!socket)return-3;HEAPU32[bufferedAmount>>>2>>>0]=socket.bufferedAmount;return 0},o:function(createAttributes){createAttributes>>>=0;if(!globalThis.WebSocket)return-1;if(!createAttributes)return-5;var url=UTF8ToString(HEAPU32[createAttributes>>>2>>>0]);var protocols=HEAPU32[createAttributes+4>>>2>>>0];var socket=protocols?new WebSocket(url,UTF8ToString(protocols).split(",")):new WebSocket(url);socket.binaryType="arraybuffer";var socketId=webSockets.allocate(socket);return socketId},J:function(socketId,binaryData,dataLength){binaryData>>>=0;var socket=WS.getSocket(socketId);if(!socket)return-3;socket.send(HEAPU8.subarray(binaryData>>>0,binaryData+dataLength>>>0));return 0},k:function(socketId,userData,callbackFunc,thread){userData>>>=0;callbackFunc>>>=0;thread>>>=0;var socket=WS.getSocket(socketId);if(!socket)return-3;socket.onclose=e=>{var eventPtr=WS.getSocketEvent(socketId);HEAP8[eventPtr+4>>>0]=e.wasClean,HEAP16[eventPtr+6>>>1>>>0]=e.code,stringToUTF8(e.reason,eventPtr+8,512);getWasmTableEntry(callbackFunc)(0,eventPtr,userData)};return 0},l:function(socketId,userData,callbackFunc,thread){userData>>>=0;callbackFunc>>>=0;thread>>>=0;var socket=WS.getSocket(socketId);if(!socket)return-3;socket.onerror=()=>{var eventPtr=WS.getSocketEvent(socketId);getWasmTableEntry(callbackFunc)(0,eventPtr,userData)};return 0},m:function(socketId,userData,callbackFunc,thread){userData>>>=0;callbackFunc>>>=0;thread>>>=0;var socket=WS.getSocket(socketId);if(!socket)return-3;socket.onmessage=e=>{var isText=typeof e.data==="string";if(isText){var buf=stringToNewUTF8(e.data);var len=lengthBytesUTF8(e.data)+1}else{len=e.data.byteLength;buf=_malloc(len);HEAP8.set(new Uint8Array(e.data),buf>>>0)}var eventPtr=WS.getSocketEvent(socketId);HEAPU32[eventPtr+4>>>2>>>0]=buf,HEAP32[eventPtr+8>>>2>>>0]=len,HEAP8[eventPtr+12>>>0]=isText,getWasmTableEntry(callbackFunc)(0,eventPtr,userData);_free(buf)};return 0},n:function(socketId,userData,callbackFunc,thread){userData>>>=0;callbackFunc>>>=0;thread>>>=0;var socket=WS.getSocket(socketId);if(!socket)return-3;socket.onopen=()=>{var eventPtr=WS.getSocketEvent(socketId);getWasmTableEntry(callbackFunc)(0,eventPtr,userData)};return 0},F:function(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,1/0)+1;envp+=4}return 0},G:function(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings)bufSize+=lengthBytesUTF8(string)+1;HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0},e:function(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}},E:function(fd,pbuf){pbuf>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>>0]=type;HEAP16[pbuf+2>>>1>>>0]=0;HEAP64[pbuf+8>>>3>>>0]=BigInt(0);HEAP64[pbuf+16>>>3>>>0]=BigInt(0);return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}},j:function(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}},x:function(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);newOffset>>>=0;try{if(isNaN(offset))return 22;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>>3>>>0]=BigInt(stream.position);if(stream.getdents&&!offset&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}},g:function(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}},H:function(buffer,size){buffer>>>=0;size>>>=0;return randomFill(HEAPU8.subarray(buffer>>>0,buffer+size>>>0))}};function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;wasmExports["Sa"]=makeWrapper_pp(wasmExports["Sa"]);wasmExports["Ua"]=makeWrapper_pp(wasmExports["Ua"]);wasmExports["_emscripten_stack_alloc"]=makeWrapper_pp(wasmExports["_emscripten_stack_alloc"]);return wasmExports}var wasmExports;wasmExports=await async function(){function receiveInstance(instance){wasmExports=instance.exports;wasmExports=applySignatureConversions(wasmExports);assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}var info=getWasmImports();var instantiateWasm=Module["instantiateWasm"];if(instantiateWasm)return new Promise(resolve=>{instantiateWasm(info,inst=>resolve(receiveInstance(inst)))});wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(void 0,wasmBinaryFile,info);var exports=function(result){return receiveInstance(result["instance"])}(result);return exports}();await async function(){preRun();if(runDependencies)await resolveRunDependencies();var setStatus=Module["setStatus"];if(setStatus){setStatus("Running...");await new Promise(resolve=>setTimeout(resolve,1));setTimeout(setStatus,1,"")}if(ABORT)return;initRuntime();Module["onRuntimeInitialized"]?.();postRun()}();
2
+ ;return Module}if(typeof exports==="object"&&typeof module==="object"){module.exports=createHeaders;module.exports.default=createHeaders}else if(typeof define==="function"&&define["amd"])define([],()=>createHeaders);