@prefecthq/graphs 3.0.2 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{runGraph.worker-wjnyJFtp.js.map → runGraph.worker-C4c20Jgu.js.map} +1 -1
- package/dist/graphs.mjs +517 -517
- package/dist/graphs.mjs.map +1 -1
- package/dist/graphs.umd.js +26 -26
- package/dist/graphs.umd.js.map +1 -1
- package/dist/types/src/models/RunGraph.d.ts +4 -4
- package/dist/types/src/models/event.d.ts +0 -2
- package/package.json +1 -1
package/dist/graphs.mjs
CHANGED
|
@@ -19,7 +19,7 @@ const lP = [
|
|
|
19
19
|
function cP(r) {
|
|
20
20
|
return u0.includes(r);
|
|
21
21
|
}
|
|
22
|
-
function
|
|
22
|
+
function Xl(r) {
|
|
23
23
|
return u0.includes(r.kind);
|
|
24
24
|
}
|
|
25
25
|
function db(r) {
|
|
@@ -55,7 +55,7 @@ function fP(r) {
|
|
|
55
55
|
return ["temporal", "dependency", "left-aligned"].includes(r);
|
|
56
56
|
}
|
|
57
57
|
const d0 = "nodes-container", yb = "node-container", bb = "edge-container", xb = 1, f0 = 20, _b = 200, vb = 0.2, wb = 0.2, Tb = 0.2, Sb = 0.1, p0 = 10, m0 = 4, g0 = 20, Ed = 64, pP = 0.25, mP = 1, Id = 30, Cb = 260, y0 = 250, Eb = 1, Ib = 2, Ab = 3, Mb = 4, b0 = 0, x0 = 2, Rb = 1, Pb = 2, Lb = 3, _0 = 4, Sa = 5;
|
|
58
|
-
var ms = /* @__PURE__ */ ((r) => (r[r.WEBGL_LEGACY = 0] = "WEBGL_LEGACY", r[r.WEBGL = 1] = "WEBGL", r[r.WEBGL2 = 2] = "WEBGL2", r))(ms || {}), v0 = /* @__PURE__ */ ((r) => (r[r.UNKNOWN = 0] = "UNKNOWN", r[r.WEBGL = 1] = "WEBGL", r[r.CANVAS = 2] = "CANVAS", r))(v0 || {}),
|
|
58
|
+
var ms = /* @__PURE__ */ ((r) => (r[r.WEBGL_LEGACY = 0] = "WEBGL_LEGACY", r[r.WEBGL = 1] = "WEBGL", r[r.WEBGL2 = 2] = "WEBGL2", r))(ms || {}), v0 = /* @__PURE__ */ ((r) => (r[r.UNKNOWN = 0] = "UNKNOWN", r[r.WEBGL = 1] = "WEBGL", r[r.CANVAS = 2] = "CANVAS", r))(v0 || {}), Wl = /* @__PURE__ */ ((r) => (r[r.COLOR = 16384] = "COLOR", r[r.DEPTH = 256] = "DEPTH", r[r.STENCIL = 1024] = "STENCIL", r))(Wl || {}), ht = /* @__PURE__ */ ((r) => (r[r.NORMAL = 0] = "NORMAL", r[r.ADD = 1] = "ADD", r[r.MULTIPLY = 2] = "MULTIPLY", r[r.SCREEN = 3] = "SCREEN", r[r.OVERLAY = 4] = "OVERLAY", r[r.DARKEN = 5] = "DARKEN", r[r.LIGHTEN = 6] = "LIGHTEN", r[r.COLOR_DODGE = 7] = "COLOR_DODGE", r[r.COLOR_BURN = 8] = "COLOR_BURN", r[r.HARD_LIGHT = 9] = "HARD_LIGHT", r[r.SOFT_LIGHT = 10] = "SOFT_LIGHT", r[r.DIFFERENCE = 11] = "DIFFERENCE", r[r.EXCLUSION = 12] = "EXCLUSION", r[r.HUE = 13] = "HUE", r[r.SATURATION = 14] = "SATURATION", r[r.COLOR = 15] = "COLOR", r[r.LUMINOSITY = 16] = "LUMINOSITY", r[r.NORMAL_NPM = 17] = "NORMAL_NPM", r[r.ADD_NPM = 18] = "ADD_NPM", r[r.SCREEN_NPM = 19] = "SCREEN_NPM", r[r.NONE = 20] = "NONE", r[r.SRC_OVER = 0] = "SRC_OVER", r[r.SRC_IN = 21] = "SRC_IN", r[r.SRC_OUT = 22] = "SRC_OUT", r[r.SRC_ATOP = 23] = "SRC_ATOP", r[r.DST_OVER = 24] = "DST_OVER", r[r.DST_IN = 25] = "DST_IN", r[r.DST_OUT = 26] = "DST_OUT", r[r.DST_ATOP = 27] = "DST_ATOP", r[r.ERASE = 26] = "ERASE", r[r.SUBTRACT = 28] = "SUBTRACT", r[r.XOR = 29] = "XOR", r))(ht || {}), _i = /* @__PURE__ */ ((r) => (r[r.POINTS = 0] = "POINTS", r[r.LINES = 1] = "LINES", r[r.LINE_LOOP = 2] = "LINE_LOOP", r[r.LINE_STRIP = 3] = "LINE_STRIP", r[r.TRIANGLES = 4] = "TRIANGLES", r[r.TRIANGLE_STRIP = 5] = "TRIANGLE_STRIP", r[r.TRIANGLE_FAN = 6] = "TRIANGLE_FAN", r))(_i || {}), W = /* @__PURE__ */ ((r) => (r[r.RGBA = 6408] = "RGBA", r[r.RGB = 6407] = "RGB", r[r.RG = 33319] = "RG", r[r.RED = 6403] = "RED", r[r.RGBA_INTEGER = 36249] = "RGBA_INTEGER", r[r.RGB_INTEGER = 36248] = "RGB_INTEGER", r[r.RG_INTEGER = 33320] = "RG_INTEGER", r[r.RED_INTEGER = 36244] = "RED_INTEGER", r[r.ALPHA = 6406] = "ALPHA", r[r.LUMINANCE = 6409] = "LUMINANCE", r[r.LUMINANCE_ALPHA = 6410] = "LUMINANCE_ALPHA", r[r.DEPTH_COMPONENT = 6402] = "DEPTH_COMPONENT", r[r.DEPTH_STENCIL = 34041] = "DEPTH_STENCIL", r))(W || {}), Us = /* @__PURE__ */ ((r) => (r[r.TEXTURE_2D = 3553] = "TEXTURE_2D", r[r.TEXTURE_CUBE_MAP = 34067] = "TEXTURE_CUBE_MAP", r[r.TEXTURE_2D_ARRAY = 35866] = "TEXTURE_2D_ARRAY", r[r.TEXTURE_CUBE_MAP_POSITIVE_X = 34069] = "TEXTURE_CUBE_MAP_POSITIVE_X", r[r.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070] = "TEXTURE_CUBE_MAP_NEGATIVE_X", r[r.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071] = "TEXTURE_CUBE_MAP_POSITIVE_Y", r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072] = "TEXTURE_CUBE_MAP_NEGATIVE_Y", r[r.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073] = "TEXTURE_CUBE_MAP_POSITIVE_Z", r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074] = "TEXTURE_CUBE_MAP_NEGATIVE_Z", r))(Us || {}), nt = /* @__PURE__ */ ((r) => (r[r.UNSIGNED_BYTE = 5121] = "UNSIGNED_BYTE", r[r.UNSIGNED_SHORT = 5123] = "UNSIGNED_SHORT", r[r.UNSIGNED_SHORT_5_6_5 = 33635] = "UNSIGNED_SHORT_5_6_5", r[r.UNSIGNED_SHORT_4_4_4_4 = 32819] = "UNSIGNED_SHORT_4_4_4_4", r[r.UNSIGNED_SHORT_5_5_5_1 = 32820] = "UNSIGNED_SHORT_5_5_5_1", r[r.UNSIGNED_INT = 5125] = "UNSIGNED_INT", r[r.UNSIGNED_INT_10F_11F_11F_REV = 35899] = "UNSIGNED_INT_10F_11F_11F_REV", r[r.UNSIGNED_INT_2_10_10_10_REV = 33640] = "UNSIGNED_INT_2_10_10_10_REV", r[r.UNSIGNED_INT_24_8 = 34042] = "UNSIGNED_INT_24_8", r[r.UNSIGNED_INT_5_9_9_9_REV = 35902] = "UNSIGNED_INT_5_9_9_9_REV", r[r.BYTE = 5120] = "BYTE", r[r.SHORT = 5122] = "SHORT", r[r.INT = 5124] = "INT", r[r.FLOAT = 5126] = "FLOAT", r[r.FLOAT_32_UNSIGNED_INT_24_8_REV = 36269] = "FLOAT_32_UNSIGNED_INT_24_8_REV", r[r.HALF_FLOAT = 36193] = "HALF_FLOAT", r))(nt || {}), $ = /* @__PURE__ */ ((r) => (r[r.FLOAT = 0] = "FLOAT", r[r.INT = 1] = "INT", r[r.UINT = 2] = "UINT", r))($ || {}), Wi = /* @__PURE__ */ ((r) => (r[r.NEAREST = 0] = "NEAREST", r[r.LINEAR = 1] = "LINEAR", r))(Wi || {}), Ti = /* @__PURE__ */ ((r) => (r[r.CLAMP = 33071] = "CLAMP", r[r.REPEAT = 10497] = "REPEAT", r[r.MIRRORED_REPEAT = 33648] = "MIRRORED_REPEAT", r))(Ti || {}), Mi = /* @__PURE__ */ ((r) => (r[r.OFF = 0] = "OFF", r[r.POW2 = 1] = "POW2", r[r.ON = 2] = "ON", r[r.ON_MANUAL = 3] = "ON_MANUAL", r))(Mi || {}), be = /* @__PURE__ */ ((r) => (r[r.NPM = 0] = "NPM", r[r.UNPACK = 1] = "UNPACK", r[r.PMA = 2] = "PMA", r[r.NO_PREMULTIPLIED_ALPHA = 0] = "NO_PREMULTIPLIED_ALPHA", r[r.PREMULTIPLY_ON_UPLOAD = 1] = "PREMULTIPLY_ON_UPLOAD", r[r.PREMULTIPLIED_ALPHA = 2] = "PREMULTIPLIED_ALPHA", r))(be || {}), gi = /* @__PURE__ */ ((r) => (r[r.NO = 0] = "NO", r[r.YES = 1] = "YES", r[r.AUTO = 2] = "AUTO", r[r.BLEND = 0] = "BLEND", r[r.CLEAR = 1] = "CLEAR", r[r.BLIT = 2] = "BLIT", r))(gi || {}), cu = /* @__PURE__ */ ((r) => (r[r.AUTO = 0] = "AUTO", r[r.MANUAL = 1] = "MANUAL", r))(cu || {}), Xe = /* @__PURE__ */ ((r) => (r.LOW = "lowp", r.MEDIUM = "mediump", r.HIGH = "highp", r))(Xe || {}), jt = /* @__PURE__ */ ((r) => (r[r.NONE = 0] = "NONE", r[r.SCISSOR = 1] = "SCISSOR", r[r.STENCIL = 2] = "STENCIL", r[r.SPRITE = 3] = "SPRITE", r[r.COLOR = 4] = "COLOR", r))(jt || {}), Vt = /* @__PURE__ */ ((r) => (r[r.NONE = 0] = "NONE", r[r.LOW = 2] = "LOW", r[r.MEDIUM = 4] = "MEDIUM", r[r.HIGH = 8] = "HIGH", r))(Vt || {}), Si = /* @__PURE__ */ ((r) => (r[r.ELEMENT_ARRAY_BUFFER = 34963] = "ELEMENT_ARRAY_BUFFER", r[r.ARRAY_BUFFER = 34962] = "ARRAY_BUFFER", r[r.UNIFORM_BUFFER = 35345] = "UNIFORM_BUFFER", r))(Si || {});
|
|
59
59
|
const Gb = {
|
|
60
60
|
/**
|
|
61
61
|
* Creates a canvas element of the given size.
|
|
@@ -320,7 +320,7 @@ function ch(r, t, e) {
|
|
|
320
320
|
var i = t && t.length, s = i ? t[0] * e : r.length, n = T0(r, 0, s, e, !0), o = [];
|
|
321
321
|
if (!n || n.next === n.prev) return o;
|
|
322
322
|
var a, h, l, c, u, d, f;
|
|
323
|
-
if (i && (n =
|
|
323
|
+
if (i && (n = Wb(r, t, n, e)), r.length > 80 * e) {
|
|
324
324
|
a = l = r[0], h = c = r[1];
|
|
325
325
|
for (var p = e; p < s; p += e)
|
|
326
326
|
u = r[p], d = r[p + 1], u < a && (a = u), d < h && (h = d), u > l && (l = u), d > c && (c = d);
|
|
@@ -358,7 +358,7 @@ function $n(r, t, e, i, s, n, o) {
|
|
|
358
358
|
continue;
|
|
359
359
|
}
|
|
360
360
|
if (r = l, r === a) {
|
|
361
|
-
o ? o === 1 ? (r = Ub(hs(r), t, e), $n(r, t, e, i, s, n, 2)) : o === 2 &&
|
|
361
|
+
o ? o === 1 ? (r = Ub(hs(r), t, e), $n(r, t, e, i, s, n, 2)) : o === 2 && Xb(r, t, e, i, s, n) : $n(hs(r), t, e, i, s, n, 1);
|
|
362
362
|
break;
|
|
363
363
|
}
|
|
364
364
|
}
|
|
@@ -398,7 +398,7 @@ function Ub(r, t, e) {
|
|
|
398
398
|
} while (i !== r);
|
|
399
399
|
return hs(i);
|
|
400
400
|
}
|
|
401
|
-
function
|
|
401
|
+
function Xb(r, t, e, i, s, n) {
|
|
402
402
|
var o = r;
|
|
403
403
|
do {
|
|
404
404
|
for (var a = o.next.next; a !== o.prev; ) {
|
|
@@ -412,7 +412,7 @@ function Wb(r, t, e, i, s, n) {
|
|
|
412
412
|
o = o.next;
|
|
413
413
|
} while (o !== r);
|
|
414
414
|
}
|
|
415
|
-
function
|
|
415
|
+
function Wb(r, t, e, i) {
|
|
416
416
|
var s = [], n, o, a, h, l;
|
|
417
417
|
for (n = 0, o = t.length; n < o; n++)
|
|
418
418
|
a = t[n] * i, h = n < o - 1 ? t[n + 1] * i : r.length, l = T0(r, a, h, i, !1), l === l.next && (l.steiner = !0), s.push(jb(l));
|
|
@@ -582,80 +582,80 @@ Ca.exports;
|
|
|
582
582
|
"not-basic": "Illegal input >= 0x80 (not a basic code point)",
|
|
583
583
|
"invalid-input": "Invalid input"
|
|
584
584
|
}, _ = h - l, v = Math.floor, T = String.fromCharCode, C;
|
|
585
|
-
function E(
|
|
586
|
-
throw new RangeError(b[
|
|
585
|
+
function E(X) {
|
|
586
|
+
throw new RangeError(b[X]);
|
|
587
587
|
}
|
|
588
|
-
function I(
|
|
589
|
-
for (var D =
|
|
590
|
-
V[D] = M(
|
|
588
|
+
function I(X, M) {
|
|
589
|
+
for (var D = X.length, V = []; D--; )
|
|
590
|
+
V[D] = M(X[D]);
|
|
591
591
|
return V;
|
|
592
592
|
}
|
|
593
|
-
function k(
|
|
594
|
-
var D =
|
|
595
|
-
D.length > 1 && (V = D[0] + "@",
|
|
596
|
-
var J =
|
|
593
|
+
function k(X, M) {
|
|
594
|
+
var D = X.split("@"), V = "";
|
|
595
|
+
D.length > 1 && (V = D[0] + "@", X = D[1]), X = X.replace(x, ".");
|
|
596
|
+
var J = X.split("."), j = I(J, M).join(".");
|
|
597
597
|
return V + j;
|
|
598
598
|
}
|
|
599
|
-
function L(
|
|
600
|
-
for (var M = [], D = 0, V =
|
|
601
|
-
J =
|
|
599
|
+
function L(X) {
|
|
600
|
+
for (var M = [], D = 0, V = X.length, J, j; D < V; )
|
|
601
|
+
J = X.charCodeAt(D++), J >= 55296 && J <= 56319 && D < V ? (j = X.charCodeAt(D++), (j & 64512) == 56320 ? M.push(((J & 1023) << 10) + (j & 1023) + 65536) : (M.push(J), D--)) : M.push(J);
|
|
602
602
|
return M;
|
|
603
603
|
}
|
|
604
|
-
function P(
|
|
605
|
-
return I(
|
|
604
|
+
function P(X) {
|
|
605
|
+
return I(X, function(M) {
|
|
606
606
|
var D = "";
|
|
607
607
|
return M > 65535 && (M -= 65536, D += T(M >>> 10 & 1023 | 55296), M = 56320 | M & 1023), D += T(M), D;
|
|
608
608
|
}).join("");
|
|
609
609
|
}
|
|
610
|
-
function S(
|
|
611
|
-
return
|
|
610
|
+
function S(X) {
|
|
611
|
+
return X - 48 < 10 ? X - 22 : X - 65 < 26 ? X - 65 : X - 97 < 26 ? X - 97 : h;
|
|
612
612
|
}
|
|
613
|
-
function R(
|
|
614
|
-
return
|
|
613
|
+
function R(X, M) {
|
|
614
|
+
return X + 22 + 75 * (X < 26) - ((M != 0) << 5);
|
|
615
615
|
}
|
|
616
|
-
function F(
|
|
616
|
+
function F(X, M, D) {
|
|
617
617
|
var V = 0;
|
|
618
|
-
for (
|
|
619
|
-
|
|
620
|
-
return v(V + (_ + 1) *
|
|
621
|
-
}
|
|
622
|
-
function O(
|
|
623
|
-
var M = [], D =
|
|
624
|
-
for (wt =
|
|
625
|
-
|
|
618
|
+
for (X = D ? v(X / d) : X >> 1, X += v(X / M); X > _ * c >> 1; V += h)
|
|
619
|
+
X = v(X / _);
|
|
620
|
+
return v(V + (_ + 1) * X / (X + u));
|
|
621
|
+
}
|
|
622
|
+
function O(X) {
|
|
623
|
+
var M = [], D = X.length, V, J = 0, j = p, yt = f, wt, pt, N, K, H, G, ct, ot, _t;
|
|
624
|
+
for (wt = X.lastIndexOf(m), wt < 0 && (wt = 0), pt = 0; pt < wt; ++pt)
|
|
625
|
+
X.charCodeAt(pt) >= 128 && E("not-basic"), M.push(X.charCodeAt(pt));
|
|
626
626
|
for (N = wt > 0 ? wt + 1 : 0; N < D; ) {
|
|
627
|
-
for (K = J, H = 1, G = h; N >= D && E("invalid-input"), ct = S(
|
|
627
|
+
for (K = J, H = 1, G = h; N >= D && E("invalid-input"), ct = S(X.charCodeAt(N++)), (ct >= h || ct > v((a - J) / H)) && E("overflow"), J += ct * H, ot = G <= yt ? l : G >= yt + c ? c : G - yt, !(ct < ot); G += h)
|
|
628
628
|
_t = h - ot, H > v(a / _t) && E("overflow"), H *= _t;
|
|
629
|
-
V = M.length + 1,
|
|
629
|
+
V = M.length + 1, yt = F(J - K, V, K == 0), v(J / V) > a - j && E("overflow"), j += v(J / V), J %= V, M.splice(J++, 0, j);
|
|
630
630
|
}
|
|
631
631
|
return P(M);
|
|
632
632
|
}
|
|
633
|
-
function U(
|
|
634
|
-
var M, D, V, J, j,
|
|
635
|
-
for (
|
|
636
|
-
H =
|
|
633
|
+
function U(X) {
|
|
634
|
+
var M, D, V, J, j, yt, wt, pt, N, K, H, G = [], ct, ot, _t, At;
|
|
635
|
+
for (X = L(X), ct = X.length, M = p, D = 0, j = f, yt = 0; yt < ct; ++yt)
|
|
636
|
+
H = X[yt], H < 128 && G.push(T(H));
|
|
637
637
|
for (V = J = G.length, J && G.push(m); V < ct; ) {
|
|
638
|
-
for (wt = a,
|
|
639
|
-
H =
|
|
640
|
-
for (ot = V + 1, wt - M > v((a - D) / ot) && E("overflow"), D += (wt - M) * ot, M = wt,
|
|
641
|
-
if (H =
|
|
642
|
-
for (
|
|
643
|
-
At =
|
|
638
|
+
for (wt = a, yt = 0; yt < ct; ++yt)
|
|
639
|
+
H = X[yt], H >= M && H < wt && (wt = H);
|
|
640
|
+
for (ot = V + 1, wt - M > v((a - D) / ot) && E("overflow"), D += (wt - M) * ot, M = wt, yt = 0; yt < ct; ++yt)
|
|
641
|
+
if (H = X[yt], H < M && ++D > a && E("overflow"), H == M) {
|
|
642
|
+
for (pt = D, N = h; K = N <= j ? l : N >= j + c ? c : N - j, !(pt < K); N += h)
|
|
643
|
+
At = pt - K, _t = h - K, G.push(
|
|
644
644
|
T(R(K + At % _t, 0))
|
|
645
|
-
),
|
|
646
|
-
G.push(T(R(
|
|
645
|
+
), pt = v(At / _t);
|
|
646
|
+
G.push(T(R(pt, 0))), j = F(D, ot, V == J), D = 0, ++V;
|
|
647
647
|
}
|
|
648
648
|
++D, ++M;
|
|
649
649
|
}
|
|
650
650
|
return G.join("");
|
|
651
651
|
}
|
|
652
|
-
function Z(
|
|
653
|
-
return k(
|
|
652
|
+
function Z(X) {
|
|
653
|
+
return k(X, function(M) {
|
|
654
654
|
return g.test(M) ? O(M.slice(4).toLowerCase()) : M;
|
|
655
655
|
});
|
|
656
656
|
}
|
|
657
|
-
function rt(
|
|
658
|
-
return k(
|
|
657
|
+
function rt(X) {
|
|
658
|
+
return k(X, function(M) {
|
|
659
659
|
return y.test(M) ? "xn--" + U(M) : M;
|
|
660
660
|
});
|
|
661
661
|
}
|
|
@@ -714,27 +714,27 @@ var ex = Ca.exports, ix = function() {
|
|
|
714
714
|
return !1;
|
|
715
715
|
}
|
|
716
716
|
return !0;
|
|
717
|
-
},
|
|
718
|
-
return typeof
|
|
719
|
-
},
|
|
717
|
+
}, Xd = typeof Symbol < "u" && Symbol, rx = ix, sx = function() {
|
|
718
|
+
return typeof Xd != "function" || typeof Symbol != "function" || typeof Xd("foo") != "symbol" || typeof Symbol("bar") != "symbol" ? !1 : rx();
|
|
719
|
+
}, Wd = {
|
|
720
720
|
foo: {}
|
|
721
721
|
}, nx = Object, ox = function() {
|
|
722
|
-
return { __proto__:
|
|
723
|
-
}, ax = "Function.prototype.bind called on incompatible ",
|
|
722
|
+
return { __proto__: Wd }.foo === Wd.foo && !({ __proto__: null } instanceof nx);
|
|
723
|
+
}, ax = "Function.prototype.bind called on incompatible ", Xh = Array.prototype.slice, hx = Object.prototype.toString, lx = "[object Function]", cx = function(t) {
|
|
724
724
|
var e = this;
|
|
725
725
|
if (typeof e != "function" || hx.call(e) !== lx)
|
|
726
726
|
throw new TypeError(ax + e);
|
|
727
|
-
for (var i =
|
|
727
|
+
for (var i = Xh.call(arguments, 1), s, n = function() {
|
|
728
728
|
if (this instanceof s) {
|
|
729
729
|
var c = e.apply(
|
|
730
730
|
this,
|
|
731
|
-
i.concat(
|
|
731
|
+
i.concat(Xh.call(arguments))
|
|
732
732
|
);
|
|
733
733
|
return Object(c) === c ? c : this;
|
|
734
734
|
} else
|
|
735
735
|
return e.apply(
|
|
736
736
|
t,
|
|
737
|
-
i.concat(
|
|
737
|
+
i.concat(Xh.call(arguments))
|
|
738
738
|
);
|
|
739
739
|
}, o = Math.max(0, e.length - i.length), a = [], h = 0; h < o; h++)
|
|
740
740
|
a.push("$" + h);
|
|
@@ -744,7 +744,7 @@ var ex = Ca.exports, ix = function() {
|
|
|
744
744
|
l.prototype = e.prototype, s.prototype = new l(), l.prototype = null;
|
|
745
745
|
}
|
|
746
746
|
return s;
|
|
747
|
-
}, ux = cx, du = Function.prototype.bind || ux, dx = du, fx = dx.call(Function.call, Object.prototype.hasOwnProperty),
|
|
747
|
+
}, ux = cx, du = Function.prototype.bind || ux, dx = du, fx = dx.call(Function.call, Object.prototype.hasOwnProperty), mt, qs = SyntaxError, E0 = Function, Xs = TypeError, Wh = function(r) {
|
|
748
748
|
try {
|
|
749
749
|
return E0('"use strict"; return (' + r + ").constructor;")();
|
|
750
750
|
} catch {
|
|
@@ -757,7 +757,7 @@ if (qr)
|
|
|
757
757
|
qr = null;
|
|
758
758
|
}
|
|
759
759
|
var Zh = function() {
|
|
760
|
-
throw new
|
|
760
|
+
throw new Xs();
|
|
761
761
|
}, px = qr ? function() {
|
|
762
762
|
try {
|
|
763
763
|
return arguments.callee, Zh;
|
|
@@ -770,22 +770,22 @@ var Zh = function() {
|
|
|
770
770
|
}
|
|
771
771
|
}() : Zh, ws = sx(), mx = ox(), te = Object.getPrototypeOf || (mx ? function(r) {
|
|
772
772
|
return r.__proto__;
|
|
773
|
-
} : null), Is = {}, gx = typeof Uint8Array > "u" || !te ?
|
|
774
|
-
"%AggregateError%": typeof AggregateError > "u" ?
|
|
773
|
+
} : null), Is = {}, gx = typeof Uint8Array > "u" || !te ? mt : te(Uint8Array), ts = {
|
|
774
|
+
"%AggregateError%": typeof AggregateError > "u" ? mt : AggregateError,
|
|
775
775
|
"%Array%": Array,
|
|
776
|
-
"%ArrayBuffer%": typeof ArrayBuffer > "u" ?
|
|
777
|
-
"%ArrayIteratorPrototype%": ws && te ? te([][Symbol.iterator]()) :
|
|
778
|
-
"%AsyncFromSyncIteratorPrototype%":
|
|
776
|
+
"%ArrayBuffer%": typeof ArrayBuffer > "u" ? mt : ArrayBuffer,
|
|
777
|
+
"%ArrayIteratorPrototype%": ws && te ? te([][Symbol.iterator]()) : mt,
|
|
778
|
+
"%AsyncFromSyncIteratorPrototype%": mt,
|
|
779
779
|
"%AsyncFunction%": Is,
|
|
780
780
|
"%AsyncGenerator%": Is,
|
|
781
781
|
"%AsyncGeneratorFunction%": Is,
|
|
782
782
|
"%AsyncIteratorPrototype%": Is,
|
|
783
|
-
"%Atomics%": typeof Atomics > "u" ?
|
|
784
|
-
"%BigInt%": typeof BigInt > "u" ?
|
|
785
|
-
"%BigInt64Array%": typeof BigInt64Array > "u" ?
|
|
786
|
-
"%BigUint64Array%": typeof BigUint64Array > "u" ?
|
|
783
|
+
"%Atomics%": typeof Atomics > "u" ? mt : Atomics,
|
|
784
|
+
"%BigInt%": typeof BigInt > "u" ? mt : BigInt,
|
|
785
|
+
"%BigInt64Array%": typeof BigInt64Array > "u" ? mt : BigInt64Array,
|
|
786
|
+
"%BigUint64Array%": typeof BigUint64Array > "u" ? mt : BigUint64Array,
|
|
787
787
|
"%Boolean%": Boolean,
|
|
788
|
-
"%DataView%": typeof DataView > "u" ?
|
|
788
|
+
"%DataView%": typeof DataView > "u" ? mt : DataView,
|
|
789
789
|
"%Date%": Date,
|
|
790
790
|
"%decodeURI%": decodeURI,
|
|
791
791
|
"%decodeURIComponent%": decodeURIComponent,
|
|
@@ -795,49 +795,49 @@ var Zh = function() {
|
|
|
795
795
|
"%eval%": eval,
|
|
796
796
|
// eslint-disable-line no-eval
|
|
797
797
|
"%EvalError%": EvalError,
|
|
798
|
-
"%Float32Array%": typeof Float32Array > "u" ?
|
|
799
|
-
"%Float64Array%": typeof Float64Array > "u" ?
|
|
800
|
-
"%FinalizationRegistry%": typeof FinalizationRegistry > "u" ?
|
|
798
|
+
"%Float32Array%": typeof Float32Array > "u" ? mt : Float32Array,
|
|
799
|
+
"%Float64Array%": typeof Float64Array > "u" ? mt : Float64Array,
|
|
800
|
+
"%FinalizationRegistry%": typeof FinalizationRegistry > "u" ? mt : FinalizationRegistry,
|
|
801
801
|
"%Function%": E0,
|
|
802
802
|
"%GeneratorFunction%": Is,
|
|
803
|
-
"%Int8Array%": typeof Int8Array > "u" ?
|
|
804
|
-
"%Int16Array%": typeof Int16Array > "u" ?
|
|
805
|
-
"%Int32Array%": typeof Int32Array > "u" ?
|
|
803
|
+
"%Int8Array%": typeof Int8Array > "u" ? mt : Int8Array,
|
|
804
|
+
"%Int16Array%": typeof Int16Array > "u" ? mt : Int16Array,
|
|
805
|
+
"%Int32Array%": typeof Int32Array > "u" ? mt : Int32Array,
|
|
806
806
|
"%isFinite%": isFinite,
|
|
807
807
|
"%isNaN%": isNaN,
|
|
808
|
-
"%IteratorPrototype%": ws && te ? te(te([][Symbol.iterator]())) :
|
|
809
|
-
"%JSON%": typeof JSON == "object" ? JSON :
|
|
810
|
-
"%Map%": typeof Map > "u" ?
|
|
811
|
-
"%MapIteratorPrototype%": typeof Map > "u" || !ws || !te ?
|
|
808
|
+
"%IteratorPrototype%": ws && te ? te(te([][Symbol.iterator]())) : mt,
|
|
809
|
+
"%JSON%": typeof JSON == "object" ? JSON : mt,
|
|
810
|
+
"%Map%": typeof Map > "u" ? mt : Map,
|
|
811
|
+
"%MapIteratorPrototype%": typeof Map > "u" || !ws || !te ? mt : te((/* @__PURE__ */ new Map())[Symbol.iterator]()),
|
|
812
812
|
"%Math%": Math,
|
|
813
813
|
"%Number%": Number,
|
|
814
814
|
"%Object%": Object,
|
|
815
815
|
"%parseFloat%": parseFloat,
|
|
816
816
|
"%parseInt%": parseInt,
|
|
817
|
-
"%Promise%": typeof Promise > "u" ?
|
|
818
|
-
"%Proxy%": typeof Proxy > "u" ?
|
|
817
|
+
"%Promise%": typeof Promise > "u" ? mt : Promise,
|
|
818
|
+
"%Proxy%": typeof Proxy > "u" ? mt : Proxy,
|
|
819
819
|
"%RangeError%": RangeError,
|
|
820
820
|
"%ReferenceError%": ReferenceError,
|
|
821
|
-
"%Reflect%": typeof Reflect > "u" ?
|
|
821
|
+
"%Reflect%": typeof Reflect > "u" ? mt : Reflect,
|
|
822
822
|
"%RegExp%": RegExp,
|
|
823
|
-
"%Set%": typeof Set > "u" ?
|
|
824
|
-
"%SetIteratorPrototype%": typeof Set > "u" || !ws || !te ?
|
|
825
|
-
"%SharedArrayBuffer%": typeof SharedArrayBuffer > "u" ?
|
|
823
|
+
"%Set%": typeof Set > "u" ? mt : Set,
|
|
824
|
+
"%SetIteratorPrototype%": typeof Set > "u" || !ws || !te ? mt : te((/* @__PURE__ */ new Set())[Symbol.iterator]()),
|
|
825
|
+
"%SharedArrayBuffer%": typeof SharedArrayBuffer > "u" ? mt : SharedArrayBuffer,
|
|
826
826
|
"%String%": String,
|
|
827
|
-
"%StringIteratorPrototype%": ws && te ? te(""[Symbol.iterator]()) :
|
|
828
|
-
"%Symbol%": ws ? Symbol :
|
|
827
|
+
"%StringIteratorPrototype%": ws && te ? te(""[Symbol.iterator]()) : mt,
|
|
828
|
+
"%Symbol%": ws ? Symbol : mt,
|
|
829
829
|
"%SyntaxError%": qs,
|
|
830
830
|
"%ThrowTypeError%": px,
|
|
831
831
|
"%TypedArray%": gx,
|
|
832
|
-
"%TypeError%":
|
|
833
|
-
"%Uint8Array%": typeof Uint8Array > "u" ?
|
|
834
|
-
"%Uint8ClampedArray%": typeof Uint8ClampedArray > "u" ?
|
|
835
|
-
"%Uint16Array%": typeof Uint16Array > "u" ?
|
|
836
|
-
"%Uint32Array%": typeof Uint32Array > "u" ?
|
|
832
|
+
"%TypeError%": Xs,
|
|
833
|
+
"%Uint8Array%": typeof Uint8Array > "u" ? mt : Uint8Array,
|
|
834
|
+
"%Uint8ClampedArray%": typeof Uint8ClampedArray > "u" ? mt : Uint8ClampedArray,
|
|
835
|
+
"%Uint16Array%": typeof Uint16Array > "u" ? mt : Uint16Array,
|
|
836
|
+
"%Uint32Array%": typeof Uint32Array > "u" ? mt : Uint32Array,
|
|
837
837
|
"%URIError%": URIError,
|
|
838
|
-
"%WeakMap%": typeof WeakMap > "u" ?
|
|
839
|
-
"%WeakRef%": typeof WeakRef > "u" ?
|
|
840
|
-
"%WeakSet%": typeof WeakSet > "u" ?
|
|
838
|
+
"%WeakMap%": typeof WeakMap > "u" ? mt : WeakMap,
|
|
839
|
+
"%WeakRef%": typeof WeakRef > "u" ? mt : WeakRef,
|
|
840
|
+
"%WeakSet%": typeof WeakSet > "u" ? mt : WeakSet
|
|
841
841
|
};
|
|
842
842
|
if (te)
|
|
843
843
|
try {
|
|
@@ -849,11 +849,11 @@ if (te)
|
|
|
849
849
|
var bx = function r(t) {
|
|
850
850
|
var e;
|
|
851
851
|
if (t === "%AsyncFunction%")
|
|
852
|
-
e =
|
|
852
|
+
e = Wh("async function () {}");
|
|
853
853
|
else if (t === "%GeneratorFunction%")
|
|
854
|
-
e =
|
|
854
|
+
e = Wh("function* () {}");
|
|
855
855
|
else if (t === "%AsyncGeneratorFunction%")
|
|
856
|
-
e =
|
|
856
|
+
e = Wh("async function* () {}");
|
|
857
857
|
else if (t === "%AsyncGenerator%") {
|
|
858
858
|
var i = r("%AsyncGeneratorFunction%");
|
|
859
859
|
i && (e = i.prototype);
|
|
@@ -929,7 +929,7 @@ var bx = function r(t) {
|
|
|
929
929
|
if (Ea(Zd, i) && (s = Zd[i], i = "%" + s[0] + "%"), Ea(ts, i)) {
|
|
930
930
|
var n = ts[i];
|
|
931
931
|
if (n === Is && (n = bx(i)), typeof n > "u" && !e)
|
|
932
|
-
throw new
|
|
932
|
+
throw new Xs("intrinsic " + t + " exists, but is not available. Please file an issue!");
|
|
933
933
|
return {
|
|
934
934
|
alias: s,
|
|
935
935
|
name: i,
|
|
@@ -939,9 +939,9 @@ var bx = function r(t) {
|
|
|
939
939
|
throw new qs("intrinsic " + t + " does not exist!");
|
|
940
940
|
}, fu = function(t, e) {
|
|
941
941
|
if (typeof t != "string" || t.length === 0)
|
|
942
|
-
throw new
|
|
942
|
+
throw new Xs("intrinsic name must be a non-empty string");
|
|
943
943
|
if (arguments.length > 1 && typeof e != "boolean")
|
|
944
|
-
throw new
|
|
944
|
+
throw new Xs('"allowMissing" argument must be a boolean');
|
|
945
945
|
if (vx(/^%?[^%]*%?$/, t) === null)
|
|
946
946
|
throw new qs("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
|
|
947
947
|
var i = Sx(t), s = i.length > 0 ? i[0] : "", n = Cx("%" + s + "%", e), o = n.name, a = n.value, h = !1, l = n.alias;
|
|
@@ -955,7 +955,7 @@ var bx = function r(t) {
|
|
|
955
955
|
else if (a != null) {
|
|
956
956
|
if (!(d in a)) {
|
|
957
957
|
if (!e)
|
|
958
|
-
throw new
|
|
958
|
+
throw new Xs("base intrinsic for " + t + " exists, but the property is not available.");
|
|
959
959
|
return;
|
|
960
960
|
}
|
|
961
961
|
if (qr && c + 1 >= i.length) {
|
|
@@ -1017,7 +1017,7 @@ function Qd(r, t) {
|
|
|
1017
1017
|
}
|
|
1018
1018
|
return fr.call(t, e, "$&_");
|
|
1019
1019
|
}
|
|
1020
|
-
var zl = Px, qd = zl.custom, tf = G0(qd) ? qd : null,
|
|
1020
|
+
var zl = Px, qd = zl.custom, tf = G0(qd) ? qd : null, Xx = function r(t, e, i, s) {
|
|
1021
1021
|
var n = e || {};
|
|
1022
1022
|
if (lr(n, "quoteStyle") && n.quoteStyle !== "single" && n.quoteStyle !== "double")
|
|
1023
1023
|
throw new TypeError('option "quoteStyle" must be "single" or "double"');
|
|
@@ -1076,7 +1076,7 @@ var zl = Px, qd = zl.custom, tf = G0(qd) ? qd : null, Wx = function r(t, e, i, s
|
|
|
1076
1076
|
}
|
|
1077
1077
|
if (i_(t)) {
|
|
1078
1078
|
for (var g = "<" + zd.call(String(t.nodeName)), y = t.attributes || [], x = 0; x < y.length; x++)
|
|
1079
|
-
g += " " + y[x].name + "=" + L0(
|
|
1079
|
+
g += " " + y[x].name + "=" + L0(Wx(y[x].value), "double", n);
|
|
1080
1080
|
return g += ">", t.childNodes && t.childNodes.length && (g += "..."), g += "</" + zd.call(String(t.nodeName)) + ">", g;
|
|
1081
1081
|
}
|
|
1082
1082
|
if (jl(t)) {
|
|
@@ -1131,7 +1131,7 @@ function L0(r, t, e) {
|
|
|
1131
1131
|
var i = (e.quoteStyle || t) === "double" ? '"' : "'";
|
|
1132
1132
|
return i + r + i;
|
|
1133
1133
|
}
|
|
1134
|
-
function
|
|
1134
|
+
function Wx(r) {
|
|
1135
1135
|
return fr.call(String(r), /"/g, """);
|
|
1136
1136
|
}
|
|
1137
1137
|
function jl(r) {
|
|
@@ -1348,7 +1348,7 @@ function ko(r, t) {
|
|
|
1348
1348
|
P0.call(r, n[l]) && i.push("[" + t(n[l]) + "]: " + t(r[n[l]], r));
|
|
1349
1349
|
return i;
|
|
1350
1350
|
}
|
|
1351
|
-
var yu = fu, dn = Ax, o_ =
|
|
1351
|
+
var yu = fu, dn = Ax, o_ = Xx, a_ = yu("%TypeError%"), Fo = yu("%WeakMap%", !0), No = yu("%Map%", !0), h_ = dn("WeakMap.prototype.get", !0), l_ = dn("WeakMap.prototype.set", !0), c_ = dn("WeakMap.prototype.has", !0), u_ = dn("Map.prototype.get", !0), d_ = dn("Map.prototype.set", !0), f_ = dn("Map.prototype.has", !0), bu = function(r, t) {
|
|
1352
1352
|
for (var e = r, i; (i = e.next) !== null; e = i)
|
|
1353
1353
|
if (i.key === t)
|
|
1354
1354
|
return e.next = i.next, i.next = r.next, r.next = i, i;
|
|
@@ -1714,11 +1714,11 @@ var yu = fu, dn = Ax, o_ = Wx, a_ = yu("%TypeError%"), Fo = yu("%WeakMap%", !0),
|
|
|
1714
1714
|
});
|
|
1715
1715
|
}, U0 = function(r, t) {
|
|
1716
1716
|
return r && typeof r == "string" && t.comma && r.indexOf(",") > -1 ? r.split(",") : r;
|
|
1717
|
-
}, U_ = "utf8=%26%2310003%3B",
|
|
1717
|
+
}, U_ = "utf8=%26%2310003%3B", X_ = "utf8=%E2%9C%93", W_ = function(t, e) {
|
|
1718
1718
|
var i = { __proto__: null }, s = e.ignoreQueryPrefix ? t.replace(/^\?/, "") : t, n = e.parameterLimit === 1 / 0 ? void 0 : e.parameterLimit, o = s.split(e.delimiter, n), a = -1, h, l = e.charset;
|
|
1719
1719
|
if (e.charsetSentinel)
|
|
1720
1720
|
for (h = 0; h < o.length; ++h)
|
|
1721
|
-
o[h].indexOf("utf8=") === 0 && (o[h] ===
|
|
1721
|
+
o[h].indexOf("utf8=") === 0 && (o[h] === X_ ? l = "utf-8" : o[h] === U_ && (l = "iso-8859-1"), a = h, h = o.length);
|
|
1722
1722
|
for (h = 0; h < o.length; ++h)
|
|
1723
1723
|
if (h !== a) {
|
|
1724
1724
|
var c = o[h], u = c.indexOf("]="), d = u === -1 ? c.indexOf("=") : u + 1, f, p;
|
|
@@ -1789,7 +1789,7 @@ var yu = fu, dn = Ax, o_ = Wx, a_ = yu("%TypeError%"), Fo = yu("%WeakMap%", !0),
|
|
|
1789
1789
|
var e = H_(t);
|
|
1790
1790
|
if (r === "" || r === null || typeof r > "u")
|
|
1791
1791
|
return e.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
|
|
1792
|
-
for (var i = typeof r == "string" ?
|
|
1792
|
+
for (var i = typeof r == "string" ? W_(r, e) : r, s = e.plainObjects ? /* @__PURE__ */ Object.create(null) : {}, n = Object.keys(i), o = 0; o < n.length; ++o) {
|
|
1793
1793
|
var a = n[o], h = V_(a, i[a], e, typeof r == "string");
|
|
1794
1794
|
s = en.merge(s, h, e);
|
|
1795
1795
|
}
|
|
@@ -1835,7 +1835,7 @@ var Q_ = /^([a-z0-9.+-]+:)/i, q_ = /:[0-9]*$/, tv = /^(\/\/?(?!\/)[^?\s]*)(\?[^\
|
|
|
1835
1835
|
}, ql = {
|
|
1836
1836
|
javascript: !0,
|
|
1837
1837
|
"javascript:": !0
|
|
1838
|
-
},
|
|
1838
|
+
}, Ws = {
|
|
1839
1839
|
http: !0,
|
|
1840
1840
|
https: !0,
|
|
1841
1841
|
ftp: !0,
|
|
@@ -1874,7 +1874,7 @@ zi.prototype.parse = function(r, t, e) {
|
|
|
1874
1874
|
var u = a.substr(0, 2) === "//";
|
|
1875
1875
|
u && !(l && ql[l]) && (a = a.substr(2), this.slashes = !0);
|
|
1876
1876
|
}
|
|
1877
|
-
if (!ql[l] && (u || l && !
|
|
1877
|
+
if (!ql[l] && (u || l && !Ws[l])) {
|
|
1878
1878
|
for (var d = -1, f = 0; f < af.length; f++) {
|
|
1879
1879
|
var p = a.indexOf(af[f]);
|
|
1880
1880
|
p !== -1 && (d === -1 || p < d) && (d = p);
|
|
@@ -1915,7 +1915,7 @@ zi.prototype.parse = function(r, t, e) {
|
|
|
1915
1915
|
var F = a.indexOf("#");
|
|
1916
1916
|
F !== -1 && (this.hash = a.substr(F), a = a.slice(0, F));
|
|
1917
1917
|
var O = a.indexOf("?");
|
|
1918
|
-
if (O !== -1 ? (this.search = a.substr(O), this.query = a.substr(O + 1), t && (this.query = tc.parse(this.query)), a = a.slice(0, O)) : t && (this.search = "", this.query = {}), a && (this.pathname = a),
|
|
1918
|
+
if (O !== -1 ? (this.search = a.substr(O), this.query = a.substr(O + 1), t && (this.query = tc.parse(this.query)), a = a.slice(0, O)) : t && (this.search = "", this.query = {}), a && (this.pathname = a), Ws[c] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) {
|
|
1919
1919
|
var L = this.pathname || "", U = this.search || "";
|
|
1920
1920
|
this.path = L + U;
|
|
1921
1921
|
}
|
|
@@ -1930,7 +1930,7 @@ zi.prototype.format = function() {
|
|
|
1930
1930
|
addQueryPrefix: !1
|
|
1931
1931
|
}));
|
|
1932
1932
|
var o = this.search || n && "?" + n || "";
|
|
1933
|
-
return t && t.substr(-1) !== ":" && (t += ":"), this.slashes || (!t ||
|
|
1933
|
+
return t && t.substr(-1) !== ":" && (t += ":"), this.slashes || (!t || Ws[t]) && s !== !1 ? (s = "//" + (s || ""), e && e.charAt(0) !== "/" && (e = "/" + e)) : s || (s = ""), i && i.charAt(0) !== "#" && (i = "#" + i), o && o.charAt(0) !== "?" && (o = "?" + o), e = e.replace(/[?#]/g, function(a) {
|
|
1934
1934
|
return encodeURIComponent(a);
|
|
1935
1935
|
}), o = o.replace("#", "%23"), t + s + e + o + i;
|
|
1936
1936
|
};
|
|
@@ -1953,10 +1953,10 @@ zi.prototype.resolveObject = function(r) {
|
|
|
1953
1953
|
var h = o[a];
|
|
1954
1954
|
h !== "protocol" && (e[h] = r[h]);
|
|
1955
1955
|
}
|
|
1956
|
-
return
|
|
1956
|
+
return Ws[e.protocol] && e.hostname && !e.pathname && (e.pathname = "/", e.path = e.pathname), e.href = e.format(), e;
|
|
1957
1957
|
}
|
|
1958
1958
|
if (r.protocol && r.protocol !== e.protocol) {
|
|
1959
|
-
if (!
|
|
1959
|
+
if (!Ws[r.protocol]) {
|
|
1960
1960
|
for (var l = Object.keys(r), c = 0; c < l.length; c++) {
|
|
1961
1961
|
var u = l[c];
|
|
1962
1962
|
e[u] = r[u];
|
|
@@ -1975,7 +1975,7 @@ zi.prototype.resolveObject = function(r) {
|
|
|
1975
1975
|
}
|
|
1976
1976
|
return e.slashes = e.slashes || r.slashes, e.href = e.format(), e;
|
|
1977
1977
|
}
|
|
1978
|
-
var p = e.pathname && e.pathname.charAt(0) === "/", m = r.host || r.pathname && r.pathname.charAt(0) === "/", g = m || p || e.host && r.pathname, y = g, x = e.pathname && e.pathname.split("/") || [], b = r.pathname && r.pathname.split("/") || [], _ = e.protocol && !
|
|
1978
|
+
var p = e.pathname && e.pathname.charAt(0) === "/", m = r.host || r.pathname && r.pathname.charAt(0) === "/", g = m || p || e.host && r.pathname, y = g, x = e.pathname && e.pathname.split("/") || [], b = r.pathname && r.pathname.split("/") || [], _ = e.protocol && !Ws[e.protocol];
|
|
1979
1979
|
if (_ && (e.hostname = "", e.port = null, e.host && (x[0] === "" ? x[0] = e.host : x.unshift(e.host)), e.host = "", r.protocol && (r.hostname = null, r.port = null, r.host && (b[0] === "" ? b[0] = r.host : b.unshift(r.host)), r.host = null), g = g && (b[0] === "" || x[0] === "")), m)
|
|
1980
1980
|
e.host = r.host || r.host === "" ? r.host : e.host, e.hostname = r.hostname || r.hostname === "" ? r.hostname : e.hostname, e.search = r.search, e.query = r.query, x = b;
|
|
1981
1981
|
else if (b.length)
|
|
@@ -2009,7 +2009,7 @@ zi.prototype.parseHost = function() {
|
|
|
2009
2009
|
t && (t = t[0], t !== ":" && (this.port = t.substr(1)), r = r.substr(0, r.length - t.length)), r && (this.hostname = r);
|
|
2010
2010
|
};
|
|
2011
2011
|
const lf = {};
|
|
2012
|
-
function
|
|
2012
|
+
function ft(r, t, e = 3) {
|
|
2013
2013
|
if (lf[t])
|
|
2014
2014
|
return;
|
|
2015
2015
|
let i = new Error().stack;
|
|
@@ -2357,18 +2357,18 @@ var dv = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, Ni = function(r) {
|
|
|
2357
2357
|
return typeof r == "string" ? r.length > 0 : typeof r == "number";
|
|
2358
2358
|
}, ee = function(r, t, e) {
|
|
2359
2359
|
return t === void 0 && (t = 0), e === void 0 && (e = Math.pow(10, t)), Math.round(e * r) / e + 0;
|
|
2360
|
-
},
|
|
2360
|
+
}, We = function(r, t, e) {
|
|
2361
2361
|
return t === void 0 && (t = 0), e === void 0 && (e = 1), r > e ? e : r > t ? r : t;
|
|
2362
|
-
},
|
|
2362
|
+
}, X0 = function(r) {
|
|
2363
2363
|
return (r = isFinite(r) ? r % 360 : 0) > 0 ? r : r + 360;
|
|
2364
2364
|
}, cf = function(r) {
|
|
2365
|
-
return { r:
|
|
2365
|
+
return { r: We(r.r, 0, 255), g: We(r.g, 0, 255), b: We(r.b, 0, 255), a: We(r.a) };
|
|
2366
2366
|
}, qh = function(r) {
|
|
2367
2367
|
return { r: ee(r.r), g: ee(r.g), b: ee(r.b), a: ee(r.a, 3) };
|
|
2368
2368
|
}, fv = /^#([0-9a-f]{3,8})$/i, Do = function(r) {
|
|
2369
2369
|
var t = r.toString(16);
|
|
2370
2370
|
return t.length < 2 ? "0" + t : t;
|
|
2371
|
-
},
|
|
2371
|
+
}, W0 = function(r) {
|
|
2372
2372
|
var t = r.r, e = r.g, i = r.b, s = r.a, n = Math.max(t, e, i), o = n - Math.min(t, e, i), a = o ? n === t ? (e - i) / o : n === e ? 2 + (i - t) / o : 4 + (t - e) / o : 0;
|
|
2373
2373
|
return { h: 60 * (a < 0 ? a + 6 : a), s: n ? o / n * 100 : 0, v: n / 255 * 100, a: s };
|
|
2374
2374
|
}, Z0 = function(r) {
|
|
@@ -2377,14 +2377,14 @@ var dv = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, Ni = function(r) {
|
|
|
2377
2377
|
var n = Math.floor(t), o = i * (1 - e), a = i * (1 - (t - n) * e), h = i * (1 - (1 - t + n) * e), l = n % 6;
|
|
2378
2378
|
return { r: 255 * [i, a, o, o, h, i][l], g: 255 * [h, i, i, a, o, o][l], b: 255 * [o, o, h, i, i, a][l], a: s };
|
|
2379
2379
|
}, uf = function(r) {
|
|
2380
|
-
return { h:
|
|
2380
|
+
return { h: X0(r.h), s: We(r.s, 0, 100), l: We(r.l, 0, 100), a: We(r.a) };
|
|
2381
2381
|
}, df = function(r) {
|
|
2382
2382
|
return { h: ee(r.h), s: ee(r.s), l: ee(r.l), a: ee(r.a, 3) };
|
|
2383
2383
|
}, ff = function(r) {
|
|
2384
2384
|
return Z0((e = (t = r).s, { h: t.h, s: (e *= ((i = t.l) < 50 ? i : 100 - i) / 100) > 0 ? 2 * e / (i + e) * 100 : 0, v: i + e, a: t.a }));
|
|
2385
2385
|
var t, e, i;
|
|
2386
2386
|
}, Yn = function(r) {
|
|
2387
|
-
return { h: (t =
|
|
2387
|
+
return { h: (t = W0(r)).h, s: (s = (200 - (e = t.s)) * (i = t.v) / 100) > 0 && s < 200 ? e * i / 100 / (s <= 100 ? s : 200 - s) * 100 : 0, l: s / 2, a: t.a };
|
|
2388
2388
|
var t, e, i, s;
|
|
2389
2389
|
}, pv = /^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, mv = /^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, gv = /^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, yv = /^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, ec = { string: [[function(r) {
|
|
2390
2390
|
var t = fv.exec(r);
|
|
@@ -2409,7 +2409,7 @@ var dv = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, Ni = function(r) {
|
|
|
2409
2409
|
var t = r.h, e = r.s, i = r.v, s = r.a, n = s === void 0 ? 1 : s;
|
|
2410
2410
|
if (!Ni(t) || !Ni(e) || !Ni(i)) return null;
|
|
2411
2411
|
var o = function(a) {
|
|
2412
|
-
return { h:
|
|
2412
|
+
return { h: X0(a.h), s: We(a.s, 0, 100), v: We(a.v, 0, 100), a: We(a.a) };
|
|
2413
2413
|
}({ h: Number(t), s: Number(e), v: Number(i), a: Number(n) });
|
|
2414
2414
|
return Z0(o);
|
|
2415
2415
|
}, "hsv"]] }, pf = function(r, t) {
|
|
@@ -2422,12 +2422,12 @@ var dv = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, Ni = function(r) {
|
|
|
2422
2422
|
return typeof r == "string" ? pf(r.trim(), ec.string) : typeof r == "object" && r !== null ? pf(r, ec.object) : [null, void 0];
|
|
2423
2423
|
}, tl = function(r, t) {
|
|
2424
2424
|
var e = Yn(r);
|
|
2425
|
-
return { h: e.h, s:
|
|
2425
|
+
return { h: e.h, s: We(e.s + 100 * t, 0, 100), l: e.l, a: e.a };
|
|
2426
2426
|
}, el = function(r) {
|
|
2427
2427
|
return (299 * r.r + 587 * r.g + 114 * r.b) / 1e3 / 255;
|
|
2428
2428
|
}, mf = function(r, t) {
|
|
2429
2429
|
var e = Yn(r);
|
|
2430
|
-
return { h: e.h, s: e.s, l:
|
|
2430
|
+
return { h: e.h, s: e.s, l: We(e.l + 100 * t, 0, 100), a: e.a };
|
|
2431
2431
|
}, ic = function() {
|
|
2432
2432
|
function r(t) {
|
|
2433
2433
|
this.parsed = bv(t)[0], this.rgba = this.parsed || { r: 0, g: 0, b: 0, a: 1 };
|
|
@@ -2454,7 +2454,7 @@ var dv = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, Ni = function(r) {
|
|
|
2454
2454
|
return t = df(Yn(this.rgba)), e = t.h, i = t.s, s = t.l, (n = t.a) < 1 ? "hsla(" + e + ", " + i + "%, " + s + "%, " + n + ")" : "hsl(" + e + ", " + i + "%, " + s + "%)";
|
|
2455
2455
|
var t, e, i, s, n;
|
|
2456
2456
|
}, r.prototype.toHsv = function() {
|
|
2457
|
-
return t =
|
|
2457
|
+
return t = W0(this.rgba), { h: ee(t.h), s: ee(t.s), v: ee(t.v), a: ee(t.a, 3) };
|
|
2458
2458
|
var t;
|
|
2459
2459
|
}, r.prototype.invert = function() {
|
|
2460
2460
|
return ui({ r: 255 - (t = this.rgba).r, g: 255 - t.g, b: 255 - t.b, a: t.a });
|
|
@@ -2779,10 +2779,10 @@ As.temp = new As(), /** Pattern for hex strings */
|
|
|
2779
2779
|
As.HEX_PATTERN = /^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;
|
|
2780
2780
|
let Et = As;
|
|
2781
2781
|
function vv(r) {
|
|
2782
|
-
return
|
|
2782
|
+
return ft("7.2.0", "utils.hex2string is deprecated, use Color#toHex instead"), Et.shared.setValue(r).toHex();
|
|
2783
2783
|
}
|
|
2784
2784
|
function wv(r) {
|
|
2785
|
-
return
|
|
2785
|
+
return ft("7.2.0", "utils.rgb2hex is deprecated, use Color#toNumber instead"), Et.shared.setValue(r).toNumber();
|
|
2786
2786
|
}
|
|
2787
2787
|
function Tv() {
|
|
2788
2788
|
const r = [], t = [];
|
|
@@ -3537,7 +3537,7 @@ class dh extends to {
|
|
|
3537
3537
|
}
|
|
3538
3538
|
}
|
|
3539
3539
|
const Gv = {
|
|
3540
|
-
scaleMode:
|
|
3540
|
+
scaleMode: Wi.NEAREST,
|
|
3541
3541
|
alphaMode: be.NPM
|
|
3542
3542
|
}, ac = class Ms extends po {
|
|
3543
3543
|
/**
|
|
@@ -3765,7 +3765,7 @@ const Gv = {
|
|
|
3765
3765
|
t = t || new Float32Array(e * i * 4);
|
|
3766
3766
|
const n = new dh(t, { width: e, height: i, ...s == null ? void 0 : s.resourceOptions });
|
|
3767
3767
|
let o, a;
|
|
3768
|
-
return t instanceof Float32Array ? (o =
|
|
3768
|
+
return t instanceof Float32Array ? (o = W.RGBA, a = nt.FLOAT) : t instanceof Int32Array ? (o = W.RGBA_INTEGER, a = nt.INT) : t instanceof Uint32Array ? (o = W.RGBA_INTEGER, a = nt.UNSIGNED_INT) : t instanceof Int16Array ? (o = W.RGBA_INTEGER, a = nt.SHORT) : t instanceof Uint16Array ? (o = W.RGBA_INTEGER, a = nt.UNSIGNED_SHORT) : t instanceof Int8Array ? (o = W.RGBA, a = nt.BYTE) : (o = W.RGBA, a = nt.UNSIGNED_BYTE), n.internal = !0, new Ms(n, Object.assign({}, Gv, { type: a, format: o }, s));
|
|
3769
3769
|
}
|
|
3770
3770
|
/**
|
|
3771
3771
|
* Adds a BaseTexture to the global BaseTextureCache. This cache is shared across the whole PIXI object.
|
|
@@ -3809,7 +3809,7 @@ ac.defaultOptions = {
|
|
|
3809
3809
|
* @type {PIXI.SCALE_MODES}
|
|
3810
3810
|
* @default PIXI.SCALE_MODES.LINEAR
|
|
3811
3811
|
*/
|
|
3812
|
-
scaleMode:
|
|
3812
|
+
scaleMode: Wi.LINEAR,
|
|
3813
3813
|
/**
|
|
3814
3814
|
* Wrap mode for textures.
|
|
3815
3815
|
* @type {PIXI.WRAP_MODES}
|
|
@@ -3833,7 +3833,7 @@ ac.defaultOptions = {
|
|
|
3833
3833
|
* @type {PIXI.FORMATS}
|
|
3834
3834
|
* @default PIXI.FORMATS.RGBA
|
|
3835
3835
|
*/
|
|
3836
|
-
format:
|
|
3836
|
+
format: W.RGBA,
|
|
3837
3837
|
/**
|
|
3838
3838
|
* GL data type
|
|
3839
3839
|
* @type {PIXI.TYPES}
|
|
@@ -3849,7 +3849,7 @@ class hc {
|
|
|
3849
3849
|
}
|
|
3850
3850
|
}
|
|
3851
3851
|
let kv = 0;
|
|
3852
|
-
class
|
|
3852
|
+
class Xt {
|
|
3853
3853
|
/**
|
|
3854
3854
|
* @param {PIXI.IArrayBuffer} data - the data to store in the buffer.
|
|
3855
3855
|
* @param _static - `true` for static buffer
|
|
@@ -3894,7 +3894,7 @@ class Wt {
|
|
|
3894
3894
|
* @returns - A new Buffer based on the data provided.
|
|
3895
3895
|
*/
|
|
3896
3896
|
static from(t) {
|
|
3897
|
-
return t instanceof Array && (t = new Float32Array(t)), new
|
|
3897
|
+
return t instanceof Array && (t = new Float32Array(t)), new Xt(t);
|
|
3898
3898
|
}
|
|
3899
3899
|
}
|
|
3900
3900
|
class Pa {
|
|
@@ -3986,7 +3986,7 @@ class wr {
|
|
|
3986
3986
|
addAttribute(t, e, i = 0, s = !1, n, o, a, h = !1) {
|
|
3987
3987
|
if (!e)
|
|
3988
3988
|
throw new Error("You must pass a buffer when creating an attribute");
|
|
3989
|
-
e instanceof
|
|
3989
|
+
e instanceof Xt || (e instanceof Array && (e = new Float32Array(e)), e = new Xt(e));
|
|
3990
3990
|
const l = t.split("|");
|
|
3991
3991
|
if (l.length > 1) {
|
|
3992
3992
|
for (let u = 0; u < l.length; u++)
|
|
@@ -4020,7 +4020,7 @@ class wr {
|
|
|
4020
4020
|
* @returns - Returns self, useful for chaining.
|
|
4021
4021
|
*/
|
|
4022
4022
|
addIndex(t) {
|
|
4023
|
-
return t instanceof
|
|
4023
|
+
return t instanceof Xt || (t instanceof Array && (t = new Uint16Array(t)), t = new Xt(t)), t.type = Si.ELEMENT_ARRAY_BUFFER, this.indexBuffer = t, this.buffers.includes(t) || this.buffers.push(t), this;
|
|
4024
4024
|
}
|
|
4025
4025
|
/**
|
|
4026
4026
|
* Returns the index buffer
|
|
@@ -4037,7 +4037,7 @@ class wr {
|
|
|
4037
4037
|
interleave() {
|
|
4038
4038
|
if (this.buffers.length === 1 || this.buffers.length === 2 && this.indexBuffer)
|
|
4039
4039
|
return this;
|
|
4040
|
-
const t = [], e = [], i = new
|
|
4040
|
+
const t = [], e = [], i = new Xt();
|
|
4041
4041
|
let s;
|
|
4042
4042
|
for (s in this.attributes) {
|
|
4043
4043
|
const n = this.attributes[s], o = this.buffers[n.buffer];
|
|
@@ -4070,7 +4070,7 @@ class wr {
|
|
|
4070
4070
|
clone() {
|
|
4071
4071
|
const t = new wr();
|
|
4072
4072
|
for (let e = 0; e < this.buffers.length; e++)
|
|
4073
|
-
t.buffers[e] = new
|
|
4073
|
+
t.buffers[e] = new Xt(this.buffers[e].data.slice(0));
|
|
4074
4074
|
for (const e in this.attributes) {
|
|
4075
4075
|
const i = this.attributes[e];
|
|
4076
4076
|
t.attributes[e] = new Pa(
|
|
@@ -4101,7 +4101,7 @@ class wr {
|
|
|
4101
4101
|
s[h] = s[h] || 0, s[h] += o.buffers[h].data.length, n[h] = 0;
|
|
4102
4102
|
}
|
|
4103
4103
|
for (let a = 0; a < o.buffers.length; a++)
|
|
4104
|
-
i[a] = new Ov[K0(o.buffers[a].data)](s[a]), e.buffers[a] = new
|
|
4104
|
+
i[a] = new Ov[K0(o.buffers[a].data)](s[a]), e.buffers[a] = new Xt(i[a]);
|
|
4105
4105
|
for (let a = 0; a < t.length; a++) {
|
|
4106
4106
|
o = t[a];
|
|
4107
4107
|
for (let h = 0; h < o.buffers.length; h++)
|
|
@@ -4135,7 +4135,7 @@ class z0 extends wr {
|
|
|
4135
4135
|
* is updated every frame, `true` doesn't change frame-to-frame.
|
|
4136
4136
|
*/
|
|
4137
4137
|
constructor(t = !1) {
|
|
4138
|
-
super(), this._buffer = new
|
|
4138
|
+
super(), this._buffer = new Xt(null, t, !1), this._indexBuffer = new Xt(null, t, !0), this.addAttribute("aVertexPosition", this._buffer, 2, !1, nt.FLOAT).addAttribute("aTextureCoord", this._buffer, 2, !1, nt.FLOAT).addAttribute("aColor", this._buffer, 4, !0, nt.UNSIGNED_BYTE).addAttribute("aTextureId", this._buffer, 1, !0, nt.FLOAT).addIndex(this._indexBuffer);
|
|
4139
4139
|
}
|
|
4140
4140
|
}
|
|
4141
4141
|
const La = Math.PI * 2, Bv = 180 / Math.PI, lc = Math.PI / 180;
|
|
@@ -4703,15 +4703,15 @@ class It {
|
|
|
4703
4703
|
It.prototype.toString = function() {
|
|
4704
4704
|
return `[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`;
|
|
4705
4705
|
};
|
|
4706
|
-
const
|
|
4706
|
+
const Xr = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1], Wr = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1], Zr = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1], Vr = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1], cc = [], j0 = [], Bo = Math.sign;
|
|
4707
4707
|
function Uv() {
|
|
4708
4708
|
for (let r = 0; r < 16; r++) {
|
|
4709
4709
|
const t = [];
|
|
4710
4710
|
cc.push(t);
|
|
4711
4711
|
for (let e = 0; e < 16; e++) {
|
|
4712
|
-
const i = Bo(
|
|
4712
|
+
const i = Bo(Xr[r] * Xr[e] + Zr[r] * Wr[e]), s = Bo(Wr[r] * Xr[e] + Vr[r] * Wr[e]), n = Bo(Xr[r] * Zr[e] + Zr[r] * Vr[e]), o = Bo(Wr[r] * Zr[e] + Vr[r] * Vr[e]);
|
|
4713
4713
|
for (let a = 0; a < 16; a++)
|
|
4714
|
-
if (
|
|
4714
|
+
if (Xr[a] === i && Wr[a] === s && Zr[a] === n && Vr[a] === o) {
|
|
4715
4715
|
t.push(a);
|
|
4716
4716
|
break;
|
|
4717
4717
|
}
|
|
@@ -4719,7 +4719,7 @@ function Uv() {
|
|
|
4719
4719
|
}
|
|
4720
4720
|
for (let r = 0; r < 16; r++) {
|
|
4721
4721
|
const t = new It();
|
|
4722
|
-
t.set(
|
|
4722
|
+
t.set(Xr[r], Wr[r], Zr[r], Vr[r], 0, 0), j0.push(t);
|
|
4723
4723
|
}
|
|
4724
4724
|
}
|
|
4725
4725
|
Uv();
|
|
@@ -4805,13 +4805,13 @@ const Lt = {
|
|
|
4805
4805
|
* @returns {PIXI.GD8Symmetry} The X-component of the U-axis
|
|
4806
4806
|
* after rotating the axes.
|
|
4807
4807
|
*/
|
|
4808
|
-
uX: (r) =>
|
|
4808
|
+
uX: (r) => Xr[r],
|
|
4809
4809
|
/**
|
|
4810
4810
|
* @param {PIXI.GD8Symmetry} ind - sprite rotation angle.
|
|
4811
4811
|
* @returns {PIXI.GD8Symmetry} The Y-component of the U-axis
|
|
4812
4812
|
* after rotating the axes.
|
|
4813
4813
|
*/
|
|
4814
|
-
uY: (r) =>
|
|
4814
|
+
uY: (r) => Wr[r],
|
|
4815
4815
|
/**
|
|
4816
4816
|
* @param {PIXI.GD8Symmetry} ind - sprite rotation angle.
|
|
4817
4817
|
* @returns {PIXI.GD8Symmetry} The X-component of the V-axis
|
|
@@ -5021,13 +5021,13 @@ let _u = uc;
|
|
|
5021
5021
|
_u.prototype.toString = function() {
|
|
5022
5022
|
return `[@pixi/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`;
|
|
5023
5023
|
};
|
|
5024
|
-
var
|
|
5024
|
+
var Xv = `varying vec2 vTextureCoord;
|
|
5025
5025
|
|
|
5026
5026
|
uniform sampler2D uSampler;
|
|
5027
5027
|
|
|
5028
5028
|
void main(void){
|
|
5029
5029
|
gl_FragColor *= texture2D(uSampler, vTextureCoord);
|
|
5030
|
-
}`,
|
|
5030
|
+
}`, Wv = `attribute vec2 aVertexPosition;
|
|
5031
5031
|
attribute vec2 aTextureCoord;
|
|
5032
5032
|
|
|
5033
5033
|
uniform mat3 projectionMatrix;
|
|
@@ -5536,11 +5536,11 @@ function Kv() {
|
|
|
5536
5536
|
let Uo;
|
|
5537
5537
|
function Yv() {
|
|
5538
5538
|
if (!Uo) {
|
|
5539
|
-
Uo =
|
|
5539
|
+
Uo = Xe.MEDIUM;
|
|
5540
5540
|
const r = Kv();
|
|
5541
5541
|
if (r && r.getShaderPrecisionFormat) {
|
|
5542
5542
|
const t = r.getShaderPrecisionFormat(r.FRAGMENT_SHADER, r.HIGH_FLOAT);
|
|
5543
|
-
t && (Uo = t.precision ?
|
|
5543
|
+
t && (Uo = t.precision ? Xe.HIGH : Xe.MEDIUM);
|
|
5544
5544
|
}
|
|
5545
5545
|
}
|
|
5546
5546
|
return Uo;
|
|
@@ -5584,7 +5584,7 @@ const jv = {
|
|
|
5584
5584
|
function Q0(r) {
|
|
5585
5585
|
return jv[r];
|
|
5586
5586
|
}
|
|
5587
|
-
let
|
|
5587
|
+
let Xo = null;
|
|
5588
5588
|
const If = {
|
|
5589
5589
|
FLOAT: "float",
|
|
5590
5590
|
FLOAT_VEC2: "vec2",
|
|
@@ -5616,22 +5616,22 @@ const If = {
|
|
|
5616
5616
|
UNSIGNED_INT_SAMPLER_2D_ARRAY: "sampler2DArray"
|
|
5617
5617
|
};
|
|
5618
5618
|
function q0(r, t) {
|
|
5619
|
-
if (!
|
|
5619
|
+
if (!Xo) {
|
|
5620
5620
|
const e = Object.keys(If);
|
|
5621
|
-
|
|
5621
|
+
Xo = {};
|
|
5622
5622
|
for (let i = 0; i < e.length; ++i) {
|
|
5623
5623
|
const s = e[i];
|
|
5624
|
-
|
|
5624
|
+
Xo[r[s]] = If[s];
|
|
5625
5625
|
}
|
|
5626
5626
|
}
|
|
5627
|
-
return
|
|
5627
|
+
return Xo[t];
|
|
5628
5628
|
}
|
|
5629
5629
|
function Af(r, t, e) {
|
|
5630
5630
|
if (r.substring(0, 9) !== "precision") {
|
|
5631
5631
|
let i = t;
|
|
5632
|
-
return t ===
|
|
5632
|
+
return t === Xe.HIGH && e !== Xe.HIGH && (i = Xe.MEDIUM), `precision ${i} float;
|
|
5633
5633
|
${r}`;
|
|
5634
|
-
} else if (e !==
|
|
5634
|
+
} else if (e !== Xe.HIGH && r.substring(0, 15) === "precision highp")
|
|
5635
5635
|
return r.replace("precision highp", "precision mediump");
|
|
5636
5636
|
return r;
|
|
5637
5637
|
}
|
|
@@ -5647,7 +5647,7 @@ function Jv() {
|
|
|
5647
5647
|
return vn;
|
|
5648
5648
|
}
|
|
5649
5649
|
let $v = 0;
|
|
5650
|
-
const
|
|
5650
|
+
const Wo = {}, dc = class Rs {
|
|
5651
5651
|
/**
|
|
5652
5652
|
* @param vertexSrc - The source of the vertex shader.
|
|
5653
5653
|
* @param fragmentSrc - The source of the fragment shader.
|
|
@@ -5655,12 +5655,12 @@ const Xo = {}, dc = class Rs {
|
|
|
5655
5655
|
* @param extra - Extra data for shader
|
|
5656
5656
|
*/
|
|
5657
5657
|
constructor(t, e, i = "pixi-shader", s = {}) {
|
|
5658
|
-
this.extra = {}, this.id = $v++, this.vertexSrc = t || Rs.defaultVertexSrc, this.fragmentSrc = e || Rs.defaultFragmentSrc, this.vertexSrc = this.vertexSrc.trim(), this.fragmentSrc = this.fragmentSrc.trim(), this.extra = s, this.vertexSrc.substring(0, 8) !== "#version" && (i = i.replace(/\s+/g, "-"),
|
|
5658
|
+
this.extra = {}, this.id = $v++, this.vertexSrc = t || Rs.defaultVertexSrc, this.fragmentSrc = e || Rs.defaultFragmentSrc, this.vertexSrc = this.vertexSrc.trim(), this.fragmentSrc = this.fragmentSrc.trim(), this.extra = s, this.vertexSrc.substring(0, 8) !== "#version" && (i = i.replace(/\s+/g, "-"), Wo[i] ? (Wo[i]++, i += `-${Wo[i]}`) : Wo[i] = 1, this.vertexSrc = `#define SHADER_NAME ${i}
|
|
5659
5659
|
${this.vertexSrc}`, this.fragmentSrc = `#define SHADER_NAME ${i}
|
|
5660
5660
|
${this.fragmentSrc}`, this.vertexSrc = Af(
|
|
5661
5661
|
this.vertexSrc,
|
|
5662
5662
|
Rs.defaultVertexPrecision,
|
|
5663
|
-
|
|
5663
|
+
Xe.HIGH
|
|
5664
5664
|
), this.fragmentSrc = Af(
|
|
5665
5665
|
this.fragmentSrc,
|
|
5666
5666
|
Rs.defaultFragmentPrecision,
|
|
@@ -5672,14 +5672,14 @@ ${this.fragmentSrc}`, this.vertexSrc = Af(
|
|
|
5672
5672
|
* @readonly
|
|
5673
5673
|
*/
|
|
5674
5674
|
static get defaultVertexSrc() {
|
|
5675
|
-
return
|
|
5675
|
+
return Wv;
|
|
5676
5676
|
}
|
|
5677
5677
|
/**
|
|
5678
5678
|
* The default fragment shader source.
|
|
5679
5679
|
* @readonly
|
|
5680
5680
|
*/
|
|
5681
5681
|
static get defaultFragmentSrc() {
|
|
5682
|
-
return
|
|
5682
|
+
return Xv;
|
|
5683
5683
|
}
|
|
5684
5684
|
/**
|
|
5685
5685
|
* A short hand function to create a program based of a vertex and fragment shader.
|
|
@@ -5696,14 +5696,14 @@ ${this.fragmentSrc}`, this.vertexSrc = Af(
|
|
|
5696
5696
|
return n || (_f[s] = n = new Rs(t, e, i)), n;
|
|
5697
5697
|
}
|
|
5698
5698
|
};
|
|
5699
|
-
dc.defaultVertexPrecision =
|
|
5699
|
+
dc.defaultVertexPrecision = Xe.HIGH, /**
|
|
5700
5700
|
* Default specify float precision in fragment shader.
|
|
5701
5701
|
* iOS is best set at highp due to https://github.com/pixijs/pixijs/issues/3742
|
|
5702
5702
|
* @static
|
|
5703
5703
|
* @type {PIXI.PRECISION}
|
|
5704
5704
|
* @default PIXI.PRECISION.MEDIUM
|
|
5705
5705
|
*/
|
|
5706
|
-
dc.defaultFragmentPrecision = Zi.apple.device ?
|
|
5706
|
+
dc.defaultFragmentPrecision = Zi.apple.device ? Xe.HIGH : Xe.MEDIUM;
|
|
5707
5707
|
let Hi = dc, Qv = 0;
|
|
5708
5708
|
class oi {
|
|
5709
5709
|
/**
|
|
@@ -5712,7 +5712,7 @@ class oi {
|
|
|
5712
5712
|
* @param isUbo - If true, will treat this uniform group as a uniform buffer object.
|
|
5713
5713
|
*/
|
|
5714
5714
|
constructor(t, e, i) {
|
|
5715
|
-
this.group = !0, this.syncUniforms = {}, this.dirtyId = 0, this.id = Qv++, this.static = !!e, this.ubo = !!i, t instanceof
|
|
5715
|
+
this.group = !0, this.syncUniforms = {}, this.dirtyId = 0, this.id = Qv++, this.static = !!e, this.ubo = !!i, t instanceof Xt ? (this.buffer = t, this.buffer.type = Si.UNIFORM_BUFFER, this.autoManage = !1, this.ubo = !0) : (this.uniforms = t, this.ubo && (this.buffer = new Xt(new Float32Array(1)), this.buffer.type = Si.UNIFORM_BUFFER, this.autoManage = !0));
|
|
5716
5716
|
}
|
|
5717
5717
|
update() {
|
|
5718
5718
|
this.dirtyId++, !this.autoManage && this.buffer && this.buffer.update();
|
|
@@ -5949,7 +5949,7 @@ const Pn = class Qe extends gh {
|
|
|
5949
5949
|
* @readonly
|
|
5950
5950
|
*/
|
|
5951
5951
|
get MAX_TEXTURES() {
|
|
5952
|
-
return
|
|
5952
|
+
return ft("7.1.0", "BatchRenderer#MAX_TEXTURES renamed to BatchRenderer#maxTextures"), this.maxTextures;
|
|
5953
5953
|
}
|
|
5954
5954
|
/**
|
|
5955
5955
|
* The default vertex shader source
|
|
@@ -6617,7 +6617,7 @@ class mc {
|
|
|
6617
6617
|
*/
|
|
6618
6618
|
addColorTexture(t = 0, e) {
|
|
6619
6619
|
return this.colorTextures[t] = e || new ut(null, {
|
|
6620
|
-
scaleMode:
|
|
6620
|
+
scaleMode: Wi.NEAREST,
|
|
6621
6621
|
resolution: 1,
|
|
6622
6622
|
mipmap: Mi.OFF,
|
|
6623
6623
|
width: this.width,
|
|
@@ -6630,12 +6630,12 @@ class mc {
|
|
|
6630
6630
|
*/
|
|
6631
6631
|
addDepthTexture(t) {
|
|
6632
6632
|
return this.depthTexture = t || new ut(null, {
|
|
6633
|
-
scaleMode:
|
|
6633
|
+
scaleMode: Wi.NEAREST,
|
|
6634
6634
|
resolution: 1,
|
|
6635
6635
|
width: this.width,
|
|
6636
6636
|
height: this.height,
|
|
6637
6637
|
mipmap: Mi.OFF,
|
|
6638
|
-
format:
|
|
6638
|
+
format: W.DEPTH_COMPONENT,
|
|
6639
6639
|
type: nt.UNSIGNED_SHORT
|
|
6640
6640
|
}), this.dirtyId++, this.dirtyFormat++, this;
|
|
6641
6641
|
}
|
|
@@ -7377,7 +7377,7 @@ class sm extends wr {
|
|
|
7377
7377
|
1,
|
|
7378
7378
|
0,
|
|
7379
7379
|
1
|
|
7380
|
-
]), this.vertexBuffer = new
|
|
7380
|
+
]), this.vertexBuffer = new Xt(this.vertices), this.uvBuffer = new Xt(this.uvs), this.addAttribute("aVertexPosition", this.vertexBuffer).addAttribute("aTextureCoord", this.uvBuffer).addIndex([0, 1, 2, 0, 2, 3]);
|
|
7381
7381
|
}
|
|
7382
7382
|
/**
|
|
7383
7383
|
* Maps two Rectangle to the quad.
|
|
@@ -7716,7 +7716,7 @@ class om {
|
|
|
7716
7716
|
* @param {PIXI.BUFFER_BITS} [mask=BUFFER_BITS.COLOR | BUFFER_BITS.DEPTH] - Bitwise OR of masks
|
|
7717
7717
|
* that indicate the buffers to be cleared, by default COLOR and DEPTH buffers.
|
|
7718
7718
|
*/
|
|
7719
|
-
clear(t, e, i, s, n =
|
|
7719
|
+
clear(t, e, i, s, n = Wl.COLOR | Wl.DEPTH) {
|
|
7720
7720
|
const { gl: o } = this;
|
|
7721
7721
|
o.clearColor(t, e, i, s), o.clear(n);
|
|
7722
7722
|
}
|
|
@@ -8609,19 +8609,19 @@ class fm {
|
|
|
8609
8609
|
extract: {
|
|
8610
8610
|
enumerable: !1,
|
|
8611
8611
|
get() {
|
|
8612
|
-
return
|
|
8612
|
+
return ft("7.0.0", "renderer.plugins.extract has moved to renderer.extract"), t.extract;
|
|
8613
8613
|
}
|
|
8614
8614
|
},
|
|
8615
8615
|
prepare: {
|
|
8616
8616
|
enumerable: !1,
|
|
8617
8617
|
get() {
|
|
8618
|
-
return
|
|
8618
|
+
return ft("7.0.0", "renderer.plugins.prepare has moved to renderer.prepare"), t.prepare;
|
|
8619
8619
|
}
|
|
8620
8620
|
},
|
|
8621
8621
|
interaction: {
|
|
8622
8622
|
enumerable: !1,
|
|
8623
8623
|
get() {
|
|
8624
|
-
return
|
|
8624
|
+
return ft("7.0.0", "renderer.plugins.interaction has been deprecated, use renderer.events"), t.events;
|
|
8625
8625
|
}
|
|
8626
8626
|
}
|
|
8627
8627
|
});
|
|
@@ -9514,7 +9514,7 @@ let Kr = Gn;
|
|
|
9514
9514
|
it.add(Kr);
|
|
9515
9515
|
class ul {
|
|
9516
9516
|
constructor(t) {
|
|
9517
|
-
this.texture = t, this.width = -1, this.height = -1, this.dirtyId = -1, this.dirtyStyleId = -1, this.mipmap = !1, this.wrapMode = 33071, this.type = nt.UNSIGNED_BYTE, this.internalFormat =
|
|
9517
|
+
this.texture = t, this.width = -1, this.height = -1, this.dirtyId = -1, this.dirtyStyleId = -1, this.mipmap = !1, this.wrapMode = 33071, this.type = nt.UNSIGNED_BYTE, this.internalFormat = W.RGBA, this.samplerType = 0;
|
|
9518
9518
|
}
|
|
9519
9519
|
}
|
|
9520
9520
|
function Fw(r) {
|
|
@@ -9593,108 +9593,108 @@ function Nw(r) {
|
|
|
9593
9593
|
let t;
|
|
9594
9594
|
return "WebGL2RenderingContext" in globalThis && r instanceof globalThis.WebGL2RenderingContext ? t = {
|
|
9595
9595
|
[nt.UNSIGNED_BYTE]: {
|
|
9596
|
-
[
|
|
9597
|
-
[
|
|
9598
|
-
[
|
|
9599
|
-
[
|
|
9600
|
-
[
|
|
9601
|
-
[
|
|
9602
|
-
[
|
|
9603
|
-
[
|
|
9604
|
-
[
|
|
9605
|
-
[
|
|
9606
|
-
[
|
|
9596
|
+
[W.RGBA]: r.RGBA8,
|
|
9597
|
+
[W.RGB]: r.RGB8,
|
|
9598
|
+
[W.RG]: r.RG8,
|
|
9599
|
+
[W.RED]: r.R8,
|
|
9600
|
+
[W.RGBA_INTEGER]: r.RGBA8UI,
|
|
9601
|
+
[W.RGB_INTEGER]: r.RGB8UI,
|
|
9602
|
+
[W.RG_INTEGER]: r.RG8UI,
|
|
9603
|
+
[W.RED_INTEGER]: r.R8UI,
|
|
9604
|
+
[W.ALPHA]: r.ALPHA,
|
|
9605
|
+
[W.LUMINANCE]: r.LUMINANCE,
|
|
9606
|
+
[W.LUMINANCE_ALPHA]: r.LUMINANCE_ALPHA
|
|
9607
9607
|
},
|
|
9608
9608
|
[nt.BYTE]: {
|
|
9609
|
-
[
|
|
9610
|
-
[
|
|
9611
|
-
[
|
|
9612
|
-
[
|
|
9613
|
-
[
|
|
9614
|
-
[
|
|
9615
|
-
[
|
|
9616
|
-
[
|
|
9609
|
+
[W.RGBA]: r.RGBA8_SNORM,
|
|
9610
|
+
[W.RGB]: r.RGB8_SNORM,
|
|
9611
|
+
[W.RG]: r.RG8_SNORM,
|
|
9612
|
+
[W.RED]: r.R8_SNORM,
|
|
9613
|
+
[W.RGBA_INTEGER]: r.RGBA8I,
|
|
9614
|
+
[W.RGB_INTEGER]: r.RGB8I,
|
|
9615
|
+
[W.RG_INTEGER]: r.RG8I,
|
|
9616
|
+
[W.RED_INTEGER]: r.R8I
|
|
9617
9617
|
},
|
|
9618
9618
|
[nt.UNSIGNED_SHORT]: {
|
|
9619
|
-
[
|
|
9620
|
-
[
|
|
9621
|
-
[
|
|
9622
|
-
[
|
|
9623
|
-
[
|
|
9619
|
+
[W.RGBA_INTEGER]: r.RGBA16UI,
|
|
9620
|
+
[W.RGB_INTEGER]: r.RGB16UI,
|
|
9621
|
+
[W.RG_INTEGER]: r.RG16UI,
|
|
9622
|
+
[W.RED_INTEGER]: r.R16UI,
|
|
9623
|
+
[W.DEPTH_COMPONENT]: r.DEPTH_COMPONENT16
|
|
9624
9624
|
},
|
|
9625
9625
|
[nt.SHORT]: {
|
|
9626
|
-
[
|
|
9627
|
-
[
|
|
9628
|
-
[
|
|
9629
|
-
[
|
|
9626
|
+
[W.RGBA_INTEGER]: r.RGBA16I,
|
|
9627
|
+
[W.RGB_INTEGER]: r.RGB16I,
|
|
9628
|
+
[W.RG_INTEGER]: r.RG16I,
|
|
9629
|
+
[W.RED_INTEGER]: r.R16I
|
|
9630
9630
|
},
|
|
9631
9631
|
[nt.UNSIGNED_INT]: {
|
|
9632
|
-
[
|
|
9633
|
-
[
|
|
9634
|
-
[
|
|
9635
|
-
[
|
|
9636
|
-
[
|
|
9632
|
+
[W.RGBA_INTEGER]: r.RGBA32UI,
|
|
9633
|
+
[W.RGB_INTEGER]: r.RGB32UI,
|
|
9634
|
+
[W.RG_INTEGER]: r.RG32UI,
|
|
9635
|
+
[W.RED_INTEGER]: r.R32UI,
|
|
9636
|
+
[W.DEPTH_COMPONENT]: r.DEPTH_COMPONENT24
|
|
9637
9637
|
},
|
|
9638
9638
|
[nt.INT]: {
|
|
9639
|
-
[
|
|
9640
|
-
[
|
|
9641
|
-
[
|
|
9642
|
-
[
|
|
9639
|
+
[W.RGBA_INTEGER]: r.RGBA32I,
|
|
9640
|
+
[W.RGB_INTEGER]: r.RGB32I,
|
|
9641
|
+
[W.RG_INTEGER]: r.RG32I,
|
|
9642
|
+
[W.RED_INTEGER]: r.R32I
|
|
9643
9643
|
},
|
|
9644
9644
|
[nt.FLOAT]: {
|
|
9645
|
-
[
|
|
9646
|
-
[
|
|
9647
|
-
[
|
|
9648
|
-
[
|
|
9649
|
-
[
|
|
9645
|
+
[W.RGBA]: r.RGBA32F,
|
|
9646
|
+
[W.RGB]: r.RGB32F,
|
|
9647
|
+
[W.RG]: r.RG32F,
|
|
9648
|
+
[W.RED]: r.R32F,
|
|
9649
|
+
[W.DEPTH_COMPONENT]: r.DEPTH_COMPONENT32F
|
|
9650
9650
|
},
|
|
9651
9651
|
[nt.HALF_FLOAT]: {
|
|
9652
|
-
[
|
|
9653
|
-
[
|
|
9654
|
-
[
|
|
9655
|
-
[
|
|
9652
|
+
[W.RGBA]: r.RGBA16F,
|
|
9653
|
+
[W.RGB]: r.RGB16F,
|
|
9654
|
+
[W.RG]: r.RG16F,
|
|
9655
|
+
[W.RED]: r.R16F
|
|
9656
9656
|
},
|
|
9657
9657
|
[nt.UNSIGNED_SHORT_5_6_5]: {
|
|
9658
|
-
[
|
|
9658
|
+
[W.RGB]: r.RGB565
|
|
9659
9659
|
},
|
|
9660
9660
|
[nt.UNSIGNED_SHORT_4_4_4_4]: {
|
|
9661
|
-
[
|
|
9661
|
+
[W.RGBA]: r.RGBA4
|
|
9662
9662
|
},
|
|
9663
9663
|
[nt.UNSIGNED_SHORT_5_5_5_1]: {
|
|
9664
|
-
[
|
|
9664
|
+
[W.RGBA]: r.RGB5_A1
|
|
9665
9665
|
},
|
|
9666
9666
|
[nt.UNSIGNED_INT_2_10_10_10_REV]: {
|
|
9667
|
-
[
|
|
9668
|
-
[
|
|
9667
|
+
[W.RGBA]: r.RGB10_A2,
|
|
9668
|
+
[W.RGBA_INTEGER]: r.RGB10_A2UI
|
|
9669
9669
|
},
|
|
9670
9670
|
[nt.UNSIGNED_INT_10F_11F_11F_REV]: {
|
|
9671
|
-
[
|
|
9671
|
+
[W.RGB]: r.R11F_G11F_B10F
|
|
9672
9672
|
},
|
|
9673
9673
|
[nt.UNSIGNED_INT_5_9_9_9_REV]: {
|
|
9674
|
-
[
|
|
9674
|
+
[W.RGB]: r.RGB9_E5
|
|
9675
9675
|
},
|
|
9676
9676
|
[nt.UNSIGNED_INT_24_8]: {
|
|
9677
|
-
[
|
|
9677
|
+
[W.DEPTH_STENCIL]: r.DEPTH24_STENCIL8
|
|
9678
9678
|
},
|
|
9679
9679
|
[nt.FLOAT_32_UNSIGNED_INT_24_8_REV]: {
|
|
9680
|
-
[
|
|
9680
|
+
[W.DEPTH_STENCIL]: r.DEPTH32F_STENCIL8
|
|
9681
9681
|
}
|
|
9682
9682
|
} : t = {
|
|
9683
9683
|
[nt.UNSIGNED_BYTE]: {
|
|
9684
|
-
[
|
|
9685
|
-
[
|
|
9686
|
-
[
|
|
9687
|
-
[
|
|
9688
|
-
[
|
|
9684
|
+
[W.RGBA]: r.RGBA,
|
|
9685
|
+
[W.RGB]: r.RGB,
|
|
9686
|
+
[W.ALPHA]: r.ALPHA,
|
|
9687
|
+
[W.LUMINANCE]: r.LUMINANCE,
|
|
9688
|
+
[W.LUMINANCE_ALPHA]: r.LUMINANCE_ALPHA
|
|
9689
9689
|
},
|
|
9690
9690
|
[nt.UNSIGNED_SHORT_5_6_5]: {
|
|
9691
|
-
[
|
|
9691
|
+
[W.RGB]: r.RGB
|
|
9692
9692
|
},
|
|
9693
9693
|
[nt.UNSIGNED_SHORT_4_4_4_4]: {
|
|
9694
|
-
[
|
|
9694
|
+
[W.RGBA]: r.RGBA
|
|
9695
9695
|
},
|
|
9696
9696
|
[nt.UNSIGNED_SHORT_5_5_5_1]: {
|
|
9697
|
-
[
|
|
9697
|
+
[W.RGBA]: r.RGBA
|
|
9698
9698
|
}
|
|
9699
9699
|
}, t;
|
|
9700
9700
|
}
|
|
@@ -9845,15 +9845,15 @@ class _m {
|
|
|
9845
9845
|
setStyle(t, e) {
|
|
9846
9846
|
const i = this.gl;
|
|
9847
9847
|
if (e.mipmap && t.mipmap !== Mi.ON_MANUAL && i.generateMipmap(t.target), i.texParameteri(t.target, i.TEXTURE_WRAP_S, e.wrapMode), i.texParameteri(t.target, i.TEXTURE_WRAP_T, e.wrapMode), e.mipmap) {
|
|
9848
|
-
i.texParameteri(t.target, i.TEXTURE_MIN_FILTER, t.scaleMode ===
|
|
9848
|
+
i.texParameteri(t.target, i.TEXTURE_MIN_FILTER, t.scaleMode === Wi.LINEAR ? i.LINEAR_MIPMAP_LINEAR : i.NEAREST_MIPMAP_NEAREST);
|
|
9849
9849
|
const s = this.renderer.context.extensions.anisotropicFiltering;
|
|
9850
|
-
if (s && t.anisotropicLevel > 0 && t.scaleMode ===
|
|
9850
|
+
if (s && t.anisotropicLevel > 0 && t.scaleMode === Wi.LINEAR) {
|
|
9851
9851
|
const n = Math.min(t.anisotropicLevel, i.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));
|
|
9852
9852
|
i.texParameterf(t.target, s.TEXTURE_MAX_ANISOTROPY_EXT, n);
|
|
9853
9853
|
}
|
|
9854
9854
|
} else
|
|
9855
|
-
i.texParameteri(t.target, i.TEXTURE_MIN_FILTER, t.scaleMode ===
|
|
9856
|
-
i.texParameteri(t.target, i.TEXTURE_MAG_FILTER, t.scaleMode ===
|
|
9855
|
+
i.texParameteri(t.target, i.TEXTURE_MIN_FILTER, t.scaleMode === Wi.LINEAR ? i.LINEAR : i.NEAREST);
|
|
9856
|
+
i.texParameteri(t.target, i.TEXTURE_MAG_FILTER, t.scaleMode === Wi.LINEAR ? i.LINEAR : i.NEAREST);
|
|
9857
9857
|
}
|
|
9858
9858
|
destroy() {
|
|
9859
9859
|
this.renderer = null;
|
|
@@ -10031,7 +10031,7 @@ Object.defineProperties(Q, {
|
|
|
10031
10031
|
return ut.defaultOptions.wrapMode;
|
|
10032
10032
|
},
|
|
10033
10033
|
set(r) {
|
|
10034
|
-
|
|
10034
|
+
ft("7.1.0", "settings.WRAP_MODE is deprecated, use BaseTexture.defaultOptions.wrapMode"), ut.defaultOptions.wrapMode = r;
|
|
10035
10035
|
}
|
|
10036
10036
|
},
|
|
10037
10037
|
/**
|
|
@@ -10047,7 +10047,7 @@ Object.defineProperties(Q, {
|
|
|
10047
10047
|
return ut.defaultOptions.scaleMode;
|
|
10048
10048
|
},
|
|
10049
10049
|
set(r) {
|
|
10050
|
-
|
|
10050
|
+
ft("7.1.0", "settings.SCALE_MODE is deprecated, use BaseTexture.defaultOptions.scaleMode"), ut.defaultOptions.scaleMode = r;
|
|
10051
10051
|
}
|
|
10052
10052
|
},
|
|
10053
10053
|
/**
|
|
@@ -10063,7 +10063,7 @@ Object.defineProperties(Q, {
|
|
|
10063
10063
|
return ut.defaultOptions.mipmap;
|
|
10064
10064
|
},
|
|
10065
10065
|
set(r) {
|
|
10066
|
-
|
|
10066
|
+
ft("7.1.0", "settings.MIPMAP_TEXTURES is deprecated, use BaseTexture.defaultOptions.mipmap"), ut.defaultOptions.mipmap = r;
|
|
10067
10067
|
}
|
|
10068
10068
|
// MIPMAP_MODES.POW2,
|
|
10069
10069
|
},
|
|
@@ -10080,7 +10080,7 @@ Object.defineProperties(Q, {
|
|
|
10080
10080
|
return ut.defaultOptions.anisotropicLevel;
|
|
10081
10081
|
},
|
|
10082
10082
|
set(r) {
|
|
10083
|
-
|
|
10083
|
+
ft(
|
|
10084
10084
|
"7.1.0",
|
|
10085
10085
|
"settings.ANISOTROPIC_LEVEL is deprecated, use BaseTexture.defaultOptions.anisotropicLevel"
|
|
10086
10086
|
), ut.defaultOptions.anisotropicLevel = r;
|
|
@@ -10097,7 +10097,7 @@ Object.defineProperties(Q, {
|
|
|
10097
10097
|
*/
|
|
10098
10098
|
FILTER_RESOLUTION: {
|
|
10099
10099
|
get() {
|
|
10100
|
-
return
|
|
10100
|
+
return ft("7.1.0", "settings.FILTER_RESOLUTION is deprecated, use Filter.defaultResolution"), pe.defaultResolution;
|
|
10101
10101
|
},
|
|
10102
10102
|
set(r) {
|
|
10103
10103
|
pe.defaultResolution = r;
|
|
@@ -10114,7 +10114,7 @@ Object.defineProperties(Q, {
|
|
|
10114
10114
|
*/
|
|
10115
10115
|
FILTER_MULTISAMPLE: {
|
|
10116
10116
|
get() {
|
|
10117
|
-
return
|
|
10117
|
+
return ft("7.1.0", "settings.FILTER_MULTISAMPLE is deprecated, use Filter.defaultMultisample"), pe.defaultMultisample;
|
|
10118
10118
|
},
|
|
10119
10119
|
set(r) {
|
|
10120
10120
|
pe.defaultMultisample = r;
|
|
@@ -10134,7 +10134,7 @@ Object.defineProperties(Q, {
|
|
|
10134
10134
|
return Hr.defaultMaxTextures;
|
|
10135
10135
|
},
|
|
10136
10136
|
set(r) {
|
|
10137
|
-
|
|
10137
|
+
ft("7.1.0", "settings.SPRITE_MAX_TEXTURES is deprecated, use BatchRenderer.defaultMaxTextures"), Hr.defaultMaxTextures = r;
|
|
10138
10138
|
}
|
|
10139
10139
|
},
|
|
10140
10140
|
/**
|
|
@@ -10153,7 +10153,7 @@ Object.defineProperties(Q, {
|
|
|
10153
10153
|
return Hr.defaultBatchSize;
|
|
10154
10154
|
},
|
|
10155
10155
|
set(r) {
|
|
10156
|
-
|
|
10156
|
+
ft("7.1.0", "settings.SPRITE_BATCH_SIZE is deprecated, use BatchRenderer.defaultBatchSize"), Hr.defaultBatchSize = r;
|
|
10157
10157
|
}
|
|
10158
10158
|
},
|
|
10159
10159
|
/**
|
|
@@ -10170,7 +10170,7 @@ Object.defineProperties(Q, {
|
|
|
10170
10170
|
return Hr.canUploadSameBuffer;
|
|
10171
10171
|
},
|
|
10172
10172
|
set(r) {
|
|
10173
|
-
|
|
10173
|
+
ft("7.1.0", "settings.CAN_UPLOAD_SAME_BUFFER is deprecated, use BatchRenderer.canUploadSameBuffer"), Hr.canUploadSameBuffer = r;
|
|
10174
10174
|
}
|
|
10175
10175
|
},
|
|
10176
10176
|
/**
|
|
@@ -10187,7 +10187,7 @@ Object.defineProperties(Q, {
|
|
|
10187
10187
|
return Kr.defaultMode;
|
|
10188
10188
|
},
|
|
10189
10189
|
set(r) {
|
|
10190
|
-
|
|
10190
|
+
ft("7.1.0", "settings.GC_MODE is deprecated, use TextureGCSystem.defaultMode"), Kr.defaultMode = r;
|
|
10191
10191
|
}
|
|
10192
10192
|
},
|
|
10193
10193
|
/**
|
|
@@ -10204,7 +10204,7 @@ Object.defineProperties(Q, {
|
|
|
10204
10204
|
return Kr.defaultMaxIdle;
|
|
10205
10205
|
},
|
|
10206
10206
|
set(r) {
|
|
10207
|
-
|
|
10207
|
+
ft("7.1.0", "settings.GC_MAX_IDLE is deprecated, use TextureGCSystem.defaultMaxIdle"), Kr.defaultMaxIdle = r;
|
|
10208
10208
|
}
|
|
10209
10209
|
},
|
|
10210
10210
|
/**
|
|
@@ -10221,7 +10221,7 @@ Object.defineProperties(Q, {
|
|
|
10221
10221
|
return Kr.defaultCheckCountMax;
|
|
10222
10222
|
},
|
|
10223
10223
|
set(r) {
|
|
10224
|
-
|
|
10224
|
+
ft("7.1.0", "settings.GC_MAX_CHECK_COUNT is deprecated, use TextureGCSystem.defaultCheckCountMax"), Kr.defaultCheckCountMax = r;
|
|
10225
10225
|
}
|
|
10226
10226
|
},
|
|
10227
10227
|
/**
|
|
@@ -10238,7 +10238,7 @@ Object.defineProperties(Q, {
|
|
|
10238
10238
|
return Hi.defaultVertexPrecision;
|
|
10239
10239
|
},
|
|
10240
10240
|
set(r) {
|
|
10241
|
-
|
|
10241
|
+
ft("7.1.0", "settings.PRECISION_VERTEX is deprecated, use Program.defaultVertexPrecision"), Hi.defaultVertexPrecision = r;
|
|
10242
10242
|
}
|
|
10243
10243
|
},
|
|
10244
10244
|
/**
|
|
@@ -10255,7 +10255,7 @@ Object.defineProperties(Q, {
|
|
|
10255
10255
|
return Hi.defaultFragmentPrecision;
|
|
10256
10256
|
},
|
|
10257
10257
|
set(r) {
|
|
10258
|
-
|
|
10258
|
+
ft("7.1.0", "settings.PRECISION_FRAGMENT is deprecated, use Program.defaultFragmentPrecision"), Hi.defaultFragmentPrecision = r;
|
|
10259
10259
|
}
|
|
10260
10260
|
}
|
|
10261
10261
|
});
|
|
@@ -10601,7 +10601,7 @@ Object.defineProperties(Q, {
|
|
|
10601
10601
|
return me.targetFPMS;
|
|
10602
10602
|
},
|
|
10603
10603
|
set(r) {
|
|
10604
|
-
|
|
10604
|
+
ft("7.1.0", "settings.TARGET_FPMS is deprecated, use Ticker.targetFPMS"), me.targetFPMS = r;
|
|
10605
10605
|
}
|
|
10606
10606
|
}
|
|
10607
10607
|
});
|
|
@@ -10717,7 +10717,7 @@ Em.extension = {
|
|
|
10717
10717
|
name: "_multisample"
|
|
10718
10718
|
};
|
|
10719
10719
|
it.add(Em);
|
|
10720
|
-
class
|
|
10720
|
+
class Xw {
|
|
10721
10721
|
constructor(t) {
|
|
10722
10722
|
this.buffer = t || null, this.updateID = -1, this.byteLength = -1, this.refCount = 0;
|
|
10723
10723
|
}
|
|
@@ -10820,7 +10820,7 @@ class Im {
|
|
|
10820
10820
|
*/
|
|
10821
10821
|
createGLBuffer(t) {
|
|
10822
10822
|
const { CONTEXT_UID: e, gl: i } = this;
|
|
10823
|
-
return t._glBuffers[e] = new
|
|
10823
|
+
return t._glBuffers[e] = new Xw(i.createBuffer()), this.managedBuffers[t.id] = t, t.disposeRunner.add(this), t._glBuffers[e];
|
|
10824
10824
|
}
|
|
10825
10825
|
}
|
|
10826
10826
|
Im.extension = {
|
|
@@ -10906,7 +10906,7 @@ const ua = class yc extends kw {
|
|
|
10906
10906
|
"_multisample"
|
|
10907
10907
|
]
|
|
10908
10908
|
};
|
|
10909
|
-
this.setup(e), "useContextAlpha" in t && (
|
|
10909
|
+
this.setup(e), "useContextAlpha" in t && (ft("7.0.0", "options.useContextAlpha is deprecated, use options.premultipliedAlpha and options.backgroundAlpha instead"), t.premultipliedAlpha = t.useContextAlpha && t.useContextAlpha !== "notMultiplied", t.backgroundAlpha = t.useContextAlpha === !1 ? 1 : t.backgroundAlpha), this._plugin.rendererPlugins = yc.__plugins, this.options = t, this.startup.run(this.options);
|
|
10910
10910
|
}
|
|
10911
10911
|
/**
|
|
10912
10912
|
* Create renderer if WebGL is available. Overrideable
|
|
@@ -11024,7 +11024,7 @@ const ua = class yc extends kw {
|
|
|
11024
11024
|
* @deprecated since 7.0.0
|
|
11025
11025
|
*/
|
|
11026
11026
|
get clearBeforeRender() {
|
|
11027
|
-
return
|
|
11027
|
+
return ft("7.0.0", "renderer.clearBeforeRender has been deprecated, please use renderer.background.clearBeforeRender instead."), this.background.clearBeforeRender;
|
|
11028
11028
|
}
|
|
11029
11029
|
/**
|
|
11030
11030
|
* Pass-thru setting for the canvas' context `alpha` property. This is typically
|
|
@@ -11033,7 +11033,7 @@ const ua = class yc extends kw {
|
|
|
11033
11033
|
* @member {boolean}
|
|
11034
11034
|
*/
|
|
11035
11035
|
get useContextAlpha() {
|
|
11036
|
-
return
|
|
11036
|
+
return ft("7.0.0", "renderer.useContextAlpha has been deprecated, please use renderer.context.premultipliedAlpha instead."), this.context.useContextAlpha;
|
|
11037
11037
|
}
|
|
11038
11038
|
/**
|
|
11039
11039
|
* readonly drawing buffer preservation
|
|
@@ -11041,7 +11041,7 @@ const ua = class yc extends kw {
|
|
|
11041
11041
|
* @deprecated since 7.0.0
|
|
11042
11042
|
*/
|
|
11043
11043
|
get preserveDrawingBuffer() {
|
|
11044
|
-
return
|
|
11044
|
+
return ft("7.0.0", "renderer.preserveDrawingBuffer has been deprecated, we cannot truly know this unless pixi created the context"), this.context.preserveDrawingBuffer;
|
|
11045
11045
|
}
|
|
11046
11046
|
/**
|
|
11047
11047
|
* The background color to fill if not transparent
|
|
@@ -11049,10 +11049,10 @@ const ua = class yc extends kw {
|
|
|
11049
11049
|
* @deprecated since 7.0.0
|
|
11050
11050
|
*/
|
|
11051
11051
|
get backgroundColor() {
|
|
11052
|
-
return
|
|
11052
|
+
return ft("7.0.0", "renderer.backgroundColor has been deprecated, use renderer.background.color instead."), this.background.color;
|
|
11053
11053
|
}
|
|
11054
11054
|
set backgroundColor(t) {
|
|
11055
|
-
|
|
11055
|
+
ft("7.0.0", "renderer.backgroundColor has been deprecated, use renderer.background.color instead."), this.background.color = t;
|
|
11056
11056
|
}
|
|
11057
11057
|
/**
|
|
11058
11058
|
* The background color alpha. Setting this to 0 will make the canvas transparent.
|
|
@@ -11060,19 +11060,19 @@ const ua = class yc extends kw {
|
|
|
11060
11060
|
* @deprecated since 7.0.0
|
|
11061
11061
|
*/
|
|
11062
11062
|
get backgroundAlpha() {
|
|
11063
|
-
return
|
|
11063
|
+
return ft("7.0.0", "renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead."), this.background.alpha;
|
|
11064
11064
|
}
|
|
11065
11065
|
/**
|
|
11066
11066
|
* @deprecated since 7.0.0
|
|
11067
11067
|
*/
|
|
11068
11068
|
set backgroundAlpha(t) {
|
|
11069
|
-
|
|
11069
|
+
ft("7.0.0", "renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead."), this.background.alpha = t;
|
|
11070
11070
|
}
|
|
11071
11071
|
/**
|
|
11072
11072
|
* @deprecated since 7.0.0
|
|
11073
11073
|
*/
|
|
11074
11074
|
get powerPreference() {
|
|
11075
|
-
return
|
|
11075
|
+
return ft("7.0.0", "renderer.powerPreference has been deprecated, we can only know this if pixi creates the context"), this.context.powerPreference;
|
|
11076
11076
|
}
|
|
11077
11077
|
/**
|
|
11078
11078
|
* Useful function that returns a texture of the display object that can then be used to create sprites
|
|
@@ -11186,7 +11186,7 @@ class Mm extends to {
|
|
|
11186
11186
|
), this._load;
|
|
11187
11187
|
}
|
|
11188
11188
|
}
|
|
11189
|
-
class
|
|
11189
|
+
class Ww extends Mm {
|
|
11190
11190
|
/**
|
|
11191
11191
|
* @param source - Number of items in array or the collection
|
|
11192
11192
|
* of image URLs to use. Can also be resources, image elements, canvas, etc.
|
|
@@ -11662,7 +11662,7 @@ oc.push(
|
|
|
11662
11662
|
xc,
|
|
11663
11663
|
dh,
|
|
11664
11664
|
Vw,
|
|
11665
|
-
|
|
11665
|
+
Ww
|
|
11666
11666
|
);
|
|
11667
11667
|
class Da {
|
|
11668
11668
|
constructor() {
|
|
@@ -12519,8 +12519,8 @@ const Lm = class wc extends Nt {
|
|
|
12519
12519
|
}
|
|
12520
12520
|
};
|
|
12521
12521
|
Lm.defaultSortableChildren = !1;
|
|
12522
|
-
let
|
|
12523
|
-
|
|
12522
|
+
let gt = Lm;
|
|
12523
|
+
gt.prototype.containerUpdateTransform = gt.prototype.updateTransform;
|
|
12524
12524
|
Object.defineProperties(Q, {
|
|
12525
12525
|
/**
|
|
12526
12526
|
* Sets the default value for the container property 'sortableChildren'.
|
|
@@ -12533,15 +12533,15 @@ Object.defineProperties(Q, {
|
|
|
12533
12533
|
*/
|
|
12534
12534
|
SORTABLE_CHILDREN: {
|
|
12535
12535
|
get() {
|
|
12536
|
-
return
|
|
12536
|
+
return gt.defaultSortableChildren;
|
|
12537
12537
|
},
|
|
12538
12538
|
set(r) {
|
|
12539
|
-
|
|
12539
|
+
ft("7.1.0", "settings.SORTABLE_CHILDREN is deprecated, use Container.defaultSortableChildren"), gt.defaultSortableChildren = r;
|
|
12540
12540
|
}
|
|
12541
12541
|
}
|
|
12542
12542
|
});
|
|
12543
12543
|
const Tn = new at(), zw = new Uint16Array([0, 1, 2, 0, 2, 3]);
|
|
12544
|
-
class
|
|
12544
|
+
class Wt extends gt {
|
|
12545
12545
|
/** @param texture - The texture for this sprite. */
|
|
12546
12546
|
constructor(t) {
|
|
12547
12547
|
super(), this._anchor = new Vi(
|
|
@@ -12650,7 +12650,7 @@ class Xt extends yt {
|
|
|
12650
12650
|
*/
|
|
12651
12651
|
static from(t, e) {
|
|
12652
12652
|
const i = t instanceof et ? t : et.from(t, e);
|
|
12653
|
-
return new
|
|
12653
|
+
return new Wt(i);
|
|
12654
12654
|
}
|
|
12655
12655
|
/**
|
|
12656
12656
|
* If true PixiJS will Math.floor() x/y values when rendering, stopping pixel interpolation.
|
|
@@ -12826,7 +12826,7 @@ Nt.prototype._initCachedDisplayObject = function(r) {
|
|
|
12826
12826
|
this._cacheData.textureCacheId = l, ut.addToCache(h.baseTexture, l), et.addToCache(h, l);
|
|
12827
12827
|
const c = this.transform.localTransform.copyTo(Gm).invert().translate(-e.x, -e.y);
|
|
12828
12828
|
this.render = this._cacheData.originalRender, r.render(this, { renderTexture: h, clear: !0, transform: c, skipUpdateTransform: !1 }), r.framebuffer.blit(), r.projection.transform = a, r.renderTexture.bind(s, n, o), this.render = this._renderCached, this.updateTransform = this.displayObjectUpdateTransform, this.calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._mask = null, this.filterArea = null, this.alpha = t;
|
|
12829
|
-
const u = new
|
|
12829
|
+
const u = new Wt(h);
|
|
12830
12830
|
u.transform.worldTransform = this.transform.worldTransform, u.anchor.x = -(e.x / e.width), u.anchor.y = -(e.y / e.height), u.alpha = t, u._bounds = this._bounds, this._cacheData.sprite = u, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.enableTempParent(), this.updateTransform(), this.disableTempParent(null)), this.containsPoint = u.containsPoint.bind(u);
|
|
12831
12831
|
};
|
|
12832
12832
|
Nt.prototype._renderCachedCanvas = function(r) {
|
|
@@ -12848,7 +12848,7 @@ Nt.prototype._initCachedDisplayObjectCanvas = function(r) {
|
|
|
12848
12848
|
this._cacheData.textureCacheId = a, ut.addToCache(o.baseTexture, a), et.addToCache(o, a);
|
|
12849
12849
|
const h = Gm;
|
|
12850
12850
|
this.transform.localTransform.copyTo(h), h.invert(), h.tx -= t.x, h.ty -= t.y, this.renderCanvas = this._cacheData.originalRenderCanvas, r.render(this, { renderTexture: o, clear: !0, transform: h, skipUpdateTransform: !1 }), r.canvasContext.activeContext = i, r._projTransform = s, this.renderCanvas = this._renderCachedCanvas, this.updateTransform = this.displayObjectUpdateTransform, this.calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._mask = null, this.filterArea = null, this.alpha = e;
|
|
12851
|
-
const l = new
|
|
12851
|
+
const l = new Wt(o);
|
|
12852
12852
|
l.transform.worldTransform = this.transform.worldTransform, l.anchor.x = -(t.x / t.width), l.anchor.y = -(t.y / t.height), l.alpha = e, l._bounds = this._bounds, this._cacheData.sprite = l, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = r._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = l.containsPoint.bind(l);
|
|
12853
12853
|
};
|
|
12854
12854
|
Nt.prototype._calculateCachedBounds = function() {
|
|
@@ -12864,7 +12864,7 @@ Nt.prototype._cacheAsBitmapDestroy = function(r) {
|
|
|
12864
12864
|
this.cacheAsBitmap = !1, this.destroy(r);
|
|
12865
12865
|
};
|
|
12866
12866
|
Nt.prototype.name = null;
|
|
12867
|
-
|
|
12867
|
+
gt.prototype.getChildByName = function(r, t) {
|
|
12868
12868
|
for (let e = 0, i = this.children.length; e < i; e++)
|
|
12869
12869
|
if (this.children[e].name === r)
|
|
12870
12870
|
return this.children[e];
|
|
@@ -14269,7 +14269,7 @@ const Ff = {
|
|
|
14269
14269
|
Object.entries(Ff).forEach(([r, t]) => {
|
|
14270
14270
|
Object.defineProperty(Ff, r, {
|
|
14271
14271
|
get() {
|
|
14272
|
-
return
|
|
14272
|
+
return ft("7.1.0", `filters.${r} has moved to ${r}`), t;
|
|
14273
14273
|
}
|
|
14274
14274
|
});
|
|
14275
14275
|
});
|
|
@@ -15762,7 +15762,7 @@ const x2 = {
|
|
|
15762
15762
|
return this._internalInteractive ?? Nf(Ic.defaultEventMode);
|
|
15763
15763
|
},
|
|
15764
15764
|
set interactive(r) {
|
|
15765
|
-
|
|
15765
|
+
ft(
|
|
15766
15766
|
"7.2.0",
|
|
15767
15767
|
// eslint-disable-next-line max-len
|
|
15768
15768
|
"Setting interactive is deprecated, use eventMode = 'none'/'passive'/'auto'/'static'/'dynamic' instead."
|
|
@@ -16177,7 +16177,7 @@ const Fm = class Ac {
|
|
|
16177
16177
|
* @param options - The optional application and renderer parameters.
|
|
16178
16178
|
*/
|
|
16179
16179
|
constructor(t) {
|
|
16180
|
-
this.stage = new
|
|
16180
|
+
this.stage = new gt(), t = Object.assign({
|
|
16181
16181
|
forceCanvas: !1
|
|
16182
16182
|
}, t), this.renderer = Dw(t), Ac._plugins.forEach((e) => {
|
|
16183
16183
|
e.init.call(this, t);
|
|
@@ -16598,7 +16598,7 @@ const D2 = [
|
|
|
16598
16598
|
"font/woff",
|
|
16599
16599
|
"font/woff2"
|
|
16600
16600
|
], U2 = /^(--|-?[A-Z_])[0-9A-Z_-]*$/i;
|
|
16601
|
-
function
|
|
16601
|
+
function X2(r) {
|
|
16602
16602
|
const t = Jt.extname(r), e = Jt.basename(r, t).replace(/(-|_)/g, " ").toLowerCase().split(" ").map((n) => n.charAt(0).toUpperCase() + n.slice(1));
|
|
16603
16603
|
let i = e.length > 0;
|
|
16604
16604
|
for (const n of e)
|
|
@@ -16609,9 +16609,9 @@ function W2(r) {
|
|
|
16609
16609
|
let s = e.join(" ");
|
|
16610
16610
|
return i || (s = `"${s.replace(/[\\"]/g, "\\$&")}"`), s;
|
|
16611
16611
|
}
|
|
16612
|
-
const
|
|
16612
|
+
const W2 = /^[0-9A-Za-z%:/?#\[\]@!\$&'()\*\+,;=\-._~]*$/;
|
|
16613
16613
|
function Z2(r) {
|
|
16614
|
-
return
|
|
16614
|
+
return W2.test(r) ? r : encodeURI(r);
|
|
16615
16615
|
}
|
|
16616
16616
|
const V2 = {
|
|
16617
16617
|
extension: {
|
|
@@ -16626,7 +16626,7 @@ const V2 = {
|
|
|
16626
16626
|
var i, s, n;
|
|
16627
16627
|
const e = Q.ADAPTER.getFontFaceSet();
|
|
16628
16628
|
if (e) {
|
|
16629
|
-
const o = [], a = ((i = t.data) == null ? void 0 : i.family) ??
|
|
16629
|
+
const o = [], a = ((i = t.data) == null ? void 0 : i.family) ?? X2(r), h = ((n = (s = t.data) == null ? void 0 : s.weights) == null ? void 0 : n.filter((c) => D2.includes(c))) ?? ["normal"], l = t.data ?? {};
|
|
16630
16630
|
for (let c = 0; c < h.length; c++) {
|
|
16631
16631
|
const u = h[c], d = new FontFace(a, `url(${Z2(r)})`, {
|
|
16632
16632
|
...l,
|
|
@@ -16762,7 +16762,7 @@ class z2 {
|
|
|
16762
16762
|
});
|
|
16763
16763
|
}
|
|
16764
16764
|
}
|
|
16765
|
-
const
|
|
16765
|
+
const Xf = new z2();
|
|
16766
16766
|
function yo(r, t, e) {
|
|
16767
16767
|
r.resource.internal = !0;
|
|
16768
16768
|
const i = new et(r), s = () => {
|
|
@@ -16805,7 +16805,7 @@ const yh = {
|
|
|
16805
16805
|
var a;
|
|
16806
16806
|
const i = globalThis.createImageBitmap && this.config.preferCreateImageBitmap;
|
|
16807
16807
|
let s;
|
|
16808
|
-
i ? this.config.preferWorkers && await
|
|
16808
|
+
i ? this.config.preferWorkers && await Xf.isImageBitmapSupported() ? s = await Xf.loadImageBitmap(r) : s = await $2(r) : s = await new Promise((h, l) => {
|
|
16809
16809
|
const c = new Image();
|
|
16810
16810
|
c.crossOrigin = this.config.crossOrigin, c.src = r, c.complete ? h(c) : (c.onload = () => h(c), c.onerror = (u) => l(u));
|
|
16811
16811
|
});
|
|
@@ -17094,7 +17094,7 @@ class sT {
|
|
|
17094
17094
|
}
|
|
17095
17095
|
add(t, e, i, s, n) {
|
|
17096
17096
|
const o = [];
|
|
17097
|
-
typeof t == "string" || Array.isArray(t) && typeof t[0] == "string" ? (
|
|
17097
|
+
typeof t == "string" || Array.isArray(t) && typeof t[0] == "string" ? (ft("7.2.0", `Assets.add now uses an object instead of individual parameters.
|
|
17098
17098
|
Please use Assets.add({ alias, src, data, format, loadParser }) instead.`), o.push({ alias: t, src: e, data: i, format: s, loadParser: n })) : Array.isArray(t) ? o.push(...t) : o.push(t);
|
|
17099
17099
|
let a;
|
|
17100
17100
|
a = (h) => {
|
|
@@ -17580,7 +17580,7 @@ class nT {
|
|
|
17580
17580
|
return yh.config.preferWorkers;
|
|
17581
17581
|
}
|
|
17582
17582
|
set preferWorkers(t) {
|
|
17583
|
-
|
|
17583
|
+
ft("7.2.0", "Assets.prefersWorkers is deprecated, use Assets.setPreferences({ preferWorkers: true }) instead."), this.setPreferences({ preferWorkers: t });
|
|
17584
17584
|
}
|
|
17585
17585
|
/**
|
|
17586
17586
|
* General setter for preferences. This is a helper function to set preferences on all parsers.
|
|
@@ -17655,14 +17655,14 @@ const hT = {
|
|
|
17655
17655
|
remove: async (r) => r.filter((t) => t !== "webp")
|
|
17656
17656
|
};
|
|
17657
17657
|
it.add(hT);
|
|
17658
|
-
const
|
|
17658
|
+
const Wf = ["png", "jpg", "jpeg"], lT = {
|
|
17659
17659
|
extension: {
|
|
17660
17660
|
type: z.DetectionParser,
|
|
17661
17661
|
priority: -1
|
|
17662
17662
|
},
|
|
17663
17663
|
test: () => Promise.resolve(!0),
|
|
17664
|
-
add: async (r) => [...r, ...
|
|
17665
|
-
remove: async (r) => r.filter((t) => !
|
|
17664
|
+
add: async (r) => [...r, ...Wf],
|
|
17665
|
+
remove: async (r) => r.filter((t) => !Wf.includes(t))
|
|
17666
17666
|
};
|
|
17667
17667
|
it.add(lT);
|
|
17668
17668
|
const cT = "WorkerGlobalScope" in globalThis && globalThis instanceof globalThis.WorkerGlobalScope;
|
|
@@ -18021,13 +18021,13 @@ const Hf = [171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10], kT = 67305985, $e
|
|
|
18021
18021
|
[nt.FLOAT]: 4,
|
|
18022
18022
|
[nt.HALF_FLOAT]: 8
|
|
18023
18023
|
}, FT = {
|
|
18024
|
-
[
|
|
18025
|
-
[
|
|
18026
|
-
[
|
|
18027
|
-
[
|
|
18028
|
-
[
|
|
18029
|
-
[
|
|
18030
|
-
[
|
|
18024
|
+
[W.RGBA]: 4,
|
|
18025
|
+
[W.RGB]: 3,
|
|
18026
|
+
[W.RG]: 2,
|
|
18027
|
+
[W.RED]: 1,
|
|
18028
|
+
[W.LUMINANCE]: 1,
|
|
18029
|
+
[W.LUMINANCE_ALPHA]: 2,
|
|
18030
|
+
[W.ALPHA]: 1
|
|
18031
18031
|
}, NT = {
|
|
18032
18032
|
[nt.UNSIGNED_SHORT_4_4_4_4]: 2,
|
|
18033
18033
|
[nt.UNSIGNED_SHORT_5_5_5_1]: 2,
|
|
@@ -18114,14 +18114,14 @@ function OT(r, t) {
|
|
|
18114
18114
|
}
|
|
18115
18115
|
function BT(r) {
|
|
18116
18116
|
switch (r) {
|
|
18117
|
-
case
|
|
18118
|
-
return
|
|
18119
|
-
case
|
|
18120
|
-
return
|
|
18121
|
-
case
|
|
18122
|
-
return
|
|
18123
|
-
case
|
|
18124
|
-
return
|
|
18117
|
+
case W.RGBA:
|
|
18118
|
+
return W.RGBA_INTEGER;
|
|
18119
|
+
case W.RGB:
|
|
18120
|
+
return W.RGB_INTEGER;
|
|
18121
|
+
case W.RG:
|
|
18122
|
+
return W.RG_INTEGER;
|
|
18123
|
+
case W.RED:
|
|
18124
|
+
return W.RED_INTEGER;
|
|
18125
18125
|
default:
|
|
18126
18126
|
return r;
|
|
18127
18127
|
}
|
|
@@ -18153,7 +18153,7 @@ function UT(r, t, e) {
|
|
|
18153
18153
|
}
|
|
18154
18154
|
return i;
|
|
18155
18155
|
}
|
|
18156
|
-
const
|
|
18156
|
+
const XT = {
|
|
18157
18157
|
extension: {
|
|
18158
18158
|
type: z.LoadParser,
|
|
18159
18159
|
priority: ai.High
|
|
@@ -18178,8 +18178,8 @@ const WT = {
|
|
|
18178
18178
|
Array.isArray(r) ? r.forEach((t) => t.destroy(!0)) : r.destroy(!0);
|
|
18179
18179
|
}
|
|
18180
18180
|
};
|
|
18181
|
-
it.add(
|
|
18182
|
-
const
|
|
18181
|
+
it.add(XT);
|
|
18182
|
+
const WT = {
|
|
18183
18183
|
extension: {
|
|
18184
18184
|
type: z.LoadParser,
|
|
18185
18185
|
priority: ai.High
|
|
@@ -18208,7 +18208,7 @@ const XT = {
|
|
|
18208
18208
|
Array.isArray(r) ? r.forEach((t) => t.destroy(!0)) : r.destroy(!0);
|
|
18209
18209
|
}
|
|
18210
18210
|
};
|
|
18211
|
-
it.add(
|
|
18211
|
+
it.add(WT);
|
|
18212
18212
|
const ZT = {
|
|
18213
18213
|
extension: z.ResolveParser,
|
|
18214
18214
|
test: (r) => {
|
|
@@ -18339,7 +18339,7 @@ const $o = new lt(), VT = 4, Um = class Fn {
|
|
|
18339
18339
|
}), h = !0, e && ($o.width = e.width, $o.height = e.height, e = $o)));
|
|
18340
18340
|
const l = i.gl;
|
|
18341
18341
|
if (a) {
|
|
18342
|
-
if (s = a.baseTexture.resolution, e = e ?? a.frame, n = !1, o = a.baseTexture.alphaMode > 0 && a.baseTexture.format ===
|
|
18342
|
+
if (s = a.baseTexture.resolution, e = e ?? a.frame, n = !1, o = a.baseTexture.alphaMode > 0 && a.baseTexture.format === W.RGBA, !h) {
|
|
18343
18343
|
i.renderTexture.bind(a);
|
|
18344
18344
|
const f = a.framebuffer.glFramebuffers[i.CONTEXT_UID];
|
|
18345
18345
|
f.blitFramebuffer && i.framebuffer.bind(f.blitFramebuffer);
|
|
@@ -18386,7 +18386,7 @@ Um.extension = {
|
|
|
18386
18386
|
};
|
|
18387
18387
|
let HT = Um;
|
|
18388
18388
|
it.add(HT);
|
|
18389
|
-
const
|
|
18389
|
+
const Xa = {
|
|
18390
18390
|
build(r) {
|
|
18391
18391
|
const t = r.points;
|
|
18392
18392
|
let e, i, s, n, o, a;
|
|
@@ -18469,7 +18469,7 @@ function Yf(r, t = !1) {
|
|
|
18469
18469
|
}
|
|
18470
18470
|
}
|
|
18471
18471
|
}
|
|
18472
|
-
const
|
|
18472
|
+
const Xm = {
|
|
18473
18473
|
build(r) {
|
|
18474
18474
|
r.points = r.shape.points.slice();
|
|
18475
18475
|
},
|
|
@@ -18532,10 +18532,10 @@ const Wm = {
|
|
|
18532
18532
|
}
|
|
18533
18533
|
}, YT = {
|
|
18534
18534
|
build(r) {
|
|
18535
|
-
|
|
18535
|
+
Xa.build(r);
|
|
18536
18536
|
},
|
|
18537
18537
|
triangulate(r, t) {
|
|
18538
|
-
|
|
18538
|
+
Xa.triangulate(r, t);
|
|
18539
18539
|
}
|
|
18540
18540
|
};
|
|
18541
18541
|
var Be = /* @__PURE__ */ ((r) => (r.MITER = "miter", r.BEVEL = "bevel", r.ROUND = "round", r))(Be || {}), mr = /* @__PURE__ */ ((r) => (r.BUTT = "butt", r.ROUND = "round", r.SQUARE = "square", r))(mr || {});
|
|
@@ -18779,7 +18779,7 @@ function jT(r, t) {
|
|
|
18779
18779
|
);
|
|
18780
18780
|
for (let U = 1; U < u - 1; ++U) {
|
|
18781
18781
|
y = i[(U - 1) * 2], x = i[(U - 1) * 2 + 1], b = i[U * 2], _ = i[U * 2 + 1], v = i[(U + 1) * 2], T = i[(U + 1) * 2 + 1], C = -(x - _), E = y - b, L = Math.sqrt(C * C + E * E), C /= L, E /= L, C *= p, E *= p, I = -(_ - T), k = b - v, L = Math.sqrt(I * I + k * k), I /= L, k /= L, I *= p, k *= p;
|
|
18782
|
-
const Z = b - y, rt = x - _,
|
|
18782
|
+
const Z = b - y, rt = x - _, X = b - v, M = T - _, D = Z * X + rt * M, V = rt * X - M * Z, J = V < 0;
|
|
18783
18783
|
if (Math.abs(V) < 1e-3 * Math.abs(D)) {
|
|
18784
18784
|
c.push(
|
|
18785
18785
|
b - C * S,
|
|
@@ -18803,7 +18803,7 @@ function jT(r, t) {
|
|
|
18803
18803
|
));
|
|
18804
18804
|
continue;
|
|
18805
18805
|
}
|
|
18806
|
-
const j = (-C + y) * (-E + _) - (-C + b) * (-E + x),
|
|
18806
|
+
const j = (-C + y) * (-E + _) - (-C + b) * (-E + x), yt = (-I + v) * (-k + _) - (-I + b) * (-k + T), wt = (Z * yt - X * j) / V, pt = (M * j - rt * yt) / V, N = (wt - b) * (wt - b) + (pt - _) * (pt - _), K = b + (wt - b) * S, H = _ + (pt - _) * S, G = b - (wt - b) * R, ct = _ - (pt - _) * R, ot = Math.min(Z * Z + rt * rt, X * X + M * M), _t = J ? S : R, At = ot + _t * _t * m, Ee = N <= At;
|
|
18807
18807
|
let hi = n.join;
|
|
18808
18808
|
if (hi === Be.MITER && N / m > g && (hi = Be.BEVEL), Ee)
|
|
18809
18809
|
switch (hi) {
|
|
@@ -19019,13 +19019,13 @@ class Cu {
|
|
|
19019
19019
|
}
|
|
19020
19020
|
}
|
|
19021
19021
|
const yl = {
|
|
19022
|
-
[oe.POLY]:
|
|
19023
|
-
[oe.CIRC]:
|
|
19024
|
-
[oe.ELIP]:
|
|
19022
|
+
[oe.POLY]: Xm,
|
|
19023
|
+
[oe.CIRC]: Xa,
|
|
19024
|
+
[oe.ELIP]: Xa,
|
|
19025
19025
|
[oe.RECT]: KT,
|
|
19026
19026
|
[oe.RREC]: YT
|
|
19027
19027
|
}, $f = [], Qo = [];
|
|
19028
|
-
class
|
|
19028
|
+
class Wa {
|
|
19029
19029
|
/**
|
|
19030
19030
|
* @param {PIXI.Circle|PIXI.Ellipse|PIXI.Polygon|PIXI.Rectangle|PIXI.RoundedRectangle} shape - The shape object to draw.
|
|
19031
19031
|
* @param fillStyle - the width of the line to draw
|
|
@@ -19040,7 +19040,7 @@ class Xa {
|
|
|
19040
19040
|
* @returns - Cloned GraphicsData object
|
|
19041
19041
|
*/
|
|
19042
19042
|
clone() {
|
|
19043
|
-
return new
|
|
19043
|
+
return new Wa(
|
|
19044
19044
|
this.shape,
|
|
19045
19045
|
this.fillStyle,
|
|
19046
19046
|
this.lineStyle,
|
|
@@ -19052,7 +19052,7 @@ class Xa {
|
|
|
19052
19052
|
this.shape = null, this.holes.length = 0, this.holes = null, this.points.length = 0, this.points = null, this.lineStyle = null, this.fillStyle = null;
|
|
19053
19053
|
}
|
|
19054
19054
|
}
|
|
19055
|
-
const Ss = new at(),
|
|
19055
|
+
const Ss = new at(), Wm = class Zm extends z0 {
|
|
19056
19056
|
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
19057
19057
|
constructor() {
|
|
19058
19058
|
super(), this.closePointEps = 1e-4, this.boundsPadding = 0, this.uvsFloat32 = null, this.indicesUint16 = null, this.batchable = !1, this.points = [], this.colors = [], this.uvs = [], this.indices = [], this.textureIds = [], this.graphicsData = [], this.drawCalls = [], this.batchDirty = -1, this.batches = [], this.dirty = 0, this.cacheDirty = -1, this.clearDirty = 0, this.shapeIndex = 0, this._bounds = new Da(), this.boundsDirty = -1;
|
|
@@ -19097,7 +19097,7 @@ const Ss = new at(), Xm = class Zm extends z0 {
|
|
|
19097
19097
|
* @returns - Returns geometry for chaining.
|
|
19098
19098
|
*/
|
|
19099
19099
|
drawShape(t, e = null, i = null, s = null) {
|
|
19100
|
-
const n = new
|
|
19100
|
+
const n = new Wa(t, e, i, s);
|
|
19101
19101
|
return this.graphicsData.push(n), this.dirty++, this;
|
|
19102
19102
|
}
|
|
19103
19103
|
/**
|
|
@@ -19109,7 +19109,7 @@ const Ss = new at(), Xm = class Zm extends z0 {
|
|
|
19109
19109
|
drawHole(t, e = null) {
|
|
19110
19110
|
if (!this.graphicsData.length)
|
|
19111
19111
|
return null;
|
|
19112
|
-
const i = new
|
|
19112
|
+
const i = new Wa(t, null, null, e), s = this.graphicsData[this.graphicsData.length - 1];
|
|
19113
19113
|
return i.lineStyle = s.lineStyle, s.holes.push(i), this.dirty++, this;
|
|
19114
19114
|
}
|
|
19115
19115
|
/** Destroys the GraphicsGeometry object. */
|
|
@@ -19254,7 +19254,7 @@ const Ss = new at(), Xm = class Zm extends z0 {
|
|
|
19254
19254
|
* @param data
|
|
19255
19255
|
*/
|
|
19256
19256
|
processFill(t) {
|
|
19257
|
-
t.holes.length ?
|
|
19257
|
+
t.holes.length ? Xm.triangulate(t, this) : yl[t.type].triangulate(t, this);
|
|
19258
19258
|
}
|
|
19259
19259
|
/**
|
|
19260
19260
|
* Process line part of Graphics.
|
|
@@ -19358,8 +19358,8 @@ const Ss = new at(), Xm = class Zm extends z0 {
|
|
|
19358
19358
|
t[m] = (t[m] + u) * l, t[m + 1] = (t[m + 1] + d) * c;
|
|
19359
19359
|
}
|
|
19360
19360
|
};
|
|
19361
|
-
|
|
19362
|
-
let $T =
|
|
19361
|
+
Wm.BATCHABLE_SIZE = 100;
|
|
19362
|
+
let $T = Wm;
|
|
19363
19363
|
class bh {
|
|
19364
19364
|
constructor() {
|
|
19365
19365
|
this.color = 16777215, this.alpha = 1, this.texture = et.WHITE, this.matrix = null, this.visible = !1, this.reset();
|
|
@@ -19392,7 +19392,7 @@ class Eu extends bh {
|
|
|
19392
19392
|
super.reset(), this.color = 0, this.alignment = 0.5, this.width = 0, this.native = !1, this.cap = mr.BUTT, this.join = Be.MITER, this.miterLimit = 10;
|
|
19393
19393
|
}
|
|
19394
19394
|
}
|
|
19395
|
-
const bl = {}, Pc = class fa extends
|
|
19395
|
+
const bl = {}, Pc = class fa extends gt {
|
|
19396
19396
|
/**
|
|
19397
19397
|
* @param geometry - Geometry to use, if omitted will create a new GraphicsGeometry instance.
|
|
19398
19398
|
*/
|
|
@@ -19960,7 +19960,7 @@ class QT {
|
|
|
19960
19960
|
(!this.data || this.data.length !== e.length) && (this.data = new Float32Array(e.length)), this.uvMatrix.multiplyUvs(e, this.data), this._updateID++;
|
|
19961
19961
|
}
|
|
19962
19962
|
}
|
|
19963
|
-
const xl = new at(), Qf = new es(), Vm = class Hm extends
|
|
19963
|
+
const xl = new at(), Qf = new es(), Vm = class Hm extends gt {
|
|
19964
19964
|
/**
|
|
19965
19965
|
* @param geometry - The geometry the mesh will use.
|
|
19966
19966
|
* @param {PIXI.MeshMaterial} shader - The shader the mesh will use.
|
|
@@ -20142,7 +20142,7 @@ class Km extends wr {
|
|
|
20142
20142
|
*/
|
|
20143
20143
|
constructor(t, e, i) {
|
|
20144
20144
|
super();
|
|
20145
|
-
const s = new
|
|
20145
|
+
const s = new Xt(t), n = new Xt(e, !0), o = new Xt(i, !0, !0);
|
|
20146
20146
|
this.addAttribute("aVertexPosition", s, 2, !1, nt.FLOAT).addAttribute("aTextureCoord", n, 2, !1, nt.FLOAT).addIndex(o), this._updateId = -1;
|
|
20147
20147
|
}
|
|
20148
20148
|
/**
|
|
@@ -20362,13 +20362,13 @@ class qf {
|
|
|
20362
20362
|
initBuffers() {
|
|
20363
20363
|
const t = this.geometry;
|
|
20364
20364
|
let e = 0;
|
|
20365
|
-
this.indexBuffer = new
|
|
20365
|
+
this.indexBuffer = new Xt(Sv(this.size), !0, !0), t.addIndex(this.indexBuffer), this.dynamicStride = 0;
|
|
20366
20366
|
for (let o = 0; o < this.dynamicProperties.length; ++o) {
|
|
20367
20367
|
const a = this.dynamicProperties[o];
|
|
20368
20368
|
a.offset = e, e += a.size, this.dynamicStride += a.size;
|
|
20369
20369
|
}
|
|
20370
20370
|
const i = new ArrayBuffer(this.size * this.dynamicStride * 4 * 4);
|
|
20371
|
-
this.dynamicData = new Float32Array(i), this.dynamicDataUint32 = new Uint32Array(i), this.dynamicBuffer = new
|
|
20371
|
+
this.dynamicData = new Float32Array(i), this.dynamicDataUint32 = new Uint32Array(i), this.dynamicBuffer = new Xt(this.dynamicData, !1, !1);
|
|
20372
20372
|
let s = 0;
|
|
20373
20373
|
this.staticStride = 0;
|
|
20374
20374
|
for (let o = 0; o < this.staticProperties.length; ++o) {
|
|
@@ -20376,7 +20376,7 @@ class qf {
|
|
|
20376
20376
|
a.offset = s, s += a.size, this.staticStride += a.size;
|
|
20377
20377
|
}
|
|
20378
20378
|
const n = new ArrayBuffer(this.size * this.staticStride * 4 * 4);
|
|
20379
|
-
this.staticData = new Float32Array(n), this.staticDataUint32 = new Uint32Array(n), this.staticBuffer = new
|
|
20379
|
+
this.staticData = new Float32Array(n), this.staticDataUint32 = new Uint32Array(n), this.staticBuffer = new Xt(this.staticData, !0, !1);
|
|
20380
20380
|
for (let o = 0; o < this.dynamicProperties.length; ++o) {
|
|
20381
20381
|
const a = this.dynamicProperties[o];
|
|
20382
20382
|
t.addAttribute(
|
|
@@ -21527,7 +21527,7 @@ const aS = {
|
|
|
21527
21527
|
texture: !0,
|
|
21528
21528
|
children: !1,
|
|
21529
21529
|
baseTexture: !0
|
|
21530
|
-
}, jm = class kc extends
|
|
21530
|
+
}, jm = class kc extends Wt {
|
|
21531
21531
|
/**
|
|
21532
21532
|
* @param text - The string that you would like the text to display
|
|
21533
21533
|
* @param style - The style parameters
|
|
@@ -21550,7 +21550,7 @@ const aS = {
|
|
|
21550
21550
|
return cr.experimentalLetterSpacing;
|
|
21551
21551
|
}
|
|
21552
21552
|
static set experimentalLetterSpacing(t) {
|
|
21553
|
-
|
|
21553
|
+
ft(
|
|
21554
21554
|
"7.1.0",
|
|
21555
21555
|
"Text.experimentalLetterSpacing is deprecated, use TextMetrics.experimentalLetterSpacing"
|
|
21556
21556
|
), cr.experimentalLetterSpacing = t;
|
|
@@ -21929,7 +21929,7 @@ const $m = class Qm {
|
|
|
21929
21929
|
add(t) {
|
|
21930
21930
|
for (let e = 0, i = this.addHooks.length; e < i && !this.addHooks[e](t, this.queue); e++)
|
|
21931
21931
|
;
|
|
21932
|
-
if (t instanceof
|
|
21932
|
+
if (t instanceof gt)
|
|
21933
21933
|
for (let e = t.children.length - 1; e >= 0; e--)
|
|
21934
21934
|
this.add(t.children[e]);
|
|
21935
21935
|
return this;
|
|
@@ -21956,7 +21956,7 @@ Object.defineProperties(Q, {
|
|
|
21956
21956
|
return Fc.uploadsPerFrame;
|
|
21957
21957
|
},
|
|
21958
21958
|
set(r) {
|
|
21959
|
-
|
|
21959
|
+
ft("7.1.0", "settings.UPLOADS_PER_FRAME is deprecated, use prepare.BasePrepare.uploadsPerFrame"), Fc.uploadsPerFrame = r;
|
|
21960
21960
|
}
|
|
21961
21961
|
}
|
|
21962
21962
|
});
|
|
@@ -22865,7 +22865,7 @@ void main(void)\r
|
|
|
22865
22865
|
vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\r
|
|
22866
22866
|
}\r
|
|
22867
22867
|
`;
|
|
22868
|
-
const ip = [], rp = [], sp = [], ng = class og extends
|
|
22868
|
+
const ip = [], rp = [], sp = [], ng = class og extends gt {
|
|
22869
22869
|
/**
|
|
22870
22870
|
* @param text - A string that you would like the text to display.
|
|
22871
22871
|
* @param style - The style parameters.
|
|
@@ -22938,14 +22938,14 @@ const ip = [], rp = [], sp = [], ng = class og extends yt {
|
|
|
22938
22938
|
et.EMPTY,
|
|
22939
22939
|
{ program: Hi.from(MS, AS), uniforms: { uFWidth: 0 } }
|
|
22940
22940
|
), rt = ht.NORMAL_NPM);
|
|
22941
|
-
const
|
|
22942
|
-
|
|
22941
|
+
const X = new Lc(U, Z);
|
|
22942
|
+
X.blendMode = rt, F = {
|
|
22943
22943
|
index: 0,
|
|
22944
22944
|
indexCount: 0,
|
|
22945
22945
|
vertexCount: 0,
|
|
22946
22946
|
uvsCount: 0,
|
|
22947
22947
|
total: 0,
|
|
22948
|
-
mesh:
|
|
22948
|
+
mesh: X,
|
|
22949
22949
|
vertices: null,
|
|
22950
22950
|
uvs: null,
|
|
22951
22951
|
indices: null
|
|
@@ -22977,8 +22977,8 @@ const ip = [], rp = [], sp = [], ng = class og extends yt {
|
|
|
22977
22977
|
const S = n[P];
|
|
22978
22978
|
let R = S.position.x + T[S.line] * (this._align === "justify" ? S.prevSpaces : 1);
|
|
22979
22979
|
this._roundPixels && (R = Math.round(R));
|
|
22980
|
-
const F = R * i, O = S.position.y * i, U = S.texture, Z = E[U.baseTexture.uid], rt = U.frame,
|
|
22981
|
-
Z.indices[M * 6 + 0] = 0 + M * 4, Z.indices[M * 6 + 1] = 1 + M * 4, Z.indices[M * 6 + 2] = 2 + M * 4, Z.indices[M * 6 + 3] = 0 + M * 4, Z.indices[M * 6 + 4] = 2 + M * 4, Z.indices[M * 6 + 5] = 3 + M * 4, Z.vertices[M * 8 + 0] = F, Z.vertices[M * 8 + 1] = O, Z.vertices[M * 8 + 2] = F + rt.width * i, Z.vertices[M * 8 + 3] = O, Z.vertices[M * 8 + 4] = F + rt.width * i, Z.vertices[M * 8 + 5] = O + rt.height * i, Z.vertices[M * 8 + 6] = F, Z.vertices[M * 8 + 7] = O + rt.height * i, Z.uvs[M * 8 + 0] =
|
|
22980
|
+
const F = R * i, O = S.position.y * i, U = S.texture, Z = E[U.baseTexture.uid], rt = U.frame, X = U._uvs, M = Z.index++;
|
|
22981
|
+
Z.indices[M * 6 + 0] = 0 + M * 4, Z.indices[M * 6 + 1] = 1 + M * 4, Z.indices[M * 6 + 2] = 2 + M * 4, Z.indices[M * 6 + 3] = 0 + M * 4, Z.indices[M * 6 + 4] = 2 + M * 4, Z.indices[M * 6 + 5] = 3 + M * 4, Z.vertices[M * 8 + 0] = F, Z.vertices[M * 8 + 1] = O, Z.vertices[M * 8 + 2] = F + rt.width * i, Z.vertices[M * 8 + 3] = O, Z.vertices[M * 8 + 4] = F + rt.width * i, Z.vertices[M * 8 + 5] = O + rt.height * i, Z.vertices[M * 8 + 6] = F, Z.vertices[M * 8 + 7] = O + rt.height * i, Z.uvs[M * 8 + 0] = X.x0, Z.uvs[M * 8 + 1] = X.y0, Z.uvs[M * 8 + 2] = X.x1, Z.uvs[M * 8 + 3] = X.y1, Z.uvs[M * 8 + 4] = X.x2, Z.uvs[M * 8 + 5] = X.y2, Z.uvs[M * 8 + 6] = X.x3, Z.uvs[M * 8 + 7] = X.y3;
|
|
22982
22982
|
}
|
|
22983
22983
|
this._textWidth = p * i, this._textHeight = (s.y + t.lineHeight) * i;
|
|
22984
22984
|
for (const P in E) {
|
|
@@ -22986,7 +22986,7 @@ const ip = [], rp = [], sp = [], ng = class og extends yt {
|
|
|
22986
22986
|
if (this.anchor.x !== 0 || this.anchor.y !== 0) {
|
|
22987
22987
|
let U = 0;
|
|
22988
22988
|
const Z = this._textWidth * this.anchor.x, rt = this._textHeight * this.anchor.y;
|
|
22989
|
-
for (let
|
|
22989
|
+
for (let X = 0; X < S.total; X++)
|
|
22990
22990
|
S.vertices[U++] -= Z, S.vertices[U++] -= rt, S.vertices[U++] -= Z, S.vertices[U++] -= rt, S.vertices[U++] -= Z, S.vertices[U++] -= rt, S.vertices[U++] -= Z, S.vertices[U++] -= rt;
|
|
22991
22991
|
}
|
|
22992
22992
|
this._maxLineHeight = b * i;
|
|
@@ -23477,7 +23477,7 @@ Oc.defaultOptions = {
|
|
|
23477
23477
|
wordWrapWidth: 100
|
|
23478
23478
|
};
|
|
23479
23479
|
let Tl = Oc;
|
|
23480
|
-
const ea = class Gs extends
|
|
23480
|
+
const ea = class Gs extends Wt {
|
|
23481
23481
|
/**
|
|
23482
23482
|
* @param {string} [text] - Text contents
|
|
23483
23483
|
* @param {PIXI.HTMLTextStyle|PIXI.TextStyle|PIXI.ITextStyle} [style] - Style setting to use.
|
|
@@ -23767,7 +23767,7 @@ async function bo(r, t) {
|
|
|
23767
23767
|
return ga.set(e, i), i;
|
|
23768
23768
|
}
|
|
23769
23769
|
let Ks = null;
|
|
23770
|
-
const
|
|
23770
|
+
const XS = {
|
|
23771
23771
|
animationDuration: 500,
|
|
23772
23772
|
disableAnimationsThreshold: 500,
|
|
23773
23773
|
disableEdgesThreshold: 500,
|
|
@@ -23775,9 +23775,9 @@ const WS = {
|
|
|
23775
23775
|
fetchEventsInterval: 3e4,
|
|
23776
23776
|
theme: "dark"
|
|
23777
23777
|
};
|
|
23778
|
-
function
|
|
23778
|
+
function WS(r) {
|
|
23779
23779
|
return {
|
|
23780
|
-
...
|
|
23780
|
+
...XS,
|
|
23781
23781
|
...r
|
|
23782
23782
|
};
|
|
23783
23783
|
}
|
|
@@ -23785,7 +23785,7 @@ function ZS(r) {
|
|
|
23785
23785
|
VS(r);
|
|
23786
23786
|
}
|
|
23787
23787
|
function VS(r) {
|
|
23788
|
-
const t =
|
|
23788
|
+
const t = WS(r);
|
|
23789
23789
|
if (!Ks) {
|
|
23790
23790
|
Ks = t, Y.emit("configCreated", t);
|
|
23791
23791
|
return;
|
|
@@ -23913,9 +23913,9 @@ class KS {
|
|
|
23913
23913
|
var Va = { exports: {} };
|
|
23914
23914
|
Va.exports;
|
|
23915
23915
|
(function(r, t) {
|
|
23916
|
-
var e = 200, i = "__lodash_hash_undefined__", s = 1, n = 2, o = 9007199254740991, a = "[object Arguments]", h = "[object Array]", l = "[object AsyncFunction]", c = "[object Boolean]", u = "[object Date]", d = "[object Error]", f = "[object Function]", p = "[object GeneratorFunction]", m = "[object Map]", g = "[object Number]", y = "[object Null]", x = "[object Object]", b = "[object Promise]", _ = "[object Proxy]", v = "[object RegExp]", T = "[object Set]", C = "[object String]", E = "[object Symbol]", I = "[object Undefined]", k = "[object WeakMap]", L = "[object ArrayBuffer]", P = "[object DataView]", S = "[object Float32Array]", R = "[object Float64Array]", F = "[object Int8Array]", O = "[object Int16Array]", U = "[object Int32Array]", Z = "[object Uint8Array]", rt = "[object Uint8ClampedArray]",
|
|
23917
|
-
j[S] = j[R] = j[F] = j[O] = j[U] = j[Z] = j[rt] = j[
|
|
23918
|
-
var
|
|
23916
|
+
var e = 200, i = "__lodash_hash_undefined__", s = 1, n = 2, o = 9007199254740991, a = "[object Arguments]", h = "[object Array]", l = "[object AsyncFunction]", c = "[object Boolean]", u = "[object Date]", d = "[object Error]", f = "[object Function]", p = "[object GeneratorFunction]", m = "[object Map]", g = "[object Number]", y = "[object Null]", x = "[object Object]", b = "[object Promise]", _ = "[object Proxy]", v = "[object RegExp]", T = "[object Set]", C = "[object String]", E = "[object Symbol]", I = "[object Undefined]", k = "[object WeakMap]", L = "[object ArrayBuffer]", P = "[object DataView]", S = "[object Float32Array]", R = "[object Float64Array]", F = "[object Int8Array]", O = "[object Int16Array]", U = "[object Int32Array]", Z = "[object Uint8Array]", rt = "[object Uint8ClampedArray]", X = "[object Uint16Array]", M = "[object Uint32Array]", D = /[\\^$.*+?()[\]{}|]/g, V = /^\[object .+?Constructor\]$/, J = /^(?:0|[1-9]\d*)$/, j = {};
|
|
23917
|
+
j[S] = j[R] = j[F] = j[O] = j[U] = j[Z] = j[rt] = j[X] = j[M] = !0, j[a] = j[h] = j[L] = j[c] = j[P] = j[u] = j[d] = j[f] = j[m] = j[g] = j[x] = j[v] = j[T] = j[C] = j[k] = !1;
|
|
23918
|
+
var yt = typeof si == "object" && si && si.Object === Object && si, wt = typeof self == "object" && self && self.Object === Object && self, pt = yt || wt || Function("return this")(), N = t && !t.nodeType && t, K = N && !0 && r && !r.nodeType && r, H = K && K.exports === N, G = H && yt.process, ct = function() {
|
|
23919
23919
|
try {
|
|
23920
23920
|
return G && G.binding && G.binding("util");
|
|
23921
23921
|
} catch {
|
|
@@ -23972,12 +23972,12 @@ Va.exports;
|
|
|
23972
23972
|
B[++A] = q;
|
|
23973
23973
|
}), B;
|
|
23974
23974
|
}
|
|
23975
|
-
var l1 = Array.prototype, c1 = Function.prototype, To = Object.prototype, Ph =
|
|
23975
|
+
var l1 = Array.prototype, c1 = Function.prototype, To = Object.prototype, Ph = pt["__core-js_shared__"], hd = c1.toString, li = To.hasOwnProperty, ld = function() {
|
|
23976
23976
|
var w = /[^.]+$/.exec(Ph && Ph.keys && Ph.keys.IE_PROTO || "");
|
|
23977
23977
|
return w ? "Symbol(src)_1." + w : "";
|
|
23978
23978
|
}(), cd = To.toString, u1 = RegExp(
|
|
23979
23979
|
"^" + hd.call(li).replace(D, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
|
|
23980
|
-
), ud = H ?
|
|
23980
|
+
), ud = H ? pt.Buffer : void 0, So = pt.Symbol, dd = pt.Uint8Array, fd = To.propertyIsEnumerable, d1 = l1.splice, Pr = So ? So.toStringTag : void 0, pd = Object.getOwnPropertySymbols, f1 = ud ? ud.isBuffer : void 0, p1 = a1(Object.keys, Object), Lh = _s(pt, "DataView"), mn = _s(pt, "Map"), Gh = _s(pt, "Promise"), kh = _s(pt, "Set"), Fh = _s(pt, "WeakMap"), gn = _s(Object, "create"), m1 = kr(Lh), g1 = kr(mn), y1 = kr(Gh), b1 = kr(kh), x1 = kr(Fh), md = So ? So.prototype : void 0, Nh = md ? md.valueOf : void 0;
|
|
23981
23981
|
function Lr(w) {
|
|
23982
23982
|
var A = -1, B = w == null ? 0 : w.length;
|
|
23983
23983
|
for (this.clear(); ++A < B; ) {
|
|
@@ -24096,7 +24096,7 @@ Va.exports;
|
|
|
24096
24096
|
function U1(w) {
|
|
24097
24097
|
return this.__data__.has(w);
|
|
24098
24098
|
}
|
|
24099
|
-
function
|
|
24099
|
+
function X1(w, A) {
|
|
24100
24100
|
var B = this.__data__;
|
|
24101
24101
|
if (B instanceof Gi) {
|
|
24102
24102
|
var q = B.__data__;
|
|
@@ -24106,8 +24106,8 @@ Va.exports;
|
|
|
24106
24106
|
}
|
|
24107
24107
|
return B.set(w, A), this.size = B.size, this;
|
|
24108
24108
|
}
|
|
24109
|
-
rr.prototype.clear = D1, rr.prototype.delete = O1, rr.prototype.get = B1, rr.prototype.has = U1, rr.prototype.set =
|
|
24110
|
-
function
|
|
24109
|
+
rr.prototype.clear = D1, rr.prototype.delete = O1, rr.prototype.get = B1, rr.prototype.has = U1, rr.prototype.set = X1;
|
|
24110
|
+
function W1(w, A) {
|
|
24111
24111
|
var B = Ao(w), q = !B && rb(w), Ct = !B && !q && Dh(w), dt = !B && !q && !Ct && Sd(w), Dt = B || q || Ct || dt, Qt = Dt ? hi(w.length, String) : [], ne = Qt.length;
|
|
24112
24112
|
for (var Rt in w)
|
|
24113
24113
|
li.call(w, Rt) && !(Dt && // Safari 9 has enumerable `arguments.length` in strict mode.
|
|
@@ -24378,7 +24378,7 @@ Va.exports;
|
|
|
24378
24378
|
}
|
|
24379
24379
|
var Sd = ot ? Ah(ot) : K1;
|
|
24380
24380
|
function ob(w) {
|
|
24381
|
-
return sb(w) ?
|
|
24381
|
+
return sb(w) ? W1(w) : Y1(w);
|
|
24382
24382
|
}
|
|
24383
24383
|
function ab() {
|
|
24384
24384
|
return [];
|
|
@@ -25800,7 +25800,7 @@ const TC = {
|
|
|
25800
25800
|
ticker: me.shared,
|
|
25801
25801
|
allowPreserveDragOutside: !1
|
|
25802
25802
|
};
|
|
25803
|
-
class SC extends
|
|
25803
|
+
class SC extends gt {
|
|
25804
25804
|
/**
|
|
25805
25805
|
* @param {IViewportOptions} ViewportOptions
|
|
25806
25806
|
* @param {number} [options.screenWidth=window.innerWidth]
|
|
@@ -26512,7 +26512,7 @@ var Ge = {
|
|
|
26512
26512
|
}, ia = function(t) {
|
|
26513
26513
|
return Ot(t) || re(t);
|
|
26514
26514
|
}, fg = typeof ArrayBuffer == "function" && ArrayBuffer.isView || function() {
|
|
26515
|
-
}, ue = Array.isArray, Uc = /(?:-?\.?\d|\.)+/gi, pg = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g, Ns = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g, Sl = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi, mg = /[+-]=-?[.\d]+/, gg = /[^,'"\[\]\s]+/gi, RC = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i, Gt, mi,
|
|
26515
|
+
}, ue = Array.isArray, Uc = /(?:-?\.?\d|\.)+/gi, pg = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g, Ns = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g, Sl = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi, mg = /[+-]=-?[.\d]+/, gg = /[^,'"\[\]\s]+/gi, RC = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i, Gt, mi, Xc, Pu, ke = {}, Ha = {}, yg, bg = function(t) {
|
|
26516
26516
|
return (Ha = us(t, ke)) && Se;
|
|
26517
26517
|
}, Lu = function(t, e) {
|
|
26518
26518
|
return console.warn("Invalid property", t, "set to", e, "Missing plugin? gsap.registerPlugin()");
|
|
@@ -26531,7 +26531,7 @@ var Ge = {
|
|
|
26531
26531
|
kill: !1
|
|
26532
26532
|
}, LC = {
|
|
26533
26533
|
suppressEvents: !0
|
|
26534
|
-
}, Gu = {}, _r = [],
|
|
26534
|
+
}, Gu = {}, _r = [], Wc = {}, _g, Re = {}, Cl = {}, ap = 30, xa = [], ku = "", Fu = function(t) {
|
|
26535
26535
|
var e = t[0], i, s;
|
|
26536
26536
|
if (Ri(e) || Ot(e) || (t = [t]), !(i = (e._gsap || {}).harness)) {
|
|
26537
26537
|
for (s = xa.length; s-- && !xa[s].targetTest(e); )
|
|
@@ -26560,7 +26560,7 @@ var Ge = {
|
|
|
26560
26560
|
return s < i;
|
|
26561
26561
|
}, Ka = function() {
|
|
26562
26562
|
var t = _r.length, e = _r.slice(0), i, s;
|
|
26563
|
-
for (
|
|
26563
|
+
for (Wc = {}, _r.length = 0, i = 0; i < t; i++)
|
|
26564
26564
|
s = e[i], s && s._lazy && (s.render(s._lazy[0], s._lazy[1], !0)._lazy = 0);
|
|
26565
26565
|
}, wg = function(t, e, i, s) {
|
|
26566
26566
|
_r.length && !ce && Ka(), t.render(e, i, ce && e < 0 && (t._initted || t._startAt)), _r.length && !ce && Ka();
|
|
@@ -26689,12 +26689,12 @@ var Ge = {
|
|
|
26689
26689
|
return a && !s && (t._time *= o / t._dur), t._dur = o, t._tDur = n ? n < 0 ? 1e10 : ie(o * (n + 1) + t._rDelay * n) : o, a > 0 && !s && Th(t, t._tTime = t._tDur * a), t.parent && wh(t), i || ss(t.parent, t), t;
|
|
26690
26690
|
}, cp = function(t) {
|
|
26691
26691
|
return t instanceof fe ? ss(t) : on(t, t._dur);
|
|
26692
|
-
},
|
|
26692
|
+
}, XC = {
|
|
26693
26693
|
_start: 0,
|
|
26694
26694
|
endTime: io,
|
|
26695
26695
|
totalDuration: io
|
|
26696
26696
|
}, Oe = function r(t, e, i) {
|
|
26697
|
-
var s = t.labels, n = t._recent ||
|
|
26697
|
+
var s = t.labels, n = t._recent || XC, o = t.duration() >= Ze ? n.endTime(!1) : t._dur, a, h, l;
|
|
26698
26698
|
return re(e) && (isNaN(e) || e in s) ? (h = e.charAt(0), l = e.substr(-1) === "%", a = e.indexOf("="), h === "<" || h === ">" ? (a >= 0 && (e = e.replace(/=/, "")), (h === "<" ? n._start : n.endTime(n._repeat >= 0)) + (parseFloat(e.substr(1)) || 0) * (l ? (a < 0 ? n : i).totalDuration() / 100 : 1)) : a < 0 ? (e in s || (s[e] = o), s[e]) : (h = parseFloat(e.charAt(a - 1) + e.substr(a + 1)), l && i && (h = h / 100 * (ue(i) ? i[0] : i).totalDuration()), a > 1 ? r(t, e.substr(0, a - 1), i) + h : o + h)) : e == null ? o : +e;
|
|
26699
26699
|
}, jn = function(t, e, i) {
|
|
26700
26700
|
var s = Ji(e[1]), n = (s ? 2 : 1) + (t < 2 ? 0 : 1), o = e[n], a, h;
|
|
@@ -26710,7 +26710,7 @@ var Ge = {
|
|
|
26710
26710
|
return i < t ? t : i > e ? e : i;
|
|
26711
26711
|
}, le = function(t, e) {
|
|
26712
26712
|
return !re(t) || !(e = RC.exec(t)) ? "" : e[1];
|
|
26713
|
-
},
|
|
26713
|
+
}, WC = function(t, e, i) {
|
|
26714
26714
|
return Rr(i, function(s) {
|
|
26715
26715
|
return xo(t, e, s);
|
|
26716
26716
|
});
|
|
@@ -26722,7 +26722,7 @@ var Ge = {
|
|
|
26722
26722
|
return re(s) && !e || Mg(s, 1) ? (n = i).push.apply(n, Ve(s)) : i.push(s);
|
|
26723
26723
|
}) || i;
|
|
26724
26724
|
}, Ve = function(t, e, i) {
|
|
26725
|
-
return Mt && !e && Mt.selector ? Mt.selector(t) : re(t) && !i && (
|
|
26725
|
+
return Mt && !e && Mt.selector ? Mt.selector(t) : re(t) && !i && (Xc || !an()) ? Hc.call((e || Pu).querySelectorAll(t), 0) : ue(t) ? ZC(t, i) : Mg(t) ? Hc.call(t, 0) : t ? [t] : [];
|
|
26726
26726
|
}, Kc = function(t) {
|
|
26727
26727
|
return t = Ve(t)[0] || eo("Invalid scope") || {}, function(e) {
|
|
26728
26728
|
var i = t.current || t.nativeElement || t;
|
|
@@ -26752,7 +26752,7 @@ var Ge = {
|
|
|
26752
26752
|
}
|
|
26753
26753
|
for (g = o[m] = [], y = h ? Math.min(I, m) * c - 0.5 : s % I, x = I === Ze ? 0 : h ? m * u / I - 0.5 : s / I | 0, C = 0, E = Ze, T = 0; T < m; T++)
|
|
26754
26754
|
b = T % I - y, _ = x - (T / I | 0), g[T] = v = l ? Math.abs(l === "y" ? _ : b) : dg(b * b + _ * _), v > C && (C = v), v < E && (E = v);
|
|
26755
|
-
s === "random" && Rg(g), g.max = C - E, g.min = E, g.v = m = (parseFloat(e.amount) || parseFloat(e.each) * (I > m ? m - 1 : l ? l === "y" ? m / I : I : Math.max(I, m / I)) || 0) * (s === "edges" ? -1 : 1), g.b = m < 0 ? n - m : n, g.u = le(e.amount || e.each) || 0, i = i && m < 0 ?
|
|
26755
|
+
s === "random" && Rg(g), g.max = C - E, g.min = E, g.v = m = (parseFloat(e.amount) || parseFloat(e.each) * (I > m ? m - 1 : l ? l === "y" ? m / I : I : Math.max(I, m / I)) || 0) * (s === "edges" ? -1 : 1), g.b = m < 0 ? n - m : n, g.u = le(e.amount || e.each) || 0, i = i && m < 0 ? Xg(i) : i;
|
|
26756
26756
|
}
|
|
26757
26757
|
return m = (g[d] - g.min) / g.max || 0, ie(g.b + (i ? i(m) : m) * g.v) + g.u;
|
|
26758
26758
|
};
|
|
@@ -26966,7 +26966,7 @@ var Ge = {
|
|
|
26966
26966
|
return d / (1e3 / (g || 60));
|
|
26967
26967
|
},
|
|
26968
26968
|
wake: function() {
|
|
26969
|
-
yg && (!
|
|
26969
|
+
yg && (!Xc && Ru() && (mi = Xc = window, Pu = mi.document || {}, ke.gsap = Se, (mi.gsapVersions || (mi.gsapVersions = [])).push(Se.version), bg(Ha || mi.GreenSockGlobals || !mi.gsap && mi || {}), Ng.forEach(Dg)), c = typeof requestAnimationFrame < "u" && requestAnimationFrame, h && u.sleep(), l = c || function(g) {
|
|
26970
26970
|
return setTimeout(g, o - u.time * 1e3 + 1 | 0);
|
|
26971
26971
|
}, so = 1, p(2));
|
|
26972
26972
|
},
|
|
@@ -27002,11 +27002,11 @@ var Ge = {
|
|
|
27002
27002
|
}, eE = function(t) {
|
|
27003
27003
|
var e = (t + "").split("("), i = bt[e[0]];
|
|
27004
27004
|
return i && e.length > 1 && i.config ? i.config.apply(null, ~t.indexOf("{") ? [qC(e[1])] : tE(t).split(",").map(Tg)) : bt._CE && $C.test(t) ? bt._CE("", t) : i;
|
|
27005
|
-
},
|
|
27005
|
+
}, Xg = function(t) {
|
|
27006
27006
|
return function(e) {
|
|
27007
27007
|
return 1 - t(1 - e);
|
|
27008
27008
|
};
|
|
27009
|
-
},
|
|
27009
|
+
}, Wg = function r(t, e) {
|
|
27010
27010
|
for (var i = t._first, s; i; )
|
|
27011
27011
|
i instanceof fe ? r(i, e) : i.vars.yoyoEase && (!i._yoyo || !i._repeat) && i._yoyo !== e && (i.timeline ? r(i.timeline, e) : (s = i._ease, i._ease = i._yEase, i._yEase = s, i._yoyo = e)), i = i._next;
|
|
27012
27012
|
}, ns = function(t, e) {
|
|
@@ -27257,7 +27257,7 @@ var fe = /* @__PURE__ */ function(r) {
|
|
|
27257
27257
|
return this;
|
|
27258
27258
|
if (l = this._dur, h = this._tDur, I && (this._lock = 2, a = E ? l : -1e-4, this.render(a, !0), this.vars.repeatRefresh && !C && this.invalidate()), this._lock = 0, !this._ts && !y)
|
|
27259
27259
|
return this;
|
|
27260
|
-
|
|
27260
|
+
Wg(this, C);
|
|
27261
27261
|
}
|
|
27262
27262
|
}
|
|
27263
27263
|
if (this._hasPause && !this._forcing && this._lock < 2 && (x = UC(this, ie(a), ie(d)), x && (c -= d - (d = x._start))), this._tTime = c, this._time = d, this._act = !b, this._initted || (this._onUpdate = this.vars.onUpdate, this._initted = 1, this._zTime = s, a = 0), !a && d && !n && !m && (Le(this, "onStart"), this._tTime !== c))
|
|
@@ -27449,7 +27449,7 @@ var iE = function(t, e, i, s, n, o, a) {
|
|
|
27449
27449
|
return a;
|
|
27450
27450
|
}, gr, zc, Du = function r(t, e, i) {
|
|
27451
27451
|
var s = t.vars, n = s.ease, o = s.startAt, a = s.immediateRender, h = s.lazy, l = s.onUpdate, c = s.runBackwards, u = s.yoyoEase, d = s.keyframes, f = s.autoRevert, p = t._dur, m = t._startAt, g = t._targets, y = t.parent, x = y && y.data === "nested" ? y.vars.targets : g, b = t._overwrite === "auto" && !Au, _ = t.timeline, v, T, C, E, I, k, L, P, S, R, F, O, U;
|
|
27452
|
-
if (_ && (!d || !n) && (n = "none"), t._ease = ns(n, sn.ease), t._yEase = u ?
|
|
27452
|
+
if (_ && (!d || !n) && (n = "none"), t._ease = ns(n, sn.ease), t._yEase = u ? Xg(ns(u === !0 ? n : u, sn.ease)) : 0, u && t._yoyo && !t._repeat && (u = t._yEase, t._yEase = t._ease, t._ease = u), t._from = !_ && !!s.runBackwards, !_ || d && !s.stagger) {
|
|
27453
27453
|
if (P = g[0] ? rs(g[0]).harness : 0, O = P && s[P.prop], v = Ya(s, Gu), m && (m._zTime < 0 && m.progress(1), e < 0 && c && a && !f ? m.render(-1, !0) : m.revert(c && p ? ba : PC), m._lazy = 0), o) {
|
|
27454
27454
|
if (Er(t._startAt = Zt.set(g, Ke({
|
|
27455
27455
|
data: "isStart",
|
|
@@ -27484,12 +27484,12 @@ var iE = function(t, e, i, s, n, o, a) {
|
|
|
27484
27484
|
return;
|
|
27485
27485
|
}
|
|
27486
27486
|
for (t._pt = t._ptCache = 0, h = p && _e(h) || h && !p, T = 0; T < g.length; T++) {
|
|
27487
|
-
if (I = g[T], L = I._gsap || Fu(g)[T]._gsap, t._ptLookup[T] = R = {},
|
|
27487
|
+
if (I = g[T], L = I._gsap || Fu(g)[T]._gsap, t._ptLookup[T] = R = {}, Wc[L.id] && _r.length && Ka(), F = x === g ? T : x.indexOf(I), P && (S = new P()).init(I, O || v, t, F, x) !== !1 && (t._pt = E = new we(t._pt, I, S.name, 0, 1, S.render, S, 0, S.priority), S._props.forEach(function(Z) {
|
|
27488
27488
|
R[Z] = E;
|
|
27489
27489
|
}), S.priority && (k = 1)), !P || O)
|
|
27490
27490
|
for (C in v)
|
|
27491
27491
|
Re[C] && (S = Hg(C, v, t, F, I, x)) ? S.priority && (k = 1) : R[C] = E = Nu.call(t, I, C, "get", v[C], F, x, 0, s.stringFilter);
|
|
27492
|
-
t._op && t._op[T] && t.kill(I, t._op[T]), b && t._pt && (gr = t, Gt.killTweensOf(I, R, t.globalTime(e)), U = !t.parent, gr = 0), t._pt && h && (
|
|
27492
|
+
t._op && t._op[T] && t.kill(I, t._op[T]), b && t._pt && (gr = t, Gt.killTweensOf(I, R, t.globalTime(e)), U = !t.parent, gr = 0), t._pt && h && (Wc[L.id] = 1);
|
|
27493
27493
|
}
|
|
27494
27494
|
k && $g(t), t._onInit && t._onInit(t);
|
|
27495
27495
|
}
|
|
@@ -27600,7 +27600,7 @@ var Zt = /* @__PURE__ */ function(r) {
|
|
|
27600
27600
|
return this.totalTime(m * 100 + s, n, o);
|
|
27601
27601
|
if (d = ie(u % m), u === h ? (p = this._repeat, d = l) : (p = ~~(u / m), p && p === ie(u / m) && (d = l, p--), d > l && (d = l)), y = this._yoyo && p & 1, y && (_ = this._yEase, d = l - d), g = nn(this._tTime, m), d === a && !o && this._initted && p === g)
|
|
27602
27602
|
return this._tTime = u, this;
|
|
27603
|
-
p !== g && (b && this._yEase &&
|
|
27603
|
+
p !== g && (b && this._yEase && Wg(b, y), this.vars.repeatRefresh && !y && !this._lock && this._time !== m && this._initted && (this._lock = o = 1, this.render(ie(m * p), !0).invalidate()._lock = 0));
|
|
27604
27604
|
}
|
|
27605
27605
|
if (!this._initted) {
|
|
27606
27606
|
if (Ag(this, c ? s : d, o, n, u))
|
|
@@ -27951,7 +27951,7 @@ var os = [], _a = {}, fE = [], fp = 0, pE = 0, Ml = function(t) {
|
|
|
27951
27951
|
snap: Lg,
|
|
27952
27952
|
normalize: KC,
|
|
27953
27953
|
getUnit: le,
|
|
27954
|
-
clamp:
|
|
27954
|
+
clamp: WC,
|
|
27955
27955
|
splitColor: Og,
|
|
27956
27956
|
toArray: Ve,
|
|
27957
27957
|
selector: Kc,
|
|
@@ -28071,7 +28071,7 @@ bt.Circ;
|
|
|
28071
28071
|
* Club GSAP members, the agreement issued with that membership.
|
|
28072
28072
|
* @author: Jack Doyle, jack@greensock.com
|
|
28073
28073
|
*/
|
|
28074
|
-
var pp, yr, zs,
|
|
28074
|
+
var pp, yr, zs, Xu, Jr, mp, Wu, bE = function() {
|
|
28075
28075
|
return typeof window < "u";
|
|
28076
28076
|
}, $i = {}, Yr = 180 / Math.PI, js = Math.PI / 180, Cs = Math.atan2, gp = 1e8, Zu = /([A-Z])/g, xE = /(left|right|width|margin|padding|x)/i, _E = /[\s,\(]\S/, vi = {
|
|
28077
28077
|
autoAlpha: "opacity,visibility",
|
|
@@ -28129,7 +28129,7 @@ var pp, yr, zs, Wu, Jr, mp, Xu, bE = function() {
|
|
|
28129
28129
|
if (this.tfm) {
|
|
28130
28130
|
for (o in this.tfm)
|
|
28131
28131
|
s[o] = this.tfm[o];
|
|
28132
|
-
s.svg && (s.renderTransform(), e.setAttribute("data-svg-origin", this.svgo || "")), n =
|
|
28132
|
+
s.svg && (s.renderTransform(), e.setAttribute("data-svg-origin", this.svgo || "")), n = Wu(), (!n || !n.isStart) && !i[Ft] && (ey(i), s.zOrigin && i[Te] && (i[Te] += " " + s.zOrigin + "px", s.zOrigin = 0, s.renderTransform()), s.uncache = 1);
|
|
28133
28133
|
}
|
|
28134
28134
|
}, iy = function(t, e) {
|
|
28135
28135
|
var i = {
|
|
@@ -28157,7 +28157,7 @@ var pp, yr, zs, Wu, Jr, mp, Xu, bE = function() {
|
|
|
28157
28157
|
}, Qc = function() {
|
|
28158
28158
|
bE() && window.document && (pp = window, yr = pp.document, zs = yr.documentElement, Jr = $c("div") || {
|
|
28159
28159
|
style: {}
|
|
28160
|
-
}, $c("div"), Ft = hn(Ft), Te = Ft + "Origin", Jr.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0", ry = !!hn("perspective"),
|
|
28160
|
+
}, $c("div"), Ft = hn(Ft), Te = Ft + "Origin", Jr.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0", ry = !!hn("perspective"), Wu = Se.core.reverting, Xu = 1);
|
|
28161
28161
|
}, Pl = function r(t) {
|
|
28162
28162
|
var e = $c("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), i = this.parentNode, s = this.nextSibling, n = this.style.cssText, o;
|
|
28163
28163
|
if (zs.appendChild(e), e.appendChild(this), this.style.display = "block", t)
|
|
@@ -28217,7 +28217,7 @@ var pp, yr, zs, Wu, Jr, mp, Xu, bE = function() {
|
|
|
28217
28217
|
return h && f && (g = rs(m), g.time = Pe.time, g.width = m[c]), Ut(d ? p * n / u : p && n ? u / p * n : 0);
|
|
28218
28218
|
}, Ui = function(t, e, i, s) {
|
|
28219
28219
|
var n;
|
|
28220
|
-
return
|
|
28220
|
+
return Xu || Qc(), e in vi && e !== "transform" && (e = vi[e], ~e.indexOf(",") && (e = e.split(",")[0])), $i[e] && e !== "transform" ? (n = ao(t, s), n = e !== "transformOrigin" ? n[e] : n.svg ? n.origin : $a(Ii(t, Te)) + " " + n.zOrigin + "px") : (n = t.style[e], (!n || n === "auto" || s || ~(n + "").indexOf("calc(")) && (n = Ja[e] && Ja[e](t, e, i) || Ii(t, e) || vg(t, e) || (e === "opacity" ? 1 : 0))), i && !~(n + "").trim().indexOf(" ") ? Ir(t, e, n, i) + i : n;
|
|
28221
28221
|
}, GE = function(t, e, i, s) {
|
|
28222
28222
|
if (!i || i === "none") {
|
|
28223
28223
|
var n = hn(e, t, 1), o = n && Ii(t, n, 1);
|
|
@@ -28342,8 +28342,8 @@ var pp, yr, zs, Wu, Jr, mp, Xu, bE = function() {
|
|
|
28342
28342
|
var i = t._gsap || new Vg(t);
|
|
28343
28343
|
if ("x" in i && !e && !i.uncache)
|
|
28344
28344
|
return i;
|
|
28345
|
-
var s = t.style, n = i.scaleX < 0, o = "px", a = "deg", h = getComputedStyle(t), l = Ii(t, Te) || "0", c, u, d, f, p, m, g, y, x, b, _, v, T, C, E, I, k, L, P, S, R, F, O, U, Z, rt,
|
|
28346
|
-
return c = u = d = m = g = y = x = b = _ = 0, f = p = 1, i.svg = !!(t.getCTM && ny(t)), h.translate && ((h.translate !== "none" || h.scale !== "none" || h.rotate !== "none") && (s[Ft] = (h.translate !== "none" ? "translate3d(" + (h.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (h.rotate !== "none" ? "rotate(" + h.rotate + ") " : "") + (h.scale !== "none" ? "scale(" + h.scale.split(" ").join(",") + ") " : "") + (h[Ft] !== "none" ? h[Ft] : "")), s.scale = s.rotate = s.translate = "none"), C = Vu(t, i.svg), i.svg && (i.uncache ? (Z = t.getBBox(), l = i.xOrigin - Z.x + "px " + (i.yOrigin - Z.y) + "px", U = "") : U = !e && t.getAttribute("data-svg-origin"), qc(t, U || l, !!U || i.originIsAbsolute, i.smooth !== !1, C)), v = i.xOrigin || 0, T = i.yOrigin || 0, C !== oo && (L = C[0], P = C[1], S = C[2], R = C[3], c = F = C[4], u = O = C[5], C.length === 6 ? (f = Math.sqrt(L * L + P * P), p = Math.sqrt(R * R + S * S), m = L || P ? Cs(P, L) * Yr : 0, x = S || R ? Cs(S, R) * Yr + m : 0, x && (p *= Math.abs(Math.cos(x * js))), i.svg && (c -= v - (v * L + T * S), u -= T - (v * P + T * R))) : (j = C[6], V = C[7],
|
|
28345
|
+
var s = t.style, n = i.scaleX < 0, o = "px", a = "deg", h = getComputedStyle(t), l = Ii(t, Te) || "0", c, u, d, f, p, m, g, y, x, b, _, v, T, C, E, I, k, L, P, S, R, F, O, U, Z, rt, X, M, D, V, J, j;
|
|
28346
|
+
return c = u = d = m = g = y = x = b = _ = 0, f = p = 1, i.svg = !!(t.getCTM && ny(t)), h.translate && ((h.translate !== "none" || h.scale !== "none" || h.rotate !== "none") && (s[Ft] = (h.translate !== "none" ? "translate3d(" + (h.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (h.rotate !== "none" ? "rotate(" + h.rotate + ") " : "") + (h.scale !== "none" ? "scale(" + h.scale.split(" ").join(",") + ") " : "") + (h[Ft] !== "none" ? h[Ft] : "")), s.scale = s.rotate = s.translate = "none"), C = Vu(t, i.svg), i.svg && (i.uncache ? (Z = t.getBBox(), l = i.xOrigin - Z.x + "px " + (i.yOrigin - Z.y) + "px", U = "") : U = !e && t.getAttribute("data-svg-origin"), qc(t, U || l, !!U || i.originIsAbsolute, i.smooth !== !1, C)), v = i.xOrigin || 0, T = i.yOrigin || 0, C !== oo && (L = C[0], P = C[1], S = C[2], R = C[3], c = F = C[4], u = O = C[5], C.length === 6 ? (f = Math.sqrt(L * L + P * P), p = Math.sqrt(R * R + S * S), m = L || P ? Cs(P, L) * Yr : 0, x = S || R ? Cs(S, R) * Yr + m : 0, x && (p *= Math.abs(Math.cos(x * js))), i.svg && (c -= v - (v * L + T * S), u -= T - (v * P + T * R))) : (j = C[6], V = C[7], X = C[8], M = C[9], D = C[10], J = C[11], c = C[12], u = C[13], d = C[14], E = Cs(j, D), g = E * Yr, E && (I = Math.cos(-E), k = Math.sin(-E), U = F * I + X * k, Z = O * I + M * k, rt = j * I + D * k, X = F * -k + X * I, M = O * -k + M * I, D = j * -k + D * I, J = V * -k + J * I, F = U, O = Z, j = rt), E = Cs(-S, D), y = E * Yr, E && (I = Math.cos(-E), k = Math.sin(-E), U = L * I - X * k, Z = P * I - M * k, rt = S * I - D * k, J = R * k + J * I, L = U, P = Z, S = rt), E = Cs(P, L), m = E * Yr, E && (I = Math.cos(E), k = Math.sin(E), U = L * I + P * k, Z = F * I + O * k, P = P * I - L * k, O = O * I - F * k, L = U, F = Z), g && Math.abs(g) + Math.abs(m) > 359.9 && (g = m = 0, y = 180 - y), f = Ut(Math.sqrt(L * L + P * P + S * S)), p = Ut(Math.sqrt(O * O + j * j)), E = Cs(F, O), x = Math.abs(E) > 2e-4 ? E * Yr : 0, _ = J ? 1 / (J < 0 ? -J : J) : 0), i.svg && (U = t.getAttribute("transform"), i.forceCSS = t.setAttribute("transform", "") || !ay(Ii(t, Ft)), U && t.setAttribute("transform", U))), Math.abs(x) > 90 && Math.abs(x) < 270 && (n ? (f *= -1, x += m <= 0 ? 180 : -180, m += m <= 0 ? 180 : -180) : (p *= -1, x += x <= 0 ? 180 : -180)), e = e || i.uncache, i.x = c - ((i.xPercent = c && (!e && i.xPercent || (Math.round(t.offsetWidth / 2) === Math.round(-c) ? -50 : 0))) ? t.offsetWidth * i.xPercent / 100 : 0) + o, i.y = u - ((i.yPercent = u && (!e && i.yPercent || (Math.round(t.offsetHeight / 2) === Math.round(-u) ? -50 : 0))) ? t.offsetHeight * i.yPercent / 100 : 0) + o, i.z = d + o, i.scaleX = Ut(f), i.scaleY = Ut(p), i.rotation = Ut(m) + a, i.rotationX = Ut(g) + a, i.rotationY = Ut(y) + a, i.skewX = x + a, i.skewY = b + a, i.transformPerspective = _ + o, (i.zOrigin = parseFloat(l.split(" ")[2]) || !e && i.zOrigin || 0) && (s[Te] = $a(l)), i.xOffset = i.yOffset = 0, i.force3D = Ge.force3D, i.renderTransform = i.svg ? DE : ry ? hy : NE, i.uncache = 0, i;
|
|
28347
28347
|
}, $a = function(t) {
|
|
28348
28348
|
return (t = t.split(" "))[0] + " " + t[1];
|
|
28349
28349
|
}, Ll = function(t, e, i) {
|
|
@@ -28398,7 +28398,7 @@ var ly = {
|
|
|
28398
28398
|
},
|
|
28399
28399
|
init: function(t, e, i, s, n) {
|
|
28400
28400
|
var o = this._props, a = t.style, h = i.vars.startAt, l, c, u, d, f, p, m, g, y, x, b, _, v, T, C, E;
|
|
28401
|
-
|
|
28401
|
+
Xu || Qc(), this.styles = this.styles || iy(t), E = this.styles.props, this.tween = i;
|
|
28402
28402
|
for (m in e)
|
|
28403
28403
|
if (m !== "autoRound" && (c = e[m], !(Re[m] && Hg(m, e, i, s, t, n)))) {
|
|
28404
28404
|
if (f = typeof c, p = Ja[m], f === "function" && (c = c.call(i, s, t, n), f = typeof c), f === "string" && ~c.indexOf("random(") && (c = ro(c)), p)
|
|
@@ -28445,7 +28445,7 @@ var ly = {
|
|
|
28445
28445
|
C && $g(this);
|
|
28446
28446
|
},
|
|
28447
28447
|
render: function(t, e) {
|
|
28448
|
-
if (e.tween._time || !
|
|
28448
|
+
if (e.tween._time || !Wu())
|
|
28449
28449
|
for (var i = e._pt; i; )
|
|
28450
28450
|
i.r(t, i.d), i = i._next;
|
|
28451
28451
|
else
|
|
@@ -28490,10 +28490,10 @@ function tu(r, t) {
|
|
|
28490
28490
|
function UE(r, t, e) {
|
|
28491
28491
|
return uy(r, +tu(r) + t);
|
|
28492
28492
|
}
|
|
28493
|
-
function
|
|
28493
|
+
function XE(r, t, e) {
|
|
28494
28494
|
return UE(r, t * 1e3);
|
|
28495
28495
|
}
|
|
28496
|
-
function
|
|
28496
|
+
function WE(r) {
|
|
28497
28497
|
return (t) => {
|
|
28498
28498
|
const e = Math.trunc, i = e(t);
|
|
28499
28499
|
return i === 0 ? 0 : i;
|
|
@@ -28504,7 +28504,7 @@ function dy(r, t) {
|
|
|
28504
28504
|
}
|
|
28505
28505
|
function ZE(r, t, e) {
|
|
28506
28506
|
const i = dy(r, t) / 1e3;
|
|
28507
|
-
return
|
|
28507
|
+
return WE()(i);
|
|
28508
28508
|
}
|
|
28509
28509
|
const VE = (r) => ({
|
|
28510
28510
|
rowGap: 24,
|
|
@@ -28637,7 +28637,7 @@ function $E() {
|
|
|
28637
28637
|
function QE(r) {
|
|
28638
28638
|
if (tt.isDependency())
|
|
28639
28639
|
return [0, 1];
|
|
28640
|
-
const t = r, e =
|
|
28640
|
+
const t = r, e = XE(t, xb);
|
|
28641
28641
|
return [t, e];
|
|
28642
28642
|
}
|
|
28643
28643
|
function fy(r, t = !1) {
|
|
@@ -28719,7 +28719,7 @@ async function Un(r) {
|
|
|
28719
28719
|
}
|
|
28720
28720
|
var Qa = /* @__PURE__ */ ((r) => (r[r.Up = 0] = "Up", r[r.Down = 180] = "Down", r[r.Left = 270] = "Left", r[r.Right = 90] = "Right", r))(Qa || {});
|
|
28721
28721
|
function my() {
|
|
28722
|
-
const r = new
|
|
28722
|
+
const r = new Wt();
|
|
28723
28723
|
async function t(e) {
|
|
28724
28724
|
const { rotate: i = 0 } = e, s = {
|
|
28725
28725
|
size: e.size,
|
|
@@ -28747,7 +28747,7 @@ function iu(r, t) {
|
|
|
28747
28747
|
}
|
|
28748
28748
|
const eI = 8, iI = 2;
|
|
28749
28749
|
async function rI() {
|
|
28750
|
-
const r = await Bt(), t = await s1(), e = await jR(), { animate: i } = await py(), s = new
|
|
28750
|
+
const r = await Bt(), t = await s1(), e = await jR(), { animate: i } = await py(), s = new gt(), { element: n, render: o } = await my(), a = await Ku(), h = iu(g0, () => new at()), l = new iS(a, h);
|
|
28751
28751
|
let c = !1;
|
|
28752
28752
|
s.name = bb, s.addChild(n), s.addChild(l), t.addAll([n, l]), e.add(s);
|
|
28753
28753
|
async function u() {
|
|
@@ -28823,7 +28823,7 @@ async function oI(r) {
|
|
|
28823
28823
|
return await bo(nI, [r]);
|
|
28824
28824
|
}
|
|
28825
28825
|
function aI() {
|
|
28826
|
-
const r = new
|
|
28826
|
+
const r = new Wt(), t = new Wt();
|
|
28827
28827
|
async function e(i) {
|
|
28828
28828
|
const s = await oI(i);
|
|
28829
28829
|
return r.texture = s, t.texture = s, t.anchor.x = 1, t.scale.x = -1, {
|
|
@@ -28839,10 +28839,10 @@ function aI() {
|
|
|
28839
28839
|
}
|
|
28840
28840
|
async function Qi() {
|
|
28841
28841
|
const r = await Ku();
|
|
28842
|
-
return new
|
|
28842
|
+
return new Wt(r);
|
|
28843
28843
|
}
|
|
28844
28844
|
async function Yu() {
|
|
28845
|
-
const r = new
|
|
28845
|
+
const r = new gt(), t = await Qi(), { left: e, right: i, render: s } = await aI();
|
|
28846
28846
|
r.addChild(t), r.addChild(e), r.addChild(i);
|
|
28847
28847
|
async function n(h) {
|
|
28848
28848
|
const { width: l, x: c, visible: u } = a(h);
|
|
@@ -28871,7 +28871,7 @@ async function Yu() {
|
|
|
28871
28871
|
};
|
|
28872
28872
|
}
|
|
28873
28873
|
function Sh() {
|
|
28874
|
-
const r = new
|
|
28874
|
+
const r = new gt(), t = new Wt(), e = new Wt(), i = new Wt(), s = new Wt(), n = new Wt(), o = new Wt(), a = new Wt(), h = new Wt();
|
|
28875
28875
|
t.name = "border-corner-top-left", e.name = "border-corner-top-right", i.name = "border-corner-bottom-left", s.name = "border-corner-bottom-right", n.name = "border-corner-left", o.name = "border-corner-right", a.name = "border-corner-top", h.name = "border-corner-bottom", e.anchor.x = 1, e.scale.x = -1, i.anchor.y = 1, i.scale.y = -1, s.anchor.x = 1, s.scale.x = -1, s.anchor.y = 1, s.scale.y = -1, r.addChild(t), r.addChild(e), r.addChild(i), r.addChild(s), r.addChild(n), r.addChild(o), r.addChild(a), r.addChild(h);
|
|
28876
28876
|
async function l(p) {
|
|
28877
28877
|
const { radius: m = 0, color: g = "#fff", stroke: y, width: x, height: b } = p, _ = typeof m == "number", v = {
|
|
@@ -28926,7 +28926,7 @@ function Sh() {
|
|
|
28926
28926
|
};
|
|
28927
28927
|
}
|
|
28928
28928
|
async function Ch() {
|
|
28929
|
-
const r = await Bt(), t = new
|
|
28929
|
+
const r = await Bt(), t = new gt(), { element: e, render: i } = await Sh();
|
|
28930
28930
|
async function s({ selected: n, width: o, height: a }) {
|
|
28931
28931
|
if (!n)
|
|
28932
28932
|
return t.removeChild(e), t;
|
|
@@ -28950,7 +28950,7 @@ async function Ch() {
|
|
|
28950
28950
|
};
|
|
28951
28951
|
}
|
|
28952
28952
|
async function hI() {
|
|
28953
|
-
const r = await Bt(), t = new
|
|
28953
|
+
const r = await Bt(), t = new gt(), { element: e, render: i } = await Yu(), { element: s, render: n } = await Ch();
|
|
28954
28954
|
t.addChild(e), t.addChild(s);
|
|
28955
28955
|
async function o({ selected: a, width: h, height: l }) {
|
|
28956
28956
|
const {
|
|
@@ -28975,7 +28975,7 @@ async function hI() {
|
|
|
28975
28975
|
};
|
|
28976
28976
|
}
|
|
28977
28977
|
var lI = Object.defineProperty, cI = (r, t, e) => t in r ? lI(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e, En = (r, t, e) => (cI(r, typeof t != "symbol" ? t + "" : t, e), e);
|
|
28978
|
-
class uI extends
|
|
28978
|
+
class uI extends gt {
|
|
28979
28979
|
/**
|
|
28980
28980
|
* Creates a Circular ProgressBar.
|
|
28981
28981
|
* @param { number } options - Options object to use.
|
|
@@ -28989,7 +28989,7 @@ class uI extends yt {
|
|
|
28989
28989
|
* @param { 'butt' | 'round' | 'square' } options.cap - Line cap.
|
|
28990
28990
|
*/
|
|
28991
28991
|
constructor(t) {
|
|
28992
|
-
super(), En(this, "_progress", 0), En(this, "options"), En(this, "bgCircle", new Sr()), En(this, "fillCircle", new Sr()), En(this, "innerView", new
|
|
28992
|
+
super(), En(this, "_progress", 0), En(this, "options"), En(this, "bgCircle", new Sr()), En(this, "fillCircle", new Sr()), En(this, "innerView", new gt()), this.options = t, this.addChild(this.innerView), this.innerView.addChild(this.bgCircle, this.fillCircle), this.addBackground(), t.value && (this.progress = t.value);
|
|
28993
28993
|
}
|
|
28994
28994
|
addBackground() {
|
|
28995
28995
|
const {
|
|
@@ -29081,7 +29081,7 @@ async function vI(r) {
|
|
|
29081
29081
|
return await bo(_I, [r]);
|
|
29082
29082
|
}
|
|
29083
29083
|
async function wI({ cullAtZoomThreshold: r = !0 } = {}) {
|
|
29084
|
-
const t = await o1(), e = new
|
|
29084
|
+
const t = await o1(), e = new Wt();
|
|
29085
29085
|
r && t.add(e);
|
|
29086
29086
|
async function i(s) {
|
|
29087
29087
|
const n = await vI(s);
|
|
@@ -29167,7 +29167,7 @@ var gy = { exports: {} };
|
|
|
29167
29167
|
} else e(function() {
|
|
29168
29168
|
function k() {
|
|
29169
29169
|
var D;
|
|
29170
|
-
(D = F != -1 && O != -1 || F != -1 && U != -1 || O != -1 && U != -1) && ((D = F != O && F != U && O != U) || (h === null && (D = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent), h = !!D && (536 > parseInt(D[1], 10) || parseInt(D[1], 10) === 536 && 11 >= parseInt(D[2], 10))), D = h && (F == Z && O == Z && U == Z || F == rt && O == rt && U == rt || F ==
|
|
29170
|
+
(D = F != -1 && O != -1 || F != -1 && U != -1 || O != -1 && U != -1) && ((D = F != O && F != U && O != U) || (h === null && (D = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent), h = !!D && (536 > parseInt(D[1], 10) || parseInt(D[1], 10) === 536 && 11 >= parseInt(D[2], 10))), D = h && (F == Z && O == Z && U == Z || F == rt && O == rt && U == rt || F == X && O == X && U == X)), D = !D), D && (M.parentNode !== null && M.parentNode.removeChild(M), clearTimeout(b), T(y));
|
|
29171
29171
|
}
|
|
29172
29172
|
function L() {
|
|
29173
29173
|
if ((/* @__PURE__ */ new Date()).getTime() - v >= _) M.parentNode !== null && M.parentNode.removeChild(M), C(Error("" + _ + "ms timeout exceeded"));
|
|
@@ -29176,8 +29176,8 @@ var gy = { exports: {} };
|
|
|
29176
29176
|
(D === !0 || D === void 0) && (F = P.g.offsetWidth, O = S.g.offsetWidth, U = R.g.offsetWidth, k()), b = setTimeout(L, 50);
|
|
29177
29177
|
}
|
|
29178
29178
|
}
|
|
29179
|
-
var P = new i(x), S = new i(x), R = new i(x), F = -1, O = -1, U = -1, Z = -1, rt = -1,
|
|
29180
|
-
M.dir = "ltr", s(P, p(y, "sans-serif")), s(S, p(y, "serif")), s(R, p(y, "monospace")), M.appendChild(P.g), M.appendChild(S.g), M.appendChild(R.g), y.context.document.body.appendChild(M), Z = P.g.offsetWidth, rt = S.g.offsetWidth,
|
|
29179
|
+
var P = new i(x), S = new i(x), R = new i(x), F = -1, O = -1, U = -1, Z = -1, rt = -1, X = -1, M = document.createElement("div");
|
|
29180
|
+
M.dir = "ltr", s(P, p(y, "sans-serif")), s(S, p(y, "serif")), s(R, p(y, "monospace")), M.appendChild(P.g), M.appendChild(S.g), M.appendChild(R.g), y.context.document.body.appendChild(M), Z = P.g.offsetWidth, rt = S.g.offsetWidth, X = R.g.offsetWidth, L(), o(P, function(D) {
|
|
29181
29181
|
F = D, k();
|
|
29182
29182
|
}), s(P, p(y, '"' + y.family + '",sans-serif')), o(S, function(D) {
|
|
29183
29183
|
O = D, k();
|
|
@@ -29246,7 +29246,7 @@ async function Eh({ cullAtZoomThreshold: r = !0 } = {}) {
|
|
|
29246
29246
|
};
|
|
29247
29247
|
}
|
|
29248
29248
|
async function _y({ cullAtZoomThreshold: r }) {
|
|
29249
|
-
const t = await Bt(), e = new
|
|
29249
|
+
const t = await Bt(), e = new gt(), i = new gt(), { element: s, render: n } = await wI({ cullAtZoomThreshold: r }), { element: o, render: a } = await dI(), { element: h, render: l } = await Eh({ cullAtZoomThreshold: r }), { element: c, render: u } = await hI();
|
|
29250
29250
|
let d = !1, f = null, p;
|
|
29251
29251
|
i.addChild(h), e.addChild(c), e.addChild(i);
|
|
29252
29252
|
async function m(_) {
|
|
@@ -29342,9 +29342,9 @@ function ir(r) {
|
|
|
29342
29342
|
const { kind: t } = r;
|
|
29343
29343
|
switch (t) {
|
|
29344
29344
|
case "task-run":
|
|
29345
|
-
return
|
|
29345
|
+
return Xl(Pt) && Pt.id === r.id;
|
|
29346
29346
|
case "flow-run":
|
|
29347
|
-
return
|
|
29347
|
+
return Xl(Pt) && Pt.id === r.id;
|
|
29348
29348
|
case "artifact":
|
|
29349
29349
|
return db(Pt) && Pt.id === r.id;
|
|
29350
29350
|
case "artifacts":
|
|
@@ -29361,7 +29361,7 @@ function ir(r) {
|
|
|
29361
29361
|
}
|
|
29362
29362
|
}
|
|
29363
29363
|
function PI() {
|
|
29364
|
-
return Pt &&
|
|
29364
|
+
return Pt && Xl(Pt) ? Pt : null;
|
|
29365
29365
|
}
|
|
29366
29366
|
async function ju(r, {
|
|
29367
29367
|
cullAtZoomThreshold: t = !0,
|
|
@@ -29425,7 +29425,7 @@ async function wy(r, t) {
|
|
|
29425
29425
|
};
|
|
29426
29426
|
}
|
|
29427
29427
|
async function Ty() {
|
|
29428
|
-
const r = await Bt(), t = await n1(), e = new
|
|
29428
|
+
const r = await Bt(), t = await n1(), e = new gt(), { element: i, render: s } = await my(), { element: n, render: o } = await Yu(), { element: a, render: h } = await Sh();
|
|
29429
29429
|
t.add(e);
|
|
29430
29430
|
let l = !1;
|
|
29431
29431
|
e.eventMode = "static", e.cursor = "pointer", e.addChild(n), e.addChild(i), e.addChild(a), e.on("mouseover", u), e.on("mouseout", d);
|
|
@@ -29468,7 +29468,7 @@ async function Ty() {
|
|
|
29468
29468
|
};
|
|
29469
29469
|
}
|
|
29470
29470
|
async function Sy() {
|
|
29471
|
-
const r = await Bt(), t = await Ht(), e = new
|
|
29471
|
+
const r = await Bt(), t = await Ht(), e = new gt(), { element: i, render: s } = await Yu(), { element: n, render: o } = await Ch();
|
|
29472
29472
|
e.addChild(i), e.addChild(n);
|
|
29473
29473
|
async function a(l) {
|
|
29474
29474
|
const { background: c = "#fff" } = r.node(l), { nodeHeight: u, nodeRadius: d } = r, f = ir({ kind: l.kind, id: l.id }), p = h(l, d), m = l.state_type !== "RUNNING" || t.isDependency();
|
|
@@ -29496,8 +29496,8 @@ async function Sy() {
|
|
|
29496
29496
|
render: a
|
|
29497
29497
|
};
|
|
29498
29498
|
}
|
|
29499
|
-
var Cy = "Expected a function", Ip = NaN, GI = "[object Symbol]", kI = /^\s+|\s+$/g, FI = /^[-+]0x[0-9a-f]+$/i, NI = /^0b[01]+$/i, DI = /^0o[0-7]+$/i, OI = parseInt, BI = typeof si == "object" && si && si.Object === Object && si, UI = typeof self == "object" && self && self.Object === Object && self,
|
|
29500
|
-
return
|
|
29499
|
+
var Cy = "Expected a function", Ip = NaN, GI = "[object Symbol]", kI = /^\s+|\s+$/g, FI = /^[-+]0x[0-9a-f]+$/i, NI = /^0b[01]+$/i, DI = /^0o[0-7]+$/i, OI = parseInt, BI = typeof si == "object" && si && si.Object === Object && si, UI = typeof self == "object" && self && self.Object === Object && self, XI = BI || UI || Function("return this")(), WI = Object.prototype, ZI = WI.toString, VI = Math.max, HI = Math.min, Gl = function() {
|
|
29500
|
+
return XI.Date.now();
|
|
29501
29501
|
};
|
|
29502
29502
|
function KI(r, t, e) {
|
|
29503
29503
|
var i, s, n, o, a, h, l = 0, c = !1, u = !1, d = !0;
|
|
@@ -29628,10 +29628,10 @@ async function QI(r) {
|
|
|
29628
29628
|
}
|
|
29629
29629
|
async function Ay(r) {
|
|
29630
29630
|
const t = await QI(r);
|
|
29631
|
-
return new
|
|
29631
|
+
return new Wt(t);
|
|
29632
29632
|
}
|
|
29633
29633
|
async function My(r) {
|
|
29634
|
-
const t = new
|
|
29634
|
+
const t = new gt(), e = await Bt(), i = await Qi(), s = await Ay({ radius: e.eventRadiusDefault }), { element: n, render: o } = await Ch();
|
|
29635
29635
|
let a = !1;
|
|
29636
29636
|
t.addChild(i), t.addChild(s), t.addChild(n), t.eventMode = "static", t.cursor = "pointer", t.on("mouseenter", () => {
|
|
29637
29637
|
a || s.scale.set(1.5);
|
|
@@ -29663,7 +29663,7 @@ async function My(r) {
|
|
|
29663
29663
|
};
|
|
29664
29664
|
}
|
|
29665
29665
|
async function Ry() {
|
|
29666
|
-
const r = new
|
|
29666
|
+
const r = new gt(), t = await Bt(), e = await Qi(), i = await Ay({ radius: t.eventClusterRadiusDefault }), { element: s, render: n } = await Ch(), { element: o, render: a } = await Eh({ cullAtZoomThreshold: !1 });
|
|
29667
29667
|
let h = null, l = [], c = !1;
|
|
29668
29668
|
r.addChild(e), r.addChild(i), r.addChild(o), r.addChild(s), r.eventMode = "static", r.cursor = "pointer", r.on("mouseenter", () => {
|
|
29669
29669
|
c || i.scale.set(1.5);
|
|
@@ -30289,9 +30289,9 @@ const Bp = {
|
|
|
30289
30289
|
function Up(r) {
|
|
30290
30290
|
return r;
|
|
30291
30291
|
}
|
|
30292
|
-
var
|
|
30292
|
+
var Xp = Array.prototype.map, Wp = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
|
|
30293
30293
|
function OA(r) {
|
|
30294
|
-
var t = r.grouping === void 0 || r.thousands === void 0 ? Up : GA(
|
|
30294
|
+
var t = r.grouping === void 0 || r.thousands === void 0 ? Up : GA(Xp.call(r.grouping, Number), r.thousands + ""), e = r.currency === void 0 ? "" : r.currency[0] + "", i = r.currency === void 0 ? "" : r.currency[1] + "", s = r.decimal === void 0 ? "." : r.decimal + "", n = r.numerals === void 0 ? Up : kA(Xp.call(r.numerals, String)), o = r.percent === void 0 ? "%" : r.percent + "", a = r.minus === void 0 ? "−" : r.minus + "", h = r.nan === void 0 ? "NaN" : r.nan + "";
|
|
30295
30295
|
function l(u) {
|
|
30296
30296
|
u = oh(u);
|
|
30297
30297
|
var d = u.fill, f = u.align, p = u.sign, m = u.symbol, g = u.zero, y = u.width, x = u.comma, b = u.precision, _ = u.trim, v = u.type;
|
|
@@ -30305,7 +30305,7 @@ function OA(r) {
|
|
|
30305
30305
|
else {
|
|
30306
30306
|
L = +L;
|
|
30307
30307
|
var U = L < 0 || 1 / L < 0;
|
|
30308
|
-
if (L = isNaN(L) ? h : E(Math.abs(L), b), _ && (L = NA(L)), U && +L == 0 && p !== "+" && (U = !1), P = (U ? p === "(" ? p : a : p === "-" || p === "(" ? "" : p) + P, S = (v === "s" ?
|
|
30308
|
+
if (L = isNaN(L) ? h : E(Math.abs(L), b), _ && (L = NA(L)), U && +L == 0 && p !== "+" && (U = !1), P = (U ? p === "(" ? p : a : p === "-" || p === "(" ? "" : p) + P, S = (v === "s" ? Wp[8 + ky / 3] : "") + S + (U && p === "(" ? ")" : ""), I) {
|
|
30309
30309
|
for (R = -1, F = L.length; ++R < F; )
|
|
30310
30310
|
if (O = L.charCodeAt(R), 48 > O || O > 57) {
|
|
30311
30311
|
S = (O === 46 ? s + L.slice(R + 1) : L.slice(R)) + S, L = L.slice(0, R);
|
|
@@ -30336,7 +30336,7 @@ function OA(r) {
|
|
|
30336
30336
|
}, k;
|
|
30337
30337
|
}
|
|
30338
30338
|
function c(u, d) {
|
|
30339
|
-
var f = l((u = oh(u), u.type = "f", u)), p = Math.max(-8, Math.min(8, Math.floor(ln(d) / 3))) * 3, m = Math.pow(10, -p), g =
|
|
30339
|
+
var f = l((u = oh(u), u.type = "f", u)), p = Math.max(-8, Math.min(8, Math.floor(ln(d) / 3))) * 3, m = Math.pow(10, -p), g = Wp[8 + p / 3];
|
|
30340
30340
|
return function(y) {
|
|
30341
30341
|
return f(m * y) + g;
|
|
30342
30342
|
};
|
|
@@ -30358,10 +30358,10 @@ function BA(r) {
|
|
|
30358
30358
|
function UA(r) {
|
|
30359
30359
|
return Math.max(0, -ln(Math.abs(r)));
|
|
30360
30360
|
}
|
|
30361
|
-
function
|
|
30361
|
+
function XA(r, t) {
|
|
30362
30362
|
return Math.max(0, Math.max(-8, Math.min(8, Math.floor(ln(t) / 3))) * 3 - ln(Math.abs(r)));
|
|
30363
30363
|
}
|
|
30364
|
-
function
|
|
30364
|
+
function WA(r, t) {
|
|
30365
30365
|
return r = Math.abs(r), t = Math.abs(t) - r, Math.max(0, ln(t) - ln(r)) + 1;
|
|
30366
30366
|
}
|
|
30367
30367
|
function Dy(r, t) {
|
|
@@ -30453,14 +30453,14 @@ function jA(r, t, e, i) {
|
|
|
30453
30453
|
switch (i = oh(i ?? ",f"), i.type) {
|
|
30454
30454
|
case "s": {
|
|
30455
30455
|
var o = Math.max(Math.abs(r), Math.abs(t));
|
|
30456
|
-
return i.precision == null && !isNaN(n =
|
|
30456
|
+
return i.precision == null && !isNaN(n = XA(s, o)) && (i.precision = n), Ny(i, o);
|
|
30457
30457
|
}
|
|
30458
30458
|
case "":
|
|
30459
30459
|
case "e":
|
|
30460
30460
|
case "g":
|
|
30461
30461
|
case "p":
|
|
30462
30462
|
case "r": {
|
|
30463
|
-
i.precision == null && !isNaN(n =
|
|
30463
|
+
i.precision == null && !isNaN(n = WA(s, Math.max(Math.abs(r), Math.abs(t)))) && (i.precision = n - (i.type === "e"));
|
|
30464
30464
|
break;
|
|
30465
30465
|
}
|
|
30466
30466
|
case "f":
|
|
@@ -30616,8 +30616,8 @@ function xs(r) {
|
|
|
30616
30616
|
t.setUTCDate(t.getUTCDate() + e * 7);
|
|
30617
30617
|
}, (t, e) => (e - t) / ed);
|
|
30618
30618
|
}
|
|
30619
|
-
const
|
|
30620
|
-
|
|
30619
|
+
const Xy = xs(0), lh = xs(1), nM = xs(2), oM = xs(3), un = xs(4), aM = xs(5), hM = xs(6);
|
|
30620
|
+
Xy.range;
|
|
30621
30621
|
lh.range;
|
|
30622
30622
|
nM.range;
|
|
30623
30623
|
oM.range;
|
|
@@ -30717,7 +30717,7 @@ function fM(r) {
|
|
|
30717
30717
|
a: U,
|
|
30718
30718
|
A: Z,
|
|
30719
30719
|
b: rt,
|
|
30720
|
-
B:
|
|
30720
|
+
B: X,
|
|
30721
30721
|
c: null,
|
|
30722
30722
|
d: Jp,
|
|
30723
30723
|
e: Jp,
|
|
@@ -30727,7 +30727,7 @@ function fM(r) {
|
|
|
30727
30727
|
H: GM,
|
|
30728
30728
|
I: kM,
|
|
30729
30729
|
j: FM,
|
|
30730
|
-
L:
|
|
30730
|
+
L: Wy,
|
|
30731
30731
|
m: DM,
|
|
30732
30732
|
M: OM,
|
|
30733
30733
|
p: M,
|
|
@@ -30736,8 +30736,8 @@ function fM(r) {
|
|
|
30736
30736
|
s: t0,
|
|
30737
30737
|
S: BM,
|
|
30738
30738
|
u: UM,
|
|
30739
|
-
U:
|
|
30740
|
-
V:
|
|
30739
|
+
U: XM,
|
|
30740
|
+
V: WM,
|
|
30741
30741
|
w: ZM,
|
|
30742
30742
|
W: VM,
|
|
30743
30743
|
x: null,
|
|
@@ -30750,7 +30750,7 @@ function fM(r) {
|
|
|
30750
30750
|
a: V,
|
|
30751
30751
|
A: J,
|
|
30752
30752
|
b: j,
|
|
30753
|
-
B:
|
|
30753
|
+
B: yt,
|
|
30754
30754
|
c: null,
|
|
30755
30755
|
d: $p,
|
|
30756
30756
|
e: $p,
|
|
@@ -30764,7 +30764,7 @@ function fM(r) {
|
|
|
30764
30764
|
m: tR,
|
|
30765
30765
|
M: eR,
|
|
30766
30766
|
p: wt,
|
|
30767
|
-
q:
|
|
30767
|
+
q: pt,
|
|
30768
30768
|
Q: qp,
|
|
30769
30769
|
s: t0,
|
|
30770
30770
|
S: iR,
|
|
@@ -30883,7 +30883,7 @@ function fM(r) {
|
|
|
30883
30883
|
function rt(N) {
|
|
30884
30884
|
return h[N.getMonth()];
|
|
30885
30885
|
}
|
|
30886
|
-
function
|
|
30886
|
+
function X(N) {
|
|
30887
30887
|
return a[N.getMonth()];
|
|
30888
30888
|
}
|
|
30889
30889
|
function M(N) {
|
|
@@ -30901,13 +30901,13 @@ function fM(r) {
|
|
|
30901
30901
|
function j(N) {
|
|
30902
30902
|
return h[N.getUTCMonth()];
|
|
30903
30903
|
}
|
|
30904
|
-
function
|
|
30904
|
+
function yt(N) {
|
|
30905
30905
|
return a[N.getUTCMonth()];
|
|
30906
30906
|
}
|
|
30907
30907
|
function wt(N) {
|
|
30908
30908
|
return s[+(N.getUTCHours() >= 12)];
|
|
30909
30909
|
}
|
|
30910
|
-
function
|
|
30910
|
+
function pt(N) {
|
|
30911
30911
|
return 1 + ~~(N.getUTCMonth() / 3);
|
|
30912
30912
|
}
|
|
30913
30913
|
return {
|
|
@@ -31043,11 +31043,11 @@ function kM(r, t) {
|
|
|
31043
31043
|
function FM(r, t) {
|
|
31044
31044
|
return vt(1 + vo.count(tr(r), r), t, 3);
|
|
31045
31045
|
}
|
|
31046
|
-
function
|
|
31046
|
+
function Wy(r, t) {
|
|
31047
31047
|
return vt(r.getMilliseconds(), t, 3);
|
|
31048
31048
|
}
|
|
31049
31049
|
function NM(r, t) {
|
|
31050
|
-
return
|
|
31050
|
+
return Wy(r, t) + "000";
|
|
31051
31051
|
}
|
|
31052
31052
|
function DM(r, t) {
|
|
31053
31053
|
return vt(r.getMonth() + 1, t, 2);
|
|
@@ -31062,14 +31062,14 @@ function UM(r) {
|
|
|
31062
31062
|
var t = r.getDay();
|
|
31063
31063
|
return t === 0 ? 7 : t;
|
|
31064
31064
|
}
|
|
31065
|
-
function
|
|
31065
|
+
function XM(r, t) {
|
|
31066
31066
|
return vt(Ih.count(tr(r) - 1, r), t, 2);
|
|
31067
31067
|
}
|
|
31068
31068
|
function Zy(r) {
|
|
31069
31069
|
var t = r.getDay();
|
|
31070
31070
|
return t >= 4 || t === 0 ? cn(r) : cn.ceil(r);
|
|
31071
31071
|
}
|
|
31072
|
-
function
|
|
31072
|
+
function WM(r, t) {
|
|
31073
31073
|
return r = Zy(r), vt(cn.count(tr(r), r) + (tr(r).getDay() === 4), t, 2);
|
|
31074
31074
|
}
|
|
31075
31075
|
function ZM(r) {
|
|
@@ -31127,7 +31127,7 @@ function rR(r) {
|
|
|
31127
31127
|
return t === 0 ? 7 : t;
|
|
31128
31128
|
}
|
|
31129
31129
|
function sR(r, t) {
|
|
31130
|
-
return vt(
|
|
31130
|
+
return vt(Xy.count(fs(r) - 1, r), t, 2);
|
|
31131
31131
|
}
|
|
31132
31132
|
function Hy(r) {
|
|
31133
31133
|
var t = r.getUTCDay();
|
|
@@ -31211,16 +31211,16 @@ function Yy(r, t, e, i, s, n, o, a, h, l) {
|
|
|
31211
31211
|
function gR() {
|
|
31212
31212
|
return Dy.apply(Yy(uM, dM, tr, nd, Ih, vo, rd, id, Bs, Ky).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments);
|
|
31213
31213
|
}
|
|
31214
|
-
function
|
|
31214
|
+
function Xn(r, t, e) {
|
|
31215
31215
|
this.k = r, this.x = t, this.y = e;
|
|
31216
31216
|
}
|
|
31217
|
-
|
|
31218
|
-
constructor:
|
|
31217
|
+
Xn.prototype = {
|
|
31218
|
+
constructor: Xn,
|
|
31219
31219
|
scale: function(r) {
|
|
31220
|
-
return r === 1 ? this : new
|
|
31220
|
+
return r === 1 ? this : new Xn(this.k * r, this.x, this.y);
|
|
31221
31221
|
},
|
|
31222
31222
|
translate: function(r, t) {
|
|
31223
|
-
return r === 0 & t === 0 ? this : new
|
|
31223
|
+
return r === 0 & t === 0 ? this : new Xn(this.k, this.x + this.k * r, this.y + this.k * t);
|
|
31224
31224
|
},
|
|
31225
31225
|
apply: function(r) {
|
|
31226
31226
|
return [r[0] * this.k + this.x, r[1] * this.k + this.y];
|
|
@@ -31250,7 +31250,7 @@ Wn.prototype = {
|
|
|
31250
31250
|
return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
|
|
31251
31251
|
}
|
|
31252
31252
|
};
|
|
31253
|
-
|
|
31253
|
+
Xn.prototype;
|
|
31254
31254
|
function zy(r) {
|
|
31255
31255
|
return r.mode === "temporal" || r.mode === "left-aligned" ? yR(r) : bR(r);
|
|
31256
31256
|
}
|
|
@@ -31274,8 +31274,8 @@ function xR() {
|
|
|
31274
31274
|
}
|
|
31275
31275
|
let $s = null;
|
|
31276
31276
|
async function _R() {
|
|
31277
|
-
const r = await Li()
|
|
31278
|
-
e0(
|
|
31277
|
+
const r = await Li();
|
|
31278
|
+
e0(r.start_time), Y.on("layoutSettingsUpdated", () => e0(r.start_time));
|
|
31279
31279
|
}
|
|
31280
31280
|
function vR() {
|
|
31281
31281
|
$s = null;
|
|
@@ -31399,7 +31399,7 @@ async function r0(r) {
|
|
|
31399
31399
|
async function Jy({ isRoot: r, parentStartDate: t } = {}) {
|
|
31400
31400
|
const e = await Ht(), i = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), n = [];
|
|
31401
31401
|
let o = [];
|
|
31402
|
-
const a = new
|
|
31402
|
+
const a = new gt();
|
|
31403
31403
|
let h = null;
|
|
31404
31404
|
Y.on("scaleUpdated", () => u());
|
|
31405
31405
|
async function l(p) {
|
|
@@ -31444,7 +31444,7 @@ async function Jy({ isRoot: r, parentStartDate: t } = {}) {
|
|
|
31444
31444
|
update: u
|
|
31445
31445
|
};
|
|
31446
31446
|
}
|
|
31447
|
-
let
|
|
31447
|
+
let Wn = null, Qs = null;
|
|
31448
31448
|
async function wR() {
|
|
31449
31449
|
const r = await Kt(), t = await Fe(), e = await Ht(), i = await Li(), { element: s, render: n, update: o } = await Jy({ isRoot: !0 });
|
|
31450
31450
|
s.zIndex = Ib;
|
|
@@ -31457,16 +31457,16 @@ async function wR() {
|
|
|
31457
31457
|
}
|
|
31458
31458
|
const h = await wy(() => ({
|
|
31459
31459
|
nodeId: t.runId,
|
|
31460
|
-
since:
|
|
31461
|
-
until: i.end_time
|
|
31460
|
+
since: i.start_time,
|
|
31461
|
+
until: i.end_time ?? /* @__PURE__ */ new Date()
|
|
31462
31462
|
}), (l) => {
|
|
31463
31463
|
const c = Qs ? "eventDataUpdated" : "eventDataCreated";
|
|
31464
31464
|
Qs = l, Y.emit(c, Qs), a(l);
|
|
31465
31465
|
});
|
|
31466
|
-
Y.on("configUpdated", () => a()), Y.on("viewportMoved", () => o()), Y.on("layoutSettingsUpdated", () => a()),
|
|
31466
|
+
Y.on("configUpdated", () => a()), Y.on("viewportMoved", () => o()), Y.on("layoutSettingsUpdated", () => a()), Wn = h.stop, h.start();
|
|
31467
31467
|
}
|
|
31468
31468
|
function TR() {
|
|
31469
|
-
|
|
31469
|
+
Wn == null || Wn(), Wn = null, Qs = null;
|
|
31470
31470
|
}
|
|
31471
31471
|
async function SR() {
|
|
31472
31472
|
return Qs || await Ce("eventDataCreated");
|
|
@@ -31570,7 +31570,7 @@ async function n0(r) {
|
|
|
31570
31570
|
async function $y({ isRoot: r, parentStartDate: t } = {}) {
|
|
31571
31571
|
const e = await Ht(), i = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), n = [];
|
|
31572
31572
|
let o = [];
|
|
31573
|
-
const a = new
|
|
31573
|
+
const a = new gt();
|
|
31574
31574
|
let h = null;
|
|
31575
31575
|
async function l(p) {
|
|
31576
31576
|
if (p && (h = p), !h)
|
|
@@ -31622,7 +31622,7 @@ async function $y({ isRoot: r, parentStartDate: t } = {}) {
|
|
|
31622
31622
|
async function CR(r) {
|
|
31623
31623
|
const t = await Kt(), e = await Yt(), i = await Bt(), s = await Li();
|
|
31624
31624
|
let n = await ze();
|
|
31625
|
-
const o = new
|
|
31625
|
+
const o = new gt(), a = await Qi(), h = await Qi();
|
|
31626
31626
|
let l = null, c = !1, u = !1;
|
|
31627
31627
|
t.stage.addChild(h), o.addChild(a), a.eventMode = "static", a.cursor = "pointer", a.on("mouseover", () => {
|
|
31628
31628
|
c = !0, d();
|
|
@@ -31692,7 +31692,7 @@ function ER(r) {
|
|
|
31692
31692
|
async function IR(r) {
|
|
31693
31693
|
const t = await Kt(), e = await Yt(), i = await Bt(), s = await Li();
|
|
31694
31694
|
let n = await ze();
|
|
31695
|
-
const o = new
|
|
31695
|
+
const o = new gt(), a = await Qi(), h = await Qi();
|
|
31696
31696
|
let l = null, c = null, u = 0, d = 0, f = !1, p = !1;
|
|
31697
31697
|
o.visible = !1, o.addChild(h), o.addChild(a), a.eventMode = "static", a.cursor = "pointer", a.on("mouseover", () => {
|
|
31698
31698
|
f = !0, m();
|
|
@@ -31780,7 +31780,7 @@ async function IR(r) {
|
|
|
31780
31780
|
};
|
|
31781
31781
|
}
|
|
31782
31782
|
function Qy({ isRoot: r } = {}) {
|
|
31783
|
-
const t = new
|
|
31783
|
+
const t = new gt(), e = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
|
|
31784
31784
|
let s = null;
|
|
31785
31785
|
async function n(a, h) {
|
|
31786
31786
|
if (a && (s = a), !s)
|
|
@@ -31809,7 +31809,7 @@ function Qy({ isRoot: r } = {}) {
|
|
|
31809
31809
|
render: n
|
|
31810
31810
|
};
|
|
31811
31811
|
}
|
|
31812
|
-
class qy extends
|
|
31812
|
+
class qy extends gt {
|
|
31813
31813
|
updateTransform() {
|
|
31814
31814
|
this.sortableChildren && this.sortDirty && this.sortChildren(), this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha;
|
|
31815
31815
|
for (let t = 0, e = this.children.length; t < e; ++t)
|
|
@@ -31826,15 +31826,15 @@ class qy extends yt {
|
|
|
31826
31826
|
}
|
|
31827
31827
|
}
|
|
31828
31828
|
async function AR(r) {
|
|
31829
|
-
const t = new qy(), e = await Fe(), i = await Bt(), s = await Ht(), { element: n, render: o } = await Sy(), { element: a, render: h } = await Eh(), { element: l, render: c } = await Ty(), { element: u, render: d } = await Sh(), { element: f, render: p, getSize: m, stopWorker: g } = await od(), { element: y, render: x } = await Qy(), { element: b, render: _, update: v } = await Jy({ parentStartDate:
|
|
31829
|
+
const t = new qy(), e = await Fe(), i = await Bt(), s = await Ht(), { element: n, render: o } = await Sy(), { element: a, render: h } = await Eh(), { element: l, render: c } = await Ty(), { element: u, render: d } = await Sh(), { element: f, render: p, getSize: m, stopWorker: g } = await od(), { element: y, render: x } = await Qy(), { element: b, render: _, update: v } = await Jy({ parentStartDate: r.start_time }), { element: T, render: C, update: E } = await $y({ parentStartDate: r.start_time });
|
|
31830
31830
|
let I = !1, k = !1, L = r, P = !1;
|
|
31831
31831
|
t.sortableChildren = !0, u.zIndex = b0, n.zIndex = _0, a.zIndex = Sa, l.zIndex = Sa, f.zIndex = x0, b.zIndex = Rb, y.zIndex = Pb, T.zIndex = Lb, u.eventMode = "none", u.cursor = "default";
|
|
31832
31832
|
const { start: S, stop: R } = await cg(L.id, (N) => {
|
|
31833
|
-
k = !!N.artifacts && N.artifacts.length > 0, p(N),
|
|
31833
|
+
k = !!N.artifacts && N.artifacts.length > 0, p(N), X(N.states), D(N.artifacts), rt();
|
|
31834
31834
|
}), { start: F, stop: O } = await wy(() => ({
|
|
31835
31835
|
nodeId: L.id,
|
|
31836
|
-
since:
|
|
31837
|
-
until: L.end_time
|
|
31836
|
+
since: L.start_time,
|
|
31837
|
+
until: L.end_time ?? /* @__PURE__ */ new Date()
|
|
31838
31838
|
}), (N) => {
|
|
31839
31839
|
I = N.length > 0, M(N);
|
|
31840
31840
|
});
|
|
@@ -31844,13 +31844,13 @@ async function AR(r) {
|
|
|
31844
31844
|
wo(), wt();
|
|
31845
31845
|
});
|
|
31846
31846
|
async function U(N) {
|
|
31847
|
-
return L = N, await o(N), await j(), await
|
|
31847
|
+
return L = N, await o(N), await j(), await yt(), P && (await X(), await M(), await D(), await rt()), t;
|
|
31848
31848
|
}
|
|
31849
31849
|
async function Z() {
|
|
31850
31850
|
P ? await J() : await V();
|
|
31851
31851
|
}
|
|
31852
31852
|
async function rt() {
|
|
31853
|
-
const { background: N = "#fff" } = i.node(L), { width: K, height: H } = m(), { height: G } =
|
|
31853
|
+
const { background: N = "#fff" } = i.node(L), { width: K, height: H } = m(), { height: G } = pt(), { nodeBorderRadius: ct } = i, ot = 2;
|
|
31854
31854
|
u.position = { x: -ot, y: -ot };
|
|
31855
31855
|
const _t = tt.isTemporal() ? G + ot * 2 : H + ot * 2;
|
|
31856
31856
|
await d({
|
|
@@ -31861,10 +31861,10 @@ async function AR(r) {
|
|
|
31861
31861
|
color: N
|
|
31862
31862
|
});
|
|
31863
31863
|
}
|
|
31864
|
-
async function
|
|
31865
|
-
const { height: K } =
|
|
31864
|
+
async function X(N) {
|
|
31865
|
+
const { height: K } = pt(), { width: H } = n;
|
|
31866
31866
|
await x(N ?? void 0, {
|
|
31867
|
-
parentStartDate:
|
|
31867
|
+
parentStartDate: L.start_time,
|
|
31868
31868
|
width: H,
|
|
31869
31869
|
height: K
|
|
31870
31870
|
});
|
|
@@ -31875,7 +31875,7 @@ async function AR(r) {
|
|
|
31875
31875
|
return;
|
|
31876
31876
|
}
|
|
31877
31877
|
t.addChild(b);
|
|
31878
|
-
const { height: K } =
|
|
31878
|
+
const { height: K } = pt();
|
|
31879
31879
|
if (b.position = { x: 0, y: K - i.eventBottomMargin }, N) {
|
|
31880
31880
|
await _(N);
|
|
31881
31881
|
return;
|
|
@@ -31888,7 +31888,7 @@ async function AR(r) {
|
|
|
31888
31888
|
return;
|
|
31889
31889
|
}
|
|
31890
31890
|
t.addChild(T);
|
|
31891
|
-
const { eventTargetSize: K, flowStateSelectedBarHeight: H } = i, { height: G } =
|
|
31891
|
+
const { eventTargetSize: K, flowStateSelectedBarHeight: H } = i, { height: G } = pt(), ct = G - (I && !s.disableEvents ? K : H);
|
|
31892
31892
|
if (T.position = { x: 0, y: ct }, N) {
|
|
31893
31893
|
await C(N);
|
|
31894
31894
|
return;
|
|
@@ -31916,16 +31916,16 @@ async function AR(r) {
|
|
|
31916
31916
|
});
|
|
31917
31917
|
return G.x = H ? K / 2 : n.width + i.nodePadding, G.y = K / 2, G;
|
|
31918
31918
|
}
|
|
31919
|
-
async function
|
|
31919
|
+
async function yt() {
|
|
31920
31920
|
const N = await h(L.label), K = e.theme === "dark" ? i.textDefault : i.textInverse, H = i.nodePadding, G = l.x + l.width + H, ct = n.width + H, ot = n.width > G + N.width + H, _t = i.nodeHeight / 2 - N.height / 2, At = ot ? G : Math.max(ct, G);
|
|
31921
31921
|
return N.position = { x: At, y: _t }, N.tint = ot ? K : i.textDefault, N;
|
|
31922
31922
|
}
|
|
31923
31923
|
function wt() {
|
|
31924
|
-
P && (
|
|
31925
|
-
const N =
|
|
31924
|
+
P && (X(), M(), D(), rt());
|
|
31925
|
+
const N = pt();
|
|
31926
31926
|
t.emit("resized", N);
|
|
31927
31927
|
}
|
|
31928
|
-
function
|
|
31928
|
+
function pt() {
|
|
31929
31929
|
const N = m(), {
|
|
31930
31930
|
nodeHeight: K,
|
|
31931
31931
|
nodesPadding: H,
|
|
@@ -31966,8 +31966,8 @@ async function MR(r, t) {
|
|
|
31966
31966
|
return O.x = F ? R / 2 : l.width + i.nodePadding, O.y = R / 2, O;
|
|
31967
31967
|
}
|
|
31968
31968
|
async function T() {
|
|
31969
|
-
const S = await o(x.label), R = e.theme === "dark" ? i.textDefault : i.textInverse, F = i.nodePadding, O = u.x + u.width + F, U = l.width + F, Z = l.width > O + S.width + F, rt = i.nodeHeight / 2 - S.height / 2,
|
|
31970
|
-
return S.position = { x:
|
|
31969
|
+
const S = await o(x.label), R = e.theme === "dark" ? i.textDefault : i.textInverse, F = i.nodePadding, O = u.x + u.width + F, U = l.width + F, Z = l.width > O + S.width + F, rt = i.nodeHeight / 2 - S.height / 2, X = Z ? O : Math.max(U, O);
|
|
31970
|
+
return S.position = { x: X, y: rt }, S.tint = Z ? R : i.textDefault, S;
|
|
31971
31971
|
}
|
|
31972
31972
|
async function C() {
|
|
31973
31973
|
const { background: S = "#fff" } = i.node(x), { width: R, height: F } = m(), { height: O } = L(), { nodeBorderRadius: U } = i, Z = 2;
|
|
@@ -32052,7 +32052,7 @@ async function RR(r, t) {
|
|
|
32052
32052
|
}
|
|
32053
32053
|
function v() {
|
|
32054
32054
|
if (tt.isTemporal() && !o.disableArtifacts) {
|
|
32055
|
-
a || (a = new
|
|
32055
|
+
a || (a = new gt()), c.addChild(a);
|
|
32056
32056
|
return;
|
|
32057
32057
|
}
|
|
32058
32058
|
a && c.removeChild(a);
|
|
@@ -32089,7 +32089,7 @@ async function RR(r, t) {
|
|
|
32089
32089
|
}
|
|
32090
32090
|
function L(S) {
|
|
32091
32091
|
var Z;
|
|
32092
|
-
const R = S.end_time
|
|
32092
|
+
const R = S.end_time ?? /* @__PURE__ */ new Date(), F = (Z = S.artifacts) == null ? void 0 : Z.map((rt) => rt.type === "progress" ? `${rt.id}-${rt.data}` : rt.id).join("|"), O = !!p;
|
|
32093
32093
|
return [
|
|
32094
32094
|
S.state_type,
|
|
32095
32095
|
R.getTime(),
|
|
@@ -32161,7 +32161,7 @@ function o0({ gap: r = 0, minimum: t = 0 } = {}) {
|
|
|
32161
32161
|
function PR(r) {
|
|
32162
32162
|
throw new Error(`switch does not have case for value: ${r}`);
|
|
32163
32163
|
}
|
|
32164
|
-
const t1 = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEtlKG4pe3Rocm93IG5ldyBFcnJvcihgc3dpdGNoIGRvZXMgbm90IGhhdmUgY2FzZSBmb3IgdmFsdWU6ICR7bn1gKX1mdW5jdGlvbiBDbihuLGUpe3JldHVybiBuPT1udWxsfHxlPT1udWxsP05hTjpuPGU/LTE6bj5lPzE6bj49ZT8wOk5hTn1mdW5jdGlvbiBudChuLGUpe3JldHVybiBuPT1udWxsfHxlPT1udWxsP05hTjplPG4/LTE6ZT5uPzE6ZT49bj8wOk5hTn1mdW5jdGlvbiBSbihuKXtsZXQgZSx0LHI7bi5sZW5ndGghPT0yPyhlPUNuLHQ9KHUsbCk9PkNuKG4odSksbCkscj0odSxsKT0+bih1KS1sKTooZT1uPT09Q258fG49PT1udD9uOmV0LHQ9bixyPW4pO2Z1bmN0aW9uIG8odSxsLGY9MCxnPXUubGVuZ3RoKXtpZihmPGcpe2lmKGUobCxsKSE9PTApcmV0dXJuIGc7ZG97Y29uc3QgbT1mK2c+Pj4xO3QodVttXSxsKTwwP2Y9bSsxOmc9bX13aGlsZShmPGcpfXJldHVybiBmfWZ1bmN0aW9uIGkodSxsLGY9MCxnPXUubGVuZ3RoKXtpZihmPGcpe2lmKGUobCxsKSE9PTApcmV0dXJuIGc7ZG97Y29uc3QgbT1mK2c+Pj4xO3QodVttXSxsKTw9MD9mPW0rMTpnPW19d2hpbGUoZjxnKX1yZXR1cm4gZn1mdW5jdGlvbiBhKHUsbCxmPTAsZz11Lmxlbmd0aCl7Y29uc3QgbT1vKHUsbCxmLGctMSk7cmV0dXJuIG0+ZiYmcih1W20tMV0sbCk+LXIodVttXSxsKT9tLTE6bX1yZXR1cm57bGVmdDpvLGNlbnRlcjphLHJpZ2h0Oml9fWZ1bmN0aW9uIGV0KCl7cmV0dXJuIDB9ZnVuY3Rpb24gdHQobil7cmV0dXJuIG49PT1udWxsP05hTjorbn1jb25zdCBydD1SbihDbikucmlnaHQ7Um4odHQpLmNlbnRlcjtjb25zdCBvdD1NYXRoLnNxcnQoNTApLGl0PU1hdGguc3FydCgxMCksYXQ9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIE5uKG4sZSx0KXtjb25zdCByPShlLW4pL01hdGgubWF4KDAsdCksbz1NYXRoLmZsb29yKE1hdGgubG9nMTAocikpLGk9ci9NYXRoLnBvdygxMCxvKSxhPWk+PW90PzEwOmk+PWl0PzU6aT49YXQ/MjoxO2xldCB1LGwsZjtyZXR1cm4gbzwwPyhmPU1hdGgucG93KDEwLC1vKS9hLHU9TWF0aC5yb3VuZChuKmYpLGw9TWF0aC5yb3VuZChlKmYpLHUvZjxuJiYrK3UsbC9mPmUmJi0tbCxmPS1mKTooZj1NYXRoLnBvdygxMCxvKSphLHU9TWF0aC5yb3VuZChuL2YpLGw9TWF0aC5yb3VuZChlL2YpLHUqZjxuJiYrK3UsbCpmPmUmJi0tbCksbDx1JiYuNTw9dCYmdDwyP05uKG4sZSx0KjIpOlt1LGwsZl19ZnVuY3Rpb24gdXQobixlLHQpe2lmKGU9K2Usbj0rbix0PSt0LCEodD4wKSlyZXR1cm5bXTtpZihuPT09ZSlyZXR1cm5bbl07Y29uc3Qgcj1lPG4sW28saSxhXT1yP05uKGUsbix0KTpObihuLGUsdCk7aWYoIShpPj1vKSlyZXR1cm5bXTtjb25zdCB1PWktbysxLGw9bmV3IEFycmF5KHUpO2lmKHIpaWYoYTwwKWZvcihsZXQgZj0wO2Y8dTsrK2YpbFtmXT0oaS1mKS8tYTtlbHNlIGZvcihsZXQgZj0wO2Y8dTsrK2YpbFtmXT0oaS1mKSphO2Vsc2UgaWYoYTwwKWZvcihsZXQgZj0wO2Y8dTsrK2YpbFtmXT0obytmKS8tYTtlbHNlIGZvcihsZXQgZj0wO2Y8dTsrK2YpbFtmXT0obytmKSphO3JldHVybiBsfWZ1bmN0aW9uIEluKG4sZSx0KXtyZXR1cm4gZT0rZSxuPStuLHQ9K3QsTm4obixlLHQpWzJdfWZ1bmN0aW9uIE9uKG4sZSx0KXtlPStlLG49K24sdD0rdDtjb25zdCByPWU8bixvPXI/SW4oZSxuLHQpOkluKG4sZSx0KTtyZXR1cm4ocj8tMToxKSoobzwwPzEvLW86byl9ZnVuY3Rpb24gem4obixlLHQpe24ucHJvdG90eXBlPWUucHJvdG90eXBlPXQsdC5jb25zdHJ1Y3Rvcj1ufWZ1bmN0aW9uIGZlKG4sZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSk7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdO3JldHVybiB0fWZ1bmN0aW9uIGRuKCl7fXZhciB5bj0uNyxEbj0xL3luLHJuPSJcXHMqKFsrLV0/XFxkKylcXHMqIix4bj0iXFxzKihbKy1dPyg/OlxcZCpcXC4pP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsWj0iXFxzKihbKy1dPyg/OlxcZCpcXC4pP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLGZ0PS9eIyhbMC05YS1mXXszLDh9KSQvLGN0PW5ldyBSZWdFeHAoYF5yZ2JcXCgke3JufSwke3JufSwke3JufVxcKSRgKSxzdD1uZXcgUmVnRXhwKGBecmdiXFwoJHtafSwke1p9LCR7Wn1cXCkkYCksbHQ9bmV3IFJlZ0V4cChgXnJnYmFcXCgke3JufSwke3JufSwke3JufSwke3hufVxcKSRgKSxodD1uZXcgUmVnRXhwKGBecmdiYVxcKCR7Wn0sJHtafSwke1p9LCR7eG59XFwpJGApLGd0PW5ldyBSZWdFeHAoYF5oc2xcXCgke3hufSwke1p9LCR7Wn1cXCkkYCksbXQ9bmV3IFJlZ0V4cChgXmhzbGFcXCgke3hufSwke1p9LCR7Wn0sJHt4bn1cXCkkYCksY2U9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07em4oZG4scG4se2NvcHkobil7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyxuKX0sZGlzcGxheWFibGUoKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6c2UsZm9ybWF0SGV4OnNlLGZvcm1hdEhleDg6ZHQsZm9ybWF0SHNsOnl0LGZvcm1hdFJnYjpsZSx0b1N0cmluZzpsZX0pO2Z1bmN0aW9uIHNlKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gZHQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXg4KCl9ZnVuY3Rpb24geXQoKXtyZXR1cm4geWUodGhpcykuZm9ybWF0SHNsKCl9ZnVuY3Rpb24gbGUoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBwbihuKXt2YXIgZSx0O3JldHVybiBuPShuKyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwoZT1mdC5leGVjKG4pKT8odD1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLHQ9PT02P2hlKGUpOnQ9PT0zP25ldyBQKGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXxlJjI0MCwoZSYxNSk8PDR8ZSYxNSwxKTp0PT09OD9VbihlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LChlJjI1NSkvMjU1KTp0PT09ND9VbihlPj4xMiYxNXxlPj44JjI0MCxlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8ZSYyNDAsKChlJjE1KTw8NHxlJjE1KS8yNTUpOm51bGwpOihlPWN0LmV4ZWMobikpP25ldyBQKGVbMV0sZVsyXSxlWzNdLDEpOihlPXN0LmV4ZWMobikpP25ldyBQKGVbMV0qMjU1LzEwMCxlWzJdKjI1NS8xMDAsZVszXSoyNTUvMTAwLDEpOihlPWx0LmV4ZWMobikpP1VuKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPWh0LmV4ZWMobikpP1VuKGVbMV0qMjU1LzEwMCxlWzJdKjI1NS8xMDAsZVszXSoyNTUvMTAwLGVbNF0pOihlPWd0LmV4ZWMobikpP2RlKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9bXQuZXhlYyhuKSk/ZGUoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpjZS5oYXNPd25Qcm9wZXJ0eShuKT9oZShjZVtuXSk6bj09PSJ0cmFuc3BhcmVudCI/bmV3IFAoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBoZShuKXtyZXR1cm4gbmV3IFAobj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1LDEpfWZ1bmN0aW9uIFVuKG4sZSx0LHIpe3JldHVybiByPD0wJiYobj1lPXQ9TmFOKSxuZXcgUChuLGUsdCxyKX1mdW5jdGlvbiB4dChuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIGRufHwobj1wbihuKSksbj8obj1uLnJnYigpLG5ldyBQKG4ucixuLmcsbi5iLG4ub3BhY2l0eSkpOm5ldyBQfWZ1bmN0aW9uIEVuKG4sZSx0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT94dChuKTpuZXcgUChuLGUsdCxyPz8xKX1mdW5jdGlvbiBQKG4sZSx0LHIpe3RoaXMucj0rbix0aGlzLmc9K2UsdGhpcy5iPSt0LHRoaXMub3BhY2l0eT0rcn16bihQLEVuLGZlKGRuLHticmlnaHRlcihuKXtyZXR1cm4gbj1uPT1udWxsP0RuOk1hdGgucG93KERuLG4pLG5ldyBQKHRoaXMucipuLHRoaXMuZypuLHRoaXMuYipuLHRoaXMub3BhY2l0eSl9LGRhcmtlcihuKXtyZXR1cm4gbj1uPT1udWxsP3luOk1hdGgucG93KHluLG4pLG5ldyBQKHRoaXMucipuLHRoaXMuZypuLHRoaXMuYipuLHRoaXMub3BhY2l0eSl9LHJnYigpe3JldHVybiB0aGlzfSxjbGFtcCgpe3JldHVybiBuZXcgUChHKHRoaXMuciksRyh0aGlzLmcpLEcodGhpcy5iKSxrbih0aGlzLm9wYWNpdHkpKX0sZGlzcGxheWFibGUoKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OmdlLGZvcm1hdEhleDpnZSxmb3JtYXRIZXg4OnB0LGZvcm1hdFJnYjptZSx0b1N0cmluZzptZX0pKTtmdW5jdGlvbiBnZSgpe3JldHVybmAjJHtKKHRoaXMucil9JHtKKHRoaXMuZyl9JHtKKHRoaXMuYil9YH1mdW5jdGlvbiBwdCgpe3JldHVybmAjJHtKKHRoaXMucil9JHtKKHRoaXMuZyl9JHtKKHRoaXMuYil9JHtKKChpc05hTih0aGlzLm9wYWNpdHkpPzE6dGhpcy5vcGFjaXR5KSoyNTUpfWB9ZnVuY3Rpb24gbWUoKXtjb25zdCBuPWtuKHRoaXMub3BhY2l0eSk7cmV0dXJuYCR7bj09PTE/InJnYigiOiJyZ2JhKCJ9JHtHKHRoaXMucil9LCAke0codGhpcy5nKX0sICR7Ryh0aGlzLmIpfSR7bj09PTE/IikiOmAsICR7bn0pYH1gfWZ1bmN0aW9uIGtuKG4pe3JldHVybiBpc05hTihuKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSl9ZnVuY3Rpb24gRyhuKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZChuKXx8MCkpfWZ1bmN0aW9uIEoobil7cmV0dXJuIG49RyhuKSwobjwxNj8iMCI6IiIpK24udG9TdHJpbmcoMTYpfWZ1bmN0aW9uIGRlKG4sZSx0LHIpe3JldHVybiByPD0wP249ZT10PU5hTjp0PD0wfHx0Pj0xP249ZT1OYU46ZTw9MCYmKG49TmFOKSxuZXcgXyhuLGUsdCxyKX1mdW5jdGlvbiB5ZShuKXtpZihuIGluc3RhbmNlb2YgXylyZXR1cm4gbmV3IF8obi5oLG4ucyxuLmwsbi5vcGFjaXR5KTtpZihuIGluc3RhbmNlb2YgZG58fChuPXBuKG4pKSwhbilyZXR1cm4gbmV3IF87aWYobiBpbnN0YW5jZW9mIF8pcmV0dXJuIG47bj1uLnJnYigpO3ZhciBlPW4uci8yNTUsdD1uLmcvMjU1LHI9bi5iLzI1NSxvPU1hdGgubWluKGUsdCxyKSxpPU1hdGgubWF4KGUsdCxyKSxhPU5hTix1PWktbyxsPShpK28pLzI7cmV0dXJuIHU/KGU9PT1pP2E9KHQtcikvdSsodDxyKSo2OnQ9PT1pP2E9KHItZSkvdSsyOmE9KGUtdCkvdSs0LHUvPWw8LjU/aStvOjItaS1vLGEqPTYwKTp1PWw+MCYmbDwxPzA6YSxuZXcgXyhhLHUsbCxuLm9wYWNpdHkpfWZ1bmN0aW9uIHd0KG4sZSx0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT95ZShuKTpuZXcgXyhuLGUsdCxyPz8xKX1mdW5jdGlvbiBfKG4sZSx0LHIpe3RoaXMuaD0rbix0aGlzLnM9K2UsdGhpcy5sPSt0LHRoaXMub3BhY2l0eT0rcn16bihfLHd0LGZlKGRuLHticmlnaHRlcihuKXtyZXR1cm4gbj1uPT1udWxsP0RuOk1hdGgucG93KERuLG4pLG5ldyBfKHRoaXMuaCx0aGlzLnMsdGhpcy5sKm4sdGhpcy5vcGFjaXR5KX0sZGFya2VyKG4pe3JldHVybiBuPW49PW51bGw/eW46TWF0aC5wb3coeW4sbiksbmV3IF8odGhpcy5oLHRoaXMucyx0aGlzLmwqbix0aGlzLm9wYWNpdHkpfSxyZ2IoKXt2YXIgbj10aGlzLmglMzYwKyh0aGlzLmg8MCkqMzYwLGU9aXNOYU4obil8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsdD10aGlzLmwscj10Kyh0PC41P3Q6MS10KSplLG89Mip0LXI7cmV0dXJuIG5ldyBQKF9uKG4+PTI0MD9uLTI0MDpuKzEyMCxvLHIpLF9uKG4sbyxyKSxfbihuPDEyMD9uKzI0MDpuLTEyMCxvLHIpLHRoaXMub3BhY2l0eSl9LGNsYW1wKCl7cmV0dXJuIG5ldyBfKHhlKHRoaXMuaCksU24odGhpcy5zKSxTbih0aGlzLmwpLGtuKHRoaXMub3BhY2l0eSkpfSxkaXNwbGF5YWJsZSgpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsKCl7Y29uc3Qgbj1rbih0aGlzLm9wYWNpdHkpO3JldHVybmAke249PT0xPyJoc2woIjoiaHNsYSgifSR7eGUodGhpcy5oKX0sICR7U24odGhpcy5zKSoxMDB9JSwgJHtTbih0aGlzLmwpKjEwMH0lJHtuPT09MT8iKSI6YCwgJHtufSlgfWB9fSkpO2Z1bmN0aW9uIHhlKG4pe3JldHVybiBuPShufHwwKSUzNjAsbjwwP24rMzYwOm59ZnVuY3Rpb24gU24obil7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oMSxufHwwKSl9ZnVuY3Rpb24gX24obixlLHQpe3JldHVybihuPDYwP2UrKHQtZSkqbi82MDpuPDE4MD90Om48MjQwP2UrKHQtZSkqKDI0MC1uKS82MDplKSoyNTV9dmFyIHFuPW49PigpPT5uO2Z1bmN0aW9uIE10KG4sZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuK3QqZX19ZnVuY3Rpb24gYnQobixlLHQpe3JldHVybiBuPU1hdGgucG93KG4sdCksZT1NYXRoLnBvdyhlLHQpLW4sdD0xL3QsZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgucG93KG4rciplLHQpfX1mdW5jdGlvbiB2dChuKXtyZXR1cm4obj0rbik9PTE/cGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC1lP2J0KGUsdCxuKTpxbihpc05hTihlKT90OmUpfX1mdW5jdGlvbiBwZShuLGUpe3ZhciB0PWUtbjtyZXR1cm4gdD9NdChuLHQpOnFuKGlzTmFOKG4pP2U6bil9dmFyIHdlPWZ1bmN0aW9uIG4oZSl7dmFyIHQ9dnQoZSk7ZnVuY3Rpb24gcihvLGkpe3ZhciBhPXQoKG89RW4obykpLnIsKGk9RW4oaSkpLnIpLHU9dChvLmcsaS5nKSxsPXQoby5iLGkuYiksZj1wZShvLm9wYWNpdHksaS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIG8ucj1hKGcpLG8uZz11KGcpLG8uYj1sKGcpLG8ub3BhY2l0eT1mKGcpLG8rIiJ9fXJldHVybiByLmdhbW1hPW4scn0oMSk7ZnVuY3Rpb24gVHQobixlKXtlfHwoZT1bXSk7dmFyIHQ9bj9NYXRoLm1pbihlLmxlbmd0aCxuLmxlbmd0aCk6MCxyPWUuc2xpY2UoKSxvO3JldHVybiBmdW5jdGlvbihpKXtmb3Iobz0wO288dDsrK28pcltvXT1uW29dKigxLWkpK2Vbb10qaTtyZXR1cm4gcn19ZnVuY3Rpb24gQ3Qobil7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhuKSYmIShuIGluc3RhbmNlb2YgRGF0YVZpZXcpfWZ1bmN0aW9uIE50KG4sZSl7dmFyIHQ9ZT9lLmxlbmd0aDowLHI9bj9NYXRoLm1pbih0LG4ubGVuZ3RoKTowLG89bmV3IEFycmF5KHIpLGk9bmV3IEFycmF5KHQpLGE7Zm9yKGE9MDthPHI7KythKW9bYV09Vm4oblthXSxlW2FdKTtmb3IoO2E8dDsrK2EpaVthXT1lW2FdO3JldHVybiBmdW5jdGlvbih1KXtmb3IoYT0wO2E8cjsrK2EpaVthXT1vW2FdKHUpO3JldHVybiBpfX1mdW5jdGlvbiBEdChuLGUpe3ZhciB0PW5ldyBEYXRlO3JldHVybiBuPStuLGU9K2UsZnVuY3Rpb24ocil7cmV0dXJuIHQuc2V0VGltZShuKigxLXIpK2UqciksdH19ZnVuY3Rpb24gJG4obixlKXtyZXR1cm4gbj0rbixlPStlLGZ1bmN0aW9uKHQpe3JldHVybiBuKigxLXQpK2UqdH19ZnVuY3Rpb24gVXQobixlKXt2YXIgdD17fSxyPXt9LG87KG49PT1udWxsfHx0eXBlb2YgbiE9Im9iamVjdCIpJiYobj17fSksKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCIpJiYoZT17fSk7Zm9yKG8gaW4gZSlvIGluIG4/dFtvXT1WbihuW29dLGVbb10pOnJbb109ZVtvXTtyZXR1cm4gZnVuY3Rpb24oaSl7Zm9yKG8gaW4gdClyW29dPXRbb10oaSk7cmV0dXJuIHJ9fXZhciBqbj0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csWm49bmV3IFJlZ0V4cChqbi5zb3VyY2UsImciKTtmdW5jdGlvbiBrdChuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24gU3Qobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBuKGUpKyIifX1mdW5jdGlvbiAkdChuLGUpe3ZhciB0PWpuLmxhc3RJbmRleD1abi5sYXN0SW5kZXg9MCxyLG8saSxhPS0xLHU9W10sbD1bXTtmb3Iobj1uKyIiLGU9ZSsiIjsocj1qbi5leGVjKG4pKSYmKG89Wm4uZXhlYyhlKSk7KShpPW8uaW5kZXgpPnQmJihpPWUuc2xpY2UodCxpKSx1W2FdP3VbYV0rPWk6dVsrK2FdPWkpLChyPXJbMF0pPT09KG89b1swXSk/dVthXT91W2FdKz1vOnVbKythXT1vOih1WysrYV09bnVsbCxsLnB1c2goe2k6YSx4OiRuKHIsbyl9KSksdD1abi5sYXN0SW5kZXg7cmV0dXJuIHQ8ZS5sZW5ndGgmJihpPWUuc2xpY2UodCksdVthXT91W2FdKz1pOnVbKythXT1pKSx1Lmxlbmd0aDwyP2xbMF0/U3QobFswXS54KTprdChlKTooZT1sLmxlbmd0aCxmdW5jdGlvbihmKXtmb3IodmFyIGc9MCxtO2c8ZTsrK2cpdVsobT1sW2ddKS5pXT1tLngoZik7cmV0dXJuIHUuam9pbigiIil9KX1mdW5jdGlvbiBWbihuLGUpe3ZhciB0PXR5cGVvZiBlLHI7cmV0dXJuIGU9PW51bGx8fHQ9PT0iYm9vbGVhbiI/cW4oZSk6KHQ9PT0ibnVtYmVyIj8kbjp0PT09InN0cmluZyI/KHI9cG4oZSkpPyhlPXIsd2UpOiR0OmUgaW5zdGFuY2VvZiBwbj93ZTplIGluc3RhbmNlb2YgRGF0ZT9EdDpDdChlKT9UdDpBcnJheS5pc0FycmF5KGUpP050OnR5cGVvZiBlLnZhbHVlT2YhPSJmdW5jdGlvbiImJnR5cGVvZiBlLnRvU3RyaW5nIT0iZnVuY3Rpb24ifHxpc05hTihlKT9VdDokbikobixlKX1mdW5jdGlvbiBGdChuLGUpe3JldHVybiBuPStuLGU9K2UsZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQobiooMS10KStlKnQpfX1mdW5jdGlvbiBIdChuKXtyZXR1cm4gTWF0aC5hYnMobj1NYXRoLnJvdW5kKG4pKT49MWUyMT9uLnRvTG9jYWxlU3RyaW5nKCJlbiIpLnJlcGxhY2UoLywvZywiIik6bi50b1N0cmluZygxMCl9ZnVuY3Rpb24gRm4obixlKXtpZigodD0obj1lP24udG9FeHBvbmVudGlhbChlLTEpOm4udG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKCJlIikpPDApcmV0dXJuIG51bGw7dmFyIHQscj1uLnNsaWNlKDAsdCk7cmV0dXJuW3IubGVuZ3RoPjE/clswXStyLnNsaWNlKDIpOnIsK24uc2xpY2UodCsxKV19ZnVuY3Rpb24gb24obil7cmV0dXJuIG49Rm4oTWF0aC5hYnMobikpLG4/blsxXTpOYU59ZnVuY3Rpb24gTHQobixlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXtmb3IodmFyIG89dC5sZW5ndGgsaT1bXSxhPTAsdT1uWzBdLGw9MDtvPjAmJnU+MCYmKGwrdSsxPnImJih1PU1hdGgubWF4KDEsci1sKSksaS5wdXNoKHQuc3Vic3RyaW5nKG8tPXUsbyt1KSksISgobCs9dSsxKT5yKSk7KXU9blthPShhKzEpJW4ubGVuZ3RoXTtyZXR1cm4gaS5yZXZlcnNlKCkuam9pbihlKX19ZnVuY3Rpb24gUHQobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24odCl7cmV0dXJuIG5bK3RdfSl9fXZhciBZdD0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBIbihuKXtpZighKGU9WXQuZXhlYyhuKSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIituKTt2YXIgZTtyZXR1cm4gbmV3IFhuKHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfUhuLnByb3RvdHlwZT1Ybi5wcm90b3R5cGU7ZnVuY3Rpb24gWG4obil7dGhpcy5maWxsPW4uZmlsbD09PXZvaWQgMD8iICI6bi5maWxsKyIiLHRoaXMuYWxpZ249bi5hbGlnbj09PXZvaWQgMD8iPiI6bi5hbGlnbisiIix0aGlzLnNpZ249bi5zaWduPT09dm9pZCAwPyItIjpuLnNpZ24rIiIsdGhpcy5zeW1ib2w9bi5zeW1ib2w9PT12b2lkIDA/IiI6bi5zeW1ib2wrIiIsdGhpcy56ZXJvPSEhbi56ZXJvLHRoaXMud2lkdGg9bi53aWR0aD09PXZvaWQgMD92b2lkIDA6K24ud2lkdGgsdGhpcy5jb21tYT0hIW4uY29tbWEsdGhpcy5wcmVjaXNpb249bi5wcmVjaXNpb249PT12b2lkIDA/dm9pZCAwOituLnByZWNpc2lvbix0aGlzLnRyaW09ISFuLnRyaW0sdGhpcy50eXBlPW4udHlwZT09PXZvaWQgMD8iIjpuLnR5cGUrIiJ9WG4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvPyIwIjoiIikrKHRoaXMud2lkdGg9PT12b2lkIDA/IiI6TWF0aC5tYXgoMSx0aGlzLndpZHRofDApKSsodGhpcy5jb21tYT8iLCI6IiIpKyh0aGlzLnByZWNpc2lvbj09PXZvaWQgMD8iIjoiLiIrTWF0aC5tYXgoMCx0aGlzLnByZWNpc2lvbnwwKSkrKHRoaXMudHJpbT8ifiI6IiIpK3RoaXMudHlwZX07ZnVuY3Rpb24gV3Qobil7bjpmb3IodmFyIGU9bi5sZW5ndGgsdD0xLHI9LTEsbzt0PGU7Kyt0KXN3aXRjaChuW3RdKXtjYXNlIi4iOnI9bz10O2JyZWFrO2Nhc2UiMCI6cj09PTAmJihyPXQpLG89dDticmVhaztkZWZhdWx0OmlmKCErblt0XSlicmVhayBuO3I+MCYmKHI9MCk7YnJlYWt9cmV0dXJuIHI+MD9uLnNsaWNlKDAscikrbi5zbGljZShvKzEpOm59dmFyIE1lO2Z1bmN0aW9uIEF0KG4sZSl7dmFyIHQ9Rm4obixlKTtpZighdClyZXR1cm4gbisiIjt2YXIgcj10WzBdLG89dFsxXSxpPW8tKE1lPU1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihvLzMpKSkqMykrMSxhPXIubGVuZ3RoO3JldHVybiBpPT09YT9yOmk+YT9yK25ldyBBcnJheShpLWErMSkuam9pbigiMCIpOmk+MD9yLnNsaWNlKDAsaSkrIi4iK3Iuc2xpY2UoaSk6IjAuIituZXcgQXJyYXkoMS1pKS5qb2luKCIwIikrRm4obixNYXRoLm1heCgwLGUraS0xKSlbMF19ZnVuY3Rpb24gYmUobixlKXt2YXIgdD1GbihuLGUpO2lmKCF0KXJldHVybiBuKyIiO3ZhciByPXRbMF0sbz10WzFdO3JldHVybiBvPDA/IjAuIituZXcgQXJyYXkoLW8pLmpvaW4oIjAiKStyOnIubGVuZ3RoPm8rMT9yLnNsaWNlKDAsbysxKSsiLiIrci5zbGljZShvKzEpOnIrbmV3IEFycmF5KG8tci5sZW5ndGgrMikuam9pbigiMCIpfXZhciB2ZT17IiUiOihuLGUpPT4obioxMDApLnRvRml4ZWQoZSksYjpuPT5NYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDIpLGM6bj0+bisiIixkOkh0LGU6KG4sZSk9Pm4udG9FeHBvbmVudGlhbChlKSxmOihuLGUpPT5uLnRvRml4ZWQoZSksZzoobixlKT0+bi50b1ByZWNpc2lvbihlKSxvOm49Pk1hdGgucm91bmQobikudG9TdHJpbmcoOCkscDoobixlKT0+YmUobioxMDAsZSkscjpiZSxzOkF0LFg6bj0+TWF0aC5yb3VuZChuKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSx4Om49Pk1hdGgucm91bmQobikudG9TdHJpbmcoMTYpfTtmdW5jdGlvbiBUZShuKXtyZXR1cm4gbn12YXIgQ2U9QXJyYXkucHJvdG90eXBlLm1hcCxOZT1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIsK1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl07ZnVuY3Rpb24gUnQobil7dmFyIGU9bi5ncm91cGluZz09PXZvaWQgMHx8bi50aG91c2FuZHM9PT12b2lkIDA/VGU6THQoQ2UuY2FsbChuLmdyb3VwaW5nLE51bWJlciksbi50aG91c2FuZHMrIiIpLHQ9bi5jdXJyZW5jeT09PXZvaWQgMD8iIjpuLmN1cnJlbmN5WzBdKyIiLHI9bi5jdXJyZW5jeT09PXZvaWQgMD8iIjpuLmN1cnJlbmN5WzFdKyIiLG89bi5kZWNpbWFsPT09dm9pZCAwPyIuIjpuLmRlY2ltYWwrIiIsaT1uLm51bWVyYWxzPT09dm9pZCAwP1RlOlB0KENlLmNhbGwobi5udW1lcmFscyxTdHJpbmcpKSxhPW4ucGVyY2VudD09PXZvaWQgMD8iJSI6bi5wZXJjZW50KyIiLHU9bi5taW51cz09PXZvaWQgMD8i4oiSIjpuLm1pbnVzKyIiLGw9bi5uYW49PT12b2lkIDA/Ik5hTiI6bi5uYW4rIiI7ZnVuY3Rpb24gZihtKXttPUhuKG0pO3ZhciBwPW0uZmlsbCxVPW0uYWxpZ24saz1tLnNpZ24sUj1tLnN5bWJvbCxZPW0uemVybyxxPW0ud2lkdGgsRT1tLmNvbW1hLCQ9bS5wcmVjaXNpb24sVz1tLnRyaW0saD1tLnR5cGU7aD09PSJuIj8oRT0hMCxoPSJnIik6dmVbaF18fCgkPT09dm9pZCAwJiYoJD0xMiksVz0hMCxoPSJnIiksKFl8fHA9PT0iMCImJlU9PT0iPSIpJiYoWT0hMCxwPSIwIixVPSI9Iik7dmFyIGM9Uj09PSIkIj90OlI9PT0iIyImJi9bYm94WF0vLnRlc3QoaCk/IjAiK2gudG9Mb3dlckNhc2UoKToiIix4PVI9PT0iJCI/cjovWyVwXS8udGVzdChoKT9hOiIiLHc9dmVbaF0sTj0vW2RlZmdwcnMlXS8udGVzdChoKTskPSQ9PT12b2lkIDA/NjovW2dwcnNdLy50ZXN0KGgpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsJCkpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsJCkpO2Z1bmN0aW9uIHYoeSl7dmFyIEM9YyxTPXgsRixsbixobjtpZihoPT09ImMiKVM9dyh5KStTLHk9IiI7ZWxzZXt5PSt5O3ZhciBnbj15PDB8fDEveTwwO2lmKHk9aXNOYU4oeSk/bDp3KE1hdGguYWJzKHkpLCQpLFcmJih5PVd0KHkpKSxnbiYmK3k9PTAmJmshPT0iKyImJihnbj0hMSksQz0oZ24/az09PSIoIj9rOnU6az09PSItInx8az09PSIoIj8iIjprKStDLFM9KGg9PT0icyI/TmVbOCtNZS8zXToiIikrUysoZ24mJms9PT0iKCI/IikiOiIiKSxOKXtmb3IoRj0tMSxsbj15Lmxlbmd0aDsrK0Y8bG47KWlmKGhuPXkuY2hhckNvZGVBdChGKSw0OD5obnx8aG4+NTcpe1M9KGhuPT09NDY/byt5LnNsaWNlKEYrMSk6eS5zbGljZShGKSkrUyx5PXkuc2xpY2UoMCxGKTticmVha319fUUmJiFZJiYoeT1lKHksMS8wKSk7dmFyIG1uPUMubGVuZ3RoK3kubGVuZ3RoK1MubGVuZ3RoLGo9bW48cT9uZXcgQXJyYXkocS1tbisxKS5qb2luKHApOiIiO3N3aXRjaChFJiZZJiYoeT1lKGoreSxqLmxlbmd0aD9xLVMubGVuZ3RoOjEvMCksaj0iIiksVSl7Y2FzZSI8Ijp5PUMreStTK2o7YnJlYWs7Y2FzZSI9Ijp5PUMrait5K1M7YnJlYWs7Y2FzZSJeIjp5PWouc2xpY2UoMCxtbj1qLmxlbmd0aD4+MSkrQyt5K1Mrai5zbGljZShtbik7YnJlYWs7ZGVmYXVsdDp5PWorQyt5K1M7YnJlYWt9cmV0dXJuIGkoeSl9cmV0dXJuIHYudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gbSsiIn0sdn1mdW5jdGlvbiBnKG0scCl7dmFyIFU9ZigobT1IbihtKSxtLnR5cGU9ImYiLG0pKSxrPU1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihvbihwKS8zKSkpKjMsUj1NYXRoLnBvdygxMCwtayksWT1OZVs4K2svM107cmV0dXJuIGZ1bmN0aW9uKHEpe3JldHVybiBVKFIqcSkrWX19cmV0dXJue2Zvcm1hdDpmLGZvcm1hdFByZWZpeDpnfX12YXIgTG4sRGUsVWU7SXQoe3Rob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdfSk7ZnVuY3Rpb24gSXQobil7cmV0dXJuIExuPVJ0KG4pLERlPUxuLmZvcm1hdCxVZT1Mbi5mb3JtYXRQcmVmaXgsTG59ZnVuY3Rpb24gT3Qobil7cmV0dXJuIE1hdGgubWF4KDAsLW9uKE1hdGguYWJzKG4pKSl9ZnVuY3Rpb24genQobixlKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3Iob24oZSkvMykpKSozLW9uKE1hdGguYWJzKG4pKSl9ZnVuY3Rpb24gRXQobixlKXtyZXR1cm4gbj1NYXRoLmFicyhuKSxlPU1hdGguYWJzKGUpLW4sTWF0aC5tYXgoMCxvbihlKS1vbihuKSkrMX1mdW5jdGlvbiBrZShuLGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMucmFuZ2Uobik7YnJlYWs7ZGVmYXVsdDp0aGlzLnJhbmdlKGUpLmRvbWFpbihuKTticmVha31yZXR1cm4gdGhpc31mdW5jdGlvbiBfdChuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24gcXQobil7cmV0dXJuK259dmFyIFNlPVswLDFdO2Z1bmN0aW9uIGFuKG4pe3JldHVybiBufWZ1bmN0aW9uIEJuKG4sZSl7cmV0dXJuKGUtPW49K24pP2Z1bmN0aW9uKHQpe3JldHVybih0LW4pL2V9Ol90KGlzTmFOKGUpP05hTjouNSl9ZnVuY3Rpb24ganQobixlKXt2YXIgdDtyZXR1cm4gbj5lJiYodD1uLG49ZSxlPXQpLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLm1heChuLE1hdGgubWluKGUscikpfX1mdW5jdGlvbiBadChuLGUsdCl7dmFyIHI9blswXSxvPW5bMV0saT1lWzBdLGE9ZVsxXTtyZXR1cm4gbzxyPyhyPUJuKG8sciksaT10KGEsaSkpOihyPUJuKHIsbyksaT10KGksYSkpLGZ1bmN0aW9uKHUpe3JldHVybiBpKHIodSkpfX1mdW5jdGlvbiBWdChuLGUsdCl7dmFyIHI9TWF0aC5taW4obi5sZW5ndGgsZS5sZW5ndGgpLTEsbz1uZXcgQXJyYXkociksaT1uZXcgQXJyYXkociksYT0tMTtmb3IobltyXTxuWzBdJiYobj1uLnNsaWNlKCkucmV2ZXJzZSgpLGU9ZS5zbGljZSgpLnJldmVyc2UoKSk7KythPHI7KW9bYV09Qm4oblthXSxuW2ErMV0pLGlbYV09dChlW2FdLGVbYSsxXSk7cmV0dXJuIGZ1bmN0aW9uKHUpe3ZhciBsPXJ0KG4sdSwxLHIpLTE7cmV0dXJuIGlbbF0ob1tsXSh1KSl9fWZ1bmN0aW9uICRlKG4sZSl7cmV0dXJuIGUuZG9tYWluKG4uZG9tYWluKCkpLnJhbmdlKG4ucmFuZ2UoKSkuaW50ZXJwb2xhdGUobi5pbnRlcnBvbGF0ZSgpKS5jbGFtcChuLmNsYW1wKCkpLnVua25vd24obi51bmtub3duKCkpfWZ1bmN0aW9uIFh0KCl7dmFyIG49U2UsZT1TZSx0PVZuLHIsbyxpLGE9YW4sdSxsLGY7ZnVuY3Rpb24gZygpe3ZhciBwPU1hdGgubWluKG4ubGVuZ3RoLGUubGVuZ3RoKTtyZXR1cm4gYSE9PWFuJiYoYT1qdChuWzBdLG5bcC0xXSkpLHU9cD4yP1Z0Olp0LGw9Zj1udWxsLG19ZnVuY3Rpb24gbShwKXtyZXR1cm4gcD09bnVsbHx8aXNOYU4ocD0rcCk/aToobHx8KGw9dShuLm1hcChyKSxlLHQpKSkocihhKHApKSl9cmV0dXJuIG0uaW52ZXJ0PWZ1bmN0aW9uKHApe3JldHVybiBhKG8oKGZ8fChmPXUoZSxuLm1hcChyKSwkbikpKShwKSkpfSxtLmRvbWFpbj1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1BcnJheS5mcm9tKHAscXQpLGcoKSk6bi5zbGljZSgpfSxtLnJhbmdlPWZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUFycmF5LmZyb20ocCksZygpKTplLnNsaWNlKCl9LG0ucmFuZ2VSb3VuZD1mdW5jdGlvbihwKXtyZXR1cm4gZT1BcnJheS5mcm9tKHApLHQ9RnQsZygpfSxtLmNsYW1wPWZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXA/ITA6YW4sZygpKTphIT09YW59LG0uaW50ZXJwb2xhdGU9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9cCxnKCkpOnR9LG0udW5rbm93bj1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1wLG0pOml9LGZ1bmN0aW9uKHAsVSl7cmV0dXJuIHI9cCxvPVUsZygpfX1mdW5jdGlvbiBGZSgpe3JldHVybiBYdCgpKGFuLGFuKX1mdW5jdGlvbiBCdChuLGUsdCxyKXt2YXIgbz1PbihuLGUsdCksaTtzd2l0Y2gocj1IbihyPz8iLGYiKSxyLnR5cGUpe2Nhc2UicyI6e3ZhciBhPU1hdGgubWF4KE1hdGguYWJzKG4pLE1hdGguYWJzKGUpKTtyZXR1cm4gci5wcmVjaXNpb249PW51bGwmJiFpc05hTihpPXp0KG8sYSkpJiYoci5wcmVjaXNpb249aSksVWUocixhKX1jYXNlIiI6Y2FzZSJlIjpjYXNlImciOmNhc2UicCI6Y2FzZSJyIjp7ci5wcmVjaXNpb249PW51bGwmJiFpc05hTihpPUV0KG8sTWF0aC5tYXgoTWF0aC5hYnMobiksTWF0aC5hYnMoZSkpKSkmJihyLnByZWNpc2lvbj1pLShyLnR5cGU9PT0iZSIpKTticmVha31jYXNlImYiOmNhc2UiJSI6e3IucHJlY2lzaW9uPT1udWxsJiYhaXNOYU4oaT1PdChvKSkmJihyLnByZWNpc2lvbj1pLShyLnR5cGU9PT0iJSIpKjIpO2JyZWFrfX1yZXR1cm4gRGUocil9ZnVuY3Rpb24gUXQobil7dmFyIGU9bi5kb21haW47cmV0dXJuIG4udGlja3M9ZnVuY3Rpb24odCl7dmFyIHI9ZSgpO3JldHVybiB1dChyWzBdLHJbci5sZW5ndGgtMV0sdD8/MTApfSxuLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxyKXt2YXIgbz1lKCk7cmV0dXJuIEJ0KG9bMF0sb1tvLmxlbmd0aC0xXSx0Pz8xMCxyKX0sbi5uaWNlPWZ1bmN0aW9uKHQpe3Q9PW51bGwmJih0PTEwKTt2YXIgcj1lKCksbz0wLGk9ci5sZW5ndGgtMSxhPXJbb10sdT1yW2ldLGwsZixnPTEwO2Zvcih1PGEmJihmPWEsYT11LHU9ZixmPW8sbz1pLGk9Zik7Zy0tID4wOyl7aWYoZj1JbihhLHUsdCksZj09PWwpcmV0dXJuIHJbb109YSxyW2ldPXUsZShyKTtpZihmPjApYT1NYXRoLmZsb29yKGEvZikqZix1PU1hdGguY2VpbCh1L2YpKmY7ZWxzZSBpZihmPDApYT1NYXRoLmNlaWwoYSpmKS9mLHU9TWF0aC5mbG9vcih1KmYpL2Y7ZWxzZSBicmVhaztsPWZ9cmV0dXJuIG59LG59ZnVuY3Rpb24gSGUoKXt2YXIgbj1GZSgpO3JldHVybiBuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gJGUobixIZSgpKX0sa2UuYXBwbHkobixhcmd1bWVudHMpLFF0KG4pfWZ1bmN0aW9uIEd0KG4sZSl7bj1uLnNsaWNlKCk7dmFyIHQ9MCxyPW4ubGVuZ3RoLTEsbz1uW3RdLGk9bltyXSxhO3JldHVybiBpPG8mJihhPXQsdD1yLHI9YSxhPW8sbz1pLGk9YSksblt0XT1lLmZsb29yKG8pLG5bcl09ZS5jZWlsKGkpLG59Y29uc3QgUW49bmV3IERhdGUsR249bmV3IERhdGU7ZnVuY3Rpb24gSChuLGUsdCxyKXtmdW5jdGlvbiBvKGkpe3JldHVybiBuKGk9YXJndW1lbnRzLmxlbmd0aD09PTA/bmV3IERhdGU6bmV3IERhdGUoK2kpKSxpfXJldHVybiBvLmZsb29yPWk9PihuKGk9bmV3IERhdGUoK2kpKSxpKSxvLmNlaWw9aT0+KG4oaT1uZXcgRGF0ZShpLTEpKSxlKGksMSksbihpKSxpKSxvLnJvdW5kPWk9Pntjb25zdCBhPW8oaSksdT1vLmNlaWwoaSk7cmV0dXJuIGktYTx1LWk/YTp1fSxvLm9mZnNldD0oaSxhKT0+KGUoaT1uZXcgRGF0ZSgraSksYT09bnVsbD8xOk1hdGguZmxvb3IoYSkpLGkpLG8ucmFuZ2U9KGksYSx1KT0+e2NvbnN0IGw9W107aWYoaT1vLmNlaWwoaSksdT11PT1udWxsPzE6TWF0aC5mbG9vcih1KSwhKGk8YSl8fCEodT4wKSlyZXR1cm4gbDtsZXQgZjtkbyBsLnB1c2goZj1uZXcgRGF0ZSgraSkpLGUoaSx1KSxuKGkpO3doaWxlKGY8aSYmaTxhKTtyZXR1cm4gbH0sby5maWx0ZXI9aT0+SChhPT57aWYoYT49YSlmb3IoO24oYSksIWkoYSk7KWEuc2V0VGltZShhLTEpfSwoYSx1KT0+e2lmKGE+PWEpaWYodTwwKWZvcig7Kyt1PD0wOylmb3IoO2UoYSwtMSksIWkoYSk7KTtlbHNlIGZvcig7LS11Pj0wOylmb3IoO2UoYSwxKSwhaShhKTspO30pLHQmJihvLmNvdW50PShpLGEpPT4oUW4uc2V0VGltZSgraSksR24uc2V0VGltZSgrYSksbihRbiksbihHbiksTWF0aC5mbG9vcih0KFFuLEduKSkpLG8uZXZlcnk9aT0+KGk9TWF0aC5mbG9vcihpKSwhaXNGaW5pdGUoaSl8fCEoaT4wKT9udWxsOmk+MT9vLmZpbHRlcihyP2E9PnIoYSklaT09PTA6YT0+by5jb3VudCgwLGEpJWk9PT0wKTpvKSksb31jb25zdCBQbj1IKCgpPT57fSwobixlKT0+e24uc2V0VGltZSgrbitlKX0sKG4sZSk9PmUtbik7UG4uZXZlcnk9bj0+KG49TWF0aC5mbG9vcihuKSwhaXNGaW5pdGUobil8fCEobj4wKT9udWxsOm4+MT9IKGU9PntlLnNldFRpbWUoTWF0aC5mbG9vcihlL24pKm4pfSwoZSx0KT0+e2Uuc2V0VGltZSgrZSt0Km4pfSwoZSx0KT0+KHQtZSkvbik6UG4pLFBuLnJhbmdlO2NvbnN0IFY9MWUzLHo9Vio2MCxYPXoqNjAsQj1YKjI0LEpuPUIqNyxMZT1CKjMwLEtuPUIqMzY1LHVuPUgobj0+e24uc2V0VGltZShuLW4uZ2V0TWlsbGlzZWNvbmRzKCkpfSwobixlKT0+e24uc2V0VGltZSgrbitlKlYpfSwobixlKT0+KGUtbikvVixuPT5uLmdldFVUQ1NlY29uZHMoKSk7dW4ucmFuZ2U7Y29uc3QgbmU9SChuPT57bi5zZXRUaW1lKG4tbi5nZXRNaWxsaXNlY29uZHMoKS1uLmdldFNlY29uZHMoKSpWKX0sKG4sZSk9PntuLnNldFRpbWUoK24rZSp6KX0sKG4sZSk9PihlLW4pL3osbj0+bi5nZXRNaW51dGVzKCkpO25lLnJhbmdlLEgobj0+e24uc2V0VVRDU2Vjb25kcygwLDApfSwobixlKT0+e24uc2V0VGltZSgrbitlKnopfSwobixlKT0+KGUtbikveixuPT5uLmdldFVUQ01pbnV0ZXMoKSkucmFuZ2U7Y29uc3QgZWU9SChuPT57bi5zZXRUaW1lKG4tbi5nZXRNaWxsaXNlY29uZHMoKS1uLmdldFNlY29uZHMoKSpWLW4uZ2V0TWludXRlcygpKnopfSwobixlKT0+e24uc2V0VGltZSgrbitlKlgpfSwobixlKT0+KGUtbikvWCxuPT5uLmdldEhvdXJzKCkpO2VlLnJhbmdlLEgobj0+e24uc2V0VVRDTWludXRlcygwLDAsMCl9LChuLGUpPT57bi5zZXRUaW1lKCtuK2UqWCl9LChuLGUpPT4oZS1uKS9YLG49Pm4uZ2V0VVRDSG91cnMoKSkucmFuZ2U7Y29uc3Qgd249SChuPT5uLnNldEhvdXJzKDAsMCwwLDApLChuLGUpPT5uLnNldERhdGUobi5nZXREYXRlKCkrZSksKG4sZSk9PihlLW4tKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS1uLmdldFRpbWV6b25lT2Zmc2V0KCkpKnopL0Isbj0+bi5nZXREYXRlKCktMSk7d24ucmFuZ2U7Y29uc3QgdGU9SChuPT57bi5zZXRVVENIb3VycygwLDAsMCwwKX0sKG4sZSk9PntuLnNldFVUQ0RhdGUobi5nZXRVVENEYXRlKCkrZSl9LChuLGUpPT4oZS1uKS9CLG49Pm4uZ2V0VVRDRGF0ZSgpLTEpO3RlLnJhbmdlLEgobj0+e24uc2V0VVRDSG91cnMoMCwwLDAsMCl9LChuLGUpPT57bi5zZXRVVENEYXRlKG4uZ2V0VVRDRGF0ZSgpK2UpfSwobixlKT0+KGUtbikvQixuPT5NYXRoLmZsb29yKG4vQikpLnJhbmdlO2Z1bmN0aW9uIEsobil7cmV0dXJuIEgoZT0+e2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LW4pJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9LChlLHQpPT57ZS5zZXREYXRlKGUuZ2V0RGF0ZSgpK3QqNyl9LChlLHQpPT4odC1lLSh0LmdldFRpbWV6b25lT2Zmc2V0KCktZS5nZXRUaW1lem9uZU9mZnNldCgpKSp6KS9Kbil9Y29uc3QgWW49SygwKSxXbj1LKDEpLEp0PUsoMiksS3Q9SygzKSxmbj1LKDQpLG5yPUsoNSksZXI9Syg2KTtZbi5yYW5nZSxXbi5yYW5nZSxKdC5yYW5nZSxLdC5yYW5nZSxmbi5yYW5nZSxuci5yYW5nZSxlci5yYW5nZTtmdW5jdGlvbiBubihuKXtyZXR1cm4gSChlPT57ZS5zZXRVVENEYXRlKGUuZ2V0VVRDRGF0ZSgpLShlLmdldFVUQ0RheSgpKzctbiklNyksZS5zZXRVVENIb3VycygwLDAsMCwwKX0sKGUsdCk9PntlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCkrdCo3KX0sKGUsdCk9Pih0LWUpL0puKX1jb25zdCBQZT1ubigwKSxBbj1ubigxKSx0cj1ubigyKSxycj1ubigzKSxjbj1ubig0KSxvcj1ubig1KSxpcj1ubig2KTtQZS5yYW5nZSxBbi5yYW5nZSx0ci5yYW5nZSxyci5yYW5nZSxjbi5yYW5nZSxvci5yYW5nZSxpci5yYW5nZTtjb25zdCByZT1IKG49PntuLnNldERhdGUoMSksbi5zZXRIb3VycygwLDAsMCwwKX0sKG4sZSk9PntuLnNldE1vbnRoKG4uZ2V0TW9udGgoKStlKX0sKG4sZSk9PmUuZ2V0TW9udGgoKS1uLmdldE1vbnRoKCkrKGUuZ2V0RnVsbFllYXIoKS1uLmdldEZ1bGxZZWFyKCkpKjEyLG49Pm4uZ2V0TW9udGgoKSk7cmUucmFuZ2UsSChuPT57bi5zZXRVVENEYXRlKDEpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LChuLGUpPT57bi5zZXRVVENNb250aChuLmdldFVUQ01vbnRoKCkrZSl9LChuLGUpPT5lLmdldFVUQ01vbnRoKCktbi5nZXRVVENNb250aCgpKyhlLmdldFVUQ0Z1bGxZZWFyKCktbi5nZXRVVENGdWxsWWVhcigpKSoxMixuPT5uLmdldFVUQ01vbnRoKCkpLnJhbmdlO2NvbnN0IFE9SChuPT57bi5zZXRNb250aCgwLDEpLG4uc2V0SG91cnMoMCwwLDAsMCl9LChuLGUpPT57bi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrZSl9LChuLGUpPT5lLmdldEZ1bGxZZWFyKCktbi5nZXRGdWxsWWVhcigpLG49Pm4uZ2V0RnVsbFllYXIoKSk7US5ldmVyeT1uPT4haXNGaW5pdGUobj1NYXRoLmZsb29yKG4pKXx8IShuPjApP251bGw6SChlPT57ZS5zZXRGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0RnVsbFllYXIoKS9uKSpuKSxlLnNldE1vbnRoKDAsMSksZS5zZXRIb3VycygwLDAsMCwwKX0sKGUsdCk9PntlLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSt0Km4pfSksUS5yYW5nZTtjb25zdCBlbj1IKG49PntuLnNldFVUQ01vbnRoKDAsMSksbi5zZXRVVENIb3VycygwLDAsMCwwKX0sKG4sZSk9PntuLnNldFVUQ0Z1bGxZZWFyKG4uZ2V0VVRDRnVsbFllYXIoKStlKX0sKG4sZSk9PmUuZ2V0VVRDRnVsbFllYXIoKS1uLmdldFVUQ0Z1bGxZZWFyKCksbj0+bi5nZXRVVENGdWxsWWVhcigpKTtlbi5ldmVyeT1uPT4haXNGaW5pdGUobj1NYXRoLmZsb29yKG4pKXx8IShuPjApP251bGw6SChlPT57ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS9uKSpuKSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0sKGUsdCk9PntlLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0VVRDRnVsbFllYXIoKSt0Km4pfSksZW4ucmFuZ2U7ZnVuY3Rpb24gYXIobixlLHQscixvLGkpe2NvbnN0IGE9W1t1biwxLFZdLFt1biw1LDUqVl0sW3VuLDE1LDE1KlZdLFt1biwzMCwzMCpWXSxbaSwxLHpdLFtpLDUsNSp6XSxbaSwxNSwxNSp6XSxbaSwzMCwzMCp6XSxbbywxLFhdLFtvLDMsMypYXSxbbyw2LDYqWF0sW28sMTIsMTIqWF0sW3IsMSxCXSxbciwyLDIqQl0sW3QsMSxKbl0sW2UsMSxMZV0sW2UsMywzKkxlXSxbbiwxLEtuXV07ZnVuY3Rpb24gdShmLGcsbSl7Y29uc3QgcD1nPGY7cCYmKFtmLGddPVtnLGZdKTtjb25zdCBVPW0mJnR5cGVvZiBtLnJhbmdlPT0iZnVuY3Rpb24iP206bChmLGcsbSksaz1VP1UucmFuZ2UoZiwrZysxKTpbXTtyZXR1cm4gcD9rLnJldmVyc2UoKTprfWZ1bmN0aW9uIGwoZixnLG0pe2NvbnN0IHA9TWF0aC5hYnMoZy1mKS9tLFU9Um4oKFssLFldKT0+WSkucmlnaHQoYSxwKTtpZihVPT09YS5sZW5ndGgpcmV0dXJuIG4uZXZlcnkoT24oZi9LbixnL0tuLG0pKTtpZihVPT09MClyZXR1cm4gUG4uZXZlcnkoTWF0aC5tYXgoT24oZixnLG0pLDEpKTtjb25zdFtrLFJdPWFbcC9hW1UtMV1bMl08YVtVXVsyXS9wP1UtMTpVXTtyZXR1cm4gay5ldmVyeShSKX1yZXR1cm5bdSxsXX1jb25zdFt1cixmcl09YXIoUSxyZSxZbix3bixlZSxuZSk7ZnVuY3Rpb24gb2Uobil7aWYoMDw9bi55JiZuLnk8MTAwKXt2YXIgZT1uZXcgRGF0ZSgtMSxuLm0sbi5kLG4uSCxuLk0sbi5TLG4uTCk7cmV0dXJuIGUuc2V0RnVsbFllYXIobi55KSxlfXJldHVybiBuZXcgRGF0ZShuLnksbi5tLG4uZCxuLkgsbi5NLG4uUyxuLkwpfWZ1bmN0aW9uIGllKG4pe2lmKDA8PW4ueSYmbi55PDEwMCl7dmFyIGU9bmV3IERhdGUoRGF0ZS5VVEMoLTEsbi5tLG4uZCxuLkgsbi5NLG4uUyxuLkwpKTtyZXR1cm4gZS5zZXRVVENGdWxsWWVhcihuLnkpLGV9cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKG4ueSxuLm0sbi5kLG4uSCxuLk0sbi5TLG4uTCkpfWZ1bmN0aW9uIE1uKG4sZSx0KXtyZXR1cm57eTpuLG06ZSxkOnQsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiBjcihuKXt2YXIgZT1uLmRhdGVUaW1lLHQ9bi5kYXRlLHI9bi50aW1lLG89bi5wZXJpb2RzLGk9bi5kYXlzLGE9bi5zaG9ydERheXMsdT1uLm1vbnRocyxsPW4uc2hvcnRNb250aHMsZj1ibihvKSxnPXZuKG8pLG09Ym4oaSkscD12bihpKSxVPWJuKGEpLGs9dm4oYSksUj1ibih1KSxZPXZuKHUpLHE9Ym4obCksRT12bihsKSwkPXthOmduLEE6bW4sYjpqLEI6U28sYzpudWxsLGQ6T2UsZTpPZSxmOkhyLGc6RXIsRzpxcixIOlNyLEk6JHIsajpGcixMOnplLG06THIsTTpQcixwOiRvLHE6Rm8sUTpWZSxzOlhlLFM6WXIsdTpXcixVOkFyLFY6UnIsdzpJcixXOk9yLHg6bnVsbCxYOm51bGwseTp6cixZOl9yLFo6anIsIiUiOlplfSxXPXthOkhvLEE6TG8sYjpQbyxCOllvLGM6bnVsbCxkOl9lLGU6X2UsZjpCcixnOmlvLEc6dW8sSDpacixJOlZyLGo6WHIsTDpxZSxtOlFyLE06R3IscDpXbyxxOkFvLFE6VmUsczpYZSxTOkpyLHU6S3IsVTpubyxWOmVvLHc6dG8sVzpybyx4Om51bGwsWDpudWxsLHk6b28sWTphbyxaOmZvLCIlIjpaZX0saD17YTp2LEE6eSxiOkMsQjpTLGM6RixkOlJlLGU6UmUsZjpOcixnOkFlLEc6V2UsSDpJZSxJOkllLGo6YnIsTDpDcixtOk1yLE06dnIscDpOLHE6d3IsUTpVcixzOmtyLFM6VHIsdTptcixVOmRyLFY6eXIsdzpncixXOnhyLHg6bG4sWDpobix5OkFlLFk6V2UsWjpwciwiJSI6RHJ9OyQueD1jKHQsJCksJC5YPWMociwkKSwkLmM9YyhlLCQpLFcueD1jKHQsVyksVy5YPWMocixXKSxXLmM9YyhlLFcpO2Z1bmN0aW9uIGMoZCxNKXtyZXR1cm4gZnVuY3Rpb24oVCl7dmFyIHM9W10sQT0tMSxEPTAsST1kLmxlbmd0aCxPLHRuLEplO2ZvcihUIGluc3RhbmNlb2YgRGF0ZXx8KFQ9bmV3IERhdGUoK1QpKTsrK0E8STspZC5jaGFyQ29kZUF0KEEpPT09MzcmJihzLnB1c2goZC5zbGljZShELEEpKSwodG49WWVbTz1kLmNoYXJBdCgrK0EpXSkhPW51bGw/Tz1kLmNoYXJBdCgrK0EpOnRuPU89PT0iZSI/IiAiOiIwIiwoSmU9TVtPXSkmJihPPUplKFQsdG4pKSxzLnB1c2goTyksRD1BKzEpO3JldHVybiBzLnB1c2goZC5zbGljZShELEEpKSxzLmpvaW4oIiIpfX1mdW5jdGlvbiB4KGQsTSl7cmV0dXJuIGZ1bmN0aW9uKFQpe3ZhciBzPU1uKDE5MDAsdm9pZCAwLDEpLEE9dyhzLGQsVCs9IiIsMCksRCxJO2lmKEEhPVQubGVuZ3RoKXJldHVybiBudWxsO2lmKCJRImluIHMpcmV0dXJuIG5ldyBEYXRlKHMuUSk7aWYoInMiaW4gcylyZXR1cm4gbmV3IERhdGUocy5zKjFlMysoIkwiaW4gcz9zLkw6MCkpO2lmKE0mJiEoIloiaW4gcykmJihzLlo9MCksInAiaW4gcyYmKHMuSD1zLkglMTIrcy5wKjEyKSxzLm09PT12b2lkIDAmJihzLm09InEiaW4gcz9zLnE6MCksIlYiaW4gcyl7aWYocy5WPDF8fHMuVj41MylyZXR1cm4gbnVsbDsidyJpbiBzfHwocy53PTEpLCJaImluIHM/KEQ9aWUoTW4ocy55LDAsMSkpLEk9RC5nZXRVVENEYXkoKSxEPUk+NHx8ST09PTA/QW4uY2VpbChEKTpBbihEKSxEPXRlLm9mZnNldChELChzLlYtMSkqNykscy55PUQuZ2V0VVRDRnVsbFllYXIoKSxzLm09RC5nZXRVVENNb250aCgpLHMuZD1ELmdldFVUQ0RhdGUoKSsocy53KzYpJTcpOihEPW9lKE1uKHMueSwwLDEpKSxJPUQuZ2V0RGF5KCksRD1JPjR8fEk9PT0wP1duLmNlaWwoRCk6V24oRCksRD13bi5vZmZzZXQoRCwocy5WLTEpKjcpLHMueT1ELmdldEZ1bGxZZWFyKCkscy5tPUQuZ2V0TW9udGgoKSxzLmQ9RC5nZXREYXRlKCkrKHMudys2KSU3KX1lbHNlKCJXImluIHN8fCJVImluIHMpJiYoInciaW4gc3x8KHMudz0idSJpbiBzP3MudSU3OiJXImluIHM/MTowKSxJPSJaImluIHM/aWUoTW4ocy55LDAsMSkpLmdldFVUQ0RheSgpOm9lKE1uKHMueSwwLDEpKS5nZXREYXkoKSxzLm09MCxzLmQ9IlciaW4gcz8ocy53KzYpJTcrcy5XKjctKEkrNSklNzpzLncrcy5VKjctKEkrNiklNyk7cmV0dXJuIloiaW4gcz8ocy5IKz1zLlovMTAwfDAscy5NKz1zLlolMTAwLGllKHMpKTpvZShzKX19ZnVuY3Rpb24gdyhkLE0sVCxzKXtmb3IodmFyIEE9MCxEPU0ubGVuZ3RoLEk9VC5sZW5ndGgsTyx0bjtBPEQ7KXtpZihzPj1JKXJldHVybi0xO2lmKE89TS5jaGFyQ29kZUF0KEErKyksTz09PTM3KXtpZihPPU0uY2hhckF0KEErKyksdG49aFtPIGluIFllP00uY2hhckF0KEErKyk6T10sIXRufHwocz10bihkLFQscykpPDApcmV0dXJuLTF9ZWxzZSBpZihPIT1ULmNoYXJDb2RlQXQocysrKSlyZXR1cm4tMX1yZXR1cm4gc31mdW5jdGlvbiBOKGQsTSxUKXt2YXIgcz1mLmV4ZWMoTS5zbGljZShUKSk7cmV0dXJuIHM/KGQucD1nLmdldChzWzBdLnRvTG93ZXJDYXNlKCkpLFQrc1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHYoZCxNLFQpe3ZhciBzPVUuZXhlYyhNLnNsaWNlKFQpKTtyZXR1cm4gcz8oZC53PWsuZ2V0KHNbMF0udG9Mb3dlckNhc2UoKSksVCtzWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geShkLE0sVCl7dmFyIHM9bS5leGVjKE0uc2xpY2UoVCkpO3JldHVybiBzPyhkLnc9cC5nZXQoc1swXS50b0xvd2VyQ2FzZSgpKSxUK3NbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBDKGQsTSxUKXt2YXIgcz1xLmV4ZWMoTS5zbGljZShUKSk7cmV0dXJuIHM/KGQubT1FLmdldChzWzBdLnRvTG93ZXJDYXNlKCkpLFQrc1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFMoZCxNLFQpe3ZhciBzPVIuZXhlYyhNLnNsaWNlKFQpKTtyZXR1cm4gcz8oZC5tPVkuZ2V0KHNbMF0udG9Mb3dlckNhc2UoKSksVCtzWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRihkLE0sVCl7cmV0dXJuIHcoZCxlLE0sVCl9ZnVuY3Rpb24gbG4oZCxNLFQpe3JldHVybiB3KGQsdCxNLFQpfWZ1bmN0aW9uIGhuKGQsTSxUKXtyZXR1cm4gdyhkLHIsTSxUKX1mdW5jdGlvbiBnbihkKXtyZXR1cm4gYVtkLmdldERheSgpXX1mdW5jdGlvbiBtbihkKXtyZXR1cm4gaVtkLmdldERheSgpXX1mdW5jdGlvbiBqKGQpe3JldHVybiBsW2QuZ2V0TW9udGgoKV19ZnVuY3Rpb24gU28oZCl7cmV0dXJuIHVbZC5nZXRNb250aCgpXX1mdW5jdGlvbiAkbyhkKXtyZXR1cm4gb1srKGQuZ2V0SG91cnMoKT49MTIpXX1mdW5jdGlvbiBGbyhkKXtyZXR1cm4gMSt+fihkLmdldE1vbnRoKCkvMyl9ZnVuY3Rpb24gSG8oZCl7cmV0dXJuIGFbZC5nZXRVVENEYXkoKV19ZnVuY3Rpb24gTG8oZCl7cmV0dXJuIGlbZC5nZXRVVENEYXkoKV19ZnVuY3Rpb24gUG8oZCl7cmV0dXJuIGxbZC5nZXRVVENNb250aCgpXX1mdW5jdGlvbiBZbyhkKXtyZXR1cm4gdVtkLmdldFVUQ01vbnRoKCldfWZ1bmN0aW9uIFdvKGQpe3JldHVybiBvWysoZC5nZXRVVENIb3VycygpPj0xMildfWZ1bmN0aW9uIEFvKGQpe3JldHVybiAxK35+KGQuZ2V0VVRDTW9udGgoKS8zKX1yZXR1cm57Zm9ybWF0OmZ1bmN0aW9uKGQpe3ZhciBNPWMoZCs9IiIsJCk7cmV0dXJuIE0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTX0scGFyc2U6ZnVuY3Rpb24oZCl7dmFyIE09eChkKz0iIiwhMSk7cmV0dXJuIE0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTX0sdXRjRm9ybWF0OmZ1bmN0aW9uKGQpe3ZhciBNPWMoZCs9IiIsVyk7cmV0dXJuIE0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTX0sdXRjUGFyc2U6ZnVuY3Rpb24oZCl7dmFyIE09eChkKz0iIiwhMCk7cmV0dXJuIE0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTX19fXZhciBZZT17Ii0iOiIiLF86IiAiLDA6IjAifSxMPS9eXHMqXGQrLyxzcj0vXiUvLGxyPS9bXFxeJCorP3xbXF0oKS57fV0vZztmdW5jdGlvbiBiKG4sZSx0KXt2YXIgcj1uPDA/Ii0iOiIiLG89KHI/LW46bikrIiIsaT1vLmxlbmd0aDtyZXR1cm4gcisoaTx0P25ldyBBcnJheSh0LWkrMSkuam9pbihlKStvOm8pfWZ1bmN0aW9uIGhyKG4pe3JldHVybiBuLnJlcGxhY2UobHIsIlxcJCYiKX1mdW5jdGlvbiBibihuKXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrbi5tYXAoaHIpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiB2bihuKXtyZXR1cm4gbmV3IE1hcChuLm1hcCgoZSx0KT0+W2UudG9Mb3dlckNhc2UoKSx0XSkpfWZ1bmN0aW9uIGdyKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMSkpO3JldHVybiByPyhuLnc9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbXIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsxKSk7cmV0dXJuIHI/KG4udT0rclswXSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBkcihuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCx0KzIpKTtyZXR1cm4gcj8obi5VPStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHlyKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMikpO3JldHVybiByPyhuLlY9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geHIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsyKSk7cmV0dXJuIHI/KG4uVz0rclswXSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBXZShuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCx0KzQpKTtyZXR1cm4gcj8obi55PStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEFlKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMikpO3JldHVybiByPyhuLnk9K3JbMF0rKCtyWzBdPjY4PzE5MDA6MmUzKSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBwcihuLGUsdCl7dmFyIHI9L14oWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8vLmV4ZWMoZS5zbGljZSh0LHQrNikpO3JldHVybiByPyhuLlo9clsxXT8wOi0oclsyXSsoclszXXx8IjAwIikpLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHdyKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMSkpO3JldHVybiByPyhuLnE9clswXSozLTMsdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTXIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsyKSk7cmV0dXJuIHI/KG4ubT1yWzBdLTEsdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUmUobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsyKSk7cmV0dXJuIHI/KG4uZD0rclswXSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBicihuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCx0KzMpKTtyZXR1cm4gcj8obi5tPTAsbi5kPStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEllKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMikpO3JldHVybiByPyhuLkg9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdnIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsyKSk7cmV0dXJuIHI/KG4uTT0rclswXSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBUcihuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCx0KzIpKTtyZXR1cm4gcj8obi5TPStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIENyKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMykpO3JldHVybiByPyhuLkw9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTnIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCs2KSk7cmV0dXJuIHI/KG4uTD1NYXRoLmZsb29yKHJbMF0vMWUzKSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBEcihuLGUsdCl7dmFyIHI9c3IuZXhlYyhlLnNsaWNlKHQsdCsxKSk7cmV0dXJuIHI/dCtyWzBdLmxlbmd0aDotMX1mdW5jdGlvbiBVcihuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCkpO3JldHVybiByPyhuLlE9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24ga3IobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQpKTtyZXR1cm4gcj8obi5zPStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE9lKG4sZSl7cmV0dXJuIGIobi5nZXREYXRlKCksZSwyKX1mdW5jdGlvbiBTcihuLGUpe3JldHVybiBiKG4uZ2V0SG91cnMoKSxlLDIpfWZ1bmN0aW9uICRyKG4sZSl7cmV0dXJuIGIobi5nZXRIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIEZyKG4sZSl7cmV0dXJuIGIoMSt3bi5jb3VudChRKG4pLG4pLGUsMyl9ZnVuY3Rpb24gemUobixlKXtyZXR1cm4gYihuLmdldE1pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gSHIobixlKXtyZXR1cm4gemUobixlKSsiMDAwIn1mdW5jdGlvbiBMcihuLGUpe3JldHVybiBiKG4uZ2V0TW9udGgoKSsxLGUsMil9ZnVuY3Rpb24gUHIobixlKXtyZXR1cm4gYihuLmdldE1pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIFlyKG4sZSl7cmV0dXJuIGIobi5nZXRTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBXcihuKXt2YXIgZT1uLmdldERheSgpO3JldHVybiBlPT09MD83OmV9ZnVuY3Rpb24gQXIobixlKXtyZXR1cm4gYihZbi5jb3VudChRKG4pLTEsbiksZSwyKX1mdW5jdGlvbiBFZShuKXt2YXIgZT1uLmdldERheSgpO3JldHVybiBlPj00fHxlPT09MD9mbihuKTpmbi5jZWlsKG4pfWZ1bmN0aW9uIFJyKG4sZSl7cmV0dXJuIG49RWUobiksYihmbi5jb3VudChRKG4pLG4pKyhRKG4pLmdldERheSgpPT09NCksZSwyKX1mdW5jdGlvbiBJcihuKXtyZXR1cm4gbi5nZXREYXkoKX1mdW5jdGlvbiBPcihuLGUpe3JldHVybiBiKFduLmNvdW50KFEobiktMSxuKSxlLDIpfWZ1bmN0aW9uIHpyKG4sZSl7cmV0dXJuIGIobi5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIEVyKG4sZSl7cmV0dXJuIG49RWUobiksYihuLmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gX3IobixlKXtyZXR1cm4gYihuLmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gcXIobixlKXt2YXIgdD1uLmdldERheSgpO3JldHVybiBuPXQ+PTR8fHQ9PT0wP2ZuKG4pOmZuLmNlaWwobiksYihuLmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24ganIobil7dmFyIGU9bi5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOihlKj0tMSwiKyIpKStiKGUvNjB8MCwiMCIsMikrYihlJTYwLCIwIiwyKX1mdW5jdGlvbiBfZShuLGUpe3JldHVybiBiKG4uZ2V0VVRDRGF0ZSgpLGUsMil9ZnVuY3Rpb24gWnIobixlKXtyZXR1cm4gYihuLmdldFVUQ0hvdXJzKCksZSwyKX1mdW5jdGlvbiBWcihuLGUpe3JldHVybiBiKG4uZ2V0VVRDSG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiBYcihuLGUpe3JldHVybiBiKDErdGUuY291bnQoZW4obiksbiksZSwzKX1mdW5jdGlvbiBxZShuLGUpe3JldHVybiBiKG4uZ2V0VVRDTWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBCcihuLGUpe3JldHVybiBxZShuLGUpKyIwMDAifWZ1bmN0aW9uIFFyKG4sZSl7cmV0dXJuIGIobi5nZXRVVENNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBHcihuLGUpe3JldHVybiBiKG4uZ2V0VVRDTWludXRlcygpLGUsMil9ZnVuY3Rpb24gSnIobixlKXtyZXR1cm4gYihuLmdldFVUQ1NlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIEtyKG4pe3ZhciBlPW4uZ2V0VVRDRGF5KCk7cmV0dXJuIGU9PT0wPzc6ZX1mdW5jdGlvbiBubyhuLGUpe3JldHVybiBiKFBlLmNvdW50KGVuKG4pLTEsbiksZSwyKX1mdW5jdGlvbiBqZShuKXt2YXIgZT1uLmdldFVUQ0RheSgpO3JldHVybiBlPj00fHxlPT09MD9jbihuKTpjbi5jZWlsKG4pfWZ1bmN0aW9uIGVvKG4sZSl7cmV0dXJuIG49amUobiksYihjbi5jb3VudChlbihuKSxuKSsoZW4obikuZ2V0VVRDRGF5KCk9PT00KSxlLDIpfWZ1bmN0aW9uIHRvKG4pe3JldHVybiBuLmdldFVUQ0RheSgpfWZ1bmN0aW9uIHJvKG4sZSl7cmV0dXJuIGIoQW4uY291bnQoZW4obiktMSxuKSxlLDIpfWZ1bmN0aW9uIG9vKG4sZSl7cmV0dXJuIGIobi5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIGlvKG4sZSl7cmV0dXJuIG49amUobiksYihuLmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gYW8obixlKXtyZXR1cm4gYihuLmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gdW8obixlKXt2YXIgdD1uLmdldFVUQ0RheSgpO3JldHVybiBuPXQ+PTR8fHQ9PT0wP2NuKG4pOmNuLmNlaWwobiksYihuLmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gZm8oKXtyZXR1cm4iKzAwMDAifWZ1bmN0aW9uIFplKCl7cmV0dXJuIiUifWZ1bmN0aW9uIFZlKG4pe3JldHVybitufWZ1bmN0aW9uIFhlKG4pe3JldHVybiBNYXRoLmZsb29yKCtuLzFlMyl9dmFyIHNuLEJlO2NvKHtkYXRlVGltZToiJXgsICVYIixkYXRlOiIlLW0vJS1kLyVZIix0aW1lOiIlLUk6JU06JVMgJXAiLHBlcmlvZHM6WyJBTSIsIlBNIl0sZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydE1vbnRoczpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdfSk7ZnVuY3Rpb24gY28obil7cmV0dXJuIHNuPWNyKG4pLEJlPXNuLmZvcm1hdCxzbi5wYXJzZSxzbi51dGNGb3JtYXQsc24udXRjUGFyc2Usc259ZnVuY3Rpb24gc28obil7cmV0dXJuIG5ldyBEYXRlKG4pfWZ1bmN0aW9uIGxvKG4pe3JldHVybiBuIGluc3RhbmNlb2YgRGF0ZT8rbjorbmV3IERhdGUoK24pfWZ1bmN0aW9uIFFlKG4sZSx0LHIsbyxpLGEsdSxsLGYpe3ZhciBnPUZlKCksbT1nLmludmVydCxwPWcuZG9tYWluLFU9ZigiLiVMIiksaz1mKCI6JVMiKSxSPWYoIiVJOiVNIiksWT1mKCIlSSAlcCIpLHE9ZigiJWEgJWQiKSxFPWYoIiViICVkIiksJD1mKCIlQiIpLFc9ZigiJVkiKTtmdW5jdGlvbiBoKGMpe3JldHVybihsKGMpPGM/VTp1KGMpPGM/azphKGMpPGM/UjppKGMpPGM/WTpyKGMpPGM/byhjKTxjP3E6RTp0KGMpPGM/JDpXKShjKX1yZXR1cm4gZy5pbnZlcnQ9ZnVuY3Rpb24oYyl7cmV0dXJuIG5ldyBEYXRlKG0oYykpfSxnLmRvbWFpbj1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9wKEFycmF5LmZyb20oYyxsbykpOnAoKS5tYXAoc28pfSxnLnRpY2tzPWZ1bmN0aW9uKGMpe3ZhciB4PXAoKTtyZXR1cm4gbih4WzBdLHhbeC5sZW5ndGgtMV0sYz8/MTApfSxnLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oYyx4KXtyZXR1cm4geD09bnVsbD9oOmYoeCl9LGcubmljZT1mdW5jdGlvbihjKXt2YXIgeD1wKCk7cmV0dXJuKCFjfHx0eXBlb2YgYy5yYW5nZSE9ImZ1bmN0aW9uIikmJihjPWUoeFswXSx4W3gubGVuZ3RoLTFdLGM/PzEwKSksYz9wKEd0KHgsYykpOmd9LGcuY29weT1mdW5jdGlvbigpe3JldHVybiAkZShnLFFlKG4sZSx0LHIsbyxpLGEsdSxsLGYpKX0sZ31mdW5jdGlvbiBobygpe3JldHVybiBrZS5hcHBseShRZSh1cixmcixRLHJlLFluLHduLGVlLG5lLHVuLEJlKS5kb21haW4oW25ldyBEYXRlKDJlMywwLDEpLG5ldyBEYXRlKDJlMywwLDIpXSksYXJndW1lbnRzKX1mdW5jdGlvbiBUbihuLGUsdCl7dGhpcy5rPW4sdGhpcy54PWUsdGhpcy55PXR9VG4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpUbixzY2FsZTpmdW5jdGlvbihuKXtyZXR1cm4gbj09PTE/dGhpczpuZXcgVG4odGhpcy5rKm4sdGhpcy54LHRoaXMueSl9LHRyYW5zbGF0ZTpmdW5jdGlvbihuLGUpe3JldHVybiBuPT09MCZlPT09MD90aGlzOm5ldyBUbih0aGlzLmssdGhpcy54K3RoaXMuaypuLHRoaXMueSt0aGlzLmsqZSl9LGFwcGx5OmZ1bmN0aW9uKG4pe3JldHVybltuWzBdKnRoaXMuayt0aGlzLngsblsxXSp0aGlzLmsrdGhpcy55XX0sYXBwbHlYOmZ1bmN0aW9uKG4pe3JldHVybiBuKnRoaXMuayt0aGlzLnh9LGFwcGx5WTpmdW5jdGlvbihuKXtyZXR1cm4gbip0aGlzLmsrdGhpcy55fSxpbnZlcnQ6ZnVuY3Rpb24obil7cmV0dXJuWyhuWzBdLXRoaXMueCkvdGhpcy5rLChuWzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbihuKXtyZXR1cm4obi10aGlzLngpL3RoaXMua30saW52ZXJ0WTpmdW5jdGlvbihuKXtyZXR1cm4obi10aGlzLnkpL3RoaXMua30scmVzY2FsZVg6ZnVuY3Rpb24obil7cmV0dXJuIG4uY29weSgpLmRvbWFpbihuLnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCx0aGlzKS5tYXAobi5pbnZlcnQsbikpfSxyZXNjYWxlWTpmdW5jdGlvbihuKXtyZXR1cm4gbi5jb3B5KCkuZG9tYWluKG4ucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRZLHRoaXMpLm1hcChuLmludmVydCxuKSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuInRyYW5zbGF0ZSgiK3RoaXMueCsiLCIrdGhpcy55KyIpIHNjYWxlKCIrdGhpcy5rKyIpIn19LFRuLnByb3RvdHlwZTtmdW5jdGlvbiBhZShuKXtyZXR1cm4gbi5tb2RlPT09InRlbXBvcmFsInx8bi5tb2RlPT09ImxlZnQtYWxpZ25lZCI/Z28obik6bW8obil9ZnVuY3Rpb24gZ28oe2RvbWFpbjpuLHJhbmdlOmV9KXtyZXR1cm4gaG8oKS5kb21haW4obikucmFuZ2UoZSl9ZnVuY3Rpb24gbW8oe2RvbWFpbjpuLHJhbmdlOmV9KXtyZXR1cm4gSGUoKS5kb21haW4obikucmFuZ2UoZSl9ZnVuY3Rpb24geW8oe3Jvb3Rfbm9kZV9pZHM6bixub2RlczplfSl7dHJ5e3JldHVybiB4byhuLGUpfWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKHQpLEdlKG4sZSl9fWZ1bmN0aW9uIHhvKG4sZSl7Y29uc3QgdD1uZXcgTWFwLHI9W107Zm9yKGNvbnN0IG8gb2Ygbil7dC5zZXQobywwKTtjb25zdCBpPWUuZ2V0KG8pO2Zvcihjb25zdHtpZDphfW9mIGkuY2hpbGRyZW4pci5wdXNoKGEpfXJldHVybiB1ZShyLGUsdCl9ZnVuY3Rpb24gdWUobixlLHQpe2Zvcihjb25zdCByIG9mIG4pe2lmKHQuaGFzKHIpKWNvbnRpbnVlO2NvbnN0IG89ZS5nZXQocik7aWYoIW8pdGhyb3cgbmV3IEVycm9yKCJOb2RlIGlkIG5vdCBmb3VuZCBpbiBub2RlcyIpO2NvbnN0IGk9W107Zm9yKGNvbnN0IGwgb2Ygby5wYXJlbnRzKXtjb25zdCBmPXQuZ2V0KGwuaWQpO2lmKGYhPT12b2lkIDApe2kucHVzaChmKTtjb250aW51ZX11ZShbbC5pZF0sZSx0KTtjb25zdCBnPXQuZ2V0KGwuaWQpO2lmKGc9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZGV0ZXJtaW5lIHBhcmVudCBjb2x1bW4iKTtpLnB1c2goZyl9Y29uc3QgYT1NYXRoLm1heCguLi5pKTt0LnNldChyLGErMSk7Y29uc3QgdT1vLmNoaWxkcmVuLm1hcCgoe2lkOmx9KT0+bCk7dS5sZW5ndGgmJnVlKHUsZSx0KX1yZXR1cm4gdH1mdW5jdGlvbiBHZShuLGUsdD0wLHI9bmV3IE1hcCl7Zm9yKGNvbnN0IG8gb2Ygbil7Y29uc3QgaT1yLmdldChvKTsoIWl8fGk8dCkmJnIuc2V0KG8sdCk7Y29uc3QgYT1lLmdldChvKTtmb3IoY29uc3R7aWQ6dX1vZiBhLmNoaWxkcmVuKUdlKFt1XSxlLHQrMSxyKX1yZXR1cm4gcn1mdW5jdGlvbiBwbyhuKXtyZXR1cm4gbi5ob3Jpem9udGFsU2V0dGluZ3MubW9kZT09PSJkZXBlbmRlbmN5Ij93byhuKTpuLmhvcml6b250YWxTZXR0aW5ncy5tb2RlPT09ImxlZnQtYWxpZ25lZCI/Ym8obik6TW8obil9ZnVuY3Rpb24gd28oe2RhdGE6bixob3Jpem9udGFsU2V0dGluZ3M6ZX0pe2NvbnN0IHQ9eW8obikscj1hZShlKSxvPW5ldyBNYXA7Zm9yKGNvbnN0W2ldb2Ygbi5ub2Rlcyl7Y29uc3QgYT10LmdldChpKTtpZihhPT09dm9pZCAwKXtjb25zb2xlLndhcm4oYE5vZGUgbm90IGZvdW5kIGluIGNvbHVtbnM6IFNraXBwaW5nICR7aX1gKTtjb250aW51ZX1vLnNldChpLHt4OnIoYSksY29sdW1uOmF9KX1yZXR1cm4gb31mdW5jdGlvbiBNbyh7ZGF0YTpuLGhvcml6b250YWxTZXR0aW5nczplfSl7Y29uc3QgdD1hZShlKSxyPW5ldyBNYXA7Zm9yKGNvbnN0W28saV1vZiBuLm5vZGVzKXtjb25zdCBhPXQobmV3IERhdGUoaS5zdGFydF90aW1lKSk7ci5zZXQobyx7Y29sdW1uOmEseDphfSl9cmV0dXJuIHJ9ZnVuY3Rpb24gYm8oe2RhdGE6bixob3Jpem9udGFsU2V0dGluZ3M6ZX0pe2NvbnN0IHQ9YWUoZSkscj1uZXcgTWFwO2Zvcihjb25zdFtvXW9mIG4ubm9kZXMpci5zZXQobyx7Y29sdW1uOjAseDp0KG5ldyBEYXRlKG4uc3RhcnRfdGltZSkpfSk7cmV0dXJuIHJ9YXN5bmMgZnVuY3Rpb24gdm8obixlKXtjb25zdCBvPW5ldyBNYXAsaT1uZXcgTWFwO2xldCBhPTA7Y29uc3QgdT1uZXcgTWFwO2ZvciBhd2FpdChjb25zdFtoXW9mIG4uZGF0YS5ub2Rlcyl7Y29uc3QgYz1uLmRhdGEubm9kZXMuZ2V0KGgpO2lmKCFjKXtjb25zb2xlLndhcm4oIk5lYXJlc3RQYXJlbnRMYXlvdXQ6IE5vZGUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgZGF0YSIsaCk7Y29udGludWV9Y29uc3QgeD1hd2FpdCBsKGMpOyQoaCx4KX1yZXR1cm4gVygpLHU7YXN5bmMgZnVuY3Rpb24gbChoKXtjb25zdHt4OmN9PWUuZ2V0KGguaWQpPz97fTtpZihjPT09dm9pZCAwKXJldHVybiBjb25zb2xlLndhcm4oIk5lYXJlc3RQYXJlbnRMYXlvdXQ6IE5vZGUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgaG9yaXpvbnRhbCBsYXlvdXQiLGguaWQpLDA7aWYoaC5wYXJlbnRzLmxlbmd0aD09PTEpcmV0dXJuIHUuaGFzKGgucGFyZW50c1swXS5pZCk/YXdhaXQgZyhoLnBhcmVudHNbMF0uaWQsYyk6KGNvbnNvbGUud2FybigiTmVhcmVzdFBhcmVudExheW91dDogUGFyZW50IG5vZGUgbm90IGZvdW5kIGluIGxheW91dCIsaC5wYXJlbnRzWzBdLmlkKSwwKTtpZihoLnBhcmVudHMubGVuZ3RoPjApe2NvbnN0IHg9aC5wYXJlbnRzLm1hcCgoe2lkOnl9KT0+e2NvbnN0IEM9dS5nZXQoeSk7cmV0dXJuIEM9PT12b2lkIDA/KGNvbnNvbGUud2FybigiTmVhcmVzdFBhcmVudExheW91dDogUGFyZW50IG5vZGUgbm90IGZvdW5kIGluIGxheW91dCIseSksMCk6Q30pLE49eC5yZWR1Y2UoKHksQyk9PnkrQywwKS94Lmxlbmd0aCx2PU1hdGgucm91bmQoTik7aWYobShjLHYpKXtjb25zdCB5PWsoYyx2KSxDPWgucGFyZW50cy5tYXAoKHtpZDpGfSk9PkYpLFM9eS5maWx0ZXIoRj0+Qy5pbmNsdWRlcyhGKSk7aWYoUy5sZW5ndGg+MHx8eS5sZW5ndGg+MSl7Y29uc3RbRl09Uy5sZW5ndGg+MD9TOnksbG49Uih4LHYsby5nZXQoRikpO3JldHVybiBvLnNldChGLGxuKSxhd2FpdCBnKEYsYyl9cmV0dXJuIGF3YWl0IFkoe2NvbXBldGluZ05vZGVJZDp5WzBdLHVwc3RyZWFtUm93czp4LG5vZGVTdGFydFg6YyxkZXNpcmVkUm93OnZ9KX19cmV0dXJuIGYoYywwKX1mdW5jdGlvbiBmKGgsYyl7cmV0dXJuIG0oaCxjKT9mKGgsYysxKTpjfWFzeW5jIGZ1bmN0aW9uIGcoaCxjKXtjb25zdCB4PXUuZ2V0KGgpO2lmKHg9PT12b2lkIDApcmV0dXJuIGNvbnNvbGUud2FybigiTmVhcmVzdFBhcmVudExheW91dDogVXBzdHJlYW0gbm9kZSBub3QgZm91bmQgaW4gbGF5b3V0IixoKSwwO28uZ2V0KGgpfHxvLnNldChoLDEpO2NvbnN0IHc9by5nZXQoaCk7cmV0dXJuIG0oYyx4KT93PT09MSYmIW0oYyx4KzEpPyhvLnNldChoLC0xKSx4KzEpOm0oYyx4LTEpPyhhd2FpdCBwKHtkaXJlY3Rpb246dyxub2RlU3RhcnRYOmMsZGVzaXJlZFJvdzp4K3d9KSxvLnNldChoLHc9PT0xPy0xOjEpLHgrdyk6KG8uc2V0KGgsMSkseC0xKTp4fWZ1bmN0aW9uIG0oaCxjKXtpZih1LnNpemU9PT0wKXJldHVybiExO2xldCB4PSExO2NvbnN0IHc9aS5nZXQoYyk/P1tdO2Zvcihjb25zdCBOIG9mIHcpe2NvbnN0IHY9dS5nZXQoTikseT1FKE4pO2lmKFUoe2ZpcnN0Tm9kZUVuZFg6eSxmaXJzdE5vZGVSb3c6dixsYXN0Tm9kZVN0YXJ0WDpoLGxhc3ROb2RlUm93OmN9KSl7eD0hMDticmVha319cmV0dXJuIHh9YXN5bmMgZnVuY3Rpb24gcCh7ZGlyZWN0aW9uOmgsbm9kZVN0YXJ0WDpjLGRlc2lyZWRSb3c6eH0pe2NvbnN0IHc9ayhjLHgpO2lmKHcpZm9yIGF3YWl0KGNvbnN0IE4gb2Ygdyl7Y29uc3Qgdj11LmdldChOKSx7eDp5fT1lLmdldChOKT8/e307aWYodj09PXZvaWQgMHx8eT09PXZvaWQgMCl7Y29uc29sZS53YXJuKCJOZWFyZXN0UGFyZW50TGF5b3V0IC0gc2hvdmU6IE5vZGUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgdmVydGljYWwgb3IgaG9yaXpvbnRhbCBsYXlvdXQiLE4pO2NvbnRpbnVlfWNvbnN0IEM9ditoO2F3YWl0IHAoe2RpcmVjdGlvbjpoLG5vZGVTdGFydFg6eSxkZXNpcmVkUm93OkN9KSwkKE4sQyl9fWZ1bmN0aW9uIFUoe2ZpcnN0Tm9kZUVuZFg6aCxmaXJzdE5vZGVSb3c6YyxsYXN0Tm9kZVN0YXJ0WDp4LGxhc3ROb2RlUm93Ond9KXtyZXR1cm4gYz09PXcmJmgrMTY+PXh9ZnVuY3Rpb24gayhoLGMpe2NvbnN0IHg9W10sdz1pLmdldChjKT8/W107Zm9yKGNvbnN0IE4gb2Ygdyl7Y29uc3Qgdj1FKE4pLHk9dS5nZXQoTik7aWYoeT09PXZvaWQgMCl7Y29uc29sZS53YXJuKCJOZWFyZXN0UGFyZW50TGF5b3V0IC0gZ2V0T3ZlcmxhcHBpbmdOb2RlSWRzOiBOb2RlIHdhcyBub3QgZm91bmQgaW4gdGhlIGxheW91dCIsTik7Y29udGludWV9VSh7Zmlyc3ROb2RlRW5kWDp2LGZpcnN0Tm9kZVJvdzp5LGxhc3ROb2RlU3RhcnRYOmgsbGFzdE5vZGVSb3c6Y30pJiZ4LnB1c2goTil9aWYoeC5sZW5ndGghPT0wKXJldHVybiB4LnNvcnQoKE4sdik9Pntjb25zdCB5PUUoTiksQz1FKHYpO3JldHVybiB5PEM/MTp5PkM/LTE6MH0pLHh9ZnVuY3Rpb24gUihoLGMseCl7Y29uc3Qgdz1oLmZpbHRlcih2PT52PGMpLmxlbmd0aCxOPWguZmlsdGVyKHY9PnY+YykubGVuZ3RoO3JldHVybiB3Pk4/LTE6eD8/MX1hc3luYyBmdW5jdGlvbiBZKHtkZXNpcmVkUm93Omgsbm9kZVN0YXJ0WDpjLHVwc3RyZWFtUm93czp4LGNvbXBldGluZ05vZGVJZDp3fSl7aWYodS5nZXQodyk9PT12b2lkIDApcmV0dXJuIGNvbnNvbGUud2FybigiTmVhcmVzdFBhcmVudExheW91dCAtIGFyZ3VlV2l0aENvbXBldGluZ1Vwc3RyZWFtUGxhY2VtZW50OiBDb21wZXRpdG9yIG5vZGUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgbGF5b3V0Iix3KSxoO2NvbnN0W3YseV09cSh3KSxDPXguZmlsdGVyKEY9PkY8aCkubGVuZ3RoLFM9eC5maWx0ZXIoRj0+Rj5oKS5sZW5ndGg7aWYoQz5TKXtpZih2PnkmJnY+QylyZXR1cm4gYXdhaXQgcCh7ZGlyZWN0aW9uOi0xLG5vZGVTdGFydFg6YyxkZXNpcmVkUm93Omh9KSxoO2lmKHk+dilyZXR1cm4gYXdhaXQgcCh7ZGlyZWN0aW9uOjEsbm9kZVN0YXJ0WDpjLGRlc2lyZWRSb3c6aH0pLGg7by5zZXQodywtMSl9aWYoUz5DKXtpZih5PnYmJnk+UylyZXR1cm4gYXdhaXQgcCh7ZGlyZWN0aW9uOjEsbm9kZVN0YXJ0WDpjLGRlc2lyZWRSb3c6aH0pLGg7aWYodj55KXJldHVybiBhd2FpdCBwKHtkaXJlY3Rpb246LTEsbm9kZVN0YXJ0WDpjLGRlc2lyZWRSb3c6aH0pLGg7by5zZXQodywxKX1yZXR1cm4gYXdhaXQgZyh3LGMpfWZ1bmN0aW9uIHEoaCl7Y29uc3QgYz1uLmRhdGEubm9kZXMuZ2V0KGgpLHg9dS5nZXQoaCk7cmV0dXJuIWN8fHg9PT12b2lkIDA/KGNvbnNvbGUud2FybigiTmVhcmVzdFBhcmVudExheW91dDogTm9kZSB3YXMgbm90IGZvdW5kIGluIGVpdGhlciB0aGUgZGF0YSBvciBsYXlvdXQiLGgpLFswLDBdKTpjLnBhcmVudHMucmVkdWNlKCh3LE4pPT57Y29uc3Qgdj11LmdldChOLmlkKTtyZXR1cm4gdj09PXZvaWQgMD8oY29uc29sZS53YXJuKCJOZWFyZXN0UGFyZW50TGF5b3V0IC0gZ2V0Tm9kZVBhcmVudERpcmVjdGlvbkNvdW50czogUGFyZW50IG5vZGUgbm90IGZvdW5kIG9uIGxheW91dCBkYXRhIixoKSx3KToodjx4JiYod1swXSs9MSksdj54JiYod1sxXSs9MSksdyl9LFswLDBdKX1mdW5jdGlvbiBFKGgpe2NvbnN0e3g6Y309ZS5nZXQoaCk/P3t9LHg9bi53aWR0aHMuZ2V0KGgpO3JldHVybiBjPT09dm9pZCAwfHx4PT09dm9pZCAwPyhjb25zb2xlLndhcm4oIk5lYXJlc3RQYXJlbnRMYXlvdXQ6IE5vZGUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgaG9yaXpvbnRhbCBsYXlvdXQgYW5kL29yIHdpZHRocyIsaCksMCk6Yyt4fWZ1bmN0aW9uICQoaCxjKXt2YXIgeCx3O2lmKGM8YSYmKGE9YyksdS5oYXMoaCkpe2NvbnN0IE49dS5nZXQoaCk7KHg9aS5nZXQoTikpPT1udWxsfHx4LmRlbGV0ZShoKX1pLmhhcyhjKXx8aS5zZXQoYyxuZXcgU2V0KSwodz1pLmdldChjKSk9PW51bGx8fHcuYWRkKGgpLHUuc2V0KGgsYyl9ZnVuY3Rpb24gVygpe2lmKGE8MClmb3IoY29uc3RbaF1vZiB1KXtjb25zdCBjPXUuZ2V0KGgpO3Uuc2V0KGgsYytNYXRoLmFicyhhKSl9fX1hc3luYyBmdW5jdGlvbiBUbyhuLGUpe3JldHVybiBuLnZlcnRpY2FsU2V0dGluZ3MubW9kZT09PSJuZWFyZXN0LXBhcmVudCI/YXdhaXQgdm8obixlKTpuLnZlcnRpY2FsU2V0dGluZ3MubW9kZT09PSJkdXJhdGlvbi1zb3J0ZWQiP05vKG4pOkNvKG4pfWZ1bmN0aW9uIENvKG4pe2NvbnN0IGU9bmV3IE1hcDtsZXQgdD0wO2Zvcihjb25zdFtyXW9mIG4uZGF0YS5ub2RlcyllLnNldChyLHQrKyk7cmV0dXJuIGV9ZnVuY3Rpb24gTm8obil7Y29uc3QgZT1uZXcgTWFwLHQ9Wy4uLm4uZGF0YS5ub2Rlcy52YWx1ZXMoKV0uc29ydCgobyxpKT0+e2NvbnN0IGE9KG8uZW5kX3RpbWU/bmV3IERhdGUoby5lbmRfdGltZSkuZ2V0VGltZSgpOm5ldyBEYXRlKCkuZ2V0VGltZSgpKS1uZXcgRGF0ZShvLnN0YXJ0X3RpbWUpLmdldFRpbWUoKTtyZXR1cm4oaS5lbmRfdGltZT9uZXcgRGF0ZShpLmVuZF90aW1lKS5nZXRUaW1lKCk6bmV3IERhdGUoKS5nZXRUaW1lKCkpLW5ldyBEYXRlKGkuc3RhcnRfdGltZSkuZ2V0VGltZSgpLWF9KTtsZXQgcj0wO2Zvcihjb25zdCBvIG9mIHQpZS5zZXQoby5pZCxyKyspO3JldHVybiBlfW9ubWVzc2FnZT1EbztmdW5jdGlvbiBEbyh7ZGF0YTpufSl7Y29uc3R7dHlwZTplfT1uO3N3aXRjaChlKXtjYXNlImxheW91dCI6a28obik7cmV0dXJuO2RlZmF1bHQ6S2UoZSl9fWZ1bmN0aW9uIFVvKG4pe3Bvc3RNZXNzYWdlKG4pfWFzeW5jIGZ1bmN0aW9uIGtvKG4pe2NvbnN0e2RhdGE6ZX09bix0PXBvKG4pLHI9YXdhaXQgVG8obix0KSxvPW5ldyBNYXA7bGV0IGk9MCxhPTA7Zm9yKGNvbnN0W3UsbF1vZiBlLm5vZGVzKXtjb25zdCBmPXQuZ2V0KHUpLGc9ci5nZXQodSk7aWYoZj09PXZvaWQgMCl7Y29uc29sZS53YXJuKGBOb2RlSWQgbm90IGZvdW5kIGluIGhvcml6b250YWwgbGF5b3V0OiBTa2lwcGluZyAke2wubGFiZWx9YCk7Y29udGludWV9aWYoZz09PXZvaWQgMCl7Y29uc29sZS53YXJuKGBOb2RlSWQgbm90IGZvdW5kIGluIHZlcnRpY2FsIGxheW91dDogU2tpcHBpbmcgJHtsLmxhYmVsfWApO2NvbnRpbnVlfWk9TWF0aC5tYXgoaSxnKSxhPU1hdGgubWF4KGEsZi5jb2x1bW4pLG8uc2V0KHUsey4uLmYseTpnLHJvdzpnfSl9VW8oe3R5cGU6ImxheW91dCIsbGF5b3V0OnttYXhSb3c6aSxtYXhDb2x1bW46YSxwb3NpdGlvbnM6b319KX19KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1ydW5HcmFwaC53b3JrZXItd2pueUpGdHAuanMubWFwCg==", LR = (r) => Uint8Array.from(atob(r), (t) => t.charCodeAt(0)), a0 = typeof self < "u" && self.Blob && new Blob([LR(t1)], { type: "text/javascript;charset=utf-8" });
|
|
32164
|
+
const t1 = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEtlKG4pe3Rocm93IG5ldyBFcnJvcihgc3dpdGNoIGRvZXMgbm90IGhhdmUgY2FzZSBmb3IgdmFsdWU6ICR7bn1gKX1mdW5jdGlvbiBDbihuLGUpe3JldHVybiBuPT1udWxsfHxlPT1udWxsP05hTjpuPGU/LTE6bj5lPzE6bj49ZT8wOk5hTn1mdW5jdGlvbiBudChuLGUpe3JldHVybiBuPT1udWxsfHxlPT1udWxsP05hTjplPG4/LTE6ZT5uPzE6ZT49bj8wOk5hTn1mdW5jdGlvbiBSbihuKXtsZXQgZSx0LHI7bi5sZW5ndGghPT0yPyhlPUNuLHQ9KHUsbCk9PkNuKG4odSksbCkscj0odSxsKT0+bih1KS1sKTooZT1uPT09Q258fG49PT1udD9uOmV0LHQ9bixyPW4pO2Z1bmN0aW9uIG8odSxsLGY9MCxnPXUubGVuZ3RoKXtpZihmPGcpe2lmKGUobCxsKSE9PTApcmV0dXJuIGc7ZG97Y29uc3QgbT1mK2c+Pj4xO3QodVttXSxsKTwwP2Y9bSsxOmc9bX13aGlsZShmPGcpfXJldHVybiBmfWZ1bmN0aW9uIGkodSxsLGY9MCxnPXUubGVuZ3RoKXtpZihmPGcpe2lmKGUobCxsKSE9PTApcmV0dXJuIGc7ZG97Y29uc3QgbT1mK2c+Pj4xO3QodVttXSxsKTw9MD9mPW0rMTpnPW19d2hpbGUoZjxnKX1yZXR1cm4gZn1mdW5jdGlvbiBhKHUsbCxmPTAsZz11Lmxlbmd0aCl7Y29uc3QgbT1vKHUsbCxmLGctMSk7cmV0dXJuIG0+ZiYmcih1W20tMV0sbCk+LXIodVttXSxsKT9tLTE6bX1yZXR1cm57bGVmdDpvLGNlbnRlcjphLHJpZ2h0Oml9fWZ1bmN0aW9uIGV0KCl7cmV0dXJuIDB9ZnVuY3Rpb24gdHQobil7cmV0dXJuIG49PT1udWxsP05hTjorbn1jb25zdCBydD1SbihDbikucmlnaHQ7Um4odHQpLmNlbnRlcjtjb25zdCBvdD1NYXRoLnNxcnQoNTApLGl0PU1hdGguc3FydCgxMCksYXQ9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIE5uKG4sZSx0KXtjb25zdCByPShlLW4pL01hdGgubWF4KDAsdCksbz1NYXRoLmZsb29yKE1hdGgubG9nMTAocikpLGk9ci9NYXRoLnBvdygxMCxvKSxhPWk+PW90PzEwOmk+PWl0PzU6aT49YXQ/MjoxO2xldCB1LGwsZjtyZXR1cm4gbzwwPyhmPU1hdGgucG93KDEwLC1vKS9hLHU9TWF0aC5yb3VuZChuKmYpLGw9TWF0aC5yb3VuZChlKmYpLHUvZjxuJiYrK3UsbC9mPmUmJi0tbCxmPS1mKTooZj1NYXRoLnBvdygxMCxvKSphLHU9TWF0aC5yb3VuZChuL2YpLGw9TWF0aC5yb3VuZChlL2YpLHUqZjxuJiYrK3UsbCpmPmUmJi0tbCksbDx1JiYuNTw9dCYmdDwyP05uKG4sZSx0KjIpOlt1LGwsZl19ZnVuY3Rpb24gdXQobixlLHQpe2lmKGU9K2Usbj0rbix0PSt0LCEodD4wKSlyZXR1cm5bXTtpZihuPT09ZSlyZXR1cm5bbl07Y29uc3Qgcj1lPG4sW28saSxhXT1yP05uKGUsbix0KTpObihuLGUsdCk7aWYoIShpPj1vKSlyZXR1cm5bXTtjb25zdCB1PWktbysxLGw9bmV3IEFycmF5KHUpO2lmKHIpaWYoYTwwKWZvcihsZXQgZj0wO2Y8dTsrK2YpbFtmXT0oaS1mKS8tYTtlbHNlIGZvcihsZXQgZj0wO2Y8dTsrK2YpbFtmXT0oaS1mKSphO2Vsc2UgaWYoYTwwKWZvcihsZXQgZj0wO2Y8dTsrK2YpbFtmXT0obytmKS8tYTtlbHNlIGZvcihsZXQgZj0wO2Y8dTsrK2YpbFtmXT0obytmKSphO3JldHVybiBsfWZ1bmN0aW9uIEluKG4sZSx0KXtyZXR1cm4gZT0rZSxuPStuLHQ9K3QsTm4obixlLHQpWzJdfWZ1bmN0aW9uIE9uKG4sZSx0KXtlPStlLG49K24sdD0rdDtjb25zdCByPWU8bixvPXI/SW4oZSxuLHQpOkluKG4sZSx0KTtyZXR1cm4ocj8tMToxKSoobzwwPzEvLW86byl9ZnVuY3Rpb24gem4obixlLHQpe24ucHJvdG90eXBlPWUucHJvdG90eXBlPXQsdC5jb25zdHJ1Y3Rvcj1ufWZ1bmN0aW9uIGZlKG4sZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSk7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdO3JldHVybiB0fWZ1bmN0aW9uIGRuKCl7fXZhciB5bj0uNyxVbj0xL3luLHJuPSJcXHMqKFsrLV0/XFxkKylcXHMqIix4bj0iXFxzKihbKy1dPyg/OlxcZCpcXC4pP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsWj0iXFxzKihbKy1dPyg/OlxcZCpcXC4pP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLGZ0PS9eIyhbMC05YS1mXXszLDh9KSQvLGN0PW5ldyBSZWdFeHAoYF5yZ2JcXCgke3JufSwke3JufSwke3JufVxcKSRgKSxzdD1uZXcgUmVnRXhwKGBecmdiXFwoJHtafSwke1p9LCR7Wn1cXCkkYCksbHQ9bmV3IFJlZ0V4cChgXnJnYmFcXCgke3JufSwke3JufSwke3JufSwke3hufVxcKSRgKSxodD1uZXcgUmVnRXhwKGBecmdiYVxcKCR7Wn0sJHtafSwke1p9LCR7eG59XFwpJGApLGd0PW5ldyBSZWdFeHAoYF5oc2xcXCgke3hufSwke1p9LCR7Wn1cXCkkYCksbXQ9bmV3IFJlZ0V4cChgXmhzbGFcXCgke3hufSwke1p9LCR7Wn0sJHt4bn1cXCkkYCksY2U9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07em4oZG4scG4se2NvcHkobil7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyxuKX0sZGlzcGxheWFibGUoKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6c2UsZm9ybWF0SGV4OnNlLGZvcm1hdEhleDg6ZHQsZm9ybWF0SHNsOnl0LGZvcm1hdFJnYjpsZSx0b1N0cmluZzpsZX0pO2Z1bmN0aW9uIHNlKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gZHQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXg4KCl9ZnVuY3Rpb24geXQoKXtyZXR1cm4geWUodGhpcykuZm9ybWF0SHNsKCl9ZnVuY3Rpb24gbGUoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBwbihuKXt2YXIgZSx0O3JldHVybiBuPShuKyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwoZT1mdC5leGVjKG4pKT8odD1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLHQ9PT02P2hlKGUpOnQ9PT0zP25ldyBQKGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXxlJjI0MCwoZSYxNSk8PDR8ZSYxNSwxKTp0PT09OD9EbihlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LChlJjI1NSkvMjU1KTp0PT09ND9EbihlPj4xMiYxNXxlPj44JjI0MCxlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8ZSYyNDAsKChlJjE1KTw8NHxlJjE1KS8yNTUpOm51bGwpOihlPWN0LmV4ZWMobikpP25ldyBQKGVbMV0sZVsyXSxlWzNdLDEpOihlPXN0LmV4ZWMobikpP25ldyBQKGVbMV0qMjU1LzEwMCxlWzJdKjI1NS8xMDAsZVszXSoyNTUvMTAwLDEpOihlPWx0LmV4ZWMobikpP0RuKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPWh0LmV4ZWMobikpP0RuKGVbMV0qMjU1LzEwMCxlWzJdKjI1NS8xMDAsZVszXSoyNTUvMTAwLGVbNF0pOihlPWd0LmV4ZWMobikpP2RlKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9bXQuZXhlYyhuKSk/ZGUoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpjZS5oYXNPd25Qcm9wZXJ0eShuKT9oZShjZVtuXSk6bj09PSJ0cmFuc3BhcmVudCI/bmV3IFAoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBoZShuKXtyZXR1cm4gbmV3IFAobj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1LDEpfWZ1bmN0aW9uIERuKG4sZSx0LHIpe3JldHVybiByPD0wJiYobj1lPXQ9TmFOKSxuZXcgUChuLGUsdCxyKX1mdW5jdGlvbiB4dChuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIGRufHwobj1wbihuKSksbj8obj1uLnJnYigpLG5ldyBQKG4ucixuLmcsbi5iLG4ub3BhY2l0eSkpOm5ldyBQfWZ1bmN0aW9uIEVuKG4sZSx0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT94dChuKTpuZXcgUChuLGUsdCxyPz8xKX1mdW5jdGlvbiBQKG4sZSx0LHIpe3RoaXMucj0rbix0aGlzLmc9K2UsdGhpcy5iPSt0LHRoaXMub3BhY2l0eT0rcn16bihQLEVuLGZlKGRuLHticmlnaHRlcihuKXtyZXR1cm4gbj1uPT1udWxsP1VuOk1hdGgucG93KFVuLG4pLG5ldyBQKHRoaXMucipuLHRoaXMuZypuLHRoaXMuYipuLHRoaXMub3BhY2l0eSl9LGRhcmtlcihuKXtyZXR1cm4gbj1uPT1udWxsP3luOk1hdGgucG93KHluLG4pLG5ldyBQKHRoaXMucipuLHRoaXMuZypuLHRoaXMuYipuLHRoaXMub3BhY2l0eSl9LHJnYigpe3JldHVybiB0aGlzfSxjbGFtcCgpe3JldHVybiBuZXcgUChHKHRoaXMuciksRyh0aGlzLmcpLEcodGhpcy5iKSxrbih0aGlzLm9wYWNpdHkpKX0sZGlzcGxheWFibGUoKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OmdlLGZvcm1hdEhleDpnZSxmb3JtYXRIZXg4OnB0LGZvcm1hdFJnYjptZSx0b1N0cmluZzptZX0pKTtmdW5jdGlvbiBnZSgpe3JldHVybmAjJHtKKHRoaXMucil9JHtKKHRoaXMuZyl9JHtKKHRoaXMuYil9YH1mdW5jdGlvbiBwdCgpe3JldHVybmAjJHtKKHRoaXMucil9JHtKKHRoaXMuZyl9JHtKKHRoaXMuYil9JHtKKChpc05hTih0aGlzLm9wYWNpdHkpPzE6dGhpcy5vcGFjaXR5KSoyNTUpfWB9ZnVuY3Rpb24gbWUoKXtjb25zdCBuPWtuKHRoaXMub3BhY2l0eSk7cmV0dXJuYCR7bj09PTE/InJnYigiOiJyZ2JhKCJ9JHtHKHRoaXMucil9LCAke0codGhpcy5nKX0sICR7Ryh0aGlzLmIpfSR7bj09PTE/IikiOmAsICR7bn0pYH1gfWZ1bmN0aW9uIGtuKG4pe3JldHVybiBpc05hTihuKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSl9ZnVuY3Rpb24gRyhuKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZChuKXx8MCkpfWZ1bmN0aW9uIEoobil7cmV0dXJuIG49RyhuKSwobjwxNj8iMCI6IiIpK24udG9TdHJpbmcoMTYpfWZ1bmN0aW9uIGRlKG4sZSx0LHIpe3JldHVybiByPD0wP249ZT10PU5hTjp0PD0wfHx0Pj0xP249ZT1OYU46ZTw9MCYmKG49TmFOKSxuZXcgXyhuLGUsdCxyKX1mdW5jdGlvbiB5ZShuKXtpZihuIGluc3RhbmNlb2YgXylyZXR1cm4gbmV3IF8obi5oLG4ucyxuLmwsbi5vcGFjaXR5KTtpZihuIGluc3RhbmNlb2YgZG58fChuPXBuKG4pKSwhbilyZXR1cm4gbmV3IF87aWYobiBpbnN0YW5jZW9mIF8pcmV0dXJuIG47bj1uLnJnYigpO3ZhciBlPW4uci8yNTUsdD1uLmcvMjU1LHI9bi5iLzI1NSxvPU1hdGgubWluKGUsdCxyKSxpPU1hdGgubWF4KGUsdCxyKSxhPU5hTix1PWktbyxsPShpK28pLzI7cmV0dXJuIHU/KGU9PT1pP2E9KHQtcikvdSsodDxyKSo2OnQ9PT1pP2E9KHItZSkvdSsyOmE9KGUtdCkvdSs0LHUvPWw8LjU/aStvOjItaS1vLGEqPTYwKTp1PWw+MCYmbDwxPzA6YSxuZXcgXyhhLHUsbCxuLm9wYWNpdHkpfWZ1bmN0aW9uIHd0KG4sZSx0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT95ZShuKTpuZXcgXyhuLGUsdCxyPz8xKX1mdW5jdGlvbiBfKG4sZSx0LHIpe3RoaXMuaD0rbix0aGlzLnM9K2UsdGhpcy5sPSt0LHRoaXMub3BhY2l0eT0rcn16bihfLHd0LGZlKGRuLHticmlnaHRlcihuKXtyZXR1cm4gbj1uPT1udWxsP1VuOk1hdGgucG93KFVuLG4pLG5ldyBfKHRoaXMuaCx0aGlzLnMsdGhpcy5sKm4sdGhpcy5vcGFjaXR5KX0sZGFya2VyKG4pe3JldHVybiBuPW49PW51bGw/eW46TWF0aC5wb3coeW4sbiksbmV3IF8odGhpcy5oLHRoaXMucyx0aGlzLmwqbix0aGlzLm9wYWNpdHkpfSxyZ2IoKXt2YXIgbj10aGlzLmglMzYwKyh0aGlzLmg8MCkqMzYwLGU9aXNOYU4obil8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsdD10aGlzLmwscj10Kyh0PC41P3Q6MS10KSplLG89Mip0LXI7cmV0dXJuIG5ldyBQKF9uKG4+PTI0MD9uLTI0MDpuKzEyMCxvLHIpLF9uKG4sbyxyKSxfbihuPDEyMD9uKzI0MDpuLTEyMCxvLHIpLHRoaXMub3BhY2l0eSl9LGNsYW1wKCl7cmV0dXJuIG5ldyBfKHhlKHRoaXMuaCksU24odGhpcy5zKSxTbih0aGlzLmwpLGtuKHRoaXMub3BhY2l0eSkpfSxkaXNwbGF5YWJsZSgpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsKCl7Y29uc3Qgbj1rbih0aGlzLm9wYWNpdHkpO3JldHVybmAke249PT0xPyJoc2woIjoiaHNsYSgifSR7eGUodGhpcy5oKX0sICR7U24odGhpcy5zKSoxMDB9JSwgJHtTbih0aGlzLmwpKjEwMH0lJHtuPT09MT8iKSI6YCwgJHtufSlgfWB9fSkpO2Z1bmN0aW9uIHhlKG4pe3JldHVybiBuPShufHwwKSUzNjAsbjwwP24rMzYwOm59ZnVuY3Rpb24gU24obil7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oMSxufHwwKSl9ZnVuY3Rpb24gX24obixlLHQpe3JldHVybihuPDYwP2UrKHQtZSkqbi82MDpuPDE4MD90Om48MjQwP2UrKHQtZSkqKDI0MC1uKS82MDplKSoyNTV9dmFyIHFuPW49PigpPT5uO2Z1bmN0aW9uIE10KG4sZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuK3QqZX19ZnVuY3Rpb24gYnQobixlLHQpe3JldHVybiBuPU1hdGgucG93KG4sdCksZT1NYXRoLnBvdyhlLHQpLW4sdD0xL3QsZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgucG93KG4rciplLHQpfX1mdW5jdGlvbiB2dChuKXtyZXR1cm4obj0rbik9PTE/cGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC1lP2J0KGUsdCxuKTpxbihpc05hTihlKT90OmUpfX1mdW5jdGlvbiBwZShuLGUpe3ZhciB0PWUtbjtyZXR1cm4gdD9NdChuLHQpOnFuKGlzTmFOKG4pP2U6bil9dmFyIHdlPWZ1bmN0aW9uIG4oZSl7dmFyIHQ9dnQoZSk7ZnVuY3Rpb24gcihvLGkpe3ZhciBhPXQoKG89RW4obykpLnIsKGk9RW4oaSkpLnIpLHU9dChvLmcsaS5nKSxsPXQoby5iLGkuYiksZj1wZShvLm9wYWNpdHksaS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIG8ucj1hKGcpLG8uZz11KGcpLG8uYj1sKGcpLG8ub3BhY2l0eT1mKGcpLG8rIiJ9fXJldHVybiByLmdhbW1hPW4scn0oMSk7ZnVuY3Rpb24gVHQobixlKXtlfHwoZT1bXSk7dmFyIHQ9bj9NYXRoLm1pbihlLmxlbmd0aCxuLmxlbmd0aCk6MCxyPWUuc2xpY2UoKSxvO3JldHVybiBmdW5jdGlvbihpKXtmb3Iobz0wO288dDsrK28pcltvXT1uW29dKigxLWkpK2Vbb10qaTtyZXR1cm4gcn19ZnVuY3Rpb24gQ3Qobil7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhuKSYmIShuIGluc3RhbmNlb2YgRGF0YVZpZXcpfWZ1bmN0aW9uIE50KG4sZSl7dmFyIHQ9ZT9lLmxlbmd0aDowLHI9bj9NYXRoLm1pbih0LG4ubGVuZ3RoKTowLG89bmV3IEFycmF5KHIpLGk9bmV3IEFycmF5KHQpLGE7Zm9yKGE9MDthPHI7KythKW9bYV09Vm4oblthXSxlW2FdKTtmb3IoO2E8dDsrK2EpaVthXT1lW2FdO3JldHVybiBmdW5jdGlvbih1KXtmb3IoYT0wO2E8cjsrK2EpaVthXT1vW2FdKHUpO3JldHVybiBpfX1mdW5jdGlvbiBVdChuLGUpe3ZhciB0PW5ldyBEYXRlO3JldHVybiBuPStuLGU9K2UsZnVuY3Rpb24ocil7cmV0dXJuIHQuc2V0VGltZShuKigxLXIpK2UqciksdH19ZnVuY3Rpb24gJG4obixlKXtyZXR1cm4gbj0rbixlPStlLGZ1bmN0aW9uKHQpe3JldHVybiBuKigxLXQpK2UqdH19ZnVuY3Rpb24gRHQobixlKXt2YXIgdD17fSxyPXt9LG87KG49PT1udWxsfHx0eXBlb2YgbiE9Im9iamVjdCIpJiYobj17fSksKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCIpJiYoZT17fSk7Zm9yKG8gaW4gZSlvIGluIG4/dFtvXT1WbihuW29dLGVbb10pOnJbb109ZVtvXTtyZXR1cm4gZnVuY3Rpb24oaSl7Zm9yKG8gaW4gdClyW29dPXRbb10oaSk7cmV0dXJuIHJ9fXZhciBqbj0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csWm49bmV3IFJlZ0V4cChqbi5zb3VyY2UsImciKTtmdW5jdGlvbiBrdChuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24gU3Qobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBuKGUpKyIifX1mdW5jdGlvbiAkdChuLGUpe3ZhciB0PWpuLmxhc3RJbmRleD1abi5sYXN0SW5kZXg9MCxyLG8saSxhPS0xLHU9W10sbD1bXTtmb3Iobj1uKyIiLGU9ZSsiIjsocj1qbi5leGVjKG4pKSYmKG89Wm4uZXhlYyhlKSk7KShpPW8uaW5kZXgpPnQmJihpPWUuc2xpY2UodCxpKSx1W2FdP3VbYV0rPWk6dVsrK2FdPWkpLChyPXJbMF0pPT09KG89b1swXSk/dVthXT91W2FdKz1vOnVbKythXT1vOih1WysrYV09bnVsbCxsLnB1c2goe2k6YSx4OiRuKHIsbyl9KSksdD1abi5sYXN0SW5kZXg7cmV0dXJuIHQ8ZS5sZW5ndGgmJihpPWUuc2xpY2UodCksdVthXT91W2FdKz1pOnVbKythXT1pKSx1Lmxlbmd0aDwyP2xbMF0/U3QobFswXS54KTprdChlKTooZT1sLmxlbmd0aCxmdW5jdGlvbihmKXtmb3IodmFyIGc9MCxtO2c8ZTsrK2cpdVsobT1sW2ddKS5pXT1tLngoZik7cmV0dXJuIHUuam9pbigiIil9KX1mdW5jdGlvbiBWbihuLGUpe3ZhciB0PXR5cGVvZiBlLHI7cmV0dXJuIGU9PW51bGx8fHQ9PT0iYm9vbGVhbiI/cW4oZSk6KHQ9PT0ibnVtYmVyIj8kbjp0PT09InN0cmluZyI/KHI9cG4oZSkpPyhlPXIsd2UpOiR0OmUgaW5zdGFuY2VvZiBwbj93ZTplIGluc3RhbmNlb2YgRGF0ZT9VdDpDdChlKT9UdDpBcnJheS5pc0FycmF5KGUpP050OnR5cGVvZiBlLnZhbHVlT2YhPSJmdW5jdGlvbiImJnR5cGVvZiBlLnRvU3RyaW5nIT0iZnVuY3Rpb24ifHxpc05hTihlKT9EdDokbikobixlKX1mdW5jdGlvbiBGdChuLGUpe3JldHVybiBuPStuLGU9K2UsZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQobiooMS10KStlKnQpfX1mdW5jdGlvbiBIdChuKXtyZXR1cm4gTWF0aC5hYnMobj1NYXRoLnJvdW5kKG4pKT49MWUyMT9uLnRvTG9jYWxlU3RyaW5nKCJlbiIpLnJlcGxhY2UoLywvZywiIik6bi50b1N0cmluZygxMCl9ZnVuY3Rpb24gRm4obixlKXtpZigodD0obj1lP24udG9FeHBvbmVudGlhbChlLTEpOm4udG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKCJlIikpPDApcmV0dXJuIG51bGw7dmFyIHQscj1uLnNsaWNlKDAsdCk7cmV0dXJuW3IubGVuZ3RoPjE/clswXStyLnNsaWNlKDIpOnIsK24uc2xpY2UodCsxKV19ZnVuY3Rpb24gb24obil7cmV0dXJuIG49Rm4oTWF0aC5hYnMobikpLG4/blsxXTpOYU59ZnVuY3Rpb24gTHQobixlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXtmb3IodmFyIG89dC5sZW5ndGgsaT1bXSxhPTAsdT1uWzBdLGw9MDtvPjAmJnU+MCYmKGwrdSsxPnImJih1PU1hdGgubWF4KDEsci1sKSksaS5wdXNoKHQuc3Vic3RyaW5nKG8tPXUsbyt1KSksISgobCs9dSsxKT5yKSk7KXU9blthPShhKzEpJW4ubGVuZ3RoXTtyZXR1cm4gaS5yZXZlcnNlKCkuam9pbihlKX19ZnVuY3Rpb24gUHQobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24odCl7cmV0dXJuIG5bK3RdfSl9fXZhciBZdD0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBIbihuKXtpZighKGU9WXQuZXhlYyhuKSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIituKTt2YXIgZTtyZXR1cm4gbmV3IFhuKHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfUhuLnByb3RvdHlwZT1Ybi5wcm90b3R5cGU7ZnVuY3Rpb24gWG4obil7dGhpcy5maWxsPW4uZmlsbD09PXZvaWQgMD8iICI6bi5maWxsKyIiLHRoaXMuYWxpZ249bi5hbGlnbj09PXZvaWQgMD8iPiI6bi5hbGlnbisiIix0aGlzLnNpZ249bi5zaWduPT09dm9pZCAwPyItIjpuLnNpZ24rIiIsdGhpcy5zeW1ib2w9bi5zeW1ib2w9PT12b2lkIDA/IiI6bi5zeW1ib2wrIiIsdGhpcy56ZXJvPSEhbi56ZXJvLHRoaXMud2lkdGg9bi53aWR0aD09PXZvaWQgMD92b2lkIDA6K24ud2lkdGgsdGhpcy5jb21tYT0hIW4uY29tbWEsdGhpcy5wcmVjaXNpb249bi5wcmVjaXNpb249PT12b2lkIDA/dm9pZCAwOituLnByZWNpc2lvbix0aGlzLnRyaW09ISFuLnRyaW0sdGhpcy50eXBlPW4udHlwZT09PXZvaWQgMD8iIjpuLnR5cGUrIiJ9WG4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvPyIwIjoiIikrKHRoaXMud2lkdGg9PT12b2lkIDA/IiI6TWF0aC5tYXgoMSx0aGlzLndpZHRofDApKSsodGhpcy5jb21tYT8iLCI6IiIpKyh0aGlzLnByZWNpc2lvbj09PXZvaWQgMD8iIjoiLiIrTWF0aC5tYXgoMCx0aGlzLnByZWNpc2lvbnwwKSkrKHRoaXMudHJpbT8ifiI6IiIpK3RoaXMudHlwZX07ZnVuY3Rpb24gV3Qobil7bjpmb3IodmFyIGU9bi5sZW5ndGgsdD0xLHI9LTEsbzt0PGU7Kyt0KXN3aXRjaChuW3RdKXtjYXNlIi4iOnI9bz10O2JyZWFrO2Nhc2UiMCI6cj09PTAmJihyPXQpLG89dDticmVhaztkZWZhdWx0OmlmKCErblt0XSlicmVhayBuO3I+MCYmKHI9MCk7YnJlYWt9cmV0dXJuIHI+MD9uLnNsaWNlKDAscikrbi5zbGljZShvKzEpOm59dmFyIE1lO2Z1bmN0aW9uIEF0KG4sZSl7dmFyIHQ9Rm4obixlKTtpZighdClyZXR1cm4gbisiIjt2YXIgcj10WzBdLG89dFsxXSxpPW8tKE1lPU1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihvLzMpKSkqMykrMSxhPXIubGVuZ3RoO3JldHVybiBpPT09YT9yOmk+YT9yK25ldyBBcnJheShpLWErMSkuam9pbigiMCIpOmk+MD9yLnNsaWNlKDAsaSkrIi4iK3Iuc2xpY2UoaSk6IjAuIituZXcgQXJyYXkoMS1pKS5qb2luKCIwIikrRm4obixNYXRoLm1heCgwLGUraS0xKSlbMF19ZnVuY3Rpb24gYmUobixlKXt2YXIgdD1GbihuLGUpO2lmKCF0KXJldHVybiBuKyIiO3ZhciByPXRbMF0sbz10WzFdO3JldHVybiBvPDA/IjAuIituZXcgQXJyYXkoLW8pLmpvaW4oIjAiKStyOnIubGVuZ3RoPm8rMT9yLnNsaWNlKDAsbysxKSsiLiIrci5zbGljZShvKzEpOnIrbmV3IEFycmF5KG8tci5sZW5ndGgrMikuam9pbigiMCIpfXZhciB2ZT17IiUiOihuLGUpPT4obioxMDApLnRvRml4ZWQoZSksYjpuPT5NYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDIpLGM6bj0+bisiIixkOkh0LGU6KG4sZSk9Pm4udG9FeHBvbmVudGlhbChlKSxmOihuLGUpPT5uLnRvRml4ZWQoZSksZzoobixlKT0+bi50b1ByZWNpc2lvbihlKSxvOm49Pk1hdGgucm91bmQobikudG9TdHJpbmcoOCkscDoobixlKT0+YmUobioxMDAsZSkscjpiZSxzOkF0LFg6bj0+TWF0aC5yb3VuZChuKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSx4Om49Pk1hdGgucm91bmQobikudG9TdHJpbmcoMTYpfTtmdW5jdGlvbiBUZShuKXtyZXR1cm4gbn12YXIgQ2U9QXJyYXkucHJvdG90eXBlLm1hcCxOZT1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIsK1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl07ZnVuY3Rpb24gUnQobil7dmFyIGU9bi5ncm91cGluZz09PXZvaWQgMHx8bi50aG91c2FuZHM9PT12b2lkIDA/VGU6THQoQ2UuY2FsbChuLmdyb3VwaW5nLE51bWJlciksbi50aG91c2FuZHMrIiIpLHQ9bi5jdXJyZW5jeT09PXZvaWQgMD8iIjpuLmN1cnJlbmN5WzBdKyIiLHI9bi5jdXJyZW5jeT09PXZvaWQgMD8iIjpuLmN1cnJlbmN5WzFdKyIiLG89bi5kZWNpbWFsPT09dm9pZCAwPyIuIjpuLmRlY2ltYWwrIiIsaT1uLm51bWVyYWxzPT09dm9pZCAwP1RlOlB0KENlLmNhbGwobi5udW1lcmFscyxTdHJpbmcpKSxhPW4ucGVyY2VudD09PXZvaWQgMD8iJSI6bi5wZXJjZW50KyIiLHU9bi5taW51cz09PXZvaWQgMD8i4oiSIjpuLm1pbnVzKyIiLGw9bi5uYW49PT12b2lkIDA/Ik5hTiI6bi5uYW4rIiI7ZnVuY3Rpb24gZihtKXttPUhuKG0pO3ZhciBwPW0uZmlsbCxEPW0uYWxpZ24saz1tLnNpZ24sUj1tLnN5bWJvbCxZPW0uemVybyxxPW0ud2lkdGgsRT1tLmNvbW1hLCQ9bS5wcmVjaXNpb24sVz1tLnRyaW0saD1tLnR5cGU7aD09PSJuIj8oRT0hMCxoPSJnIik6dmVbaF18fCgkPT09dm9pZCAwJiYoJD0xMiksVz0hMCxoPSJnIiksKFl8fHA9PT0iMCImJkQ9PT0iPSIpJiYoWT0hMCxwPSIwIixEPSI9Iik7dmFyIGM9Uj09PSIkIj90OlI9PT0iIyImJi9bYm94WF0vLnRlc3QoaCk/IjAiK2gudG9Mb3dlckNhc2UoKToiIix4PVI9PT0iJCI/cjovWyVwXS8udGVzdChoKT9hOiIiLHc9dmVbaF0sTj0vW2RlZmdwcnMlXS8udGVzdChoKTskPSQ9PT12b2lkIDA/NjovW2dwcnNdLy50ZXN0KGgpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsJCkpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsJCkpO2Z1bmN0aW9uIHYoeSl7dmFyIEM9YyxTPXgsRixsbixobjtpZihoPT09ImMiKVM9dyh5KStTLHk9IiI7ZWxzZXt5PSt5O3ZhciBnbj15PDB8fDEveTwwO2lmKHk9aXNOYU4oeSk/bDp3KE1hdGguYWJzKHkpLCQpLFcmJih5PVd0KHkpKSxnbiYmK3k9PTAmJmshPT0iKyImJihnbj0hMSksQz0oZ24/az09PSIoIj9rOnU6az09PSItInx8az09PSIoIj8iIjprKStDLFM9KGg9PT0icyI/TmVbOCtNZS8zXToiIikrUysoZ24mJms9PT0iKCI/IikiOiIiKSxOKXtmb3IoRj0tMSxsbj15Lmxlbmd0aDsrK0Y8bG47KWlmKGhuPXkuY2hhckNvZGVBdChGKSw0OD5obnx8aG4+NTcpe1M9KGhuPT09NDY/byt5LnNsaWNlKEYrMSk6eS5zbGljZShGKSkrUyx5PXkuc2xpY2UoMCxGKTticmVha319fUUmJiFZJiYoeT1lKHksMS8wKSk7dmFyIG1uPUMubGVuZ3RoK3kubGVuZ3RoK1MubGVuZ3RoLGo9bW48cT9uZXcgQXJyYXkocS1tbisxKS5qb2luKHApOiIiO3N3aXRjaChFJiZZJiYoeT1lKGoreSxqLmxlbmd0aD9xLVMubGVuZ3RoOjEvMCksaj0iIiksRCl7Y2FzZSI8Ijp5PUMreStTK2o7YnJlYWs7Y2FzZSI9Ijp5PUMrait5K1M7YnJlYWs7Y2FzZSJeIjp5PWouc2xpY2UoMCxtbj1qLmxlbmd0aD4+MSkrQyt5K1Mrai5zbGljZShtbik7YnJlYWs7ZGVmYXVsdDp5PWorQyt5K1M7YnJlYWt9cmV0dXJuIGkoeSl9cmV0dXJuIHYudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gbSsiIn0sdn1mdW5jdGlvbiBnKG0scCl7dmFyIEQ9ZigobT1IbihtKSxtLnR5cGU9ImYiLG0pKSxrPU1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihvbihwKS8zKSkpKjMsUj1NYXRoLnBvdygxMCwtayksWT1OZVs4K2svM107cmV0dXJuIGZ1bmN0aW9uKHEpe3JldHVybiBEKFIqcSkrWX19cmV0dXJue2Zvcm1hdDpmLGZvcm1hdFByZWZpeDpnfX12YXIgTG4sVWUsRGU7SXQoe3Rob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdfSk7ZnVuY3Rpb24gSXQobil7cmV0dXJuIExuPVJ0KG4pLFVlPUxuLmZvcm1hdCxEZT1Mbi5mb3JtYXRQcmVmaXgsTG59ZnVuY3Rpb24gT3Qobil7cmV0dXJuIE1hdGgubWF4KDAsLW9uKE1hdGguYWJzKG4pKSl9ZnVuY3Rpb24genQobixlKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3Iob24oZSkvMykpKSozLW9uKE1hdGguYWJzKG4pKSl9ZnVuY3Rpb24gRXQobixlKXtyZXR1cm4gbj1NYXRoLmFicyhuKSxlPU1hdGguYWJzKGUpLW4sTWF0aC5tYXgoMCxvbihlKS1vbihuKSkrMX1mdW5jdGlvbiBrZShuLGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMucmFuZ2Uobik7YnJlYWs7ZGVmYXVsdDp0aGlzLnJhbmdlKGUpLmRvbWFpbihuKTticmVha31yZXR1cm4gdGhpc31mdW5jdGlvbiBfdChuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24gcXQobil7cmV0dXJuK259dmFyIFNlPVswLDFdO2Z1bmN0aW9uIGFuKG4pe3JldHVybiBufWZ1bmN0aW9uIEJuKG4sZSl7cmV0dXJuKGUtPW49K24pP2Z1bmN0aW9uKHQpe3JldHVybih0LW4pL2V9Ol90KGlzTmFOKGUpP05hTjouNSl9ZnVuY3Rpb24ganQobixlKXt2YXIgdDtyZXR1cm4gbj5lJiYodD1uLG49ZSxlPXQpLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLm1heChuLE1hdGgubWluKGUscikpfX1mdW5jdGlvbiBadChuLGUsdCl7dmFyIHI9blswXSxvPW5bMV0saT1lWzBdLGE9ZVsxXTtyZXR1cm4gbzxyPyhyPUJuKG8sciksaT10KGEsaSkpOihyPUJuKHIsbyksaT10KGksYSkpLGZ1bmN0aW9uKHUpe3JldHVybiBpKHIodSkpfX1mdW5jdGlvbiBWdChuLGUsdCl7dmFyIHI9TWF0aC5taW4obi5sZW5ndGgsZS5sZW5ndGgpLTEsbz1uZXcgQXJyYXkociksaT1uZXcgQXJyYXkociksYT0tMTtmb3IobltyXTxuWzBdJiYobj1uLnNsaWNlKCkucmV2ZXJzZSgpLGU9ZS5zbGljZSgpLnJldmVyc2UoKSk7KythPHI7KW9bYV09Qm4oblthXSxuW2ErMV0pLGlbYV09dChlW2FdLGVbYSsxXSk7cmV0dXJuIGZ1bmN0aW9uKHUpe3ZhciBsPXJ0KG4sdSwxLHIpLTE7cmV0dXJuIGlbbF0ob1tsXSh1KSl9fWZ1bmN0aW9uICRlKG4sZSl7cmV0dXJuIGUuZG9tYWluKG4uZG9tYWluKCkpLnJhbmdlKG4ucmFuZ2UoKSkuaW50ZXJwb2xhdGUobi5pbnRlcnBvbGF0ZSgpKS5jbGFtcChuLmNsYW1wKCkpLnVua25vd24obi51bmtub3duKCkpfWZ1bmN0aW9uIFh0KCl7dmFyIG49U2UsZT1TZSx0PVZuLHIsbyxpLGE9YW4sdSxsLGY7ZnVuY3Rpb24gZygpe3ZhciBwPU1hdGgubWluKG4ubGVuZ3RoLGUubGVuZ3RoKTtyZXR1cm4gYSE9PWFuJiYoYT1qdChuWzBdLG5bcC0xXSkpLHU9cD4yP1Z0Olp0LGw9Zj1udWxsLG19ZnVuY3Rpb24gbShwKXtyZXR1cm4gcD09bnVsbHx8aXNOYU4ocD0rcCk/aToobHx8KGw9dShuLm1hcChyKSxlLHQpKSkocihhKHApKSl9cmV0dXJuIG0uaW52ZXJ0PWZ1bmN0aW9uKHApe3JldHVybiBhKG8oKGZ8fChmPXUoZSxuLm1hcChyKSwkbikpKShwKSkpfSxtLmRvbWFpbj1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1BcnJheS5mcm9tKHAscXQpLGcoKSk6bi5zbGljZSgpfSxtLnJhbmdlPWZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUFycmF5LmZyb20ocCksZygpKTplLnNsaWNlKCl9LG0ucmFuZ2VSb3VuZD1mdW5jdGlvbihwKXtyZXR1cm4gZT1BcnJheS5mcm9tKHApLHQ9RnQsZygpfSxtLmNsYW1wPWZ1bmN0aW9uKHApe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXA/ITA6YW4sZygpKTphIT09YW59LG0uaW50ZXJwb2xhdGU9ZnVuY3Rpb24ocCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9cCxnKCkpOnR9LG0udW5rbm93bj1mdW5jdGlvbihwKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1wLG0pOml9LGZ1bmN0aW9uKHAsRCl7cmV0dXJuIHI9cCxvPUQsZygpfX1mdW5jdGlvbiBGZSgpe3JldHVybiBYdCgpKGFuLGFuKX1mdW5jdGlvbiBCdChuLGUsdCxyKXt2YXIgbz1PbihuLGUsdCksaTtzd2l0Y2gocj1IbihyPz8iLGYiKSxyLnR5cGUpe2Nhc2UicyI6e3ZhciBhPU1hdGgubWF4KE1hdGguYWJzKG4pLE1hdGguYWJzKGUpKTtyZXR1cm4gci5wcmVjaXNpb249PW51bGwmJiFpc05hTihpPXp0KG8sYSkpJiYoci5wcmVjaXNpb249aSksRGUocixhKX1jYXNlIiI6Y2FzZSJlIjpjYXNlImciOmNhc2UicCI6Y2FzZSJyIjp7ci5wcmVjaXNpb249PW51bGwmJiFpc05hTihpPUV0KG8sTWF0aC5tYXgoTWF0aC5hYnMobiksTWF0aC5hYnMoZSkpKSkmJihyLnByZWNpc2lvbj1pLShyLnR5cGU9PT0iZSIpKTticmVha31jYXNlImYiOmNhc2UiJSI6e3IucHJlY2lzaW9uPT1udWxsJiYhaXNOYU4oaT1PdChvKSkmJihyLnByZWNpc2lvbj1pLShyLnR5cGU9PT0iJSIpKjIpO2JyZWFrfX1yZXR1cm4gVWUocil9ZnVuY3Rpb24gUXQobil7dmFyIGU9bi5kb21haW47cmV0dXJuIG4udGlja3M9ZnVuY3Rpb24odCl7dmFyIHI9ZSgpO3JldHVybiB1dChyWzBdLHJbci5sZW5ndGgtMV0sdD8/MTApfSxuLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxyKXt2YXIgbz1lKCk7cmV0dXJuIEJ0KG9bMF0sb1tvLmxlbmd0aC0xXSx0Pz8xMCxyKX0sbi5uaWNlPWZ1bmN0aW9uKHQpe3Q9PW51bGwmJih0PTEwKTt2YXIgcj1lKCksbz0wLGk9ci5sZW5ndGgtMSxhPXJbb10sdT1yW2ldLGwsZixnPTEwO2Zvcih1PGEmJihmPWEsYT11LHU9ZixmPW8sbz1pLGk9Zik7Zy0tID4wOyl7aWYoZj1JbihhLHUsdCksZj09PWwpcmV0dXJuIHJbb109YSxyW2ldPXUsZShyKTtpZihmPjApYT1NYXRoLmZsb29yKGEvZikqZix1PU1hdGguY2VpbCh1L2YpKmY7ZWxzZSBpZihmPDApYT1NYXRoLmNlaWwoYSpmKS9mLHU9TWF0aC5mbG9vcih1KmYpL2Y7ZWxzZSBicmVhaztsPWZ9cmV0dXJuIG59LG59ZnVuY3Rpb24gSGUoKXt2YXIgbj1GZSgpO3JldHVybiBuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gJGUobixIZSgpKX0sa2UuYXBwbHkobixhcmd1bWVudHMpLFF0KG4pfWZ1bmN0aW9uIEd0KG4sZSl7bj1uLnNsaWNlKCk7dmFyIHQ9MCxyPW4ubGVuZ3RoLTEsbz1uW3RdLGk9bltyXSxhO3JldHVybiBpPG8mJihhPXQsdD1yLHI9YSxhPW8sbz1pLGk9YSksblt0XT1lLmZsb29yKG8pLG5bcl09ZS5jZWlsKGkpLG59Y29uc3QgUW49bmV3IERhdGUsR249bmV3IERhdGU7ZnVuY3Rpb24gSChuLGUsdCxyKXtmdW5jdGlvbiBvKGkpe3JldHVybiBuKGk9YXJndW1lbnRzLmxlbmd0aD09PTA/bmV3IERhdGU6bmV3IERhdGUoK2kpKSxpfXJldHVybiBvLmZsb29yPWk9PihuKGk9bmV3IERhdGUoK2kpKSxpKSxvLmNlaWw9aT0+KG4oaT1uZXcgRGF0ZShpLTEpKSxlKGksMSksbihpKSxpKSxvLnJvdW5kPWk9Pntjb25zdCBhPW8oaSksdT1vLmNlaWwoaSk7cmV0dXJuIGktYTx1LWk/YTp1fSxvLm9mZnNldD0oaSxhKT0+KGUoaT1uZXcgRGF0ZSgraSksYT09bnVsbD8xOk1hdGguZmxvb3IoYSkpLGkpLG8ucmFuZ2U9KGksYSx1KT0+e2NvbnN0IGw9W107aWYoaT1vLmNlaWwoaSksdT11PT1udWxsPzE6TWF0aC5mbG9vcih1KSwhKGk8YSl8fCEodT4wKSlyZXR1cm4gbDtsZXQgZjtkbyBsLnB1c2goZj1uZXcgRGF0ZSgraSkpLGUoaSx1KSxuKGkpO3doaWxlKGY8aSYmaTxhKTtyZXR1cm4gbH0sby5maWx0ZXI9aT0+SChhPT57aWYoYT49YSlmb3IoO24oYSksIWkoYSk7KWEuc2V0VGltZShhLTEpfSwoYSx1KT0+e2lmKGE+PWEpaWYodTwwKWZvcig7Kyt1PD0wOylmb3IoO2UoYSwtMSksIWkoYSk7KTtlbHNlIGZvcig7LS11Pj0wOylmb3IoO2UoYSwxKSwhaShhKTspO30pLHQmJihvLmNvdW50PShpLGEpPT4oUW4uc2V0VGltZSgraSksR24uc2V0VGltZSgrYSksbihRbiksbihHbiksTWF0aC5mbG9vcih0KFFuLEduKSkpLG8uZXZlcnk9aT0+KGk9TWF0aC5mbG9vcihpKSwhaXNGaW5pdGUoaSl8fCEoaT4wKT9udWxsOmk+MT9vLmZpbHRlcihyP2E9PnIoYSklaT09PTA6YT0+by5jb3VudCgwLGEpJWk9PT0wKTpvKSksb31jb25zdCBQbj1IKCgpPT57fSwobixlKT0+e24uc2V0VGltZSgrbitlKX0sKG4sZSk9PmUtbik7UG4uZXZlcnk9bj0+KG49TWF0aC5mbG9vcihuKSwhaXNGaW5pdGUobil8fCEobj4wKT9udWxsOm4+MT9IKGU9PntlLnNldFRpbWUoTWF0aC5mbG9vcihlL24pKm4pfSwoZSx0KT0+e2Uuc2V0VGltZSgrZSt0Km4pfSwoZSx0KT0+KHQtZSkvbik6UG4pLFBuLnJhbmdlO2NvbnN0IFY9MWUzLHo9Vio2MCxYPXoqNjAsQj1YKjI0LEpuPUIqNyxMZT1CKjMwLEtuPUIqMzY1LHVuPUgobj0+e24uc2V0VGltZShuLW4uZ2V0TWlsbGlzZWNvbmRzKCkpfSwobixlKT0+e24uc2V0VGltZSgrbitlKlYpfSwobixlKT0+KGUtbikvVixuPT5uLmdldFVUQ1NlY29uZHMoKSk7dW4ucmFuZ2U7Y29uc3QgbmU9SChuPT57bi5zZXRUaW1lKG4tbi5nZXRNaWxsaXNlY29uZHMoKS1uLmdldFNlY29uZHMoKSpWKX0sKG4sZSk9PntuLnNldFRpbWUoK24rZSp6KX0sKG4sZSk9PihlLW4pL3osbj0+bi5nZXRNaW51dGVzKCkpO25lLnJhbmdlLEgobj0+e24uc2V0VVRDU2Vjb25kcygwLDApfSwobixlKT0+e24uc2V0VGltZSgrbitlKnopfSwobixlKT0+KGUtbikveixuPT5uLmdldFVUQ01pbnV0ZXMoKSkucmFuZ2U7Y29uc3QgZWU9SChuPT57bi5zZXRUaW1lKG4tbi5nZXRNaWxsaXNlY29uZHMoKS1uLmdldFNlY29uZHMoKSpWLW4uZ2V0TWludXRlcygpKnopfSwobixlKT0+e24uc2V0VGltZSgrbitlKlgpfSwobixlKT0+KGUtbikvWCxuPT5uLmdldEhvdXJzKCkpO2VlLnJhbmdlLEgobj0+e24uc2V0VVRDTWludXRlcygwLDAsMCl9LChuLGUpPT57bi5zZXRUaW1lKCtuK2UqWCl9LChuLGUpPT4oZS1uKS9YLG49Pm4uZ2V0VVRDSG91cnMoKSkucmFuZ2U7Y29uc3Qgd249SChuPT5uLnNldEhvdXJzKDAsMCwwLDApLChuLGUpPT5uLnNldERhdGUobi5nZXREYXRlKCkrZSksKG4sZSk9PihlLW4tKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS1uLmdldFRpbWV6b25lT2Zmc2V0KCkpKnopL0Isbj0+bi5nZXREYXRlKCktMSk7d24ucmFuZ2U7Y29uc3QgdGU9SChuPT57bi5zZXRVVENIb3VycygwLDAsMCwwKX0sKG4sZSk9PntuLnNldFVUQ0RhdGUobi5nZXRVVENEYXRlKCkrZSl9LChuLGUpPT4oZS1uKS9CLG49Pm4uZ2V0VVRDRGF0ZSgpLTEpO3RlLnJhbmdlLEgobj0+e24uc2V0VVRDSG91cnMoMCwwLDAsMCl9LChuLGUpPT57bi5zZXRVVENEYXRlKG4uZ2V0VVRDRGF0ZSgpK2UpfSwobixlKT0+KGUtbikvQixuPT5NYXRoLmZsb29yKG4vQikpLnJhbmdlO2Z1bmN0aW9uIEsobil7cmV0dXJuIEgoZT0+e2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LW4pJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9LChlLHQpPT57ZS5zZXREYXRlKGUuZ2V0RGF0ZSgpK3QqNyl9LChlLHQpPT4odC1lLSh0LmdldFRpbWV6b25lT2Zmc2V0KCktZS5nZXRUaW1lem9uZU9mZnNldCgpKSp6KS9Kbil9Y29uc3QgWW49SygwKSxXbj1LKDEpLEp0PUsoMiksS3Q9SygzKSxmbj1LKDQpLG5yPUsoNSksZXI9Syg2KTtZbi5yYW5nZSxXbi5yYW5nZSxKdC5yYW5nZSxLdC5yYW5nZSxmbi5yYW5nZSxuci5yYW5nZSxlci5yYW5nZTtmdW5jdGlvbiBubihuKXtyZXR1cm4gSChlPT57ZS5zZXRVVENEYXRlKGUuZ2V0VVRDRGF0ZSgpLShlLmdldFVUQ0RheSgpKzctbiklNyksZS5zZXRVVENIb3VycygwLDAsMCwwKX0sKGUsdCk9PntlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCkrdCo3KX0sKGUsdCk9Pih0LWUpL0puKX1jb25zdCBQZT1ubigwKSxBbj1ubigxKSx0cj1ubigyKSxycj1ubigzKSxjbj1ubig0KSxvcj1ubig1KSxpcj1ubig2KTtQZS5yYW5nZSxBbi5yYW5nZSx0ci5yYW5nZSxyci5yYW5nZSxjbi5yYW5nZSxvci5yYW5nZSxpci5yYW5nZTtjb25zdCByZT1IKG49PntuLnNldERhdGUoMSksbi5zZXRIb3VycygwLDAsMCwwKX0sKG4sZSk9PntuLnNldE1vbnRoKG4uZ2V0TW9udGgoKStlKX0sKG4sZSk9PmUuZ2V0TW9udGgoKS1uLmdldE1vbnRoKCkrKGUuZ2V0RnVsbFllYXIoKS1uLmdldEZ1bGxZZWFyKCkpKjEyLG49Pm4uZ2V0TW9udGgoKSk7cmUucmFuZ2UsSChuPT57bi5zZXRVVENEYXRlKDEpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LChuLGUpPT57bi5zZXRVVENNb250aChuLmdldFVUQ01vbnRoKCkrZSl9LChuLGUpPT5lLmdldFVUQ01vbnRoKCktbi5nZXRVVENNb250aCgpKyhlLmdldFVUQ0Z1bGxZZWFyKCktbi5nZXRVVENGdWxsWWVhcigpKSoxMixuPT5uLmdldFVUQ01vbnRoKCkpLnJhbmdlO2NvbnN0IFE9SChuPT57bi5zZXRNb250aCgwLDEpLG4uc2V0SG91cnMoMCwwLDAsMCl9LChuLGUpPT57bi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrZSl9LChuLGUpPT5lLmdldEZ1bGxZZWFyKCktbi5nZXRGdWxsWWVhcigpLG49Pm4uZ2V0RnVsbFllYXIoKSk7US5ldmVyeT1uPT4haXNGaW5pdGUobj1NYXRoLmZsb29yKG4pKXx8IShuPjApP251bGw6SChlPT57ZS5zZXRGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0RnVsbFllYXIoKS9uKSpuKSxlLnNldE1vbnRoKDAsMSksZS5zZXRIb3VycygwLDAsMCwwKX0sKGUsdCk9PntlLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSt0Km4pfSksUS5yYW5nZTtjb25zdCBlbj1IKG49PntuLnNldFVUQ01vbnRoKDAsMSksbi5zZXRVVENIb3VycygwLDAsMCwwKX0sKG4sZSk9PntuLnNldFVUQ0Z1bGxZZWFyKG4uZ2V0VVRDRnVsbFllYXIoKStlKX0sKG4sZSk9PmUuZ2V0VVRDRnVsbFllYXIoKS1uLmdldFVUQ0Z1bGxZZWFyKCksbj0+bi5nZXRVVENGdWxsWWVhcigpKTtlbi5ldmVyeT1uPT4haXNGaW5pdGUobj1NYXRoLmZsb29yKG4pKXx8IShuPjApP251bGw6SChlPT57ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS9uKSpuKSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0sKGUsdCk9PntlLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0VVRDRnVsbFllYXIoKSt0Km4pfSksZW4ucmFuZ2U7ZnVuY3Rpb24gYXIobixlLHQscixvLGkpe2NvbnN0IGE9W1t1biwxLFZdLFt1biw1LDUqVl0sW3VuLDE1LDE1KlZdLFt1biwzMCwzMCpWXSxbaSwxLHpdLFtpLDUsNSp6XSxbaSwxNSwxNSp6XSxbaSwzMCwzMCp6XSxbbywxLFhdLFtvLDMsMypYXSxbbyw2LDYqWF0sW28sMTIsMTIqWF0sW3IsMSxCXSxbciwyLDIqQl0sW3QsMSxKbl0sW2UsMSxMZV0sW2UsMywzKkxlXSxbbiwxLEtuXV07ZnVuY3Rpb24gdShmLGcsbSl7Y29uc3QgcD1nPGY7cCYmKFtmLGddPVtnLGZdKTtjb25zdCBEPW0mJnR5cGVvZiBtLnJhbmdlPT0iZnVuY3Rpb24iP206bChmLGcsbSksaz1EP0QucmFuZ2UoZiwrZysxKTpbXTtyZXR1cm4gcD9rLnJldmVyc2UoKTprfWZ1bmN0aW9uIGwoZixnLG0pe2NvbnN0IHA9TWF0aC5hYnMoZy1mKS9tLEQ9Um4oKFssLFldKT0+WSkucmlnaHQoYSxwKTtpZihEPT09YS5sZW5ndGgpcmV0dXJuIG4uZXZlcnkoT24oZi9LbixnL0tuLG0pKTtpZihEPT09MClyZXR1cm4gUG4uZXZlcnkoTWF0aC5tYXgoT24oZixnLG0pLDEpKTtjb25zdFtrLFJdPWFbcC9hW0QtMV1bMl08YVtEXVsyXS9wP0QtMTpEXTtyZXR1cm4gay5ldmVyeShSKX1yZXR1cm5bdSxsXX1jb25zdFt1cixmcl09YXIoUSxyZSxZbix3bixlZSxuZSk7ZnVuY3Rpb24gb2Uobil7aWYoMDw9bi55JiZuLnk8MTAwKXt2YXIgZT1uZXcgRGF0ZSgtMSxuLm0sbi5kLG4uSCxuLk0sbi5TLG4uTCk7cmV0dXJuIGUuc2V0RnVsbFllYXIobi55KSxlfXJldHVybiBuZXcgRGF0ZShuLnksbi5tLG4uZCxuLkgsbi5NLG4uUyxuLkwpfWZ1bmN0aW9uIGllKG4pe2lmKDA8PW4ueSYmbi55PDEwMCl7dmFyIGU9bmV3IERhdGUoRGF0ZS5VVEMoLTEsbi5tLG4uZCxuLkgsbi5NLG4uUyxuLkwpKTtyZXR1cm4gZS5zZXRVVENGdWxsWWVhcihuLnkpLGV9cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKG4ueSxuLm0sbi5kLG4uSCxuLk0sbi5TLG4uTCkpfWZ1bmN0aW9uIE1uKG4sZSx0KXtyZXR1cm57eTpuLG06ZSxkOnQsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiBjcihuKXt2YXIgZT1uLmRhdGVUaW1lLHQ9bi5kYXRlLHI9bi50aW1lLG89bi5wZXJpb2RzLGk9bi5kYXlzLGE9bi5zaG9ydERheXMsdT1uLm1vbnRocyxsPW4uc2hvcnRNb250aHMsZj1ibihvKSxnPXZuKG8pLG09Ym4oaSkscD12bihpKSxEPWJuKGEpLGs9dm4oYSksUj1ibih1KSxZPXZuKHUpLHE9Ym4obCksRT12bihsKSwkPXthOmduLEE6bW4sYjpqLEI6U28sYzpudWxsLGQ6T2UsZTpPZSxmOkhyLGc6RXIsRzpxcixIOlNyLEk6JHIsajpGcixMOnplLG06THIsTTpQcixwOiRvLHE6Rm8sUTpWZSxzOlhlLFM6WXIsdTpXcixVOkFyLFY6UnIsdzpJcixXOk9yLHg6bnVsbCxYOm51bGwseTp6cixZOl9yLFo6anIsIiUiOlplfSxXPXthOkhvLEE6TG8sYjpQbyxCOllvLGM6bnVsbCxkOl9lLGU6X2UsZjpCcixnOmlvLEc6dW8sSDpacixJOlZyLGo6WHIsTDpxZSxtOlFyLE06R3IscDpXbyxxOkFvLFE6VmUsczpYZSxTOkpyLHU6S3IsVTpubyxWOmVvLHc6dG8sVzpybyx4Om51bGwsWDpudWxsLHk6b28sWTphbyxaOmZvLCIlIjpaZX0saD17YTp2LEE6eSxiOkMsQjpTLGM6RixkOlJlLGU6UmUsZjpOcixnOkFlLEc6V2UsSDpJZSxJOkllLGo6YnIsTDpDcixtOk1yLE06dnIscDpOLHE6d3IsUTpEcixzOmtyLFM6VHIsdTptcixVOmRyLFY6eXIsdzpncixXOnhyLHg6bG4sWDpobix5OkFlLFk6V2UsWjpwciwiJSI6VXJ9OyQueD1jKHQsJCksJC5YPWMociwkKSwkLmM9YyhlLCQpLFcueD1jKHQsVyksVy5YPWMocixXKSxXLmM9YyhlLFcpO2Z1bmN0aW9uIGMoZCxNKXtyZXR1cm4gZnVuY3Rpb24oVCl7dmFyIHM9W10sQT0tMSxVPTAsST1kLmxlbmd0aCxPLHRuLEplO2ZvcihUIGluc3RhbmNlb2YgRGF0ZXx8KFQ9bmV3IERhdGUoK1QpKTsrK0E8STspZC5jaGFyQ29kZUF0KEEpPT09MzcmJihzLnB1c2goZC5zbGljZShVLEEpKSwodG49WWVbTz1kLmNoYXJBdCgrK0EpXSkhPW51bGw/Tz1kLmNoYXJBdCgrK0EpOnRuPU89PT0iZSI/IiAiOiIwIiwoSmU9TVtPXSkmJihPPUplKFQsdG4pKSxzLnB1c2goTyksVT1BKzEpO3JldHVybiBzLnB1c2goZC5zbGljZShVLEEpKSxzLmpvaW4oIiIpfX1mdW5jdGlvbiB4KGQsTSl7cmV0dXJuIGZ1bmN0aW9uKFQpe3ZhciBzPU1uKDE5MDAsdm9pZCAwLDEpLEE9dyhzLGQsVCs9IiIsMCksVSxJO2lmKEEhPVQubGVuZ3RoKXJldHVybiBudWxsO2lmKCJRImluIHMpcmV0dXJuIG5ldyBEYXRlKHMuUSk7aWYoInMiaW4gcylyZXR1cm4gbmV3IERhdGUocy5zKjFlMysoIkwiaW4gcz9zLkw6MCkpO2lmKE0mJiEoIloiaW4gcykmJihzLlo9MCksInAiaW4gcyYmKHMuSD1zLkglMTIrcy5wKjEyKSxzLm09PT12b2lkIDAmJihzLm09InEiaW4gcz9zLnE6MCksIlYiaW4gcyl7aWYocy5WPDF8fHMuVj41MylyZXR1cm4gbnVsbDsidyJpbiBzfHwocy53PTEpLCJaImluIHM/KFU9aWUoTW4ocy55LDAsMSkpLEk9VS5nZXRVVENEYXkoKSxVPUk+NHx8ST09PTA/QW4uY2VpbChVKTpBbihVKSxVPXRlLm9mZnNldChVLChzLlYtMSkqNykscy55PVUuZ2V0VVRDRnVsbFllYXIoKSxzLm09VS5nZXRVVENNb250aCgpLHMuZD1VLmdldFVUQ0RhdGUoKSsocy53KzYpJTcpOihVPW9lKE1uKHMueSwwLDEpKSxJPVUuZ2V0RGF5KCksVT1JPjR8fEk9PT0wP1duLmNlaWwoVSk6V24oVSksVT13bi5vZmZzZXQoVSwocy5WLTEpKjcpLHMueT1VLmdldEZ1bGxZZWFyKCkscy5tPVUuZ2V0TW9udGgoKSxzLmQ9VS5nZXREYXRlKCkrKHMudys2KSU3KX1lbHNlKCJXImluIHN8fCJVImluIHMpJiYoInciaW4gc3x8KHMudz0idSJpbiBzP3MudSU3OiJXImluIHM/MTowKSxJPSJaImluIHM/aWUoTW4ocy55LDAsMSkpLmdldFVUQ0RheSgpOm9lKE1uKHMueSwwLDEpKS5nZXREYXkoKSxzLm09MCxzLmQ9IlciaW4gcz8ocy53KzYpJTcrcy5XKjctKEkrNSklNzpzLncrcy5VKjctKEkrNiklNyk7cmV0dXJuIloiaW4gcz8ocy5IKz1zLlovMTAwfDAscy5NKz1zLlolMTAwLGllKHMpKTpvZShzKX19ZnVuY3Rpb24gdyhkLE0sVCxzKXtmb3IodmFyIEE9MCxVPU0ubGVuZ3RoLEk9VC5sZW5ndGgsTyx0bjtBPFU7KXtpZihzPj1JKXJldHVybi0xO2lmKE89TS5jaGFyQ29kZUF0KEErKyksTz09PTM3KXtpZihPPU0uY2hhckF0KEErKyksdG49aFtPIGluIFllP00uY2hhckF0KEErKyk6T10sIXRufHwocz10bihkLFQscykpPDApcmV0dXJuLTF9ZWxzZSBpZihPIT1ULmNoYXJDb2RlQXQocysrKSlyZXR1cm4tMX1yZXR1cm4gc31mdW5jdGlvbiBOKGQsTSxUKXt2YXIgcz1mLmV4ZWMoTS5zbGljZShUKSk7cmV0dXJuIHM/KGQucD1nLmdldChzWzBdLnRvTG93ZXJDYXNlKCkpLFQrc1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHYoZCxNLFQpe3ZhciBzPUQuZXhlYyhNLnNsaWNlKFQpKTtyZXR1cm4gcz8oZC53PWsuZ2V0KHNbMF0udG9Mb3dlckNhc2UoKSksVCtzWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geShkLE0sVCl7dmFyIHM9bS5leGVjKE0uc2xpY2UoVCkpO3JldHVybiBzPyhkLnc9cC5nZXQoc1swXS50b0xvd2VyQ2FzZSgpKSxUK3NbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBDKGQsTSxUKXt2YXIgcz1xLmV4ZWMoTS5zbGljZShUKSk7cmV0dXJuIHM/KGQubT1FLmdldChzWzBdLnRvTG93ZXJDYXNlKCkpLFQrc1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFMoZCxNLFQpe3ZhciBzPVIuZXhlYyhNLnNsaWNlKFQpKTtyZXR1cm4gcz8oZC5tPVkuZ2V0KHNbMF0udG9Mb3dlckNhc2UoKSksVCtzWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRihkLE0sVCl7cmV0dXJuIHcoZCxlLE0sVCl9ZnVuY3Rpb24gbG4oZCxNLFQpe3JldHVybiB3KGQsdCxNLFQpfWZ1bmN0aW9uIGhuKGQsTSxUKXtyZXR1cm4gdyhkLHIsTSxUKX1mdW5jdGlvbiBnbihkKXtyZXR1cm4gYVtkLmdldERheSgpXX1mdW5jdGlvbiBtbihkKXtyZXR1cm4gaVtkLmdldERheSgpXX1mdW5jdGlvbiBqKGQpe3JldHVybiBsW2QuZ2V0TW9udGgoKV19ZnVuY3Rpb24gU28oZCl7cmV0dXJuIHVbZC5nZXRNb250aCgpXX1mdW5jdGlvbiAkbyhkKXtyZXR1cm4gb1srKGQuZ2V0SG91cnMoKT49MTIpXX1mdW5jdGlvbiBGbyhkKXtyZXR1cm4gMSt+fihkLmdldE1vbnRoKCkvMyl9ZnVuY3Rpb24gSG8oZCl7cmV0dXJuIGFbZC5nZXRVVENEYXkoKV19ZnVuY3Rpb24gTG8oZCl7cmV0dXJuIGlbZC5nZXRVVENEYXkoKV19ZnVuY3Rpb24gUG8oZCl7cmV0dXJuIGxbZC5nZXRVVENNb250aCgpXX1mdW5jdGlvbiBZbyhkKXtyZXR1cm4gdVtkLmdldFVUQ01vbnRoKCldfWZ1bmN0aW9uIFdvKGQpe3JldHVybiBvWysoZC5nZXRVVENIb3VycygpPj0xMildfWZ1bmN0aW9uIEFvKGQpe3JldHVybiAxK35+KGQuZ2V0VVRDTW9udGgoKS8zKX1yZXR1cm57Zm9ybWF0OmZ1bmN0aW9uKGQpe3ZhciBNPWMoZCs9IiIsJCk7cmV0dXJuIE0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTX0scGFyc2U6ZnVuY3Rpb24oZCl7dmFyIE09eChkKz0iIiwhMSk7cmV0dXJuIE0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTX0sdXRjRm9ybWF0OmZ1bmN0aW9uKGQpe3ZhciBNPWMoZCs9IiIsVyk7cmV0dXJuIE0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTX0sdXRjUGFyc2U6ZnVuY3Rpb24oZCl7dmFyIE09eChkKz0iIiwhMCk7cmV0dXJuIE0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTX19fXZhciBZZT17Ii0iOiIiLF86IiAiLDA6IjAifSxMPS9eXHMqXGQrLyxzcj0vXiUvLGxyPS9bXFxeJCorP3xbXF0oKS57fV0vZztmdW5jdGlvbiBiKG4sZSx0KXt2YXIgcj1uPDA/Ii0iOiIiLG89KHI/LW46bikrIiIsaT1vLmxlbmd0aDtyZXR1cm4gcisoaTx0P25ldyBBcnJheSh0LWkrMSkuam9pbihlKStvOm8pfWZ1bmN0aW9uIGhyKG4pe3JldHVybiBuLnJlcGxhY2UobHIsIlxcJCYiKX1mdW5jdGlvbiBibihuKXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrbi5tYXAoaHIpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiB2bihuKXtyZXR1cm4gbmV3IE1hcChuLm1hcCgoZSx0KT0+W2UudG9Mb3dlckNhc2UoKSx0XSkpfWZ1bmN0aW9uIGdyKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMSkpO3JldHVybiByPyhuLnc9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbXIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsxKSk7cmV0dXJuIHI/KG4udT0rclswXSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBkcihuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCx0KzIpKTtyZXR1cm4gcj8obi5VPStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHlyKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMikpO3JldHVybiByPyhuLlY9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geHIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsyKSk7cmV0dXJuIHI/KG4uVz0rclswXSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBXZShuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCx0KzQpKTtyZXR1cm4gcj8obi55PStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEFlKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMikpO3JldHVybiByPyhuLnk9K3JbMF0rKCtyWzBdPjY4PzE5MDA6MmUzKSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBwcihuLGUsdCl7dmFyIHI9L14oWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8vLmV4ZWMoZS5zbGljZSh0LHQrNikpO3JldHVybiByPyhuLlo9clsxXT8wOi0oclsyXSsoclszXXx8IjAwIikpLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHdyKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMSkpO3JldHVybiByPyhuLnE9clswXSozLTMsdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTXIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsyKSk7cmV0dXJuIHI/KG4ubT1yWzBdLTEsdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUmUobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsyKSk7cmV0dXJuIHI/KG4uZD0rclswXSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBicihuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCx0KzMpKTtyZXR1cm4gcj8obi5tPTAsbi5kPStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEllKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMikpO3JldHVybiByPyhuLkg9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdnIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCsyKSk7cmV0dXJuIHI/KG4uTT0rclswXSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBUcihuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCx0KzIpKTtyZXR1cm4gcj8obi5TPStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIENyKG4sZSx0KXt2YXIgcj1MLmV4ZWMoZS5zbGljZSh0LHQrMykpO3JldHVybiByPyhuLkw9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTnIobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQsdCs2KSk7cmV0dXJuIHI/KG4uTD1NYXRoLmZsb29yKHJbMF0vMWUzKSx0K3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBVcihuLGUsdCl7dmFyIHI9c3IuZXhlYyhlLnNsaWNlKHQsdCsxKSk7cmV0dXJuIHI/dCtyWzBdLmxlbmd0aDotMX1mdW5jdGlvbiBEcihuLGUsdCl7dmFyIHI9TC5leGVjKGUuc2xpY2UodCkpO3JldHVybiByPyhuLlE9K3JbMF0sdCtyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24ga3IobixlLHQpe3ZhciByPUwuZXhlYyhlLnNsaWNlKHQpKTtyZXR1cm4gcj8obi5zPStyWzBdLHQrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE9lKG4sZSl7cmV0dXJuIGIobi5nZXREYXRlKCksZSwyKX1mdW5jdGlvbiBTcihuLGUpe3JldHVybiBiKG4uZ2V0SG91cnMoKSxlLDIpfWZ1bmN0aW9uICRyKG4sZSl7cmV0dXJuIGIobi5nZXRIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIEZyKG4sZSl7cmV0dXJuIGIoMSt3bi5jb3VudChRKG4pLG4pLGUsMyl9ZnVuY3Rpb24gemUobixlKXtyZXR1cm4gYihuLmdldE1pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gSHIobixlKXtyZXR1cm4gemUobixlKSsiMDAwIn1mdW5jdGlvbiBMcihuLGUpe3JldHVybiBiKG4uZ2V0TW9udGgoKSsxLGUsMil9ZnVuY3Rpb24gUHIobixlKXtyZXR1cm4gYihuLmdldE1pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIFlyKG4sZSl7cmV0dXJuIGIobi5nZXRTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBXcihuKXt2YXIgZT1uLmdldERheSgpO3JldHVybiBlPT09MD83OmV9ZnVuY3Rpb24gQXIobixlKXtyZXR1cm4gYihZbi5jb3VudChRKG4pLTEsbiksZSwyKX1mdW5jdGlvbiBFZShuKXt2YXIgZT1uLmdldERheSgpO3JldHVybiBlPj00fHxlPT09MD9mbihuKTpmbi5jZWlsKG4pfWZ1bmN0aW9uIFJyKG4sZSl7cmV0dXJuIG49RWUobiksYihmbi5jb3VudChRKG4pLG4pKyhRKG4pLmdldERheSgpPT09NCksZSwyKX1mdW5jdGlvbiBJcihuKXtyZXR1cm4gbi5nZXREYXkoKX1mdW5jdGlvbiBPcihuLGUpe3JldHVybiBiKFduLmNvdW50KFEobiktMSxuKSxlLDIpfWZ1bmN0aW9uIHpyKG4sZSl7cmV0dXJuIGIobi5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIEVyKG4sZSl7cmV0dXJuIG49RWUobiksYihuLmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gX3IobixlKXtyZXR1cm4gYihuLmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gcXIobixlKXt2YXIgdD1uLmdldERheSgpO3JldHVybiBuPXQ+PTR8fHQ9PT0wP2ZuKG4pOmZuLmNlaWwobiksYihuLmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24ganIobil7dmFyIGU9bi5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOihlKj0tMSwiKyIpKStiKGUvNjB8MCwiMCIsMikrYihlJTYwLCIwIiwyKX1mdW5jdGlvbiBfZShuLGUpe3JldHVybiBiKG4uZ2V0VVRDRGF0ZSgpLGUsMil9ZnVuY3Rpb24gWnIobixlKXtyZXR1cm4gYihuLmdldFVUQ0hvdXJzKCksZSwyKX1mdW5jdGlvbiBWcihuLGUpe3JldHVybiBiKG4uZ2V0VVRDSG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiBYcihuLGUpe3JldHVybiBiKDErdGUuY291bnQoZW4obiksbiksZSwzKX1mdW5jdGlvbiBxZShuLGUpe3JldHVybiBiKG4uZ2V0VVRDTWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBCcihuLGUpe3JldHVybiBxZShuLGUpKyIwMDAifWZ1bmN0aW9uIFFyKG4sZSl7cmV0dXJuIGIobi5nZXRVVENNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBHcihuLGUpe3JldHVybiBiKG4uZ2V0VVRDTWludXRlcygpLGUsMil9ZnVuY3Rpb24gSnIobixlKXtyZXR1cm4gYihuLmdldFVUQ1NlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIEtyKG4pe3ZhciBlPW4uZ2V0VVRDRGF5KCk7cmV0dXJuIGU9PT0wPzc6ZX1mdW5jdGlvbiBubyhuLGUpe3JldHVybiBiKFBlLmNvdW50KGVuKG4pLTEsbiksZSwyKX1mdW5jdGlvbiBqZShuKXt2YXIgZT1uLmdldFVUQ0RheSgpO3JldHVybiBlPj00fHxlPT09MD9jbihuKTpjbi5jZWlsKG4pfWZ1bmN0aW9uIGVvKG4sZSl7cmV0dXJuIG49amUobiksYihjbi5jb3VudChlbihuKSxuKSsoZW4obikuZ2V0VVRDRGF5KCk9PT00KSxlLDIpfWZ1bmN0aW9uIHRvKG4pe3JldHVybiBuLmdldFVUQ0RheSgpfWZ1bmN0aW9uIHJvKG4sZSl7cmV0dXJuIGIoQW4uY291bnQoZW4obiktMSxuKSxlLDIpfWZ1bmN0aW9uIG9vKG4sZSl7cmV0dXJuIGIobi5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIGlvKG4sZSl7cmV0dXJuIG49amUobiksYihuLmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gYW8obixlKXtyZXR1cm4gYihuLmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gdW8obixlKXt2YXIgdD1uLmdldFVUQ0RheSgpO3JldHVybiBuPXQ+PTR8fHQ9PT0wP2NuKG4pOmNuLmNlaWwobiksYihuLmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gZm8oKXtyZXR1cm4iKzAwMDAifWZ1bmN0aW9uIFplKCl7cmV0dXJuIiUifWZ1bmN0aW9uIFZlKG4pe3JldHVybitufWZ1bmN0aW9uIFhlKG4pe3JldHVybiBNYXRoLmZsb29yKCtuLzFlMyl9dmFyIHNuLEJlO2NvKHtkYXRlVGltZToiJXgsICVYIixkYXRlOiIlLW0vJS1kLyVZIix0aW1lOiIlLUk6JU06JVMgJXAiLHBlcmlvZHM6WyJBTSIsIlBNIl0sZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydE1vbnRoczpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdfSk7ZnVuY3Rpb24gY28obil7cmV0dXJuIHNuPWNyKG4pLEJlPXNuLmZvcm1hdCxzbi5wYXJzZSxzbi51dGNGb3JtYXQsc24udXRjUGFyc2Usc259ZnVuY3Rpb24gc28obil7cmV0dXJuIG5ldyBEYXRlKG4pfWZ1bmN0aW9uIGxvKG4pe3JldHVybiBuIGluc3RhbmNlb2YgRGF0ZT8rbjorbmV3IERhdGUoK24pfWZ1bmN0aW9uIFFlKG4sZSx0LHIsbyxpLGEsdSxsLGYpe3ZhciBnPUZlKCksbT1nLmludmVydCxwPWcuZG9tYWluLEQ9ZigiLiVMIiksaz1mKCI6JVMiKSxSPWYoIiVJOiVNIiksWT1mKCIlSSAlcCIpLHE9ZigiJWEgJWQiKSxFPWYoIiViICVkIiksJD1mKCIlQiIpLFc9ZigiJVkiKTtmdW5jdGlvbiBoKGMpe3JldHVybihsKGMpPGM/RDp1KGMpPGM/azphKGMpPGM/UjppKGMpPGM/WTpyKGMpPGM/byhjKTxjP3E6RTp0KGMpPGM/JDpXKShjKX1yZXR1cm4gZy5pbnZlcnQ9ZnVuY3Rpb24oYyl7cmV0dXJuIG5ldyBEYXRlKG0oYykpfSxnLmRvbWFpbj1mdW5jdGlvbihjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9wKEFycmF5LmZyb20oYyxsbykpOnAoKS5tYXAoc28pfSxnLnRpY2tzPWZ1bmN0aW9uKGMpe3ZhciB4PXAoKTtyZXR1cm4gbih4WzBdLHhbeC5sZW5ndGgtMV0sYz8/MTApfSxnLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oYyx4KXtyZXR1cm4geD09bnVsbD9oOmYoeCl9LGcubmljZT1mdW5jdGlvbihjKXt2YXIgeD1wKCk7cmV0dXJuKCFjfHx0eXBlb2YgYy5yYW5nZSE9ImZ1bmN0aW9uIikmJihjPWUoeFswXSx4W3gubGVuZ3RoLTFdLGM/PzEwKSksYz9wKEd0KHgsYykpOmd9LGcuY29weT1mdW5jdGlvbigpe3JldHVybiAkZShnLFFlKG4sZSx0LHIsbyxpLGEsdSxsLGYpKX0sZ31mdW5jdGlvbiBobygpe3JldHVybiBrZS5hcHBseShRZSh1cixmcixRLHJlLFluLHduLGVlLG5lLHVuLEJlKS5kb21haW4oW25ldyBEYXRlKDJlMywwLDEpLG5ldyBEYXRlKDJlMywwLDIpXSksYXJndW1lbnRzKX1mdW5jdGlvbiBUbihuLGUsdCl7dGhpcy5rPW4sdGhpcy54PWUsdGhpcy55PXR9VG4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpUbixzY2FsZTpmdW5jdGlvbihuKXtyZXR1cm4gbj09PTE/dGhpczpuZXcgVG4odGhpcy5rKm4sdGhpcy54LHRoaXMueSl9LHRyYW5zbGF0ZTpmdW5jdGlvbihuLGUpe3JldHVybiBuPT09MCZlPT09MD90aGlzOm5ldyBUbih0aGlzLmssdGhpcy54K3RoaXMuaypuLHRoaXMueSt0aGlzLmsqZSl9LGFwcGx5OmZ1bmN0aW9uKG4pe3JldHVybltuWzBdKnRoaXMuayt0aGlzLngsblsxXSp0aGlzLmsrdGhpcy55XX0sYXBwbHlYOmZ1bmN0aW9uKG4pe3JldHVybiBuKnRoaXMuayt0aGlzLnh9LGFwcGx5WTpmdW5jdGlvbihuKXtyZXR1cm4gbip0aGlzLmsrdGhpcy55fSxpbnZlcnQ6ZnVuY3Rpb24obil7cmV0dXJuWyhuWzBdLXRoaXMueCkvdGhpcy5rLChuWzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbihuKXtyZXR1cm4obi10aGlzLngpL3RoaXMua30saW52ZXJ0WTpmdW5jdGlvbihuKXtyZXR1cm4obi10aGlzLnkpL3RoaXMua30scmVzY2FsZVg6ZnVuY3Rpb24obil7cmV0dXJuIG4uY29weSgpLmRvbWFpbihuLnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCx0aGlzKS5tYXAobi5pbnZlcnQsbikpfSxyZXNjYWxlWTpmdW5jdGlvbihuKXtyZXR1cm4gbi5jb3B5KCkuZG9tYWluKG4ucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRZLHRoaXMpLm1hcChuLmludmVydCxuKSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuInRyYW5zbGF0ZSgiK3RoaXMueCsiLCIrdGhpcy55KyIpIHNjYWxlKCIrdGhpcy5rKyIpIn19LFRuLnByb3RvdHlwZTtmdW5jdGlvbiBhZShuKXtyZXR1cm4gbi5tb2RlPT09InRlbXBvcmFsInx8bi5tb2RlPT09ImxlZnQtYWxpZ25lZCI/Z28obik6bW8obil9ZnVuY3Rpb24gZ28oe2RvbWFpbjpuLHJhbmdlOmV9KXtyZXR1cm4gaG8oKS5kb21haW4obikucmFuZ2UoZSl9ZnVuY3Rpb24gbW8oe2RvbWFpbjpuLHJhbmdlOmV9KXtyZXR1cm4gSGUoKS5kb21haW4obikucmFuZ2UoZSl9ZnVuY3Rpb24geW8oe3Jvb3Rfbm9kZV9pZHM6bixub2RlczplfSl7dHJ5e3JldHVybiB4byhuLGUpfWNhdGNoKHQpe3JldHVybiBjb25zb2xlLmVycm9yKHQpLEdlKG4sZSl9fWZ1bmN0aW9uIHhvKG4sZSl7Y29uc3QgdD1uZXcgTWFwLHI9W107Zm9yKGNvbnN0IG8gb2Ygbil7dC5zZXQobywwKTtjb25zdCBpPWUuZ2V0KG8pO2Zvcihjb25zdHtpZDphfW9mIGkuY2hpbGRyZW4pci5wdXNoKGEpfXJldHVybiB1ZShyLGUsdCl9ZnVuY3Rpb24gdWUobixlLHQpe2Zvcihjb25zdCByIG9mIG4pe2lmKHQuaGFzKHIpKWNvbnRpbnVlO2NvbnN0IG89ZS5nZXQocik7aWYoIW8pdGhyb3cgbmV3IEVycm9yKCJOb2RlIGlkIG5vdCBmb3VuZCBpbiBub2RlcyIpO2NvbnN0IGk9W107Zm9yKGNvbnN0IGwgb2Ygby5wYXJlbnRzKXtjb25zdCBmPXQuZ2V0KGwuaWQpO2lmKGYhPT12b2lkIDApe2kucHVzaChmKTtjb250aW51ZX11ZShbbC5pZF0sZSx0KTtjb25zdCBnPXQuZ2V0KGwuaWQpO2lmKGc9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZGV0ZXJtaW5lIHBhcmVudCBjb2x1bW4iKTtpLnB1c2goZyl9Y29uc3QgYT1NYXRoLm1heCguLi5pKTt0LnNldChyLGErMSk7Y29uc3QgdT1vLmNoaWxkcmVuLm1hcCgoe2lkOmx9KT0+bCk7dS5sZW5ndGgmJnVlKHUsZSx0KX1yZXR1cm4gdH1mdW5jdGlvbiBHZShuLGUsdD0wLHI9bmV3IE1hcCl7Zm9yKGNvbnN0IG8gb2Ygbil7Y29uc3QgaT1yLmdldChvKTsoIWl8fGk8dCkmJnIuc2V0KG8sdCk7Y29uc3QgYT1lLmdldChvKTtmb3IoY29uc3R7aWQ6dX1vZiBhLmNoaWxkcmVuKUdlKFt1XSxlLHQrMSxyKX1yZXR1cm4gcn1mdW5jdGlvbiBwbyhuKXtyZXR1cm4gbi5ob3Jpem9udGFsU2V0dGluZ3MubW9kZT09PSJkZXBlbmRlbmN5Ij93byhuKTpuLmhvcml6b250YWxTZXR0aW5ncy5tb2RlPT09ImxlZnQtYWxpZ25lZCI/Ym8obik6TW8obil9ZnVuY3Rpb24gd28oe2RhdGE6bixob3Jpem9udGFsU2V0dGluZ3M6ZX0pe2NvbnN0IHQ9eW8obikscj1hZShlKSxvPW5ldyBNYXA7Zm9yKGNvbnN0W2ldb2Ygbi5ub2Rlcyl7Y29uc3QgYT10LmdldChpKTtpZihhPT09dm9pZCAwKXtjb25zb2xlLndhcm4oYE5vZGUgbm90IGZvdW5kIGluIGNvbHVtbnM6IFNraXBwaW5nICR7aX1gKTtjb250aW51ZX1vLnNldChpLHt4OnIoYSksY29sdW1uOmF9KX1yZXR1cm4gb31mdW5jdGlvbiBNbyh7ZGF0YTpuLGhvcml6b250YWxTZXR0aW5nczplfSl7Y29uc3QgdD1hZShlKSxyPW5ldyBNYXA7Zm9yKGNvbnN0W28saV1vZiBuLm5vZGVzKXtjb25zdCBhPXQoaS5zdGFydF90aW1lKTtyLnNldChvLHtjb2x1bW46YSx4OmF9KX1yZXR1cm4gcn1mdW5jdGlvbiBibyh7ZGF0YTpuLGhvcml6b250YWxTZXR0aW5nczplfSl7Y29uc3QgdD1hZShlKSxyPW5ldyBNYXA7Zm9yKGNvbnN0W29db2Ygbi5ub2RlcylyLnNldChvLHtjb2x1bW46MCx4OnQobi5zdGFydF90aW1lKX0pO3JldHVybiByfWFzeW5jIGZ1bmN0aW9uIHZvKG4sZSl7Y29uc3Qgbz1uZXcgTWFwLGk9bmV3IE1hcDtsZXQgYT0wO2NvbnN0IHU9bmV3IE1hcDtmb3IgYXdhaXQoY29uc3RbaF1vZiBuLmRhdGEubm9kZXMpe2NvbnN0IGM9bi5kYXRhLm5vZGVzLmdldChoKTtpZighYyl7Y29uc29sZS53YXJuKCJOZWFyZXN0UGFyZW50TGF5b3V0OiBOb2RlIHdhcyBub3QgZm91bmQgaW4gdGhlIGRhdGEiLGgpO2NvbnRpbnVlfWNvbnN0IHg9YXdhaXQgbChjKTskKGgseCl9cmV0dXJuIFcoKSx1O2FzeW5jIGZ1bmN0aW9uIGwoaCl7Y29uc3R7eDpjfT1lLmdldChoLmlkKT8/e307aWYoYz09PXZvaWQgMClyZXR1cm4gY29uc29sZS53YXJuKCJOZWFyZXN0UGFyZW50TGF5b3V0OiBOb2RlIHdhcyBub3QgZm91bmQgaW4gdGhlIGhvcml6b250YWwgbGF5b3V0IixoLmlkKSwwO2lmKGgucGFyZW50cy5sZW5ndGg9PT0xKXJldHVybiB1LmhhcyhoLnBhcmVudHNbMF0uaWQpP2F3YWl0IGcoaC5wYXJlbnRzWzBdLmlkLGMpOihjb25zb2xlLndhcm4oIk5lYXJlc3RQYXJlbnRMYXlvdXQ6IFBhcmVudCBub2RlIG5vdCBmb3VuZCBpbiBsYXlvdXQiLGgucGFyZW50c1swXS5pZCksMCk7aWYoaC5wYXJlbnRzLmxlbmd0aD4wKXtjb25zdCB4PWgucGFyZW50cy5tYXAoKHtpZDp5fSk9Pntjb25zdCBDPXUuZ2V0KHkpO3JldHVybiBDPT09dm9pZCAwPyhjb25zb2xlLndhcm4oIk5lYXJlc3RQYXJlbnRMYXlvdXQ6IFBhcmVudCBub2RlIG5vdCBmb3VuZCBpbiBsYXlvdXQiLHkpLDApOkN9KSxOPXgucmVkdWNlKCh5LEMpPT55K0MsMCkveC5sZW5ndGgsdj1NYXRoLnJvdW5kKE4pO2lmKG0oYyx2KSl7Y29uc3QgeT1rKGMsdiksQz1oLnBhcmVudHMubWFwKCh7aWQ6Rn0pPT5GKSxTPXkuZmlsdGVyKEY9PkMuaW5jbHVkZXMoRikpO2lmKFMubGVuZ3RoPjB8fHkubGVuZ3RoPjEpe2NvbnN0W0ZdPVMubGVuZ3RoPjA/Uzp5LGxuPVIoeCx2LG8uZ2V0KEYpKTtyZXR1cm4gby5zZXQoRixsbiksYXdhaXQgZyhGLGMpfXJldHVybiBhd2FpdCBZKHtjb21wZXRpbmdOb2RlSWQ6eVswXSx1cHN0cmVhbVJvd3M6eCxub2RlU3RhcnRYOmMsZGVzaXJlZFJvdzp2fSl9fXJldHVybiBmKGMsMCl9ZnVuY3Rpb24gZihoLGMpe3JldHVybiBtKGgsYyk/ZihoLGMrMSk6Y31hc3luYyBmdW5jdGlvbiBnKGgsYyl7Y29uc3QgeD11LmdldChoKTtpZih4PT09dm9pZCAwKXJldHVybiBjb25zb2xlLndhcm4oIk5lYXJlc3RQYXJlbnRMYXlvdXQ6IFVwc3RyZWFtIG5vZGUgbm90IGZvdW5kIGluIGxheW91dCIsaCksMDtvLmdldChoKXx8by5zZXQoaCwxKTtjb25zdCB3PW8uZ2V0KGgpO3JldHVybiBtKGMseCk/dz09PTEmJiFtKGMseCsxKT8oby5zZXQoaCwtMSkseCsxKTptKGMseC0xKT8oYXdhaXQgcCh7ZGlyZWN0aW9uOncsbm9kZVN0YXJ0WDpjLGRlc2lyZWRSb3c6eCt3fSksby5zZXQoaCx3PT09MT8tMToxKSx4K3cpOihvLnNldChoLDEpLHgtMSk6eH1mdW5jdGlvbiBtKGgsYyl7aWYodS5zaXplPT09MClyZXR1cm4hMTtsZXQgeD0hMTtjb25zdCB3PWkuZ2V0KGMpPz9bXTtmb3IoY29uc3QgTiBvZiB3KXtjb25zdCB2PXUuZ2V0KE4pLHk9RShOKTtpZihEKHtmaXJzdE5vZGVFbmRYOnksZmlyc3ROb2RlUm93OnYsbGFzdE5vZGVTdGFydFg6aCxsYXN0Tm9kZVJvdzpjfSkpe3g9ITA7YnJlYWt9fXJldHVybiB4fWFzeW5jIGZ1bmN0aW9uIHAoe2RpcmVjdGlvbjpoLG5vZGVTdGFydFg6YyxkZXNpcmVkUm93Onh9KXtjb25zdCB3PWsoYyx4KTtpZih3KWZvciBhd2FpdChjb25zdCBOIG9mIHcpe2NvbnN0IHY9dS5nZXQoTikse3g6eX09ZS5nZXQoTik/P3t9O2lmKHY9PT12b2lkIDB8fHk9PT12b2lkIDApe2NvbnNvbGUud2FybigiTmVhcmVzdFBhcmVudExheW91dCAtIHNob3ZlOiBOb2RlIHdhcyBub3QgZm91bmQgaW4gdGhlIHZlcnRpY2FsIG9yIGhvcml6b250YWwgbGF5b3V0IixOKTtjb250aW51ZX1jb25zdCBDPXYraDthd2FpdCBwKHtkaXJlY3Rpb246aCxub2RlU3RhcnRYOnksZGVzaXJlZFJvdzpDfSksJChOLEMpfX1mdW5jdGlvbiBEKHtmaXJzdE5vZGVFbmRYOmgsZmlyc3ROb2RlUm93OmMsbGFzdE5vZGVTdGFydFg6eCxsYXN0Tm9kZVJvdzp3fSl7cmV0dXJuIGM9PT13JiZoKzE2Pj14fWZ1bmN0aW9uIGsoaCxjKXtjb25zdCB4PVtdLHc9aS5nZXQoYyk/P1tdO2Zvcihjb25zdCBOIG9mIHcpe2NvbnN0IHY9RShOKSx5PXUuZ2V0KE4pO2lmKHk9PT12b2lkIDApe2NvbnNvbGUud2FybigiTmVhcmVzdFBhcmVudExheW91dCAtIGdldE92ZXJsYXBwaW5nTm9kZUlkczogTm9kZSB3YXMgbm90IGZvdW5kIGluIHRoZSBsYXlvdXQiLE4pO2NvbnRpbnVlfUQoe2ZpcnN0Tm9kZUVuZFg6dixmaXJzdE5vZGVSb3c6eSxsYXN0Tm9kZVN0YXJ0WDpoLGxhc3ROb2RlUm93OmN9KSYmeC5wdXNoKE4pfWlmKHgubGVuZ3RoIT09MClyZXR1cm4geC5zb3J0KChOLHYpPT57Y29uc3QgeT1FKE4pLEM9RSh2KTtyZXR1cm4geTxDPzE6eT5DPy0xOjB9KSx4fWZ1bmN0aW9uIFIoaCxjLHgpe2NvbnN0IHc9aC5maWx0ZXIodj0+djxjKS5sZW5ndGgsTj1oLmZpbHRlcih2PT52PmMpLmxlbmd0aDtyZXR1cm4gdz5OPy0xOng/PzF9YXN5bmMgZnVuY3Rpb24gWSh7ZGVzaXJlZFJvdzpoLG5vZGVTdGFydFg6Yyx1cHN0cmVhbVJvd3M6eCxjb21wZXRpbmdOb2RlSWQ6d30pe2lmKHUuZ2V0KHcpPT09dm9pZCAwKXJldHVybiBjb25zb2xlLndhcm4oIk5lYXJlc3RQYXJlbnRMYXlvdXQgLSBhcmd1ZVdpdGhDb21wZXRpbmdVcHN0cmVhbVBsYWNlbWVudDogQ29tcGV0aXRvciBub2RlIHdhcyBub3QgZm91bmQgaW4gdGhlIGxheW91dCIsdyksaDtjb25zdFt2LHldPXEodyksQz14LmZpbHRlcihGPT5GPGgpLmxlbmd0aCxTPXguZmlsdGVyKEY9PkY+aCkubGVuZ3RoO2lmKEM+Uyl7aWYodj55JiZ2PkMpcmV0dXJuIGF3YWl0IHAoe2RpcmVjdGlvbjotMSxub2RlU3RhcnRYOmMsZGVzaXJlZFJvdzpofSksaDtpZih5PnYpcmV0dXJuIGF3YWl0IHAoe2RpcmVjdGlvbjoxLG5vZGVTdGFydFg6YyxkZXNpcmVkUm93Omh9KSxoO28uc2V0KHcsLTEpfWlmKFM+Qyl7aWYoeT52JiZ5PlMpcmV0dXJuIGF3YWl0IHAoe2RpcmVjdGlvbjoxLG5vZGVTdGFydFg6YyxkZXNpcmVkUm93Omh9KSxoO2lmKHY+eSlyZXR1cm4gYXdhaXQgcCh7ZGlyZWN0aW9uOi0xLG5vZGVTdGFydFg6YyxkZXNpcmVkUm93Omh9KSxoO28uc2V0KHcsMSl9cmV0dXJuIGF3YWl0IGcodyxjKX1mdW5jdGlvbiBxKGgpe2NvbnN0IGM9bi5kYXRhLm5vZGVzLmdldChoKSx4PXUuZ2V0KGgpO3JldHVybiFjfHx4PT09dm9pZCAwPyhjb25zb2xlLndhcm4oIk5lYXJlc3RQYXJlbnRMYXlvdXQ6IE5vZGUgd2FzIG5vdCBmb3VuZCBpbiBlaXRoZXIgdGhlIGRhdGEgb3IgbGF5b3V0IixoKSxbMCwwXSk6Yy5wYXJlbnRzLnJlZHVjZSgodyxOKT0+e2NvbnN0IHY9dS5nZXQoTi5pZCk7cmV0dXJuIHY9PT12b2lkIDA/KGNvbnNvbGUud2FybigiTmVhcmVzdFBhcmVudExheW91dCAtIGdldE5vZGVQYXJlbnREaXJlY3Rpb25Db3VudHM6IFBhcmVudCBub2RlIG5vdCBmb3VuZCBvbiBsYXlvdXQgZGF0YSIsaCksdyk6KHY8eCYmKHdbMF0rPTEpLHY+eCYmKHdbMV0rPTEpLHcpfSxbMCwwXSl9ZnVuY3Rpb24gRShoKXtjb25zdHt4OmN9PWUuZ2V0KGgpPz97fSx4PW4ud2lkdGhzLmdldChoKTtyZXR1cm4gYz09PXZvaWQgMHx8eD09PXZvaWQgMD8oY29uc29sZS53YXJuKCJOZWFyZXN0UGFyZW50TGF5b3V0OiBOb2RlIHdhcyBub3QgZm91bmQgaW4gdGhlIGhvcml6b250YWwgbGF5b3V0IGFuZC9vciB3aWR0aHMiLGgpLDApOmMreH1mdW5jdGlvbiAkKGgsYyl7dmFyIHgsdztpZihjPGEmJihhPWMpLHUuaGFzKGgpKXtjb25zdCBOPXUuZ2V0KGgpOyh4PWkuZ2V0KE4pKT09bnVsbHx8eC5kZWxldGUoaCl9aS5oYXMoYyl8fGkuc2V0KGMsbmV3IFNldCksKHc9aS5nZXQoYykpPT1udWxsfHx3LmFkZChoKSx1LnNldChoLGMpfWZ1bmN0aW9uIFcoKXtpZihhPDApZm9yKGNvbnN0W2hdb2YgdSl7Y29uc3QgYz11LmdldChoKTt1LnNldChoLGMrTWF0aC5hYnMoYSkpfX19YXN5bmMgZnVuY3Rpb24gVG8obixlKXtyZXR1cm4gbi52ZXJ0aWNhbFNldHRpbmdzLm1vZGU9PT0ibmVhcmVzdC1wYXJlbnQiP2F3YWl0IHZvKG4sZSk6bi52ZXJ0aWNhbFNldHRpbmdzLm1vZGU9PT0iZHVyYXRpb24tc29ydGVkIj9ObyhuKTpDbyhuKX1mdW5jdGlvbiBDbyhuKXtjb25zdCBlPW5ldyBNYXA7bGV0IHQ9MDtmb3IoY29uc3Rbcl1vZiBuLmRhdGEubm9kZXMpZS5zZXQocix0KyspO3JldHVybiBlfWZ1bmN0aW9uIE5vKG4pe2NvbnN0IGU9bmV3IE1hcCx0PVsuLi5uLmRhdGEubm9kZXMudmFsdWVzKCldLnNvcnQoKG8saSk9Pntjb25zdCBhPShvLmVuZF90aW1lP28uZW5kX3RpbWUuZ2V0VGltZSgpOm5ldyBEYXRlKCkuZ2V0VGltZSgpKS1vLnN0YXJ0X3RpbWUuZ2V0VGltZSgpO3JldHVybihpLmVuZF90aW1lP2kuZW5kX3RpbWUuZ2V0VGltZSgpOm5ldyBEYXRlKCkuZ2V0VGltZSgpKS1pLnN0YXJ0X3RpbWUuZ2V0VGltZSgpLWF9KTtsZXQgcj0wO2Zvcihjb25zdCBvIG9mIHQpZS5zZXQoby5pZCxyKyspO3JldHVybiBlfW9ubWVzc2FnZT1VbztmdW5jdGlvbiBVbyh7ZGF0YTpufSl7Y29uc3R7dHlwZTplfT1uO3N3aXRjaChlKXtjYXNlImxheW91dCI6a28obik7cmV0dXJuO2RlZmF1bHQ6S2UoZSl9fWZ1bmN0aW9uIERvKG4pe3Bvc3RNZXNzYWdlKG4pfWFzeW5jIGZ1bmN0aW9uIGtvKG4pe2NvbnN0e2RhdGE6ZX09bix0PXBvKG4pLHI9YXdhaXQgVG8obix0KSxvPW5ldyBNYXA7bGV0IGk9MCxhPTA7Zm9yKGNvbnN0W3UsbF1vZiBlLm5vZGVzKXtjb25zdCBmPXQuZ2V0KHUpLGc9ci5nZXQodSk7aWYoZj09PXZvaWQgMCl7Y29uc29sZS53YXJuKGBOb2RlSWQgbm90IGZvdW5kIGluIGhvcml6b250YWwgbGF5b3V0OiBTa2lwcGluZyAke2wubGFiZWx9YCk7Y29udGludWV9aWYoZz09PXZvaWQgMCl7Y29uc29sZS53YXJuKGBOb2RlSWQgbm90IGZvdW5kIGluIHZlcnRpY2FsIGxheW91dDogU2tpcHBpbmcgJHtsLmxhYmVsfWApO2NvbnRpbnVlfWk9TWF0aC5tYXgoaSxnKSxhPU1hdGgubWF4KGEsZi5jb2x1bW4pLG8uc2V0KHUsey4uLmYseTpnLHJvdzpnfSl9RG8oe3R5cGU6ImxheW91dCIsbGF5b3V0OnttYXhSb3c6aSxtYXhDb2x1bW46YSxwb3NpdGlvbnM6b319KX19KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1ydW5HcmFwaC53b3JrZXItQzRjMjBKZ3UuanMubWFwCg==", LR = (r) => Uint8Array.from(atob(r), (t) => t.charCodeAt(0)), a0 = typeof self < "u" && self.Blob && new Blob([LR(t1)], { type: "text/javascript;charset=utf-8" });
|
|
32165
32165
|
function GR(r) {
|
|
32166
32166
|
let t;
|
|
32167
32167
|
try {
|
|
@@ -32188,7 +32188,7 @@ function kR(r) {
|
|
|
32188
32188
|
return t.onmessage = r, t;
|
|
32189
32189
|
}
|
|
32190
32190
|
async function od() {
|
|
32191
|
-
const r = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map(), i = new
|
|
32191
|
+
const r = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map(), i = new gt(), s = new gt(), n = await Bt();
|
|
32192
32192
|
let o = null;
|
|
32193
32193
|
const a = o0({
|
|
32194
32194
|
gap: () => n.rowGap,
|
|
@@ -32235,8 +32235,8 @@ async function od() {
|
|
|
32235
32235
|
i.addChildAt(s, 0);
|
|
32236
32236
|
const V = [];
|
|
32237
32237
|
for (const [J, { children: j }] of M.nodes)
|
|
32238
|
-
for (const { id:
|
|
32239
|
-
V.push(y(J,
|
|
32238
|
+
for (const { id: yt } of j)
|
|
32239
|
+
V.push(y(J, yt));
|
|
32240
32240
|
await Promise.all(V);
|
|
32241
32241
|
}
|
|
32242
32242
|
async function y(M, D) {
|
|
@@ -32256,15 +32256,15 @@ async function od() {
|
|
|
32256
32256
|
type: "layout",
|
|
32257
32257
|
data: M,
|
|
32258
32258
|
widths: D,
|
|
32259
|
-
horizontalSettings: hu(
|
|
32259
|
+
horizontalSettings: hu(M.start_time),
|
|
32260
32260
|
verticalSettings: xR()
|
|
32261
32261
|
});
|
|
32262
32262
|
}
|
|
32263
32263
|
function b() {
|
|
32264
32264
|
if (l)
|
|
32265
32265
|
for (const [M, D] of e) {
|
|
32266
|
-
const [V, J] = M.split("_"), j = l.positions.get(V),
|
|
32267
|
-
if (!j || !
|
|
32266
|
+
const [V, J] = M.split("_"), j = l.positions.get(V), yt = l.positions.get(J), wt = t.get(V);
|
|
32267
|
+
if (!j || !yt) {
|
|
32268
32268
|
console.warn(`Could not find edge in layout: Skipping ${M}`);
|
|
32269
32269
|
continue;
|
|
32270
32270
|
}
|
|
@@ -32272,10 +32272,10 @@ async function od() {
|
|
|
32272
32272
|
console.warn(`Could not find parent node in nodes: Skipping ${V}`);
|
|
32273
32273
|
continue;
|
|
32274
32274
|
}
|
|
32275
|
-
const
|
|
32276
|
-
x: N.x +
|
|
32275
|
+
const pt = wt.bar.width, N = E(j), K = {
|
|
32276
|
+
x: N.x + pt,
|
|
32277
32277
|
y: N.y + n.nodeHeight / 2
|
|
32278
|
-
}, H = E(
|
|
32278
|
+
}, H = E(yt), G = {
|
|
32279
32279
|
x: H.x - K.x,
|
|
32280
32280
|
y: H.y - K.y + n.nodeHeight / 2
|
|
32281
32281
|
};
|
|
@@ -32303,7 +32303,7 @@ async function od() {
|
|
|
32303
32303
|
const V = C(M.id), J = RR(M, V);
|
|
32304
32304
|
r.set(M.id, J);
|
|
32305
32305
|
const j = await J;
|
|
32306
|
-
return j.element.on("resized", (
|
|
32306
|
+
return j.element.on("resized", (yt) => T(M.id, yt)), i.addChild(j.element), t.set(M.id, j), j;
|
|
32307
32307
|
}
|
|
32308
32308
|
function T(M, D) {
|
|
32309
32309
|
if (!l)
|
|
@@ -32333,8 +32333,8 @@ async function od() {
|
|
|
32333
32333
|
return 0;
|
|
32334
32334
|
if (tt.isDependency())
|
|
32335
32335
|
return h.getTotalValue(l.maxColumn);
|
|
32336
|
-
const M =
|
|
32337
|
-
return
|
|
32336
|
+
const M = hu(c.start_time), D = zy(M), V = D(c.end_time ?? /* @__PURE__ */ new Date()), J = D(c.start_time);
|
|
32337
|
+
return V - J;
|
|
32338
32338
|
}
|
|
32339
32339
|
function P() {
|
|
32340
32340
|
return {
|
|
@@ -32387,16 +32387,16 @@ async function od() {
|
|
|
32387
32387
|
}
|
|
32388
32388
|
}
|
|
32389
32389
|
function rt(M) {
|
|
32390
|
-
const D =
|
|
32390
|
+
const D = X(M, "parents"), V = X(M, "children");
|
|
32391
32391
|
return [M, ...D, ...V];
|
|
32392
32392
|
}
|
|
32393
|
-
function
|
|
32393
|
+
function X(M, D) {
|
|
32394
32394
|
const V = c == null ? void 0 : c.nodes.get(M);
|
|
32395
32395
|
if (!V)
|
|
32396
32396
|
return [];
|
|
32397
32397
|
const J = [];
|
|
32398
32398
|
for (const { id: j } of V[D])
|
|
32399
|
-
J.push(j), J.push(...
|
|
32399
|
+
J.push(j), J.push(...X(j, D));
|
|
32400
32400
|
return J;
|
|
32401
32401
|
}
|
|
32402
32402
|
return {
|
|
@@ -32469,12 +32469,12 @@ async function e1({ animate: r } = {}) {
|
|
|
32469
32469
|
zR();
|
|
32470
32470
|
const { x: i, y: s, width: n, height: o } = e.getLocalBounds();
|
|
32471
32471
|
if (!n || !o) {
|
|
32472
|
-
|
|
32472
|
+
WR({ animate: r });
|
|
32473
32473
|
return;
|
|
32474
32474
|
}
|
|
32475
|
-
|
|
32475
|
+
XR({ x: i, y: s, width: n, height: o, animate: r });
|
|
32476
32476
|
}
|
|
32477
|
-
async function
|
|
32477
|
+
async function XR({ x: r, y: t, width: e, height: i, animate: s }) {
|
|
32478
32478
|
const n = await Fe(), o = await Bt(), a = await Yt(), {
|
|
32479
32479
|
guideTextSize: h,
|
|
32480
32480
|
guideTextTopPadding: l,
|
|
@@ -32496,20 +32496,20 @@ async function WR({ x: r, y: t, width: e, height: i, animate: s }) {
|
|
|
32496
32496
|
}
|
|
32497
32497
|
});
|
|
32498
32498
|
}
|
|
32499
|
-
async function
|
|
32500
|
-
const t = await Li(), e = await Fe(), i = await Bt(), s = await Yt(), n = await ze()
|
|
32501
|
-
let
|
|
32502
|
-
if (
|
|
32503
|
-
const
|
|
32504
|
-
|
|
32499
|
+
async function WR({ animate: r }) {
|
|
32500
|
+
const t = await Li(), e = await Fe(), i = await Bt(), s = await Yt(), n = await ze();
|
|
32501
|
+
let o = n(t.start_time) - i.columnGap, a = n(t.end_time ?? /* @__PURE__ */ new Date()) + i.columnGap;
|
|
32502
|
+
if (o > a) {
|
|
32503
|
+
const u = o;
|
|
32504
|
+
o = a, a = u;
|
|
32505
32505
|
}
|
|
32506
|
-
const
|
|
32506
|
+
const h = a - o, l = o + h / 2, c = s.findFit(h, 0);
|
|
32507
32507
|
s.animate({
|
|
32508
32508
|
position: {
|
|
32509
|
-
x:
|
|
32509
|
+
x: l,
|
|
32510
32510
|
y: 0
|
|
32511
32511
|
},
|
|
32512
|
-
scale:
|
|
32512
|
+
scale: c,
|
|
32513
32513
|
time: r ? e.animationDuration : 0,
|
|
32514
32514
|
ease: "easeInOutQuad",
|
|
32515
32515
|
removeOnInterrupt: !0,
|
|
@@ -32596,20 +32596,20 @@ class oa {
|
|
|
32596
32596
|
this.labels.clear();
|
|
32597
32597
|
}
|
|
32598
32598
|
}
|
|
32599
|
-
let xi = null, Ue = null, wi = null,
|
|
32599
|
+
let xi = null, Ue = null, wi = null, Xi = null, ri = null;
|
|
32600
32600
|
async function KR() {
|
|
32601
32601
|
const r = await Yt(), t = await Kt();
|
|
32602
32602
|
xi = new KS({
|
|
32603
32603
|
toggle: "renderable"
|
|
32604
|
-
}), Ue = new oa(), wi = new oa(), ri = new oa(),
|
|
32604
|
+
}), Ue = new oa(), wi = new oa(), ri = new oa(), Xi = new oa(), t.ticker.add(() => {
|
|
32605
32605
|
if (r.dirty) {
|
|
32606
32606
|
const e = r.scale.x > Sb, i = r.scale.x > vb, s = r.scale.x > wb, n = r.scale.x > Tb;
|
|
32607
|
-
ri == null || ri.toggle(e), Ue == null || Ue.toggle(i), wi == null || wi.toggle(s),
|
|
32607
|
+
ri == null || ri.toggle(e), Ue == null || Ue.toggle(i), wi == null || wi.toggle(s), Xi == null || Xi.toggle(n), xi == null || xi.cull(t.renderer.screen), r.dirty = !1;
|
|
32608
32608
|
}
|
|
32609
|
-
}), Y.emit("cullCreated", xi), Y.emit("labelCullCreated", Ue), Y.emit("iconCullCreated", Ue), Y.emit("edgeCullCreated", ri), Y.emit("toggleCullCreated",
|
|
32609
|
+
}), Y.emit("cullCreated", xi), Y.emit("labelCullCreated", Ue), Y.emit("iconCullCreated", Ue), Y.emit("edgeCullCreated", ri), Y.emit("toggleCullCreated", Xi);
|
|
32610
32610
|
}
|
|
32611
32611
|
function YR() {
|
|
32612
|
-
xi = null, Ue == null || Ue.clear(), Ue = null, wi == null || wi.clear(), wi = null, ri == null || ri.clear(), ri = null,
|
|
32612
|
+
xi = null, Ue == null || Ue.clear(), Ue = null, wi == null || wi.clear(), wi = null, ri == null || ri.clear(), ri = null, Xi == null || Xi.clear(), Xi = null;
|
|
32613
32613
|
}
|
|
32614
32614
|
async function wo() {
|
|
32615
32615
|
const r = await Yt();
|
|
@@ -32651,7 +32651,7 @@ async function $R() {
|
|
|
32651
32651
|
t.states && s(t), Y.on("runDataUpdated", (n) => s(n)), Y.on("configUpdated", () => s()), Y.on("layoutSettingsUpdated", () => s());
|
|
32652
32652
|
}
|
|
32653
32653
|
async function QR() {
|
|
32654
|
-
const r = await Kt(), t = await Yt(), e = await Ht(), i = await Bt(), { inter: s } = await xy(), n = new
|
|
32654
|
+
const r = await Kt(), t = await Yt(), e = await Ht(), i = await Bt(), { inter: s } = await xy(), n = new gt(), o = await Qi();
|
|
32655
32655
|
n.addChild(o);
|
|
32656
32656
|
const a = s("");
|
|
32657
32657
|
n.addChild(a);
|
|
@@ -32814,7 +32814,7 @@ const Ta = {
|
|
|
32814
32814
|
}
|
|
32815
32815
|
], iP = 300;
|
|
32816
32816
|
async function rP() {
|
|
32817
|
-
const r = await Yt(), t = await Ht(), e = new
|
|
32817
|
+
const r = await Yt(), t = await Ht(), e = new gt(), i = /* @__PURE__ */ new Map();
|
|
32818
32818
|
let s = await ze();
|
|
32819
32819
|
Y.on("scaleUpdated", (d) => s = d), await o();
|
|
32820
32820
|
function n() {
|
|
@@ -32971,7 +32971,7 @@ export {
|
|
|
32971
32971
|
mb as isEventSelection,
|
|
32972
32972
|
gb as isEventsSelection,
|
|
32973
32973
|
fP as isHorizontalMode,
|
|
32974
|
-
|
|
32974
|
+
Xl as isNodeSelection,
|
|
32975
32975
|
cP as isRunGraphNodeType,
|
|
32976
32976
|
pb as isStateSelection,
|
|
32977
32977
|
dP as isVerticalMode,
|