@ohtaman/washi 0.5.0 → 0.6.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.
Files changed (86) hide show
  1. package/README.ja.md +55 -20
  2. package/README.md +55 -20
  3. package/README.zh-CN.md +55 -20
  4. package/THIRD_PARTY_LICENSES.md +3 -4
  5. package/dist/browser/_washi-node-only-BvRk9kiK.js +0 -0
  6. package/dist/browser/browser-runtime-TLCY0hkc.js +1793 -0
  7. package/dist/browser/highs-worker.js +1 -1
  8. package/dist/browser/highs.wasm +0 -0
  9. package/dist/browser/highs.wasm.LICENSE +1 -2
  10. package/dist/browser/loader-DewlSho8.js +643 -0
  11. package/dist/browser/solvers/glpk.js +1 -1
  12. package/dist/browser/solvers/glpk.min.js +1 -1
  13. package/dist/browser/solvers/z3.js +7 -1
  14. package/dist/browser/solvers/z3.min.js +1 -1
  15. package/dist/browser/washi.js +1096 -444
  16. package/dist/browser/washi.min.js +3 -4
  17. package/dist/lib/_washi-node-only-BvRk9kiK.js +0 -0
  18. package/dist/lib/highs-browser-runtime.js +2120 -4124
  19. package/dist/lib/highs-node-runtime.js +24 -1
  20. package/dist/lib/highs-runtime.js +2 -0
  21. package/dist/lib/highs-worker.js +1 -1
  22. package/dist/lib/highs.wasm +0 -0
  23. package/dist/lib/highs.wasm.LICENSE +1 -2
  24. package/dist/lib/loader-BZUQNvh4.js +649 -0
  25. package/dist/lib/{registry-BEfvpZW3.js → registry-C20sxTwm.js} +54 -41
  26. package/dist/lib/solvers/glpk.js +2 -2
  27. package/dist/lib/solvers/z3.js +1 -1
  28. package/dist/lib/washi.js +973 -305
  29. package/dist/types/decomposition/benders.d.ts +32 -0
  30. package/dist/types/decomposition/benders.d.ts.map +1 -0
  31. package/dist/types/decomposition/column-generation.d.ts +34 -0
  32. package/dist/types/decomposition/column-generation.d.ts.map +1 -0
  33. package/dist/types/decomposition/index.d.ts +4 -0
  34. package/dist/types/decomposition/index.d.ts.map +1 -0
  35. package/dist/types/decomposition/types.d.ts +230 -0
  36. package/dist/types/decomposition/types.d.ts.map +1 -0
  37. package/dist/types/index.d.ts +4 -3
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/types/modeler/boolean-expr.d.ts.map +1 -1
  40. package/dist/types/modeler/constraint.d.ts +11 -0
  41. package/dist/types/modeler/constraint.d.ts.map +1 -1
  42. package/dist/types/modeler/expression.d.ts +10 -0
  43. package/dist/types/modeler/expression.d.ts.map +1 -1
  44. package/dist/types/modeler/index.d.ts +2 -1
  45. package/dist/types/modeler/index.d.ts.map +1 -1
  46. package/dist/types/modeler/linearizer.d.ts +15 -0
  47. package/dist/types/modeler/linearizer.d.ts.map +1 -0
  48. package/dist/types/modeler/lp-writer.d.ts +3 -1
  49. package/dist/types/modeler/lp-writer.d.ts.map +1 -1
  50. package/dist/types/modeler/model.d.ts +147 -2
  51. package/dist/types/modeler/model.d.ts.map +1 -1
  52. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -1
  53. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -1
  54. package/dist/types/modeler/solvers/highs/driver.d.ts +232 -0
  55. package/dist/types/modeler/solvers/highs/driver.d.ts.map +1 -0
  56. package/dist/types/modeler/solvers/highs/index.d.ts +1 -0
  57. package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -1
  58. package/dist/types/modeler/solvers/highs/loader.d.ts +4 -4
  59. package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -1
  60. package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -1
  61. package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -1
  62. package/dist/types/modeler/solvers/highs/solver.d.ts +1 -1
  63. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -1
  64. package/dist/types/modeler/solvers/types.d.ts +2 -0
  65. package/dist/types/modeler/solvers/types.d.ts.map +1 -1
  66. package/dist/types/modeler/types.d.ts +27 -0
  67. package/dist/types/modeler/types.d.ts.map +1 -1
  68. package/docs/examples/index.md +4 -0
  69. package/docs/examples/traveling-salesperson.md +173 -0
  70. package/docs/examples/vehicle-routing.md +206 -0
  71. package/docs/getting-started/ai-agents.md +8 -4
  72. package/docs/guide/constraints.md +1 -1
  73. package/docs/guide/decomposition.md +399 -0
  74. package/docs/guide/unsat-core.md +10 -3
  75. package/docs/ja/getting-started/ai-agents.md +8 -4
  76. package/docs/solvers/custom-solver.md +1 -1
  77. package/docs/solvers/highs.md +25 -3
  78. package/docs/solvers/index.md +3 -3
  79. package/docs/zh/getting-started/ai-agents.md +8 -4
  80. package/llms-full.txt +831 -15
  81. package/llms.txt +9 -5
  82. package/package.json +17 -14
  83. package/skills/washi/SKILL.md +8 -8
  84. package/dist/browser/browser-runtime-D13gHOT5.js +0 -4189
  85. package/dist/browser/loader-CtaDHef_.js +0 -273
  86. package/dist/lib/loader-DmNC_UNk.js +0 -279
@@ -0,0 +1,1793 @@
1
+ import { o as e } from "./loader-DewlSho8.js";
2
+ //#region src/modeler/solvers/highs/runtime.js
3
+ async function t(e = {}) {
4
+ var t = e, n = !!globalThis.window, r = !!globalThis.WorkerGlobalScope, i = "./this.program", a = (e, t) => {
5
+ throw t;
6
+ }, o = import.meta.url, s = "";
7
+ function c(e) {
8
+ return t.locateFile ? t.locateFile(e, s) : s + e;
9
+ }
10
+ var l, u;
11
+ if (n || r) {
12
+ try {
13
+ s = new URL(".", o).href;
14
+ } catch {}
15
+ r && (u = (e) => {
16
+ var t = new XMLHttpRequest();
17
+ return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response);
18
+ }), l = async (e) => {
19
+ if (ee(e)) return new Promise((t, n) => {
20
+ var r = new XMLHttpRequest();
21
+ r.open("GET", e, !0), r.responseType = "arraybuffer", r.onload = () => {
22
+ if (r.status == 200 || r.status == 0 && r.response) {
23
+ t(r.response);
24
+ return;
25
+ }
26
+ n(r.status);
27
+ }, r.onerror = n, r.send(null);
28
+ });
29
+ var t = await fetch(e, { credentials: "same-origin" });
30
+ if (t.ok) return t.arrayBuffer();
31
+ throw Error(t.status + " : " + t.url);
32
+ };
33
+ }
34
+ var d = console.log.bind(console), f = console.error.bind(console), p = !1, ee = (e) => e.startsWith("file://"), te = !1;
35
+ function ne() {
36
+ return Z.buffer;
37
+ }
38
+ function re() {
39
+ if (!g?.buffer?.resizable) {
40
+ var e = ne();
41
+ t.HEAP8 = g = new Int8Array(e), z = new Int16Array(e), t.HEAPU8 = P = new Uint8Array(e), t.HEAP32 = y = new Int32Array(e), t.HEAPU32 = I = new Uint32Array(e), U = new Float32Array(e), t.HEAPF64 = W = new Float64Array(e), L = new BigInt64Array(e);
42
+ }
43
+ }
44
+ function ie() {
45
+ var e = t.preRun;
46
+ e && (typeof e == "function" && (e = [e]), v.push(...e)), _(v);
47
+ }
48
+ function ae() {
49
+ te = !0, !t.noFSInit && !N.initialized && N.init(), k.init(), $.s(), N.ignorePermissions = !1;
50
+ }
51
+ function oe() {
52
+ var e = t.postRun;
53
+ e && (typeof e == "function" && (e = [e]), me.push(...e)), _(me);
54
+ }
55
+ function m(e) {
56
+ throw t.onAbort?.(e), e = `Aborted(${e})`, f(e), p = !0, e += ". Build with -sASSERTIONS for more info.", te && st(), new WebAssembly.RuntimeError(e);
57
+ }
58
+ var h;
59
+ function se() {
60
+ return t.locateFile ? c("highs.wasm") : new URL("highs.wasm", "" + import.meta.url).href;
61
+ }
62
+ function ce(e) {
63
+ if (u) return u(e);
64
+ throw "both async and sync fetching of the wasm failed";
65
+ }
66
+ async function le(e) {
67
+ try {
68
+ var t = await l(e);
69
+ return new Uint8Array(t);
70
+ } catch {}
71
+ return ce(e);
72
+ }
73
+ async function ue(e, t) {
74
+ try {
75
+ var n = await le(e);
76
+ return await WebAssembly.instantiate(n, t);
77
+ } catch (e) {
78
+ f(`failed to asynchronously prepare wasm: ${e}`), m(e);
79
+ }
80
+ }
81
+ async function de(e, t, n) {
82
+ if (!e && !ee(t)) try {
83
+ var r = fetch(t, { credentials: "same-origin" });
84
+ return await WebAssembly.instantiateStreaming(r, n);
85
+ } catch (e) {
86
+ f(`wasm streaming compile failed: ${e}`), f("falling back to ArrayBuffer instantiation");
87
+ }
88
+ return ue(t, n);
89
+ }
90
+ function fe() {
91
+ return { a: ft };
92
+ }
93
+ class pe {
94
+ name = "ExitStatus";
95
+ constructor(e) {
96
+ this.message = `Program terminated with exit(${e})`, this.status = e;
97
+ }
98
+ }
99
+ var g, _ = (e) => {
100
+ for (; e.length > 0;) e.shift()(t);
101
+ }, me = [], v = [], he = !0, y, b = () => {
102
+ var e = y[R.varargs >> 2];
103
+ return R.varargs += 4, e;
104
+ }, x = b, S = {
105
+ isAbs: (e) => e.charAt(0) === "/",
106
+ splitPath: (e) => /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),
107
+ normalizeArray: (e, t) => {
108
+ for (var n = 0, r = e.length - 1; r >= 0; r--) {
109
+ var i = e[r];
110
+ i === "." ? e.splice(r, 1) : i === ".." ? (e.splice(r, 1), n++) : n && (e.splice(r, 1), n--);
111
+ }
112
+ if (t) for (; n; n--) e.unshift("..");
113
+ return e;
114
+ },
115
+ normalize: (e) => {
116
+ var t = S.isAbs(e), n = e.slice(-1) === "/";
117
+ return e = S.normalizeArray(e.split("/").filter((e) => !!e), !t).join("/"), !e && !t && (e = "."), e && n && (e += "/"), (t ? "/" : "") + e;
118
+ },
119
+ dirname: (e) => {
120
+ var t = S.splitPath(e), n = t[0], r = t[1];
121
+ return !n && !r ? "." : (r &&= r.slice(0, -1), n + r);
122
+ },
123
+ basename: (e) => e && e.match(/([^\/]+|\/)\/*$/)[1],
124
+ join: (...e) => S.normalize(e.join("/")),
125
+ join2: (e, t) => S.normalize(e + "/" + t)
126
+ }, ge = () => (e) => (crypto.getRandomValues(e), 0), _e = (e) => (_e = ge())(e), C = {
127
+ resolve: (...e) => {
128
+ for (var t = "", n = !1, r = e.length - 1; r >= -1 && !n; r--) {
129
+ var i = r >= 0 ? e[r] : N.cwd();
130
+ if (typeof i != "string") throw TypeError("Arguments to path.resolve must be strings");
131
+ if (!i) return "";
132
+ t = i + "/" + t, n = S.isAbs(i);
133
+ }
134
+ return t = S.normalizeArray(t.split("/").filter((e) => !!e), !n).join("/"), (n ? "/" : "") + t || ".";
135
+ },
136
+ relative: (e, t) => {
137
+ e = C.resolve(e).slice(1), t = C.resolve(t).slice(1);
138
+ function n(e) {
139
+ for (var t = 0; t < e.length && e[t] === ""; t++);
140
+ for (var n = e.length - 1; n >= 0 && e[n] === ""; n--);
141
+ return t > n ? [] : e.slice(t, n - t + 1);
142
+ }
143
+ for (var r = n(e.split("/")), i = n(t.split("/")), a = Math.min(r.length, i.length), o = a, s = 0; s < a; s++) if (r[s] !== i[s]) {
144
+ o = s;
145
+ break;
146
+ }
147
+ var c = [];
148
+ for (s = o; s < r.length; s++) c.push("..");
149
+ return c = c.concat(i.slice(o)), c.join("/");
150
+ }
151
+ }, ve = globalThis.TextDecoder && new TextDecoder(), ye = (e, t, n, r) => {
152
+ var i = t + n;
153
+ if (r) return i;
154
+ for (; e[t] && !(t >= i);) ++t;
155
+ return t;
156
+ }, w = (e, t = 0, n, r) => {
157
+ var i = ye(e, t, n, r);
158
+ if (i - t > 16 && e.buffer && ve) return ve.decode(e.subarray(t, i));
159
+ for (var a = ""; t < i;) {
160
+ var o = e[t++];
161
+ if (!(o & 128)) {
162
+ a += String.fromCharCode(o);
163
+ continue;
164
+ }
165
+ var s = e[t++] & 63;
166
+ if ((o & 224) == 192) {
167
+ a += String.fromCharCode((o & 31) << 6 | s);
168
+ continue;
169
+ }
170
+ var c = e[t++] & 63;
171
+ if (o = (o & 240) == 224 ? (o & 15) << 12 | s << 6 | c : (o & 7) << 18 | s << 12 | c << 6 | e[t++] & 63, o < 65536) a += String.fromCharCode(o);
172
+ else {
173
+ var l = o - 65536;
174
+ a += String.fromCharCode(55296 | l >> 10, 56320 | l & 1023);
175
+ }
176
+ }
177
+ return a;
178
+ }, T = [], E = (e) => {
179
+ for (var t = 0, n = 0; n < e.length; ++n) {
180
+ var r = e.charCodeAt(n);
181
+ r <= 127 ? t++ : r <= 2047 ? t += 2 : r >= 55296 && r <= 57343 ? (t += 4, ++n) : t += 3;
182
+ }
183
+ return t;
184
+ }, D = (e, t, n, r) => {
185
+ if (!(r > 0)) return 0;
186
+ for (var i = n, a = n + r - 1, o = 0; o < e.length; ++o) {
187
+ var s = e.codePointAt(o);
188
+ if (s <= 127) {
189
+ if (n >= a) break;
190
+ t[n++] = s;
191
+ } else if (s <= 2047) {
192
+ if (n + 1 >= a) break;
193
+ t[n++] = 192 | s >> 6, t[n++] = 128 | s & 63;
194
+ } else if (s <= 65535) {
195
+ if (n + 2 >= a) break;
196
+ t[n++] = 224 | s >> 12, t[n++] = 128 | s >> 6 & 63, t[n++] = 128 | s & 63;
197
+ } else {
198
+ if (n + 3 >= a) break;
199
+ t[n++] = 240 | s >> 18, t[n++] = 128 | s >> 12 & 63, t[n++] = 128 | s >> 6 & 63, t[n++] = 128 | s & 63, o++;
200
+ }
201
+ }
202
+ return t[n] = 0, n - i;
203
+ }, O = (e, t, n) => {
204
+ var r = n > 0 ? n : E(e) + 1, i = Array(r), a = D(e, i, 0, i.length);
205
+ return t && (i.length = a), i;
206
+ }, be = () => {
207
+ if (!T.length) {
208
+ var e = null;
209
+ if (globalThis.window?.prompt && (e = window.prompt("Input: "), e !== null && (e += "\n")), !e) return null;
210
+ T = O(e, !0);
211
+ }
212
+ return T.shift();
213
+ }, k = {
214
+ ttys: [],
215
+ init() {},
216
+ shutdown() {},
217
+ register(e, t) {
218
+ k.ttys[e] = {
219
+ input: [],
220
+ output: [],
221
+ ops: t
222
+ }, N.registerDevice(e, k.stream_ops);
223
+ },
224
+ stream_ops: {
225
+ open(e) {
226
+ var t = k.ttys[e.node.rdev];
227
+ if (!t) throw new N.ErrnoError(43);
228
+ e.tty = t, e.seekable = !1;
229
+ },
230
+ close(e) {
231
+ e.tty.ops.fsync(e.tty);
232
+ },
233
+ fsync(e) {
234
+ e.tty.ops.fsync(e.tty);
235
+ },
236
+ read(e, t, n, r, i) {
237
+ if (!e.tty || !e.tty.ops.get_char) throw new N.ErrnoError(60);
238
+ for (var a = 0, o = 0; o < r; o++) {
239
+ var s;
240
+ try {
241
+ s = e.tty.ops.get_char(e.tty);
242
+ } catch {
243
+ throw new N.ErrnoError(29);
244
+ }
245
+ if (s === void 0 && !a) throw new N.ErrnoError(6);
246
+ if (s == null || (a++, t[n + o] = s, s === 10)) break;
247
+ }
248
+ return a && (e.node.atime = Date.now()), a;
249
+ },
250
+ write(e, t, n, r, i) {
251
+ if (!e.tty || !e.tty.ops.put_char) throw new N.ErrnoError(60);
252
+ try {
253
+ for (var a = 0; a < r; a++) e.tty.ops.put_char(e.tty, t[n + a]);
254
+ } catch {
255
+ throw new N.ErrnoError(29);
256
+ }
257
+ return r && (e.node.mtime = e.node.ctime = Date.now()), a;
258
+ }
259
+ },
260
+ default_tty_ops: {
261
+ get_char(e) {
262
+ return be();
263
+ },
264
+ put_char(e, t) {
265
+ t === null || t === 10 ? (d(w(e.output)), e.output = []) : t != 0 && e.output.push(t);
266
+ },
267
+ fsync(e) {
268
+ e.output?.length > 0 && (d(w(e.output)), e.output = []);
269
+ },
270
+ ioctl_tcgets(e) {
271
+ return {
272
+ c_iflag: 25856,
273
+ c_oflag: 5,
274
+ c_cflag: 191,
275
+ c_lflag: 35387,
276
+ c_cc: [
277
+ 3,
278
+ 28,
279
+ 127,
280
+ 21,
281
+ 4,
282
+ 0,
283
+ 1,
284
+ 0,
285
+ 17,
286
+ 19,
287
+ 26,
288
+ 0,
289
+ 18,
290
+ 15,
291
+ 23,
292
+ 22,
293
+ 0,
294
+ 0,
295
+ 0,
296
+ 0,
297
+ 0,
298
+ 0,
299
+ 0,
300
+ 0,
301
+ 0,
302
+ 0,
303
+ 0,
304
+ 0,
305
+ 0,
306
+ 0,
307
+ 0,
308
+ 0
309
+ ]
310
+ };
311
+ },
312
+ ioctl_tcsets(e, t, n) {
313
+ return 0;
314
+ },
315
+ ioctl_tiocgwinsz(e) {
316
+ return [24, 80];
317
+ }
318
+ },
319
+ default_tty1_ops: {
320
+ put_char(e, t) {
321
+ t === null || t === 10 ? (f(w(e.output)), e.output = []) : t != 0 && e.output.push(t);
322
+ },
323
+ fsync(e) {
324
+ e.output?.length > 0 && (f(w(e.output)), e.output = []);
325
+ }
326
+ }
327
+ }, xe = () => {
328
+ m();
329
+ }, A = {
330
+ ops_table: null,
331
+ mount(e) {
332
+ return A.createNode(null, "/", 16895, 0);
333
+ },
334
+ createNode(e, t, n, r) {
335
+ if (N.isBlkdev(n) || N.isFIFO(n)) throw new N.ErrnoError(63);
336
+ A.ops_table ||= {
337
+ dir: {
338
+ node: {
339
+ getattr: A.node_ops.getattr,
340
+ setattr: A.node_ops.setattr,
341
+ lookup: A.node_ops.lookup,
342
+ mknod: A.node_ops.mknod,
343
+ rename: A.node_ops.rename,
344
+ unlink: A.node_ops.unlink,
345
+ rmdir: A.node_ops.rmdir,
346
+ readdir: A.node_ops.readdir,
347
+ symlink: A.node_ops.symlink
348
+ },
349
+ stream: { llseek: A.stream_ops.llseek }
350
+ },
351
+ file: {
352
+ node: {
353
+ getattr: A.node_ops.getattr,
354
+ setattr: A.node_ops.setattr
355
+ },
356
+ stream: {
357
+ llseek: A.stream_ops.llseek,
358
+ read: A.stream_ops.read,
359
+ write: A.stream_ops.write,
360
+ mmap: A.stream_ops.mmap,
361
+ msync: A.stream_ops.msync
362
+ }
363
+ },
364
+ link: {
365
+ node: {
366
+ getattr: A.node_ops.getattr,
367
+ setattr: A.node_ops.setattr,
368
+ readlink: A.node_ops.readlink
369
+ },
370
+ stream: {}
371
+ },
372
+ chrdev: {
373
+ node: {
374
+ getattr: A.node_ops.getattr,
375
+ setattr: A.node_ops.setattr
376
+ },
377
+ stream: N.chrdev_stream_ops
378
+ }
379
+ };
380
+ var i = N.createNode(e, t, n, r);
381
+ return N.isDir(i.mode) ? (i.node_ops = A.ops_table.dir.node, i.stream_ops = A.ops_table.dir.stream, i.contents = {}) : N.isFile(i.mode) ? (i.node_ops = A.ops_table.file.node, i.stream_ops = A.ops_table.file.stream, i.usedBytes = 0, i.contents = A.emptyFileContents ??= /* @__PURE__ */ new Uint8Array()) : N.isLink(i.mode) ? (i.node_ops = A.ops_table.link.node, i.stream_ops = A.ops_table.link.stream) : N.isChrdev(i.mode) && (i.node_ops = A.ops_table.chrdev.node, i.stream_ops = A.ops_table.chrdev.stream), i.atime = i.mtime = i.ctime = Date.now(), e && (e.contents[t] = i, e.atime = e.mtime = e.ctime = i.atime), i;
382
+ },
383
+ getFileDataAsTypedArray(e) {
384
+ return e.contents.subarray(0, e.usedBytes);
385
+ },
386
+ expandFileStorage(e, t) {
387
+ var n = e.contents.length;
388
+ if (!(n >= t)) {
389
+ t = Math.max(t, n * (n < 1048576 ? 2 : 1.125) >>> 0), n && (t = Math.max(t, 256));
390
+ var r = A.getFileDataAsTypedArray(e);
391
+ e.contents = new Uint8Array(t), e.contents.set(r);
392
+ }
393
+ },
394
+ resizeFileStorage(e, t) {
395
+ if (e.usedBytes != t) {
396
+ var n = e.contents;
397
+ e.contents = new Uint8Array(t), e.contents.set(n.subarray(0, Math.min(t, e.usedBytes))), e.usedBytes = t;
398
+ }
399
+ },
400
+ node_ops: {
401
+ getattr(e) {
402
+ var t = {};
403
+ return t.dev = N.isChrdev(e.mode) ? e.id : 1, t.ino = e.id, t.mode = e.mode, t.nlink = 1, t.uid = 0, t.gid = 0, t.rdev = e.rdev, t.size = N.isDir(e.mode) ? 4096 : N.isFile(e.mode) ? e.usedBytes : N.isLink(e.mode) ? e.link.length : 0, t.atime = new Date(e.atime), t.mtime = new Date(e.mtime), t.ctime = new Date(e.ctime), t.blksize = 4096, t.blocks = Math.ceil(t.size / t.blksize), t;
404
+ },
405
+ setattr(e, t) {
406
+ for (let n of [
407
+ "mode",
408
+ "atime",
409
+ "mtime",
410
+ "ctime"
411
+ ]) t[n] != null && (e[n] = t[n]);
412
+ t.size !== void 0 && A.resizeFileStorage(e, t.size);
413
+ },
414
+ lookup(e, t) {
415
+ throw A.doesNotExistError || (A.doesNotExistError = new N.ErrnoError(44), A.doesNotExistError.stack = "<generic error, no stack>"), A.doesNotExistError;
416
+ },
417
+ mknod(e, t, n, r) {
418
+ return A.createNode(e, t, n, r);
419
+ },
420
+ rename(e, t, n) {
421
+ var r;
422
+ try {
423
+ r = N.lookupNode(t, n);
424
+ } catch {}
425
+ if (r && N.isDir(e.mode)) for (var i in r.contents) throw new N.ErrnoError(55);
426
+ delete e.parent.contents[e.name], t.contents[n] = e, e.name = n, t.ctime = t.mtime = e.parent.ctime = e.parent.mtime = Date.now();
427
+ },
428
+ unlink(e, t) {
429
+ delete e.contents[t], e.ctime = e.mtime = Date.now();
430
+ },
431
+ rmdir(e, t) {
432
+ for (var n in N.lookupNode(e, t).contents) throw new N.ErrnoError(55);
433
+ delete e.contents[t], e.ctime = e.mtime = Date.now();
434
+ },
435
+ readdir(e) {
436
+ return [
437
+ ".",
438
+ "..",
439
+ ...Object.keys(e.contents)
440
+ ];
441
+ },
442
+ symlink(e, t, n) {
443
+ var r = A.createNode(e, t, 41471, 0);
444
+ return r.link = n, r;
445
+ },
446
+ readlink(e) {
447
+ if (!N.isLink(e.mode)) throw new N.ErrnoError(28);
448
+ return e.link;
449
+ }
450
+ },
451
+ stream_ops: {
452
+ read(e, t, n, r, i) {
453
+ var a = e.node.contents;
454
+ if (i >= e.node.usedBytes) return 0;
455
+ var o = Math.min(e.node.usedBytes - i, r);
456
+ return t.set(a.subarray(i, i + o), n), o;
457
+ },
458
+ write(e, t, n, r, i, a) {
459
+ if (t.buffer === g.buffer && (a = !1), !r) return 0;
460
+ var o = e.node;
461
+ return o.mtime = o.ctime = Date.now(), a ? (o.contents = t.subarray(n, n + r), o.usedBytes = r) : !o.usedBytes && !i ? (o.contents = t.slice(n, n + r), o.usedBytes = r) : (A.expandFileStorage(o, i + r), o.contents.set(t.subarray(n, n + r), i), o.usedBytes = Math.max(o.usedBytes, i + r)), r;
462
+ },
463
+ llseek(e, t, n) {
464
+ var r = t;
465
+ if (n === 1 ? r += e.position : n === 2 && N.isFile(e.node.mode) && (r += e.node.usedBytes), r < 0) throw new N.ErrnoError(28);
466
+ return r;
467
+ },
468
+ mmap(e, t, n, r, i) {
469
+ if (!N.isFile(e.node.mode)) throw new N.ErrnoError(43);
470
+ var a, o, s = e.node.contents;
471
+ if (!(i & 2) && s.buffer === g.buffer) o = !1, a = s.byteOffset;
472
+ else {
473
+ if (o = !0, a = xe(), !a) throw new N.ErrnoError(48);
474
+ s && ((n > 0 || n + t < s.length) && (s = s.subarray ? s.subarray(n, n + t) : Array.prototype.slice.call(s, n, n + t)), g.set(s, a));
475
+ }
476
+ return {
477
+ ptr: a,
478
+ allocated: o
479
+ };
480
+ },
481
+ msync(e, t, n, r, i) {
482
+ return A.stream_ops.write(e, t, 0, r, n, !1), 0;
483
+ }
484
+ }
485
+ }, Se = (e) => {
486
+ if (typeof e != "string") return e;
487
+ var t = {
488
+ r: 0,
489
+ "r+": 2,
490
+ w: 577,
491
+ "w+": 578,
492
+ a: 1089,
493
+ "a+": 1090
494
+ }[e];
495
+ if (t === void 0) throw Error(`Unknown file open mode: ${e}`);
496
+ return t;
497
+ }, Ce = (e) => (typeof e == "string" && (e = O(e, !0)), e.subarray || (e = new Uint8Array(e)), e), j = (e, t) => {
498
+ var n = 0;
499
+ return e && (n |= 365), t && (n |= 146), n;
500
+ }, we = async (e) => {
501
+ var t = await l(e);
502
+ return new Uint8Array(t);
503
+ }, Te = (...e) => N.createDataFile(...e), Ee = null, De = async () => Ee, M = 0, Oe = null, ke = () => {
504
+ M--, t.monitorRunDependencies?.(M), M || Oe();
505
+ }, Ae = () => {
506
+ M || (Ee = new Promise((e) => Oe = e)), M++, t.monitorRunDependencies?.(M);
507
+ }, je = [], Me = async (e, t) => {
508
+ typeof Browser < "u" && Browser.init();
509
+ for (var n of je) if (n.canHandle(t)) return n.handle(e, t);
510
+ return e;
511
+ }, Ne = async (e, t, n, r, i, a, o, s) => {
512
+ var c = t ? C.resolve(S.join2(e, t)) : e;
513
+ `${c}`, Ae();
514
+ try {
515
+ var l = n;
516
+ typeof n == "string" && (l = await we(n)), l = await Me(l, c), s?.(), a || Te(e, t, l, r, i, o);
517
+ } finally {
518
+ ke();
519
+ }
520
+ }, N = {
521
+ root: null,
522
+ mounts: [],
523
+ devices: {},
524
+ streams: [],
525
+ nextInode: 1,
526
+ nameTable: [],
527
+ currentPath: "/",
528
+ initialized: !1,
529
+ ignorePermissions: !0,
530
+ syncFSRequests: 0,
531
+ ErrnoError: class {
532
+ name = "ErrnoError";
533
+ constructor(e) {
534
+ this.errno = e;
535
+ }
536
+ },
537
+ FSStream: class {
538
+ shared = {};
539
+ get object() {
540
+ return this.node;
541
+ }
542
+ set object(e) {
543
+ this.node = e;
544
+ }
545
+ get isRead() {
546
+ return (this.flags & 2097155) != 1;
547
+ }
548
+ get isWrite() {
549
+ return !!(this.flags & 2097155);
550
+ }
551
+ get isAppend() {
552
+ return this.flags & 1024;
553
+ }
554
+ get flags() {
555
+ return this.shared.flags;
556
+ }
557
+ set flags(e) {
558
+ this.shared.flags = e;
559
+ }
560
+ get position() {
561
+ return this.shared.position;
562
+ }
563
+ set position(e) {
564
+ this.shared.position = e;
565
+ }
566
+ },
567
+ FSNode: class {
568
+ node_ops = {};
569
+ stream_ops = {};
570
+ readMode = 365;
571
+ writeMode = 146;
572
+ mounted = null;
573
+ constructor(e, t, n, r) {
574
+ e ||= this, this.parent = e, this.mount = e.mount, this.id = N.nextInode++, this.name = t, this.mode = n, this.rdev = r, this.atime = this.mtime = this.ctime = Date.now();
575
+ }
576
+ get read() {
577
+ return (this.mode & this.readMode) === this.readMode;
578
+ }
579
+ set read(e) {
580
+ e ? this.mode |= this.readMode : this.mode &= ~this.readMode;
581
+ }
582
+ get write() {
583
+ return (this.mode & this.writeMode) === this.writeMode;
584
+ }
585
+ set write(e) {
586
+ e ? this.mode |= this.writeMode : this.mode &= ~this.writeMode;
587
+ }
588
+ get isFolder() {
589
+ return N.isDir(this.mode);
590
+ }
591
+ get isDevice() {
592
+ return N.isChrdev(this.mode);
593
+ }
594
+ addListener(e, t = !1) {
595
+ var n = {
596
+ cb: e,
597
+ exclusive: t
598
+ }, r = this.listeners ??= /* @__PURE__ */ new Set();
599
+ return r.add(n), {
600
+ listeners: r,
601
+ entry: n
602
+ };
603
+ }
604
+ notifyListeners(e) {
605
+ if (this.listeners) {
606
+ var t;
607
+ for (var n of this.listeners) n.exclusive ? (t ||= []).push(n) : n.cb(e);
608
+ if (t) {
609
+ var r = (this.exclTurn || 0) % t.length;
610
+ this.exclTurn = r + 1, t[r].cb(e);
611
+ }
612
+ }
613
+ }
614
+ },
615
+ lookupPath(e, t = {}) {
616
+ if (!e) throw new N.ErrnoError(44);
617
+ t.follow_mount ??= !0, S.isAbs(e) || (e = N.cwd() + "/" + e);
618
+ linkloop: for (var n = 0; n < 40; n++) {
619
+ for (var r = e.split("/").filter((e) => !!e), i = N.root, a = "/", o = 0; o < r.length; o++) {
620
+ var s = o === r.length - 1;
621
+ if (s && t.parent) break;
622
+ if (r[o] !== ".") {
623
+ if (r[o] === "..") {
624
+ if (a = S.dirname(a), N.isRoot(i)) {
625
+ e = a + "/" + r.slice(o + 1).join("/"), n--;
626
+ continue linkloop;
627
+ }
628
+ i = i.parent;
629
+ continue;
630
+ }
631
+ a = S.join2(a, r[o]);
632
+ try {
633
+ i = N.lookupNode(i, r[o]);
634
+ } catch (e) {
635
+ if (e?.errno === 44 && s && t.noent_okay) return { path: a };
636
+ throw e;
637
+ }
638
+ if (N.isMountpoint(i) && (!s || t.follow_mount) && (i = i.mounted.root), N.isLink(i.mode) && (!s || t.follow)) {
639
+ if (!i.node_ops.readlink) throw new N.ErrnoError(52);
640
+ var c = i.node_ops.readlink(i);
641
+ S.isAbs(c) || (c = S.dirname(a) + "/" + c), e = c + "/" + r.slice(o + 1).join("/");
642
+ continue linkloop;
643
+ }
644
+ }
645
+ }
646
+ return {
647
+ path: a,
648
+ node: i
649
+ };
650
+ }
651
+ throw new N.ErrnoError(32);
652
+ },
653
+ getPath(e) {
654
+ for (var t;;) {
655
+ if (N.isRoot(e)) {
656
+ var n = e.mount.mountpoint;
657
+ return t ? n[n.length - 1] === "/" ? n + t : `${n}/${t}` : n;
658
+ }
659
+ t = t ? `${e.name}/${t}` : e.name, e = e.parent;
660
+ }
661
+ },
662
+ hashName(e, t) {
663
+ for (var n = 0, r = 0; r < t.length; r++) n = (n << 5) - n + t.charCodeAt(r) | 0;
664
+ return (e + n >>> 0) % N.nameTable.length;
665
+ },
666
+ hashAddNode(e) {
667
+ var t = N.hashName(e.parent.id, e.name);
668
+ e.name_next = N.nameTable[t], N.nameTable[t] = e;
669
+ },
670
+ hashRemoveNode(e) {
671
+ var t = N.hashName(e.parent.id, e.name);
672
+ if (N.nameTable[t] === e) N.nameTable[t] = e.name_next;
673
+ else for (var n = N.nameTable[t]; n;) {
674
+ if (n.name_next === e) {
675
+ n.name_next = e.name_next;
676
+ break;
677
+ }
678
+ n = n.name_next;
679
+ }
680
+ },
681
+ lookupNode(e, t) {
682
+ var n = N.mayLookup(e);
683
+ if (n) throw new N.ErrnoError(n);
684
+ for (var r = N.hashName(e.id, t), i = N.nameTable[r]; i; i = i.name_next) {
685
+ var a = i.name;
686
+ if (i.parent.id === e.id && a === t) return i;
687
+ }
688
+ return N.lookup(e, t);
689
+ },
690
+ createNode(e, t, n, r) {
691
+ var i = new N.FSNode(e, t, n, r);
692
+ return N.hashAddNode(i), i;
693
+ },
694
+ destroyNode(e) {
695
+ N.hashRemoveNode(e);
696
+ },
697
+ isRoot(e) {
698
+ return e === e.parent;
699
+ },
700
+ isMountpoint(e) {
701
+ return !!e.mounted;
702
+ },
703
+ isFile(e) {
704
+ return (e & 61440) == 32768;
705
+ },
706
+ isDir(e) {
707
+ return (e & 61440) == 16384;
708
+ },
709
+ isLink(e) {
710
+ return (e & 61440) == 40960;
711
+ },
712
+ isChrdev(e) {
713
+ return (e & 61440) == 8192;
714
+ },
715
+ isBlkdev(e) {
716
+ return (e & 61440) == 24576;
717
+ },
718
+ isFIFO(e) {
719
+ return (e & 61440) == 4096;
720
+ },
721
+ isSocket(e) {
722
+ return (e & 49152) == 49152;
723
+ },
724
+ flagsToPermissionString(e) {
725
+ var t = [
726
+ "r",
727
+ "w",
728
+ "rw"
729
+ ][e & 3];
730
+ return e & 512 && (t += "w"), t;
731
+ },
732
+ nodePermissions(e, t) {
733
+ return N.ignorePermissions ? 0 : t.includes("r") && !(e.mode & 292) || t.includes("w") && !(e.mode & 146) || t.includes("x") && !(e.mode & 73) ? 2 : 0;
734
+ },
735
+ mayLookup(e) {
736
+ return N.isDir(e.mode) ? N.nodePermissions(e, "x") || (e.node_ops.lookup ? 0 : 2) : 54;
737
+ },
738
+ mayCreate(e, t) {
739
+ if (!N.isDir(e.mode)) return 54;
740
+ try {
741
+ return N.lookupNode(e, t), 20;
742
+ } catch {}
743
+ return N.nodePermissions(e, "wx");
744
+ },
745
+ mayDelete(e, t, n) {
746
+ var r;
747
+ try {
748
+ r = N.lookupNode(e, t);
749
+ } catch (e) {
750
+ return e.errno;
751
+ }
752
+ var i = N.nodePermissions(e, "wx");
753
+ if (i) return i;
754
+ if (n) {
755
+ if (!N.isDir(r.mode)) return 54;
756
+ if (N.isRoot(r) || N.getPath(r) === N.cwd()) return 10;
757
+ } else if (N.isDir(r.mode)) return 31;
758
+ return 0;
759
+ },
760
+ mayOpen(e, t) {
761
+ if (!e) return 44;
762
+ if (N.isLink(e.mode)) return 32;
763
+ var n = N.flagsToPermissionString(t);
764
+ return N.isDir(e.mode) && (n !== "r" || t & 576) ? 31 : N.nodePermissions(e, n);
765
+ },
766
+ checkOpExists(e, t) {
767
+ if (!e) throw new N.ErrnoError(t);
768
+ return e;
769
+ },
770
+ MAX_OPEN_FDS: 4096,
771
+ nextfd() {
772
+ for (var e = 0; e <= N.MAX_OPEN_FDS; e++) if (!N.streams[e]) return e;
773
+ throw new N.ErrnoError(33);
774
+ },
775
+ getStreamChecked(e) {
776
+ var t = N.getStream(e);
777
+ if (!t) throw new N.ErrnoError(8);
778
+ return t;
779
+ },
780
+ getStream: (e) => N.streams[e],
781
+ createStream(e, t = -1) {
782
+ return e = Object.assign(new N.FSStream(), e), t == -1 && (t = N.nextfd()), e.fd = t, N.streams[t] = e, e;
783
+ },
784
+ closeStream(e) {
785
+ N.streams[e] = null;
786
+ },
787
+ dupStream(e, t = -1) {
788
+ var n = N.createStream(e, t);
789
+ return n.stream_ops?.dup?.(n), n;
790
+ },
791
+ doSetAttr(e, t, n) {
792
+ var r = e?.stream_ops.setattr, i = r ? e : t;
793
+ r ??= t.node_ops.setattr, N.checkOpExists(r, 63);
794
+ try {
795
+ r(i, n);
796
+ } catch (e) {
797
+ throw e instanceof RangeError ? new N.ErrnoError(22) : e;
798
+ }
799
+ },
800
+ chrdev_stream_ops: {
801
+ open(e) {
802
+ e.stream_ops = N.getDevice(e.node.rdev).stream_ops, e.stream_ops.open?.(e);
803
+ },
804
+ llseek() {
805
+ throw new N.ErrnoError(70);
806
+ }
807
+ },
808
+ major: (e) => e >> 8,
809
+ minor: (e) => e & 255,
810
+ makedev: (e, t) => e << 8 | t,
811
+ registerDevice(e, t) {
812
+ N.devices[e] = { stream_ops: t };
813
+ },
814
+ getDevice: (e) => N.devices[e],
815
+ getMounts(e) {
816
+ for (var t = [], n = [e]; n.length;) {
817
+ var r = n.pop();
818
+ t.push(r), n.push(...r.mounts);
819
+ }
820
+ return t;
821
+ },
822
+ syncfs(e, t) {
823
+ typeof e == "function" && (t = e, e = !1), N.syncFSRequests++, N.syncFSRequests > 1 && f(`warning: ${N.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);
824
+ var n = N.getMounts(N.root.mount), r = 0;
825
+ function i(e) {
826
+ return N.syncFSRequests--, t(e);
827
+ }
828
+ function a(e) {
829
+ if (e) return a.errored ? void 0 : (a.errored = !0, i(e));
830
+ ++r >= n.length && i(null);
831
+ }
832
+ for (var o of n) o.type.syncfs ? o.type.syncfs(o, e, a) : a(null);
833
+ },
834
+ mount(e, t, n) {
835
+ var r = n === "/", i = !n, a;
836
+ if (r && N.root) throw new N.ErrnoError(10);
837
+ if (!r && !i) {
838
+ var o = N.lookupPath(n, { follow_mount: !1 });
839
+ if (n = o.path, a = o.node, N.isMountpoint(a)) throw new N.ErrnoError(10);
840
+ if (!N.isDir(a.mode)) throw new N.ErrnoError(54);
841
+ }
842
+ var s = {
843
+ type: e,
844
+ opts: t,
845
+ mountpoint: n,
846
+ mounts: []
847
+ }, c = e.mount(s);
848
+ return c.mount = s, s.root = c, r ? N.root = c : a && (a.mounted = s, a.mount && a.mount.mounts.push(s)), c;
849
+ },
850
+ unmount(e) {
851
+ var t = N.lookupPath(e, { follow_mount: !1 });
852
+ if (!N.isMountpoint(t.node)) throw new N.ErrnoError(28);
853
+ var n = t.node, r = n.mounted, i = N.getMounts(r);
854
+ for (var [a, o] of Object.entries(N.nameTable)) for (; o;) {
855
+ var s = o.name_next;
856
+ i.includes(o.mount) && N.destroyNode(o), o = s;
857
+ }
858
+ n.mounted = null;
859
+ var c = n.mount.mounts.indexOf(r);
860
+ n.mount.mounts.splice(c, 1);
861
+ },
862
+ lookup(e, t) {
863
+ return e.node_ops.lookup(e, t);
864
+ },
865
+ mknod(e, t, n) {
866
+ var r = N.lookupPath(e, { parent: !0 }).node, i = S.basename(e);
867
+ if (!i) throw new N.ErrnoError(28);
868
+ if (i === "." || i === "..") throw new N.ErrnoError(20);
869
+ var a = N.mayCreate(r, i);
870
+ if (a) throw new N.ErrnoError(a);
871
+ if (!r.node_ops.mknod) throw new N.ErrnoError(63);
872
+ return r.node_ops.mknod(r, i, t, n);
873
+ },
874
+ statfs(e) {
875
+ return N.statfsNode(N.lookupPath(e, { follow: !0 }).node);
876
+ },
877
+ statfsStream(e) {
878
+ return N.statfsNode(e.node);
879
+ },
880
+ statfsNode(e) {
881
+ var t = {
882
+ bsize: 4096,
883
+ frsize: 4096,
884
+ blocks: 1e6,
885
+ bfree: 5e5,
886
+ bavail: 5e5,
887
+ files: N.nextInode,
888
+ ffree: N.nextInode - 1,
889
+ fsid: 42,
890
+ flags: 2,
891
+ namelen: 255
892
+ };
893
+ return e.node_ops.statfs && Object.assign(t, e.node_ops.statfs(e.mount.opts.root)), t;
894
+ },
895
+ create(e, t = 438) {
896
+ return t &= 4095, t |= 32768, N.mknod(e, t, 0);
897
+ },
898
+ mkdir(e, t = 511) {
899
+ return t &= 1023, t |= 16384, N.mknod(e, t, 0);
900
+ },
901
+ mkdirTree(e, t = 511) {
902
+ var n = e.split("/"), r = "";
903
+ for (var i of n) if (i) {
904
+ (r || S.isAbs(e)) && (r += "/"), r += i;
905
+ try {
906
+ N.mkdir(r, t);
907
+ } catch (e) {
908
+ if (e.errno != 20) throw e;
909
+ }
910
+ }
911
+ },
912
+ mkdev(e, t, n) {
913
+ return n === void 0 && (n = t, t = 438), t |= 8192, N.mknod(e, t, n);
914
+ },
915
+ symlink(e, t) {
916
+ if (!C.resolve(e)) throw new N.ErrnoError(44);
917
+ var n = N.lookupPath(t, { parent: !0 }).node;
918
+ if (!n) throw new N.ErrnoError(44);
919
+ var r = S.basename(t), i = N.mayCreate(n, r);
920
+ if (i) throw new N.ErrnoError(i);
921
+ if (!n.node_ops.symlink) throw new N.ErrnoError(63);
922
+ return n.node_ops.symlink(n, r, e);
923
+ },
924
+ link(e, t, n) {
925
+ var r = N.lookupPath(t, { parent: !0 }).node;
926
+ if (!r) throw new N.ErrnoError(44);
927
+ var i = S.basename(t), a = N.mayCreate(r, i);
928
+ if (a) throw new N.ErrnoError(a);
929
+ if (!r.node_ops.link) throw new N.ErrnoError(34);
930
+ return r.node_ops.link(r, i, e, n);
931
+ },
932
+ rename(e, t) {
933
+ var n = S.dirname(e), r = S.dirname(t), i = S.basename(e), a = S.basename(t), o = N.lookupPath(e, { parent: !0 }), s = o.node, c;
934
+ if (o = N.lookupPath(t, { parent: !0 }), c = o.node, !s || !c) throw new N.ErrnoError(44);
935
+ if (s.mount !== c.mount) throw new N.ErrnoError(75);
936
+ var l = N.lookupNode(s, i), u = C.relative(e, r);
937
+ if (u.charAt(0) !== ".") throw new N.ErrnoError(28);
938
+ if (u = C.relative(t, n), u.charAt(0) !== ".") throw new N.ErrnoError(55);
939
+ var d;
940
+ try {
941
+ d = N.lookupNode(c, a);
942
+ } catch {}
943
+ if (l !== d) {
944
+ var f = N.isDir(l.mode), p = N.mayDelete(s, i, f);
945
+ if (p || (p = d ? N.mayDelete(c, a, f) : N.mayCreate(c, a), p)) throw new N.ErrnoError(p);
946
+ if (!s.node_ops.rename) throw new N.ErrnoError(63);
947
+ if (N.isMountpoint(l) || d && N.isMountpoint(d)) throw new N.ErrnoError(10);
948
+ if (c !== s && (p = N.nodePermissions(s, "w"), p)) throw new N.ErrnoError(p);
949
+ N.hashRemoveNode(l);
950
+ try {
951
+ s.node_ops.rename(l, c, a), d && N.hashRemoveNode(d), l.parent = c;
952
+ } catch (e) {
953
+ throw e;
954
+ } finally {
955
+ N.hashAddNode(l);
956
+ }
957
+ }
958
+ },
959
+ rmdir(e) {
960
+ var t = N.lookupPath(e, { parent: !0 }).node, n = S.basename(e), r = N.lookupNode(t, n), i = N.mayDelete(t, n, !0);
961
+ if (i) throw new N.ErrnoError(i);
962
+ if (!t.node_ops.rmdir) throw new N.ErrnoError(63);
963
+ if (N.isMountpoint(r)) throw new N.ErrnoError(10);
964
+ t.node_ops.rmdir(t, n), N.destroyNode(r);
965
+ },
966
+ readdir(e) {
967
+ var t = N.lookupPath(e, { follow: !0 }).node;
968
+ return N.checkOpExists(t.node_ops.readdir, 54)(t);
969
+ },
970
+ unlink(e) {
971
+ var t = N.lookupPath(e, { parent: !0 }).node;
972
+ if (!t) throw new N.ErrnoError(44);
973
+ var n = S.basename(e), r = N.lookupNode(t, n), i = N.mayDelete(t, n, !1);
974
+ if (i) throw new N.ErrnoError(i);
975
+ if (!t.node_ops.unlink) throw new N.ErrnoError(63);
976
+ if (N.isMountpoint(r)) throw new N.ErrnoError(10);
977
+ t.node_ops.unlink(t, n), N.destroyNode(r);
978
+ },
979
+ readlink(e) {
980
+ var t = N.lookupPath(e).node;
981
+ if (!t) throw new N.ErrnoError(44);
982
+ if (!t.node_ops.readlink) throw new N.ErrnoError(28);
983
+ return t.node_ops.readlink(t);
984
+ },
985
+ stat(e, t = !1) {
986
+ var n = N.lookupPath(e, { follow: !t }).node;
987
+ return N.checkOpExists(n.node_ops.getattr, 63)(n);
988
+ },
989
+ fstat(e) {
990
+ var t = N.getStreamChecked(e), n = t.node, r = t.stream_ops.getattr, i = r ? t : n;
991
+ return r ??= n.node_ops.getattr, N.checkOpExists(r, 63), r(i);
992
+ },
993
+ lstat(e) {
994
+ return N.stat(e, !0);
995
+ },
996
+ doChmod(e, t, n, r = !1) {
997
+ N.doSetAttr(e, t, {
998
+ mode: n & 4095 | t.mode & -4096,
999
+ ctime: Date.now(),
1000
+ dontFollow: r
1001
+ });
1002
+ },
1003
+ chmod(e, t, n = !1) {
1004
+ var r = typeof e == "string" ? N.lookupPath(e, { follow: !n }).node : e;
1005
+ N.doChmod(null, r, t, n);
1006
+ },
1007
+ lchmod(e, t) {
1008
+ N.chmod(e, t, !0);
1009
+ },
1010
+ fchmod(e, t) {
1011
+ var n = N.getStreamChecked(e);
1012
+ N.doChmod(n, n.node, t, !1);
1013
+ },
1014
+ doChown(e, t, n = !1) {
1015
+ N.doSetAttr(e, t, {
1016
+ timestamp: Date.now(),
1017
+ dontFollow: n
1018
+ });
1019
+ },
1020
+ chown(e, t, n, r = !1) {
1021
+ var i = typeof e == "string" ? N.lookupPath(e, { follow: !r }).node : e;
1022
+ N.doChown(null, i, r);
1023
+ },
1024
+ lchown(e, t, n) {
1025
+ N.chown(e, t, n, !0);
1026
+ },
1027
+ fchown(e, t, n) {
1028
+ var r = N.getStreamChecked(e);
1029
+ N.doChown(r, r.node, !1);
1030
+ },
1031
+ doTruncate(e, t, n) {
1032
+ if (N.isDir(t.mode)) throw new N.ErrnoError(31);
1033
+ if (!N.isFile(t.mode)) throw new N.ErrnoError(28);
1034
+ var r = N.nodePermissions(t, "w");
1035
+ if (r) throw new N.ErrnoError(r);
1036
+ N.doSetAttr(e, t, {
1037
+ size: n,
1038
+ timestamp: Date.now()
1039
+ });
1040
+ },
1041
+ truncate(e, t) {
1042
+ if (t < 0) throw new N.ErrnoError(28);
1043
+ var n = typeof e == "string" ? N.lookupPath(e, { follow: !0 }).node : e;
1044
+ N.doTruncate(null, n, t);
1045
+ },
1046
+ ftruncate(e, t) {
1047
+ var n = N.getStreamChecked(e);
1048
+ if (t < 0 || !(n.flags & 2097155)) throw new N.ErrnoError(28);
1049
+ N.doTruncate(n, n.node, t);
1050
+ },
1051
+ utime(e, t, n, r = !1) {
1052
+ var i = N.lookupPath(e, { follow: !r });
1053
+ N.doSetAttr(null, i.node, {
1054
+ atime: t,
1055
+ mtime: n,
1056
+ dontFollow: r
1057
+ });
1058
+ },
1059
+ open(e, t, n = 438) {
1060
+ if (e === "") throw new N.ErrnoError(44);
1061
+ t = Se(t), n = t & 64 ? n & 4095 | 32768 : 0;
1062
+ var r, i;
1063
+ if (typeof e == "object") r = e;
1064
+ else {
1065
+ i = e.endsWith("/");
1066
+ var a = N.lookupPath(e, {
1067
+ follow: !(t & 131072),
1068
+ noent_okay: !0
1069
+ });
1070
+ r = a.node, e = a.path;
1071
+ }
1072
+ var o = !1;
1073
+ if (t & 64) {
1074
+ if (r) {
1075
+ if (t & 128) throw new N.ErrnoError(20);
1076
+ } else if (i) throw new N.ErrnoError(31);
1077
+ else r = N.mknod(e, n | 511, 0), o = !0;
1078
+ }
1079
+ if (!r) throw new N.ErrnoError(44);
1080
+ if (N.isChrdev(r.mode) && (t &= -513), t & 65536 && !N.isDir(r.mode)) throw new N.ErrnoError(54);
1081
+ if (!o) {
1082
+ var s = N.mayOpen(r, t);
1083
+ if (s) throw new N.ErrnoError(s);
1084
+ }
1085
+ t & 512 && !o && N.truncate(r, 0), t &= -131713;
1086
+ var c = N.createStream({
1087
+ node: r,
1088
+ path: N.getPath(r),
1089
+ flags: t,
1090
+ seekable: !0,
1091
+ position: 0,
1092
+ stream_ops: r.stream_ops,
1093
+ ungotten: [],
1094
+ error: !1
1095
+ });
1096
+ return c.stream_ops.open && c.stream_ops.open(c), o && N.chmod(r, n & 511), c;
1097
+ },
1098
+ close(e) {
1099
+ if (N.isClosed(e)) throw new N.ErrnoError(8);
1100
+ e.getdents &&= null, e.node?.notifyListeners(32);
1101
+ try {
1102
+ e.stream_ops.close && e.stream_ops.close(e);
1103
+ } catch (e) {
1104
+ throw e;
1105
+ } finally {
1106
+ N.closeStream(e.fd);
1107
+ }
1108
+ e.fd = null;
1109
+ },
1110
+ isClosed(e) {
1111
+ return e.fd === null;
1112
+ },
1113
+ llseek(e, t, n) {
1114
+ if (N.isClosed(e)) throw new N.ErrnoError(8);
1115
+ if (!e.seekable || !e.stream_ops.llseek) throw new N.ErrnoError(70);
1116
+ if (n != 0 && n != 1 && n != 2) throw new N.ErrnoError(28);
1117
+ return e.position = e.stream_ops.llseek(e, t, n), e.ungotten = [], e.position;
1118
+ },
1119
+ read(e, t, n, r, i) {
1120
+ if (r < 0 || i < 0) throw new N.ErrnoError(28);
1121
+ if (N.isClosed(e) || (e.flags & 2097155) == 1) throw new N.ErrnoError(8);
1122
+ if (N.isDir(e.node.mode)) throw new N.ErrnoError(31);
1123
+ if (!e.stream_ops.read) throw new N.ErrnoError(28);
1124
+ var a = i !== void 0;
1125
+ if (!a) i = e.position;
1126
+ else if (!e.seekable) throw new N.ErrnoError(70);
1127
+ var o = e.stream_ops.read(e, t, n, r, i);
1128
+ return a || (e.position += o), o;
1129
+ },
1130
+ write(e, t, n, r, i, a) {
1131
+ if (r < 0 || i < 0) throw new N.ErrnoError(28);
1132
+ if (N.isClosed(e) || !(e.flags & 2097155)) throw new N.ErrnoError(8);
1133
+ if (N.isDir(e.node.mode)) throw new N.ErrnoError(31);
1134
+ if (!e.stream_ops.write) throw new N.ErrnoError(28);
1135
+ e.seekable && e.flags & 1024 && N.llseek(e, 0, 2);
1136
+ var o = i !== void 0;
1137
+ if (!o) i = e.position;
1138
+ else if (!e.seekable) throw new N.ErrnoError(70);
1139
+ var s = e.stream_ops.write(e, t, n, r, i, a);
1140
+ return o || (e.position += s), s;
1141
+ },
1142
+ mmap(e, t, n, r, i) {
1143
+ if (r & 2 && !(i & 2) && (e.flags & 2097155) != 2 || (e.flags & 2097155) == 1) throw new N.ErrnoError(2);
1144
+ if (!e.stream_ops.mmap) throw new N.ErrnoError(43);
1145
+ if (!t) throw new N.ErrnoError(28);
1146
+ return e.stream_ops.mmap(e, t, n, r, i);
1147
+ },
1148
+ msync(e, t, n, r, i) {
1149
+ return e.stream_ops.msync ? e.stream_ops.msync(e, t, n, r, i) : 0;
1150
+ },
1151
+ ioctl(e, t, n) {
1152
+ if (!e.stream_ops.ioctl) throw new N.ErrnoError(59);
1153
+ return e.stream_ops.ioctl(e, t, n);
1154
+ },
1155
+ readFile(e, t = {}) {
1156
+ t.flags ??= 0, t.encoding ??= "binary", t.encoding !== "utf8" && t.encoding !== "binary" && m(`Invalid encoding type "${t.encoding}"`);
1157
+ var n = N.open(e, t.flags), r = N.stat(e).size, i = new Uint8Array(r);
1158
+ return N.read(n, i, 0, r, 0), t.encoding === "utf8" && (i = w(i)), N.close(n), i;
1159
+ },
1160
+ writeFile(e, t, n = {}) {
1161
+ n.flags ??= 577;
1162
+ var r = N.open(e, n.flags, n.mode);
1163
+ t = Ce(t), N.write(r, t, 0, t.byteLength, void 0, n.canOwn), N.close(r);
1164
+ },
1165
+ cwd: () => N.currentPath,
1166
+ chdir(e) {
1167
+ var t = N.lookupPath(e, { follow: !0 });
1168
+ if (t.node === null) throw new N.ErrnoError(44);
1169
+ if (!N.isDir(t.node.mode)) throw new N.ErrnoError(54);
1170
+ var n = N.nodePermissions(t.node, "x");
1171
+ if (n) throw new N.ErrnoError(n);
1172
+ N.currentPath = t.path;
1173
+ },
1174
+ createDefaultDirectories() {
1175
+ N.mkdir("/tmp"), N.mkdir("/home"), N.mkdir("/home/web_user");
1176
+ },
1177
+ createDefaultDevices() {
1178
+ N.mkdir("/dev"), N.registerDevice(N.makedev(1, 3), {
1179
+ read: () => 0,
1180
+ write: (e, t, n, r) => r,
1181
+ llseek: () => 0
1182
+ }), N.mkdev("/dev/null", N.makedev(1, 3)), k.register(N.makedev(5, 0), k.default_tty_ops), k.register(N.makedev(6, 0), k.default_tty1_ops), N.mkdev("/dev/tty", N.makedev(5, 0)), N.mkdev("/dev/tty1", N.makedev(6, 0));
1183
+ var e = /* @__PURE__ */ new Uint8Array(1024), t = 0, n = () => (t ||= (_e(e), e.byteLength), e[--t]);
1184
+ N.createDevice("/dev", "random", n), N.createDevice("/dev", "urandom", n), N.mkdir("/dev/shm"), N.mkdir("/dev/shm/tmp");
1185
+ },
1186
+ createSpecialDirectories() {
1187
+ N.mkdir("/proc");
1188
+ var e = N.mkdir("/proc/self");
1189
+ N.mkdir("/proc/self/fd"), N.mount({ mount() {
1190
+ var t = N.createNode(e, "fd", 16895, 73);
1191
+ return t.stream_ops = { llseek: A.stream_ops.llseek }, t.node_ops = {
1192
+ lookup(e, t) {
1193
+ var n = +t, r = N.getStreamChecked(n), i = {
1194
+ parent: null,
1195
+ mount: { mountpoint: "fake" },
1196
+ node_ops: { readlink: () => r.path },
1197
+ id: n + 1
1198
+ };
1199
+ return i.parent = i, i;
1200
+ },
1201
+ readdir() {
1202
+ return Array.from(N.streams.entries()).filter(([e, t]) => t).map(([e, t]) => e.toString());
1203
+ }
1204
+ }, t;
1205
+ } }, {}, "/proc/self/fd");
1206
+ },
1207
+ createStandardStreams(e, t, n) {
1208
+ e ? N.createDevice("/dev", "stdin", e) : N.symlink("/dev/tty", "/dev/stdin"), t ? N.createDevice("/dev", "stdout", null, t) : N.symlink("/dev/tty", "/dev/stdout"), n ? N.createDevice("/dev", "stderr", null, n) : N.symlink("/dev/tty1", "/dev/stderr"), N.open("/dev/stdin", 0), N.open("/dev/stdout", 1), N.open("/dev/stderr", 1);
1209
+ },
1210
+ staticInit() {
1211
+ N.nameTable.length = 4096, N.mount(A, {}, "/"), N.createDefaultDirectories(), N.createDefaultDevices(), N.createSpecialDirectories();
1212
+ },
1213
+ init(e, n, r) {
1214
+ N.initialized = !0, e ??= t.stdin, n ??= t.stdout, r ??= t.stderr, N.createStandardStreams(e, n, r);
1215
+ },
1216
+ quit() {
1217
+ N.initialized = !1;
1218
+ for (var e of N.streams) e && N.close(e);
1219
+ },
1220
+ analyzePath(e, t = !1) {
1221
+ try {
1222
+ var n = N.lookupPath(e, { follow: !t });
1223
+ e = n.path;
1224
+ } catch {}
1225
+ var r = {
1226
+ isRoot: !1,
1227
+ exists: !1,
1228
+ error: 0,
1229
+ name: null,
1230
+ path: null,
1231
+ object: null,
1232
+ parentExists: !1,
1233
+ parentPath: null,
1234
+ parentObject: null
1235
+ };
1236
+ try {
1237
+ n = N.lookupPath(e, { parent: !0 }), r.parentExists = !0, r.parentPath = n.path, r.parentObject = n.node, r.name = S.basename(e), n = N.lookupPath(e, { follow: !t }), r.exists = !0, r.path = n.path, r.object = n.node, r.name = n.node.name, r.isRoot = n.path === "/";
1238
+ } catch (e) {
1239
+ r.error = e.errno;
1240
+ }
1241
+ return r;
1242
+ },
1243
+ createPath(e, t, n, r) {
1244
+ e = typeof e == "string" ? e : N.getPath(e);
1245
+ for (var i = t.split("/").reverse(); i.length;) {
1246
+ var a = i.pop();
1247
+ if (a) {
1248
+ var o = S.join2(e, a);
1249
+ try {
1250
+ N.mkdir(o);
1251
+ } catch (e) {
1252
+ if (e.errno != 20) throw e;
1253
+ }
1254
+ e = o;
1255
+ }
1256
+ }
1257
+ return o;
1258
+ },
1259
+ createFile(e, t, n, r, i) {
1260
+ var a = S.join2(typeof e == "string" ? e : N.getPath(e), t), o = j(r, i);
1261
+ return N.create(a, o);
1262
+ },
1263
+ createDataFile(e, t, n, r, i, a) {
1264
+ var o = t;
1265
+ e && (e = typeof e == "string" ? e : N.getPath(e), o = t ? S.join2(e, t) : e);
1266
+ var s = j(r, i), c = N.create(o, s);
1267
+ if (n) {
1268
+ n = Ce(n), N.chmod(c, s | 146);
1269
+ var l = N.open(c, 577);
1270
+ N.write(l, n, 0, n.length, 0, a), N.close(l), N.chmod(c, s);
1271
+ }
1272
+ },
1273
+ createDevice(e, t, n, r) {
1274
+ var i = S.join2(typeof e == "string" ? e : N.getPath(e), t), a = j(!!n, !!r);
1275
+ N.createDevice.major ??= 64;
1276
+ var o = N.makedev(N.createDevice.major++, 0);
1277
+ return N.registerDevice(o, {
1278
+ open(e) {
1279
+ e.seekable = !1;
1280
+ },
1281
+ close(e) {
1282
+ r?.buffer?.length && r(10);
1283
+ },
1284
+ read(e, t, r, i, a) {
1285
+ for (var o = 0, s = 0; s < i; s++) {
1286
+ var c;
1287
+ try {
1288
+ c = n();
1289
+ } catch {
1290
+ throw new N.ErrnoError(29);
1291
+ }
1292
+ if (c === void 0 && !o) throw new N.ErrnoError(6);
1293
+ if (c == null) break;
1294
+ o++, t[r + s] = c;
1295
+ }
1296
+ return o && (e.node.atime = Date.now()), o;
1297
+ },
1298
+ write(e, t, n, i, a) {
1299
+ for (var o = 0; o < i; o++) try {
1300
+ r(t[n + o]);
1301
+ } catch {
1302
+ throw new N.ErrnoError(29);
1303
+ }
1304
+ return i && (e.node.mtime = e.node.ctime = Date.now()), o;
1305
+ }
1306
+ }), N.mkdev(i, a, o);
1307
+ },
1308
+ forceLoadFile(e) {
1309
+ if (e.isDevice || e.isFolder || e.link || e.contents) return !0;
1310
+ if (globalThis.XMLHttpRequest) m("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.");
1311
+ else try {
1312
+ e.contents = u(e.url);
1313
+ } catch {
1314
+ throw new N.ErrnoError(29);
1315
+ }
1316
+ },
1317
+ createLazyFile(e, t, n, i, a) {
1318
+ class o {
1319
+ lengthKnown = !1;
1320
+ chunks = [];
1321
+ get(e) {
1322
+ if (!(e > this.length - 1 || e < 0)) {
1323
+ var t = e % this.chunkSize, n = e / this.chunkSize | 0;
1324
+ return this.getter(n)[t];
1325
+ }
1326
+ }
1327
+ setDataGetter(e) {
1328
+ this.getter = e;
1329
+ }
1330
+ cacheLength() {
1331
+ var e = new XMLHttpRequest();
1332
+ e.open("HEAD", n, !1), e.send(null), e.status >= 200 && e.status < 300 || e.status === 304 || m(`Couldn't load ${n}. Status: ${e.status}`);
1333
+ var t = Number(e.getResponseHeader("Content-length")), r, i = (r = e.getResponseHeader("Accept-Ranges")) && r === "bytes", a = (r = e.getResponseHeader("Content-Encoding")) && r === "gzip", o = 1048576;
1334
+ i || (o = t);
1335
+ var s = (e, r) => {
1336
+ e > r && m(`invalid range (${e}, ${r}) or no bytes requested!`), r > t - 1 && m(`only ${t} bytes available! programmer error!`);
1337
+ var i = new XMLHttpRequest();
1338
+ return i.open("GET", n, !1), t !== o && i.setRequestHeader("Range", `bytes=${e}-${r}`), i.responseType = "arraybuffer", i.overrideMimeType && i.overrideMimeType("text/plain; charset=x-user-defined"), i.send(null), i.status >= 200 && i.status < 300 || i.status === 304 || m(`Couldn't load ${n}. Status: ${i.status}`), i.response === void 0 ? O(i.responseText ?? "", !0) : new Uint8Array(i.response || []);
1339
+ }, c = this;
1340
+ c.setDataGetter((e) => {
1341
+ var n = e * o, r = (e + 1) * o - 1;
1342
+ return r = Math.min(r, t - 1), c.chunks[e] === void 0 && (c.chunks[e] = s(n, r)), c.chunks[e] === void 0 && m("doXHR failed!"), c.chunks[e];
1343
+ }), (a || !t) && (o = t = 1, t = this.getter(0).length, o = t, d("LazyFiles on gzip forces download of the whole file when length is accessed")), this._length = t, this._chunkSize = o, this.lengthKnown = !0;
1344
+ }
1345
+ get length() {
1346
+ return this.lengthKnown || this.cacheLength(), this._length;
1347
+ }
1348
+ get chunkSize() {
1349
+ return this.lengthKnown || this.cacheLength(), this._chunkSize;
1350
+ }
1351
+ }
1352
+ if (globalThis.XMLHttpRequest) {
1353
+ r || m("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");
1354
+ var s = {
1355
+ isDevice: !1,
1356
+ contents: new o()
1357
+ };
1358
+ } else s = {
1359
+ isDevice: !1,
1360
+ url: n
1361
+ };
1362
+ var c = N.createFile(e, t, s, i, a);
1363
+ s.contents ? c.contents = s.contents : s.url && (c.contents = null, c.url = s.url), Object.defineProperties(c, { usedBytes: { get: function() {
1364
+ return this.contents.length;
1365
+ } } });
1366
+ var l = {};
1367
+ for (let [e, t] of Object.entries(c.stream_ops)) l[e] = (...e) => (N.forceLoadFile(c), t(...e));
1368
+ function u(e, t, n, r, i) {
1369
+ var a = e.node.contents;
1370
+ if (i >= a.length) return 0;
1371
+ var o = Math.min(a.length - i, r);
1372
+ if (a.slice) for (var s = 0; s < o; s++) t[n + s] = a[i + s];
1373
+ else for (s = 0; s < o; s++) t[n + s] = a.get(i + s);
1374
+ return o;
1375
+ }
1376
+ return l.read = (e, t, n, r, i) => (N.forceLoadFile(c), u(e, t, n, r, i)), l.mmap = (e, t, n) => {
1377
+ N.forceLoadFile(c);
1378
+ var r = xe();
1379
+ if (!r) throw new N.ErrnoError(48);
1380
+ return u(e, g, r, t, n), {
1381
+ ptr: r,
1382
+ allocated: !0
1383
+ };
1384
+ }, c.stream_ops = l, c;
1385
+ }
1386
+ }, P, F = (e, t, n) => e ? w(P, e, t, n) : "", I, L, R = {
1387
+ currentUmask: 18,
1388
+ calculateAt(e, t, n = !1) {
1389
+ if (S.isAbs(t)) return t;
1390
+ var r = e === -100 ? N.cwd() : R.getStreamFromFD(e).path;
1391
+ if (t.length == 0) {
1392
+ if (!n) throw new N.ErrnoError(44);
1393
+ return r;
1394
+ }
1395
+ return r + "/" + t;
1396
+ },
1397
+ writeStat(e, t) {
1398
+ I[e >> 2] = t.dev, I[e + 4 >> 2] = t.mode, I[e + 8 >> 2] = t.nlink, I[e + 12 >> 2] = t.uid, I[e + 16 >> 2] = t.gid, I[e + 20 >> 2] = t.rdev, L[e + 24 >> 3] = BigInt(t.size), y[e + 32 >> 2] = 4096, y[e + 36 >> 2] = t.blocks;
1399
+ var n = t.atime.getTime(), r = t.mtime.getTime(), i = t.ctime.getTime();
1400
+ return L[e + 40 >> 3] = BigInt(Math.floor(n / 1e3)), I[e + 48 >> 2] = n % 1e3 * 1e3 * 1e3, L[e + 56 >> 3] = BigInt(Math.floor(r / 1e3)), I[e + 64 >> 2] = r % 1e3 * 1e3 * 1e3, L[e + 72 >> 3] = BigInt(Math.floor(i / 1e3)), I[e + 80 >> 2] = i % 1e3 * 1e3 * 1e3, L[e + 88 >> 3] = BigInt(t.ino), 0;
1401
+ },
1402
+ writeStatFs(e, t) {
1403
+ I[e + 4 >> 2] = t.bsize, I[e + 60 >> 2] = t.bsize, L[e + 8 >> 3] = BigInt(t.blocks), L[e + 16 >> 3] = BigInt(t.bfree), L[e + 24 >> 3] = BigInt(t.bavail), L[e + 32 >> 3] = BigInt(t.files), L[e + 40 >> 3] = BigInt(t.ffree), I[e + 48 >> 2] = t.fsid, I[e + 64 >> 2] = t.flags, I[e + 56 >> 2] = t.namelen;
1404
+ },
1405
+ doMsync(e, t, n, r, i) {
1406
+ if (!N.isFile(t.node.mode)) throw new N.ErrnoError(43);
1407
+ if (r & 2) return 0;
1408
+ var a = P.subarray(e, e + n);
1409
+ N.msync(t, a, i, n, r);
1410
+ },
1411
+ getStreamFromFD(e) {
1412
+ return N.getStreamChecked(e);
1413
+ },
1414
+ varargs: void 0,
1415
+ getStr(e) {
1416
+ return F(e);
1417
+ }
1418
+ }, z, B = (e, t, n) => D(e, P, t, n), Pe = () => performance.now(), Fe = () => Date.now(), Ie = (e) => e >= 0 && e <= 3, Le = (e) => e < -9007199254740992 || e > 9007199254740992 ? NaN : Number(e), Re = () => 2147483648, ze = (e, t) => Math.ceil(e / t) * t, Be = (e) => {
1419
+ var t = (e - Z.buffer.byteLength + 65535) / 65536 | 0;
1420
+ try {
1421
+ return Z.grow(t), re(), 1;
1422
+ } catch {}
1423
+ }, V = {}, Ve = () => i, H = () => {
1424
+ if (!H.strings) {
1425
+ var e = {
1426
+ USER: "web_user",
1427
+ LOGNAME: "web_user",
1428
+ PATH: "/",
1429
+ PWD: "/",
1430
+ HOME: "/home/web_user",
1431
+ LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8",
1432
+ _: Ve()
1433
+ };
1434
+ for (var t in V) V[t] === void 0 ? delete e[t] : e[t] = V[t];
1435
+ var n = [];
1436
+ for (var t in e) n.push(`${t}=${e[t]}`);
1437
+ H.strings = n;
1438
+ }
1439
+ return H.strings;
1440
+ }, He = () => he || !1, Ue = (e) => {
1441
+ He() || (t.onExit?.(e), p = !0), a(e, new pe(e));
1442
+ }, We = (e) => {
1443
+ Ue(e);
1444
+ }, Ge = (e, t, n, r) => {
1445
+ for (var i = 0, a = 0; a < n; a++) {
1446
+ var o = I[t >> 2], s = I[t + 4 >> 2];
1447
+ t += 8;
1448
+ try {
1449
+ var c = N.read(e, g, o, s, r);
1450
+ } catch (e) {
1451
+ if (i > 0 && e instanceof N.ErrnoError && (e.errno == 6 || e.errno == 6)) break;
1452
+ throw e;
1453
+ }
1454
+ if (c < 0) return -1;
1455
+ if (i += c, c < s) break;
1456
+ r !== void 0 && (r += c);
1457
+ }
1458
+ return i;
1459
+ }, Ke = (e, t, n, r) => {
1460
+ if (n == 1) return N.write(e, g, I[t >> 2], I[t + 4 >> 2], r);
1461
+ for (var i = 0, a = 0, o = t; a < n; a++, o += 8) i += I[o + 4 >> 2];
1462
+ var s = new Uint8Array(i), c = 0;
1463
+ for (a = 0; a < n; a++, t += 8) {
1464
+ var l = I[t >> 2], u = I[t + 4 >> 2];
1465
+ s.set(P.subarray(l, l + u), c), c += u;
1466
+ }
1467
+ return N.write(e, s, 0, i, r);
1468
+ }, qe = (e) => t["_" + e], Je = (e, t) => {
1469
+ g.set(e, t);
1470
+ }, Ye = (e) => lt(e), Xe = (e) => {
1471
+ var t = E(e) + 1, n = Ye(t);
1472
+ return B(e, n, t), n;
1473
+ }, Ze = () => ut(), Qe = (e) => ct(e), $e = (e, t, n, r) => {
1474
+ var i = {
1475
+ string: (e) => {
1476
+ var t = 0;
1477
+ return e != null && e !== 0 && (t = Xe(e)), t;
1478
+ },
1479
+ array: (e) => {
1480
+ var t = Ye(e.length);
1481
+ return Je(e, t), t;
1482
+ }
1483
+ };
1484
+ function a(e) {
1485
+ return t === "string" ? F(e) : t === "boolean" ? !!e : e;
1486
+ }
1487
+ var o = qe(e), s = [], c = 0;
1488
+ if (r) for (var l = 0; l < r.length; l++) {
1489
+ var u = i[n[l]];
1490
+ u ? (c ||= Ze(), s[l] = u(r[l])) : s[l] = r[l];
1491
+ }
1492
+ var d = o(...s);
1493
+ return d = function(e) {
1494
+ return c && Qe(c), a(e);
1495
+ }(d), d;
1496
+ }, U, W, G = [], et = (e) => {
1497
+ var t = G[e];
1498
+ return t || (G[e] = t = Q.get(e)), t;
1499
+ }, tt = (e, t) => {
1500
+ if (K) for (var n = e; n < e + t; n++) {
1501
+ var r = et(n);
1502
+ r && K.set(r, n);
1503
+ }
1504
+ }, K, nt = (e) => (K || (K = /* @__PURE__ */ new WeakMap(), tt(0, Q.length)), K.get(e) || 0), q = [], rt = () => q.length ? q.pop() : Q.grow(1), J = (e, t) => {
1505
+ Q.set(e, t), G[e] = Q.get(e);
1506
+ }, Y = (e) => {
1507
+ let t = e.length;
1508
+ return [
1509
+ t % 128 | 128,
1510
+ t >> 7,
1511
+ ...e
1512
+ ];
1513
+ }, it = {
1514
+ i: 127,
1515
+ p: 127,
1516
+ j: 126,
1517
+ f: 125,
1518
+ d: 124,
1519
+ e: 111
1520
+ }, at = (e) => Y(Array.from(e, (e) => it[e])), ot = (e, t) => {
1521
+ var n = Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0, 1, ...Y([
1522
+ 1,
1523
+ 96,
1524
+ ...at(t.slice(1)),
1525
+ ...at(t[0] === "v" ? "" : t[0])
1526
+ ]), 2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0), r = new WebAssembly.Module(n);
1527
+ return new WebAssembly.Instance(r, { e: { f: e } }).exports.f;
1528
+ };
1529
+ N.createPreloadedFile = (e, t, n, r, i, a, o, s, c, l) => {
1530
+ Ne(e, t, n, r, i, s, c, l).then(a).catch(o);
1531
+ }, N.preloadFile = Ne, N.staticInit(), t.noExitRuntime && (he = t.noExitRuntime), t.print && (d = t.print), t.printErr && (f = t.printErr), t.arguments && t.arguments, t.thisProgram && (i = t.thisProgram);
1532
+ var X = t.preInit;
1533
+ if (X) for (typeof X == "function" && (t.preInit = X = [X]); X.length > 0;) X.shift()();
1534
+ t.ccall = $e, t.cwrap = (e, t, n, r) => {
1535
+ var i = !n || n.every((e) => e === "number" || e === "boolean");
1536
+ return t !== "string" && i && !r ? qe(e) : (...r) => $e(e, t, n, r);
1537
+ }, t.addFunction = (e, t) => {
1538
+ var n = nt(e);
1539
+ if (n) return n;
1540
+ var r = rt();
1541
+ try {
1542
+ J(r, e);
1543
+ } catch (n) {
1544
+ if (!(n instanceof TypeError)) throw n;
1545
+ J(r, ot(e, t));
1546
+ }
1547
+ return K.set(e, r), r;
1548
+ }, t.removeFunction = (e) => {
1549
+ K.delete(et(e)), J(e, null), q.push(e);
1550
+ }, t.setValue = function(e, t, n = "i8") {
1551
+ switch (n.endsWith("*") && (n = "*"), n) {
1552
+ case "i1":
1553
+ g[e] = t;
1554
+ break;
1555
+ case "i8":
1556
+ g[e] = t;
1557
+ break;
1558
+ case "i16":
1559
+ z[e >> 1] = t;
1560
+ break;
1561
+ case "i32":
1562
+ y[e >> 2] = t;
1563
+ break;
1564
+ case "i64":
1565
+ L[e >> 3] = BigInt(t);
1566
+ break;
1567
+ case "float":
1568
+ U[e >> 2] = t;
1569
+ break;
1570
+ case "double":
1571
+ W[e >> 3] = t;
1572
+ break;
1573
+ case "*":
1574
+ I[e >> 2] = t;
1575
+ break;
1576
+ default: m(`invalid type for setValue: ${n}`);
1577
+ }
1578
+ }, t.getValue = function(e, t = "i8") {
1579
+ switch (t.endsWith("*") && (t = "*"), t) {
1580
+ case "i1": return g[e];
1581
+ case "i8": return g[e];
1582
+ case "i16": return z[e >> 1];
1583
+ case "i32": return y[e >> 2];
1584
+ case "i64": return L[e >> 3];
1585
+ case "float": return U[e >> 2];
1586
+ case "double": return W[e >> 3];
1587
+ case "*": return I[e >> 2];
1588
+ default: m(`invalid type for getValue: ${t}`);
1589
+ }
1590
+ }, t.UTF8ToString = F, t.stringToUTF8 = B, t.FS = N;
1591
+ var st, ct, lt, ut, Z, Q;
1592
+ function dt(e) {
1593
+ t._Highs_create = e.t, t._Highs_destroy = e.u, t._Highs_version = e.v, t._Highs_run = e.w, t._Highs_readModel = e.x, t._Highs_getNumCol = e.y, t._Highs_clearModel = e.z, t._Highs_setBoolOptionValue = e.A, t._Highs_setIntOptionValue = e.B, t._Highs_setDoubleOptionValue = e.C, t._Highs_setStringOptionValue = e.D, t._Highs_getIntInfoValue = e.E, t._Highs_getDoubleInfoValue = e.F, t._Highs_getInt64InfoValue = e.G, t._Highs_getSolution = e.H, t._Highs_getModelStatus = e.I, t._Highs_getObjectiveValue = e.J, t._Highs_getNumRow = e.K, t._Highs_setSolution = e.L, t._Highs_setSparseSolution = e.M, t._Highs_setCallback = e.N, t._Highs_startCallback = e.O, t._Highs_stopCallback = e.P, t._Highs_changeObjectiveOffset = e.Q, t._Highs_getObjectiveOffset = e.R, t._Highs_getRowName = e.S, t._Highs_getColName = e.T, t._Highs_getColIntegrality = e.U, t._Highs_getNumNz = e.V, t._malloc = e.W, t._free = e.X, st = e.Y, ct = e.Z, lt = e._, ut = e.$, Z = t.wasmMemory = e.r, Q = e.aa;
1594
+ }
1595
+ var ft = {
1596
+ c: function(e, t, n) {
1597
+ R.varargs = n;
1598
+ try {
1599
+ var r = R.getStreamFromFD(e);
1600
+ switch (t) {
1601
+ case 0:
1602
+ var i = b();
1603
+ if (i < 0) return -28;
1604
+ for (; N.streams[i];) i++;
1605
+ return N.dupStream(r, i).fd;
1606
+ case 1:
1607
+ case 2: return 0;
1608
+ case 3: return r.flags;
1609
+ case 4: return i = b(), r.flags = r.flags & -289793 | i & 289792, 0;
1610
+ case 12: return i = x(), z[i + 0 >> 1] = 2, 0;
1611
+ case 13:
1612
+ case 14: return 0;
1613
+ }
1614
+ return -28;
1615
+ } catch (e) {
1616
+ if (N === void 0 || e.name !== "ErrnoError") throw e;
1617
+ return -e.errno;
1618
+ }
1619
+ },
1620
+ g: function(e, t, n) {
1621
+ R.varargs = n;
1622
+ try {
1623
+ var r = R.getStreamFromFD(e);
1624
+ switch (t) {
1625
+ case 21509: return r.tty ? 0 : -59;
1626
+ case 21505:
1627
+ if (!r.tty) return -59;
1628
+ if (r.tty.ops.ioctl_tcgets) {
1629
+ var i = r.tty.ops.ioctl_tcgets(r), a = x();
1630
+ y[a >> 2] = i.c_iflag || 0, y[a + 4 >> 2] = i.c_oflag || 0, y[a + 8 >> 2] = i.c_cflag || 0, y[a + 12 >> 2] = i.c_lflag || 0;
1631
+ for (var o = 0; o < 32; o++) g[a + o + 17] = i.c_cc[o] || 0;
1632
+ return 0;
1633
+ }
1634
+ return 0;
1635
+ case 21510:
1636
+ case 21511:
1637
+ case 21512: return r.tty ? 0 : -59;
1638
+ case 21506:
1639
+ case 21507:
1640
+ case 21508:
1641
+ if (!r.tty) return -59;
1642
+ if (r.tty.ops.ioctl_tcsets) {
1643
+ a = x();
1644
+ var s = y[a >> 2], c = y[a + 4 >> 2], l = y[a + 8 >> 2], u = y[a + 12 >> 2], d = [];
1645
+ for (o = 0; o < 32; o++) d.push(g[a + o + 17]);
1646
+ return r.tty.ops.ioctl_tcsets(r.tty, t, {
1647
+ c_iflag: s,
1648
+ c_oflag: c,
1649
+ c_cflag: l,
1650
+ c_lflag: u,
1651
+ c_cc: d
1652
+ });
1653
+ }
1654
+ return 0;
1655
+ case 21519: return r.tty ? (a = x(), y[a >> 2] = 0, 0) : -59;
1656
+ case 21520: return r.tty ? -28 : -59;
1657
+ case 21537:
1658
+ case 21531: return a = x(), N.ioctl(r, t, a);
1659
+ case 21523:
1660
+ if (!r.tty) return -59;
1661
+ if (r.tty.ops.ioctl_tiocgwinsz) {
1662
+ var f = r.tty.ops.ioctl_tiocgwinsz(r.tty);
1663
+ a = x(), z[a >> 1] = f[0], z[a + 2 >> 1] = f[1];
1664
+ }
1665
+ return 0;
1666
+ case 21524: return r.tty ? 0 : -59;
1667
+ case 21515: return r.tty ? 0 : -59;
1668
+ default: return -28;
1669
+ }
1670
+ } catch (e) {
1671
+ if (N === void 0 || e.name !== "ErrnoError") throw e;
1672
+ return -e.errno;
1673
+ }
1674
+ },
1675
+ h: function(e, t, n, r) {
1676
+ R.varargs = r;
1677
+ try {
1678
+ t = R.getStr(t), t = R.calculateAt(e, t);
1679
+ var i = r ? b() : 0;
1680
+ return n & 64 && (i &= ~R.currentUmask), N.open(t, n, i).fd;
1681
+ } catch (e) {
1682
+ if (N === void 0 || e.name !== "ErrnoError") throw e;
1683
+ return -e.errno;
1684
+ }
1685
+ },
1686
+ p: () => m(""),
1687
+ m: (e, t, n, r) => {
1688
+ var i = (/* @__PURE__ */ new Date()).getFullYear(), a = new Date(i, 0, 1), o = new Date(i, 6, 1), s = a.getTimezoneOffset(), c = o.getTimezoneOffset(), l = Math.max(s, c);
1689
+ I[e >> 2] = l * 60, y[t >> 2] = Number(s != c);
1690
+ var u = (e) => {
1691
+ var t = e >= 0 ? "-" : "+", n = Math.abs(e);
1692
+ return `UTC${t}${String(Math.floor(n / 60)).padStart(2, "0")}${String(n % 60).padStart(2, "0")}`;
1693
+ }, d = u(s), f = u(c);
1694
+ c < s ? (B(d, n, 17), B(f, r, 17)) : (B(d, r, 17), B(f, n, 17));
1695
+ },
1696
+ n: function(e, t, n) {
1697
+ if (t = Le(t), !Ie(e)) return 28;
1698
+ var r = e === 0 ? Fe() : Pe(), i = Math.round(r * 1e6);
1699
+ return L[n >> 3] = BigInt(i), 0;
1700
+ },
1701
+ j: Fe,
1702
+ i: () => Re(),
1703
+ b: Pe,
1704
+ q: (e) => {
1705
+ var t = P.length;
1706
+ e >>>= 0;
1707
+ var n = Re();
1708
+ if (e > n) return !1;
1709
+ for (var r = 1; r <= 4; r *= 2) {
1710
+ var i = t * (1 + .2 / r);
1711
+ if (i = Math.min(i, e + 100663296), Be(Math.min(n, ze(Math.max(e, i), 65536)))) return !0;
1712
+ }
1713
+ return !1;
1714
+ },
1715
+ k: (e, t) => {
1716
+ var n = 0, r = 0;
1717
+ for (var i of H()) {
1718
+ var a = t + n;
1719
+ I[e + r >> 2] = a, n += B(i, a, 1 / 0) + 1, r += 4;
1720
+ }
1721
+ return 0;
1722
+ },
1723
+ l: (e, t) => {
1724
+ var n = H();
1725
+ I[e >> 2] = n.length;
1726
+ var r = 0;
1727
+ for (var i of n) r += E(i) + 1;
1728
+ return I[t >> 2] = r, 0;
1729
+ },
1730
+ a: We,
1731
+ e: function(e) {
1732
+ try {
1733
+ var t = R.getStreamFromFD(e);
1734
+ return N.close(t), 0;
1735
+ } catch (e) {
1736
+ if (N === void 0 || e.name !== "ErrnoError") throw e;
1737
+ return e.errno;
1738
+ }
1739
+ },
1740
+ o: function(e, t, n, r) {
1741
+ try {
1742
+ var i = Ge(R.getStreamFromFD(e), t, n);
1743
+ return I[r >> 2] = i, 0;
1744
+ } catch (e) {
1745
+ if (N === void 0 || e.name !== "ErrnoError") throw e;
1746
+ return e.errno;
1747
+ }
1748
+ },
1749
+ f: function(e, t, n, r) {
1750
+ t = Le(t);
1751
+ try {
1752
+ if (isNaN(t)) return 22;
1753
+ var i = R.getStreamFromFD(e);
1754
+ return N.llseek(i, t, n), L[r >> 3] = BigInt(i.position), i.getdents && !t && n === 0 && (i.getdents = null), 0;
1755
+ } catch (e) {
1756
+ if (N === void 0 || e.name !== "ErrnoError") throw e;
1757
+ return e.errno;
1758
+ }
1759
+ },
1760
+ d: function(e, t, n, r) {
1761
+ try {
1762
+ var i = Ke(R.getStreamFromFD(e), t, n);
1763
+ return I[r >> 2] = i, 0;
1764
+ } catch (e) {
1765
+ if (N === void 0 || e.name !== "ErrnoError") throw e;
1766
+ return e.errno;
1767
+ }
1768
+ }
1769
+ }, $ = await async function() {
1770
+ function e(e) {
1771
+ return $ = e.exports, dt($), re(), $;
1772
+ }
1773
+ var n = fe(), r = t.instantiateWasm;
1774
+ return r ? new Promise((t) => {
1775
+ r(n, (n) => t(e(n)));
1776
+ }) : (h ??= se(), function(t) {
1777
+ return e(t.instance);
1778
+ }(await de(void 0, h, n)));
1779
+ }();
1780
+ return await async function() {
1781
+ ie(), M && await De();
1782
+ var e = t.setStatus;
1783
+ e && (e("Running..."), await new Promise((e) => setTimeout(e, 1)), setTimeout(e, 1, "")), !p && (ae(), t.onRuntimeInitialized?.(), oe());
1784
+ }(), t;
1785
+ }
1786
+ //#endregion
1787
+ //#region src/modeler/solvers/highs/browser-runtime.ts
1788
+ async function n(n = {}) {
1789
+ let r = await t(n);
1790
+ return new e(r);
1791
+ }
1792
+ //#endregion
1793
+ export { n as default };