@spz-loader/playcanvas
Version:
.spz GaussianSplatting loader for PlayCanvas Engine
757 lines • 254 kB
JavaScript
import { GSplatData as VI, GSplatResource as XI, Application as OI } from "playcanvas";
async function bI(F = {}) {
var a, y, i = F, q = typeof window == "object", U = typeof WorkerGlobalScope < "u", S = typeof process == "object" && ((a = process.versions) == null ? void 0 : a.node) && process.type != "renderer";
if (S) {
const { createRequire: I } = await Promise.resolve().then(() => $I);
var k = I(import.meta.url);
}
var L = "./this.program", b = import.meta.url, P;
if (S) {
var s = k("fs");
b.startsWith("file:") && k("path").dirname(k("url").fileURLToPath(b)), P = (I) => (I = oI(I) ? new URL(I) : I, s.readFileSync(I)), 1 < process.argv.length && (L = process.argv[1].replace(/\\/g, "/")), process.argv.slice(2);
} else if (q || U) {
try {
new URL(".", b);
} catch {
}
U && (P = (I) => {
var A = new XMLHttpRequest();
return A.open("GET", I, !1), A.responseType = "arraybuffer", A.send(null), new Uint8Array(A.response);
});
}
var eA = console.log.bind(console), IA = console.error.bind(console), aA, dA = !1, oI = (I) => I.startsWith("file://"), sA, RA, gA, BA, r, m, u, T, M, lA, xA, WA, ZA, TA = !1;
function jA() {
var I = gA.buffer;
BA = new Int8Array(I), m = new Int16Array(I), i.HEAPU8 = r = new Uint8Array(I), u = new Uint16Array(I), T = new Int32Array(I), M = new Uint32Array(I), i.HEAPF32 = lA = new Float32Array(I), xA = new Float64Array(I), WA = new BigInt64Array(I), ZA = new BigUint64Array(I);
}
var x = 0, z = null;
function pA(I) {
var A;
throw (A = i.onAbort) == null || A.call(i, I), I = "Aborted(" + I + ")", IA(I), dA = !0, I = new WebAssembly.RuntimeError(I + ". Build with -sASSERTIONS for more info."), RA == null || RA(I), I;
}
var QA;
async function FI(I) {
if (!ArrayBuffer.isView(I)) if (I == QA && aA) I = new Uint8Array(aA);
else if (P) I = P(I);
else throw "both async and sync fetching of the wasm failed";
return I;
}
async function GI(I) {
var A = QA;
try {
var g = await FI(A);
return await WebAssembly.instantiate(g, I);
} catch (B) {
IA(`failed to asynchronously prepare wasm: ${B}`), pA(B);
}
}
async function aI(I) {
return GI(I);
}
var VA = (I) => {
for (; 0 < I.length; ) I.shift()(i);
}, XA = [], OA = [], sI = () => {
var I = i.preRun.shift();
OA.push(I);
}, RI = (I) => {
if (S) return I = Buffer.from(I, "base64"), new Uint8Array(I.buffer, I.byteOffset, I.length);
for (var A, g, B = 0, Q = 0, E = I.length, C = new Uint8Array((3 * E >> 2) - (I[E - 2] == "=") - (I[E - 1] == "=")); B < E; B += 4, Q += 3) A = f[I.charCodeAt(B + 1)], g = f[I.charCodeAt(B + 2)], C[Q] = f[I.charCodeAt(B)] << 2 | A >> 4, C[Q + 1] = A << 4 | g >> 2, C[Q + 2] = g << 6 | f[I.charCodeAt(B + 3)];
return C;
}, CA = {}, yA = (I) => {
for (; I.length; ) {
var A = I.pop();
I.pop()(A);
}
};
function v(I) {
return this.N(M[I >> 2]);
}
var j = {}, W = {}, EA = {}, DA = class extends Error {
constructor(I) {
super(I), this.name = "InternalError";
}
}, Z = (I, A, g) => {
function B(D) {
if (D = g(D), D.length !== I.length) throw new DA("Mismatched type converter count");
for (var o = 0; o < I.length; ++o) H(I[o], D[o]);
}
I.forEach((D) => EA[D] = A);
var Q = Array(A.length), E = [], C = 0;
A.forEach((D, o) => {
W.hasOwnProperty(D) ? Q[o] = W[D] : (E.push(D), j.hasOwnProperty(D) || (j[D] = []), j[D].push(() => {
Q[o] = W[D], ++C, C === E.length && B(Q);
}));
}), E.length === 0 && B(Q);
}, N = (I) => {
for (var A = ""; ; ) {
var g = r[I++];
if (!g) return A;
A += String.fromCharCode(g);
}
}, R = class extends Error {
constructor(I) {
super(I), this.name = "BindingError";
}
}, yI = (I) => {
throw new R(I);
};
function hI(I, A, g = {}) {
var B = A.name;
if (!I) throw new R(`type "${B}" must have a positive integer typeid pointer`);
if (W.hasOwnProperty(I)) {
if (g.wa) return;
throw new R(`Cannot register type '${B}' twice`);
}
W[I] = A, delete EA[I], j.hasOwnProperty(I) && (A = j[I], delete j[I], A.forEach((Q) => Q()));
}
function H(I, A, g = {}) {
return hI(I, A, g);
}
var bA = (I, A, g) => {
switch (A) {
case 1:
return g ? (B) => BA[B] : (B) => r[B];
case 2:
return g ? (B) => m[B >> 1] : (B) => u[B >> 1];
case 4:
return g ? (B) => T[B >> 2] : (B) => M[B >> 2];
case 8:
return g ? (B) => WA[B >> 3] : (B) => ZA[B >> 3];
default:
throw new TypeError(`invalid integer width (${A}): ${I}`);
}
}, hA = (I) => {
throw new R(I.L.P.M.name + " instance already deleted");
}, MA = !1, PA = () => {
}, $ = (I) => typeof FinalizationRegistry > "u" ? ($ = (A) => A, I) : (MA = new FinalizationRegistry((A) => {
A = A.L, --A.count.value, A.count.value === 0 && (A.S ? A.W.Y(A.S) : A.P.M.Y(A.O));
}), $ = (A) => {
var g = A.L;
return g.S && MA.register(A, { L: g }, A), A;
}, PA = (A) => {
MA.unregister(A);
}, $(I));
function iA() {
}
var wA = (I, A) => Object.defineProperty(A, "name", { value: I }), mA = {}, uA = (I, A, g) => {
if (I[A].R === void 0) {
var B = I[A];
I[A] = function(...Q) {
if (!I[A].R.hasOwnProperty(Q.length)) throw new R(`Function '${g}' called with an invalid number of arguments (${Q.length}) - expects one of (${I[A].R})!`);
return I[A].R[Q.length].apply(this, Q);
}, I[A].R = [], I[A].R[B.aa] = B;
}
}, NA = (I, A, g) => {
if (i.hasOwnProperty(I)) {
if (g === void 0 || i[I].R !== void 0 && i[I].R[g] !== void 0) throw new R(`Cannot register public name '${I}' twice`);
if (uA(i, I, I), i[I].R.hasOwnProperty(g)) throw new R(`Cannot register multiple overloads of a function with the same number of arguments (${g})!`);
i[I].R[g] = A;
} else i[I] = A, i[I].aa = g;
}, MI = (I) => {
I = I.replace(/[^a-zA-Z0-9_]/g, "$");
var A = I.charCodeAt(0);
return 48 <= A && 57 >= A ? `_${I}` : I;
};
function NI(I, A, g, B, Q, E, C, D) {
this.name = I, this.constructor = A, this.$ = g, this.Y = B, this.U = Q, this.ra = E, this.ea = C, this.pa = D, this.ya = [];
}
var UA = (I, A, g) => {
for (; A !== g; ) {
if (!A.ea) throw new R(`Expected null or instance of ${g.name}, got an instance of ${A.name}`);
I = A.ea(I), A = A.U;
}
return I;
}, SA = (I) => {
if (I === null) return "null";
var A = typeof I;
return A === "object" || A === "array" || A === "function" ? I.toString() : "" + I;
};
function UI(I, A) {
if (A === null) {
if (this.ha) throw new R(`null is not a valid ${this.name}`);
return 0;
}
if (!A.L) throw new R(`Cannot pass "${SA(A)}" as a ${this.name}`);
if (!A.L.O) throw new R(`Cannot pass deleted object as a pointer of type ${this.name}`);
return UA(A.L.O, A.L.P.M, this.M);
}
function SI(I, A) {
if (A === null) {
if (this.ha) throw new R(`null is not a valid ${this.name}`);
if (this.ga) {
var g = this.ia();
return I !== null && I.push(this.Y, g), g;
}
return 0;
}
if (!A || !A.L) throw new R(`Cannot pass "${SA(A)}" as a ${this.name}`);
if (!A.L.O) throw new R(`Cannot pass deleted object as a pointer of type ${this.name}`);
if (!this.fa && A.L.P.fa) throw new R(`Cannot convert argument of type ${A.L.W ? A.L.W.name : A.L.P.name} to parameter type ${this.name}`);
if (g = UA(A.L.O, A.L.P.M, this.M), this.ga) {
if (A.L.S === void 0) throw new R("Passing raw pointer to smart pointer is illegal");
switch (this.Da) {
case 0:
if (A.L.W === this) g = A.L.S;
else throw new R(`Cannot convert argument of type ${A.L.W ? A.L.W.name : A.L.P.name} to parameter type ${this.name}`);
break;
case 1:
g = A.L.S;
break;
case 2:
if (A.L.W === this) g = A.L.S;
else {
var B = A.clone();
g = this.za(g, cA(() => B.delete())), I !== null && I.push(this.Y, g);
}
break;
default:
throw new R("Unsupporting sharing policy");
}
}
return g;
}
function JI(I, A) {
if (A === null) {
if (this.ha) throw new R(`null is not a valid ${this.name}`);
return 0;
}
if (!A.L) throw new R(`Cannot pass "${SA(A)}" as a ${this.name}`);
if (!A.L.O) throw new R(`Cannot pass deleted object as a pointer of type ${this.name}`);
if (A.L.P.fa) throw new R(`Cannot convert argument of type ${A.L.P.name} to parameter type ${this.name}`);
return UA(A.L.O, A.L.P.M, this.M);
}
var zA = (I, A, g) => A === g ? I : g.U === void 0 ? null : (I = zA(I, A, g.U), I === null ? null : g.pa(I)), YI = {}, LI = (I, A) => {
if (A === void 0) throw new R("ptr should not be undefined");
for (; I.U; ) A = I.ea(A), I = I.U;
return YI[A];
}, oA = (I, A) => {
if (!A.P || !A.O) throw new DA("makeClassHandle requires ptr and ptrType");
if (!!A.W != !!A.S) throw new DA("Both smartPtrType and smartPtr must be specified");
return A.count = { value: 1 }, $(Object.create(I, { L: { value: A, writable: !0 } }));
};
function FA(I, A, g, B, Q, E, C, D, o, G, w) {
this.name = I, this.M = A, this.ha = g, this.fa = B, this.ga = Q, this.xa = E, this.Da = C, this.na = D, this.ia = o, this.za = G, this.Y = w, Q || A.U !== void 0 ? this.T = SI : (this.T = B ? UI : JI, this.V = null);
}
var vA = (I, A, g) => {
if (!i.hasOwnProperty(I)) throw new DA("Replacing nonexistent public symbol");
i[I].R !== void 0 && g !== void 0 ? i[I].R[g] = A : (i[I] = A, i[I].aa = g);
}, $A, n = (I, A) => {
I = N(I);
var g = $A.get(A);
if (typeof g != "function") throw new R(`unknown function pointer with signature ${I}: ${A}`);
return g;
};
class kI extends Error {
}
var _A = (I) => {
I = iI(I);
var A = N(I);
return l(I), A;
}, GA = (I, A) => {
function g(E) {
Q[E] || W[E] || (EA[E] ? EA[E].forEach(g) : (B.push(E), Q[E] = !0));
}
var B = [], Q = {};
throw A.forEach(g), new kI(`${I}: ` + B.map(_A).join([", "]));
}, JA = (I, A) => {
for (var g = [], B = 0; B < I; B++) g.push(M[A + 4 * B >> 2]);
return g;
};
function AI(I) {
for (var A = 1; A < I.length; ++A) if (I[A] !== null && I[A].V === void 0) return !0;
return !1;
}
function YA(I, A, g, B, Q, E) {
var C = A.length;
if (2 > C) throw new R("argTypes array size mismatch! Must at least get return value and 'this' types!");
var D = A[1] !== null && g !== null, o = AI(A);
g = !A[0].ma;
var G = A[0], w = A[1];
for (B = [I, yI, B, Q, yA, G.N.bind(G), w == null ? void 0 : w.T.bind(w)], Q = 2; Q < C; ++Q) G = A[Q], B.push(G.T.bind(G));
if (!o) for (Q = D ? 1 : 2; Q < A.length; ++Q) A[Q].V !== null && B.push(A[Q].V);
for (o = AI(A), Q = A.length - 2, w = [], G = ["fn"], D && G.push("thisWired"), C = 0; C < Q; ++C) w.push(`arg${C}`), G.push(`arg${C}Wired`);
w = w.join(","), G = G.join(","), w = `return function (${w}) {
`, o && (w += `var destructors = [];
`);
var h = o ? "destructors" : "null", c = "humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");
for (D && (w += `var thisWired = toClassParamWire(${h}, this);
`), C = 0; C < Q; ++C) {
var J = `toArg${C}Wire`;
w += `var arg${C}Wired = ${J}(${h}, arg${C});
`, c.push(J);
}
if (w += (g || E ? "var rv = " : "") + `invoker(${G});
`, o) w += `runDestructors(destructors);
`;
else for (C = D ? 1 : 2; C < A.length; ++C) E = C === 1 ? "thisWired" : "arg" + (C - 2) + "Wired", A[C].V !== null && (w += `${E}_dtor(${E});
`, c.push(`${E}_dtor`));
return g && (w += `var ret = fromRetWire(rv);
return ret;
`), A = new Function(c, w + `}
`)(...B), wA(I, A);
}
for (var II = (I) => {
I = I.trim();
const A = I.indexOf("(");
return A === -1 ? I : I.slice(0, A);
}, gI = [], p = [0, 1, , 1, null, 1, !0, 1, !1, 1], LA = (I) => {
9 < I && --p[I + 1] === 0 && (p[I] = void 0, gI.push(I));
}, kA = (I) => {
if (!I) throw new R(`Cannot use deleted val. handle = ${I}`);
return p[I];
}, cA = (I) => {
switch (I) {
case void 0:
return 2;
case null:
return 4;
case !0:
return 6;
case !1:
return 8;
default:
const A = gI.pop() || p.length;
return p[A] = I, p[A + 1] = 1, A;
}
}, BI = { name: "emscripten::val", N: (I) => {
var A = kA(I);
return LA(I), A;
}, T: (I, A) => cA(A), X: v, V: null }, cI = (I, A, g) => {
switch (A) {
case 1:
return g ? function(B) {
return this.N(BA[B]);
} : function(B) {
return this.N(r[B]);
};
case 2:
return g ? function(B) {
return this.N(m[B >> 1]);
} : function(B) {
return this.N(u[B >> 1]);
};
case 4:
return g ? function(B) {
return this.N(T[B >> 2]);
} : function(B) {
return this.N(M[B >> 2]);
};
default:
throw new TypeError(`invalid integer width (${A}): ${I}`);
}
}, QI = (I, A) => {
var g = W[I];
if (g === void 0) throw I = `${A} has unknown type ${_A(I)}`, new R(I);
return g;
}, tI = (I, A) => {
switch (A) {
case 4:
return function(g) {
return this.N(lA[g >> 2]);
};
case 8:
return function(g) {
return this.N(xA[g >> 3]);
};
default:
throw new TypeError(`invalid float width (${A}): ${I}`);
}
}, HI = Object.assign({ optional: !0 }, BI), V = (I, A, g) => {
var B = r;
if (!(0 < g)) return 0;
var Q = A;
g = A + g - 1;
for (var E = 0; E < I.length; ++E) {
var C = I.codePointAt(E);
if (127 >= C) {
if (A >= g) break;
B[A++] = C;
} else if (2047 >= C) {
if (A + 1 >= g) break;
B[A++] = 192 | C >> 6, B[A++] = 128 | C & 63;
} else if (65535 >= C) {
if (A + 2 >= g) break;
B[A++] = 224 | C >> 12, B[A++] = 128 | C >> 6 & 63, B[A++] = 128 | C & 63;
} else {
if (A + 3 >= g) break;
B[A++] = 240 | C >> 18, B[A++] = 128 | C >> 12 & 63, B[A++] = 128 | C >> 6 & 63, B[A++] = 128 | C & 63, E++;
}
}
return B[A] = 0, A - Q;
}, CI = (I) => {
for (var A = 0, g = 0; g < I.length; ++g) {
var B = I.charCodeAt(g);
127 >= B ? A++ : 2047 >= B ? A += 2 : 55296 <= B && 57343 >= B ? (A += 4, ++g) : A += 3;
}
return A;
}, EI = new TextDecoder(), tA = (I, A, g, B) => {
if (g = A + g, B) return g;
for (; I[A] && !(A >= g); ) ++A;
return A;
}, KI = new TextDecoder("utf-16le"), rI = (I, A, g) => (I >>= 1, KI.decode(u.subarray(I, tA(u, I, A / 2, g)))), nI = (I, A, g) => {
if (g ?? (g = 2147483647), 2 > g) return 0;
g -= 2;
var B = A;
g = g < 2 * I.length ? g / 2 : I.length;
for (var Q = 0; Q < g; ++Q) m[A >> 1] = I.charCodeAt(Q), A += 2;
return m[A >> 1] = 0, A - B;
}, qI = (I) => 2 * I.length, fI = (I, A, g) => {
var B = "";
I >>= 2;
for (var Q = 0; !(Q >= A / 4); Q++) {
var E = M[I + Q];
if (!E && !g) break;
B += String.fromCodePoint(E);
}
return B;
}, eI = (I, A, g) => {
if (g ?? (g = 2147483647), 4 > g) return 0;
var B = A;
g = B + g - 4;
for (var Q = 0; Q < I.length; ++Q) {
var E = I.codePointAt(Q);
if (65535 < E && Q++, T[A >> 2] = E, A += 4, A + 4 > g) break;
}
return T[A >> 2] = 0, A - B;
}, dI = (I) => {
for (var A = 0, g = 0; g < I.length; ++g) 65535 < I.codePointAt(g) && g++, A += 4;
return A;
}, HA = [], lI = (I) => {
var A = HA.length;
return HA.push(I), A;
}, xI = (I, A) => {
for (var g = Array(I), B = 0; B < I; ++B) g[B] = QI(M[A + 4 * B >> 2], `parameter ${B}`);
return g;
}, WI = (I, A, g) => {
var B = [];
return I = I(B, g), B.length && (M[A >> 2] = cA(B)), I;
}, ZI = {}, TI = (I) => {
var A = ZI[I];
return A === void 0 ? N(I) : A;
}, KA = {}, DI = () => {
if (!rA) {
var I = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (typeof navigator == "object" && navigator.language || "C").replace("-", "_") + ".UTF-8", _: L || "./this.program" }, A;
for (A in KA) KA[A] === void 0 ? delete I[A] : I[A] = KA[A];
var g = [];
for (A in I) g.push(`${A}=${I[A]}`);
rA = g;
}
return rA;
}, rA, jI = [null, [], []], f = new Uint8Array(123), d = 25; 0 <= d; --d) f[48 + d] = 52 + d, f[65 + d] = d, f[97 + d] = 26 + d;
f[43] = 62, f[47] = 63, (() => {
let I = iA.prototype;
Object.assign(I, { isAliasOf: function(g) {
if (!(this instanceof iA && g instanceof iA)) return !1;
var B = this.L.P.M, Q = this.L.O;
g.L = g.L;
var E = g.L.P.M;
for (g = g.L.O; B.U; ) Q = B.ea(Q), B = B.U;
for (; E.U; ) g = E.ea(g), E = E.U;
return B === E && Q === g;
}, clone: function() {
if (this.L.O || hA(this), this.L.da) return this.L.count.value += 1, this;
var g = $, B = Object, Q = B.create, E = Object.getPrototypeOf(this), C = this.L;
return g = g(Q.call(B, E, { L: { value: { count: C.count, ba: C.ba, da: C.da, O: C.O, P: C.P, S: C.S, W: C.W } } })), g.L.count.value += 1, g.L.ba = !1, g;
}, delete() {
if (this.L.O || hA(this), this.L.ba && !this.L.da) throw new R("Object already scheduled for deletion");
PA(this);
var g = this.L;
--g.count.value, g.count.value === 0 && (g.S ? g.W.Y(g.S) : g.P.M.Y(g.O)), this.L.da || (this.L.S = void 0, this.L.O = void 0);
}, isDeleted: function() {
return !this.L.O;
}, deleteLater: function() {
if (this.L.O || hA(this), this.L.ba && !this.L.da) throw new R("Object already scheduled for deletion");
return this.L.ba = !0, this;
} });
const A = Symbol.dispose;
A && (I[A] = I.delete);
})(), Object.assign(FA.prototype, { sa(I) {
return this.na && (I = this.na(I)), I;
}, ka(I) {
var A;
(A = this.Y) == null || A.call(this, I);
}, X: v, N: function(I) {
function A() {
return this.ga ? oA(this.M.$, { P: this.xa, O: g, W: this, S: I }) : oA(this.M.$, { P: this, O: I });
}
var g = this.sa(I);
if (!g) return this.ka(I), null;
var B = LI(this.M, g);
if (B !== void 0)
return B.L.count.value === 0 ? (B.L.O = g, B.L.S = I, B.clone()) : (B = B.clone(), this.ka(I), B);
if (B = this.M.ra(g), B = mA[B], !B) return A.call(this);
B = this.fa ? B.oa : B.pointerType;
var Q = zA(g, this.M, B.M);
return Q === null ? A.call(this) : this.ga ? oA(B.M.$, { P: B, O: Q, W: this, S: I }) : oA(B.M.$, { P: B, O: Q });
} }), i.print && (eA = i.print), i.printErr && (IA = i.printErr), i.wasmBinary && (aA = i.wasmBinary), i.thisProgram && (L = i.thisProgram);
var iI, nA, l, pI = { x: () => pA(""), q: (I) => {
var A = CA[I];
delete CA[I];
var g = A.ia, B = A.Y, Q = A.la, E = Q.map((C) => C.va).concat(Q.map((C) => C.Ba));
Z([I], E, (C) => {
var D = {};
return Q.forEach((o, G) => {
var w = C[G], h = o.ta, c = o.ua, J = C[G + Q.length], Y = o.Aa, K = o.Ca;
D[o.qa] = { read: (e) => w.N(h(c, e)), write: (e, _) => {
var t = [];
Y(K, e, J.T(t, _)), yA(t);
}, optional: C[G].optional };
}), [{ name: A.name, N: (o) => {
var G = {}, w;
for (w in D) G[w] = D[w].read(o);
return B(o), G;
}, T: (o, G) => {
for (var w in D) if (!(w in G || D[w].optional)) throw new TypeError(`Missing field: "${w}"`);
var h = g();
for (w in D) D[w].write(h, G[w]);
return o !== null && o.push(B, h), h;
}, X: v, V: B }];
});
}, n: (I, A, g, B, Q) => {
A = N(A), B = B === 0n;
let E = (C) => C;
if (B) {
const C = 8 * g;
E = (D) => BigInt.asUintN(C, D), Q = E(Q);
}
H(I, { name: A, N: E, T: (C, D) => (typeof D == "number" && (D = BigInt(D)), D), X: bA(A, g, !B), V: null });
}, B: (I, A, g, B) => {
A = N(A), H(I, { name: A, N: function(Q) {
return !!Q;
}, T: function(Q, E) {
return E ? g : B;
}, X: function(Q) {
return this.N(r[Q]);
}, V: null });
}, j: (I, A, g, B, Q, E, C, D, o, G, w, h, c) => {
w = N(w), E = n(Q, E), D && (D = n(C, D)), G && (G = n(o, G)), c = n(h, c);
var J = MI(w);
NA(J, function() {
GA(
`Cannot construct ${w} due to unbound types`,
[B]
);
}), Z([I, A, g], B ? [B] : [], (Y) => {
if (Y = Y[0], B)
var K = Y.M, e = K.$;
else e = iA.prototype;
Y = wA(w, function(...fA) {
if (Object.getPrototypeOf(this) !== _) throw new R(`Use 'new' to construct ${w}`);
if (t.Z === void 0) throw new R(`${w} has no accessible constructor`);
var wI = t.Z[fA.length];
if (wI === void 0) throw new R(`Tried to invoke ctor of ${w} with invalid number of parameters (${fA.length}) - expected (${Object.keys(t.Z).toString()}) parameters instead!`);
return wI.apply(this, fA);
});
var _ = Object.create(e, { constructor: { value: Y } });
Y.prototype = _;
var t = new NI(w, Y, _, c, K, E, D, G);
if (t.U) {
var AA;
(AA = t.U).ja ?? (AA.ja = []), t.U.ja.push(t);
}
return K = new FA(w, t, !0, !1, !1), AA = new FA(w + "*", t, !1, !1, !1), e = new FA(w + " const*", t, !1, !0, !1), mA[I] = { pointerType: AA, oa: e }, vA(J, Y), [K, AA, e];
});
}, g: (I, A, g, B, Q, E) => {
var C = JA(A, g);
Q = n(B, Q), Z([], [I], (D) => {
D = D[0];
var o = `constructor ${D.name}`;
if (D.M.Z === void 0 && (D.M.Z = []), D.M.Z[A - 1] !== void 0) throw new R(`Cannot register multiple constructors with identical number of parameters (${A - 1}) for class '${D.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
return D.M.Z[A - 1] = () => {
GA(`Cannot construct ${D.name} due to unbound types`, C);
}, Z([], C, (G) => (G.splice(1, 0, null), D.M.Z[A - 1] = YA(o, G, null, Q, E), [])), [];
});
}, b: (I, A, g, B, Q, E, C, D, o) => {
var G = JA(g, B);
A = N(A), A = II(A), E = n(Q, E), Z([], [I], (w) => {
function h() {
GA(`Cannot call ${c} due to unbound types`, G);
}
w = w[0];
var c = `${w.name}.${A}`;
A.startsWith("@@") && (A = Symbol[A.substring(2)]), D && w.M.ya.push(A);
var J = w.M.$, Y = J[A];
return Y === void 0 || Y.R === void 0 && Y.className !== w.name && Y.aa === g - 2 ? (h.aa = g - 2, h.className = w.name, J[A] = h) : (uA(
J,
A,
c
), J[A].R[g - 2] = h), Z([], G, (K) => (K = YA(c, K, w, E, C, o), J[A].R === void 0 ? (K.aa = g - 2, J[A] = K) : J[A].R[g - 2] = K, [])), [];
});
}, z: (I) => H(I, BI), r: (I, A, g, B) => {
function Q() {
}
A = N(A), Q.values = {}, H(I, { name: A, constructor: Q, N: function(E) {
return this.constructor.values[E];
}, T: (E, C) => C.value, X: cI(A, g, B), V: null }), NA(A, Q);
}, d: (I, A, g) => {
var B = QI(I, "enum");
A = N(A), I = B.constructor, B = Object.create(B.constructor.prototype, { value: { value: g }, constructor: { value: wA(`${B.name}_${A}`, function() {
}) } }), I.values[g] = B, I[A] = B;
}, m: (I, A, g) => {
A = N(A), H(I, { name: A, N: (B) => B, T: (B, Q) => Q, X: tI(A, g), V: null });
}, l: (I, A, g, B, Q, E, C) => {
var D = JA(A, g);
I = N(I), I = II(I), Q = n(B, Q), NA(I, function() {
GA(`Cannot call ${I} due to unbound types`, D);
}, A - 1), Z([], D, (o) => (o = [o[0], null].concat(o.slice(1)), vA(I, YA(I, o, null, Q, E, C), A - 1), []));
}, c: (I, A, g, B, Q) => {
A = N(A);
let E = (D) => D;
if (B === 0) {
var C = 32 - 8 * g;
E = (D) => D << C >>> C, Q = E(Q);
}
H(I, { name: A, N: E, T: (D, o) => o, X: bA(A, g, B !== 0), V: null });
}, a: (I, A, g) => {
function B(E) {
return new Q(BA.buffer, M[E + 4 >> 2], M[E >> 2]);
}
var Q = [
Int8Array,
Uint8Array,
Int16Array,
Uint16Array,
Int32Array,
Uint32Array,
Float32Array,
Float64Array,
BigInt64Array,
BigUint64Array
][A];
g = N(g), H(I, { name: g, N: B, X: B }, { wa: !0 });
}, h: (I) => {
H(I, HI);
}, A: (I, A) => {
A = N(A), H(I, { name: A, N(g) {
var B = (B = g + 4) ? EI.decode(r.subarray(B, tA(r, B, M[g >> 2], !0))) : "";
return l(g), B;
}, T(g, B) {
B instanceof ArrayBuffer && (B = new Uint8Array(B));
var Q = typeof B == "string";
if (!(Q || ArrayBuffer.isView(B) && B.BYTES_PER_ELEMENT == 1)) throw new R("Cannot pass non-string to std::string");
var E = Q ? CI(B) : B.length, C = nA(4 + E + 1), D = C + 4;
return M[C >> 2] = E, Q ? V(B, D, E + 1) : r.set(B, D), g !== null && g.push(l, C), C;
}, X: v, V(g) {
l(g);
} });
}, f: (I, A, g) => {
if (g = N(g), A === 2)
var B = rI, Q = nI, E = qI;
else B = fI, Q = eI, E = dI;
H(I, { name: g, N: (C) => {
var D = B(C + 4, M[C >> 2] * A, !0);
return l(C), D;
}, T: (C, D) => {
if (typeof D != "string") throw new R(`Cannot pass non-string to C++ string type ${g}`);
var o = E(D), G = nA(4 + o + A);
return M[G >> 2] = o / A, Q(D, G + 4, o + A), C !== null && C.push(l, G), G;
}, X: v, V(C) {
l(C);
} });
}, i: (I, A, g, B, Q, E) => {
CA[I] = { name: N(A), ia: n(g, B), Y: n(Q, E), la: [] };
}, e: (I, A, g, B, Q, E, C, D, o, G) => {
CA[I].la.push({
qa: N(A),
va: g,
ta: n(B, Q),
ua: E,
Ba: C,
Aa: n(D, o),
Ca: G
});
}, C: (I, A) => {
A = N(A), H(I, { ma: !0, name: A, N: () => {
}, T: () => {
} });
}, p: (I, A, g) => {
var [B, ...Q] = xI(I, A);
A = B.T.bind(B);
var E = Q.map((o) => o.X.bind(o));
I--;
var C = { toValue: kA };
switch (I = E.map((o, G) => {
var w = `argFromPtr${G}`;
return C[w] = o, `${w}(args${G ? "+" + 8 * G : ""})`;
}), g) {
case 0:
var D = "toValue(handle)";
break;
case 2:
D = "new (toValue(handle))";
break;
case 3:
D = "";
break;
case 1:
C.getStringOrSymbol = TI, D = "toValue(handle)[getStringOrSymbol(methodName)]";
}
return D += `(${I})`, B.ma || (C.toReturnWire = A, C.emval_returnValue = WI, D = `return emval_returnValue(toReturnWire, destructorsRef, ${D})`), D = `return function (handle, methodName, destructorsRef, args) {
${D}
}`, g = new Function(Object.keys(C), D)(...Object.values(C)), D = `methodCaller<(${Q.map((o) => o.name)}) => ${B.name}>`, lI(wA(D, g));
}, E: LA, o: (I, A, g, B, Q) => HA[I](A, g, B, Q), D: (I) => {
var A = kA(I);
yA(A), LA(I);
}, s: (I, A, g, B) => {
var Q = (/* @__PURE__ */ new Date()).getFullYear(), E = new Date(Q, 0, 1).getTimezoneOffset();
Q = new Date(Q, 6, 1).getTimezoneOffset(), M[I >> 2] = 60 * Math.max(E, Q), T[A >> 2] = +(E != Q), A = (C) => {
var D = Math.abs(C);
return `UTC${0 <= C ? "-" : "+"}${String(Math.floor(D / 60)).padStart(2, "0")}${String(D % 60).padStart(2, "0")}`;
}, I = A(E), A = A(Q), Q < E ? (V(I, g, 17), V(A, B, 17)) : (V(I, B, 17), V(A, g, 17));
}, y: (I) => {
var A = r.length;
if (I >>>= 0, 2147483648 < I) return !1;
for (var g = 1; 4 >= g; g *= 2) {
var B = A * (1 + 0.2 / g);
B = Math.min(B, I + 100663296);
A: {
B = (Math.min(2147483648, 65536 * Math.ceil(Math.max(I, B) / 65536)) - gA.buffer.byteLength + 65535) / 65536 | 0;
try {
gA.grow(B), jA();
var Q = 1;
break A;
} catch {
}
Q = void 0;
}
if (Q) return !0;
}
return !1;
}, t: (I, A) => {
var g = 0, B = 0, Q;
for (Q of DI()) {
var E = A + g;
M[I + B >> 2] = E, g += V(Q, E, 1 / 0) + 1, B += 4;
}
return 0;
}, u: (I, A) => {
var g = DI();
M[I >> 2] = g.length, I = 0;
for (var B of g) I += CI(B) + 1;
return M[A >> 2] = I, 0;
}, v: () => 52, w: function() {
return 70;
}, k: (I, A, g, B) => {
for (var Q = 0, E = 0; E < g; E++) {
var C = M[A >> 2], D = M[A + 4 >> 2];
A += 8;
for (var o = 0; o < D; o++) {
var G = I, w = r[C + o], h = jI[G];
w === 0 || w === 10 ? (G = G === 1 ? eA : IA, w = tA(h, 0), w = EI.decode(h.buffer ? h.subarray(0, w) : new Uint8Array(h.slice(0, w))), G(w), h.length = 0) : h.push(w);
}
Q += D;
}
return M[B >> 2] = Q, 0;
} }, X = await async function() {
var I;
function A(B) {
var Q;
return X = B.exports, gA = X.F, jA(), $A = X.H, B = X, iI = B.I, i._malloc = nA = B.J, i._free = l = B.K, x--, (Q = i.monitorRunDependencies) == null || Q.call(i, x), x == 0 && z && (B = z, z = null, B()), X;
}
x++, (I = i.monitorRunDependencies) == null || I.call(i, x);
var g = { a: pI };
return i.instantiateWasm ? new Promise((B) => {
i.instantiateWasm(g, (Q, E) => {
B(A(Q));
});
}) : (QA ?? (QA = RI("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C0EAEKEDRQRAQZiDASEBIARBmIMBQRgQiwFFDQJBsIMBIQEgBEGwgwFBGBCLAUUNAkEAIQBBvO4BLQAARQRAA0AgAEECdCAAQcYfEKIDNgKM7gEgAEEBaiIAQQZHDQALQbzuAUEBOgAAQaTuAUGM7gEoAgA2AgALQYzuASEBIAJBCGoiAEGM7gFBGBCLAUUNAkGk7gEhASAAQaTuAUEYEIsBRQ0CQRgQNCIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGc8QFBAToAAEGY8QEgATYCACABC80KAgV/CX4jAEHgAGsiBSQAIARC////////P4MhCiACIASFQoCAgICAgICAgH+DIQsgAkL///////8/gyIMQiCIIQ8gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCwwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCELIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACELQgAhAQwDCyALQoCAgICAgMD//wCEIQtCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASANhEIAIQFQBEBCgICAgICA4P//ACELDAMLIAtCgICAgICAwP//AIQhCwwCCyABIA2EUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyANQv///////z9YBEAgBUHQAGogASAMIAEgDCAMUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDWCIMQiCIIQ8gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAogAyAKIApQIggbeULAAEIAIAgbfKciCEEPaxBEIAYgCGtBEGohBiAFKQNIIQogBSkDQCEDCyAHIAlqIAZqQf//AGshBgJAIApCD4YiDkIgiEKAgICACIQiAiABQiCIIgR+IhAgA0IPhiIRQiCIIgogD0KAgASEIg1+fCIPIBBUrSAPIANCMYggDoRC/////w+DIgMgDEL/////D4MiDH58Ig4gD1StfCACIA1+fCAOIA4gEUKAgP7/D4MiDyAMfiIRIAQgCn58IhAgEVStIBAgECADIAFC/////w+DIgF+fCIQVq18fCIOVq18IAMgDX4iEiACIAx+fCIRIBJUrUIghiARQiCIhHwgDiAOIBFCIIZ8Ig5WrXwgDiANIA9+Ig0gCiAMfnwiDCABIAJ+fCICIAMgBH58IgNCIIggAiADVq0gDCANVK0gAiAMVK18fEIghoR8IgIgDlStfCACIBAgBCAPfiIMIAEgCn58IgRCIIggBCAMVK1CIIaEfCIKIBBUrSAKIANCIIZ8IgMgClStfHwiCiACVK18IAogAyAEQiCGIgIgASAPfnwiASACVK18IgIgA1StfCIEIApUrXwiA0KAgICAgIDAAINQRQRAIAZBAWohBgwBCyABQj+IIANCAYYgBEI/iIQhAyAEQgGGIAJCP4iEIQQgAUIBhiEBIAJCAYaEIQILIAZB//8BTgRAIAtCgICAgICAwP//AIQhC0IAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogASACIAZB/wBqIgYQRCAFQSBqIAQgAyAGEEQgBUEQaiABIAIgBxCKASAFIAQgAyAHEIoBIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQEgBSkDKCAFKQMYhCECIAUpAwAhBCAFKQMIDAILQgAhAQwCCyADQv///////z+DIAatQjCGhAsgC4QhCyABUCACQgBZIAJCgICAgICAgICAf1EbRQRAIAsgBEIBfCIBUK18IQsMAQsgASACQoCAgICAgICAgH+FhFBFBEAgBCEBDAELIAsgBCAEQgGDfCIBIARUrXwhCwsgACABNwMAIAAgCzcDCCAFQeAAaiQACwYAIAAQLQt8AQN/IwBBEGsiASQAIAEgADYCDCMAQRBrIgIkACAAKAIAQX9HBEAgAkEIaiACQQxqIAFBDGoQVRBVIQMDQCAAKAIAQQFGDQALIAAoAgBFBEAgAEEBNgIAIAMQ0gIgAEF/NgIACwsgAkEQaiQAIAAoAgQgAUEQaiQAQQFrCyAAIAAgAUEBazYCBCAAQeDVATYCACAAQZCtATYCACAAC/cFAQl/IwBBEGsiCSQAIAEQ1wIgCUEMaiABEFUhCCAAQQhqIgMQayACTQRAAkAgAkEBaiIAIAMQayIBSwRAIwBBIGsiCiQAAkAgACABayIHIAMoAgggAygCBGtBAnVNBEAgAyAHENkCDAELIApBDGohAQJ/IAMQayAHaiEFIwBBEGsiACQAIAAgBTYCDCAFELwCIgRNBEAgAxC5AiIFIARBAXZJBEAgACAFQQF0NgIIIABBCGogAEEMahCgASgCACEECyAAQRBqJAAgBAwBCxCMAQALIQQgAxBrIQUjAEEQayIAJAAgASADQQxqIgs2AhAgAUEANgIMIAQEfyAAQQhqIAsgBBC7AiAAKAIIIQYgACgCDAVBAAshBCABIAY2AgAgASAGIAVBAnRqIgU2AgggASAGIARBAnRqNgIMIAEgBTYCBCAAQRBqJAAjAEEQayIGJAAgASgCCCEEIAZBBGoiACABQQhqNgIIIAAgBDYCACAAIAQgB0ECdGo2AgQgACgCACEEA0AgACgCBCAERwRAIAEoAhAaIAQQugIgACAAKAIAQQRqIgQ2AgAMAQsLIAAoAgggACgCADYCACAGQRBqJAAgASgCBCADKAIAIgAgAygCBGtqIQQgAygCBCAAayIHBEAgBCAAIAf8CgAACyABIAQ2AgQgAyADKAIANgIEIAMgAUEEahDXASADQQRqIAFBCGoQ1wEgA0EIaiABQQxqENcBIAEgASgCBDYCACADEGsaIAEoAgQhAANAIAEoAggiBCAARwRAIAEgBEEEazYCCCABKAIQGgwBCwsgASgCACIABEAgASgCECAAIAEoAgwgASgCAGtBAnUQuAILCyAKQSBqJAAMAQsgACABSQRAIAMoAgAgAEECdGohACADEGsaIAMgABDYAgsLCyADIAIQggEoAgAEQCADIAIQggEoAgAQvwELIAgQrAEhACADIAIQggEgADYCACAIKAIAIQAgCEEANgIAIAAEQCAAEL8BCyAJQRBqJAALySgBC38jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYzqASgCACIEQRAgAEELakH4A3EgAEELSRsiBkEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUG06gFqIgAgASgCvOoBIgEoAggiBUYEQEGM6gEgBEF+IAJ3cTYCAAwBCyAFIAA2AgwgACAFNgIICyABQQhqIQAgASACQQN0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KAIAKAIcEQQAC8EBAQN/IAAtAABBIHFFBEACQCAAKAIQIgMEfyADBSAAEN8BDQEgACgCEAsgACgCFCIEayACSQRAIAAgASACIAAoAiQRAwAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQMAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEHEaIAAgACgCFCACajYCFAsLC6EBAQJ/AkAgABAfRSACIAFrQQVIcg0AIAEgAhDHASACQQRrIQQgABAjIgIgABAfaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAtpAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABIAIgA2siA0GAAiADQYACSSIBGxCYAiABRQRAA0AgACAFQYACEEIgA0GAAmsiA0H/AUsNAAsLIAAgBSADEEILIAVBgAJqJAALBABBAAsKACAALQALQQd2CwoAIABB0PIBEHoLCgAgAEHY8gEQegvPCQIEfwR+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiDEL///////8/gyEJIAIgBCAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5QsAAQgAgBRt8pyIFQQ9rEEQgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3lCwABCACAHG3ynIgdBD2sQREEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEEQgBkEwaiACIAEgBxCKASAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQlCgICAgICAgASEIQsgCkIDhiEKAkAgBEIAUwRAQgAhA0IAIQQgCSAKhSABIAuFhFANAiAKIAl9IQIgCyABfSAJIApWrX0iBEL/////////A1YNASAGQSBqIAIgBCACIAQgBFAiBxt5QsAAQgAgBxt8p0EMayIHEEQgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBEIAYgAiAEQQEgBWsQigEgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIARCPYYgAkIDiIQhASAEQgOIQv///////z+DIAetQjCGhCADhCEEAkACQCACp0EHcSIFQQRHBEAgBCABIAEgBUEES618IgNWrXwhBAwBCyAEIAEgASABQgGDfCIDVq18IQQMAQsgBUUNAQsLIAAgAzcDACAAIAQ3AwggBkHwAGokAAsRACAAIAEgACgCACgCLBEEAAsIACAAQYABSQsRACACBEAgACABIAL8CgAACwsJACAAECMQ9wELhAECAn8BfiMAQRBrIgMkACAAAn4gAUUEQEIADAELIAMgASABQR91IgJzIAJrIgKtQgAgAmciAkHRAGoQRCADKQMIQoCAgICAgMAAhUGegAEgAmutQjCGfEKAgICAgICAgIB/QgAgAUEASBuEIQQgAykDAAs3AwAgACAENwMIIANBEGokAAsNACAAIAFB/wBxOgALC6oMAQh/An9BACABRQ0AGiAAQX9zIQMgAkEXTwRAAkAgAUEDcUUNACABLQAAIANzQf8BcUECdCgC0DMgA0EIdnMhAyACQQFrIgBFIAFBAWoiBEEDcUVyRQRAIAEtAAEgA3NB/wFxQQJ0KALQMyADQQh2cyEDIAJBAmsiAEUgAUECaiIEQQNxRXJFBEAgAS0AAiADc0H/AXFBAnQoAtAzIANBCHZzIQMgAkEDayIARSABQQNqIgRBA3FFckUEQCABLQADIANzQf8BcUECdCgC0DMgA0EIdnMhAyABQQRqIQEgAkEEayECDAMLIAAhAiAEIQEMAgsgACECIAQhAQwBCyAAIQIgBCEBCyACQRRuIghBbGwhCgJAIAhBAWsiCUUEQEEAIQQMAQsgASEAQQAhBANAIAAoAhAgB3MiB0EWdkH8B3EoAtBTIAdBDnZB/AdxKALQSyAHQQZ2QfwHcSgC0EMgB0H/AXFBAnQoAtA7c3NzIQcgACgCDCAGcyIGQRZ2QfwHcSgC0FMgBkEOdkH8B3EoAtBLIAZBBnZB/AdxKALQQyAGQf8BcUECdCgC0Dtzc3MhBiAAKAIIIARzIgRBFnZB/AdxKALQUyAEQQ52QfwHcSgC0EsgBEEGdkH8B3EoAtBDIARB/wFxQQJ0KALQO3NzcyEEIAAoAgQgBXMiBUEWdkH8B3EoAtBTIAVBDnZB/AdxKALQSyAFQQZ2QfwHcSgC0EMgBUH/AXFBAnQoAtA7c3NzIQUgACgCACADcyIDQRZ2QfwHcSgC0FMgA0EOdkH8B3EoAtBLIANBBnZB/AdxKALQQyADQf8BcUECdCgC0Dtzc3MhAyAAQRRqIQAgCUEBayIJDQALIAEgCEEUbGpBFGshAQsgAiAKaiECIAEoAhAgASgCDCABKAIIIAEoAgQgASgCACADcyIAQQh2IABB/wFxQQJ0KALQM3MiAEEIdiAAQf8BcUECdCgC0DNzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQf8BcUECdCgC0DMgBXNzIABBCHZzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQQh