Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quarto-dev
GitHub Repository: quarto-dev/quarto-cli
Path: blob/main/src/resources/js/graphviz-wasm.js
12921 views
1
// deno-lint-ignore-file
2
3
/*
4
* graphviz-wasm.js
5
*
6
* This is a pretty-printed, hand-edited version of the minified build from https://github.com/hpcc-systems/hpcc-js-wasm/
7
*
8
*
9
* Copyright (C) 2022 by https://github.com/hpcc-systems/hpcc-js-wasm authors
10
*
11
* adaptations to make it run on deno are
12
*
13
* Copyright (C) 2022 Posit Software, PBC
14
*
15
*/
16
17
/*import { resourcePath } from "../../core/resources.ts";
18
import { asDataUrl } from "../../core/data-url.ts";*/
19
20
const exportVals = {};
21
22
export function graphviz() {
23
return exportVals.graphviz;
24
}
25
26
export function graphvizSync() {
27
return exportVals.graphvizSync;
28
}
29
30
export function wasmPath() {
31
return `${Deno.env.get("QUARTO_SHARE_PATH")}/wasm/graphvizlib.wasm`;
32
}
33
34
export function graphvizWasmModule() {
35
const gvWasmSrc = Deno.readFileSync(wasmPath());
36
return new WebAssembly.Module(gvWasmSrc);
37
}
38
39
export function graphvizWasm() {
40
throw new Error("I bet we don't trigger this.");
41
/*const gvWasmSrc = Deno.readFileSync(wasmPath()).buffer;
42
return asDataUrl(gvWasmSrc, "application/wasm");*/
43
}
44
45
!(function (r, e) {
46
e(r);
47
/*"object" == typeof exports && "undefined" != typeof module
48
? e(exports)
49
: "function" == typeof define && define.amd
50
? define(["exports"], e)
51
: e(
52
(r = "undefined" != typeof globalThis ? globalThis : r || self)[
53
"@hpcc-js/wasm"
54
] = {},
55
);*/
56
})(exportVals, function (r) {
57
"use strict";
58
function e(r, e) {
59
return (
60
e.forEach(function (e) {
61
e &&
62
"string" != typeof e &&
63
!Array.isArray(e) &&
64
Object.keys(e).forEach(function (t) {
65
if ("default" !== t && !(t in r)) {
66
var n = Object.getOwnPropertyDescriptor(e, t);
67
Object.defineProperty(
68
r,
69
t,
70
n.get
71
? n
72
: {
73
enumerable: !0,
74
get: function () {
75
return e[t];
76
},
77
}
78
);
79
}
80
});
81
}),
82
Object.freeze(r)
83
);
84
}
85
var t = { exports: {} };
86
!(function (r, e) {
87
var t,
88
n =
89
((t =
90
"undefined" != typeof document && document.currentScript
91
? document.currentScript.src
92
: void 0),
93
function (r) {
94
var e,
95
n,
96
o = void 0 !== (r = r || {}) ? r : {};
97
o.ready = new Promise(function (r, t) {
98
(e = r), (n = t);
99
});
100
var a,
101
i,
102
s = Object.assign({}, o),
103
u = "./this.program",
104
c = "";
105
"undefined" != typeof document &&
106
document.currentScript &&
107
(c = document.currentScript.src),
108
t && (c = t),
109
(c =
110
0 !== c.indexOf("blob:")
111
? c.substr(0, c.replace(/[?#].*/, "").lastIndexOf("/") + 1)
112
: ""),
113
(a = (r) => {
114
var e = new XMLHttpRequest();
115
return e.open("GET", r, !1), e.send(null), e.responseText;
116
}),
117
(i = (r, e, t) => {
118
var n = new XMLHttpRequest();
119
n.open("GET", r, !0),
120
(n.responseType = "arraybuffer"),
121
(n.onload = () => {
122
200 == n.status || (0 == n.status && n.response)
123
? e(n.response)
124
: t();
125
}),
126
(n.onerror = t),
127
n.send(null);
128
});
129
var l,
130
d,
131
f = o.print || console.log.bind(console),
132
p = o.printErr || console.warn.bind(console);
133
Object.assign(o, s),
134
(s = null),
135
o.arguments,
136
o.thisProgram && (u = o.thisProgram),
137
o.quit,
138
o.wasmBinary && (l = o.wasmBinary),
139
o.noExitRuntime,
140
"object" != typeof WebAssembly &&
141
L("no native wasm support detected");
142
var m = !1;
143
function h(r, e) {
144
r || L(e);
145
}
146
var v,
147
w,
148
_,
149
y,
150
E,
151
g,
152
b =
153
"undefined" != typeof TextDecoder
154
? new TextDecoder("utf8")
155
: void 0;
156
function k(r, e, t) {
157
for (var n = e + t, o = e; r[o] && !(o >= n); ) ++o;
158
if (o - e > 16 && r.subarray && b) {
159
return b.decode(r.subarray(e, o));
160
}
161
for (var a = ""; e < o; ) {
162
var i = r[e++];
163
if (128 & i) {
164
var s = 63 & r[e++];
165
if (192 != (224 & i)) {
166
var u = 63 & r[e++];
167
if (
168
(i =
169
224 == (240 & i)
170
? ((15 & i) << 12) | (s << 6) | u
171
: ((7 & i) << 18) |
172
(s << 12) |
173
(u << 6) |
174
(63 & r[e++])) < 65536
175
) {
176
a += String.fromCharCode(i);
177
} else {
178
var c = i - 65536;
179
a += String.fromCharCode(
180
55296 | (c >> 10),
181
56320 | (1023 & c)
182
);
183
}
184
} else a += String.fromCharCode(((31 & i) << 6) | s);
185
} else a += String.fromCharCode(i);
186
}
187
return a;
188
}
189
function D(r, e) {
190
return r ? k(_, r, e) : "";
191
}
192
function S(r, e, t, n) {
193
if (!(n > 0)) {
194
return 0;
195
}
196
for (var o = t, a = t + n - 1, i = 0; i < r.length; ++i) {
197
var s = r.charCodeAt(i);
198
if (
199
(s >= 55296 &&
200
s <= 57343 &&
201
(s =
202
(65536 + ((1023 & s) << 10)) | (1023 & r.charCodeAt(++i))),
203
s <= 127)
204
) {
205
if (t >= a) {
206
break;
207
}
208
e[t++] = s;
209
} else if (s <= 2047) {
210
if (t + 1 >= a) break;
211
(e[t++] = 192 | (s >> 6)), (e[t++] = 128 | (63 & s));
212
} else if (s <= 65535) {
213
if (t + 2 >= a) break;
214
(e[t++] = 224 | (s >> 12)),
215
(e[t++] = 128 | ((s >> 6) & 63)),
216
(e[t++] = 128 | (63 & s));
217
} else {
218
if (t + 3 >= a) break;
219
(e[t++] = 240 | (s >> 18)),
220
(e[t++] = 128 | ((s >> 12) & 63)),
221
(e[t++] = 128 | ((s >> 6) & 63)),
222
(e[t++] = 128 | (63 & s));
223
}
224
}
225
return (e[t] = 0), t - o;
226
}
227
function P(r) {
228
for (var e = 0, t = 0; t < r.length; ++t) {
229
var n = r.charCodeAt(t);
230
n >= 55296 &&
231
n <= 57343 &&
232
(n = (65536 + ((1023 & n) << 10)) | (1023 & r.charCodeAt(++t))),
233
n <= 127 ? ++e : (e += n <= 2047 ? 2 : n <= 65535 ? 3 : 4);
234
}
235
return e;
236
}
237
function A(r) {
238
(v = r),
239
(o.HEAP8 = w = new Int8Array(r)),
240
(o.HEAP16 = new Int16Array(r)),
241
(o.HEAP32 = y = new Int32Array(r)),
242
(o.HEAPU8 = _ = new Uint8Array(r)),
243
(o.HEAPU16 = new Uint16Array(r)),
244
(o.HEAPU32 = new Uint32Array(r)),
245
(o.HEAPF32 = new Float32Array(r)),
246
(o.HEAPF64 = E = new Float64Array(r));
247
}
248
o.INITIAL_MEMORY;
249
var F,
250
x,
251
M,
252
R,
253
C = [],
254
z = [],
255
B = [],
256
j = 0,
257
T = null;
258
function N(r) {
259
j++, o.monitorRunDependencies && o.monitorRunDependencies(j);
260
}
261
function O(r) {
262
if (
263
(j--,
264
o.monitorRunDependencies && o.monitorRunDependencies(j),
265
0 == j && T)
266
) {
267
var e = T;
268
(T = null), e();
269
}
270
}
271
function L(r) {
272
o.onAbort && o.onAbort(r),
273
p((r = "Aborted(" + r + ")")),
274
(m = !0),
275
(r += ". Build with -s ASSERTIONS=1 for more info.");
276
var e = new WebAssembly.RuntimeError(r);
277
throw (n(e), e);
278
}
279
function I(r) {
280
return r.startsWith("data:application/octet-stream;base64,");
281
}
282
function H(r) {
283
try {
284
if (r == F && l) return new Uint8Array(l);
285
throw "both async and sync fetching of the wasm failed";
286
} catch (r) {
287
L(r);
288
}
289
}
290
throw new Error(
291
"Internal Error: Attempting to load expatlib, which is currently not supported in this version."
292
);
293
(o.preloadedImages = {}),
294
(o.preloadedAudios = {}),
295
I((F = "expatlib.wasm")) ||
296
((x = F), (F = o.locateFile ? o.locateFile(x, c) : c + x));
297
var U = {
298
11678: function (r) {
299
var e = o.getCache(o.CExpatJS)[r];
300
if (!e.hasOwnProperty("startElement")) {
301
throw "a JSImplementation must implement all functions, you forgot CExpatJS::startElement.";
302
}
303
e.startElement();
304
},
305
11896: function (r) {
306
var e = o.getCache(o.CExpatJS)[r];
307
if (!e.hasOwnProperty("endElement")) {
308
throw "a JSImplementation must implement all functions, you forgot CExpatJS::endElement.";
309
}
310
e.endElement();
311
},
312
12108: function (r) {
313
var e = o.getCache(o.CExpatJS)[r];
314
if (!e.hasOwnProperty("characterData")) {
315
throw "a JSImplementation must implement all functions, you forgot CExpatJS::characterData.";
316
}
317
e.characterData();
318
},
319
};
320
function G(r) {
321
for (; r.length > 0; ) {
322
var e = r.shift();
323
if ("function" != typeof e) {
324
var t = e.func;
325
"number" == typeof t
326
? void 0 === e.arg
327
? q(t)()
328
: q(t)(e.arg)
329
: t(void 0 === e.arg ? null : e.arg);
330
} else e(o);
331
}
332
}
333
function q(r) {
334
return g.get(r);
335
}
336
var W = {
337
splitPath: function (r) {
338
return /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/
339
.exec(r)
340
.slice(1);
341
},
342
normalizeArray: function (r, e) {
343
for (var t = 0, n = r.length - 1; n >= 0; n--) {
344
var o = r[n];
345
"." === o
346
? r.splice(n, 1)
347
: ".." === o
348
? (r.splice(n, 1), t++)
349
: t && (r.splice(n, 1), t--);
350
}
351
if (e) for (; t; t--) r.unshift("..");
352
return r;
353
},
354
normalize: function (r) {
355
var e = "/" === r.charAt(0),
356
t = "/" === r.substr(-1);
357
return (
358
(r = W.normalizeArray(
359
r.split("/").filter(function (r) {
360
return !!r;
361
}),
362
!e
363
).join("/")) ||
364
e ||
365
(r = "."),
366
r && t && (r += "/"),
367
(e ? "/" : "") + r
368
);
369
},
370
dirname: function (r) {
371
var e = W.splitPath(r),
372
t = e[0],
373
n = e[1];
374
return t || n
375
? (n && (n = n.substr(0, n.length - 1)), t + n)
376
: ".";
377
},
378
basename: function (r) {
379
if ("/" === r) return "/";
380
var e = (r = (r = W.normalize(r)).replace(
381
/\/$/,
382
""
383
)).lastIndexOf("/");
384
return -1 === e ? r : r.substr(e + 1);
385
},
386
extname: function (r) {
387
return W.splitPath(r)[3];
388
},
389
join: function () {
390
var r = Array.prototype.slice.call(arguments, 0);
391
return W.normalize(r.join("/"));
392
},
393
join2: function (r, e) {
394
return W.normalize(r + "/" + e);
395
},
396
},
397
J = {
398
resolve: function () {
399
for (
400
var r = "", e = !1, t = arguments.length - 1;
401
t >= -1 && !e;
402
t--
403
) {
404
var n = t >= 0 ? arguments[t] : $.cwd();
405
if ("string" != typeof n) {
406
throw new TypeError(
407
"Arguments to path.resolve must be strings"
408
);
409
}
410
if (!n) return "";
411
(r = n + "/" + r), (e = "/" === n.charAt(0));
412
}
413
return (
414
(e ? "/" : "") +
415
(r = W.normalizeArray(
416
r.split("/").filter(function (r) {
417
return !!r;
418
}),
419
!e
420
).join("/")) || "."
421
);
422
},
423
relative: function (r, e) {
424
function t(r) {
425
for (var e = 0; e < r.length && "" === r[e]; e++);
426
for (var t = r.length - 1; t >= 0 && "" === r[t]; t--);
427
return e > t ? [] : r.slice(e, t - e + 1);
428
}
429
(r = J.resolve(r).substr(1)), (e = J.resolve(e).substr(1));
430
for (
431
var n = t(r.split("/")),
432
o = t(e.split("/")),
433
a = Math.min(n.length, o.length),
434
i = a,
435
s = 0;
436
s < a;
437
s++
438
) {
439
if (n[s] !== o[s]) {
440
i = s;
441
break;
442
}
443
}
444
var u = [];
445
for (s = i; s < n.length; s++) u.push("..");
446
return (u = u.concat(o.slice(i))).join("/");
447
},
448
},
449
V = {
450
ttys: [],
451
init: function () {},
452
shutdown: function () {},
453
register: function (r, e) {
454
(V.ttys[r] = { input: [], output: [], ops: e }),
455
$.registerDevice(r, V.stream_ops);
456
},
457
stream_ops: {
458
open: function (r) {
459
var e = V.ttys[r.node.rdev];
460
if (!e) throw new $.ErrnoError(43);
461
(r.tty = e), (r.seekable = !1);
462
},
463
close: function (r) {
464
r.tty.ops.flush(r.tty);
465
},
466
flush: function (r) {
467
r.tty.ops.flush(r.tty);
468
},
469
read: function (r, e, t, n, o) {
470
if (!r.tty || !r.tty.ops.get_char) throw new $.ErrnoError(60);
471
for (var a = 0, i = 0; i < n; i++) {
472
var s;
473
try {
474
s = r.tty.ops.get_char(r.tty);
475
} catch (r) {
476
throw new $.ErrnoError(29);
477
}
478
if (void 0 === s && 0 === a) throw new $.ErrnoError(6);
479
if (null == s) break;
480
a++, (e[t + i] = s);
481
}
482
return a && (r.node.timestamp = Date.now()), a;
483
},
484
write: function (r, e, t, n, o) {
485
if (!r.tty || !r.tty.ops.put_char) {
486
throw new $.ErrnoError(60);
487
}
488
try {
489
for (var a = 0; a < n; a++) {
490
r.tty.ops.put_char(r.tty, e[t + a]);
491
}
492
} catch (r) {
493
throw new $.ErrnoError(29);
494
}
495
return n && (r.node.timestamp = Date.now()), a;
496
},
497
},
498
default_tty_ops: {
499
get_char: function (r) {
500
if (!r.input.length) {
501
var e = null;
502
if (
503
("undefined" != typeof window &&
504
"function" == typeof window.prompt
505
? null !== (e = window.prompt("Input: ")) && (e += "\n")
506
: "function" == typeof readline &&
507
null !== (e = readline()) &&
508
(e += "\n"),
509
!e)
510
) {
511
return null;
512
}
513
r.input = or(e, !0);
514
}
515
return r.input.shift();
516
},
517
put_char: function (r, e) {
518
null === e || 10 === e
519
? (f(k(r.output, 0)), (r.output = []))
520
: 0 != e && r.output.push(e);
521
},
522
flush: function (r) {
523
r.output &&
524
r.output.length > 0 &&
525
(f(k(r.output, 0)), (r.output = []));
526
},
527
},
528
default_tty1_ops: {
529
put_char: function (r, e) {
530
null === e || 10 === e
531
? (p(k(r.output, 0)), (r.output = []))
532
: 0 != e && r.output.push(e);
533
},
534
flush: function (r) {
535
r.output &&
536
r.output.length > 0 &&
537
(p(k(r.output, 0)), (r.output = []));
538
},
539
},
540
},
541
X = {
542
ops_table: null,
543
mount: function (r) {
544
return X.createNode(null, "/", 16895, 0);
545
},
546
createNode: function (r, e, t, n) {
547
if ($.isBlkdev(t) || $.isFIFO(t)) throw new $.ErrnoError(63);
548
X.ops_table ||
549
(X.ops_table = {
550
dir: {
551
node: {
552
getattr: X.node_ops.getattr,
553
setattr: X.node_ops.setattr,
554
lookup: X.node_ops.lookup,
555
mknod: X.node_ops.mknod,
556
rename: X.node_ops.rename,
557
unlink: X.node_ops.unlink,
558
rmdir: X.node_ops.rmdir,
559
readdir: X.node_ops.readdir,
560
symlink: X.node_ops.symlink,
561
},
562
stream: { llseek: X.stream_ops.llseek },
563
},
564
file: {
565
node: {
566
getattr: X.node_ops.getattr,
567
setattr: X.node_ops.setattr,
568
},
569
stream: {
570
llseek: X.stream_ops.llseek,
571
read: X.stream_ops.read,
572
write: X.stream_ops.write,
573
allocate: X.stream_ops.allocate,
574
mmap: X.stream_ops.mmap,
575
msync: X.stream_ops.msync,
576
},
577
},
578
link: {
579
node: {
580
getattr: X.node_ops.getattr,
581
setattr: X.node_ops.setattr,
582
readlink: X.node_ops.readlink,
583
},
584
stream: {},
585
},
586
chrdev: {
587
node: {
588
getattr: X.node_ops.getattr,
589
setattr: X.node_ops.setattr,
590
},
591
stream: $.chrdev_stream_ops,
592
},
593
});
594
var o = $.createNode(r, e, t, n);
595
return (
596
$.isDir(o.mode)
597
? ((o.node_ops = X.ops_table.dir.node),
598
(o.stream_ops = X.ops_table.dir.stream),
599
(o.contents = {}))
600
: $.isFile(o.mode)
601
? ((o.node_ops = X.ops_table.file.node),
602
(o.stream_ops = X.ops_table.file.stream),
603
(o.usedBytes = 0),
604
(o.contents = null))
605
: $.isLink(o.mode)
606
? ((o.node_ops = X.ops_table.link.node),
607
(o.stream_ops = X.ops_table.link.stream))
608
: $.isChrdev(o.mode) &&
609
((o.node_ops = X.ops_table.chrdev.node),
610
(o.stream_ops = X.ops_table.chrdev.stream)),
611
(o.timestamp = Date.now()),
612
r && ((r.contents[e] = o), (r.timestamp = o.timestamp)),
613
o
614
);
615
},
616
getFileDataAsTypedArray: function (r) {
617
return r.contents
618
? r.contents.subarray
619
? r.contents.subarray(0, r.usedBytes)
620
: new Uint8Array(r.contents)
621
: new Uint8Array(0);
622
},
623
expandFileStorage: function (r, e) {
624
var t = r.contents ? r.contents.length : 0;
625
if (!(t >= e)) {
626
(e = Math.max(e, (t * (t < 1048576 ? 2 : 1.125)) >>> 0)),
627
0 != t && (e = Math.max(e, 256));
628
var n = r.contents;
629
(r.contents = new Uint8Array(e)),
630
r.usedBytes > 0 &&
631
r.contents.set(n.subarray(0, r.usedBytes), 0);
632
}
633
},
634
resizeFileStorage: function (r, e) {
635
if (r.usedBytes != e) {
636
if (0 == e) (r.contents = null), (r.usedBytes = 0);
637
else {
638
var t = r.contents;
639
(r.contents = new Uint8Array(e)),
640
t &&
641
r.contents.set(t.subarray(0, Math.min(e, r.usedBytes))),
642
(r.usedBytes = e);
643
}
644
}
645
},
646
node_ops: {
647
getattr: function (r) {
648
var e = {};
649
return (
650
(e.dev = $.isChrdev(r.mode) ? r.id : 1),
651
(e.ino = r.id),
652
(e.mode = r.mode),
653
(e.nlink = 1),
654
(e.uid = 0),
655
(e.gid = 0),
656
(e.rdev = r.rdev),
657
$.isDir(r.mode)
658
? (e.size = 4096)
659
: $.isFile(r.mode)
660
? (e.size = r.usedBytes)
661
: $.isLink(r.mode)
662
? (e.size = r.link.length)
663
: (e.size = 0),
664
(e.atime = new Date(r.timestamp)),
665
(e.mtime = new Date(r.timestamp)),
666
(e.ctime = new Date(r.timestamp)),
667
(e.blksize = 4096),
668
(e.blocks = Math.ceil(e.size / e.blksize)),
669
e
670
);
671
},
672
setattr: function (r, e) {
673
void 0 !== e.mode && (r.mode = e.mode),
674
void 0 !== e.timestamp && (r.timestamp = e.timestamp),
675
void 0 !== e.size && X.resizeFileStorage(r, e.size);
676
},
677
lookup: function (r, e) {
678
throw $.genericErrors[44];
679
},
680
mknod: function (r, e, t, n) {
681
return X.createNode(r, e, t, n);
682
},
683
rename: function (r, e, t) {
684
if ($.isDir(r.mode)) {
685
var n;
686
try {
687
n = $.lookupNode(e, t);
688
} catch (r) {}
689
if (n) for (var o in n.contents) throw new $.ErrnoError(55);
690
}
691
delete r.parent.contents[r.name],
692
(r.parent.timestamp = Date.now()),
693
(r.name = t),
694
(e.contents[t] = r),
695
(e.timestamp = r.parent.timestamp),
696
(r.parent = e);
697
},
698
unlink: function (r, e) {
699
delete r.contents[e], (r.timestamp = Date.now());
700
},
701
rmdir: function (r, e) {
702
var t = $.lookupNode(r, e);
703
for (var n in t.contents) throw new $.ErrnoError(55);
704
delete r.contents[e], (r.timestamp = Date.now());
705
},
706
readdir: function (r) {
707
var e = [".", ".."];
708
for (var t in r.contents) {
709
r.contents.hasOwnProperty(t) && e.push(t);
710
}
711
return e;
712
},
713
symlink: function (r, e, t) {
714
var n = X.createNode(r, e, 41471, 0);
715
return (n.link = t), n;
716
},
717
readlink: function (r) {
718
if (!$.isLink(r.mode)) throw new $.ErrnoError(28);
719
return r.link;
720
},
721
},
722
stream_ops: {
723
read: function (r, e, t, n, o) {
724
var a = r.node.contents;
725
if (o >= r.node.usedBytes) return 0;
726
var i = Math.min(r.node.usedBytes - o, n);
727
if (i > 8 && a.subarray) e.set(a.subarray(o, o + i), t);
728
else for (var s = 0; s < i; s++) e[t + s] = a[o + s];
729
return i;
730
},
731
write: function (r, e, t, n, o, a) {
732
if ((e.buffer === w.buffer && (a = !1), !n)) {
733
return 0;
734
}
735
var i = r.node;
736
if (
737
((i.timestamp = Date.now()),
738
e.subarray && (!i.contents || i.contents.subarray))
739
) {
740
if (a) {
741
return (
742
(i.contents = e.subarray(t, t + n)),
743
(i.usedBytes = n),
744
n
745
);
746
}
747
if (0 === i.usedBytes && 0 === o) {
748
return (
749
(i.contents = e.slice(t, t + n)), (i.usedBytes = n), n
750
);
751
}
752
if (o + n <= i.usedBytes) {
753
return i.contents.set(e.subarray(t, t + n), o), n;
754
}
755
}
756
if (
757
(X.expandFileStorage(i, o + n),
758
i.contents.subarray && e.subarray)
759
) {
760
i.contents.set(e.subarray(t, t + n), o);
761
} else {
762
for (var s = 0; s < n; s++) i.contents[o + s] = e[t + s];
763
}
764
return (i.usedBytes = Math.max(i.usedBytes, o + n)), n;
765
},
766
llseek: function (r, e, t) {
767
var n = e;
768
if (
769
(1 === t
770
? (n += r.position)
771
: 2 === t &&
772
$.isFile(r.node.mode) &&
773
(n += r.node.usedBytes),
774
n < 0)
775
) {
776
throw new $.ErrnoError(28);
777
}
778
return n;
779
},
780
allocate: function (r, e, t) {
781
X.expandFileStorage(r.node, e + t),
782
(r.node.usedBytes = Math.max(r.node.usedBytes, e + t));
783
},
784
mmap: function (r, e, t, n, o, a) {
785
if (0 !== e) throw new $.ErrnoError(28);
786
if (!$.isFile(r.node.mode)) throw new $.ErrnoError(43);
787
var i,
788
s,
789
u = r.node.contents;
790
if (2 & a || u.buffer !== v) {
791
if (
792
((n > 0 || n + t < u.length) &&
793
(u = u.subarray
794
? u.subarray(n, n + t)
795
: Array.prototype.slice.call(u, n, n + t)),
796
(s = !0),
797
!(i = void L()))
798
) {
799
throw new $.ErrnoError(48);
800
}
801
w.set(u, i);
802
} else {
803
(s = !1), (i = u.byteOffset);
804
}
805
return { ptr: i, allocated: s };
806
},
807
msync: function (r, e, t, n, o) {
808
if (!$.isFile(r.node.mode)) throw new $.ErrnoError(43);
809
return 2 & o || X.stream_ops.write(r, e, 0, n, t, !1), 0;
810
},
811
},
812
},
813
$ = {
814
root: null,
815
mounts: [],
816
devices: {},
817
streams: [],
818
nextInode: 1,
819
nameTable: null,
820
currentPath: "/",
821
initialized: !1,
822
ignorePermissions: !0,
823
ErrnoError: null,
824
genericErrors: {},
825
filesystems: null,
826
syncFSRequests: 0,
827
lookupPath: (r, e = {}) => {
828
if (!(r = J.resolve($.cwd(), r))) {
829
return { path: "", node: null };
830
}
831
var t = { follow_mount: !0, recurse_count: 0 };
832
for (var n in t) void 0 === e[n] && (e[n] = t[n]);
833
if (e.recurse_count > 8) throw new $.ErrnoError(32);
834
for (
835
var o = W.normalizeArray(
836
r.split("/").filter((r) => !!r),
837
!1
838
),
839
a = $.root,
840
i = "/",
841
s = 0;
842
s < o.length;
843
s++
844
) {
845
var u = s === o.length - 1;
846
if (u && e.parent) break;
847
if (
848
((a = $.lookupNode(a, o[s])),
849
(i = W.join2(i, o[s])),
850
$.isMountpoint(a) &&
851
(!u || (u && e.follow_mount)) &&
852
(a = a.mounted.root),
853
!u || e.follow)
854
) {
855
for (var c = 0; $.isLink(a.mode); ) {
856
var l = $.readlink(i);
857
if (
858
((i = J.resolve(W.dirname(i), l)),
859
(a = $.lookupPath(i, {
860
recurse_count: e.recurse_count,
861
}).node),
862
c++ > 40)
863
) {
864
throw new $.ErrnoError(32);
865
}
866
}
867
}
868
}
869
return { path: i, node: a };
870
},
871
getPath: (r) => {
872
for (var e; ; ) {
873
if ($.isRoot(r)) {
874
var t = r.mount.mountpoint;
875
return e
876
? "/" !== t[t.length - 1]
877
? t + "/" + e
878
: t + e
879
: t;
880
}
881
(e = e ? r.name + "/" + e : r.name), (r = r.parent);
882
}
883
},
884
hashName: (r, e) => {
885
for (var t = 0, n = 0; n < e.length; n++) {
886
t = ((t << 5) - t + e.charCodeAt(n)) | 0;
887
}
888
return ((r + t) >>> 0) % $.nameTable.length;
889
},
890
hashAddNode: (r) => {
891
var e = $.hashName(r.parent.id, r.name);
892
(r.name_next = $.nameTable[e]), ($.nameTable[e] = r);
893
},
894
hashRemoveNode: (r) => {
895
var e = $.hashName(r.parent.id, r.name);
896
if ($.nameTable[e] === r) $.nameTable[e] = r.name_next;
897
else {
898
for (var t = $.nameTable[e]; t; ) {
899
if (t.name_next === r) {
900
t.name_next = r.name_next;
901
break;
902
}
903
t = t.name_next;
904
}
905
}
906
},
907
lookupNode: (r, e) => {
908
var t = $.mayLookup(r);
909
if (t) throw new $.ErrnoError(t, r);
910
for (
911
var n = $.hashName(r.id, e), o = $.nameTable[n];
912
o;
913
o = o.name_next
914
) {
915
var a = o.name;
916
if (o.parent.id === r.id && a === e) return o;
917
}
918
return $.lookup(r, e);
919
},
920
createNode: (r, e, t, n) => {
921
var o = new $.FSNode(r, e, t, n);
922
return $.hashAddNode(o), o;
923
},
924
destroyNode: (r) => {
925
$.hashRemoveNode(r);
926
},
927
isRoot: (r) => r === r.parent,
928
isMountpoint: (r) => !!r.mounted,
929
isFile: (r) => 32768 == (61440 & r),
930
isDir: (r) => 16384 == (61440 & r),
931
isLink: (r) => 40960 == (61440 & r),
932
isChrdev: (r) => 8192 == (61440 & r),
933
isBlkdev: (r) => 24576 == (61440 & r),
934
isFIFO: (r) => 4096 == (61440 & r),
935
isSocket: (r) => 49152 == (49152 & r),
936
flagModes: {
937
r: 0,
938
"r+": 2,
939
w: 577,
940
"w+": 578,
941
a: 1089,
942
"a+": 1090,
943
},
944
modeStringToFlags: (r) => {
945
var e = $.flagModes[r];
946
if (void 0 === e) {
947
throw new Error("Unknown file open mode: " + r);
948
}
949
return e;
950
},
951
flagsToPermissionString: (r) => {
952
var e = ["r", "w", "rw"][3 & r];
953
return 512 & r && (e += "w"), e;
954
},
955
nodePermissions: (r, e) =>
956
$.ignorePermissions ||
957
((!e.includes("r") || 292 & r.mode) &&
958
(!e.includes("w") || 146 & r.mode) &&
959
(!e.includes("x") || 73 & r.mode))
960
? 0
961
: 2,
962
mayLookup: (r) => {
963
var e = $.nodePermissions(r, "x");
964
return e || (r.node_ops.lookup ? 0 : 2);
965
},
966
mayCreate: (r, e) => {
967
try {
968
return $.lookupNode(r, e), 20;
969
} catch (r) {}
970
return $.nodePermissions(r, "wx");
971
},
972
mayDelete: (r, e, t) => {
973
var n;
974
try {
975
n = $.lookupNode(r, e);
976
} catch (r) {
977
return r.errno;
978
}
979
var o = $.nodePermissions(r, "wx");
980
if (o) return o;
981
if (t) {
982
if (!$.isDir(n.mode)) return 54;
983
if ($.isRoot(n) || $.getPath(n) === $.cwd()) return 10;
984
} else if ($.isDir(n.mode)) return 31;
985
return 0;
986
},
987
mayOpen: (r, e) =>
988
r
989
? $.isLink(r.mode)
990
? 32
991
: $.isDir(r.mode) &&
992
("r" !== $.flagsToPermissionString(e) || 512 & e)
993
? 31
994
: $.nodePermissions(r, $.flagsToPermissionString(e))
995
: 44,
996
MAX_OPEN_FDS: 4096,
997
nextfd: (r = 0, e = $.MAX_OPEN_FDS) => {
998
for (var t = r; t <= e; t++) if (!$.streams[t]) return t;
999
throw new $.ErrnoError(33);
1000
},
1001
getStream: (r) => $.streams[r],
1002
createStream: (r, e, t) => {
1003
$.FSStream ||
1004
(($.FSStream = function () {}),
1005
($.FSStream.prototype = {
1006
object: {
1007
get: function () {
1008
return this.node;
1009
},
1010
set: function (r) {
1011
this.node = r;
1012
},
1013
},
1014
isRead: {
1015
get: function () {
1016
return 1 != (2097155 & this.flags);
1017
},
1018
},
1019
isWrite: {
1020
get: function () {
1021
return 0 != (2097155 & this.flags);
1022
},
1023
},
1024
isAppend: {
1025
get: function () {
1026
return 1024 & this.flags;
1027
},
1028
},
1029
})),
1030
(r = Object.assign(new $.FSStream(), r));
1031
var n = $.nextfd(e, t);
1032
return (r.fd = n), ($.streams[n] = r), r;
1033
},
1034
closeStream: (r) => {
1035
$.streams[r] = null;
1036
},
1037
chrdev_stream_ops: {
1038
open: (r) => {
1039
var e = $.getDevice(r.node.rdev);
1040
(r.stream_ops = e.stream_ops),
1041
r.stream_ops.open && r.stream_ops.open(r);
1042
},
1043
llseek: () => {
1044
throw new $.ErrnoError(70);
1045
},
1046
},
1047
major: (r) => r >> 8,
1048
minor: (r) => 255 & r,
1049
makedev: (r, e) => (r << 8) | e,
1050
registerDevice: (r, e) => {
1051
$.devices[r] = { stream_ops: e };
1052
},
1053
getDevice: (r) => $.devices[r],
1054
getMounts: (r) => {
1055
for (var e = [], t = [r]; t.length; ) {
1056
var n = t.pop();
1057
e.push(n), t.push.apply(t, n.mounts);
1058
}
1059
return e;
1060
},
1061
syncfs: (r, e) => {
1062
"function" == typeof r && ((e = r), (r = !1)),
1063
$.syncFSRequests++,
1064
$.syncFSRequests > 1 &&
1065
p(
1066
"warning: " +
1067
$.syncFSRequests +
1068
" FS.syncfs operations in flight at once, probably just doing extra work"
1069
);
1070
var t = $.getMounts($.root.mount),
1071
n = 0;
1072
function o(r) {
1073
return $.syncFSRequests--, e(r);
1074
}
1075
function a(r) {
1076
if (r) return a.errored ? void 0 : ((a.errored = !0), o(r));
1077
++n >= t.length && o(null);
1078
}
1079
t.forEach((e) => {
1080
if (!e.type.syncfs) return a(null);
1081
e.type.syncfs(e, r, a);
1082
});
1083
},
1084
mount: (r, e, t) => {
1085
var n,
1086
o = "/" === t,
1087
a = !t;
1088
if (o && $.root) throw new $.ErrnoError(10);
1089
if (!o && !a) {
1090
var i = $.lookupPath(t, { follow_mount: !1 });
1091
if (((t = i.path), (n = i.node), $.isMountpoint(n))) {
1092
throw new $.ErrnoError(10);
1093
}
1094
if (!$.isDir(n.mode)) throw new $.ErrnoError(54);
1095
}
1096
var s = { type: r, opts: e, mountpoint: t, mounts: [] },
1097
u = r.mount(s);
1098
return (
1099
(u.mount = s),
1100
(s.root = u),
1101
o
1102
? ($.root = u)
1103
: n && ((n.mounted = s), n.mount && n.mount.mounts.push(s)),
1104
u
1105
);
1106
},
1107
unmount: (r) => {
1108
var e = $.lookupPath(r, { follow_mount: !1 });
1109
if (!$.isMountpoint(e.node)) throw new $.ErrnoError(28);
1110
var t = e.node,
1111
n = t.mounted,
1112
o = $.getMounts(n);
1113
Object.keys($.nameTable).forEach((r) => {
1114
for (var e = $.nameTable[r]; e; ) {
1115
var t = e.name_next;
1116
o.includes(e.mount) && $.destroyNode(e), (e = t);
1117
}
1118
}),
1119
(t.mounted = null);
1120
var a = t.mount.mounts.indexOf(n);
1121
t.mount.mounts.splice(a, 1);
1122
},
1123
lookup: (r, e) => r.node_ops.lookup(r, e),
1124
mknod: (r, e, t) => {
1125
var n = $.lookupPath(r, { parent: !0 }).node,
1126
o = W.basename(r);
1127
if (!o || "." === o || ".." === o) throw new $.ErrnoError(28);
1128
var a = $.mayCreate(n, o);
1129
if (a) {
1130
throw new $.ErrnoError(a);
1131
}
1132
if (!n.node_ops.mknod) {
1133
throw new $.ErrnoError(63);
1134
}
1135
return n.node_ops.mknod(n, o, e, t);
1136
},
1137
create: (r, e) => (
1138
(e = void 0 !== e ? e : 438),
1139
(e &= 4095),
1140
(e |= 32768),
1141
$.mknod(r, e, 0)
1142
),
1143
mkdir: (r, e) => (
1144
(e = void 0 !== e ? e : 511),
1145
(e &= 1023),
1146
(e |= 16384),
1147
$.mknod(r, e, 0)
1148
),
1149
mkdirTree: (r, e) => {
1150
for (var t = r.split("/"), n = "", o = 0; o < t.length; ++o) {
1151
if (t[o]) {
1152
n += "/" + t[o];
1153
try {
1154
$.mkdir(n, e);
1155
} catch (r) {
1156
if (20 != r.errno) throw r;
1157
}
1158
}
1159
}
1160
},
1161
mkdev: (r, e, t) => (
1162
void 0 === t && ((t = e), (e = 438)),
1163
(e |= 8192),
1164
$.mknod(r, e, t)
1165
),
1166
symlink: (r, e) => {
1167
if (!J.resolve(r)) throw new $.ErrnoError(44);
1168
var t = $.lookupPath(e, { parent: !0 }).node;
1169
if (!t) throw new $.ErrnoError(44);
1170
var n = W.basename(e),
1171
o = $.mayCreate(t, n);
1172
if (o) {
1173
throw new $.ErrnoError(o);
1174
}
1175
if (!t.node_ops.symlink) throw new $.ErrnoError(63);
1176
return t.node_ops.symlink(t, n, r);
1177
},
1178
rename: (r, e) => {
1179
var t,
1180
n,
1181
o = W.dirname(r),
1182
a = W.dirname(e),
1183
i = W.basename(r),
1184
s = W.basename(e);
1185
if (
1186
((t = $.lookupPath(r, { parent: !0 }).node),
1187
(n = $.lookupPath(e, { parent: !0 }).node),
1188
!t || !n)
1189
) {
1190
throw new $.ErrnoError(44);
1191
}
1192
if (t.mount !== n.mount) {
1193
throw new $.ErrnoError(75);
1194
}
1195
var u,
1196
c = $.lookupNode(t, i),
1197
l = J.relative(r, a);
1198
if ("." !== l.charAt(0)) throw new $.ErrnoError(28);
1199
if ("." !== (l = J.relative(e, o)).charAt(0)) {
1200
throw new $.ErrnoError(55);
1201
}
1202
try {
1203
u = $.lookupNode(n, s);
1204
} catch (r) {}
1205
if (c !== u) {
1206
var d = $.isDir(c.mode),
1207
f = $.mayDelete(t, i, d);
1208
if (f) throw new $.ErrnoError(f);
1209
if ((f = u ? $.mayDelete(n, s, d) : $.mayCreate(n, s))) {
1210
throw new $.ErrnoError(f);
1211
}
1212
if (!t.node_ops.rename) {
1213
throw new $.ErrnoError(63);
1214
}
1215
if ($.isMountpoint(c) || (u && $.isMountpoint(u))) {
1216
throw new $.ErrnoError(10);
1217
}
1218
if (n !== t && (f = $.nodePermissions(t, "w"))) {
1219
throw new $.ErrnoError(f);
1220
}
1221
$.hashRemoveNode(c);
1222
try {
1223
t.node_ops.rename(c, n, s);
1224
} catch (r) {
1225
throw r;
1226
} finally {
1227
$.hashAddNode(c);
1228
}
1229
}
1230
},
1231
rmdir: (r) => {
1232
var e = $.lookupPath(r, { parent: !0 }).node,
1233
t = W.basename(r),
1234
n = $.lookupNode(e, t),
1235
o = $.mayDelete(e, t, !0);
1236
if (o) throw new $.ErrnoError(o);
1237
if (!e.node_ops.rmdir) {
1238
throw new $.ErrnoError(63);
1239
}
1240
if ($.isMountpoint(n)) throw new $.ErrnoError(10);
1241
e.node_ops.rmdir(e, t), $.destroyNode(n);
1242
},
1243
readdir: (r) => {
1244
var e = $.lookupPath(r, { follow: !0 }).node;
1245
if (!e.node_ops.readdir) throw new $.ErrnoError(54);
1246
return e.node_ops.readdir(e);
1247
},
1248
unlink: (r) => {
1249
var e = $.lookupPath(r, { parent: !0 }).node;
1250
if (!e) throw new $.ErrnoError(44);
1251
var t = W.basename(r),
1252
n = $.lookupNode(e, t),
1253
o = $.mayDelete(e, t, !1);
1254
if (o) throw new $.ErrnoError(o);
1255
if (!e.node_ops.unlink) throw new $.ErrnoError(63);
1256
if ($.isMountpoint(n)) throw new $.ErrnoError(10);
1257
e.node_ops.unlink(e, t), $.destroyNode(n);
1258
},
1259
readlink: (r) => {
1260
var e = $.lookupPath(r).node;
1261
if (!e) throw new $.ErrnoError(44);
1262
if (!e.node_ops.readlink) throw new $.ErrnoError(28);
1263
return J.resolve($.getPath(e.parent), e.node_ops.readlink(e));
1264
},
1265
stat: (r, e) => {
1266
var t = $.lookupPath(r, { follow: !e }).node;
1267
if (!t) throw new $.ErrnoError(44);
1268
if (!t.node_ops.getattr) {
1269
throw new $.ErrnoError(63);
1270
}
1271
return t.node_ops.getattr(t);
1272
},
1273
lstat: (r) => $.stat(r, !0),
1274
chmod: (r, e, t) => {
1275
var n;
1276
if (
1277
!(n =
1278
"string" == typeof r
1279
? $.lookupPath(r, { follow: !t }).node
1280
: r).node_ops.setattr
1281
) {
1282
throw new $.ErrnoError(63);
1283
}
1284
n.node_ops.setattr(n, {
1285
mode: (4095 & e) | (-4096 & n.mode),
1286
timestamp: Date.now(),
1287
});
1288
},
1289
lchmod: (r, e) => {
1290
$.chmod(r, e, !0);
1291
},
1292
fchmod: (r, e) => {
1293
var t = $.getStream(r);
1294
if (!t) throw new $.ErrnoError(8);
1295
$.chmod(t.node, e);
1296
},
1297
chown: (r, e, t, n) => {
1298
var o;
1299
if (
1300
!(o =
1301
"string" == typeof r
1302
? $.lookupPath(r, { follow: !n }).node
1303
: r).node_ops.setattr
1304
) {
1305
throw new $.ErrnoError(63);
1306
}
1307
o.node_ops.setattr(o, { timestamp: Date.now() });
1308
},
1309
lchown: (r, e, t) => {
1310
$.chown(r, e, t, !0);
1311
},
1312
fchown: (r, e, t) => {
1313
var n = $.getStream(r);
1314
if (!n) throw new $.ErrnoError(8);
1315
$.chown(n.node, e, t);
1316
},
1317
truncate: (r, e) => {
1318
if (e < 0) throw new $.ErrnoError(28);
1319
var t;
1320
if (
1321
!(t =
1322
"string" == typeof r
1323
? $.lookupPath(r, { follow: !0 }).node
1324
: r).node_ops.setattr
1325
) {
1326
throw new $.ErrnoError(63);
1327
}
1328
if ($.isDir(t.mode)) throw new $.ErrnoError(31);
1329
if (!$.isFile(t.mode)) throw new $.ErrnoError(28);
1330
var n = $.nodePermissions(t, "w");
1331
if (n) throw new $.ErrnoError(n);
1332
t.node_ops.setattr(t, { size: e, timestamp: Date.now() });
1333
},
1334
ftruncate: (r, e) => {
1335
var t = $.getStream(r);
1336
if (!t) throw new $.ErrnoError(8);
1337
if (0 == (2097155 & t.flags)) throw new $.ErrnoError(28);
1338
$.truncate(t.node, e);
1339
},
1340
utime: (r, e, t) => {
1341
var n = $.lookupPath(r, { follow: !0 }).node;
1342
n.node_ops.setattr(n, { timestamp: Math.max(e, t) });
1343
},
1344
open: (r, e, t, n, a) => {
1345
if ("" === r) throw new $.ErrnoError(44);
1346
var i;
1347
if (
1348
((t = void 0 === t ? 438 : t),
1349
(t =
1350
64 & (e = "string" == typeof e ? $.modeStringToFlags(e) : e)
1351
? (4095 & t) | 32768
1352
: 0),
1353
"object" == typeof r)
1354
) {
1355
i = r;
1356
} else {
1357
r = W.normalize(r);
1358
try {
1359
i = $.lookupPath(r, { follow: !(131072 & e) }).node;
1360
} catch (r) {}
1361
}
1362
var s = !1;
1363
if (64 & e) {
1364
if (i)
1365
if (128 & e) throw new $.ErrnoError(20);
1366
else (i = $.mknod(r, t, 0)), (s = !0);
1367
}
1368
if (!i) throw new $.ErrnoError(44);
1369
if (
1370
($.isChrdev(i.mode) && (e &= -513),
1371
65536 & e && !$.isDir(i.mode))
1372
) {
1373
throw new $.ErrnoError(54);
1374
}
1375
if (!s) {
1376
var u = $.mayOpen(i, e);
1377
if (u) throw new $.ErrnoError(u);
1378
}
1379
512 & e && $.truncate(i, 0), (e &= -131713);
1380
var c = $.createStream(
1381
{
1382
node: i,
1383
path: $.getPath(i),
1384
flags: e,
1385
seekable: !0,
1386
position: 0,
1387
stream_ops: i.stream_ops,
1388
ungotten: [],
1389
error: !1,
1390
},
1391
n,
1392
a
1393
);
1394
return (
1395
c.stream_ops.open && c.stream_ops.open(c),
1396
!o.logReadFiles ||
1397
1 & e ||
1398
($.readFiles || ($.readFiles = {}),
1399
r in $.readFiles || ($.readFiles[r] = 1)),
1400
c
1401
);
1402
},
1403
close: (r) => {
1404
if ($.isClosed(r)) throw new $.ErrnoError(8);
1405
r.getdents && (r.getdents = null);
1406
try {
1407
r.stream_ops.close && r.stream_ops.close(r);
1408
} catch (r) {
1409
throw r;
1410
} finally {
1411
$.closeStream(r.fd);
1412
}
1413
r.fd = null;
1414
},
1415
isClosed: (r) => null === r.fd,
1416
llseek: (r, e, t) => {
1417
if ($.isClosed(r)) throw new $.ErrnoError(8);
1418
if (!r.seekable || !r.stream_ops.llseek) {
1419
throw new $.ErrnoError(70);
1420
}
1421
if (0 != t && 1 != t && 2 != t) throw new $.ErrnoError(28);
1422
return (
1423
(r.position = r.stream_ops.llseek(r, e, t)),
1424
(r.ungotten = []),
1425
r.position
1426
);
1427
},
1428
read: (r, e, t, n, o) => {
1429
if (n < 0 || o < 0) throw new $.ErrnoError(28);
1430
if ($.isClosed(r)) {
1431
throw new $.ErrnoError(8);
1432
}
1433
if (1 == (2097155 & r.flags)) throw new $.ErrnoError(8);
1434
if ($.isDir(r.node.mode)) throw new $.ErrnoError(31);
1435
if (!r.stream_ops.read) throw new $.ErrnoError(28);
1436
var a = void 0 !== o;
1437
if (a)
1438
if (!r.seekable) throw new $.ErrnoError(70);
1439
else o = r.position;
1440
var i = r.stream_ops.read(r, e, t, n, o);
1441
return a || (r.position += i), i;
1442
},
1443
write: (r, e, t, n, o, a) => {
1444
if (n < 0 || o < 0) throw new $.ErrnoError(28);
1445
if ($.isClosed(r)) throw new $.ErrnoError(8);
1446
if (0 == (2097155 & r.flags)) throw new $.ErrnoError(8);
1447
if ($.isDir(r.node.mode)) throw new $.ErrnoError(31);
1448
if (!r.stream_ops.write) throw new $.ErrnoError(28);
1449
r.seekable && 1024 & r.flags && $.llseek(r, 0, 2);
1450
var i = void 0 !== o;
1451
if (i)
1452
if (!r.seekable) throw new $.ErrnoError(70);
1453
else o = r.position;
1454
var s = r.stream_ops.write(r, e, t, n, o, a);
1455
return i || (r.position += s), s;
1456
},
1457
allocate: (r, e, t) => {
1458
if ($.isClosed(r)) throw new $.ErrnoError(8);
1459
if (e < 0 || t <= 0) throw new $.ErrnoError(28);
1460
if (0 == (2097155 & r.flags)) throw new $.ErrnoError(8);
1461
if (!$.isFile(r.node.mode) && !$.isDir(r.node.mode)) {
1462
throw new $.ErrnoError(43);
1463
}
1464
if (!r.stream_ops.allocate) {
1465
throw new $.ErrnoError(138);
1466
}
1467
r.stream_ops.allocate(r, e, t);
1468
},
1469
mmap: (r, e, t, n, o, a) => {
1470
if (0 != (2 & o) && 0 == (2 & a) && 2 != (2097155 & r.flags)) {
1471
throw new $.ErrnoError(2);
1472
}
1473
if (1 == (2097155 & r.flags)) throw new $.ErrnoError(2);
1474
if (!r.stream_ops.mmap) throw new $.ErrnoError(43);
1475
return r.stream_ops.mmap(r, e, t, n, o, a);
1476
},
1477
msync: (r, e, t, n, o) =>
1478
r && r.stream_ops.msync ? r.stream_ops.msync(r, e, t, n, o) : 0,
1479
munmap: (r) => 0,
1480
ioctl: (r, e, t) => {
1481
if (!r.stream_ops.ioctl) throw new $.ErrnoError(59);
1482
return r.stream_ops.ioctl(r, e, t);
1483
},
1484
readFile: (r, e = {}) => {
1485
if (
1486
((e.flags = e.flags || 0),
1487
(e.encoding = e.encoding || "binary"),
1488
"utf8" !== e.encoding && "binary" !== e.encoding)
1489
) {
1490
throw new Error('Invalid encoding type "' + e.encoding + '"');
1491
}
1492
var t,
1493
n = $.open(r, e.flags),
1494
o = $.stat(r).size,
1495
a = new Uint8Array(o);
1496
return (
1497
$.read(n, a, 0, o, 0),
1498
"utf8" === e.encoding
1499
? (t = k(a, 0))
1500
: "binary" === e.encoding && (t = a),
1501
$.close(n),
1502
t
1503
);
1504
},
1505
writeFile: (r, e, t = {}) => {
1506
t.flags = t.flags || 577;
1507
var n = $.open(r, t.flags, t.mode);
1508
if ("string" == typeof e) {
1509
var o = new Uint8Array(P(e) + 1),
1510
a = S(e, o, 0, o.length);
1511
$.write(n, o, 0, a, void 0, t.canOwn);
1512
} else {
1513
if (!ArrayBuffer.isView(e)) {
1514
throw new Error("Unsupported data type");
1515
}
1516
$.write(n, e, 0, e.byteLength, void 0, t.canOwn);
1517
}
1518
$.close(n);
1519
},
1520
cwd: () => $.currentPath,
1521
chdir: (r) => {
1522
var e = $.lookupPath(r, { follow: !0 });
1523
if (null === e.node) throw new $.ErrnoError(44);
1524
if (!$.isDir(e.node.mode)) throw new $.ErrnoError(54);
1525
var t = $.nodePermissions(e.node, "x");
1526
if (t) throw new $.ErrnoError(t);
1527
$.currentPath = e.path;
1528
},
1529
createDefaultDirectories: () => {
1530
$.mkdir("/tmp"), $.mkdir("/home"), $.mkdir("/home/web_user");
1531
},
1532
createDefaultDevices: () => {
1533
$.mkdir("/dev"),
1534
$.registerDevice($.makedev(1, 3), {
1535
read: () => 0,
1536
write: (r, e, t, n, o) => n,
1537
}),
1538
$.mkdev("/dev/null", $.makedev(1, 3)),
1539
V.register($.makedev(5, 0), V.default_tty_ops),
1540
V.register($.makedev(6, 0), V.default_tty1_ops),
1541
$.mkdev("/dev/tty", $.makedev(5, 0)),
1542
$.mkdev("/dev/tty1", $.makedev(6, 0));
1543
var r = (function () {
1544
if (
1545
"object" == typeof crypto &&
1546
"function" == typeof crypto.getRandomValues
1547
) {
1548
var r = new Uint8Array(1);
1549
return function () {
1550
return crypto.getRandomValues(r), r[0];
1551
};
1552
}
1553
return function () {
1554
L("randomDevice");
1555
};
1556
})();
1557
$.createDevice("/dev", "random", r),
1558
$.createDevice("/dev", "urandom", r),
1559
$.mkdir("/dev/shm"),
1560
$.mkdir("/dev/shm/tmp");
1561
},
1562
createSpecialDirectories: () => {
1563
$.mkdir("/proc");
1564
var r = $.mkdir("/proc/self");
1565
$.mkdir("/proc/self/fd"),
1566
$.mount(
1567
{
1568
mount: () => {
1569
var e = $.createNode(r, "fd", 16895, 73);
1570
return (
1571
(e.node_ops = {
1572
lookup: (r, e) => {
1573
var t = +e,
1574
n = $.getStream(t);
1575
if (!n) throw new $.ErrnoError(8);
1576
var o = {
1577
parent: null,
1578
mount: { mountpoint: "fake" },
1579
node_ops: { readlink: () => n.path },
1580
};
1581
return (o.parent = o), o;
1582
},
1583
}),
1584
e
1585
);
1586
},
1587
},
1588
{},
1589
"/proc/self/fd"
1590
);
1591
},
1592
createStandardStreams: () => {
1593
o.stdin
1594
? $.createDevice("/dev", "stdin", o.stdin)
1595
: $.symlink("/dev/tty", "/dev/stdin"),
1596
o.stdout
1597
? $.createDevice("/dev", "stdout", null, o.stdout)
1598
: $.symlink("/dev/tty", "/dev/stdout"),
1599
o.stderr
1600
? $.createDevice("/dev", "stderr", null, o.stderr)
1601
: $.symlink("/dev/tty1", "/dev/stderr"),
1602
$.open("/dev/stdin", 0),
1603
$.open("/dev/stdout", 1),
1604
$.open("/dev/stderr", 1);
1605
},
1606
ensureErrnoError: () => {
1607
$.ErrnoError ||
1608
(($.ErrnoError = function (r, e) {
1609
(this.node = e),
1610
(this.setErrno = function (r) {
1611
this.errno = r;
1612
}),
1613
this.setErrno(r),
1614
(this.message = "FS error");
1615
}),
1616
($.ErrnoError.prototype = new Error()),
1617
($.ErrnoError.prototype.constructor = $.ErrnoError),
1618
[44].forEach((r) => {
1619
($.genericErrors[r] = new $.ErrnoError(r)),
1620
($.genericErrors[r].stack = "<generic error, no stack>");
1621
}));
1622
},
1623
staticInit: () => {
1624
$.ensureErrnoError(),
1625
($.nameTable = new Array(4096)),
1626
$.mount(X, {}, "/"),
1627
$.createDefaultDirectories(),
1628
$.createDefaultDevices(),
1629
$.createSpecialDirectories(),
1630
($.filesystems = { MEMFS: X });
1631
},
1632
init: (r, e, t) => {
1633
($.init.initialized = !0),
1634
$.ensureErrnoError(),
1635
(o.stdin = r || o.stdin),
1636
(o.stdout = e || o.stdout),
1637
(o.stderr = t || o.stderr),
1638
$.createStandardStreams();
1639
},
1640
quit: () => {
1641
$.init.initialized = !1;
1642
for (var r = 0; r < $.streams.length; r++) {
1643
var e = $.streams[r];
1644
e && $.close(e);
1645
}
1646
},
1647
getMode: (r, e) => {
1648
var t = 0;
1649
return r && (t |= 365), e && (t |= 146), t;
1650
},
1651
findObject: (r, e) => {
1652
var t = $.analyzePath(r, e);
1653
return t.exists ? t.object : null;
1654
},
1655
analyzePath: (r, e) => {
1656
try {
1657
r = (n = $.lookupPath(r, { follow: !e })).path;
1658
} catch (r) {}
1659
var t = {
1660
isRoot: !1,
1661
exists: !1,
1662
error: 0,
1663
name: null,
1664
path: null,
1665
object: null,
1666
parentExists: !1,
1667
parentPath: null,
1668
parentObject: null,
1669
};
1670
try {
1671
var n = $.lookupPath(r, { parent: !0 });
1672
(t.parentExists = !0),
1673
(t.parentPath = n.path),
1674
(t.parentObject = n.node),
1675
(t.name = W.basename(r)),
1676
(n = $.lookupPath(r, { follow: !e })),
1677
(t.exists = !0),
1678
(t.path = n.path),
1679
(t.object = n.node),
1680
(t.name = n.node.name),
1681
(t.isRoot = "/" === n.path);
1682
} catch (r) {
1683
t.error = r.errno;
1684
}
1685
return t;
1686
},
1687
createPath: (r, e, t, n) => {
1688
r = "string" == typeof r ? r : $.getPath(r);
1689
for (var o = e.split("/").reverse(); o.length; ) {
1690
var a = o.pop();
1691
if (a) {
1692
var i = W.join2(r, a);
1693
try {
1694
$.mkdir(i);
1695
} catch (r) {}
1696
r = i;
1697
}
1698
}
1699
return i;
1700
},
1701
createFile: (r, e, t, n, o) => {
1702
var a = W.join2("string" == typeof r ? r : $.getPath(r), e),
1703
i = $.getMode(n, o);
1704
return $.create(a, i);
1705
},
1706
createDataFile: (r, e, t, n, o, a) => {
1707
var i = e;
1708
r &&
1709
((r = "string" == typeof r ? r : $.getPath(r)),
1710
(i = e ? W.join2(r, e) : r));
1711
var s = $.getMode(n, o),
1712
u = $.create(i, s);
1713
if (t) {
1714
if ("string" == typeof t) {
1715
for (
1716
var c = new Array(t.length), l = 0, d = t.length;
1717
l < d;
1718
++l
1719
) {
1720
c[l] = t.charCodeAt(l);
1721
}
1722
t = c;
1723
}
1724
$.chmod(u, 146 | s);
1725
var f = $.open(u, 577);
1726
$.write(f, t, 0, t.length, 0, a), $.close(f), $.chmod(u, s);
1727
}
1728
return u;
1729
},
1730
createDevice: (r, e, t, n) => {
1731
var o = W.join2("string" == typeof r ? r : $.getPath(r), e),
1732
a = $.getMode(!!t, !!n);
1733
$.createDevice.major || ($.createDevice.major = 64);
1734
var i = $.makedev($.createDevice.major++, 0);
1735
return (
1736
$.registerDevice(i, {
1737
open: (r) => {
1738
r.seekable = !1;
1739
},
1740
close: (r) => {
1741
n && n.buffer && n.buffer.length && n(10);
1742
},
1743
read: (r, e, n, o, a) => {
1744
for (var i = 0, s = 0; s < o; s++) {
1745
var u;
1746
try {
1747
u = t();
1748
} catch (r) {
1749
throw new $.ErrnoError(29);
1750
}
1751
if (void 0 === u && 0 === i) throw new $.ErrnoError(6);
1752
if (null == u) break;
1753
i++, (e[n + s] = u);
1754
}
1755
return i && (r.node.timestamp = Date.now()), i;
1756
},
1757
write: (r, e, t, o, a) => {
1758
for (var i = 0; i < o; i++) {
1759
try {
1760
n(e[t + i]);
1761
} catch (r) {
1762
throw new $.ErrnoError(29);
1763
}
1764
}
1765
return o && (r.node.timestamp = Date.now()), i;
1766
},
1767
}),
1768
$.mkdev(o, a, i)
1769
);
1770
},
1771
forceLoadFile: (r) => {
1772
if (r.isDevice || r.isFolder || r.link || r.contents) return !0;
1773
if ("undefined" != typeof XMLHttpRequest) {
1774
throw new Error(
1775
"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."
1776
);
1777
}
1778
if (!a) {
1779
throw new Error(
1780
"Cannot load without read() or XMLHttpRequest."
1781
);
1782
}
1783
try {
1784
(r.contents = or(a(r.url), !0)),
1785
(r.usedBytes = r.contents.length);
1786
} catch (r) {
1787
throw new $.ErrnoError(29);
1788
}
1789
},
1790
createLazyFile: (r, e, t, n, o) => {
1791
function a() {
1792
(this.lengthKnown = !1), (this.chunks = []);
1793
}
1794
if (
1795
((a.prototype.get = function (r) {
1796
if (!(r > this.length - 1 || r < 0)) {
1797
var e = r % this.chunkSize,
1798
t = (r / this.chunkSize) | 0;
1799
return this.getter(t)[e];
1800
}
1801
}),
1802
(a.prototype.setDataGetter = function (r) {
1803
this.getter = r;
1804
}),
1805
(a.prototype.cacheLength = function () {
1806
var r = new XMLHttpRequest();
1807
if (
1808
(r.open("HEAD", t, !1),
1809
r.send(null),
1810
!(
1811
(r.status >= 200 && r.status < 300) ||
1812
304 === r.status
1813
))
1814
) {
1815
throw new Error(
1816
"Couldn't load " + t + ". Status: " + r.status
1817
);
1818
}
1819
var e,
1820
n = Number(r.getResponseHeader("Content-length")),
1821
o =
1822
(e = r.getResponseHeader("Accept-Ranges")) &&
1823
"bytes" === e,
1824
a =
1825
(e = r.getResponseHeader("Content-Encoding")) &&
1826
"gzip" === e,
1827
i = 1048576;
1828
o || (i = n);
1829
var s = this;
1830
s.setDataGetter((r) => {
1831
var e = r * i,
1832
o = (r + 1) * i - 1;
1833
if (
1834
((o = Math.min(o, n - 1)),
1835
void 0 === s.chunks[r] &&
1836
(s.chunks[r] = ((r, e) => {
1837
if (r > e) {
1838
throw new Error(
1839
"invalid range (" +
1840
r +
1841
", " +
1842
e +
1843
") or no bytes requested!"
1844
);
1845
}
1846
if (e > n - 1) {
1847
throw new Error(
1848
"only " +
1849
n +
1850
" bytes available! programmer error!"
1851
);
1852
}
1853
var o = new XMLHttpRequest();
1854
if (
1855
(o.open("GET", t, !1),
1856
n !== i &&
1857
o.setRequestHeader(
1858
"Range",
1859
"bytes=" + r + "-" + e
1860
),
1861
(o.responseType = "arraybuffer"),
1862
o.overrideMimeType &&
1863
o.overrideMimeType(
1864
"text/plain; charset=x-user-defined"
1865
),
1866
o.send(null),
1867
!(
1868
(o.status >= 200 && o.status < 300) ||
1869
304 === o.status
1870
))
1871
) {
1872
throw new Error(
1873
"Couldn't load " + t + ". Status: " + o.status
1874
);
1875
}
1876
return void 0 !== o.response
1877
? new Uint8Array(o.response || [])
1878
: or(o.responseText || "", !0);
1879
})(e, o)),
1880
void 0 === s.chunks[r])
1881
) {
1882
throw new Error("doXHR failed!");
1883
}
1884
return s.chunks[r];
1885
}),
1886
(!a && n) ||
1887
((i = n = 1),
1888
(n = this.getter(0).length),
1889
(i = n),
1890
f(
1891
"LazyFiles on gzip forces download of the whole file when length is accessed"
1892
)),
1893
(this._length = n),
1894
(this._chunkSize = i),
1895
(this.lengthKnown = !0);
1896
}),
1897
"undefined" != typeof XMLHttpRequest)
1898
) {
1899
throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
1900
}
1901
var i = { isDevice: !1, url: t },
1902
s = $.createFile(r, e, i, n, o);
1903
i.contents
1904
? (s.contents = i.contents)
1905
: i.url && ((s.contents = null), (s.url = i.url)),
1906
Object.defineProperties(s, {
1907
usedBytes: {
1908
get: function () {
1909
return this.contents.length;
1910
},
1911
},
1912
});
1913
var u = {};
1914
return (
1915
Object.keys(s.stream_ops).forEach((r) => {
1916
var e = s.stream_ops[r];
1917
u[r] = function () {
1918
return $.forceLoadFile(s), e.apply(null, arguments);
1919
};
1920
}),
1921
(u.read = (r, e, t, n, o) => {
1922
$.forceLoadFile(s);
1923
var a = r.node.contents;
1924
if (o >= a.length) return 0;
1925
var i = Math.min(a.length - o, n);
1926
if (a.slice) {
1927
for (var u = 0; u < i; u++) {
1928
e[t + u] = a[o + u];
1929
}
1930
} else for (u = 0; u < i; u++) e[t + u] = a.get(o + u);
1931
return i;
1932
}),
1933
(s.stream_ops = u),
1934
s
1935
);
1936
},
1937
createPreloadedFile: (r, e, t, n, o, a, s, u, c, l) => {
1938
var d = e ? J.resolve(W.join2(r, e)) : r;
1939
function f(t) {
1940
function i(t) {
1941
l && l(),
1942
u || $.createDataFile(r, e, t, n, o, c),
1943
a && a(),
1944
O();
1945
}
1946
Browser.handledByPreloadPlugin(t, d, i, () => {
1947
s && s(), O();
1948
}) || i(t);
1949
}
1950
N(),
1951
"string" == typeof t
1952
? (function (r, e, t, n) {
1953
var o = n ? "" : "al " + r;
1954
i(
1955
r,
1956
function (t) {
1957
h(
1958
t,
1959
'Loading data file "' +
1960
r +
1961
'" failed (no arrayBuffer).'
1962
),
1963
e(new Uint8Array(t)),
1964
o && O();
1965
},
1966
function (e) {
1967
if (!t)
1968
throw 'Loading data file "' + r + '" failed.';
1969
t();
1970
}
1971
),
1972
o && N();
1973
})(t, (r) => f(r), s)
1974
: f(t);
1975
},
1976
indexedDB: () =>
1977
window.indexedDB ||
1978
window.mozIndexedDB ||
1979
window.webkitIndexedDB ||
1980
window.msIndexedDB,
1981
DB_NAME: () => "EM_FS_" + window.location.pathname,
1982
DB_VERSION: 20,
1983
DB_STORE_NAME: "FILE_DATA",
1984
saveFilesToDB: (r, e, t) => {
1985
(e = e || (() => {})), (t = t || (() => {}));
1986
var n = $.indexedDB();
1987
try {
1988
var o = n.open($.DB_NAME(), $.DB_VERSION);
1989
} catch (r) {
1990
return t(r);
1991
}
1992
(o.onupgradeneeded = () => {
1993
f("creating db"), o.result.createObjectStore($.DB_STORE_NAME);
1994
}),
1995
(o.onsuccess = () => {
1996
var n = o.result.transaction(
1997
[$.DB_STORE_NAME],
1998
"readwrite"
1999
),
2000
a = n.objectStore($.DB_STORE_NAME),
2001
i = 0,
2002
s = 0,
2003
u = r.length;
2004
function c() {
2005
0 == s ? e() : t();
2006
}
2007
r.forEach((r) => {
2008
var e = a.put($.analyzePath(r).object.contents, r);
2009
(e.onsuccess = () => {
2010
++i + s == u && c();
2011
}),
2012
(e.onerror = () => {
2013
s++, i + s == u && c();
2014
});
2015
}),
2016
(n.onerror = t);
2017
}),
2018
(o.onerror = t);
2019
},
2020
loadFilesFromDB: (r, e, t) => {
2021
(e = e || (() => {})), (t = t || (() => {}));
2022
var n = $.indexedDB();
2023
try {
2024
var o = n.open($.DB_NAME(), $.DB_VERSION);
2025
} catch (r) {
2026
return t(r);
2027
}
2028
(o.onupgradeneeded = t),
2029
(o.onsuccess = () => {
2030
var n = o.result;
2031
try {
2032
var a = n.transaction([$.DB_STORE_NAME], "readonly");
2033
} catch (r) {
2034
return void t(r);
2035
}
2036
var i = a.objectStore($.DB_STORE_NAME),
2037
s = 0,
2038
u = 0,
2039
c = r.length;
2040
function l() {
2041
0 == u ? e() : t();
2042
}
2043
r.forEach((r) => {
2044
var e = i.get(r);
2045
(e.onsuccess = () => {
2046
$.analyzePath(r).exists && $.unlink(r),
2047
$.createDataFile(
2048
W.dirname(r),
2049
W.basename(r),
2050
e.result,
2051
!0,
2052
!0,
2053
!0
2054
),
2055
++s + u == c && l();
2056
}),
2057
(e.onerror = () => {
2058
u++, s + u == c && l();
2059
});
2060
}),
2061
(a.onerror = t);
2062
}),
2063
(o.onerror = t);
2064
},
2065
},
2066
K = {
2067
DEFAULT_POLLMASK: 5,
2068
calculateAt: function (r, e, t) {
2069
if ("/" === e[0]) return e;
2070
var n;
2071
if (-100 === r) n = $.cwd();
2072
else {
2073
var o = $.getStream(r);
2074
if (!o) throw new $.ErrnoError(8);
2075
n = o.path;
2076
}
2077
if (0 == e.length) {
2078
if (!t) throw new $.ErrnoError(44);
2079
return n;
2080
}
2081
return W.join2(n, e);
2082
},
2083
doStat: function (r, e, t) {
2084
try {
2085
var n = r(e);
2086
} catch (r) {
2087
if (
2088
r &&
2089
r.node &&
2090
W.normalize(e) !== W.normalize($.getPath(r.node))
2091
) {
2092
return -54;
2093
}
2094
throw r;
2095
}
2096
return (
2097
(y[t >> 2] = n.dev),
2098
(y[(t + 4) >> 2] = 0),
2099
(y[(t + 8) >> 2] = n.ino),
2100
(y[(t + 12) >> 2] = n.mode),
2101
(y[(t + 16) >> 2] = n.nlink),
2102
(y[(t + 20) >> 2] = n.uid),
2103
(y[(t + 24) >> 2] = n.gid),
2104
(y[(t + 28) >> 2] = n.rdev),
2105
(y[(t + 32) >> 2] = 0),
2106
(R = [
2107
n.size >>> 0,
2108
((M = n.size),
2109
+Math.abs(M) >= 1
2110
? M > 0
2111
? (0 |
2112
Math.min(
2113
+Math.floor(M / 4294967296),
2114
4294967295
2115
)) >>>
2116
0
2117
: ~~+Math.ceil((M - +(~~M >>> 0)) / 4294967296) >>> 0
2118
: 0),
2119
]),
2120
(y[(t + 40) >> 2] = R[0]),
2121
(y[(t + 44) >> 2] = R[1]),
2122
(y[(t + 48) >> 2] = 4096),
2123
(y[(t + 52) >> 2] = n.blocks),
2124
(y[(t + 56) >> 2] = (n.atime.getTime() / 1e3) | 0),
2125
(y[(t + 60) >> 2] = 0),
2126
(y[(t + 64) >> 2] = (n.mtime.getTime() / 1e3) | 0),
2127
(y[(t + 68) >> 2] = 0),
2128
(y[(t + 72) >> 2] = (n.ctime.getTime() / 1e3) | 0),
2129
(y[(t + 76) >> 2] = 0),
2130
(R = [
2131
n.ino >>> 0,
2132
((M = n.ino),
2133
+Math.abs(M) >= 1
2134
? M > 0
2135
? (0 |
2136
Math.min(
2137
+Math.floor(M / 4294967296),
2138
4294967295
2139
)) >>>
2140
0
2141
: ~~+Math.ceil((M - +(~~M >>> 0)) / 4294967296) >>> 0
2142
: 0),
2143
]),
2144
(y[(t + 80) >> 2] = R[0]),
2145
(y[(t + 84) >> 2] = R[1]),
2146
0
2147
);
2148
},
2149
doMsync: function (r, e, t, n, o) {
2150
var a = _.slice(r, r + t);
2151
$.msync(e, a, o, t, n);
2152
},
2153
doMkdir: function (r, e) {
2154
return (
2155
"/" === (r = W.normalize(r))[r.length - 1] &&
2156
(r = r.substr(0, r.length - 1)),
2157
$.mkdir(r, e, 0),
2158
0
2159
);
2160
},
2161
doMknod: function (r, e, t) {
2162
switch (61440 & e) {
2163
case 32768:
2164
case 8192:
2165
case 24576:
2166
case 4096:
2167
case 49152:
2168
break;
2169
default:
2170
return -28;
2171
}
2172
return $.mknod(r, e, t), 0;
2173
},
2174
doReadlink: function (r, e, t) {
2175
if (t <= 0) return -28;
2176
var n = $.readlink(r),
2177
o = Math.min(t, P(n)),
2178
a = w[e + o];
2179
return S(n, _, e, t + 1), (w[e + o] = a), o;
2180
},
2181
doAccess: function (r, e) {
2182
if (-8 & e) return -28;
2183
var t = $.lookupPath(r, { follow: !0 }).node;
2184
if (!t) return -44;
2185
var n = "";
2186
return (
2187
4 & e && (n += "r"),
2188
2 & e && (n += "w"),
2189
1 & e && (n += "x"),
2190
n && $.nodePermissions(t, n) ? -2 : 0
2191
);
2192
},
2193
doDup: function (r, e, t) {
2194
var n = $.getStream(t);
2195
return n && $.close(n), $.open(r, e, 0, t, t).fd;
2196
},
2197
doReadv: function (r, e, t, n) {
2198
for (var o = 0, a = 0; a < t; a++) {
2199
var i = y[(e + 8 * a) >> 2],
2200
s = y[(e + (8 * a + 4)) >> 2],
2201
u = $.read(r, w, i, s, n);
2202
if (u < 0) return -1;
2203
if (((o += u), u < s)) break;
2204
}
2205
return o;
2206
},
2207
doWritev: function (r, e, t, n) {
2208
for (var o = 0, a = 0; a < t; a++) {
2209
var i = y[(e + 8 * a) >> 2],
2210
s = y[(e + (8 * a + 4)) >> 2],
2211
u = $.write(r, w, i, s, n);
2212
if (u < 0) return -1;
2213
o += u;
2214
}
2215
return o;
2216
},
2217
varargs: void 0,
2218
get: function () {
2219
return (K.varargs += 4), y[(K.varargs - 4) >> 2];
2220
},
2221
getStr: function (r) {
2222
return D(r);
2223
},
2224
getStreamFromFD: function (r) {
2225
var e = $.getStream(r);
2226
if (!e) throw new $.ErrnoError(8);
2227
return e;
2228
},
2229
get64: function (r, e) {
2230
return r;
2231
},
2232
},
2233
Y = [];
2234
function Q(r) {
2235
try {
2236
return d.grow((r - v.byteLength + 65535) >>> 16), A(d.buffer), 1;
2237
} catch (r) {}
2238
}
2239
var Z = {};
2240
function rr() {
2241
if (!rr.strings) {
2242
var r = {
2243
USER: "web_user",
2244
LOGNAME: "web_user",
2245
PATH: "/",
2246
PWD: "/",
2247
HOME: "/home/web_user",
2248
LANG:
2249
(
2250
("object" == typeof navigator &&
2251
navigator.languages &&
2252
navigator.languages[0]) ||
2253
"C"
2254
).replace("-", "_") + ".UTF-8",
2255
_: u || "./this.program",
2256
};
2257
for (var e in Z) void 0 === Z[e] ? delete r[e] : (r[e] = Z[e]);
2258
var t = [];
2259
for (var e in r) t.push(e + "=" + r[e]);
2260
rr.strings = t;
2261
}
2262
return rr.strings;
2263
}
2264
var er = function (r, e, t, n) {
2265
r || (r = this),
2266
(this.parent = r),
2267
(this.mount = r.mount),
2268
(this.mounted = null),
2269
(this.id = $.nextInode++),
2270
(this.name = e),
2271
(this.mode = t),
2272
(this.node_ops = {}),
2273
(this.stream_ops = {}),
2274
(this.rdev = n);
2275
},
2276
tr = 365,
2277
nr = 146;
2278
function or(r, e, t) {
2279
var n = t > 0 ? t : P(r) + 1,
2280
o = new Array(n),
2281
a = S(r, o, 0, o.length);
2282
return e && (o.length = a), o;
2283
}
2284
Object.defineProperties(er.prototype, {
2285
read: {
2286
get: function () {
2287
return (this.mode & tr) === tr;
2288
},
2289
set: function (r) {
2290
r ? (this.mode |= tr) : (this.mode &= -366);
2291
},
2292
},
2293
write: {
2294
get: function () {
2295
return (this.mode & nr) === nr;
2296
},
2297
set: function (r) {
2298
r ? (this.mode |= nr) : (this.mode &= -147);
2299
},
2300
},
2301
isFolder: {
2302
get: function () {
2303
return $.isDir(this.mode);
2304
},
2305
},
2306
isDevice: {
2307
get: function () {
2308
return $.isChrdev(this.mode);
2309
},
2310
},
2311
}),
2312
($.FSNode = er),
2313
$.staticInit();
2314
var ar = {
2315
g: function (r, e, t) {
2316
K.varargs = t;
2317
try {
2318
var n = K.getStr(r),
2319
o = t ? K.get() : 0;
2320
return $.open(n, e, o).fd;
2321
} catch (r) {
2322
if (void 0 === $ || !(r instanceof $.ErrnoError)) throw r;
2323
return -r.errno;
2324
}
2325
},
2326
d: function () {
2327
L("");
2328
},
2329
a: function (r, e, t) {
2330
var n = (function (r, e) {
2331
var t;
2332
for (Y.length = 0, e >>= 2; (t = _[r++]); ) {
2333
var n = t < 105;
2334
n && 1 & e && e++, Y.push(n ? E[e++ >> 1] : y[e]), ++e;
2335
}
2336
return Y;
2337
})(e, t);
2338
return U[r].apply(null, n);
2339
},
2340
j: function (r, e, t) {
2341
_.copyWithin(r, e, e + t);
2342
},
2343
e: function (r) {
2344
var e,
2345
t,
2346
n = _.length,
2347
o = 2147483648;
2348
if ((r >>>= 0) > o) return !1;
2349
for (var a = 1; a <= 4; a *= 2) {
2350
var i = n * (1 + 0.2 / a);
2351
if (
2352
((i = Math.min(i, r + 100663296)),
2353
Q(
2354
Math.min(
2355
o,
2356
(e = Math.max(r, i)) + (((t = 65536) - (e % t)) % t)
2357
)
2358
))
2359
) {
2360
return !0;
2361
}
2362
}
2363
return !1;
2364
},
2365
h: function (r, e) {
2366
var t = 0;
2367
return (
2368
rr().forEach(function (n, o) {
2369
var a = e + t;
2370
(y[(r + 4 * o) >> 2] = a),
2371
(function (r, e, t) {
2372
for (var n = 0; n < r.length; ++n) {
2373
w[e++ >> 0] = r.charCodeAt(n);
2374
}
2375
t || (w[e >> 0] = 0);
2376
})(n, a),
2377
(t += n.length + 1);
2378
}),
2379
0
2380
);
2381
},
2382
i: function (r, e) {
2383
var t = rr();
2384
y[r >> 2] = t.length;
2385
var n = 0;
2386
return (
2387
t.forEach(function (r) {
2388
n += r.length + 1;
2389
}),
2390
(y[e >> 2] = n),
2391
0
2392
);
2393
},
2394
c: function (r) {
2395
try {
2396
var e = K.getStreamFromFD(r);
2397
return $.close(e), 0;
2398
} catch (r) {
2399
if (void 0 === $ || !(r instanceof $.ErrnoError)) throw r;
2400
return r.errno;
2401
}
2402
},
2403
f: function (r, e, t, n) {
2404
try {
2405
var o = K.getStreamFromFD(r),
2406
a = K.doReadv(o, e, t);
2407
return (y[n >> 2] = a), 0;
2408
} catch (r) {
2409
if (void 0 === $ || !(r instanceof $.ErrnoError)) throw r;
2410
return r.errno;
2411
}
2412
},
2413
k: function (r, e, t, n, o) {
2414
try {
2415
var a = K.getStreamFromFD(r),
2416
i = 4294967296 * t + (e >>> 0),
2417
s = 9007199254740992;
2418
return i <= -s || i >= s
2419
? -61
2420
: ($.llseek(a, i, n),
2421
(R = [
2422
a.position >>> 0,
2423
((M = a.position),
2424
+Math.abs(M) >= 1
2425
? M > 0
2426
? (0 |
2427
Math.min(
2428
+Math.floor(M / 4294967296),
2429
4294967295
2430
)) >>>
2431
0
2432
: ~~+Math.ceil((M - +(~~M >>> 0)) / 4294967296) >>> 0
2433
: 0),
2434
]),
2435
(y[o >> 2] = R[0]),
2436
(y[(o + 4) >> 2] = R[1]),
2437
a.getdents && 0 === i && 0 === n && (a.getdents = null),
2438
0);
2439
} catch (r) {
2440
if (void 0 === $ || !(r instanceof $.ErrnoError)) throw r;
2441
return r.errno;
2442
}
2443
},
2444
b: function (r, e, t, n) {
2445
try {
2446
var o = K.getStreamFromFD(r),
2447
a = K.doWritev(o, e, t);
2448
return (y[n >> 2] = a), 0;
2449
} catch (r) {
2450
if (void 0 === $ || !(r instanceof $.ErrnoError)) throw r;
2451
return r.errno;
2452
}
2453
},
2454
l: function (r) {
2455
var e = Date.now();
2456
return (
2457
(y[r >> 2] = (e / 1e3) | 0),
2458
(y[(r + 4) >> 2] = ((e % 1e3) * 1e3) | 0),
2459
0
2460
);
2461
},
2462
};
2463
!(function () {
2464
var r = { a: ar };
2465
function e(r, e) {
2466
var t,
2467
n = r.exports;
2468
(o.asm = n),
2469
A((d = o.asm.m).buffer),
2470
(g = o.asm.G),
2471
(t = o.asm.n),
2472
z.unshift(t),
2473
O();
2474
}
2475
function t(r) {
2476
e(r.instance);
2477
}
2478
function a(e) {
2479
return (
2480
l || "function" != typeof fetch
2481
? Promise.resolve().then(function () {
2482
return H(F);
2483
})
2484
: fetch(F, { credentials: "same-origin" })
2485
.then(function (r) {
2486
if (!r.ok) {
2487
throw (
2488
"failed to load wasm binary file at '" + F + "'"
2489
);
2490
}
2491
return r.arrayBuffer();
2492
})
2493
.catch(function () {
2494
return H(F);
2495
})
2496
)
2497
.then(function (e) {
2498
return WebAssembly.instantiate(e, r);
2499
})
2500
.then(function (r) {
2501
return r;
2502
})
2503
.then(e, function (r) {
2504
p("failed to asynchronously prepare wasm: " + r), L(r);
2505
});
2506
}
2507
if ((N(), o.instantiateWasm)) {
2508
try {
2509
return o.instantiateWasm(r, e);
2510
} catch (r) {
2511
return (
2512
p("Module.instantiateWasm callback failed with error: " + r),
2513
!1
2514
);
2515
}
2516
}
2517
(l ||
2518
"function" != typeof WebAssembly.instantiateStreaming ||
2519
I(F) ||
2520
"function" != typeof fetch
2521
? a(t)
2522
: fetch(F, { credentials: "same-origin" }).then(function (e) {
2523
return WebAssembly.instantiateStreaming(e, r).then(
2524
t,
2525
function (r) {
2526
return (
2527
p("wasm streaming compile failed: " + r),
2528
p("falling back to ArrayBuffer instantiation"),
2529
a(t)
2530
);
2531
}
2532
);
2533
})
2534
).catch(n);
2535
})(),
2536
(o.___wasm_call_ctors = function () {
2537
return (o.___wasm_call_ctors = o.asm.n).apply(null, arguments);
2538
});
2539
var ir,
2540
sr = (o._emscripten_bind_CExpat_CExpat_0 = function () {
2541
return (sr = o._emscripten_bind_CExpat_CExpat_0 = o.asm.o).apply(
2542
null,
2543
arguments
2544
);
2545
}),
2546
ur = (o._emscripten_bind_CExpat_version_0 = function () {
2547
return (ur = o._emscripten_bind_CExpat_version_0 = o.asm.p).apply(
2548
null,
2549
arguments
2550
);
2551
}),
2552
cr = (o._emscripten_bind_CExpat_create_0 = function () {
2553
return (cr = o._emscripten_bind_CExpat_create_0 = o.asm.q).apply(
2554
null,
2555
arguments
2556
);
2557
}),
2558
lr = (o._emscripten_bind_CExpat_destroy_0 = function () {
2559
return (lr = o._emscripten_bind_CExpat_destroy_0 = o.asm.r).apply(
2560
null,
2561
arguments
2562
);
2563
}),
2564
dr = (o._emscripten_bind_CExpat_parse_1 = function () {
2565
return (dr = o._emscripten_bind_CExpat_parse_1 = o.asm.s).apply(
2566
null,
2567
arguments
2568
);
2569
}),
2570
fr = (o._emscripten_bind_CExpat_tag_0 = function () {
2571
return (fr = o._emscripten_bind_CExpat_tag_0 = o.asm.t).apply(
2572
null,
2573
arguments
2574
);
2575
}),
2576
pr = (o._emscripten_bind_CExpat_attrs_0 = function () {
2577
return (pr = o._emscripten_bind_CExpat_attrs_0 = o.asm.u).apply(
2578
null,
2579
arguments
2580
);
2581
}),
2582
mr = (o._emscripten_bind_CExpat_content_0 = function () {
2583
return (mr = o._emscripten_bind_CExpat_content_0 = o.asm.v).apply(
2584
null,
2585
arguments
2586
);
2587
}),
2588
hr = (o._emscripten_bind_CExpat_startElement_0 = function () {
2589
return (hr = o._emscripten_bind_CExpat_startElement_0 =
2590
o.asm.w).apply(null, arguments);
2591
}),
2592
vr = (o._emscripten_bind_CExpat_endElement_0 = function () {
2593
return (vr = o._emscripten_bind_CExpat_endElement_0 =
2594
o.asm.x).apply(null, arguments);
2595
}),
2596
wr = (o._emscripten_bind_CExpat_characterData_0 = function () {
2597
return (wr = o._emscripten_bind_CExpat_characterData_0 =
2598
o.asm.y).apply(null, arguments);
2599
}),
2600
_r = (o._emscripten_bind_CExpat___destroy___0 = function () {
2601
return (_r = o._emscripten_bind_CExpat___destroy___0 =
2602
o.asm.z).apply(null, arguments);
2603
}),
2604
yr = (o._emscripten_bind_VoidPtr___destroy___0 = function () {
2605
return (yr = o._emscripten_bind_VoidPtr___destroy___0 =
2606
o.asm.A).apply(null, arguments);
2607
}),
2608
Er = (o._emscripten_bind_CExpatJS_CExpatJS_0 = function () {
2609
return (Er = o._emscripten_bind_CExpatJS_CExpatJS_0 =
2610
o.asm.B).apply(null, arguments);
2611
}),
2612
gr = (o._emscripten_bind_CExpatJS_startElement_0 = function () {
2613
return (gr = o._emscripten_bind_CExpatJS_startElement_0 =
2614
o.asm.C).apply(null, arguments);
2615
}),
2616
br = (o._emscripten_bind_CExpatJS_endElement_0 = function () {
2617
return (br = o._emscripten_bind_CExpatJS_endElement_0 =
2618
o.asm.D).apply(null, arguments);
2619
}),
2620
kr = (o._emscripten_bind_CExpatJS_characterData_0 = function () {
2621
return (kr = o._emscripten_bind_CExpatJS_characterData_0 =
2622
o.asm.E).apply(null, arguments);
2623
}),
2624
Dr = (o._emscripten_bind_CExpatJS___destroy___0 = function () {
2625
return (Dr = o._emscripten_bind_CExpatJS___destroy___0 =
2626
o.asm.F).apply(null, arguments);
2627
});
2628
function Sr(r) {
2629
function t() {
2630
ir ||
2631
((ir = !0),
2632
(o.calledRun = !0),
2633
m ||
2634
(o.noFSInit || $.init.initialized || $.init(),
2635
($.ignorePermissions = !1),
2636
G(z),
2637
e(o),
2638
o.onRuntimeInitialized && o.onRuntimeInitialized(),
2639
(function () {
2640
if (o.postRun) {
2641
for (
2642
"function" == typeof o.postRun &&
2643
(o.postRun = [o.postRun]);
2644
o.postRun.length;
2645
2646
) {
2647
(r = o.postRun.shift()), B.unshift(r);
2648
}
2649
}
2650
var r;
2651
G(B);
2652
})()));
2653
}
2654
j > 0 ||
2655
((function () {
2656
if (o.preRun) {
2657
for (
2658
"function" == typeof o.preRun && (o.preRun = [o.preRun]);
2659
o.preRun.length;
2660
2661
) {
2662
(r = o.preRun.shift()), C.unshift(r);
2663
}
2664
}
2665
var r;
2666
G(C);
2667
})(),
2668
j > 0 ||
2669
(o.setStatus
2670
? (o.setStatus("Running..."),
2671
setTimeout(function () {
2672
setTimeout(function () {
2673
o.setStatus("");
2674
}, 1),
2675
t();
2676
}, 1))
2677
: t()));
2678
}
2679
if (
2680
((o._malloc = function () {
2681
return (o._malloc = o.asm.H).apply(null, arguments);
2682
}),
2683
(T = function r() {
2684
ir || Sr(), ir || (T = r);
2685
}),
2686
(o.run = Sr),
2687
o.preInit)
2688
) {
2689
for (
2690
"function" == typeof o.preInit && (o.preInit = [o.preInit]);
2691
o.preInit.length > 0;
2692
2693
) {
2694
o.preInit.pop()();
2695
}
2696
}
2697
function Pr() {}
2698
function Ar(r) {
2699
return (r || Pr).__cache__;
2700
}
2701
function Fr(r, e) {
2702
var t = Ar(e),
2703
n = t[r];
2704
return (
2705
n ||
2706
(((n = Object.create((e || Pr).prototype)).ptr = r), (t[r] = n))
2707
);
2708
}
2709
Sr(),
2710
(Pr.prototype = Object.create(Pr.prototype)),
2711
(Pr.prototype.constructor = Pr),
2712
(Pr.prototype.__class__ = Pr),
2713
(Pr.__cache__ = {}),
2714
(o.WrapperObject = Pr),
2715
(o.getCache = Ar),
2716
(o.wrapPointer = Fr),
2717
(o.castObject = function (r, e) {
2718
return Fr(r.ptr, e);
2719
}),
2720
(o.NULL = Fr(0)),
2721
(o.destroy = function (r) {
2722
if (!r.__destroy__) {
2723
throw "Error: Cannot destroy object. (Did you create it yourself?)";
2724
}
2725
r.__destroy__(), delete Ar(r.__class__)[r.ptr];
2726
}),
2727
(o.compare = function (r, e) {
2728
return r.ptr === e.ptr;
2729
}),
2730
(o.getPointer = function (r) {
2731
return r.ptr;
2732
}),
2733
(o.getClass = function (r) {
2734
return r.__class__;
2735
});
2736
var xr = {
2737
buffer: 0,
2738
size: 0,
2739
pos: 0,
2740
temps: [],
2741
needed: 0,
2742
prepare: function () {
2743
if (xr.needed) {
2744
for (var r = 0; r < xr.temps.length; r++) o._free(xr.temps[r]);
2745
(xr.temps.length = 0),
2746
o._free(xr.buffer),
2747
(xr.buffer = 0),
2748
(xr.size += xr.needed),
2749
(xr.needed = 0);
2750
}
2751
xr.buffer ||
2752
((xr.size += 128),
2753
(xr.buffer = o._malloc(xr.size)),
2754
h(xr.buffer)),
2755
(xr.pos = 0);
2756
},
2757
alloc: function (r, e) {
2758
h(xr.buffer);
2759
var t,
2760
n = e.BYTES_PER_ELEMENT,
2761
a = r.length * n;
2762
return (
2763
(a = (a + 7) & -8),
2764
xr.pos + a >= xr.size
2765
? (h(a > 0),
2766
(xr.needed += a),
2767
(t = o._malloc(a)),
2768
xr.temps.push(t))
2769
: ((t = xr.buffer + xr.pos), (xr.pos += a)),
2770
t
2771
);
2772
},
2773
copy: function (r, e, t) {
2774
switch (((t >>>= 0), e.BYTES_PER_ELEMENT)) {
2775
case 2:
2776
t >>>= 1;
2777
break;
2778
case 4:
2779
t >>>= 2;
2780
break;
2781
case 8:
2782
t >>>= 3;
2783
}
2784
for (var n = 0; n < r.length; n++) e[t + n] = r[n];
2785
},
2786
};
2787
function Mr() {
2788
(this.ptr = sr()), (Ar(Mr)[this.ptr] = this);
2789
}
2790
function Rr() {
2791
throw "cannot construct a VoidPtr, no constructor in IDL";
2792
}
2793
function Cr() {
2794
(this.ptr = Er()), (Ar(Cr)[this.ptr] = this);
2795
}
2796
return (
2797
(Mr.prototype = Object.create(Pr.prototype)),
2798
(Mr.prototype.constructor = Mr),
2799
(Mr.prototype.__class__ = Mr),
2800
(Mr.__cache__ = {}),
2801
(o.CExpat = Mr),
2802
(Mr.prototype.version = Mr.prototype.version =
2803
function () {
2804
var r = this.ptr;
2805
return D(ur(r));
2806
}),
2807
(Mr.prototype.create = Mr.prototype.create =
2808
function () {
2809
var r = this.ptr;
2810
return !!cr(r);
2811
}),
2812
(Mr.prototype.destroy = Mr.prototype.destroy =
2813
function () {
2814
var r = this.ptr;
2815
lr(r);
2816
}),
2817
(Mr.prototype.parse = Mr.prototype.parse =
2818
function (r) {
2819
var e = this.ptr;
2820
return (
2821
xr.prepare(),
2822
(r =
2823
r && "object" == typeof r
2824
? r.ptr
2825
: (function (r) {
2826
if ("string" == typeof r) {
2827
var e = or(r),
2828
t = xr.alloc(e, w);
2829
return xr.copy(e, w, t), t;
2830
}
2831
return r;
2832
})(r)),
2833
!!dr(e, r)
2834
);
2835
}),
2836
(Mr.prototype.tag = Mr.prototype.tag =
2837
function () {
2838
var r = this.ptr;
2839
return D(fr(r));
2840
}),
2841
(Mr.prototype.attrs = Mr.prototype.attrs =
2842
function () {
2843
var r = this.ptr;
2844
return D(pr(r));
2845
}),
2846
(Mr.prototype.content = Mr.prototype.content =
2847
function () {
2848
var r = this.ptr;
2849
return D(mr(r));
2850
}),
2851
(Mr.prototype.startElement = Mr.prototype.startElement =
2852
function () {
2853
var r = this.ptr;
2854
hr(r);
2855
}),
2856
(Mr.prototype.endElement = Mr.prototype.endElement =
2857
function () {
2858
var r = this.ptr;
2859
vr(r);
2860
}),
2861
(Mr.prototype.characterData = Mr.prototype.characterData =
2862
function () {
2863
var r = this.ptr;
2864
wr(r);
2865
}),
2866
(Mr.prototype.__destroy__ = Mr.prototype.__destroy__ =
2867
function () {
2868
var r = this.ptr;
2869
_r(r);
2870
}),
2871
(Rr.prototype = Object.create(Pr.prototype)),
2872
(Rr.prototype.constructor = Rr),
2873
(Rr.prototype.__class__ = Rr),
2874
(Rr.__cache__ = {}),
2875
(o.VoidPtr = Rr),
2876
(Rr.prototype.__destroy__ = Rr.prototype.__destroy__ =
2877
function () {
2878
var r = this.ptr;
2879
yr(r);
2880
}),
2881
(Cr.prototype = Object.create(Mr.prototype)),
2882
(Cr.prototype.constructor = Cr),
2883
(Cr.prototype.__class__ = Cr),
2884
(Cr.__cache__ = {}),
2885
(o.CExpatJS = Cr),
2886
(Cr.prototype.startElement = Cr.prototype.startElement =
2887
function () {
2888
var r = this.ptr;
2889
gr(r);
2890
}),
2891
(Cr.prototype.endElement = Cr.prototype.endElement =
2892
function () {
2893
var r = this.ptr;
2894
br(r);
2895
}),
2896
(Cr.prototype.characterData = Cr.prototype.characterData =
2897
function () {
2898
var r = this.ptr;
2899
kr(r);
2900
}),
2901
(Cr.prototype.__destroy__ = Cr.prototype.__destroy__ =
2902
function () {
2903
var r = this.ptr;
2904
Dr(r);
2905
}),
2906
r.ready
2907
);
2908
});
2909
r.exports = n;
2910
})(t);
2911
var n = e({ __proto__: null, default: t.exports }, [t.exports]);
2912
let o =
2913
(function () {
2914
if ("undefined" != typeof self) return self;
2915
if ("undefined" != typeof window) return window;
2916
if ("undefined" != typeof global) return global;
2917
throw new Error("unable to locate global object");
2918
})().__hpcc_wasmFolder || void 0;
2919
function a(r) {
2920
if (!arguments.length) return o;
2921
const e = o;
2922
return (o = r), e;
2923
}
2924
function i(r, e, t) {
2925
const n = r.default || r;
2926
return (
2927
n.__hpcc_promise ||
2928
(n.__hpcc_promise = n({
2929
wasmBinary: t,
2930
locateFile: (r, t) =>
2931
`${(function (r, e) {
2932
for (; r.charAt(r.length - 1) === e; ) {
2933
r = r.substring(0, r.length - 1);
2934
}
2935
return r;
2936
})(e || a() || t || ".", "/")}/${(function (r, e) {
2937
for (; r.charAt(0) === e; ) r = r.substring(1);
2938
return r;
2939
})(r, "/")}`,
2940
})),
2941
n.__hpcc_promise
2942
);
2943
}
2944
class s {
2945
constructor(r, e) {
2946
(this.tag = r), (this.attrs = e), (this._content = "");
2947
}
2948
get content() {
2949
return this._content;
2950
}
2951
appendContent(r) {
2952
this._content += r;
2953
}
2954
}
2955
function u(r, e, t, o) {
2956
return i(n, t, o).then((t) => {
2957
const n = new t.CExpatJS();
2958
(n.startElement = function () {
2959
e.startElement(
2960
this.tag(),
2961
(function (r) {
2962
const e = {},
2963
t = r,
2964
n = `${String.fromCharCode(1)}`,
2965
o = `${n}${n}`;
2966
return (
2967
t
2968
.split(o)
2969
.filter((r) => !!r)
2970
.forEach((r) => {
2971
const t = r.split(n);
2972
e[t[0]] = t[1];
2973
}),
2974
e
2975
);
2976
})(this.attrs())
2977
);
2978
}),
2979
(n.endElement = function () {
2980
e.endElement(this.tag());
2981
}),
2982
(n.characterData = function () {
2983
e.characterData(this.content());
2984
}),
2985
n.create();
2986
const o = n.parse(r);
2987
return n.destroy(), t.destroy(n), o;
2988
});
2989
}
2990
var c = { exports: {} };
2991
!(function (r, e) {
2992
var t,
2993
n =
2994
((t =
2995
"undefined" != typeof document && document.currentScript
2996
? document.currentScript.src
2997
: void 0),
2998
function (r) {
2999
var e,
3000
n,
3001
o = void 0 !== (r = r || {}) ? r : {};
3002
o.ready = new Promise(function (r, t) {
3003
(e = r), (n = t);
3004
});
3005
var a,
3006
i,
3007
s = Object.assign({}, o),
3008
u = "./this.program",
3009
c = (r, e) => {
3010
throw e;
3011
},
3012
l = "";
3013
"undefined" != typeof document &&
3014
document.currentScript &&
3015
(l = document.currentScript.src),
3016
t && (l = t),
3017
(l =
3018
0 !== l.indexOf("blob:")
3019
? l.substr(0, l.replace(/[?#].*/, "").lastIndexOf("/") + 1)
3020
: ""),
3021
(a = (r) => {
3022
var e = new XMLHttpRequest();
3023
return e.open("GET", r, !1), e.send(null), e.responseText;
3024
}),
3025
(i = (r, e, t) => {
3026
var n = new XMLHttpRequest();
3027
n.open("GET", r, !0),
3028
(n.responseType = "arraybuffer"),
3029
(n.onload = () => {
3030
200 == n.status || (0 == n.status && n.response)
3031
? e(n.response)
3032
: t();
3033
}),
3034
(n.onerror = t),
3035
n.send(null);
3036
});
3037
var d = o.print || console.log.bind(console),
3038
f = o.printErr || console.warn.bind(console);
3039
Object.assign(o, s),
3040
(s = null),
3041
o.arguments,
3042
o.thisProgram && (u = o.thisProgram),
3043
o.quit && (c = o.quit);
3044
var p,
3045
m = 0;
3046
o.wasmBinary && (p = o.wasmBinary);
3047
var h,
3048
v = o.noExitRuntime || !0;
3049
"object" != typeof WebAssembly &&
3050
G("no native wasm support detected");
3051
var w = !1;
3052
function _(r, e) {
3053
r || G(e);
3054
}
3055
var y,
3056
E,
3057
g,
3058
b,
3059
k,
3060
D,
3061
S,
3062
P =
3063
"undefined" != typeof TextDecoder
3064
? new TextDecoder("utf8")
3065
: void 0;
3066
function A(r, e, t) {
3067
for (var n = e + t, o = e; r[o] && !(o >= n); ) ++o;
3068
if (o - e > 16 && r.subarray && P) {
3069
return P.decode(r.subarray(e, o));
3070
}
3071
for (var a = ""; e < o; ) {
3072
var i = r[e++];
3073
if (128 & i) {
3074
var s = 63 & r[e++];
3075
if (192 != (224 & i)) {
3076
var u = 63 & r[e++];
3077
if (
3078
(i =
3079
224 == (240 & i)
3080
? ((15 & i) << 12) | (s << 6) | u
3081
: ((7 & i) << 18) |
3082
(s << 12) |
3083
(u << 6) |
3084
(63 & r[e++])) < 65536
3085
) {
3086
a += String.fromCharCode(i);
3087
} else {
3088
var c = i - 65536;
3089
a += String.fromCharCode(
3090
55296 | (c >> 10),
3091
56320 | (1023 & c)
3092
);
3093
}
3094
} else {
3095
a += String.fromCharCode(((31 & i) << 6) | s);
3096
}
3097
} else {
3098
a += String.fromCharCode(i);
3099
}
3100
}
3101
return a;
3102
}
3103
function F(r, e) {
3104
return r ? A(g, r, e) : "";
3105
}
3106
function x(r, e, t, n) {
3107
if (!(n > 0)) return 0;
3108
for (var o = t, a = t + n - 1, i = 0; i < r.length; ++i) {
3109
var s = r.charCodeAt(i);
3110
if (
3111
(s >= 55296 &&
3112
s <= 57343 &&
3113
(s =
3114
(65536 + ((1023 & s) << 10)) | (1023 & r.charCodeAt(++i))),
3115
s <= 127)
3116
) {
3117
if (t >= a) break;
3118
e[t++] = s;
3119
} else if (s <= 2047) {
3120
if (t + 1 >= a) {
3121
break;
3122
}
3123
(e[t++] = 192 | (s >> 6)), (e[t++] = 128 | (63 & s));
3124
} else if (s <= 65535) {
3125
if (t + 2 >= a) break;
3126
(e[t++] = 224 | (s >> 12)),
3127
(e[t++] = 128 | ((s >> 6) & 63)),
3128
(e[t++] = 128 | (63 & s));
3129
} else {
3130
if (t + 3 >= a) break;
3131
(e[t++] = 240 | (s >> 18)),
3132
(e[t++] = 128 | ((s >> 12) & 63)),
3133
(e[t++] = 128 | ((s >> 6) & 63)),
3134
(e[t++] = 128 | (63 & s));
3135
}
3136
}
3137
return (e[t] = 0), t - o;
3138
}
3139
function M(r) {
3140
for (var e = 0, t = 0; t < r.length; ++t) {
3141
var n = r.charCodeAt(t);
3142
n >= 55296 &&
3143
n <= 57343 &&
3144
(n = (65536 + ((1023 & n) << 10)) | (1023 & r.charCodeAt(++t))),
3145
n <= 127 ? ++e : (e += n <= 2047 ? 2 : n <= 65535 ? 3 : 4);
3146
}
3147
return e;
3148
}
3149
function R(r) {
3150
(y = r),
3151
(o.HEAP8 = E = new Int8Array(r)),
3152
(o.HEAP16 = b = new Int16Array(r)),
3153
(o.HEAP32 = k = new Int32Array(r)),
3154
(o.HEAPU8 = g = new Uint8Array(r)),
3155
(o.HEAPU16 = new Uint16Array(r)),
3156
(o.HEAPU32 = new Uint32Array(r)),
3157
(o.HEAPF32 = new Float32Array(r)),
3158
(o.HEAPF64 = D = new Float64Array(r));
3159
}
3160
o.INITIAL_MEMORY;
3161
var C,
3162
z,
3163
B,
3164
j,
3165
T = [],
3166
N = [],
3167
O = [],
3168
L = 0,
3169
I = null;
3170
function H(r) {
3171
L++, o.monitorRunDependencies && o.monitorRunDependencies(L);
3172
}
3173
function U(r) {
3174
if (
3175
(L--,
3176
o.monitorRunDependencies && o.monitorRunDependencies(L),
3177
0 == L && I)
3178
) {
3179
var e = I;
3180
(I = null), e();
3181
}
3182
}
3183
function G(r) {
3184
o.onAbort && o.onAbort(r),
3185
f((r = "Aborted(" + r + ")")),
3186
(w = !0),
3187
(r += ". Build with -s ASSERTIONS=1 for more info.");
3188
var e = new WebAssembly.RuntimeError(r);
3189
throw (n(e), e);
3190
}
3191
function q(r) {
3192
return r.startsWith("data:application/octet-stream;base64,");
3193
}
3194
function W(r) {
3195
try {
3196
if (r == C && p) return new Uint8Array(p);
3197
throw "both async and sync fetching of the wasm failed";
3198
} catch (r) {
3199
G(r);
3200
}
3201
}
3202
// C = graphvizWasm();
3203
(o.preloadedImages = {}), (o.preloadedAudios = {}); // ,
3204
// q(C) || ((z = C), (C = o.locateFile ? o.locateFile(z, l) : l + z));
3205
var J,
3206
V = {
3207
161520: function (r, e) {
3208
var t = F(r),
3209
n = F(e);
3210
tr.createPath("/", Y.dirname(t)),
3211
tr.writeFile(Y.join("/", t), n);
3212
},
3213
};
3214
function X(r) {
3215
for (; r.length > 0; ) {
3216
var e = r.shift();
3217
if ("function" != typeof e) {
3218
var t = e.func;
3219
"number" == typeof t
3220
? void 0 === e.arg
3221
? $(t)()
3222
: $(t)(e.arg)
3223
: t(void 0 === e.arg ? null : e.arg);
3224
} else e(o);
3225
}
3226
}
3227
function $(r) {
3228
return S.get(r);
3229
}
3230
function K(r) {
3231
return (k[gr() >> 2] = r), r;
3232
}
3233
J = () => performance.now();
3234
var Y = {
3235
splitPath: function (r) {
3236
return /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/
3237
.exec(r)
3238
.slice(1);
3239
},
3240
normalizeArray: function (r, e) {
3241
for (var t = 0, n = r.length - 1; n >= 0; n--) {
3242
var o = r[n];
3243
"." === o
3244
? r.splice(n, 1)
3245
: ".." === o
3246
? (r.splice(n, 1), t++)
3247
: t && (r.splice(n, 1), t--);
3248
}
3249
if (e) for (; t; t--) r.unshift("..");
3250
return r;
3251
},
3252
normalize: function (r) {
3253
var e = "/" === r.charAt(0),
3254
t = "/" === r.substr(-1);
3255
return (
3256
(r = Y.normalizeArray(
3257
r.split("/").filter(function (r) {
3258
return !!r;
3259
}),
3260
!e
3261
).join("/")) ||
3262
e ||
3263
(r = "."),
3264
r && t && (r += "/"),
3265
(e ? "/" : "") + r
3266
);
3267
},
3268
dirname: function (r) {
3269
var e = Y.splitPath(r),
3270
t = e[0],
3271
n = e[1];
3272
return t || n
3273
? (n && (n = n.substr(0, n.length - 1)), t + n)
3274
: ".";
3275
},
3276
basename: function (r) {
3277
if ("/" === r) return "/";
3278
var e = (r = (r = Y.normalize(r)).replace(
3279
/\/$/,
3280
""
3281
)).lastIndexOf("/");
3282
return -1 === e ? r : r.substr(e + 1);
3283
},
3284
extname: function (r) {
3285
return Y.splitPath(r)[3];
3286
},
3287
join: function () {
3288
var r = Array.prototype.slice.call(arguments, 0);
3289
return Y.normalize(r.join("/"));
3290
},
3291
join2: function (r, e) {
3292
return Y.normalize(r + "/" + e);
3293
},
3294
},
3295
Q = {
3296
resolve: function () {
3297
for (
3298
var r = "", e = !1, t = arguments.length - 1;
3299
t >= -1 && !e;
3300
t--
3301
) {
3302
var n = t >= 0 ? arguments[t] : tr.cwd();
3303
if ("string" != typeof n) {
3304
throw new TypeError(
3305
"Arguments to path.resolve must be strings"
3306
);
3307
}
3308
if (!n) return "";
3309
(r = n + "/" + r), (e = "/" === n.charAt(0));
3310
}
3311
return (
3312
(e ? "/" : "") +
3313
(r = Y.normalizeArray(
3314
r.split("/").filter(function (r) {
3315
return !!r;
3316
}),
3317
!e
3318
).join("/")) || "."
3319
);
3320
},
3321
relative: function (r, e) {
3322
function t(r) {
3323
for (var e = 0; e < r.length && "" === r[e]; e++);
3324
for (var t = r.length - 1; t >= 0 && "" === r[t]; t--);
3325
return e > t ? [] : r.slice(e, t - e + 1);
3326
}
3327
(r = Q.resolve(r).substr(1)), (e = Q.resolve(e).substr(1));
3328
for (
3329
var n = t(r.split("/")),
3330
o = t(e.split("/")),
3331
a = Math.min(n.length, o.length),
3332
i = a,
3333
s = 0;
3334
s < a;
3335
s++
3336
) {
3337
if (n[s] !== o[s]) {
3338
i = s;
3339
break;
3340
}
3341
}
3342
var u = [];
3343
for (s = i; s < n.length; s++) {
3344
u.push("..");
3345
}
3346
return (u = u.concat(o.slice(i))).join("/");
3347
},
3348
},
3349
Z = {
3350
ttys: [],
3351
init: function () {},
3352
shutdown: function () {},
3353
register: function (r, e) {
3354
(Z.ttys[r] = { input: [], output: [], ops: e }),
3355
tr.registerDevice(r, Z.stream_ops);
3356
},
3357
stream_ops: {
3358
open: function (r) {
3359
var e = Z.ttys[r.node.rdev];
3360
if (!e) throw new tr.ErrnoError(43);
3361
(r.tty = e), (r.seekable = !1);
3362
},
3363
close: function (r) {
3364
r.tty.ops.flush(r.tty);
3365
},
3366
flush: function (r) {
3367
r.tty.ops.flush(r.tty);
3368
},
3369
read: function (r, e, t, n, o) {
3370
if (!r.tty || !r.tty.ops.get_char) {
3371
throw new tr.ErrnoError(60);
3372
}
3373
for (var a = 0, i = 0; i < n; i++) {
3374
var s;
3375
try {
3376
s = r.tty.ops.get_char(r.tty);
3377
} catch (r) {
3378
throw new tr.ErrnoError(29);
3379
}
3380
if (void 0 === s && 0 === a) throw new tr.ErrnoError(6);
3381
if (null == s) break;
3382
a++, (e[t + i] = s);
3383
}
3384
return a && (r.node.timestamp = Date.now()), a;
3385
},
3386
write: function (r, e, t, n, o) {
3387
if (!r.tty || !r.tty.ops.put_char) {
3388
throw new tr.ErrnoError(60);
3389
}
3390
try {
3391
for (var a = 0; a < n; a++) {
3392
r.tty.ops.put_char(r.tty, e[t + a]);
3393
}
3394
} catch (r) {
3395
throw new tr.ErrnoError(29);
3396
}
3397
return n && (r.node.timestamp = Date.now()), a;
3398
},
3399
},
3400
default_tty_ops: {
3401
get_char: function (r) {
3402
if (!r.input.length) {
3403
var e = null;
3404
if (
3405
("undefined" != typeof window &&
3406
"function" == typeof window.prompt
3407
? null !== (e = window.prompt("Input: ")) && (e += "\n")
3408
: "function" == typeof readline &&
3409
null !== (e = readline()) &&
3410
(e += "\n"),
3411
!e)
3412
) {
3413
return null;
3414
}
3415
r.input = dr(e, !0);
3416
}
3417
return r.input.shift();
3418
},
3419
put_char: function (r, e) {
3420
null === e || 10 === e
3421
? (d(A(r.output, 0)), (r.output = []))
3422
: 0 != e && r.output.push(e);
3423
},
3424
flush: function (r) {
3425
r.output &&
3426
r.output.length > 0 &&
3427
(d(A(r.output, 0)), (r.output = []));
3428
},
3429
},
3430
default_tty1_ops: {
3431
put_char: function (r, e) {
3432
null === e || 10 === e
3433
? (f(A(r.output, 0)), (r.output = []))
3434
: 0 != e && r.output.push(e);
3435
},
3436
flush: function (r) {
3437
r.output &&
3438
r.output.length > 0 &&
3439
(f(A(r.output, 0)), (r.output = []));
3440
},
3441
},
3442
};
3443
function rr(r) {
3444
r = (function (r, e) {
3445
return Math.ceil(r / e) * e;
3446
})(r, 65536);
3447
var e = br(65536, r);
3448
return e
3449
? ((function (r, e) {
3450
g.fill(0, r, r + e);
3451
})(e, r),
3452
e)
3453
: 0;
3454
}
3455
var er = {
3456
ops_table: null,
3457
mount: function (r) {
3458
return er.createNode(null, "/", 16895, 0);
3459
},
3460
createNode: function (r, e, t, n) {
3461
if (tr.isBlkdev(t) || tr.isFIFO(t)) throw new tr.ErrnoError(63);
3462
er.ops_table ||
3463
(er.ops_table = {
3464
dir: {
3465
node: {
3466
getattr: er.node_ops.getattr,
3467
setattr: er.node_ops.setattr,
3468
lookup: er.node_ops.lookup,
3469
mknod: er.node_ops.mknod,
3470
rename: er.node_ops.rename,
3471
unlink: er.node_ops.unlink,
3472
rmdir: er.node_ops.rmdir,
3473
readdir: er.node_ops.readdir,
3474
symlink: er.node_ops.symlink,
3475
},
3476
stream: { llseek: er.stream_ops.llseek },
3477
},
3478
file: {
3479
node: {
3480
getattr: er.node_ops.getattr,
3481
setattr: er.node_ops.setattr,
3482
},
3483
stream: {
3484
llseek: er.stream_ops.llseek,
3485
read: er.stream_ops.read,
3486
write: er.stream_ops.write,
3487
allocate: er.stream_ops.allocate,
3488
mmap: er.stream_ops.mmap,
3489
msync: er.stream_ops.msync,
3490
},
3491
},
3492
link: {
3493
node: {
3494
getattr: er.node_ops.getattr,
3495
setattr: er.node_ops.setattr,
3496
readlink: er.node_ops.readlink,
3497
},
3498
stream: {},
3499
},
3500
chrdev: {
3501
node: {
3502
getattr: er.node_ops.getattr,
3503
setattr: er.node_ops.setattr,
3504
},
3505
stream: tr.chrdev_stream_ops,
3506
},
3507
});
3508
var o = tr.createNode(r, e, t, n);
3509
return (
3510
tr.isDir(o.mode)
3511
? ((o.node_ops = er.ops_table.dir.node),
3512
(o.stream_ops = er.ops_table.dir.stream),
3513
(o.contents = {}))
3514
: tr.isFile(o.mode)
3515
? ((o.node_ops = er.ops_table.file.node),
3516
(o.stream_ops = er.ops_table.file.stream),
3517
(o.usedBytes = 0),
3518
(o.contents = null))
3519
: tr.isLink(o.mode)
3520
? ((o.node_ops = er.ops_table.link.node),
3521
(o.stream_ops = er.ops_table.link.stream))
3522
: tr.isChrdev(o.mode) &&
3523
((o.node_ops = er.ops_table.chrdev.node),
3524
(o.stream_ops = er.ops_table.chrdev.stream)),
3525
(o.timestamp = Date.now()),
3526
r && ((r.contents[e] = o), (r.timestamp = o.timestamp)),
3527
o
3528
);
3529
},
3530
getFileDataAsTypedArray: function (r) {
3531
return r.contents
3532
? r.contents.subarray
3533
? r.contents.subarray(0, r.usedBytes)
3534
: new Uint8Array(r.contents)
3535
: new Uint8Array(0);
3536
},
3537
expandFileStorage: function (r, e) {
3538
var t = r.contents ? r.contents.length : 0;
3539
if (!(t >= e)) {
3540
(e = Math.max(e, (t * (t < 1048576 ? 2 : 1.125)) >>> 0)),
3541
0 != t && (e = Math.max(e, 256));
3542
var n = r.contents;
3543
(r.contents = new Uint8Array(e)),
3544
r.usedBytes > 0 &&
3545
r.contents.set(n.subarray(0, r.usedBytes), 0);
3546
}
3547
},
3548
resizeFileStorage: function (r, e) {
3549
if (r.usedBytes != e) {
3550
if (0 == e) (r.contents = null), (r.usedBytes = 0);
3551
else {
3552
var t = r.contents;
3553
(r.contents = new Uint8Array(e)),
3554
t &&
3555
r.contents.set(t.subarray(0, Math.min(e, r.usedBytes))),
3556
(r.usedBytes = e);
3557
}
3558
}
3559
},
3560
node_ops: {
3561
getattr: function (r) {
3562
var e = {};
3563
return (
3564
(e.dev = tr.isChrdev(r.mode) ? r.id : 1),
3565
(e.ino = r.id),
3566
(e.mode = r.mode),
3567
(e.nlink = 1),
3568
(e.uid = 0),
3569
(e.gid = 0),
3570
(e.rdev = r.rdev),
3571
tr.isDir(r.mode)
3572
? (e.size = 4096)
3573
: tr.isFile(r.mode)
3574
? (e.size = r.usedBytes)
3575
: tr.isLink(r.mode)
3576
? (e.size = r.link.length)
3577
: (e.size = 0),
3578
(e.atime = new Date(r.timestamp)),
3579
(e.mtime = new Date(r.timestamp)),
3580
(e.ctime = new Date(r.timestamp)),
3581
(e.blksize = 4096),
3582
(e.blocks = Math.ceil(e.size / e.blksize)),
3583
e
3584
);
3585
},
3586
setattr: function (r, e) {
3587
void 0 !== e.mode && (r.mode = e.mode),
3588
void 0 !== e.timestamp && (r.timestamp = e.timestamp),
3589
void 0 !== e.size && er.resizeFileStorage(r, e.size);
3590
},
3591
lookup: function (r, e) {
3592
throw tr.genericErrors[44];
3593
},
3594
mknod: function (r, e, t, n) {
3595
return er.createNode(r, e, t, n);
3596
},
3597
rename: function (r, e, t) {
3598
if (tr.isDir(r.mode)) {
3599
var n;
3600
try {
3601
n = tr.lookupNode(e, t);
3602
} catch (r) {}
3603
if (n) {
3604
for (var o in n.contents) throw new tr.ErrnoError(55);
3605
}
3606
}
3607
delete r.parent.contents[r.name],
3608
(r.parent.timestamp = Date.now()),
3609
(r.name = t),
3610
(e.contents[t] = r),
3611
(e.timestamp = r.parent.timestamp),
3612
(r.parent = e);
3613
},
3614
unlink: function (r, e) {
3615
delete r.contents[e], (r.timestamp = Date.now());
3616
},
3617
rmdir: function (r, e) {
3618
var t = tr.lookupNode(r, e);
3619
for (var n in t.contents) throw new tr.ErrnoError(55);
3620
delete r.contents[e], (r.timestamp = Date.now());
3621
},
3622
readdir: function (r) {
3623
var e = [".", ".."];
3624
for (var t in r.contents) {
3625
r.contents.hasOwnProperty(t) && e.push(t);
3626
}
3627
return e;
3628
},
3629
symlink: function (r, e, t) {
3630
var n = er.createNode(r, e, 41471, 0);
3631
return (n.link = t), n;
3632
},
3633
readlink: function (r) {
3634
if (!tr.isLink(r.mode)) throw new tr.ErrnoError(28);
3635
return r.link;
3636
},
3637
},
3638
stream_ops: {
3639
read: function (r, e, t, n, o) {
3640
var a = r.node.contents;
3641
if (o >= r.node.usedBytes) return 0;
3642
var i = Math.min(r.node.usedBytes - o, n);
3643
if (i > 8 && a.subarray) e.set(a.subarray(o, o + i), t);
3644
else for (var s = 0; s < i; s++) e[t + s] = a[o + s];
3645
return i;
3646
},
3647
write: function (r, e, t, n, o, a) {
3648
if ((e.buffer === E.buffer && (a = !1), !n)) return 0;
3649
var i = r.node;
3650
if (
3651
((i.timestamp = Date.now()),
3652
e.subarray && (!i.contents || i.contents.subarray))
3653
) {
3654
if (a) {
3655
return (
3656
(i.contents = e.subarray(t, t + n)),
3657
(i.usedBytes = n),
3658
n
3659
);
3660
}
3661
if (0 === i.usedBytes && 0 === o) {
3662
return (
3663
(i.contents = e.slice(t, t + n)), (i.usedBytes = n), n
3664
);
3665
}
3666
if (o + n <= i.usedBytes) {
3667
return i.contents.set(e.subarray(t, t + n), o), n;
3668
}
3669
}
3670
if (
3671
(er.expandFileStorage(i, o + n),
3672
i.contents.subarray && e.subarray)
3673
) {
3674
i.contents.set(e.subarray(t, t + n), o);
3675
} else {
3676
for (var s = 0; s < n; s++) i.contents[o + s] = e[t + s];
3677
}
3678
return (i.usedBytes = Math.max(i.usedBytes, o + n)), n;
3679
},
3680
llseek: function (r, e, t) {
3681
var n = e;
3682
if (
3683
(1 === t
3684
? (n += r.position)
3685
: 2 === t &&
3686
tr.isFile(r.node.mode) &&
3687
(n += r.node.usedBytes),
3688
n < 0)
3689
) {
3690
throw new tr.ErrnoError(28);
3691
}
3692
return n;
3693
},
3694
allocate: function (r, e, t) {
3695
er.expandFileStorage(r.node, e + t),
3696
(r.node.usedBytes = Math.max(r.node.usedBytes, e + t));
3697
},
3698
mmap: function (r, e, t, n, o, a) {
3699
if (0 !== e) throw new tr.ErrnoError(28);
3700
if (!tr.isFile(r.node.mode)) throw new tr.ErrnoError(43);
3701
var i,
3702
s,
3703
u = r.node.contents;
3704
if (2 & a || u.buffer !== y) {
3705
if (
3706
((n > 0 || n + t < u.length) &&
3707
(u = u.subarray
3708
? u.subarray(n, n + t)
3709
: Array.prototype.slice.call(u, n, n + t)),
3710
(s = !0),
3711
!(i = rr(t)))
3712
) {
3713
throw new tr.ErrnoError(48);
3714
}
3715
E.set(u, i);
3716
} else (s = !1), (i = u.byteOffset);
3717
return { ptr: i, allocated: s };
3718
},
3719
msync: function (r, e, t, n, o) {
3720
if (!tr.isFile(r.node.mode)) throw new tr.ErrnoError(43);
3721
return 2 & o || er.stream_ops.write(r, e, 0, n, t, !1), 0;
3722
},
3723
},
3724
},
3725
tr = {
3726
root: null,
3727
mounts: [],
3728
devices: {},
3729
streams: [],
3730
nextInode: 1,
3731
nameTable: null,
3732
currentPath: "/",
3733
initialized: !1,
3734
ignorePermissions: !0,
3735
ErrnoError: null,
3736
genericErrors: {},
3737
filesystems: null,
3738
syncFSRequests: 0,
3739
lookupPath: (r, e = {}) => {
3740
if (!(r = Q.resolve(tr.cwd(), r))) {
3741
return { path: "", node: null };
3742
}
3743
var t = { follow_mount: !0, recurse_count: 0 };
3744
for (var n in t) void 0 === e[n] && (e[n] = t[n]);
3745
if (e.recurse_count > 8) throw new tr.ErrnoError(32);
3746
for (
3747
var o = Y.normalizeArray(
3748
r.split("/").filter((r) => !!r),
3749
!1
3750
),
3751
a = tr.root,
3752
i = "/",
3753
s = 0;
3754
s < o.length;
3755
s++
3756
) {
3757
var u = s === o.length - 1;
3758
if (u && e.parent) break;
3759
if (
3760
((a = tr.lookupNode(a, o[s])),
3761
(i = Y.join2(i, o[s])),
3762
tr.isMountpoint(a) &&
3763
(!u || (u && e.follow_mount)) &&
3764
(a = a.mounted.root),
3765
!u || e.follow)
3766
) {
3767
for (var c = 0; tr.isLink(a.mode); ) {
3768
var l = tr.readlink(i);
3769
if (
3770
((i = Q.resolve(Y.dirname(i), l)),
3771
(a = tr.lookupPath(i, {
3772
recurse_count: e.recurse_count,
3773
}).node),
3774
c++ > 40)
3775
) {
3776
throw new tr.ErrnoError(32);
3777
}
3778
}
3779
}
3780
}
3781
return { path: i, node: a };
3782
},
3783
getPath: (r) => {
3784
for (var e; ; ) {
3785
if (tr.isRoot(r)) {
3786
var t = r.mount.mountpoint;
3787
return e
3788
? "/" !== t[t.length - 1]
3789
? t + "/" + e
3790
: t + e
3791
: t;
3792
}
3793
(e = e ? r.name + "/" + e : r.name), (r = r.parent);
3794
}
3795
},
3796
hashName: (r, e) => {
3797
for (var t = 0, n = 0; n < e.length; n++) {
3798
t = ((t << 5) - t + e.charCodeAt(n)) | 0;
3799
}
3800
return ((r + t) >>> 0) % tr.nameTable.length;
3801
},
3802
hashAddNode: (r) => {
3803
var e = tr.hashName(r.parent.id, r.name);
3804
(r.name_next = tr.nameTable[e]), (tr.nameTable[e] = r);
3805
},
3806
hashRemoveNode: (r) => {
3807
var e = tr.hashName(r.parent.id, r.name);
3808
if (tr.nameTable[e] === r) tr.nameTable[e] = r.name_next;
3809
else {
3810
for (var t = tr.nameTable[e]; t; ) {
3811
if (t.name_next === r) {
3812
t.name_next = r.name_next;
3813
break;
3814
}
3815
t = t.name_next;
3816
}
3817
}
3818
},
3819
lookupNode: (r, e) => {
3820
var t = tr.mayLookup(r);
3821
if (t) throw new tr.ErrnoError(t, r);
3822
for (
3823
var n = tr.hashName(r.id, e), o = tr.nameTable[n];
3824
o;
3825
o = o.name_next
3826
) {
3827
var a = o.name;
3828
if (o.parent.id === r.id && a === e) return o;
3829
}
3830
return tr.lookup(r, e);
3831
},
3832
createNode: (r, e, t, n) => {
3833
var o = new tr.FSNode(r, e, t, n);
3834
return tr.hashAddNode(o), o;
3835
},
3836
destroyNode: (r) => {
3837
tr.hashRemoveNode(r);
3838
},
3839
isRoot: (r) => r === r.parent,
3840
isMountpoint: (r) => !!r.mounted,
3841
isFile: (r) => 32768 == (61440 & r),
3842
isDir: (r) => 16384 == (61440 & r),
3843
isLink: (r) => 40960 == (61440 & r),
3844
isChrdev: (r) => 8192 == (61440 & r),
3845
isBlkdev: (r) => 24576 == (61440 & r),
3846
isFIFO: (r) => 4096 == (61440 & r),
3847
isSocket: (r) => 49152 == (49152 & r),
3848
flagModes: {
3849
r: 0,
3850
"r+": 2,
3851
w: 577,
3852
"w+": 578,
3853
a: 1089,
3854
"a+": 1090,
3855
},
3856
modeStringToFlags: (r) => {
3857
var e = tr.flagModes[r];
3858
if (void 0 === e) {
3859
throw new Error("Unknown file open mode: " + r);
3860
}
3861
return e;
3862
},
3863
flagsToPermissionString: (r) => {
3864
var e = ["r", "w", "rw"][3 & r];
3865
return 512 & r && (e += "w"), e;
3866
},
3867
nodePermissions: (r, e) =>
3868
tr.ignorePermissions ||
3869
((!e.includes("r") || 292 & r.mode) &&
3870
(!e.includes("w") || 146 & r.mode) &&
3871
(!e.includes("x") || 73 & r.mode))
3872
? 0
3873
: 2,
3874
mayLookup: (r) => {
3875
var e = tr.nodePermissions(r, "x");
3876
return e || (r.node_ops.lookup ? 0 : 2);
3877
},
3878
mayCreate: (r, e) => {
3879
try {
3880
return tr.lookupNode(r, e), 20;
3881
} catch (r) {}
3882
return tr.nodePermissions(r, "wx");
3883
},
3884
mayDelete: (r, e, t) => {
3885
var n;
3886
try {
3887
n = tr.lookupNode(r, e);
3888
} catch (r) {
3889
return r.errno;
3890
}
3891
var o = tr.nodePermissions(r, "wx");
3892
if (o) return o;
3893
if (t) {
3894
if (!tr.isDir(n.mode)) return 54;
3895
if (tr.isRoot(n) || tr.getPath(n) === tr.cwd()) return 10;
3896
} else if (tr.isDir(n.mode)) return 31;
3897
return 0;
3898
},
3899
mayOpen: (r, e) =>
3900
r
3901
? tr.isLink(r.mode)
3902
? 32
3903
: tr.isDir(r.mode) &&
3904
("r" !== tr.flagsToPermissionString(e) || 512 & e)
3905
? 31
3906
: tr.nodePermissions(r, tr.flagsToPermissionString(e))
3907
: 44,
3908
MAX_OPEN_FDS: 4096,
3909
nextfd: (r = 0, e = tr.MAX_OPEN_FDS) => {
3910
for (var t = r; t <= e; t++) {
3911
if (!tr.streams[t]) return t;
3912
}
3913
throw new tr.ErrnoError(33);
3914
},
3915
getStream: (r) => tr.streams[r],
3916
createStream: (r, e, t) => {
3917
tr.FSStream ||
3918
((tr.FSStream = function () {}),
3919
(tr.FSStream.prototype = {
3920
object: {
3921
get: function () {
3922
return this.node;
3923
},
3924
set: function (r) {
3925
this.node = r;
3926
},
3927
},
3928
isRead: {
3929
get: function () {
3930
return 1 != (2097155 & this.flags);
3931
},
3932
},
3933
isWrite: {
3934
get: function () {
3935
return 0 != (2097155 & this.flags);
3936
},
3937
},
3938
isAppend: {
3939
get: function () {
3940
return 1024 & this.flags;
3941
},
3942
},
3943
})),
3944
(r = Object.assign(new tr.FSStream(), r));
3945
var n = tr.nextfd(e, t);
3946
return (r.fd = n), (tr.streams[n] = r), r;
3947
},
3948
closeStream: (r) => {
3949
tr.streams[r] = null;
3950
},
3951
chrdev_stream_ops: {
3952
open: (r) => {
3953
var e = tr.getDevice(r.node.rdev);
3954
(r.stream_ops = e.stream_ops),
3955
r.stream_ops.open && r.stream_ops.open(r);
3956
},
3957
llseek: () => {
3958
throw new tr.ErrnoError(70);
3959
},
3960
},
3961
major: (r) => r >> 8,
3962
minor: (r) => 255 & r,
3963
makedev: (r, e) => (r << 8) | e,
3964
registerDevice: (r, e) => {
3965
tr.devices[r] = { stream_ops: e };
3966
},
3967
getDevice: (r) => tr.devices[r],
3968
getMounts: (r) => {
3969
for (var e = [], t = [r]; t.length; ) {
3970
var n = t.pop();
3971
e.push(n), t.push.apply(t, n.mounts);
3972
}
3973
return e;
3974
},
3975
syncfs: (r, e) => {
3976
"function" == typeof r && ((e = r), (r = !1)),
3977
tr.syncFSRequests++,
3978
tr.syncFSRequests > 1 &&
3979
f(
3980
"warning: " +
3981
tr.syncFSRequests +
3982
" FS.syncfs operations in flight at once, probably just doing extra work"
3983
);
3984
var t = tr.getMounts(tr.root.mount),
3985
n = 0;
3986
function o(r) {
3987
return tr.syncFSRequests--, e(r);
3988
}
3989
function a(r) {
3990
if (r) return a.errored ? void 0 : ((a.errored = !0), o(r));
3991
++n >= t.length && o(null);
3992
}
3993
t.forEach((e) => {
3994
if (!e.type.syncfs) return a(null);
3995
e.type.syncfs(e, r, a);
3996
});
3997
},
3998
mount: (r, e, t) => {
3999
var n,
4000
o = "/" === t,
4001
a = !t;
4002
if (o && tr.root) throw new tr.ErrnoError(10);
4003
if (!o && !a) {
4004
var i = tr.lookupPath(t, { follow_mount: !1 });
4005
if (((t = i.path), (n = i.node), tr.isMountpoint(n))) {
4006
throw new tr.ErrnoError(10);
4007
}
4008
if (!tr.isDir(n.mode)) {
4009
throw new tr.ErrnoError(54);
4010
}
4011
}
4012
var s = { type: r, opts: e, mountpoint: t, mounts: [] },
4013
u = r.mount(s);
4014
return (
4015
(u.mount = s),
4016
(s.root = u),
4017
o
4018
? (tr.root = u)
4019
: n && ((n.mounted = s), n.mount && n.mount.mounts.push(s)),
4020
u
4021
);
4022
},
4023
unmount: (r) => {
4024
var e = tr.lookupPath(r, { follow_mount: !1 });
4025
if (!tr.isMountpoint(e.node)) throw new tr.ErrnoError(28);
4026
var t = e.node,
4027
n = t.mounted,
4028
o = tr.getMounts(n);
4029
Object.keys(tr.nameTable).forEach((r) => {
4030
for (var e = tr.nameTable[r]; e; ) {
4031
var t = e.name_next;
4032
o.includes(e.mount) && tr.destroyNode(e), (e = t);
4033
}
4034
}),
4035
(t.mounted = null);
4036
var a = t.mount.mounts.indexOf(n);
4037
t.mount.mounts.splice(a, 1);
4038
},
4039
lookup: (r, e) => r.node_ops.lookup(r, e),
4040
mknod: (r, e, t) => {
4041
var n = tr.lookupPath(r, { parent: !0 }).node,
4042
o = Y.basename(r);
4043
if (!o || "." === o || ".." === o) {
4044
throw new tr.ErrnoError(28);
4045
}
4046
var a = tr.mayCreate(n, o);
4047
if (a) throw new tr.ErrnoError(a);
4048
if (!n.node_ops.mknod) throw new tr.ErrnoError(63);
4049
return n.node_ops.mknod(n, o, e, t);
4050
},
4051
create: (r, e) => (
4052
(e = void 0 !== e ? e : 438),
4053
(e &= 4095),
4054
(e |= 32768),
4055
tr.mknod(r, e, 0)
4056
),
4057
mkdir: (r, e) => (
4058
(e = void 0 !== e ? e : 511),
4059
(e &= 1023),
4060
(e |= 16384),
4061
tr.mknod(r, e, 0)
4062
),
4063
mkdirTree: (r, e) => {
4064
for (var t = r.split("/"), n = "", o = 0; o < t.length; ++o) {
4065
if (t[o]) {
4066
n += "/" + t[o];
4067
try {
4068
tr.mkdir(n, e);
4069
} catch (r) {
4070
if (20 != r.errno) throw r;
4071
}
4072
}
4073
}
4074
},
4075
mkdev: (r, e, t) => (
4076
void 0 === t && ((t = e), (e = 438)),
4077
(e |= 8192),
4078
tr.mknod(r, e, t)
4079
),
4080
symlink: (r, e) => {
4081
if (!Q.resolve(r)) throw new tr.ErrnoError(44);
4082
var t = tr.lookupPath(e, { parent: !0 }).node;
4083
if (!t) throw new tr.ErrnoError(44);
4084
var n = Y.basename(e),
4085
o = tr.mayCreate(t, n);
4086
if (o) throw new tr.ErrnoError(o);
4087
if (!t.node_ops.symlink) throw new tr.ErrnoError(63);
4088
return t.node_ops.symlink(t, n, r);
4089
},
4090
rename: (r, e) => {
4091
var t,
4092
n,
4093
o = Y.dirname(r),
4094
a = Y.dirname(e),
4095
i = Y.basename(r),
4096
s = Y.basename(e);
4097
if (
4098
((t = tr.lookupPath(r, { parent: !0 }).node),
4099
(n = tr.lookupPath(e, { parent: !0 }).node),
4100
!t || !n)
4101
) {
4102
throw new tr.ErrnoError(44);
4103
}
4104
if (t.mount !== n.mount) throw new tr.ErrnoError(75);
4105
var u,
4106
c = tr.lookupNode(t, i),
4107
l = Q.relative(r, a);
4108
if ("." !== l.charAt(0)) throw new tr.ErrnoError(28);
4109
if ("." !== (l = Q.relative(e, o)).charAt(0)) {
4110
throw new tr.ErrnoError(55);
4111
}
4112
try {
4113
u = tr.lookupNode(n, s);
4114
} catch (r) {}
4115
if (c !== u) {
4116
var d = tr.isDir(c.mode),
4117
f = tr.mayDelete(t, i, d);
4118
if (f) throw new tr.ErrnoError(f);
4119
if ((f = u ? tr.mayDelete(n, s, d) : tr.mayCreate(n, s))) {
4120
throw new tr.ErrnoError(f);
4121
}
4122
if (!t.node_ops.rename) throw new tr.ErrnoError(63);
4123
if (tr.isMountpoint(c) || (u && tr.isMountpoint(u))) {
4124
throw new tr.ErrnoError(10);
4125
}
4126
if (n !== t && (f = tr.nodePermissions(t, "w"))) {
4127
throw new tr.ErrnoError(f);
4128
}
4129
tr.hashRemoveNode(c);
4130
try {
4131
t.node_ops.rename(c, n, s);
4132
} catch (r) {
4133
throw r;
4134
} finally {
4135
tr.hashAddNode(c);
4136
}
4137
}
4138
},
4139
rmdir: (r) => {
4140
var e = tr.lookupPath(r, { parent: !0 }).node,
4141
t = Y.basename(r),
4142
n = tr.lookupNode(e, t),
4143
o = tr.mayDelete(e, t, !0);
4144
if (o) throw new tr.ErrnoError(o);
4145
if (!e.node_ops.rmdir) {
4146
throw new tr.ErrnoError(63);
4147
}
4148
if (tr.isMountpoint(n)) throw new tr.ErrnoError(10);
4149
e.node_ops.rmdir(e, t), tr.destroyNode(n);
4150
},
4151
readdir: (r) => {
4152
var e = tr.lookupPath(r, { follow: !0 }).node;
4153
if (!e.node_ops.readdir) throw new tr.ErrnoError(54);
4154
return e.node_ops.readdir(e);
4155
},
4156
unlink: (r) => {
4157
var e = tr.lookupPath(r, { parent: !0 }).node;
4158
if (!e) throw new tr.ErrnoError(44);
4159
var t = Y.basename(r),
4160
n = tr.lookupNode(e, t),
4161
o = tr.mayDelete(e, t, !1);
4162
if (o) throw new tr.ErrnoError(o);
4163
if (!e.node_ops.unlink) throw new tr.ErrnoError(63);
4164
if (tr.isMountpoint(n)) throw new tr.ErrnoError(10);
4165
e.node_ops.unlink(e, t), tr.destroyNode(n);
4166
},
4167
readlink: (r) => {
4168
var e = tr.lookupPath(r).node;
4169
if (!e) throw new tr.ErrnoError(44);
4170
if (!e.node_ops.readlink) throw new tr.ErrnoError(28);
4171
return Q.resolve(tr.getPath(e.parent), e.node_ops.readlink(e));
4172
},
4173
stat: (r, e) => {
4174
var t = tr.lookupPath(r, { follow: !e }).node;
4175
if (!t) throw new tr.ErrnoError(44);
4176
if (!t.node_ops.getattr) throw new tr.ErrnoError(63);
4177
return t.node_ops.getattr(t);
4178
},
4179
lstat: (r) => tr.stat(r, !0),
4180
chmod: (r, e, t) => {
4181
var n;
4182
if (
4183
!(n =
4184
"string" == typeof r
4185
? tr.lookupPath(r, { follow: !t }).node
4186
: r).node_ops.setattr
4187
) {
4188
throw new tr.ErrnoError(63);
4189
}
4190
n.node_ops.setattr(n, {
4191
mode: (4095 & e) | (-4096 & n.mode),
4192
timestamp: Date.now(),
4193
});
4194
},
4195
lchmod: (r, e) => {
4196
tr.chmod(r, e, !0);
4197
},
4198
fchmod: (r, e) => {
4199
var t = tr.getStream(r);
4200
if (!t) throw new tr.ErrnoError(8);
4201
tr.chmod(t.node, e);
4202
},
4203
chown: (r, e, t, n) => {
4204
var o;
4205
if (
4206
!(o =
4207
"string" == typeof r
4208
? tr.lookupPath(r, { follow: !n }).node
4209
: r).node_ops.setattr
4210
) {
4211
throw new tr.ErrnoError(63);
4212
}
4213
o.node_ops.setattr(o, { timestamp: Date.now() });
4214
},
4215
lchown: (r, e, t) => {
4216
tr.chown(r, e, t, !0);
4217
},
4218
fchown: (r, e, t) => {
4219
var n = tr.getStream(r);
4220
if (!n) throw new tr.ErrnoError(8);
4221
tr.chown(n.node, e, t);
4222
},
4223
truncate: (r, e) => {
4224
if (e < 0) throw new tr.ErrnoError(28);
4225
var t;
4226
if (
4227
!(t =
4228
"string" == typeof r
4229
? tr.lookupPath(r, { follow: !0 }).node
4230
: r).node_ops.setattr
4231
) {
4232
throw new tr.ErrnoError(63);
4233
}
4234
if (tr.isDir(t.mode)) throw new tr.ErrnoError(31);
4235
if (!tr.isFile(t.mode)) throw new tr.ErrnoError(28);
4236
var n = tr.nodePermissions(t, "w");
4237
if (n) throw new tr.ErrnoError(n);
4238
t.node_ops.setattr(t, { size: e, timestamp: Date.now() });
4239
},
4240
ftruncate: (r, e) => {
4241
var t = tr.getStream(r);
4242
if (!t) throw new tr.ErrnoError(8);
4243
if (0 == (2097155 & t.flags)) throw new tr.ErrnoError(28);
4244
tr.truncate(t.node, e);
4245
},
4246
utime: (r, e, t) => {
4247
var n = tr.lookupPath(r, { follow: !0 }).node;
4248
n.node_ops.setattr(n, { timestamp: Math.max(e, t) });
4249
},
4250
open: (r, e, t, n, a) => {
4251
if ("" === r) throw new tr.ErrnoError(44);
4252
var i;
4253
if (
4254
((t = void 0 === t ? 438 : t),
4255
(t =
4256
64 &
4257
(e = "string" == typeof e ? tr.modeStringToFlags(e) : e)
4258
? (4095 & t) | 32768
4259
: 0),
4260
"object" == typeof r)
4261
) {
4262
i = r;
4263
} else {
4264
r = Y.normalize(r);
4265
try {
4266
i = tr.lookupPath(r, { follow: !(131072 & e) }).node;
4267
} catch (r) {}
4268
}
4269
var s = !1;
4270
if (64 & e) {
4271
if (i)
4272
if (128 & e) throw new tr.ErrnoError(20);
4273
else (i = tr.mknod(r, t, 0)), (s = !0);
4274
}
4275
if (!i) throw new tr.ErrnoError(44);
4276
if (
4277
(tr.isChrdev(i.mode) && (e &= -513),
4278
65536 & e && !tr.isDir(i.mode))
4279
) {
4280
throw new tr.ErrnoError(54);
4281
}
4282
if (!s) {
4283
var u = tr.mayOpen(i, e);
4284
if (u) throw new tr.ErrnoError(u);
4285
}
4286
512 & e && tr.truncate(i, 0), (e &= -131713);
4287
var c = tr.createStream(
4288
{
4289
node: i,
4290
path: tr.getPath(i),
4291
flags: e,
4292
seekable: !0,
4293
position: 0,
4294
stream_ops: i.stream_ops,
4295
ungotten: [],
4296
error: !1,
4297
},
4298
n,
4299
a
4300
);
4301
return (
4302
c.stream_ops.open && c.stream_ops.open(c),
4303
!o.logReadFiles ||
4304
1 & e ||
4305
(tr.readFiles || (tr.readFiles = {}),
4306
r in tr.readFiles || (tr.readFiles[r] = 1)),
4307
c
4308
);
4309
},
4310
close: (r) => {
4311
if (tr.isClosed(r)) throw new tr.ErrnoError(8);
4312
r.getdents && (r.getdents = null);
4313
try {
4314
r.stream_ops.close && r.stream_ops.close(r);
4315
} catch (r) {
4316
throw r;
4317
} finally {
4318
tr.closeStream(r.fd);
4319
}
4320
r.fd = null;
4321
},
4322
isClosed: (r) => null === r.fd,
4323
llseek: (r, e, t) => {
4324
if (tr.isClosed(r)) throw new tr.ErrnoError(8);
4325
if (!r.seekable || !r.stream_ops.llseek) {
4326
throw new tr.ErrnoError(70);
4327
}
4328
if (0 != t && 1 != t && 2 != t) throw new tr.ErrnoError(28);
4329
return (
4330
(r.position = r.stream_ops.llseek(r, e, t)),
4331
(r.ungotten = []),
4332
r.position
4333
);
4334
},
4335
read: (r, e, t, n, o) => {
4336
if (n < 0 || o < 0) throw new tr.ErrnoError(28);
4337
if (tr.isClosed(r)) {
4338
throw new tr.ErrnoError(8);
4339
}
4340
if (1 == (2097155 & r.flags)) throw new tr.ErrnoError(8);
4341
if (tr.isDir(r.node.mode)) throw new tr.ErrnoError(31);
4342
if (!r.stream_ops.read) throw new tr.ErrnoError(28);
4343
var a = void 0 !== o;
4344
if (a)
4345
if (!r.seekable) throw new tr.ErrnoError(70);
4346
else o = r.position;
4347
var i = r.stream_ops.read(r, e, t, n, o);
4348
return a || (r.position += i), i;
4349
},
4350
write: (r, e, t, n, o, a) => {
4351
if (n < 0 || o < 0) throw new tr.ErrnoError(28);
4352
if (tr.isClosed(r)) throw new tr.ErrnoError(8);
4353
if (0 == (2097155 & r.flags)) throw new tr.ErrnoError(8);
4354
if (tr.isDir(r.node.mode)) throw new tr.ErrnoError(31);
4355
if (!r.stream_ops.write) throw new tr.ErrnoError(28);
4356
r.seekable && 1024 & r.flags && tr.llseek(r, 0, 2);
4357
var i = void 0 !== o;
4358
if (i)
4359
if (!r.seekable) throw new tr.ErrnoError(70);
4360
else o = r.position;
4361
var s = r.stream_ops.write(r, e, t, n, o, a);
4362
return i || (r.position += s), s;
4363
},
4364
allocate: (r, e, t) => {
4365
if (tr.isClosed(r)) throw new tr.ErrnoError(8);
4366
if (e < 0 || t <= 0) throw new tr.ErrnoError(28);
4367
if (0 == (2097155 & r.flags)) throw new tr.ErrnoError(8);
4368
if (!tr.isFile(r.node.mode) && !tr.isDir(r.node.mode)) {
4369
throw new tr.ErrnoError(43);
4370
}
4371
if (!r.stream_ops.allocate) throw new tr.ErrnoError(138);
4372
r.stream_ops.allocate(r, e, t);
4373
},
4374
mmap: (r, e, t, n, o, a) => {
4375
if (0 != (2 & o) && 0 == (2 & a) && 2 != (2097155 & r.flags)) {
4376
throw new tr.ErrnoError(2);
4377
}
4378
if (1 == (2097155 & r.flags)) throw new tr.ErrnoError(2);
4379
if (!r.stream_ops.mmap) throw new tr.ErrnoError(43);
4380
return r.stream_ops.mmap(r, e, t, n, o, a);
4381
},
4382
msync: (r, e, t, n, o) =>
4383
r && r.stream_ops.msync ? r.stream_ops.msync(r, e, t, n, o) : 0,
4384
munmap: (r) => 0,
4385
ioctl: (r, e, t) => {
4386
if (!r.stream_ops.ioctl) throw new tr.ErrnoError(59);
4387
return r.stream_ops.ioctl(r, e, t);
4388
},
4389
readFile: (r, e = {}) => {
4390
if (
4391
((e.flags = e.flags || 0),
4392
(e.encoding = e.encoding || "binary"),
4393
"utf8" !== e.encoding && "binary" !== e.encoding)
4394
) {
4395
throw new Error('Invalid encoding type "' + e.encoding + '"');
4396
}
4397
var t,
4398
n = tr.open(r, e.flags),
4399
o = tr.stat(r).size,
4400
a = new Uint8Array(o);
4401
return (
4402
tr.read(n, a, 0, o, 0),
4403
"utf8" === e.encoding
4404
? (t = A(a, 0))
4405
: "binary" === e.encoding && (t = a),
4406
tr.close(n),
4407
t
4408
);
4409
},
4410
writeFile: (r, e, t = {}) => {
4411
t.flags = t.flags || 577;
4412
var n = tr.open(r, t.flags, t.mode);
4413
if ("string" == typeof e) {
4414
var o = new Uint8Array(M(e) + 1),
4415
a = x(e, o, 0, o.length);
4416
tr.write(n, o, 0, a, void 0, t.canOwn);
4417
} else {
4418
if (!ArrayBuffer.isView(e)) {
4419
throw new Error("Unsupported data type");
4420
}
4421
tr.write(n, e, 0, e.byteLength, void 0, t.canOwn);
4422
}
4423
tr.close(n);
4424
},
4425
cwd: () => tr.currentPath,
4426
chdir: (r) => {
4427
var e = tr.lookupPath(r, { follow: !0 });
4428
if (null === e.node) throw new tr.ErrnoError(44);
4429
if (!tr.isDir(e.node.mode)) throw new tr.ErrnoError(54);
4430
var t = tr.nodePermissions(e.node, "x");
4431
if (t) throw new tr.ErrnoError(t);
4432
tr.currentPath = e.path;
4433
},
4434
createDefaultDirectories: () => {
4435
tr.mkdir("/tmp"), tr.mkdir("/home"), tr.mkdir("/home/web_user");
4436
},
4437
createDefaultDevices: () => {
4438
tr.mkdir("/dev"),
4439
tr.registerDevice(tr.makedev(1, 3), {
4440
read: () => 0,
4441
write: (r, e, t, n, o) => n,
4442
}),
4443
tr.mkdev("/dev/null", tr.makedev(1, 3)),
4444
Z.register(tr.makedev(5, 0), Z.default_tty_ops),
4445
Z.register(tr.makedev(6, 0), Z.default_tty1_ops),
4446
tr.mkdev("/dev/tty", tr.makedev(5, 0)),
4447
tr.mkdev("/dev/tty1", tr.makedev(6, 0));
4448
var r = (function () {
4449
if (
4450
"object" == typeof crypto &&
4451
"function" == typeof crypto.getRandomValues
4452
) {
4453
var r = new Uint8Array(1);
4454
return function () {
4455
return crypto.getRandomValues(r), r[0];
4456
};
4457
}
4458
return function () {
4459
G("randomDevice");
4460
};
4461
})();
4462
tr.createDevice("/dev", "random", r),
4463
tr.createDevice("/dev", "urandom", r),
4464
tr.mkdir("/dev/shm"),
4465
tr.mkdir("/dev/shm/tmp");
4466
},
4467
createSpecialDirectories: () => {
4468
tr.mkdir("/proc");
4469
var r = tr.mkdir("/proc/self");
4470
tr.mkdir("/proc/self/fd"),
4471
tr.mount(
4472
{
4473
mount: () => {
4474
var e = tr.createNode(r, "fd", 16895, 73);
4475
return (
4476
(e.node_ops = {
4477
lookup: (r, e) => {
4478
var t = +e,
4479
n = tr.getStream(t);
4480
if (!n) throw new tr.ErrnoError(8);
4481
var o = {
4482
parent: null,
4483
mount: { mountpoint: "fake" },
4484
node_ops: { readlink: () => n.path },
4485
};
4486
return (o.parent = o), o;
4487
},
4488
}),
4489
e
4490
);
4491
},
4492
},
4493
{},
4494
"/proc/self/fd"
4495
);
4496
},
4497
createStandardStreams: () => {
4498
o.stdin
4499
? tr.createDevice("/dev", "stdin", o.stdin)
4500
: tr.symlink("/dev/tty", "/dev/stdin"),
4501
o.stdout
4502
? tr.createDevice("/dev", "stdout", null, o.stdout)
4503
: tr.symlink("/dev/tty", "/dev/stdout"),
4504
o.stderr
4505
? tr.createDevice("/dev", "stderr", null, o.stderr)
4506
: tr.symlink("/dev/tty1", "/dev/stderr"),
4507
tr.open("/dev/stdin", 0),
4508
tr.open("/dev/stdout", 1),
4509
tr.open("/dev/stderr", 1);
4510
},
4511
ensureErrnoError: () => {
4512
tr.ErrnoError ||
4513
((tr.ErrnoError = function (r, e) {
4514
(this.node = e),
4515
(this.setErrno = function (r) {
4516
this.errno = r;
4517
}),
4518
this.setErrno(r),
4519
(this.message = "FS error");
4520
}),
4521
(tr.ErrnoError.prototype = new Error()),
4522
(tr.ErrnoError.prototype.constructor = tr.ErrnoError),
4523
[44].forEach((r) => {
4524
(tr.genericErrors[r] = new tr.ErrnoError(r)),
4525
(tr.genericErrors[r].stack = "<generic error, no stack>");
4526
}));
4527
},
4528
staticInit: () => {
4529
tr.ensureErrnoError(),
4530
(tr.nameTable = new Array(4096)),
4531
tr.mount(er, {}, "/"),
4532
tr.createDefaultDirectories(),
4533
tr.createDefaultDevices(),
4534
tr.createSpecialDirectories(),
4535
(tr.filesystems = { MEMFS: er });
4536
},
4537
init: (r, e, t) => {
4538
(tr.init.initialized = !0),
4539
tr.ensureErrnoError(),
4540
(o.stdin = r || o.stdin),
4541
(o.stdout = e || o.stdout),
4542
(o.stderr = t || o.stderr),
4543
tr.createStandardStreams();
4544
},
4545
quit: () => {
4546
tr.init.initialized = !1;
4547
for (var r = 0; r < tr.streams.length; r++) {
4548
var e = tr.streams[r];
4549
e && tr.close(e);
4550
}
4551
},
4552
getMode: (r, e) => {
4553
var t = 0;
4554
return r && (t |= 365), e && (t |= 146), t;
4555
},
4556
findObject: (r, e) => {
4557
var t = tr.analyzePath(r, e);
4558
return t.exists ? t.object : null;
4559
},
4560
analyzePath: (r, e) => {
4561
try {
4562
r = (n = tr.lookupPath(r, { follow: !e })).path;
4563
} catch (r) {}
4564
var t = {
4565
isRoot: !1,
4566
exists: !1,
4567
error: 0,
4568
name: null,
4569
path: null,
4570
object: null,
4571
parentExists: !1,
4572
parentPath: null,
4573
parentObject: null,
4574
};
4575
try {
4576
var n = tr.lookupPath(r, { parent: !0 });
4577
(t.parentExists = !0),
4578
(t.parentPath = n.path),
4579
(t.parentObject = n.node),
4580
(t.name = Y.basename(r)),
4581
(n = tr.lookupPath(r, { follow: !e })),
4582
(t.exists = !0),
4583
(t.path = n.path),
4584
(t.object = n.node),
4585
(t.name = n.node.name),
4586
(t.isRoot = "/" === n.path);
4587
} catch (r) {
4588
t.error = r.errno;
4589
}
4590
return t;
4591
},
4592
createPath: (r, e, t, n) => {
4593
r = "string" == typeof r ? r : tr.getPath(r);
4594
for (var o = e.split("/").reverse(); o.length; ) {
4595
var a = o.pop();
4596
if (a) {
4597
var i = Y.join2(r, a);
4598
try {
4599
tr.mkdir(i);
4600
} catch (r) {}
4601
r = i;
4602
}
4603
}
4604
return i;
4605
},
4606
createFile: (r, e, t, n, o) => {
4607
var a = Y.join2("string" == typeof r ? r : tr.getPath(r), e),
4608
i = tr.getMode(n, o);
4609
return tr.create(a, i);
4610
},
4611
createDataFile: (r, e, t, n, o, a) => {
4612
var i = e;
4613
r &&
4614
((r = "string" == typeof r ? r : tr.getPath(r)),
4615
(i = e ? Y.join2(r, e) : r));
4616
var s = tr.getMode(n, o),
4617
u = tr.create(i, s);
4618
if (t) {
4619
if ("string" == typeof t) {
4620
for (
4621
var c = new Array(t.length), l = 0, d = t.length;
4622
l < d;
4623
++l
4624
) {
4625
c[l] = t.charCodeAt(l);
4626
}
4627
t = c;
4628
}
4629
tr.chmod(u, 146 | s);
4630
var f = tr.open(u, 577);
4631
tr.write(f, t, 0, t.length, 0, a),
4632
tr.close(f),
4633
tr.chmod(u, s);
4634
}
4635
return u;
4636
},
4637
createDevice: (r, e, t, n) => {
4638
var o = Y.join2("string" == typeof r ? r : tr.getPath(r), e),
4639
a = tr.getMode(!!t, !!n);
4640
tr.createDevice.major || (tr.createDevice.major = 64);
4641
var i = tr.makedev(tr.createDevice.major++, 0);
4642
return (
4643
tr.registerDevice(i, {
4644
open: (r) => {
4645
r.seekable = !1;
4646
},
4647
close: (r) => {
4648
n && n.buffer && n.buffer.length && n(10);
4649
},
4650
read: (r, e, n, o, a) => {
4651
for (var i = 0, s = 0; s < o; s++) {
4652
var u;
4653
try {
4654
u = t();
4655
} catch (r) {
4656
throw new tr.ErrnoError(29);
4657
}
4658
if (void 0 === u && 0 === i) throw new tr.ErrnoError(6);
4659
if (null == u) break;
4660
i++, (e[n + s] = u);
4661
}
4662
return i && (r.node.timestamp = Date.now()), i;
4663
},
4664
write: (r, e, t, o, a) => {
4665
for (var i = 0; i < o; i++) {
4666
try {
4667
n(e[t + i]);
4668
} catch (r) {
4669
throw new tr.ErrnoError(29);
4670
}
4671
}
4672
return o && (r.node.timestamp = Date.now()), i;
4673
},
4674
}),
4675
tr.mkdev(o, a, i)
4676
);
4677
},
4678
forceLoadFile: (r) => {
4679
if (r.isDevice || r.isFolder || r.link || r.contents) {
4680
return !0;
4681
}
4682
if ("undefined" != typeof XMLHttpRequest) {
4683
throw new Error(
4684
"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."
4685
);
4686
}
4687
if (!a) {
4688
throw new Error(
4689
"Cannot load without read() or XMLHttpRequest."
4690
);
4691
}
4692
try {
4693
(r.contents = dr(a(r.url), !0)),
4694
(r.usedBytes = r.contents.length);
4695
} catch (r) {
4696
throw new tr.ErrnoError(29);
4697
}
4698
},
4699
createLazyFile: (r, e, t, n, o) => {
4700
function a() {
4701
(this.lengthKnown = !1), (this.chunks = []);
4702
}
4703
if (
4704
((a.prototype.get = function (r) {
4705
if (!(r > this.length - 1 || r < 0)) {
4706
var e = r % this.chunkSize,
4707
t = (r / this.chunkSize) | 0;
4708
return this.getter(t)[e];
4709
}
4710
}),
4711
(a.prototype.setDataGetter = function (r) {
4712
this.getter = r;
4713
}),
4714
(a.prototype.cacheLength = function () {
4715
var r = new XMLHttpRequest();
4716
if (
4717
(r.open("HEAD", t, !1),
4718
r.send(null),
4719
!(
4720
(r.status >= 200 && r.status < 300) ||
4721
304 === r.status
4722
))
4723
) {
4724
throw new Error(
4725
"Couldn't load " + t + ". Status: " + r.status
4726
);
4727
}
4728
var e,
4729
n = Number(r.getResponseHeader("Content-length")),
4730
o =
4731
(e = r.getResponseHeader("Accept-Ranges")) &&
4732
"bytes" === e,
4733
a =
4734
(e = r.getResponseHeader("Content-Encoding")) &&
4735
"gzip" === e,
4736
i = 1048576;
4737
o || (i = n);
4738
var s = this;
4739
s.setDataGetter((r) => {
4740
var e = r * i,
4741
o = (r + 1) * i - 1;
4742
if (
4743
((o = Math.min(o, n - 1)),
4744
void 0 === s.chunks[r] &&
4745
(s.chunks[r] = ((r, e) => {
4746
if (r > e) {
4747
throw new Error(
4748
"invalid range (" +
4749
r +
4750
", " +
4751
e +
4752
") or no bytes requested!"
4753
);
4754
}
4755
if (e > n - 1) {
4756
throw new Error(
4757
"only " +
4758
n +
4759
" bytes available! programmer error!"
4760
);
4761
}
4762
var o = new XMLHttpRequest();
4763
if (
4764
(o.open("GET", t, !1),
4765
n !== i &&
4766
o.setRequestHeader(
4767
"Range",
4768
"bytes=" + r + "-" + e
4769
),
4770
(o.responseType = "arraybuffer"),
4771
o.overrideMimeType &&
4772
o.overrideMimeType(
4773
"text/plain; charset=x-user-defined"
4774
),
4775
o.send(null),
4776
!(
4777
(o.status >= 200 && o.status < 300) ||
4778
304 === o.status
4779
))
4780
) {
4781
throw new Error(
4782
"Couldn't load " + t + ". Status: " + o.status
4783
);
4784
}
4785
return void 0 !== o.response
4786
? new Uint8Array(o.response || [])
4787
: dr(o.responseText || "", !0);
4788
})(e, o)),
4789
void 0 === s.chunks[r])
4790
) {
4791
throw new Error("doXHR failed!");
4792
}
4793
return s.chunks[r];
4794
}),
4795
(!a && n) ||
4796
((i = n = 1),
4797
(n = this.getter(0).length),
4798
(i = n),
4799
d(
4800
"LazyFiles on gzip forces download of the whole file when length is accessed"
4801
)),
4802
(this._length = n),
4803
(this._chunkSize = i),
4804
(this.lengthKnown = !0);
4805
}),
4806
"undefined" != typeof XMLHttpRequest)
4807
) {
4808
throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
4809
}
4810
var i = { isDevice: !1, url: t },
4811
s = tr.createFile(r, e, i, n, o);
4812
i.contents
4813
? (s.contents = i.contents)
4814
: i.url && ((s.contents = null), (s.url = i.url)),
4815
Object.defineProperties(s, {
4816
usedBytes: {
4817
get: function () {
4818
return this.contents.length;
4819
},
4820
},
4821
});
4822
var u = {};
4823
return (
4824
Object.keys(s.stream_ops).forEach((r) => {
4825
var e = s.stream_ops[r];
4826
u[r] = function () {
4827
return tr.forceLoadFile(s), e.apply(null, arguments);
4828
};
4829
}),
4830
(u.read = (r, e, t, n, o) => {
4831
tr.forceLoadFile(s);
4832
var a = r.node.contents;
4833
if (o >= a.length) return 0;
4834
var i = Math.min(a.length - o, n);
4835
if (a.slice) {
4836
for (var u = 0; u < i; u++) e[t + u] = a[o + u];
4837
} else for (u = 0; u < i; u++) e[t + u] = a.get(o + u);
4838
return i;
4839
}),
4840
(s.stream_ops = u),
4841
s
4842
);
4843
},
4844
createPreloadedFile: (r, e, t, n, o, a, s, u, c, l) => {
4845
var d = e ? Q.resolve(Y.join2(r, e)) : r;
4846
function f(t) {
4847
function i(t) {
4848
l && l(),
4849
u || tr.createDataFile(r, e, t, n, o, c),
4850
a && a(),
4851
U();
4852
}
4853
Browser.handledByPreloadPlugin(t, d, i, () => {
4854
s && s(), U();
4855
}) || i(t);
4856
}
4857
H(),
4858
"string" == typeof t
4859
? (function (r, e, t, n) {
4860
var o = n ? "" : "al " + r;
4861
i(
4862
r,
4863
function (t) {
4864
_(
4865
t,
4866
'Loading data file "' +
4867
r +
4868
'" failed (no arrayBuffer).'
4869
),
4870
e(new Uint8Array(t)),
4871
o && U();
4872
},
4873
function (e) {
4874
if (!t)
4875
throw 'Loading data file "' + r + '" failed.';
4876
t();
4877
}
4878
),
4879
o && H();
4880
})(t, (r) => f(r), s)
4881
: f(t);
4882
},
4883
indexedDB: () =>
4884
window.indexedDB ||
4885
window.mozIndexedDB ||
4886
window.webkitIndexedDB ||
4887
window.msIndexedDB,
4888
DB_NAME: () => "EM_FS_" + window.location.pathname,
4889
DB_VERSION: 20,
4890
DB_STORE_NAME: "FILE_DATA",
4891
saveFilesToDB: (r, e, t) => {
4892
(e = e || (() => {})), (t = t || (() => {}));
4893
var n = tr.indexedDB();
4894
try {
4895
var o = n.open(tr.DB_NAME(), tr.DB_VERSION);
4896
} catch (r) {
4897
return t(r);
4898
}
4899
(o.onupgradeneeded = () => {
4900
d("creating db"),
4901
o.result.createObjectStore(tr.DB_STORE_NAME);
4902
}),
4903
(o.onsuccess = () => {
4904
var n = o.result.transaction(
4905
[tr.DB_STORE_NAME],
4906
"readwrite"
4907
),
4908
a = n.objectStore(tr.DB_STORE_NAME),
4909
i = 0,
4910
s = 0,
4911
u = r.length;
4912
function c() {
4913
0 == s ? e() : t();
4914
}
4915
r.forEach((r) => {
4916
var e = a.put(tr.analyzePath(r).object.contents, r);
4917
(e.onsuccess = () => {
4918
++i + s == u && c();
4919
}),
4920
(e.onerror = () => {
4921
s++, i + s == u && c();
4922
});
4923
}),
4924
(n.onerror = t);
4925
}),
4926
(o.onerror = t);
4927
},
4928
loadFilesFromDB: (r, e, t) => {
4929
(e = e || (() => {})), (t = t || (() => {}));
4930
var n = tr.indexedDB();
4931
try {
4932
var o = n.open(tr.DB_NAME(), tr.DB_VERSION);
4933
} catch (r) {
4934
return t(r);
4935
}
4936
(o.onupgradeneeded = t),
4937
(o.onsuccess = () => {
4938
var n = o.result;
4939
try {
4940
var a = n.transaction([tr.DB_STORE_NAME], "readonly");
4941
} catch (r) {
4942
return void t(r);
4943
}
4944
var i = a.objectStore(tr.DB_STORE_NAME),
4945
s = 0,
4946
u = 0,
4947
c = r.length;
4948
function l() {
4949
0 == u ? e() : t();
4950
}
4951
r.forEach((r) => {
4952
var e = i.get(r);
4953
(e.onsuccess = () => {
4954
tr.analyzePath(r).exists && tr.unlink(r),
4955
tr.createDataFile(
4956
Y.dirname(r),
4957
Y.basename(r),
4958
e.result,
4959
!0,
4960
!0,
4961
!0
4962
),
4963
++s + u == c && l();
4964
}),
4965
(e.onerror = () => {
4966
u++, s + u == c && l();
4967
});
4968
}),
4969
(a.onerror = t);
4970
}),
4971
(o.onerror = t);
4972
},
4973
},
4974
nr = {
4975
DEFAULT_POLLMASK: 5,
4976
calculateAt: function (r, e, t) {
4977
if ("/" === e[0]) return e;
4978
var n;
4979
if (-100 === r) n = tr.cwd();
4980
else {
4981
var o = tr.getStream(r);
4982
if (!o) throw new tr.ErrnoError(8);
4983
n = o.path;
4984
}
4985
if (0 == e.length) {
4986
if (!t) throw new tr.ErrnoError(44);
4987
return n;
4988
}
4989
return Y.join2(n, e);
4990
},
4991
doStat: function (r, e, t) {
4992
try {
4993
var n = r(e);
4994
} catch (r) {
4995
if (
4996
r &&
4997
r.node &&
4998
Y.normalize(e) !== Y.normalize(tr.getPath(r.node))
4999
) {
5000
return -54;
5001
}
5002
throw r;
5003
}
5004
return (
5005
(k[t >> 2] = n.dev),
5006
(k[(t + 4) >> 2] = 0),
5007
(k[(t + 8) >> 2] = n.ino),
5008
(k[(t + 12) >> 2] = n.mode),
5009
(k[(t + 16) >> 2] = n.nlink),
5010
(k[(t + 20) >> 2] = n.uid),
5011
(k[(t + 24) >> 2] = n.gid),
5012
(k[(t + 28) >> 2] = n.rdev),
5013
(k[(t + 32) >> 2] = 0),
5014
(j = [
5015
n.size >>> 0,
5016
((B = n.size),
5017
+Math.abs(B) >= 1
5018
? B > 0
5019
? (0 |
5020
Math.min(
5021
+Math.floor(B / 4294967296),
5022
4294967295
5023
)) >>>
5024
0
5025
: ~~+Math.ceil((B - +(~~B >>> 0)) / 4294967296) >>> 0
5026
: 0),
5027
]),
5028
(k[(t + 40) >> 2] = j[0]),
5029
(k[(t + 44) >> 2] = j[1]),
5030
(k[(t + 48) >> 2] = 4096),
5031
(k[(t + 52) >> 2] = n.blocks),
5032
(k[(t + 56) >> 2] = (n.atime.getTime() / 1e3) | 0),
5033
(k[(t + 60) >> 2] = 0),
5034
(k[(t + 64) >> 2] = (n.mtime.getTime() / 1e3) | 0),
5035
(k[(t + 68) >> 2] = 0),
5036
(k[(t + 72) >> 2] = (n.ctime.getTime() / 1e3) | 0),
5037
(k[(t + 76) >> 2] = 0),
5038
(j = [
5039
n.ino >>> 0,
5040
((B = n.ino),
5041
+Math.abs(B) >= 1
5042
? B > 0
5043
? (0 |
5044
Math.min(
5045
+Math.floor(B / 4294967296),
5046
4294967295
5047
)) >>>
5048
0
5049
: ~~+Math.ceil((B - +(~~B >>> 0)) / 4294967296) >>> 0
5050
: 0),
5051
]),
5052
(k[(t + 80) >> 2] = j[0]),
5053
(k[(t + 84) >> 2] = j[1]),
5054
0
5055
);
5056
},
5057
doMsync: function (r, e, t, n, o) {
5058
var a = g.slice(r, r + t);
5059
tr.msync(e, a, o, t, n);
5060
},
5061
doMkdir: function (r, e) {
5062
return (
5063
"/" === (r = Y.normalize(r))[r.length - 1] &&
5064
(r = r.substr(0, r.length - 1)),
5065
tr.mkdir(r, e, 0),
5066
0
5067
);
5068
},
5069
doMknod: function (r, e, t) {
5070
switch (61440 & e) {
5071
case 32768:
5072
case 8192:
5073
case 24576:
5074
case 4096:
5075
case 49152:
5076
break;
5077
default:
5078
return -28;
5079
}
5080
return tr.mknod(r, e, t), 0;
5081
},
5082
doReadlink: function (r, e, t) {
5083
if (t <= 0) return -28;
5084
var n = tr.readlink(r),
5085
o = Math.min(t, M(n)),
5086
a = E[e + o];
5087
return x(n, g, e, t + 1), (E[e + o] = a), o;
5088
},
5089
doAccess: function (r, e) {
5090
if (-8 & e) return -28;
5091
var t = tr.lookupPath(r, { follow: !0 }).node;
5092
if (!t) return -44;
5093
var n = "";
5094
return (
5095
4 & e && (n += "r"),
5096
2 & e && (n += "w"),
5097
1 & e && (n += "x"),
5098
n && tr.nodePermissions(t, n) ? -2 : 0
5099
);
5100
},
5101
doDup: function (r, e, t) {
5102
var n = tr.getStream(t);
5103
return n && tr.close(n), tr.open(r, e, 0, t, t).fd;
5104
},
5105
doReadv: function (r, e, t, n) {
5106
for (var o = 0, a = 0; a < t; a++) {
5107
var i = k[(e + 8 * a) >> 2],
5108
s = k[(e + (8 * a + 4)) >> 2],
5109
u = tr.read(r, E, i, s, n);
5110
if (u < 0) return -1;
5111
if (((o += u), u < s)) break;
5112
}
5113
return o;
5114
},
5115
doWritev: function (r, e, t, n) {
5116
for (var o = 0, a = 0; a < t; a++) {
5117
var i = k[(e + 8 * a) >> 2],
5118
s = k[(e + (8 * a + 4)) >> 2],
5119
u = tr.write(r, E, i, s, n);
5120
if (u < 0) return -1;
5121
o += u;
5122
}
5123
return o;
5124
},
5125
varargs: void 0,
5126
get: function () {
5127
return (nr.varargs += 4), k[(nr.varargs - 4) >> 2];
5128
},
5129
getStr: function (r) {
5130
return F(r);
5131
},
5132
getStreamFromFD: function (r) {
5133
var e = tr.getStream(r);
5134
if (!e) throw new tr.ErrnoError(8);
5135
return e;
5136
},
5137
get64: function (r, e) {
5138
return r;
5139
},
5140
},
5141
or = [];
5142
function ar(r) {
5143
try {
5144
return h.grow((r - y.byteLength + 65535) >>> 16), R(h.buffer), 1;
5145
} catch (r) {}
5146
}
5147
var ir = {};
5148
function sr() {
5149
if (!sr.strings) {
5150
var r = {
5151
USER: "web_user",
5152
LOGNAME: "web_user",
5153
PATH: "/",
5154
PWD: "/",
5155
HOME: "/home/web_user",
5156
LANG:
5157
(
5158
("object" == typeof navigator &&
5159
navigator.languages &&
5160
navigator.languages[0]) ||
5161
"C"
5162
).replace("-", "_") + ".UTF-8",
5163
_: u || "./this.program",
5164
};
5165
for (var e in ir) void 0 === ir[e] ? delete r[e] : (r[e] = ir[e]);
5166
var t = [];
5167
for (var e in r) t.push(e + "=" + r[e]);
5168
sr.strings = t;
5169
}
5170
return sr.strings;
5171
}
5172
var ur = function (r, e, t, n) {
5173
r || (r = this),
5174
(this.parent = r),
5175
(this.mount = r.mount),
5176
(this.mounted = null),
5177
(this.id = tr.nextInode++),
5178
(this.name = e),
5179
(this.mode = t),
5180
(this.node_ops = {}),
5181
(this.stream_ops = {}),
5182
(this.rdev = n);
5183
},
5184
cr = 365,
5185
lr = 146;
5186
function dr(r, e, t) {
5187
var n = t > 0 ? t : M(r) + 1,
5188
o = new Array(n),
5189
a = x(r, o, 0, o.length);
5190
return e && (o.length = a), o;
5191
}
5192
Object.defineProperties(ur.prototype, {
5193
read: {
5194
get: function () {
5195
return (this.mode & cr) === cr;
5196
},
5197
set: function (r) {
5198
r ? (this.mode |= cr) : (this.mode &= -366);
5199
},
5200
},
5201
write: {
5202
get: function () {
5203
return (this.mode & lr) === lr;
5204
},
5205
set: function (r) {
5206
r ? (this.mode |= lr) : (this.mode &= -147);
5207
},
5208
},
5209
isFolder: {
5210
get: function () {
5211
return tr.isDir(this.mode);
5212
},
5213
},
5214
isDevice: {
5215
get: function () {
5216
return tr.isChrdev(this.mode);
5217
},
5218
},
5219
}),
5220
(tr.FSNode = ur),
5221
tr.staticInit();
5222
var fr = {
5223
s: function (r, e) {
5224
return (function (r, e) {
5225
var t;
5226
if (0 === r) t = Date.now();
5227
else {
5228
if (1 !== r && 4 !== r) return K(28), -1;
5229
t = J();
5230
}
5231
return (
5232
(k[e >> 2] = (t / 1e3) | 0),
5233
(k[(e + 4) >> 2] = ((t % 1e3) * 1e3 * 1e3) | 0),
5234
0
5235
);
5236
})(r, e);
5237
},
5238
j: function (r, e, t, n) {
5239
try {
5240
return (
5241
(e = nr.getStr(e)),
5242
(e = nr.calculateAt(r, e)),
5243
nr.doAccess(e, t)
5244
);
5245
} catch (r) {
5246
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5247
return -r.errno;
5248
}
5249
},
5250
i: function (r, e, t) {
5251
nr.varargs = t;
5252
try {
5253
var n = nr.getStreamFromFD(r);
5254
switch (e) {
5255
case 0:
5256
return (o = nr.get()) < 0
5257
? -28
5258
: tr.open(n.path, n.flags, 0, o).fd;
5259
case 1:
5260
case 2:
5261
case 6:
5262
case 7:
5263
return 0;
5264
case 3:
5265
return n.flags;
5266
case 4:
5267
var o = nr.get();
5268
return (n.flags |= o), 0;
5269
case 5:
5270
return (o = nr.get()), (b[(o + 0) >> 1] = 2), 0;
5271
case 16:
5272
case 8:
5273
default:
5274
return -28;
5275
case 9:
5276
return K(28), -1;
5277
}
5278
} catch (r) {
5279
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5280
return -r.errno;
5281
}
5282
},
5283
z: function (r, e) {
5284
try {
5285
var t = nr.getStreamFromFD(r);
5286
return nr.doStat(tr.stat, t.path, e);
5287
} catch (r) {
5288
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5289
return -r.errno;
5290
}
5291
},
5292
x: function (r, e, t, n) {
5293
try {
5294
e = nr.getStr(e);
5295
var o = 256 & n,
5296
a = 4096 & n;
5297
return (
5298
(n &= -4353),
5299
(e = nr.calculateAt(r, e, a)),
5300
nr.doStat(o ? tr.lstat : tr.stat, e, t)
5301
);
5302
} catch (r) {
5303
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5304
return -r.errno;
5305
}
5306
},
5307
A: function (r, e, t) {
5308
nr.varargs = t;
5309
try {
5310
var n = nr.getStreamFromFD(r);
5311
switch (e) {
5312
case 21509:
5313
case 21505:
5314
case 21510:
5315
case 21511:
5316
case 21512:
5317
case 21506:
5318
case 21507:
5319
case 21508:
5320
case 21523:
5321
case 21524:
5322
return n.tty ? 0 : -59;
5323
case 21519:
5324
if (!n.tty) return -59;
5325
var o = nr.get();
5326
return (k[o >> 2] = 0), 0;
5327
case 21520:
5328
return n.tty ? -28 : -59;
5329
case 21531:
5330
return (o = nr.get()), tr.ioctl(n, e, o);
5331
default:
5332
G("bad ioctl syscall " + e);
5333
}
5334
} catch (r) {
5335
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5336
return -r.errno;
5337
}
5338
},
5339
d: function (r, e, t) {
5340
nr.varargs = t;
5341
try {
5342
var n = nr.getStr(r),
5343
o = t ? nr.get() : 0;
5344
return tr.open(n, e, o).fd;
5345
} catch (r) {
5346
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5347
return -r.errno;
5348
}
5349
},
5350
y: function (r, e) {
5351
try {
5352
return (r = nr.getStr(r)), nr.doStat(tr.stat, r, e);
5353
} catch (r) {
5354
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5355
return -r.errno;
5356
}
5357
},
5358
r: function (r) {
5359
try {
5360
return (r = nr.getStr(r)), tr.unlink(r), 0;
5361
} catch (r) {
5362
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5363
return -r.errno;
5364
}
5365
},
5366
p: function () {
5367
throw 1 / 0;
5368
},
5369
t: function (r, e, t, n, o, a, i, s) {
5370
try {
5371
var u = tr.getStream(o);
5372
if (!u) return -8;
5373
var c = tr.mmap(u, r, e, a, t, n),
5374
l = c.ptr;
5375
return (k[i >> 2] = c.allocated), l;
5376
} catch (r) {
5377
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5378
return -r.errno;
5379
}
5380
},
5381
u: function (r, e, t, n, o, a) {
5382
try {
5383
var i = tr.getStream(o);
5384
i && (2 & t && nr.doMsync(r, i, e, n, a), tr.munmap(i));
5385
} catch (r) {
5386
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5387
return -r.errno;
5388
}
5389
},
5390
o: function () {
5391
G("");
5392
},
5393
C: function (r, e, t) {
5394
var n = (function (r, e) {
5395
var t;
5396
for (or.length = 0, e >>= 2; (t = g[r++]); ) {
5397
var n = t < 105;
5398
n && 1 & e && e++, or.push(n ? D[e++ >> 1] : k[e]), ++e;
5399
}
5400
return or;
5401
})(e, t);
5402
return V[r].apply(null, n);
5403
},
5404
B: function (r, e, t) {
5405
g.copyWithin(r, e, e + t);
5406
},
5407
q: function (r) {
5408
var e,
5409
t,
5410
n = g.length,
5411
o = 2147483648;
5412
if ((r >>>= 0) > o) return !1;
5413
for (var a = 1; a <= 4; a *= 2) {
5414
var i = n * (1 + 0.2 / a);
5415
if (
5416
((i = Math.min(i, r + 100663296)),
5417
ar(
5418
Math.min(
5419
o,
5420
(e = Math.max(r, i)) + (((t = 65536) - (e % t)) % t)
5421
)
5422
))
5423
) {
5424
return !0;
5425
}
5426
}
5427
return !1;
5428
},
5429
v: function (r, e) {
5430
var t = 0;
5431
return (
5432
sr().forEach(function (n, o) {
5433
var a = e + t;
5434
(k[(r + 4 * o) >> 2] = a),
5435
(function (r, e, t) {
5436
for (var n = 0; n < r.length; ++n) {
5437
E[e++ >> 0] = r.charCodeAt(n);
5438
}
5439
t || (E[e >> 0] = 0);
5440
})(n, a),
5441
(t += n.length + 1);
5442
}),
5443
0
5444
);
5445
},
5446
w: function (r, e) {
5447
var t = sr();
5448
k[r >> 2] = t.length;
5449
var n = 0;
5450
return (
5451
t.forEach(function (r) {
5452
n += r.length + 1;
5453
}),
5454
(k[e >> 2] = n),
5455
0
5456
);
5457
},
5458
e: function (r) {
5459
!(function (r, e) {
5460
var t;
5461
(t = r),
5462
v || (o.onExit && o.onExit(t), (w = !0)),
5463
c(t, new Pr(t));
5464
})(r);
5465
},
5466
c: function (r) {
5467
try {
5468
var e = nr.getStreamFromFD(r);
5469
return tr.close(e), 0;
5470
} catch (r) {
5471
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5472
return r.errno;
5473
}
5474
},
5475
g: function (r, e, t, n) {
5476
try {
5477
var o = nr.getStreamFromFD(r),
5478
a = nr.doReadv(o, e, t);
5479
return (k[n >> 2] = a), 0;
5480
} catch (r) {
5481
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5482
return r.errno;
5483
}
5484
},
5485
n: function (r, e, t, n, o) {
5486
try {
5487
var a = nr.getStreamFromFD(r),
5488
i = 4294967296 * t + (e >>> 0),
5489
s = 9007199254740992;
5490
return i <= -s || i >= s
5491
? -61
5492
: (tr.llseek(a, i, n),
5493
(j = [
5494
a.position >>> 0,
5495
((B = a.position),
5496
+Math.abs(B) >= 1
5497
? B > 0
5498
? (0 |
5499
Math.min(
5500
+Math.floor(B / 4294967296),
5501
4294967295
5502
)) >>>
5503
0
5504
: ~~+Math.ceil((B - +(~~B >>> 0)) / 4294967296) >>> 0
5505
: 0),
5506
]),
5507
(k[o >> 2] = j[0]),
5508
(k[(o + 4) >> 2] = j[1]),
5509
a.getdents && 0 === i && 0 === n && (a.getdents = null),
5510
0);
5511
} catch (r) {
5512
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5513
return r.errno;
5514
}
5515
},
5516
h: function (r, e, t, n) {
5517
try {
5518
var o = nr.getStreamFromFD(r),
5519
a = nr.doWritev(o, e, t);
5520
return (k[n >> 2] = a), 0;
5521
} catch (r) {
5522
if (void 0 === tr || !(r instanceof tr.ErrnoError)) throw r;
5523
return r.errno;
5524
}
5525
},
5526
b: function () {
5527
return m;
5528
},
5529
k: function (r) {
5530
var e = Date.now();
5531
return (
5532
(k[r >> 2] = (e / 1e3) | 0),
5533
(k[(r + 4) >> 2] = ((e % 1e3) * 1e3) | 0),
5534
0
5535
);
5536
},
5537
l: function (r, e, t, n, o, a, i) {
5538
var s = Dr();
5539
try {
5540
return $(r)(e, t, n, o, a, i);
5541
} catch (r) {
5542
if ((Sr(s), r !== r + 0)) throw r;
5543
kr(1, 0);
5544
}
5545
},
5546
m: function (r, e) {
5547
var t = Dr();
5548
try {
5549
$(r)(e);
5550
} catch (r) {
5551
if ((Sr(t), r !== r + 0)) throw r;
5552
kr(1, 0);
5553
}
5554
},
5555
a: function (r) {
5556
m = r;
5557
},
5558
f: function (r) {
5559
var e = (Date.now() / 1e3) | 0;
5560
return r && (k[r >> 2] = e), e;
5561
},
5562
};
5563
!(function () {
5564
var r = { a: fr };
5565
function e(r, e) {
5566
var t,
5567
n = r.exports;
5568
(o.asm = n),
5569
R((h = o.asm.D).buffer),
5570
(S = o.asm.M),
5571
(t = o.asm.E),
5572
N.unshift(t),
5573
U();
5574
}
5575
function t(r) {
5576
e(r.instance);
5577
}
5578
function a(e) {
5579
return Promise.resolve()
5580
.then(function () {
5581
const module = graphvizWasmModule();
5582
const instance = new WebAssembly.Instance(module, r);
5583
return { module, instance };
5584
// return WebAssembly.instantiate(e, r);
5585
})
5586
.then(function (r) {
5587
return r;
5588
})
5589
.then(e, function (r) {
5590
f("failed to asynchronously prepare wasm: " + r), G(r);
5591
});
5592
}
5593
if ((H(), o.instantiateWasm)) {
5594
try {
5595
return o.instantiateWasm(r, e);
5596
} catch (r) {
5597
return (
5598
f("Module.instantiateWasm callback failed with error: " + r),
5599
!1
5600
);
5601
}
5602
}
5603
5604
a(t).catch(n);
5605
})(),
5606
(o.___wasm_call_ctors = function () {
5607
return (o.___wasm_call_ctors = o.asm.E).apply(null, arguments);
5608
});
5609
var pr = (o._emscripten_bind_VoidPtr___destroy___0 = function () {
5610
return (pr = o._emscripten_bind_VoidPtr___destroy___0 =
5611
o.asm.F).apply(null, arguments);
5612
}),
5613
mr = (o._emscripten_bind_Graphviz_Graphviz_2 = function () {
5614
return (mr = o._emscripten_bind_Graphviz_Graphviz_2 =
5615
o.asm.G).apply(null, arguments);
5616
}),
5617
hr = (o._emscripten_bind_Graphviz_version_0 = function () {
5618
return (hr = o._emscripten_bind_Graphviz_version_0 =
5619
o.asm.H).apply(null, arguments);
5620
}),
5621
vr = (o._emscripten_bind_Graphviz_lastError_0 = function () {
5622
return (vr = o._emscripten_bind_Graphviz_lastError_0 =
5623
o.asm.I).apply(null, arguments);
5624
}),
5625
wr = (o._emscripten_bind_Graphviz_layout_3 = function () {
5626
return (wr = o._emscripten_bind_Graphviz_layout_3 =
5627
o.asm.J).apply(null, arguments);
5628
}),
5629
_r = (o._emscripten_bind_Graphviz_createFile_2 = function () {
5630
return (_r = o._emscripten_bind_Graphviz_createFile_2 =
5631
o.asm.K).apply(null, arguments);
5632
}),
5633
yr = (o._emscripten_bind_Graphviz___destroy___0 = function () {
5634
return (yr = o._emscripten_bind_Graphviz___destroy___0 =
5635
o.asm.L).apply(null, arguments);
5636
});
5637
(o._malloc = function () {
5638
return (o._malloc = o.asm.N).apply(null, arguments);
5639
}),
5640
(o._free = function () {
5641
return (o._free = o.asm.O).apply(null, arguments);
5642
});
5643
var Er,
5644
gr = (o.___errno_location = function () {
5645
return (gr = o.___errno_location = o.asm.P).apply(
5646
null,
5647
arguments
5648
);
5649
}),
5650
br = (o._emscripten_builtin_memalign = function () {
5651
return (br = o._emscripten_builtin_memalign = o.asm.Q).apply(
5652
null,
5653
arguments
5654
);
5655
}),
5656
kr = (o._setThrew = function () {
5657
return (kr = o._setThrew = o.asm.R).apply(null, arguments);
5658
}),
5659
Dr = (o.stackSave = function () {
5660
return (Dr = o.stackSave = o.asm.S).apply(null, arguments);
5661
}),
5662
Sr = (o.stackRestore = function () {
5663
return (Sr = o.stackRestore = o.asm.T).apply(null, arguments);
5664
});
5665
function Pr(r) {
5666
(this.name = "ExitStatus"),
5667
(this.message = "Program terminated with exit(" + r + ")"),
5668
(this.status = r);
5669
}
5670
function Ar(r) {
5671
function t() {
5672
Er ||
5673
((Er = !0),
5674
(o.calledRun = !0),
5675
w ||
5676
(o.noFSInit || tr.init.initialized || tr.init(),
5677
(tr.ignorePermissions = !1),
5678
X(N),
5679
e(o),
5680
o.onRuntimeInitialized && o.onRuntimeInitialized(),
5681
(function () {
5682
if (o.postRun) {
5683
for (
5684
"function" == typeof o.postRun &&
5685
(o.postRun = [o.postRun]);
5686
o.postRun.length;
5687
5688
) {
5689
(r = o.postRun.shift()), O.unshift(r);
5690
}
5691
}
5692
var r;
5693
X(O);
5694
})()));
5695
}
5696
L > 0 ||
5697
((function () {
5698
if (o.preRun) {
5699
for (
5700
"function" == typeof o.preRun && (o.preRun = [o.preRun]);
5701
o.preRun.length;
5702
5703
) {
5704
(r = o.preRun.shift()), T.unshift(r);
5705
}
5706
}
5707
var r;
5708
X(T);
5709
})(),
5710
L > 0 ||
5711
(o.setStatus
5712
? (o.setStatus("Running..."),
5713
setTimeout(function () {
5714
setTimeout(function () {
5715
o.setStatus("");
5716
}, 1),
5717
t();
5718
}, 1))
5719
: t()));
5720
}
5721
if (
5722
((I = function r() {
5723
Er || Ar(), Er || (I = r);
5724
}),
5725
(o.run = Ar),
5726
o.preInit)
5727
) {
5728
for (
5729
"function" == typeof o.preInit && (o.preInit = [o.preInit]);
5730
o.preInit.length > 0;
5731
5732
) {
5733
o.preInit.pop()();
5734
}
5735
}
5736
function Fr() {}
5737
function xr(r) {
5738
return (r || Fr).__cache__;
5739
}
5740
function Mr(r, e) {
5741
var t = xr(e),
5742
n = t[r];
5743
return (
5744
n ||
5745
(((n = Object.create((e || Fr).prototype)).ptr = r), (t[r] = n))
5746
);
5747
}
5748
Ar(),
5749
(Fr.prototype = Object.create(Fr.prototype)),
5750
(Fr.prototype.constructor = Fr),
5751
(Fr.prototype.__class__ = Fr),
5752
(Fr.__cache__ = {}),
5753
(o.WrapperObject = Fr),
5754
(o.getCache = xr),
5755
(o.wrapPointer = Mr),
5756
(o.castObject = function (r, e) {
5757
return Mr(r.ptr, e);
5758
}),
5759
(o.NULL = Mr(0)),
5760
(o.destroy = function (r) {
5761
if (!r.__destroy__) {
5762
throw "Error: Cannot destroy object. (Did you create it yourself?)";
5763
}
5764
r.__destroy__(), delete xr(r.__class__)[r.ptr];
5765
}),
5766
(o.compare = function (r, e) {
5767
return r.ptr === e.ptr;
5768
}),
5769
(o.getPointer = function (r) {
5770
return r.ptr;
5771
}),
5772
(o.getClass = function (r) {
5773
return r.__class__;
5774
});
5775
var Rr = {
5776
buffer: 0,
5777
size: 0,
5778
pos: 0,
5779
temps: [],
5780
needed: 0,
5781
prepare: function () {
5782
if (Rr.needed) {
5783
for (var r = 0; r < Rr.temps.length; r++) o._free(Rr.temps[r]);
5784
(Rr.temps.length = 0),
5785
o._free(Rr.buffer),
5786
(Rr.buffer = 0),
5787
(Rr.size += Rr.needed),
5788
(Rr.needed = 0);
5789
}
5790
Rr.buffer ||
5791
((Rr.size += 128),
5792
(Rr.buffer = o._malloc(Rr.size)),
5793
_(Rr.buffer)),
5794
(Rr.pos = 0);
5795
},
5796
alloc: function (r, e) {
5797
_(Rr.buffer);
5798
var t,
5799
n = e.BYTES_PER_ELEMENT,
5800
a = r.length * n;
5801
return (
5802
(a = (a + 7) & -8),
5803
Rr.pos + a >= Rr.size
5804
? (_(a > 0),
5805
(Rr.needed += a),
5806
(t = o._malloc(a)),
5807
Rr.temps.push(t))
5808
: ((t = Rr.buffer + Rr.pos), (Rr.pos += a)),
5809
t
5810
);
5811
},
5812
copy: function (r, e, t) {
5813
switch (((t >>>= 0), e.BYTES_PER_ELEMENT)) {
5814
case 2:
5815
t >>>= 1;
5816
break;
5817
case 4:
5818
t >>>= 2;
5819
break;
5820
case 8:
5821
t >>>= 3;
5822
}
5823
for (var n = 0; n < r.length; n++) e[t + n] = r[n];
5824
},
5825
};
5826
function Cr(r) {
5827
if ("string" == typeof r) {
5828
var e = dr(r),
5829
t = Rr.alloc(e, E);
5830
return Rr.copy(e, E, t), t;
5831
}
5832
return r;
5833
}
5834
function zr() {
5835
throw "cannot construct a VoidPtr, no constructor in IDL";
5836
}
5837
function Br(r, e) {
5838
r && "object" == typeof r && (r = r.ptr),
5839
e && "object" == typeof e && (e = e.ptr),
5840
(this.ptr = mr(r, e)),
5841
(xr(Br)[this.ptr] = this);
5842
}
5843
return (
5844
(zr.prototype = Object.create(Fr.prototype)),
5845
(zr.prototype.constructor = zr),
5846
(zr.prototype.__class__ = zr),
5847
(zr.__cache__ = {}),
5848
(o.VoidPtr = zr),
5849
(zr.prototype.__destroy__ = zr.prototype.__destroy__ =
5850
function () {
5851
var r = this.ptr;
5852
pr(r);
5853
}),
5854
(Br.prototype = Object.create(Fr.prototype)),
5855
(Br.prototype.constructor = Br),
5856
(Br.prototype.__class__ = Br),
5857
(Br.__cache__ = {}),
5858
(o.Graphviz = Br),
5859
(Br.prototype.version = Br.prototype.version =
5860
function () {
5861
var r = this.ptr;
5862
return F(hr(r));
5863
}),
5864
(Br.prototype.lastError = Br.prototype.lastError =
5865
function () {
5866
var r = this.ptr;
5867
return F(vr(r));
5868
}),
5869
(Br.prototype.layout = Br.prototype.layout =
5870
function (r, e, t) {
5871
var n = this.ptr;
5872
return (
5873
Rr.prepare(),
5874
(r = r && "object" == typeof r ? r.ptr : Cr(r)),
5875
(e = e && "object" == typeof e ? e.ptr : Cr(e)),
5876
(t = t && "object" == typeof t ? t.ptr : Cr(t)),
5877
F(wr(n, r, e, t))
5878
);
5879
}),
5880
(Br.prototype.createFile = Br.prototype.createFile =
5881
function (r, e) {
5882
var t = this.ptr;
5883
Rr.prepare(),
5884
(r = r && "object" == typeof r ? r.ptr : Cr(r)),
5885
(e = e && "object" == typeof e ? e.ptr : Cr(e)),
5886
_r(t, r, e);
5887
}),
5888
(Br.prototype.__destroy__ = Br.prototype.__destroy__ =
5889
function () {
5890
var r = this.ptr;
5891
yr(r);
5892
}),
5893
r.ready
5894
);
5895
});
5896
r.exports = n;
5897
})(c);
5898
var l = e({ __proto__: null, default: c.exports }, [c.exports]);
5899
function d(r) {
5900
return {
5901
path: r.path,
5902
data: `<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n<svg width="${r.width}" height="${r.height}"></svg>`,
5903
};
5904
}
5905
function f(r, e) {
5906
const t = { images: [], files: [], ...e };
5907
var n;
5908
[...t.files, ...((n = t.images), n.map(d))].forEach((e) =>
5909
r.createFile(e.path, e.data)
5910
);
5911
}
5912
const p = {
5913
layout: (r, e = "svg", t = "dot", n) =>
5914
r
5915
? i(
5916
l,
5917
null == n ? void 0 : n.wasmFolder,
5918
null == n ? void 0 : n.wasmBinary
5919
).then((o) => {
5920
const a = new o.Graphviz(
5921
void 0 !== (null == n ? void 0 : n.yInvert) &&
5922
(null == n ? void 0 : n.yInvert),
5923
void 0 !== (null == n ? void 0 : n.nop)
5924
? null == n
5925
? void 0
5926
: n.nop
5927
: 0
5928
);
5929
f(a, n);
5930
const i = a.layout(r, e, t);
5931
if ((o.destroy(a), !i)) {
5932
throw new Error(o.Graphviz.prototype.lastError());
5933
}
5934
return i;
5935
})
5936
: Promise.resolve(""),
5937
circo(r, e = "svg", t) {
5938
return this.layout(r, e, "circo", t);
5939
},
5940
dot(r, e = "svg", t) {
5941
return this.layout(r, e, "dot", t);
5942
},
5943
fdp(r, e = "svg", t) {
5944
return this.layout(r, e, "fdp", t);
5945
},
5946
sfdp(r, e = "svg", t) {
5947
return this.layout(r, e, "sfdp", t);
5948
},
5949
neato(r, e = "svg", t) {
5950
return this.layout(r, e, "neato", t);
5951
},
5952
osage(r, e = "svg", t) {
5953
return this.layout(r, e, "osage", t);
5954
},
5955
patchwork(r, e = "svg", t) {
5956
return this.layout(r, e, "patchwork", t);
5957
},
5958
twopi(r, e = "svg", t) {
5959
return this.layout(r, e, "twopi", t);
5960
},
5961
};
5962
class m {
5963
constructor(r) {
5964
this._wasm = r;
5965
}
5966
layout(r, e = "svg", t = "dot", n) {
5967
if (!r) return "";
5968
const o = new this._wasm.Graphviz(
5969
(null == n ? void 0 : n.yInvert) ? 1 : 0,
5970
(null == n ? void 0 : n.nop) ? (null == n ? void 0 : n.nop) : 0
5971
);
5972
f(o, n);
5973
const a = o.layout(r, e, t);
5974
if ((this._wasm.destroy(o), !a)) {
5975
throw new Error(this._wasm.Graphviz.prototype.lastError());
5976
}
5977
return a;
5978
}
5979
circo(r, e = "svg", t) {
5980
return this.layout(r, e, "circo", t);
5981
}
5982
dot(r, e = "svg", t) {
5983
return this.layout(r, e, "dot", t);
5984
}
5985
fdp(r, e = "svg", t) {
5986
return this.layout(r, e, "fdp", t);
5987
}
5988
sfdp(r, e = "svg", t) {
5989
return this.layout(r, e, "sfdp", t);
5990
}
5991
neato(r, e = "svg", t) {
5992
return this.layout(r, e, "neato", t);
5993
}
5994
osage(r, e = "svg", t) {
5995
return this.layout(r, e, "osage", t);
5996
}
5997
patchwork(r, e = "svg", t) {
5998
return this.layout(r, e, "patchwork", t);
5999
}
6000
twopi(r, e = "svg", t) {
6001
return this.layout(r, e, "twopi", t);
6002
}
6003
}
6004
(r.GraphvizSync = m),
6005
(r.StackElement = s),
6006
(r.StackParser = class {
6007
constructor() {
6008
this._stack = [];
6009
}
6010
parse(r, e, t) {
6011
return u(r, this, e, t);
6012
}
6013
top() {
6014
return this._stack[this._stack.length - 1];
6015
}
6016
startElement(r, e) {
6017
const t = new s(r, e);
6018
return this._stack.push(t), t;
6019
}
6020
endElement(r) {
6021
return this._stack.pop();
6022
}
6023
characterData(r) {
6024
this.top().appendContent(r);
6025
}
6026
}),
6027
(r.expatVersion = function (r, e) {
6028
return i(n, r, e).then((r) => r.CExpat.prototype.version());
6029
}),
6030
(r.graphviz = p),
6031
(r.graphvizSync = function (r, e) {
6032
return i(l, r, e).then((r) => new m(r));
6033
}),
6034
(r.graphvizVersion = function (r, e) {
6035
return i(l, r, e).then((r) => r.Graphviz.prototype.version());
6036
}),
6037
(r.parse = u),
6038
(r.wasmFolder = a),
6039
Object.defineProperty(r, "__esModule", { value: !0 });
6040
});
6041
6042