@annotorious/svelte 3.0.0-rc.21 → 3.0.0-rc.3
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/annotorious-svelte.es.js +14 -17
- package/dist/annotorious-svelte.es.js.map +1 -1
- package/dist/annotorious-svelte.es10.js +2 -26
- package/dist/annotorious-svelte.es10.js.map +1 -1
- package/dist/annotorious-svelte.es11.js +20640 -89
- package/dist/annotorious-svelte.es11.js.map +1 -1
- package/dist/annotorious-svelte.es12.js +122 -2
- package/dist/annotorious-svelte.es12.js.map +1 -1
- package/dist/annotorious-svelte.es13.js +2 -2
- package/dist/annotorious-svelte.es13.js.map +1 -1
- package/dist/annotorious-svelte.es14.js +16 -27435
- package/dist/annotorious-svelte.es14.js.map +1 -1
- package/dist/annotorious-svelte.es15.js +3 -119
- package/dist/annotorious-svelte.es15.js.map +1 -1
- package/dist/annotorious-svelte.es16.js +10 -1
- package/dist/annotorious-svelte.es16.js.map +1 -1
- package/dist/annotorious-svelte.es17.js +6 -55
- package/dist/annotorious-svelte.es17.js.map +1 -1
- package/dist/annotorious-svelte.es18.js +5 -0
- package/dist/annotorious-svelte.es18.js.map +1 -0
- package/dist/annotorious-svelte.es2.js +25 -30
- package/dist/annotorious-svelte.es2.js.map +1 -1
- package/dist/annotorious-svelte.es3.js +2 -95
- package/dist/annotorious-svelte.es3.js.map +1 -1
- package/dist/annotorious-svelte.es4.js +8 -4238
- package/dist/annotorious-svelte.es4.js.map +1 -1
- package/dist/annotorious-svelte.es5.js +1263 -86
- package/dist/annotorious-svelte.es5.js.map +1 -1
- package/dist/annotorious-svelte.es6.js +87 -104
- package/dist/annotorious-svelte.es6.js.map +1 -1
- package/dist/annotorious-svelte.es7.js +118 -92
- package/dist/annotorious-svelte.es7.js.map +1 -1
- package/dist/annotorious-svelte.es8.js +303 -31
- package/dist/annotorious-svelte.es8.js.map +1 -1
- package/dist/annotorious-svelte.es9.js +8 -31
- package/dist/annotorious-svelte.es9.js.map +1 -1
- package/dist/index.d.ts +8 -11
- package/dist/index.d.ts.map +1 -1
- package/package.json +11 -22
- package/src/index.ts +21 -40
- package/vite.config.js +0 -1
- /package/dist/{annotorious-svelte.css → style.css} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotorious-svelte.es14.js","sources":["../../annotorious-openseadragon/dist/annotorious-openseadragon.es.js"],"sourcesContent":["var Ff = Object.defineProperty;\nvar Lf = (r, t, e) => t in r ? Ff(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;\nvar to = (r, t, e) => (Lf(r, typeof t != \"symbol\" ? t + \"\" : t, e), e);\nimport un from \"openseadragon\";\nvar Il = Object.prototype.hasOwnProperty;\nfunction Lr(r, t) {\n var e, i;\n if (r === t)\n return !0;\n if (r && t && (e = r.constructor) === t.constructor) {\n if (e === Date)\n return r.getTime() === t.getTime();\n if (e === RegExp)\n return r.toString() === t.toString();\n if (e === Array) {\n if ((i = r.length) === t.length)\n for (; i-- && Lr(r[i], t[i]); )\n ;\n return i === -1;\n }\n if (!e || typeof r == \"object\") {\n i = 0;\n for (e in r)\n if (Il.call(r, e) && ++i && !Il.call(t, e) || !(e in t) || !Lr(r[e], t[e]))\n return !1;\n return Object.keys(t).length === i;\n }\n }\n return r !== r && t !== t;\n}\nvar el = /* @__PURE__ */ ((r) => (r.EDIT = \"EDIT\", r.SELECT = \"SELECT\", r.NONE = \"NONE\", r))(el || {});\nlet bs;\nconst Nf = new Uint8Array(16);\nfunction Uf() {\n if (!bs && (bs = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !bs))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return bs(Nf);\n}\nconst Gt = [];\nfor (let r = 0; r < 256; ++r)\n Gt.push((r + 256).toString(16).slice(1));\nfunction kf(r, t = 0) {\n return Gt[r[t + 0]] + Gt[r[t + 1]] + Gt[r[t + 2]] + Gt[r[t + 3]] + \"-\" + Gt[r[t + 4]] + Gt[r[t + 5]] + \"-\" + Gt[r[t + 6]] + Gt[r[t + 7]] + \"-\" + Gt[r[t + 8]] + Gt[r[t + 9]] + \"-\" + Gt[r[t + 10]] + Gt[r[t + 11]] + Gt[r[t + 12]] + Gt[r[t + 13]] + Gt[r[t + 14]] + Gt[r[t + 15]];\n}\nconst Gf = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Pl = {\n randomUUID: Gf\n};\nfunction $f(r, t, e) {\n if (Pl.randomUUID && !t && !r)\n return Pl.randomUUID();\n r = r || {};\n const i = r.random || (r.rng || Uf)();\n if (i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, t) {\n e = e || 0;\n for (let s = 0; s < 16; ++s)\n t[e + s] = i[s];\n return t;\n }\n return kf(i);\n}\nconst Hf = (r, t, e, i) => ({\n id: $f(),\n annotation: r.id,\n created: e || /* @__PURE__ */ new Date(),\n creator: i,\n ...t\n}), Xf = (r, t) => {\n const e = new Set(r.bodies.map((i) => i.id));\n return t.bodies.filter((i) => !e.has(i.id));\n}, Vf = (r, t) => {\n const e = new Set(t.bodies.map((i) => i.id));\n return r.bodies.filter((i) => !e.has(i.id));\n}, zf = (r, t) => t.bodies.map((e) => {\n const i = r.bodies.find((s) => s.id === e.id);\n return { newBody: e, oldBody: i && !Lr(i, e) ? i : void 0 };\n}).filter(({ oldBody: e }) => e).map(({ oldBody: e, newBody: i }) => ({ oldBody: e, newBody: i })), Wf = (r, t) => !Lr(r.target, t.target), jf = (r, t) => {\n const e = Xf(r, t), i = Vf(r, t), s = zf(r, t);\n return {\n oldValue: r,\n newValue: t,\n bodiesCreated: e.length > 0 ? e : void 0,\n bodiesDeleted: i.length > 0 ? i : void 0,\n bodiesUpdated: s.length > 0 ? s : void 0,\n targetUpdated: Wf(r, t) ? { oldTarget: r.target, newTarget: t.target } : void 0\n };\n};\nvar pr = /* @__PURE__ */ ((r) => (r.LOCAL = \"LOCAL\", r.REMOTE = \"REMOTE\", r))(pr || {});\nconst Yf = (r, t) => {\n const e = new Set((r.created || []).map((u) => u.id)), i = new Set((r.updated || []).map(({ newValue: u }) => u.id)), s = new Set((t.created || []).map((u) => u.id)), n = new Set((t.deleted || []).map((u) => u.id)), o = new Set((t.updated || []).map(({ oldValue: u }) => u.id)), a = new Set((t.updated || []).filter(({ oldValue: u }) => e.has(u.id) || i.has(u.id)).map(({ oldValue: u }) => u.id)), l = [\n ...(r.created || []).filter((u) => !n.has(u.id)).map((u) => o.has(u.id) ? t.updated.find(({ oldValue: d }) => d.id === u.id).newValue : u),\n ...t.created || []\n ], h = [\n ...(r.deleted || []).filter((u) => !s.has(u.id)),\n ...(t.deleted || []).filter((u) => !e.has(u.id))\n ], c = [\n ...(r.updated || []).filter(({ newValue: u }) => !n.has(u.id)).map((u) => {\n const { oldValue: d, newValue: f } = u;\n if (o.has(f.id)) {\n const p = t.updated.find((m) => m.oldValue.id === f.id).newValue;\n return jf(d, p);\n } else\n return u;\n }),\n ...(t.updated || []).filter(({ oldValue: u }) => !a.has(u.id))\n ];\n return { created: l, deleted: h, updated: c };\n};\nlet qf = () => ({\n emit(r, ...t) {\n for (let e = 0, i = this.events[r] || [], s = i.length; e < s; e++)\n i[e](...t);\n },\n events: {},\n on(r, t) {\n var e;\n return ((e = this.events)[r] || (e[r] = [])).push(t), () => {\n var i;\n this.events[r] = (i = this.events[r]) == null ? void 0 : i.filter((s) => t !== s);\n };\n }\n});\nconst Kf = 250, Zf = (r) => {\n const t = qf(), e = [];\n let i = -1, s = !1, n = 0;\n const o = (f) => {\n if (!s) {\n const { changes: p } = f, m = performance.now();\n if (m - n > Kf)\n e.splice(i + 1), e.push(p), i = e.length - 1;\n else {\n const g = e.length - 1;\n e[g] = Yf(e[g], p);\n }\n n = m;\n }\n s = !1;\n };\n r.observe(o, { origin: pr.LOCAL });\n const a = (f) => f && f.length > 0 && r.bulkDeleteAnnotation(f), l = (f) => f && f.length > 0 && r.bulkAddAnnotation(f, !1), h = (f) => f && f.length > 0 && r.bulkUpdateAnnotation(f.map(({ oldValue: p }) => p)), c = (f) => f && f.length > 0 && r.bulkUpdateAnnotation(f.map(({ newValue: p }) => p)), u = (f) => f && f.length > 0 && r.bulkAddAnnotation(f, !1), d = (f) => f && f.length > 0 && r.bulkDeleteAnnotation(f);\n return {\n canRedo: () => e.length - 1 > i,\n canUndo: () => i > -1,\n destroy: () => r.unobserve(o),\n on: (f, p) => t.on(f, p),\n redo: () => {\n if (e.length - 1 > i) {\n s = !0;\n const { created: f, updated: p, deleted: m } = e[i + 1];\n l(f), c(p), d(m), t.emit(\"redo\", e[i + 1]), i += 1;\n }\n },\n undo: () => {\n if (i > -1) {\n s = !0;\n const { created: f, updated: p, deleted: m } = e[i];\n a(f), h(p), u(m), t.emit(\"undo\", e[i]), i -= 1;\n }\n }\n };\n}, Jf = (r, t, e, i) => {\n const { store: s, selection: n, hover: o, viewport: a } = r, l = /* @__PURE__ */ new Map();\n let h = [], c, u;\n const d = (y, x) => {\n l.has(y) ? l.get(y).push(x) : l.set(y, [x]);\n }, f = (y, x) => {\n const _ = l.get(y);\n _ && _.indexOf(x) > 0 && _.splice(_.indexOf(x), 1);\n }, p = (y, x, _) => {\n l.has(y) && setTimeout(() => {\n l.get(y).forEach((v) => {\n if (e) {\n const w = Array.isArray(x) ? x.map((C) => e.serialize(C)) : e.serialize(x), R = _ ? _ instanceof PointerEvent ? _ : e.serialize(_) : void 0;\n v(w, R);\n } else\n v(x, _);\n });\n }, 1);\n }, m = () => {\n const { selected: y } = n, x = (y || []).map(({ id: _ }) => s.getAnnotation(_));\n x.forEach((_) => {\n const v = h.find((w) => w.id === _.id);\n (!v || !Lr(v, _)) && p(\"updateAnnotation\", _, v);\n }), h = h.map((_) => x.find(({ id: w }) => w === _.id) || _);\n };\n n.subscribe(({ selected: y }) => {\n if (!(h.length === 0 && y.length === 0)) {\n if (h.length === 0 && y.length > 0)\n h = y.map(({ id: x }) => s.getAnnotation(x));\n else if (h.length > 0 && y.length === 0)\n h.forEach((x) => {\n const _ = s.getAnnotation(x.id);\n _ && !Lr(_, x) && p(\"updateAnnotation\", _, x);\n }), h = [];\n else {\n const x = new Set(h.map((v) => v.id)), _ = new Set(y.map(({ id: v }) => v));\n h.filter((v) => !_.has(v.id)).forEach((v) => {\n const w = s.getAnnotation(v.id);\n w && !Lr(w, v) && p(\"updateAnnotation\", w, v);\n }), h = [\n // Remove annotations that were deselected\n ...h.filter((v) => _.has(v.id)),\n // Add editable annotations that were selected\n ...y.filter(({ id: v }) => !x.has(v)).map(({ id: v }) => s.getAnnotation(v))\n ];\n }\n p(\"selectionChanged\", h);\n }\n }), o.subscribe((y) => {\n !c && y ? p(\"mouseEnterAnnotation\", s.getAnnotation(y)) : c && !y ? p(\"mouseLeaveAnnotation\", s.getAnnotation(c)) : c && y && (p(\"mouseLeaveAnnotation\", s.getAnnotation(c)), p(\"mouseEnterAnnotation\", s.getAnnotation(y))), c = y;\n }), a == null || a.subscribe((y) => p(\"viewportIntersect\", y.map((x) => s.getAnnotation(x)))), s.observe((y) => {\n i && (u && clearTimeout(u), u = setTimeout(m, 1e3));\n const { created: x, deleted: _ } = y.changes;\n (x || []).forEach((v) => p(\"createAnnotation\", v)), (_ || []).forEach((v) => p(\"deleteAnnotation\", v)), (y.changes.updated || []).filter((v) => [\n ...v.bodiesCreated || [],\n ...v.bodiesDeleted || [],\n ...v.bodiesUpdated || []\n ].length > 0).forEach(({ oldValue: v, newValue: w }) => {\n const R = h.find((C) => C.id === v.id) || v;\n h = h.map((C) => C.id === v.id ? w : C), p(\"updateAnnotation\", w, R);\n });\n }, { origin: pr.LOCAL }), s.observe((y) => {\n if (h) {\n const x = new Set(h.map((v) => v.id)), _ = (y.changes.updated || []).filter(({ newValue: v }) => x.has(v.id)).map(({ newValue: v }) => v);\n _.length > 0 && (h = h.map((v) => _.find((R) => R.id === v.id) || v));\n }\n }, { origin: pr.REMOTE });\n const g = (y) => (x) => {\n const { updated: _ } = x;\n y ? (_ || []).forEach((v) => p(\"updateAnnotation\", v.oldValue, v.newValue)) : (_ || []).forEach((v) => p(\"updateAnnotation\", v.newValue, v.oldValue));\n };\n return t.on(\"undo\", g(!0)), t.on(\"redo\", g(!1)), { on: d, off: f, emit: p };\n}, Qf = (r) => (t) => t.reduce((e, i) => {\n const { parsed: s, error: n } = r.parse(i);\n return n ? {\n parsed: e.parsed,\n failed: [...e.failed, i]\n } : s ? {\n parsed: [...e.parsed, s],\n failed: e.failed\n } : {\n ...e\n };\n}, { parsed: [], failed: [] }), tp = (r, t, e) => {\n const { store: i, selection: s } = r, n = (g) => {\n if (e) {\n const { parsed: y, error: x } = e.parse(g);\n y ? i.addAnnotation(y, pr.REMOTE) : console.error(x);\n } else\n i.addAnnotation(g, pr.REMOTE);\n }, o = () => s.clear(), a = () => i.clear(), l = (g) => {\n const y = i.getAnnotation(g);\n return e && y ? e.serialize(y) : y;\n }, h = () => e ? i.all().map(e.serialize) : i.all(), c = () => {\n var g;\n const y = (((g = s.selected) == null ? void 0 : g.map((x) => x.id)) || []).map((x) => i.getAnnotation(x)).filter(Boolean);\n return e ? y.map(e.serialize) : y;\n }, u = (g, y = !0) => fetch(g).then((x) => x.json()).then((x) => (f(x, y), x)), d = (g) => {\n if (typeof g == \"string\") {\n const y = i.getAnnotation(g);\n if (i.deleteAnnotation(g), y)\n return e ? e.serialize(y) : y;\n } else {\n const y = e ? e.parse(g).parsed : g;\n if (y)\n return i.deleteAnnotation(y), g;\n }\n }, f = (g, y = !0) => {\n if (e) {\n const { parsed: x, failed: _ } = Qf(e)(g);\n _.length > 0 && console.warn(`Discarded ${_.length} invalid annotations`, _), i.bulkAddAnnotation(x, y, pr.REMOTE);\n } else\n i.bulkAddAnnotation(g, y, pr.REMOTE);\n }, p = (g) => {\n g ? s.setSelected(g) : s.clear();\n }, m = (g) => {\n if (e) {\n const y = e.parse(g).parsed, x = e.serialize(i.getAnnotation(y.id));\n return i.updateAnnotation(y), x;\n } else {\n const y = i.getAnnotation(g.id);\n return i.updateAnnotation(g), y;\n }\n };\n return {\n addAnnotation: n,\n cancelSelected: o,\n canRedo: t.canRedo,\n canUndo: t.canUndo,\n clearAnnotations: a,\n getAnnotationById: l,\n getAnnotations: h,\n getSelected: c,\n loadAnnotations: u,\n redo: t.redo,\n removeAnnotation: d,\n setAnnotations: f,\n setSelected: p,\n undo: t.undo,\n updateAnnotation: m\n };\n}, ep = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet rp = (r) => crypto.getRandomValues(new Uint8Array(r)), ip = (r, t, e) => {\n let i = (2 << Math.log(r.length - 1) / Math.LN2) - 1, s = -~(1.6 * i * t / r.length);\n return (n = t) => {\n let o = \"\";\n for (; ; ) {\n let a = e(s), l = s;\n for (; l--; )\n if (o += r[a[l] & i] || \"\", o.length === n)\n return o;\n }\n };\n}, sp = (r, t = 21) => ip(r, t, rp), np = (r = 21) => {\n let t = \"\", e = crypto.getRandomValues(new Uint8Array(r));\n for (; r--; )\n t += ep[e[r] & 63];\n return t;\n};\nconst op = () => ({ isGuest: !0, id: sp(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), ap = [\n \"#ff7c00\",\n // orange\n \"#1ac938\",\n // green\n \"#e8000b\",\n // red\n \"#8b2be2\",\n // purple\n \"#9f4800\",\n // brown\n \"#f14cc1\",\n // pink\n \"#ffc400\",\n // khaki\n \"#00d7ff\",\n // cyan\n \"#023eff\"\n // blue\n], lp = () => {\n const r = [...ap];\n return { assignRandomColor: () => {\n const t = Math.floor(Math.random() * r.length), e = r[t];\n return r.splice(t, 1), e;\n }, releaseColor: (t) => r.push(t) };\n};\nnp();\nvar hp = Object.defineProperty, cp = (r, t, e) => t in r ? hp(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e, Rl = (r, t, e) => (cp(r, typeof t != \"symbol\" ? t + \"\" : t, e), e);\nfunction Ct() {\n}\nfunction Ko(r, t) {\n for (const e in t)\n r[e] = t[e];\n return (\n /** @type {T & S} */\n r\n );\n}\nfunction au(r) {\n return r();\n}\nfunction Ml() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction Xe(r) {\n r.forEach(au);\n}\nfunction Nt(r) {\n return typeof r == \"function\";\n}\nfunction Kt(r, t) {\n return r != r ? t == t : r !== t || r && typeof r == \"object\" || typeof r == \"function\";\n}\nfunction up(r) {\n return Object.keys(r).length === 0;\n}\nfunction lu(r, ...t) {\n if (r == null) {\n for (const i of t)\n i(void 0);\n return Ct;\n }\n const e = r.subscribe(...t);\n return e.unsubscribe ? () => e.unsubscribe() : e;\n}\nfunction Bl(r, t, e) {\n r.$$.on_destroy.push(lu(t, e));\n}\nfunction dp(r, t, e, i) {\n if (r) {\n const s = hu(r, t, e, i);\n return r[0](s);\n }\n}\nfunction hu(r, t, e, i) {\n return r[1] && i ? Ko(e.ctx.slice(), r[1](i(t))) : e.ctx;\n}\nfunction fp(r, t, e, i) {\n if (r[2] && i) {\n const s = r[2](i(e));\n if (t.dirty === void 0)\n return s;\n if (typeof s == \"object\") {\n const n = [], o = Math.max(t.dirty.length, s.length);\n for (let a = 0; a < o; a += 1)\n n[a] = t.dirty[a] | s[a];\n return n;\n }\n return t.dirty | s;\n }\n return t.dirty;\n}\nfunction pp(r, t, e, i, s, n) {\n if (s) {\n const o = hu(t, e, i, n);\n r.p(o, s);\n }\n}\nfunction mp(r) {\n if (r.ctx.length > 32) {\n const t = [], e = r.ctx.length / 32;\n for (let i = 0; i < e; i++)\n t[i] = -1;\n return t;\n }\n return -1;\n}\nfunction Dl(r) {\n const t = {};\n for (const e in r)\n e[0] !== \"$\" && (t[e] = r[e]);\n return t;\n}\nfunction dn(r) {\n return r ?? \"\";\n}\nconst gp = typeof window < \"u\" ? window : typeof globalThis < \"u\" ? globalThis : (\n // @ts-ignore Node typings have this\n global\n);\nfunction Ue(r, t) {\n r.appendChild(t);\n}\nfunction rt(r, t, e) {\n r.insertBefore(t, e || null);\n}\nfunction tt(r) {\n r.parentNode && r.parentNode.removeChild(r);\n}\nfunction rl(r, t) {\n for (let e = 0; e < r.length; e += 1)\n r[e] && r[e].d(t);\n}\nfunction mt(r) {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", r);\n}\nfunction cu(r) {\n return document.createTextNode(r);\n}\nfunction ye() {\n return cu(\" \");\n}\nfunction Ve() {\n return cu(\"\");\n}\nfunction Ft(r, t, e, i) {\n return r.addEventListener(t, e, i), () => r.removeEventListener(t, e, i);\n}\nfunction S(r, t, e) {\n e == null ? r.removeAttribute(t) : r.getAttribute(t) !== e && r.setAttribute(t, e);\n}\nfunction yp(r) {\n return Array.from(r.childNodes);\n}\nfunction fn(r, t, e) {\n r.classList.toggle(t, !!e);\n}\nfunction _p(r, t, { bubbles: e = !1, cancelable: i = !1 } = {}) {\n return new CustomEvent(r, { detail: t, bubbles: e, cancelable: i });\n}\nlet as;\nfunction es(r) {\n as = r;\n}\nfunction uu() {\n if (!as)\n throw new Error(\"Function called outside component initialization\");\n return as;\n}\nfunction ps(r) {\n uu().$$.on_mount.push(r);\n}\nfunction Bi() {\n const r = uu();\n return (t, e, { cancelable: i = !1 } = {}) => {\n const s = r.$$.callbacks[t];\n if (s) {\n const n = _p(\n /** @type {string} */\n t,\n e,\n { cancelable: i }\n );\n return s.slice().forEach((o) => {\n o.call(r, n);\n }), !n.defaultPrevented;\n }\n return !0;\n };\n}\nfunction Je(r, t) {\n const e = r.$$.callbacks[t.type];\n e && e.slice().forEach((i) => i.call(this, t));\n}\nconst ii = [], pn = [];\nlet mi = [];\nconst Ol = [], vp = /* @__PURE__ */ Promise.resolve();\nlet Zo = !1;\nfunction xp() {\n Zo || (Zo = !0, vp.then(du));\n}\nfunction Jo(r) {\n mi.push(r);\n}\nconst eo = /* @__PURE__ */ new Set();\nlet jr = 0;\nfunction du() {\n if (jr !== 0)\n return;\n const r = as;\n do {\n try {\n for (; jr < ii.length; ) {\n const t = ii[jr];\n jr++, es(t), bp(t.$$);\n }\n } catch (t) {\n throw ii.length = 0, jr = 0, t;\n }\n for (es(null), ii.length = 0, jr = 0; pn.length; )\n pn.pop()();\n for (let t = 0; t < mi.length; t += 1) {\n const e = mi[t];\n eo.has(e) || (eo.add(e), e());\n }\n mi.length = 0;\n } while (ii.length);\n for (; Ol.length; )\n Ol.pop()();\n Zo = !1, eo.clear(), es(r);\n}\nfunction bp(r) {\n if (r.fragment !== null) {\n r.update(), Xe(r.before_update);\n const t = r.dirty;\n r.dirty = [-1], r.fragment && r.fragment.p(r.ctx, t), r.after_update.forEach(Jo);\n }\n}\nfunction wp(r) {\n const t = [], e = [];\n mi.forEach((i) => r.indexOf(i) === -1 ? t.push(i) : e.push(i)), e.forEach((i) => i()), mi = t;\n}\nconst Zs = /* @__PURE__ */ new Set();\nlet Or;\nfunction ke() {\n Or = {\n r: 0,\n c: [],\n p: Or\n // parent group\n };\n}\nfunction Ge() {\n Or.r || Xe(Or.c), Or = Or.p;\n}\nfunction ot(r, t) {\n r && r.i && (Zs.delete(r), r.i(t));\n}\nfunction pt(r, t, e, i) {\n if (r && r.o) {\n if (Zs.has(r))\n return;\n Zs.add(r), Or.c.push(() => {\n Zs.delete(r), i && (e && r.d(1), i());\n }), r.o(t);\n } else\n i && i();\n}\nfunction Ai(r) {\n return (r == null ? void 0 : r.length) !== void 0 ? r : Array.from(r);\n}\nfunction le(r) {\n r && r.c();\n}\nfunction re(r, t, e) {\n const { fragment: i, after_update: s } = r.$$;\n i && i.m(t, e), Jo(() => {\n const n = r.$$.on_mount.map(au).filter(Nt);\n r.$$.on_destroy ? r.$$.on_destroy.push(...n) : Xe(n), r.$$.on_mount = [];\n }), s.forEach(Jo);\n}\nfunction ie(r, t) {\n const e = r.$$;\n e.fragment !== null && (wp(e.after_update), Xe(e.on_destroy), e.fragment && e.fragment.d(t), e.on_destroy = e.fragment = null, e.ctx = []);\n}\nfunction Ep(r, t) {\n r.$$.dirty[0] === -1 && (ii.push(r), xp(), r.$$.dirty.fill(0)), r.$$.dirty[t / 31 | 0] |= 1 << t % 31;\n}\nfunction ue(r, t, e, i, s, n, o = null, a = [-1]) {\n const l = as;\n es(r);\n const h = r.$$ = {\n fragment: null,\n ctx: [],\n // state\n props: n,\n update: Ct,\n not_equal: s,\n bound: Ml(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(t.context || (l ? l.$$.context : [])),\n // everything else\n callbacks: Ml(),\n dirty: a,\n skip_bound: !1,\n root: t.target || l.$$.root\n };\n o && o(h.root);\n let c = !1;\n if (h.ctx = e ? e(r, t.props || {}, (u, d, ...f) => {\n const p = f.length ? f[0] : d;\n return h.ctx && s(h.ctx[u], h.ctx[u] = p) && (!h.skip_bound && h.bound[u] && h.bound[u](p), c && Ep(r, u)), d;\n }) : [], h.update(), c = !0, Xe(h.before_update), h.fragment = i ? i(h.ctx) : !1, t.target) {\n if (t.hydrate) {\n const u = yp(t.target);\n h.fragment && h.fragment.l(u), u.forEach(tt);\n } else\n h.fragment && h.fragment.c();\n t.intro && ot(r.$$.fragment), re(r, t.target, t.anchor), du();\n }\n es(l);\n}\nclass de {\n constructor() {\n Rl(this, \"$$\"), Rl(this, \"$$set\");\n }\n /** @returns {void} */\n $destroy() {\n ie(this, 1), this.$destroy = Ct;\n }\n /**\n * @template {Extract<keyof Events, string>} K\n * @param {K} type\n * @param {((e: Events[K]) => void) | null | undefined} callback\n * @returns {() => void}\n */\n $on(t, e) {\n if (!Nt(e))\n return Ct;\n const i = this.$$.callbacks[t] || (this.$$.callbacks[t] = []);\n return i.push(e), () => {\n const s = i.indexOf(e);\n s !== -1 && i.splice(s, 1);\n };\n }\n /**\n * @param {Partial<Props>} props\n * @returns {void}\n */\n $set(t) {\n this.$$set && !up(t) && (this.$$.skip_bound = !0, this.$$set(t), this.$$.skip_bound = !1);\n }\n}\nconst Tp = \"4\";\ntypeof window < \"u\" && (window.__svelte || (window.__svelte = { v: /* @__PURE__ */ new Set() })).v.add(Tp);\nvar bt = /* @__PURE__ */ ((r) => (r.ELLIPSE = \"ELLIPSE\", r.POLYGON = \"POLYGON\", r.RECTANGLE = \"RECTANGLE\", r))(bt || {});\nconst il = {}, sl = (r, t) => il[r] = t, Qo = (r) => il[r.type].area(r), Ap = (r, t, e) => il[r.type].intersects(r, t, e), mn = (r) => {\n let t = 1 / 0, e = 1 / 0, i = -1 / 0, s = -1 / 0;\n return r.forEach(([n, o]) => {\n t = Math.min(t, n), e = Math.min(e, o), i = Math.max(i, n), s = Math.max(s, o);\n }), { minX: t, minY: e, maxX: i, maxY: s };\n}, Sp = {\n area: (r) => Math.PI * r.geometry.rx * r.geometry.ry,\n intersects: (r, t, e) => {\n const { cx: i, cy: s, rx: n, ry: o } = r.geometry, a = 0, l = Math.cos(a), h = Math.sin(a), c = t - i, u = e - s, d = l * c + h * u, f = h * c - l * u;\n return d * d / (n * n) + f * f / (o * o) <= 1;\n }\n};\nsl(bt.ELLIPSE, Sp);\nconst Cp = {\n area: (r) => {\n const { points: t } = r.geometry;\n let e = 0, i = t.length - 1;\n for (let s = 0; s < t.length; s++)\n e += (t[i][0] + t[s][0]) * (t[i][1] - t[s][1]), i = s;\n return Math.abs(0.5 * e);\n },\n intersects: (r, t, e) => {\n const { points: i } = r.geometry;\n let s = !1;\n for (let n = 0, o = i.length - 1; n < i.length; o = n++) {\n const a = i[n][0], l = i[n][1], h = i[o][0], c = i[o][1];\n l > e != c > e && t < (h - a) * (e - l) / (c - l) + a && (s = !s);\n }\n return s;\n }\n};\nsl(bt.POLYGON, Cp);\nconst Ip = {\n area: (r) => r.geometry.w * r.geometry.h,\n intersects: (r, t, e) => t >= r.geometry.x && t <= r.geometry.x + r.geometry.w && e >= r.geometry.y && e <= r.geometry.y + r.geometry.h\n};\nsl(bt.RECTANGLE, Ip);\nconst Pp = (r, t = !1) => {\n const e = typeof r == \"string\" ? r : r.value, i = /^(xywh)=(pixel|percent)?:?(.+?),(.+?),(.+?),(.+)*/g, s = [...e.matchAll(i)][0], [n, o, a, l, h, c, u] = s;\n if (o !== \"xywh\")\n throw new Error(\"Unsupported MediaFragment: \" + e);\n if (a && a !== \"pixel\")\n throw new Error(`Unsupported MediaFragment unit: ${a}`);\n const [d, f, p, m] = [l, h, c, u].map(parseFloat);\n return {\n type: bt.RECTANGLE,\n geometry: {\n x: d,\n y: f,\n w: p,\n h: m,\n bounds: {\n minX: d,\n minY: t ? f - m : f,\n maxX: d + p,\n maxY: t ? f : f + m\n }\n }\n };\n}, Rp = (r) => {\n const { x: t, y: e, w: i, h: s } = r;\n return {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=pixel:${t},${e},${i},${s}`\n };\n}, fu = \"http://www.w3.org/2000/svg\", Fl = (r) => {\n const t = (i) => {\n Array.from(i.attributes).forEach((s) => {\n s.name.startsWith(\"on\") && i.removeAttribute(s.name);\n });\n }, e = r.getElementsByTagName(\"script\");\n return Array.from(e).reverse().forEach((i) => i.parentNode.removeChild(i)), Array.from(r.querySelectorAll(\"*\")).forEach(t), r;\n}, Mp = (r) => {\n const t = new XMLSerializer().serializeToString(r.documentElement).replace(\"<svg>\", `<svg xmlns=\"${fu}\">`);\n return new DOMParser().parseFromString(t, \"image/svg+xml\").documentElement;\n}, Bp = (r) => {\n const t = new DOMParser().parseFromString(r, \"image/svg+xml\"), e = t.lookupPrefix(fu), i = t.lookupNamespaceURI(null);\n return e || i ? Fl(t).firstChild : Fl(Mp(t)).firstChild;\n}, Dp = (r) => {\n const [t, e, i] = r.match(/(<polygon points=[\"|'])([^(\"|')]*)/) || [], s = i.split(\" \").map((n) => n.split(\",\").map(parseFloat));\n return {\n type: bt.POLYGON,\n geometry: {\n points: s,\n bounds: mn(s)\n }\n };\n}, Op = (r) => {\n const t = Bp(r), e = parseFloat(t.getAttribute(\"cx\")), i = parseFloat(t.getAttribute(\"cy\")), s = parseFloat(t.getAttribute(\"rx\")), n = parseFloat(t.getAttribute(\"ry\")), o = {\n minX: e - s,\n minY: i - n,\n maxX: e + s,\n maxY: i + n\n };\n return {\n type: bt.ELLIPSE,\n geometry: {\n cx: e,\n cy: i,\n rx: s,\n ry: n,\n bounds: o\n }\n };\n}, Fp = (r) => {\n const t = typeof r == \"string\" ? r : r.value;\n if (t.includes(\"<polygon points=\"))\n return Dp(t);\n if (t.includes(\"<ellipse \"))\n return Op(t);\n throw \"Unsupported SVG shape: \" + t;\n}, Lp = (r) => {\n let t;\n if (r.type === bt.POLYGON) {\n const e = r.geometry, { points: i } = e;\n t = `<svg><polygon points=\"${i.map((s) => s.join(\",\")).join(\" \")}\" /></svg>`;\n } else if (r.type === bt.ELLIPSE) {\n const e = r.geometry;\n t = `<svg><ellipse cx=\"${e.cx}\" cy=\"${e.cy}\" rx=\"${e.rx}\" ry=\"${e.ry}\" /></svg>`;\n }\n if (t)\n return { type: \"SvgSelector\", value: t };\n throw `Unsupported shape type: ${r.type}`;\n};\nlet ws;\nconst Np = new Uint8Array(16);\nfunction Up() {\n if (!ws && (ws = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !ws))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return ws(Np);\n}\nconst $t = [];\nfor (let r = 0; r < 256; ++r)\n $t.push((r + 256).toString(16).slice(1));\nfunction kp(r, t = 0) {\n return $t[r[t + 0]] + $t[r[t + 1]] + $t[r[t + 2]] + $t[r[t + 3]] + \"-\" + $t[r[t + 4]] + $t[r[t + 5]] + \"-\" + $t[r[t + 6]] + $t[r[t + 7]] + \"-\" + $t[r[t + 8]] + $t[r[t + 9]] + \"-\" + $t[r[t + 10]] + $t[r[t + 11]] + $t[r[t + 12]] + $t[r[t + 13]] + $t[r[t + 14]] + $t[r[t + 15]];\n}\nconst Gp = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Ll = {\n randomUUID: Gp\n};\nfunction pu(r, t, e) {\n if (Ll.randomUUID && !t && !r)\n return Ll.randomUUID();\n r = r || {};\n const i = r.random || (r.rng || Up)();\n if (i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, t) {\n e = e || 0;\n for (let s = 0; s < 16; ++s)\n t[e + s] = i[s];\n return t;\n }\n return kp(i);\n}\nvar Nl = Object.prototype.hasOwnProperty;\nfunction Nr(r, t) {\n var e, i;\n if (r === t)\n return !0;\n if (r && t && (e = r.constructor) === t.constructor) {\n if (e === Date)\n return r.getTime() === t.getTime();\n if (e === RegExp)\n return r.toString() === t.toString();\n if (e === Array) {\n if ((i = r.length) === t.length)\n for (; i-- && Nr(r[i], t[i]); )\n ;\n return i === -1;\n }\n if (!e || typeof r == \"object\") {\n i = 0;\n for (e in r)\n if (Nl.call(r, e) && ++i && !Nl.call(t, e) || !(e in t) || !Nr(r[e], t[e]))\n return !1;\n return Object.keys(t).length === i;\n }\n }\n return r !== r && t !== t;\n}\nfunction ro() {\n}\nfunction $p(r, t) {\n return r != r ? t == t : r !== t || r && typeof r == \"object\" || typeof r == \"function\";\n}\nconst Yr = [];\nfunction nl(r, t = ro) {\n let e;\n const i = /* @__PURE__ */ new Set();\n function s(a) {\n if ($p(r, a) && (r = a, e)) {\n const l = !Yr.length;\n for (const h of i)\n h[1](), Yr.push(h, r);\n if (l) {\n for (let h = 0; h < Yr.length; h += 2)\n Yr[h][0](Yr[h + 1]);\n Yr.length = 0;\n }\n }\n }\n function n(a) {\n s(a(r));\n }\n function o(a, l = ro) {\n const h = [a, l];\n return i.add(h), i.size === 1 && (e = t(s, n) || ro), a(r), () => {\n i.delete(h), i.size === 0 && e && (e(), e = null);\n };\n }\n return { set: s, update: n, subscribe: o };\n}\nconst Hp = (r) => {\n const { subscribe: t, set: e } = nl();\n let i;\n return t((s) => i = s), r.observe(({ changes: s }) => {\n if (i) {\n (s.deleted || []).some((o) => o.id === i) && e(void 0);\n const n = (s.updated || []).find(({ oldValue: o }) => o.id === i);\n n && e(n.newValue.id);\n }\n }), {\n get current() {\n return i;\n },\n subscribe: t,\n set: e\n };\n};\nvar mu = /* @__PURE__ */ ((r) => (r.EDIT = \"EDIT\", r.SELECT = \"SELECT\", r.NONE = \"NONE\", r))(mu || {});\nconst io = { selected: [] }, Xp = (r, t = \"EDIT\") => {\n const { subscribe: e, set: i } = nl(io);\n let s = io;\n e((u) => s = u);\n const n = () => i(io), o = () => {\n var u;\n return ((u = s.selected) == null ? void 0 : u.length) === 0;\n }, a = (u) => {\n if (s.selected.length === 0)\n return !1;\n const d = typeof u == \"string\" ? u : u.id;\n return s.selected.some((f) => f.id === d);\n }, l = (u, d) => {\n const f = r.getAnnotation(u);\n if (f) {\n const p = Vp(f, t);\n i(p === \"EDIT\" ? { selected: [{ id: u, editable: !0 }], pointerEvent: d } : p === \"SELECT\" ? { selected: [{ id: u }], pointerEvent: d } : { selected: [], pointerEvent: d });\n } else\n console.warn(\"Invalid selection: \" + u);\n }, h = (u, d = !0) => {\n const f = Array.isArray(u) ? u : [u], p = f.map((m) => r.getAnnotation(m)).filter(Boolean);\n i({ selected: p.map(({ id: m }) => ({ id: m, editable: d })) }), p.length !== f.length && console.warn(\"Invalid selection\", u);\n }, c = (u) => {\n if (s.selected.length === 0)\n return !1;\n const { selected: d } = s;\n d.filter(({ id: f }) => u.includes(f)).length > 0 && i({ selected: d.filter(({ id: f }) => !u.includes(f)) });\n };\n return r.observe(({ changes: u }) => c((u.deleted || []).map((d) => d.id))), {\n clear: n,\n clickSelect: l,\n get selected() {\n return s ? [...s.selected] : null;\n },\n get pointerEvent() {\n return s ? s.pointerEvent : null;\n },\n isEmpty: o,\n isSelected: a,\n setSelected: h,\n subscribe: e\n };\n}, Vp = (r, t) => typeof t == \"function\" ? t(r) || \"EDIT\" : t || \"EDIT\", zp = [];\nfor (let r = 0; r < 256; ++r)\n zp.push((r + 256).toString(16).slice(1));\ntypeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nconst Wp = (r, t) => {\n const e = new Set(r.bodies.map((i) => i.id));\n return t.bodies.filter((i) => !e.has(i.id));\n}, jp = (r, t) => {\n const e = new Set(t.bodies.map((i) => i.id));\n return r.bodies.filter((i) => !e.has(i.id));\n}, Yp = (r, t) => t.bodies.map((e) => {\n const i = r.bodies.find((s) => s.id === e.id);\n return { newBody: e, oldBody: i && !Nr(i, e) ? i : void 0 };\n}).filter(({ oldBody: e }) => e).map(({ oldBody: e, newBody: i }) => ({ oldBody: e, newBody: i })), qp = (r, t) => !Nr(r.target, t.target), gu = (r, t) => {\n const e = Wp(r, t), i = jp(r, t), s = Yp(r, t);\n return {\n oldValue: r,\n newValue: t,\n bodiesCreated: e.length > 0 ? e : void 0,\n bodiesDeleted: i.length > 0 ? i : void 0,\n bodiesUpdated: s.length > 0 ? s : void 0,\n targetUpdated: qp(r, t) ? { oldTarget: r.target, newTarget: t.target } : void 0\n };\n};\nvar Pt = /* @__PURE__ */ ((r) => (r.LOCAL = \"LOCAL\", r.REMOTE = \"REMOTE\", r))(Pt || {});\nconst Kp = (r, t) => {\n var e, i;\n const { changes: s, origin: n } = t;\n if (!(!r.options.origin || r.options.origin === n))\n return !1;\n if (r.options.ignore) {\n const { ignore: o } = r.options, a = (l) => l && l.length > 0;\n if (!(a(s.created) || a(s.deleted))) {\n const l = (e = s.updated) == null ? void 0 : e.some((c) => a(c.bodiesCreated) || a(c.bodiesDeleted) || a(c.bodiesUpdated)), h = (i = s.updated) == null ? void 0 : i.some((c) => c.targetUpdated);\n if (o === \"BODY_ONLY\" && l && !h || o === \"TARGET_ONLY\" && h && !l)\n return !1;\n }\n }\n if (r.options.annotations) {\n const o = /* @__PURE__ */ new Set([\n ...(s.created || []).map((a) => a.id),\n ...(s.deleted || []).map((a) => a.id),\n ...(s.updated || []).map(({ oldValue: a }) => a.id)\n ]);\n return !!(Array.isArray(r.options.annotations) ? r.options.annotations : [r.options.annotations]).find((a) => o.has(a));\n } else\n return !0;\n}, Zp = (r, t) => {\n const e = new Set((r.created || []).map((u) => u.id)), i = new Set((r.updated || []).map(({ newValue: u }) => u.id)), s = new Set((t.created || []).map((u) => u.id)), n = new Set((t.deleted || []).map((u) => u.id)), o = new Set((t.updated || []).map(({ oldValue: u }) => u.id)), a = new Set((t.updated || []).filter(({ oldValue: u }) => e.has(u.id) || i.has(u.id)).map(({ oldValue: u }) => u.id)), l = [\n ...(r.created || []).filter((u) => !n.has(u.id)).map((u) => o.has(u.id) ? t.updated.find(({ oldValue: d }) => d.id === u.id).newValue : u),\n ...t.created || []\n ], h = [\n ...(r.deleted || []).filter((u) => !s.has(u.id)),\n ...(t.deleted || []).filter((u) => !e.has(u.id))\n ], c = [\n ...(r.updated || []).filter(({ newValue: u }) => !n.has(u.id)).map((u) => {\n const { oldValue: d, newValue: f } = u;\n if (o.has(f.id)) {\n const p = t.updated.find((m) => m.oldValue.id === f.id).newValue;\n return gu(d, p);\n } else\n return u;\n }),\n ...(t.updated || []).filter(({ oldValue: u }) => !a.has(u.id))\n ];\n return { created: l, deleted: h, updated: c };\n}, Jp = (r) => r.id !== void 0, Qp = () => {\n const r = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), e = [], i = (b, T = {}) => e.push({ onChange: b, options: T }), s = (b) => {\n const T = e.findIndex((I) => I.onChange == b);\n T > -1 && e.splice(T, 1);\n }, n = (b, T) => {\n const I = {\n origin: b,\n changes: {\n created: T.created || [],\n updated: T.updated || [],\n deleted: T.deleted || []\n },\n state: [...r.values()]\n };\n e.forEach((O) => {\n Kp(O, I) && O.onChange(I);\n });\n }, o = (b, T = Pt.LOCAL) => {\n if (r.get(b.id))\n throw Error(`Cannot add annotation ${b.id} - exists already`);\n r.set(b.id, b), b.bodies.forEach((I) => t.set(I.id, b.id)), n(T, { created: [b] });\n }, a = (b, T) => {\n const I = typeof b == \"string\" ? T : b, O = typeof b == \"string\" ? b : b.id, M = r.get(O);\n if (M) {\n const E = gu(M, I);\n return O === I.id ? r.set(O, I) : (r.delete(O), r.set(I.id, I)), M.bodies.forEach((A) => t.delete(A.id)), I.bodies.forEach((A) => t.set(A.id, I.id)), E;\n } else\n console.warn(`Cannot update annotation ${O} - does not exist`);\n }, l = (b, T = Pt.LOCAL, I = Pt.LOCAL) => {\n const O = Jp(T) ? I : T, M = a(b, T);\n M && n(O, { updated: [M] });\n }, h = (b, T = Pt.LOCAL) => {\n const I = b.reduce((O, M) => {\n const E = a(M);\n return E ? [...O, E] : O;\n }, []);\n I.length > 0 && n(T, { updated: I });\n }, c = (b, T = Pt.LOCAL) => {\n const I = r.get(b.annotation);\n if (I) {\n const O = {\n ...I,\n bodies: [...I.bodies, b]\n };\n r.set(I.id, O), t.set(b.id, O.id), n(T, { updated: [{\n oldValue: I,\n newValue: O,\n bodiesCreated: [b]\n }] });\n } else\n console.warn(`Attempt to add body to missing annotation: ${b.annotation}`);\n }, u = () => [...r.values()], d = (b = Pt.LOCAL) => {\n const T = [...r.values()];\n r.clear(), t.clear(), n(b, { deleted: T });\n }, f = (b, T = !0, I = Pt.LOCAL) => {\n if (T) {\n const O = [...r.values()];\n r.clear(), t.clear(), b.forEach((M) => {\n r.set(M.id, M), M.bodies.forEach((E) => t.set(E.id, M.id));\n }), n(I, { created: b, deleted: O });\n } else {\n const O = b.reduce((M, E) => {\n const A = r.get(E.id);\n return A ? [...M, A] : M;\n }, []);\n if (O.length > 0)\n throw Error(`Bulk insert would overwrite the following annotations: ${O.map((M) => M.id).join(\", \")}`);\n b.forEach((M) => {\n r.set(M.id, M), M.bodies.forEach((E) => t.set(E.id, M.id));\n }), n(I, { created: b });\n }\n }, p = (b) => {\n const T = typeof b == \"string\" ? b : b.id, I = r.get(T);\n if (I)\n return r.delete(T), I.bodies.forEach((O) => t.delete(O.id)), I;\n console.warn(`Attempt to delete missing annotation: ${T}`);\n }, m = (b, T = Pt.LOCAL) => {\n const I = p(b);\n I && n(T, { deleted: [I] });\n }, g = (b, T = Pt.LOCAL) => {\n const I = b.reduce((O, M) => {\n const E = p(M);\n return E ? [...O, E] : O;\n }, []);\n I.length > 0 && n(T, { deleted: I });\n }, y = (b, T = Pt.LOCAL) => {\n const I = r.get(b.annotation);\n if (I) {\n const O = I.bodies.find((M) => M.id === b.id);\n if (O) {\n t.delete(O.id);\n const M = {\n ...I,\n bodies: I.bodies.filter((E) => E.id !== b.id)\n };\n r.set(I.id, M), n(T, { updated: [{\n oldValue: I,\n newValue: M,\n bodiesDeleted: [O]\n }] });\n } else\n console.warn(`Attempt to delete missing body ${b.id} from annotation ${b.annotation}`);\n } else\n console.warn(`Attempt to delete body from missing annotation ${b.annotation}`);\n }, x = (b) => {\n const T = r.get(b);\n return T ? { ...T } : void 0;\n }, _ = (b) => {\n const T = t.get(b);\n if (T) {\n const I = x(T).bodies.find((O) => O.id === b);\n if (I)\n return I;\n console.error(`Store integrity error: body ${b} in index, but not in annotation`);\n } else\n console.warn(`Attempt to retrieve missing body: ${b}`);\n }, v = (b, T) => {\n if (b.annotation !== T.annotation)\n throw \"Annotation integrity violation: annotation ID must be the same when updating bodies\";\n const I = r.get(b.annotation);\n if (I) {\n const O = I.bodies.find((E) => E.id === b.id), M = {\n ...I,\n bodies: I.bodies.map((E) => E.id === O.id ? T : E)\n };\n return r.set(I.id, M), O.id !== T.id && (t.delete(O.id), t.set(T.id, M.id)), {\n oldValue: I,\n newValue: M,\n bodiesUpdated: [{ oldBody: O, newBody: T }]\n };\n } else\n console.warn(`Attempt to add body to missing annotation ${b.annotation}`);\n }, w = (b, T, I = Pt.LOCAL) => {\n const O = v(b, T);\n O && n(I, { updated: [O] });\n }, R = (b, T = Pt.LOCAL) => {\n const I = b.map((O) => v({ id: O.id, annotation: O.annotation }, O)).filter(Boolean);\n n(T, { updated: I });\n }, C = (b) => {\n const T = r.get(b.annotation);\n if (T) {\n const I = {\n ...T,\n target: {\n ...T.target,\n ...b\n }\n };\n return r.set(T.id, I), {\n oldValue: T,\n newValue: I,\n targetUpdated: {\n oldTarget: T.target,\n newTarget: b\n }\n };\n } else\n console.warn(`Attempt to update target on missing annotation: ${b.annotation}`);\n };\n return {\n addAnnotation: o,\n addBody: c,\n all: u,\n bulkAddAnnotation: f,\n bulkDeleteAnnotation: g,\n bulkUpdateAnnotation: h,\n bulkUpdateBodies: R,\n bulkUpdateTargets: (b, T = Pt.LOCAL) => {\n const I = b.map((O) => C(O)).filter(Boolean);\n I.length > 0 && n(T, { updated: I });\n },\n clear: d,\n deleteAnnotation: m,\n deleteBody: y,\n getAnnotation: x,\n getBody: _,\n observe: i,\n unobserve: s,\n updateAnnotation: l,\n updateBody: w,\n updateTarget: (b, T = Pt.LOCAL) => {\n const I = C(b);\n I && n(T, { updated: [I] });\n }\n };\n}, tm = (r) => ({\n ...r,\n subscribe: (t) => {\n const e = (i) => t(i.state);\n return r.observe(e), t(r.all()), () => r.unobserve(e);\n }\n});\nlet em = () => ({\n emit(r, ...t) {\n for (let e = 0, i = this.events[r] || [], s = i.length; e < s; e++)\n i[e](...t);\n },\n events: {},\n on(r, t) {\n var e;\n return ((e = this.events)[r] || (e[r] = [])).push(t), () => {\n var i;\n this.events[r] = (i = this.events[r]) == null ? void 0 : i.filter((s) => t !== s);\n };\n }\n});\nconst rm = 250, im = (r) => {\n const t = em(), e = [];\n let i = -1, s = !1, n = 0;\n const o = (f) => {\n if (!s) {\n const { changes: p } = f, m = performance.now();\n if (m - n > rm)\n e.splice(i + 1), e.push(p), i = e.length - 1;\n else {\n const g = e.length - 1;\n e[g] = Zp(e[g], p);\n }\n n = m;\n }\n s = !1;\n };\n r.observe(o, { origin: Pt.LOCAL });\n const a = (f) => f && f.length > 0 && r.bulkDeleteAnnotation(f), l = (f) => f && f.length > 0 && r.bulkAddAnnotation(f, !1), h = (f) => f && f.length > 0 && r.bulkUpdateAnnotation(f.map(({ oldValue: p }) => p)), c = (f) => f && f.length > 0 && r.bulkUpdateAnnotation(f.map(({ newValue: p }) => p)), u = (f) => f && f.length > 0 && r.bulkAddAnnotation(f, !1), d = (f) => f && f.length > 0 && r.bulkDeleteAnnotation(f);\n return {\n canRedo: () => e.length - 1 > i,\n canUndo: () => i > -1,\n destroy: () => r.unobserve(o),\n on: (f, p) => t.on(f, p),\n redo: () => {\n if (e.length - 1 > i) {\n s = !0;\n const { created: f, updated: p, deleted: m } = e[i + 1];\n l(f), c(p), d(m), t.emit(\"redo\", e[i + 1]), i += 1;\n }\n },\n undo: () => {\n if (i > -1) {\n s = !0;\n const { created: f, updated: p, deleted: m } = e[i];\n a(f), h(p), u(m), t.emit(\"undo\", e[i]), i -= 1;\n }\n }\n };\n}, sm = () => {\n const { subscribe: r, set: t } = nl([]);\n return {\n subscribe: r,\n set: t\n };\n}, nm = (r, t, e, i) => {\n const { store: s, selection: n, hover: o, viewport: a } = r, l = /* @__PURE__ */ new Map();\n let h = [], c, u;\n const d = (y, x) => {\n l.has(y) ? l.get(y).push(x) : l.set(y, [x]);\n }, f = (y, x) => {\n const _ = l.get(y);\n _ && _.indexOf(x) > 0 && _.splice(_.indexOf(x), 1);\n }, p = (y, x, _) => {\n l.has(y) && setTimeout(() => {\n l.get(y).forEach((v) => {\n if (e) {\n const w = Array.isArray(x) ? x.map((C) => e.serialize(C)) : e.serialize(x), R = _ ? _ instanceof PointerEvent ? _ : e.serialize(_) : void 0;\n v(w, R);\n } else\n v(x, _);\n });\n }, 1);\n }, m = () => {\n const { selected: y } = n, x = (y || []).map(({ id: _ }) => s.getAnnotation(_));\n x.forEach((_) => {\n const v = h.find((w) => w.id === _.id);\n (!v || !Nr(v, _)) && p(\"updateAnnotation\", _, v);\n }), h = h.map((_) => x.find(({ id: v }) => v === _.id) || _);\n };\n n.subscribe(({ selected: y }) => {\n if (!(h.length === 0 && y.length === 0)) {\n if (h.length === 0 && y.length > 0)\n h = y.map(({ id: x }) => s.getAnnotation(x));\n else if (h.length > 0 && y.length === 0)\n h.forEach((x) => {\n const _ = s.getAnnotation(x.id);\n _ && !Nr(_, x) && p(\"updateAnnotation\", _, x);\n }), h = [];\n else {\n const x = new Set(h.map((v) => v.id)), _ = new Set(y.map(({ id: v }) => v));\n h.filter((v) => !_.has(v.id)).forEach((v) => {\n const w = s.getAnnotation(v.id);\n w && !Nr(w, v) && p(\"updateAnnotation\", w, v);\n }), h = [\n // Remove annotations that were deselected\n ...h.filter((v) => _.has(v.id)),\n // Add editable annotations that were selected\n ...y.filter(({ id: v }) => !x.has(v)).map(({ id: v }) => s.getAnnotation(v))\n ];\n }\n p(\"selectionChanged\", h);\n }\n }), o.subscribe((y) => {\n !c && y ? p(\"mouseEnterAnnotation\", s.getAnnotation(y)) : c && !y ? p(\"mouseLeaveAnnotation\", s.getAnnotation(c)) : c && y && (p(\"mouseLeaveAnnotation\", s.getAnnotation(c)), p(\"mouseEnterAnnotation\", s.getAnnotation(y))), c = y;\n }), a == null || a.subscribe((y) => p(\"viewportIntersect\", y.map((x) => s.getAnnotation(x)))), s.observe((y) => {\n i && (u && clearTimeout(u), u = setTimeout(m, 1e3));\n const { created: x, deleted: _ } = y.changes;\n (x || []).forEach((v) => p(\"createAnnotation\", v)), (_ || []).forEach((v) => p(\"deleteAnnotation\", v)), (y.changes.updated || []).filter((v) => [\n ...v.bodiesCreated || [],\n ...v.bodiesDeleted || [],\n ...v.bodiesUpdated || []\n ].length > 0).forEach(({ oldValue: v, newValue: w }) => {\n const R = h.find((C) => C.id === v.id) || v;\n h = h.map((C) => C.id === v.id ? w : C), p(\"updateAnnotation\", w, R);\n });\n }, { origin: Pt.LOCAL }), s.observe((y) => {\n if (h) {\n const x = new Set(h.map((v) => v.id)), _ = (y.changes.updated || []).filter(({ newValue: v }) => x.has(v.id)).map(({ newValue: v }) => v);\n _.length > 0 && (h = h.map((v) => _.find((w) => w.id === v.id) || v));\n }\n }, { origin: Pt.REMOTE });\n const g = (y) => (x) => {\n const { updated: _ } = x;\n y ? (_ || []).forEach((v) => p(\"updateAnnotation\", v.oldValue, v.newValue)) : (_ || []).forEach((v) => p(\"updateAnnotation\", v.newValue, v.oldValue));\n };\n return t.on(\"undo\", g(!0)), t.on(\"redo\", g(!1)), { on: d, off: f, emit: p };\n}, om = (r) => (t) => t.reduce((e, i) => {\n const { parsed: s, error: n } = r.parse(i);\n return n ? {\n parsed: e.parsed,\n failed: [...e.failed, i]\n } : s ? {\n parsed: [...e.parsed, s],\n failed: e.failed\n } : {\n ...e\n };\n}, { parsed: [], failed: [] }), am = (r, t, e) => {\n const { store: i, selection: s } = r, n = (g) => {\n if (e) {\n const { parsed: y, error: x } = e.parse(g);\n y ? i.addAnnotation(y, Pt.REMOTE) : console.error(x);\n } else\n i.addAnnotation(g, Pt.REMOTE);\n }, o = () => s.clear(), a = () => i.clear(), l = (g) => {\n const y = i.getAnnotation(g);\n return e && y ? e.serialize(y) : y;\n }, h = () => e ? i.all().map(e.serialize) : i.all(), c = () => {\n var g;\n const y = (((g = s.selected) == null ? void 0 : g.map((x) => x.id)) || []).map((x) => i.getAnnotation(x)).filter(Boolean);\n return e ? y.map(e.serialize) : y;\n }, u = (g, y = !0) => fetch(g).then((x) => x.json()).then((x) => (f(x, y), x)), d = (g) => {\n if (typeof g == \"string\") {\n const y = i.getAnnotation(g);\n if (i.deleteAnnotation(g), y)\n return e ? e.serialize(y) : y;\n } else {\n const y = e ? e.parse(g).parsed : g;\n if (y)\n return i.deleteAnnotation(y), g;\n }\n }, f = (g, y = !0) => {\n if (e) {\n const { parsed: x, failed: _ } = om(e)(g);\n _.length > 0 && console.warn(`Discarded ${_.length} invalid annotations`, _), i.bulkAddAnnotation(x, y, Pt.REMOTE);\n } else\n i.bulkAddAnnotation(g, y, Pt.REMOTE);\n }, p = (g) => {\n g ? s.setSelected(g) : s.clear();\n }, m = (g) => {\n if (e) {\n const y = e.parse(g).parsed, x = e.serialize(i.getAnnotation(y.id));\n return i.updateAnnotation(y), x;\n } else {\n const y = i.getAnnotation(g.id);\n return i.updateAnnotation(g), y;\n }\n };\n return {\n addAnnotation: n,\n cancelSelected: o,\n canRedo: t.canRedo,\n canUndo: t.canUndo,\n clearAnnotations: a,\n getAnnotationById: l,\n getAnnotations: h,\n getSelected: c,\n loadAnnotations: u,\n redo: t.redo,\n removeAnnotation: d,\n setAnnotations: f,\n setSelected: p,\n undo: t.undo,\n updateAnnotation: m\n };\n}, lm = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet hm = (r) => crypto.getRandomValues(new Uint8Array(r)), cm = (r, t, e) => {\n let i = (2 << Math.log(r.length - 1) / Math.LN2) - 1, s = -~(1.6 * i * t / r.length);\n return (n = t) => {\n let o = \"\";\n for (; ; ) {\n let a = e(s), l = s;\n for (; l--; )\n if (o += r[a[l] & i] || \"\", o.length === n)\n return o;\n }\n };\n}, um = (r, t = 21) => cm(r, t, hm), dm = (r = 21) => {\n let t = \"\", e = crypto.getRandomValues(new Uint8Array(r));\n for (; r--; )\n t += lm[e[r] & 63];\n return t;\n};\nconst fm = () => ({ isGuest: !0, id: um(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), pm = (r) => {\n const t = JSON.stringify(r);\n let e = 0;\n for (let i = 0, s = t.length; i < s; i++) {\n let n = t.charCodeAt(i);\n e = (e << 5) - e + n, e |= 0;\n }\n return `${e}`;\n}, yu = (r) => r ? typeof r == \"object\" ? { ...r } : r : void 0, mm = (r, t) => (Array.isArray(r) ? r : [r]).map((e) => {\n const { id: i, type: s, purpose: n, value: o, created: a, creator: l, ...h } = e;\n return {\n id: i || `temp-${pm(e)}`,\n annotation: t,\n type: s,\n purpose: n,\n value: o,\n created: a ? new Date(a) : void 0,\n creator: yu(l),\n ...h\n };\n}), gm = (r) => r.map((t) => {\n var e, i;\n const s = { ...t };\n return delete s.annotation, (e = s.id) != null && e.startsWith(\"temp-\") && delete s.id, { ...s, created: (i = s.created) == null ? void 0 : i.toISOString() };\n});\ndm();\nconst ym = (r, t = !1) => ({ parse: (e) => _m(e, t), serialize: (e) => vm(e, r) }), _m = (r, t = !1) => {\n const e = r.id || pu(), {\n creator: i,\n created: s,\n modified: n,\n body: o,\n ...a\n } = r, l = mm(o, e), h = Array.isArray(r.target) ? r.target[0] : r.target, c = Array.isArray(h.selector) ? h.selector[0] : h.selector, u = (c == null ? void 0 : c.type) === \"FragmentSelector\" ? Pp(c, t) : (c == null ? void 0 : c.type) === \"SvgSelector\" ? Fp(c) : void 0;\n return u ? {\n parsed: {\n ...a,\n id: e,\n bodies: l,\n target: {\n created: s ? new Date(s) : void 0,\n creator: yu(i),\n updated: n ? new Date(n) : void 0,\n ...Array.isArray(a.target) ? a.target[0] : a.target,\n annotation: e,\n selector: u\n }\n }\n } : {\n error: Error(`Invalid selector: ${JSON.stringify(c)}`)\n };\n}, vm = (r, t) => {\n const {\n selector: e,\n creator: i,\n created: s,\n updated: n,\n updatedBy: o,\n // Excluded from serialization\n ...a\n } = r.target, l = e.type == bt.RECTANGLE ? Rp(e.geometry) : Lp(e), h = {\n ...r,\n \"@context\": \"http://www.w3.org/ns/anno.jsonld\",\n id: r.id,\n type: \"Annotation\",\n body: gm(r.bodies),\n created: s == null ? void 0 : s.toISOString(),\n creator: i,\n modified: n == null ? void 0 : n.toISOString(),\n target: {\n ...a,\n source: t,\n selector: l\n }\n };\n return delete h.bodies, \"annotation\" in h.target && delete h.target.annotation, h;\n};\nfunction Ul(r, t, e) {\n const i = r.slice();\n return i[10] = t[e], i[12] = e, i;\n}\nfunction kl(r) {\n let t, e;\n return t = new Vi({\n props: {\n x: (\n /*point*/\n r[10][0]\n ),\n y: (\n /*point*/\n r[10][1]\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), t.$on(\"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](`HANDLE-${/*idx*/\n r[12]}`)\n ) && r[9](`HANDLE-${/*idx*/\n r[12]}`).apply(this, arguments);\n }), {\n c() {\n le(t.$$.fragment);\n },\n m(i, s) {\n re(t, i, s), e = !0;\n },\n p(i, s) {\n r = i;\n const n = {};\n s & /*geom*/\n 16 && (n.x = /*point*/\n r[10][0]), s & /*geom*/\n 16 && (n.y = /*point*/\n r[10][1]), s & /*viewportScale*/\n 8 && (n.scale = /*viewportScale*/\n r[3]), t.$set(n);\n },\n i(i) {\n e || (ot(t.$$.fragment, i), e = !0);\n },\n o(i) {\n pt(t.$$.fragment, i), e = !1;\n },\n d(i) {\n ie(t, i);\n }\n };\n}\nfunction xm(r) {\n let t, e, i, s, n, o, a, l, h, c, u, d = Ai(\n /*geom*/\n r[4].points\n ), f = [];\n for (let m = 0; m < d.length; m += 1)\n f[m] = kl(Ul(r, d, m));\n const p = (m) => pt(f[m], 1, 1, () => {\n f[m] = null;\n });\n return {\n c() {\n t = mt(\"polygon\"), s = ye(), n = mt(\"polygon\"), a = ye();\n for (let m = 0; m < f.length; m += 1)\n f[m].c();\n l = Ve(), S(t, \"class\", \"a9s-outer\"), S(t, \"style\", e = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0), S(t, \"points\", i = /*geom*/\n r[4].points.map(Gl).join(\" \")), S(n, \"class\", \"a9s-inner a9s-shape-handle\"), S(\n n,\n \"style\",\n /*computedStyle*/\n r[1]\n ), S(n, \"points\", o = /*geom*/\n r[4].points.map($l).join(\" \"));\n },\n m(m, g) {\n rt(m, t, g), rt(m, s, g), rt(m, n, g), rt(m, a, g);\n for (let y = 0; y < f.length; y += 1)\n f[y] && f[y].m(m, g);\n rt(m, l, g), h = !0, c || (u = [\n Ft(t, \"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"SHAPE\")\n ) && r[9](\"SHAPE\").apply(this, arguments);\n }),\n Ft(n, \"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"SHAPE\")\n ) && r[9](\"SHAPE\").apply(this, arguments);\n })\n ], c = !0);\n },\n p(m, g) {\n if (r = m, (!h || g & /*computedStyle*/\n 2 && e !== (e = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0)) && S(t, \"style\", e), (!h || g & /*geom*/\n 16 && i !== (i = /*geom*/\n r[4].points.map(Gl).join(\" \"))) && S(t, \"points\", i), (!h || g & /*computedStyle*/\n 2) && S(\n n,\n \"style\",\n /*computedStyle*/\n r[1]\n ), (!h || g & /*geom*/\n 16 && o !== (o = /*geom*/\n r[4].points.map($l).join(\" \"))) && S(n, \"points\", o), g & /*geom, viewportScale, grab*/\n 536) {\n d = Ai(\n /*geom*/\n r[4].points\n );\n let y;\n for (y = 0; y < d.length; y += 1) {\n const x = Ul(r, d, y);\n f[y] ? (f[y].p(x, g), ot(f[y], 1)) : (f[y] = kl(x), f[y].c(), ot(f[y], 1), f[y].m(l.parentNode, l));\n }\n for (ke(), y = d.length; y < f.length; y += 1)\n p(y);\n Ge();\n }\n },\n i(m) {\n if (!h) {\n for (let g = 0; g < d.length; g += 1)\n ot(f[g]);\n h = !0;\n }\n },\n o(m) {\n f = f.filter(Boolean);\n for (let g = 0; g < f.length; g += 1)\n pt(f[g]);\n h = !1;\n },\n d(m) {\n m && (tt(t), tt(s), tt(n), tt(a), tt(l)), rl(f, m), c = !1, Xe(u);\n }\n };\n}\nfunction bm(r) {\n let t, e;\n return t = new wu({\n props: {\n shape: (\n /*shape*/\n r[0]\n ),\n transform: (\n /*transform*/\n r[2]\n ),\n editor: (\n /*editor*/\n r[5]\n ),\n $$slots: {\n default: [\n xm,\n ({ grab: i }) => ({ 9: i }),\n ({ grab: i }) => i ? 512 : 0\n ]\n },\n $$scope: { ctx: r }\n }\n }), t.$on(\n \"change\",\n /*change_handler*/\n r[6]\n ), t.$on(\n \"grab\",\n /*grab_handler*/\n r[7]\n ), t.$on(\n \"release\",\n /*release_handler*/\n r[8]\n ), {\n c() {\n le(t.$$.fragment);\n },\n m(i, s) {\n re(t, i, s), e = !0;\n },\n p(i, [s]) {\n const n = {};\n s & /*shape*/\n 1 && (n.shape = /*shape*/\n i[0]), s & /*transform*/\n 4 && (n.transform = /*transform*/\n i[2]), s & /*$$scope, geom, viewportScale, grab, computedStyle*/\n 8730 && (n.$$scope = { dirty: s, ctx: i }), t.$set(n);\n },\n i(i) {\n e || (ot(t.$$.fragment, i), e = !0);\n },\n o(i) {\n pt(t.$$.fragment, i), e = !1;\n },\n d(i) {\n ie(t, i);\n }\n };\n}\nconst Gl = (r) => r.join(\",\"), $l = (r) => r.join(\",\");\nfunction wm(r, t, e) {\n let i, { shape: s } = t, { computedStyle: n } = t, { transform: o } = t, { viewportScale: a = 1 } = t;\n const l = (d, f, p) => {\n let m;\n const g = d.geometry;\n f === \"SHAPE\" ? m = g.points.map(([x, _]) => [x + p[0], _ + p[1]]) : m = g.points.map(([x, _], v) => f === `HANDLE-${v}` ? [x + p[0], _ + p[1]] : [x, _]);\n const y = mn(m);\n return { ...d, geometry: { points: m, bounds: y } };\n };\n function h(d) {\n Je.call(this, r, d);\n }\n function c(d) {\n Je.call(this, r, d);\n }\n function u(d) {\n Je.call(this, r, d);\n }\n return r.$$set = (d) => {\n \"shape\" in d && e(0, s = d.shape), \"computedStyle\" in d && e(1, n = d.computedStyle), \"transform\" in d && e(2, o = d.transform), \"viewportScale\" in d && e(3, a = d.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*shape*/\n 1 && e(4, i = s.geometry);\n }, [\n s,\n n,\n o,\n a,\n i,\n l,\n h,\n c,\n u\n ];\n}\nclass Em extends de {\n constructor(t) {\n super(), ue(this, t, wm, bm, Kt, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 3\n });\n }\n}\nconst so = (r, t) => {\n const e = Math.abs(t[0] - r[0]), i = Math.abs(t[1] - r[1]);\n return Math.sqrt(Math.pow(e, 2) + Math.pow(i, 2));\n}, qr = [];\nfunction Tm(r, t = Ct) {\n let e;\n const i = /* @__PURE__ */ new Set();\n function s(a) {\n if (Kt(r, a) && (r = a, e)) {\n const l = !qr.length;\n for (const h of i)\n h[1](), qr.push(h, r);\n if (l) {\n for (let h = 0; h < qr.length; h += 2)\n qr[h][0](qr[h + 1]);\n qr.length = 0;\n }\n }\n }\n function n(a) {\n s(a(r));\n }\n function o(a, l = Ct) {\n const h = [a, l];\n return i.add(h), i.size === 1 && (e = t(s, n) || Ct), a(r), () => {\n i.delete(h), i.size === 0 && e && (e(), e = null);\n };\n }\n return { set: s, update: n, subscribe: o };\n}\nconst Am = (r, t) => {\n const { naturalWidth: e, naturalHeight: i } = r;\n if (!e && !i) {\n const { width: s, height: n } = r;\n t.setAttribute(\"viewBox\", `0 0 ${s} ${n}`), r.addEventListener(\"load\", (o) => {\n const a = o.target;\n t.setAttribute(\"viewBox\", `0 0 ${a.naturalWidth} ${a.naturalHeight}`);\n });\n } else\n t.setAttribute(\"viewBox\", `0 0 ${e} ${i}`);\n}, Sm = (r, t) => {\n Am(r, t);\n const { subscribe: e, set: i } = Tm(1);\n let s;\n return window.ResizeObserver && (s = new ResizeObserver(() => {\n const n = t.getBoundingClientRect(), { width: o, height: a } = t.viewBox.baseVal, l = Math.max(\n n.width / o,\n n.height / a\n );\n i(l);\n }), s.observe(t.parentElement)), { destroy: () => {\n s && s.disconnect();\n }, subscribe: e };\n}, _u = \"ontouchstart\" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\nfunction Cm(r) {\n let t, e, i, s, n, o;\n return {\n c() {\n t = mt(\"rect\"), S(t, \"class\", e = dn(`a9s-handle ${/*$$props*/\n r[8].class || \"\"}`.trim()) + \" svelte-1sgkh33\"), S(t, \"x\", i = /*x*/\n r[0] - /*handleSize*/\n r[5] / 2), S(t, \"y\", s = /*y*/\n r[1] - /*handleSize*/\n r[5] / 2), S(\n t,\n \"width\",\n /*handleSize*/\n r[5]\n ), S(\n t,\n \"height\",\n /*handleSize*/\n r[5]\n );\n },\n m(a, l) {\n rt(a, t, l), n || (o = Ft(\n t,\n \"pointerdown\",\n /*pointerdown_handler_2*/\n r[11]\n ), n = !0);\n },\n p(a, l) {\n l & /*$$props*/\n 256 && e !== (e = dn(`a9s-handle ${/*$$props*/\n a[8].class || \"\"}`.trim()) + \" svelte-1sgkh33\") && S(t, \"class\", e), l & /*x, handleSize*/\n 33 && i !== (i = /*x*/\n a[0] - /*handleSize*/\n a[5] / 2) && S(t, \"x\", i), l & /*y, handleSize*/\n 34 && s !== (s = /*y*/\n a[1] - /*handleSize*/\n a[5] / 2) && S(t, \"y\", s), l & /*handleSize*/\n 32 && S(\n t,\n \"width\",\n /*handleSize*/\n a[5]\n ), l & /*handleSize*/\n 32 && S(\n t,\n \"height\",\n /*handleSize*/\n a[5]\n );\n },\n d(a) {\n a && tt(t), n = !1, o();\n }\n };\n}\nfunction Im(r) {\n let t, e, i, s, n, o, a, l, h;\n return {\n c() {\n t = mt(\"g\"), e = mt(\"circle\"), s = mt(\"rect\"), S(\n e,\n \"cx\",\n /*x*/\n r[0]\n ), S(\n e,\n \"cy\",\n /*y*/\n r[1]\n ), S(e, \"r\", i = /*radius*/\n r[3] / /*scale*/\n r[2]), S(e, \"class\", \"a9s-touch-halo svelte-1sgkh33\"), fn(\n e,\n \"touched\",\n /*touched*/\n r[4]\n ), S(s, \"class\", n = dn(`a9s-handle ${/*$$props*/\n r[8].class || \"\"}`.trim()) + \" svelte-1sgkh33\"), S(s, \"x\", o = /*x*/\n r[0] - /*handleSize*/\n r[5] / 2), S(s, \"y\", a = /*y*/\n r[1] - /*handleSize*/\n r[5] / 2), S(\n s,\n \"width\",\n /*handleSize*/\n r[5]\n ), S(\n s,\n \"height\",\n /*handleSize*/\n r[5]\n ), S(t, \"class\", \"a9s-touch-handle\");\n },\n m(c, u) {\n rt(c, t, u), Ue(t, e), Ue(t, s), l || (h = [\n Ft(\n e,\n \"pointerdown\",\n /*pointerdown_handler*/\n r[10]\n ),\n Ft(\n e,\n \"pointerdown\",\n /*onPointerDown*/\n r[6]\n ),\n Ft(\n e,\n \"pointerup\",\n /*onPointerUp*/\n r[7]\n ),\n Ft(\n s,\n \"pointerdown\",\n /*pointerdown_handler_1*/\n r[9]\n ),\n Ft(\n s,\n \"pointerdown\",\n /*onPointerDown*/\n r[6]\n ),\n Ft(\n s,\n \"pointerup\",\n /*onPointerUp*/\n r[7]\n )\n ], l = !0);\n },\n p(c, u) {\n u & /*x*/\n 1 && S(\n e,\n \"cx\",\n /*x*/\n c[0]\n ), u & /*y*/\n 2 && S(\n e,\n \"cy\",\n /*y*/\n c[1]\n ), u & /*radius, scale*/\n 12 && i !== (i = /*radius*/\n c[3] / /*scale*/\n c[2]) && S(e, \"r\", i), u & /*touched*/\n 16 && fn(\n e,\n \"touched\",\n /*touched*/\n c[4]\n ), u & /*$$props*/\n 256 && n !== (n = dn(`a9s-handle ${/*$$props*/\n c[8].class || \"\"}`.trim()) + \" svelte-1sgkh33\") && S(s, \"class\", n), u & /*x, handleSize*/\n 33 && o !== (o = /*x*/\n c[0] - /*handleSize*/\n c[5] / 2) && S(s, \"x\", o), u & /*y, handleSize*/\n 34 && a !== (a = /*y*/\n c[1] - /*handleSize*/\n c[5] / 2) && S(s, \"y\", a), u & /*handleSize*/\n 32 && S(\n s,\n \"width\",\n /*handleSize*/\n c[5]\n ), u & /*handleSize*/\n 32 && S(\n s,\n \"height\",\n /*handleSize*/\n c[5]\n );\n },\n d(c) {\n c && tt(t), l = !1, Xe(h);\n }\n };\n}\nfunction Pm(r) {\n let t;\n function e(s, n) {\n return _u ? Im : Cm;\n }\n let i = e()(r);\n return {\n c() {\n i.c(), t = Ve();\n },\n m(s, n) {\n i.m(s, n), rt(s, t, n);\n },\n p(s, [n]) {\n i.p(s, n);\n },\n i: Ct,\n o: Ct,\n d(s) {\n s && tt(t), i.d(s);\n }\n };\n}\nfunction Rm(r, t, e) {\n let i, { x: s } = t, { y: n } = t, { scale: o } = t, { radius: a = 30 } = t, l = !1;\n const h = (p) => {\n p.pointerType === \"touch\" && e(4, l = !0);\n }, c = () => e(4, l = !1);\n function u(p) {\n Je.call(this, r, p);\n }\n function d(p) {\n Je.call(this, r, p);\n }\n function f(p) {\n Je.call(this, r, p);\n }\n return r.$$set = (p) => {\n e(8, t = Ko(Ko({}, t), Dl(p))), \"x\" in p && e(0, s = p.x), \"y\" in p && e(1, n = p.y), \"scale\" in p && e(2, o = p.scale), \"radius\" in p && e(3, a = p.radius);\n }, r.$$.update = () => {\n r.$$.dirty & /*scale*/\n 4 && e(5, i = 10 / o);\n }, t = Dl(t), [\n s,\n n,\n o,\n a,\n l,\n i,\n h,\n c,\n t,\n u,\n d,\n f\n ];\n}\nclass Vi extends de {\n constructor(t) {\n super(), ue(this, t, Rm, Pm, Kt, { x: 0, y: 1, scale: 2, radius: 3 });\n }\n}\nfunction Mm(r) {\n let t, e, i, s, n, o, a, l, h, c, u, d, f, p, m, g, y, x, _, v, w, R, C, b, T, I, O, M, E, A, L, k, G, $, X, D, F, j, nt, Q, V, _t, Et;\n return $ = new Vi({\n props: {\n class: \"a9s-corner-handle-topleft\",\n x: (\n /*geom*/\n r[4].x\n ),\n y: (\n /*geom*/\n r[4].y\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), $.$on(\"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"TOP_LEFT\")\n ) && r[9](\"TOP_LEFT\").apply(this, arguments);\n }), D = new Vi({\n props: {\n class: \"a9s-corner-handle-topright\",\n x: (\n /*geom*/\n r[4].x + /*geom*/\n r[4].w\n ),\n y: (\n /*geom*/\n r[4].y\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), D.$on(\"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"TOP_RIGHT\")\n ) && r[9](\"TOP_RIGHT\").apply(this, arguments);\n }), j = new Vi({\n props: {\n class: \"a9s-corner-handle-bottomright\",\n x: (\n /*geom*/\n r[4].x + /*geom*/\n r[4].w\n ),\n y: (\n /*geom*/\n r[4].y + /*geom*/\n r[4].h\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), j.$on(\"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"BOTTOM_RIGHT\")\n ) && r[9](\"BOTTOM_RIGHT\").apply(this, arguments);\n }), Q = new Vi({\n props: {\n class: \"a9s-corner-handle-bottomleft\",\n x: (\n /*geom*/\n r[4].x\n ),\n y: (\n /*geom*/\n r[4].y + /*geom*/\n r[4].h\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), Q.$on(\"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"BOTTOM_LEFT\")\n ) && r[9](\"BOTTOM_LEFT\").apply(this, arguments);\n }), {\n c() {\n t = mt(\"rect\"), a = ye(), l = mt(\"rect\"), f = ye(), p = mt(\"rect\"), x = ye(), _ = mt(\"rect\"), C = ye(), b = mt(\"rect\"), M = ye(), E = mt(\"rect\"), G = ye(), le($.$$.fragment), X = ye(), le(D.$$.fragment), F = ye(), le(j.$$.fragment), nt = ye(), le(Q.$$.fragment), S(t, \"class\", \"a9s-outer\"), S(t, \"style\", e = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0), S(t, \"x\", i = /*geom*/\n r[4].x), S(t, \"y\", s = /*geom*/\n r[4].y), S(t, \"width\", n = /*geom*/\n r[4].w), S(t, \"height\", o = /*geom*/\n r[4].h), S(l, \"class\", \"a9s-inner a9s-shape-handle\"), S(\n l,\n \"style\",\n /*computedStyle*/\n r[1]\n ), S(l, \"x\", h = /*geom*/\n r[4].x), S(l, \"y\", c = /*geom*/\n r[4].y), S(l, \"width\", u = /*geom*/\n r[4].w), S(l, \"height\", d = /*geom*/\n r[4].h), S(p, \"class\", \"a9s-edge-handle a9s-edge-handle-top\"), S(p, \"x\", m = /*geom*/\n r[4].x), S(p, \"y\", g = /*geom*/\n r[4].y), S(p, \"height\", 1), S(p, \"width\", y = /*geom*/\n r[4].w), S(_, \"class\", \"a9s-edge-handle a9s-edge-handle-right\"), S(_, \"x\", v = /*geom*/\n r[4].x + /*geom*/\n r[4].w), S(_, \"y\", w = /*geom*/\n r[4].y), S(_, \"height\", R = /*geom*/\n r[4].h), S(_, \"width\", 1), S(b, \"class\", \"a9s-edge-handle a9s-edge-handle-bottom\"), S(b, \"x\", T = /*geom*/\n r[4].x), S(b, \"y\", I = /*geom*/\n r[4].y + /*geom*/\n r[4].h), S(b, \"height\", 1), S(b, \"width\", O = /*geom*/\n r[4].w), S(E, \"class\", \"a9s-edge-handle a9s-edge-handle-left\"), S(E, \"x\", A = /*geom*/\n r[4].x), S(E, \"y\", L = /*geom*/\n r[4].y), S(E, \"height\", k = /*geom*/\n r[4].h), S(E, \"width\", 1);\n },\n m(N, B) {\n rt(N, t, B), rt(N, a, B), rt(N, l, B), rt(N, f, B), rt(N, p, B), rt(N, x, B), rt(N, _, B), rt(N, C, B), rt(N, b, B), rt(N, M, B), rt(N, E, B), rt(N, G, B), re($, N, B), rt(N, X, B), re(D, N, B), rt(N, F, B), re(j, N, B), rt(N, nt, B), re(Q, N, B), V = !0, _t || (Et = [\n Ft(t, \"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"SHAPE\")\n ) && r[9](\"SHAPE\").apply(this, arguments);\n }),\n Ft(l, \"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"SHAPE\")\n ) && r[9](\"SHAPE\").apply(this, arguments);\n }),\n Ft(p, \"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"TOP\")\n ) && r[9](\"TOP\").apply(this, arguments);\n }),\n Ft(_, \"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"RIGHT\")\n ) && r[9](\"RIGHT\").apply(this, arguments);\n }),\n Ft(b, \"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"BOTTOM\")\n ) && r[9](\"BOTTOM\").apply(this, arguments);\n }),\n Ft(E, \"pointerdown\", function() {\n Nt(\n /*grab*/\n r[9](\"LEFT\")\n ) && r[9](\"LEFT\").apply(this, arguments);\n })\n ], _t = !0);\n },\n p(N, B) {\n r = N, (!V || B & /*computedStyle*/\n 2 && e !== (e = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0)) && S(t, \"style\", e), (!V || B & /*geom*/\n 16 && i !== (i = /*geom*/\n r[4].x)) && S(t, \"x\", i), (!V || B & /*geom*/\n 16 && s !== (s = /*geom*/\n r[4].y)) && S(t, \"y\", s), (!V || B & /*geom*/\n 16 && n !== (n = /*geom*/\n r[4].w)) && S(t, \"width\", n), (!V || B & /*geom*/\n 16 && o !== (o = /*geom*/\n r[4].h)) && S(t, \"height\", o), (!V || B & /*computedStyle*/\n 2) && S(\n l,\n \"style\",\n /*computedStyle*/\n r[1]\n ), (!V || B & /*geom*/\n 16 && h !== (h = /*geom*/\n r[4].x)) && S(l, \"x\", h), (!V || B & /*geom*/\n 16 && c !== (c = /*geom*/\n r[4].y)) && S(l, \"y\", c), (!V || B & /*geom*/\n 16 && u !== (u = /*geom*/\n r[4].w)) && S(l, \"width\", u), (!V || B & /*geom*/\n 16 && d !== (d = /*geom*/\n r[4].h)) && S(l, \"height\", d), (!V || B & /*geom*/\n 16 && m !== (m = /*geom*/\n r[4].x)) && S(p, \"x\", m), (!V || B & /*geom*/\n 16 && g !== (g = /*geom*/\n r[4].y)) && S(p, \"y\", g), (!V || B & /*geom*/\n 16 && y !== (y = /*geom*/\n r[4].w)) && S(p, \"width\", y), (!V || B & /*geom*/\n 16 && v !== (v = /*geom*/\n r[4].x + /*geom*/\n r[4].w)) && S(_, \"x\", v), (!V || B & /*geom*/\n 16 && w !== (w = /*geom*/\n r[4].y)) && S(_, \"y\", w), (!V || B & /*geom*/\n 16 && R !== (R = /*geom*/\n r[4].h)) && S(_, \"height\", R), (!V || B & /*geom*/\n 16 && T !== (T = /*geom*/\n r[4].x)) && S(b, \"x\", T), (!V || B & /*geom*/\n 16 && I !== (I = /*geom*/\n r[4].y + /*geom*/\n r[4].h)) && S(b, \"y\", I), (!V || B & /*geom*/\n 16 && O !== (O = /*geom*/\n r[4].w)) && S(b, \"width\", O), (!V || B & /*geom*/\n 16 && A !== (A = /*geom*/\n r[4].x)) && S(E, \"x\", A), (!V || B & /*geom*/\n 16 && L !== (L = /*geom*/\n r[4].y)) && S(E, \"y\", L), (!V || B & /*geom*/\n 16 && k !== (k = /*geom*/\n r[4].h)) && S(E, \"height\", k);\n const vt = {};\n B & /*geom*/\n 16 && (vt.x = /*geom*/\n r[4].x), B & /*geom*/\n 16 && (vt.y = /*geom*/\n r[4].y), B & /*viewportScale*/\n 8 && (vt.scale = /*viewportScale*/\n r[3]), $.$set(vt);\n const dt = {};\n B & /*geom*/\n 16 && (dt.x = /*geom*/\n r[4].x + /*geom*/\n r[4].w), B & /*geom*/\n 16 && (dt.y = /*geom*/\n r[4].y), B & /*viewportScale*/\n 8 && (dt.scale = /*viewportScale*/\n r[3]), D.$set(dt);\n const gt = {};\n B & /*geom*/\n 16 && (gt.x = /*geom*/\n r[4].x + /*geom*/\n r[4].w), B & /*geom*/\n 16 && (gt.y = /*geom*/\n r[4].y + /*geom*/\n r[4].h), B & /*viewportScale*/\n 8 && (gt.scale = /*viewportScale*/\n r[3]), j.$set(gt);\n const yt = {};\n B & /*geom*/\n 16 && (yt.x = /*geom*/\n r[4].x), B & /*geom*/\n 16 && (yt.y = /*geom*/\n r[4].y + /*geom*/\n r[4].h), B & /*viewportScale*/\n 8 && (yt.scale = /*viewportScale*/\n r[3]), Q.$set(yt);\n },\n i(N) {\n V || (ot($.$$.fragment, N), ot(D.$$.fragment, N), ot(j.$$.fragment, N), ot(Q.$$.fragment, N), V = !0);\n },\n o(N) {\n pt($.$$.fragment, N), pt(D.$$.fragment, N), pt(j.$$.fragment, N), pt(Q.$$.fragment, N), V = !1;\n },\n d(N) {\n N && (tt(t), tt(a), tt(l), tt(f), tt(p), tt(x), tt(_), tt(C), tt(b), tt(M), tt(E), tt(G), tt(X), tt(F), tt(nt)), ie($, N), ie(D, N), ie(j, N), ie(Q, N), _t = !1, Xe(Et);\n }\n };\n}\nfunction Bm(r) {\n let t, e;\n return t = new wu({\n props: {\n shape: (\n /*shape*/\n r[0]\n ),\n transform: (\n /*transform*/\n r[2]\n ),\n editor: (\n /*editor*/\n r[5]\n ),\n $$slots: {\n default: [\n Mm,\n ({ grab: i }) => ({ 9: i }),\n ({ grab: i }) => i ? 512 : 0\n ]\n },\n $$scope: { ctx: r }\n }\n }), t.$on(\n \"grab\",\n /*grab_handler*/\n r[6]\n ), t.$on(\n \"change\",\n /*change_handler*/\n r[7]\n ), t.$on(\n \"release\",\n /*release_handler*/\n r[8]\n ), {\n c() {\n le(t.$$.fragment);\n },\n m(i, s) {\n re(t, i, s), e = !0;\n },\n p(i, [s]) {\n const n = {};\n s & /*shape*/\n 1 && (n.shape = /*shape*/\n i[0]), s & /*transform*/\n 4 && (n.transform = /*transform*/\n i[2]), s & /*$$scope, geom, viewportScale, grab, computedStyle*/\n 1562 && (n.$$scope = { dirty: s, ctx: i }), t.$set(n);\n },\n i(i) {\n e || (ot(t.$$.fragment, i), e = !0);\n },\n o(i) {\n pt(t.$$.fragment, i), e = !1;\n },\n d(i) {\n ie(t, i);\n }\n };\n}\nfunction Dm(r, t, e) {\n let i, { shape: s } = t, { computedStyle: n } = t, { transform: o } = t, { viewportScale: a = 1 } = t;\n const l = (d, f, p) => {\n const m = d.geometry.bounds;\n let [g, y] = [m.minX, m.minY], [x, _] = [m.maxX, m.maxY];\n const [v, w] = p;\n if (f === \"SHAPE\")\n g += v, x += v, y += w, _ += w;\n else {\n switch (f) {\n case \"TOP\":\n case \"TOP_LEFT\":\n case \"TOP_RIGHT\": {\n y += w;\n break;\n }\n case \"BOTTOM\":\n case \"BOTTOM_LEFT\":\n case \"BOTTOM_RIGHT\": {\n _ += w;\n break;\n }\n }\n switch (f) {\n case \"LEFT\":\n case \"TOP_LEFT\":\n case \"BOTTOM_LEFT\": {\n g += v;\n break;\n }\n case \"RIGHT\":\n case \"TOP_RIGHT\":\n case \"BOTTOM_RIGHT\": {\n x += v;\n break;\n }\n }\n }\n const R = Math.min(g, x), C = Math.min(y, _), b = Math.abs(x - g), T = Math.abs(_ - y);\n return {\n ...d,\n geometry: {\n x: R,\n y: C,\n w: b,\n h: T,\n bounds: {\n minX: R,\n minY: C,\n maxX: R + b,\n maxY: C + T\n }\n }\n };\n };\n function h(d) {\n Je.call(this, r, d);\n }\n function c(d) {\n Je.call(this, r, d);\n }\n function u(d) {\n Je.call(this, r, d);\n }\n return r.$$set = (d) => {\n \"shape\" in d && e(0, s = d.shape), \"computedStyle\" in d && e(1, n = d.computedStyle), \"transform\" in d && e(2, o = d.transform), \"viewportScale\" in d && e(3, a = d.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*shape*/\n 1 && e(4, i = s.geometry);\n }, [\n s,\n n,\n o,\n a,\n i,\n l,\n h,\n c,\n u\n ];\n}\nclass Om extends de {\n constructor(t) {\n super(), ue(this, t, Dm, Bm, Kt, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 3\n });\n }\n}\nconst vu = /* @__PURE__ */ new Map([\n [bt.RECTANGLE, Om],\n [bt.POLYGON, Em]\n]), xu = (r) => vu.get(r.type), bu = (r, t) => vu.set(r, t), Fm = (r) => ({}), Hl = (r) => ({ grab: (\n /*onGrab*/\n r[0]\n) });\nfunction Lm(r) {\n let t, e, i, s;\n const n = (\n /*#slots*/\n r[7].default\n ), o = dp(\n n,\n r,\n /*$$scope*/\n r[6],\n Hl\n );\n return {\n c() {\n t = mt(\"g\"), o && o.c(), S(t, \"class\", \"a9s-annotation selected\");\n },\n m(a, l) {\n rt(a, t, l), o && o.m(t, null), e = !0, i || (s = [\n Ft(\n t,\n \"pointerup\",\n /*onRelease*/\n r[2]\n ),\n Ft(\n t,\n \"pointermove\",\n /*onPointerMove*/\n r[1]\n )\n ], i = !0);\n },\n p(a, [l]) {\n o && o.p && (!e || l & /*$$scope*/\n 64) && pp(\n o,\n n,\n a,\n /*$$scope*/\n a[6],\n e ? fp(\n n,\n /*$$scope*/\n a[6],\n l,\n Fm\n ) : mp(\n /*$$scope*/\n a[6]\n ),\n Hl\n );\n },\n i(a) {\n e || (ot(o, a), e = !0);\n },\n o(a) {\n pt(o, a), e = !1;\n },\n d(a) {\n a && tt(t), o && o.d(a), i = !1, Xe(s);\n }\n };\n}\nfunction Nm(r, t, e) {\n let { $$slots: i = {}, $$scope: s } = t;\n const n = Bi();\n let { shape: o } = t, { editor: a } = t, { transform: l } = t, h, c, u;\n const d = (m) => (g) => {\n h = m, c = l.elementToImage(g.offsetX, g.offsetY), u = o, g.target.setPointerCapture(g.pointerId), n(\"grab\", g);\n }, f = (m) => {\n if (h) {\n const [g, y] = l.elementToImage(m.offsetX, m.offsetY), x = [g - c[0], y - c[1]];\n e(3, o = a(u, h, x)), n(\"change\", o);\n }\n }, p = (m) => {\n m.target.releasePointerCapture(m.pointerId), h = void 0, u = o, n(\"release\", m);\n };\n return r.$$set = (m) => {\n \"shape\" in m && e(3, o = m.shape), \"editor\" in m && e(4, a = m.editor), \"transform\" in m && e(5, l = m.transform), \"$$scope\" in m && e(6, s = m.$$scope);\n }, [d, f, p, o, a, l, s, i];\n}\nclass wu extends de {\n constructor(t) {\n super(), ue(this, t, Nm, Lm, Kt, { shape: 3, editor: 4, transform: 5 });\n }\n}\nconst kn = (r, t) => {\n const e = typeof t == \"function\" ? t(r) : t;\n if (e) {\n const { fill: i, fillOpacity: s } = e;\n let n = \"\";\n return i && (n += `fill:${i};stroke:${i};`), n += `fill-opacity:${s || \"0.25\"};`, n;\n }\n};\nfunction Um(r, t, e) {\n let i;\n const s = Bi();\n let { annotation: n } = t, { editor: o } = t, { style: a } = t, { target: l } = t, { transform: h } = t, { viewportScale: c } = t, u;\n return ps(() => (e(6, u = new o({\n target: l,\n props: {\n shape: n.target.selector,\n computedStyle: i,\n transform: h,\n viewportScale: c\n }\n })), u.$on(\"change\", (d) => {\n u.$$set({ shape: d.detail }), s(\"change\", d.detail);\n }), u.$on(\"grab\", (d) => s(\"grab\", d.detail)), u.$on(\"release\", (d) => s(\"release\", d.detail)), () => {\n u.$destroy();\n })), r.$$set = (d) => {\n \"annotation\" in d && e(0, n = d.annotation), \"editor\" in d && e(1, o = d.editor), \"style\" in d && e(2, a = d.style), \"target\" in d && e(3, l = d.target), \"transform\" in d && e(4, h = d.transform), \"viewportScale\" in d && e(5, c = d.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*annotation, style*/\n 5 && (i = kn(n, a)), r.$$.dirty & /*annotation, editorComponent*/\n 65 && n && (u == null || u.$set({ shape: n.target.selector })), r.$$.dirty & /*editorComponent, transform*/\n 80 && u && u.$set({ transform: h }), r.$$.dirty & /*editorComponent, viewportScale*/\n 96 && u && u.$set({ viewportScale: c });\n }, [n, o, a, l, h, c, u];\n}\nclass km extends de {\n constructor(t) {\n super(), ue(this, t, Um, null, Kt, {\n annotation: 0,\n editor: 1,\n style: 2,\n target: 3,\n transform: 4,\n viewportScale: 5\n });\n }\n}\nfunction Gm(r, t, e) {\n const i = Bi();\n let { drawingMode: s } = t, { target: n } = t, { tool: o } = t, { transform: a } = t, { viewportScale: l } = t, h;\n return ps(() => {\n const c = n.closest(\"svg\"), u = [], d = (f, p, m) => {\n c == null || c.addEventListener(f, p, m), u.push(() => c == null ? void 0 : c.removeEventListener(f, p, m));\n };\n return e(5, h = new o({\n target: n,\n props: {\n addEventListener: d,\n drawingMode: s,\n transform: a,\n viewportScale: l\n }\n })), h.$on(\"create\", (f) => i(\"create\", f.detail)), () => {\n u.forEach((f) => f()), h.$destroy();\n };\n }), r.$$set = (c) => {\n \"drawingMode\" in c && e(0, s = c.drawingMode), \"target\" in c && e(1, n = c.target), \"tool\" in c && e(2, o = c.tool), \"transform\" in c && e(3, a = c.transform), \"viewportScale\" in c && e(4, l = c.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*toolComponent, transform*/\n 40 && h && h.$set({ transform: a }), r.$$.dirty & /*toolComponent, viewportScale*/\n 48 && h && h.$set({ viewportScale: l });\n }, [s, n, o, a, l, h];\n}\nclass $m extends de {\n constructor(t) {\n super(), ue(this, t, Gm, null, Kt, {\n drawingMode: 0,\n target: 1,\n tool: 2,\n transform: 3,\n viewportScale: 4\n });\n }\n}\nfunction Xl(r) {\n let t, e;\n return {\n c() {\n t = mt(\"rect\"), e = mt(\"rect\"), S(t, \"class\", \"a9s-outer\"), S(\n t,\n \"x\",\n /*x*/\n r[1]\n ), S(\n t,\n \"y\",\n /*y*/\n r[2]\n ), S(\n t,\n \"width\",\n /*w*/\n r[3]\n ), S(\n t,\n \"height\",\n /*h*/\n r[4]\n ), S(e, \"class\", \"a9s-inner\"), S(\n e,\n \"x\",\n /*x*/\n r[1]\n ), S(\n e,\n \"y\",\n /*y*/\n r[2]\n ), S(\n e,\n \"width\",\n /*w*/\n r[3]\n ), S(\n e,\n \"height\",\n /*h*/\n r[4]\n );\n },\n m(i, s) {\n rt(i, t, s), rt(i, e, s);\n },\n p(i, s) {\n s & /*x*/\n 2 && S(\n t,\n \"x\",\n /*x*/\n i[1]\n ), s & /*y*/\n 4 && S(\n t,\n \"y\",\n /*y*/\n i[2]\n ), s & /*w*/\n 8 && S(\n t,\n \"width\",\n /*w*/\n i[3]\n ), s & /*h*/\n 16 && S(\n t,\n \"height\",\n /*h*/\n i[4]\n ), s & /*x*/\n 2 && S(\n e,\n \"x\",\n /*x*/\n i[1]\n ), s & /*y*/\n 4 && S(\n e,\n \"y\",\n /*y*/\n i[2]\n ), s & /*w*/\n 8 && S(\n e,\n \"width\",\n /*w*/\n i[3]\n ), s & /*h*/\n 16 && S(\n e,\n \"height\",\n /*h*/\n i[4]\n );\n },\n d(i) {\n i && (tt(t), tt(e));\n }\n };\n}\nfunction Hm(r) {\n let t, e = (\n /*origin*/\n r[0] && Xl(r)\n );\n return {\n c() {\n t = mt(\"g\"), e && e.c(), S(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(i, s) {\n rt(i, t, s), e && e.m(t, null);\n },\n p(i, [s]) {\n i[0] ? e ? e.p(i, s) : (e = Xl(i), e.c(), e.m(t, null)) : e && (e.d(1), e = null);\n },\n i: Ct,\n o: Ct,\n d(i) {\n i && tt(t), e && e.d();\n }\n };\n}\nfunction Xm(r, t, e) {\n const i = Bi();\n let { addEventListener: s } = t, { drawingMode: n } = t, { transform: o } = t, a, l, h, c, u, d, f;\n const p = (x) => {\n const _ = x;\n a = performance.now(), n === \"drag\" && (e(0, l = o.elementToImage(_.offsetX, _.offsetY)), h = l, e(1, c = l[0]), e(2, u = l[1]), e(3, d = 1), e(4, f = 1));\n }, m = (x) => {\n const _ = x;\n l && (h = o.elementToImage(_.offsetX, _.offsetY), e(1, c = Math.min(h[0], l[0])), e(2, u = Math.min(h[1], l[1])), e(3, d = Math.abs(h[0] - l[0])), e(4, f = Math.abs(h[1] - l[1])));\n }, g = (x) => {\n const _ = x, v = performance.now() - a;\n if (n === \"click\") {\n if (v > 300)\n return;\n _.stopPropagation(), l ? y() : (e(0, l = o.elementToImage(_.offsetX, _.offsetY)), h = l, e(1, c = l[0]), e(2, u = l[1]), e(3, d = 1), e(4, f = 1));\n } else\n l && (v > 300 || d * f > 100 ? (_.stopPropagation(), y()) : (e(0, l = void 0), h = void 0));\n }, y = () => {\n if (d * f > 15) {\n const x = {\n type: bt.RECTANGLE,\n geometry: {\n bounds: {\n minX: c,\n minY: u,\n maxX: c + d,\n maxY: u + f\n },\n x: c,\n y: u,\n w: d,\n h: f\n }\n };\n i(\"create\", x);\n }\n e(0, l = void 0), h = void 0;\n };\n return ps(() => {\n s(\"pointerdown\", p), s(\"pointermove\", m), s(\"pointerup\", g, !0);\n }), r.$$set = (x) => {\n \"addEventListener\" in x && e(5, s = x.addEventListener), \"drawingMode\" in x && e(6, n = x.drawingMode), \"transform\" in x && e(7, o = x.transform);\n }, [l, c, u, d, f, s, n, o];\n}\nclass Vm extends de {\n constructor(t) {\n super(), ue(this, t, Xm, Hm, Kt, {\n addEventListener: 5,\n drawingMode: 6,\n transform: 7\n });\n }\n}\nfunction no(r) {\n const t = r.slice(), e = (\n /*isClosable*/\n (t[2] ? (\n /*points*/\n t[0]\n ) : [\n .../*points*/\n t[0],\n /*cursor*/\n t[1]\n ]).map((i) => i.join(\",\")).join(\" \")\n );\n return t[16] = e, t;\n}\nfunction Vl(r) {\n let t, e, i, s, n, o = (\n /*isClosable*/\n r[2] && zl(r)\n );\n return {\n c() {\n t = mt(\"polygon\"), i = mt(\"polygon\"), o && o.c(), n = Ve(), S(t, \"class\", \"a9s-outer\"), S(t, \"points\", e = /*coords*/\n r[16]), S(i, \"class\", \"a9s-inner\"), S(i, \"points\", s = /*coords*/\n r[16]);\n },\n m(a, l) {\n rt(a, t, l), rt(a, i, l), o && o.m(a, l), rt(a, n, l);\n },\n p(a, l) {\n l & /*isClosable, points, cursor*/\n 7 && e !== (e = /*coords*/\n a[16]) && S(t, \"points\", e), l & /*isClosable, points, cursor*/\n 7 && s !== (s = /*coords*/\n a[16]) && S(i, \"points\", s), /*isClosable*/\n a[2] ? o ? o.p(a, l) : (o = zl(a), o.c(), o.m(n.parentNode, n)) : o && (o.d(1), o = null);\n },\n d(a) {\n a && (tt(t), tt(i), tt(n)), o && o.d(a);\n }\n };\n}\nfunction zl(r) {\n let t, e, i;\n return {\n c() {\n t = mt(\"rect\"), S(t, \"class\", \"a9s-corner-handle\"), S(t, \"x\", e = /*points*/\n r[0][0][0] - /*handleSize*/\n r[3] / 2), S(t, \"y\", i = /*points*/\n r[0][0][1] - /*handleSize*/\n r[3] / 2), S(\n t,\n \"height\",\n /*handleSize*/\n r[3]\n ), S(\n t,\n \"width\",\n /*handleSize*/\n r[3]\n );\n },\n m(s, n) {\n rt(s, t, n);\n },\n p(s, n) {\n n & /*points, handleSize*/\n 9 && e !== (e = /*points*/\n s[0][0][0] - /*handleSize*/\n s[3] / 2) && S(t, \"x\", e), n & /*points, handleSize*/\n 9 && i !== (i = /*points*/\n s[0][0][1] - /*handleSize*/\n s[3] / 2) && S(t, \"y\", i), n & /*handleSize*/\n 8 && S(\n t,\n \"height\",\n /*handleSize*/\n s[3]\n ), n & /*handleSize*/\n 8 && S(\n t,\n \"width\",\n /*handleSize*/\n s[3]\n );\n },\n d(s) {\n s && tt(t);\n }\n };\n}\nfunction zm(r) {\n let t, e = (\n /*cursor*/\n r[1] && Vl(no(r))\n );\n return {\n c() {\n t = mt(\"g\"), e && e.c(), S(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(i, s) {\n rt(i, t, s), e && e.m(t, null);\n },\n p(i, [s]) {\n i[1] ? e ? e.p(no(i), s) : (e = Vl(no(i)), e.c(), e.m(t, null)) : e && (e.d(1), e = null);\n },\n i: Ct,\n o: Ct,\n d(i) {\n i && tt(t), e && e.d();\n }\n };\n}\nconst Wm = 20, jm = 1500;\nfunction Ym(r, t, e) {\n let i;\n const s = Bi();\n let { addEventListener: n } = t, { drawingMode: o } = t, { transform: a } = t, { viewportScale: l = 1 } = t, h, c = [], u, d, f = !1;\n const p = (_) => {\n const v = _, { timeStamp: w, offsetX: R, offsetY: C } = v;\n if (h = { timeStamp: w, offsetX: R, offsetY: C }, o === \"drag\" && c.length === 0) {\n const b = a.elementToImage(v.offsetX, v.offsetY);\n c.push(b), e(1, u = b);\n }\n }, m = (_) => {\n const v = _;\n if (d && clearTimeout(d), c.length > 0) {\n if (e(1, u = a.elementToImage(v.offsetX, v.offsetY)), c.length > 2) {\n const w = so(u, c[0]) * l;\n e(2, f = w < Wm);\n }\n v.pointerType === \"touch\" && (d = setTimeout(\n () => {\n y();\n },\n jm\n ));\n }\n }, g = (_) => {\n const v = _;\n if (d && clearTimeout(d), o === \"click\") {\n const w = v.timeStamp - h.timeStamp, R = so([h.offsetX, h.offsetY], [v.offsetX, v.offsetY]);\n if (w > 300 || R > 15)\n return;\n if (f)\n x();\n else if (c.length === 0) {\n const C = a.elementToImage(v.offsetX, v.offsetY);\n c.push(C), e(1, u = C);\n } else\n c.push(u);\n } else {\n if (c.length === 1 && so(c[0], u) <= 4) {\n e(0, c = []), e(1, u = void 0);\n return;\n }\n v.stopImmediatePropagation(), f ? x() : c.push(u);\n }\n }, y = () => {\n if (!u)\n return;\n const _ = [...c, u], v = {\n type: bt.POLYGON,\n geometry: { bounds: mn(_), points: _ }\n };\n Qo(v) > 4 && (e(0, c = []), e(1, u = void 0), s(\"create\", v));\n }, x = () => {\n const _ = {\n type: bt.POLYGON,\n geometry: {\n bounds: mn(c),\n points: [...c]\n }\n };\n e(0, c = []), e(1, u = void 0), s(\"create\", _);\n };\n return ps(() => {\n n(\"pointerdown\", p, !0), n(\"pointermove\", m), n(\"pointerup\", g, !0), n(\"dblclick\", y, !0);\n }), r.$$set = (_) => {\n \"addEventListener\" in _ && e(4, n = _.addEventListener), \"drawingMode\" in _ && e(5, o = _.drawingMode), \"transform\" in _ && e(6, a = _.transform), \"viewportScale\" in _ && e(7, l = _.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*viewportScale*/\n 128 && e(3, i = 10 / l);\n }, [\n c,\n u,\n f,\n i,\n n,\n o,\n a,\n l\n ];\n}\nclass qm extends de {\n constructor(t) {\n super(), ue(this, t, Ym, zm, Kt, {\n addEventListener: 4,\n drawingMode: 5,\n transform: 6,\n viewportScale: 7\n });\n }\n}\nconst ol = /* @__PURE__ */ new Map([\n [\"rectangle\", { tool: Vm }],\n [\"polygon\", { tool: qm }]\n]), Gn = () => [...ol.keys()], $n = (r) => ol.get(r), Eu = (r, t, e) => ol.set(r, { tool: t, opts: e });\nfunction Km(r) {\n let t, e, i, s, n;\n return {\n c() {\n t = mt(\"g\"), e = mt(\"ellipse\"), s = mt(\"ellipse\"), S(e, \"class\", \"a9s-outer\"), S(e, \"style\", i = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0), S(\n e,\n \"cx\",\n /*cx*/\n r[2]\n ), S(\n e,\n \"cy\",\n /*cy*/\n r[3]\n ), S(\n e,\n \"rx\",\n /*rx*/\n r[4]\n ), S(\n e,\n \"ry\",\n /*ry*/\n r[5]\n ), S(s, \"class\", \"a9s-inner\"), S(\n s,\n \"style\",\n /*computedStyle*/\n r[1]\n ), S(\n s,\n \"cx\",\n /*cx*/\n r[2]\n ), S(\n s,\n \"cy\",\n /*cy*/\n r[3]\n ), S(\n s,\n \"rx\",\n /*rx*/\n r[4]\n ), S(\n s,\n \"ry\",\n /*ry*/\n r[5]\n ), S(t, \"data-id\", n = /*annotation*/\n r[0].id);\n },\n m(o, a) {\n rt(o, t, a), Ue(t, e), Ue(t, s);\n },\n p(o, [a]) {\n a & /*computedStyle*/\n 2 && i !== (i = /*computedStyle*/\n o[1] ? \"display:none;\" : void 0) && S(e, \"style\", i), a & /*computedStyle*/\n 2 && S(\n s,\n \"style\",\n /*computedStyle*/\n o[1]\n ), a & /*annotation*/\n 1 && n !== (n = /*annotation*/\n o[0].id) && S(t, \"data-id\", n);\n },\n i: Ct,\n o: Ct,\n d(o) {\n o && tt(t);\n }\n };\n}\nfunction Zm(r, t, e) {\n let i, { annotation: s } = t, { geom: n } = t, { style: o } = t;\n const { cx: a, cy: l, rx: h, ry: c } = n;\n return r.$$set = (u) => {\n \"annotation\" in u && e(0, s = u.annotation), \"geom\" in u && e(6, n = u.geom), \"style\" in u && e(7, o = u.style);\n }, r.$$.update = () => {\n r.$$.dirty & /*annotation, style*/\n 129 && e(1, i = kn(s, o));\n }, [s, i, a, l, h, c, n, o];\n}\nclass Jm extends de {\n constructor(t) {\n super(), ue(this, t, Zm, Km, Kt, { annotation: 0, geom: 6, style: 7 });\n }\n}\nfunction Qm(r) {\n let t, e, i, s, n;\n return {\n c() {\n t = mt(\"g\"), e = mt(\"polygon\"), s = mt(\"polygon\"), S(e, \"class\", \"a9s-outer\"), S(e, \"style\", i = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0), S(\n e,\n \"points\",\n /*points*/\n r[2].map(tg).join(\" \")\n ), S(s, \"class\", \"a9s-inner\"), S(\n s,\n \"style\",\n /*computedStyle*/\n r[1]\n ), S(\n s,\n \"points\",\n /*points*/\n r[2].map(eg).join(\" \")\n ), S(t, \"data-id\", n = /*annotation*/\n r[0].id);\n },\n m(o, a) {\n rt(o, t, a), Ue(t, e), Ue(t, s);\n },\n p(o, [a]) {\n a & /*computedStyle*/\n 2 && i !== (i = /*computedStyle*/\n o[1] ? \"display:none;\" : void 0) && S(e, \"style\", i), a & /*computedStyle*/\n 2 && S(\n s,\n \"style\",\n /*computedStyle*/\n o[1]\n ), a & /*annotation*/\n 1 && n !== (n = /*annotation*/\n o[0].id) && S(t, \"data-id\", n);\n },\n i: Ct,\n o: Ct,\n d(o) {\n o && tt(t);\n }\n };\n}\nconst tg = (r) => r.join(\",\"), eg = (r) => r.join(\",\");\nfunction rg(r, t, e) {\n let i, { annotation: s } = t, { geom: n } = t, { style: o } = t;\n const { points: a } = n;\n return r.$$set = (l) => {\n \"annotation\" in l && e(0, s = l.annotation), \"geom\" in l && e(3, n = l.geom), \"style\" in l && e(4, o = l.style);\n }, r.$$.update = () => {\n r.$$.dirty & /*annotation, style*/\n 17 && e(1, i = kn(s, o));\n }, [s, i, a, n, o];\n}\nclass ig extends de {\n constructor(t) {\n super(), ue(this, t, rg, Qm, Kt, { annotation: 0, geom: 3, style: 4 });\n }\n}\nfunction sg(r) {\n let t, e, i, s, n;\n return {\n c() {\n t = mt(\"g\"), e = mt(\"rect\"), s = mt(\"rect\"), S(e, \"class\", \"a9s-outer\"), S(e, \"style\", i = /*computedStyle*/\n r[5] ? \"display:none;\" : void 0), S(\n e,\n \"x\",\n /*x*/\n r[4]\n ), S(\n e,\n \"y\",\n /*y*/\n r[3]\n ), S(\n e,\n \"width\",\n /*w*/\n r[2]\n ), S(\n e,\n \"height\",\n /*h*/\n r[1]\n ), S(s, \"class\", \"a9s-inner\"), S(\n s,\n \"style\",\n /*computedStyle*/\n r[5]\n ), S(\n s,\n \"x\",\n /*x*/\n r[4]\n ), S(\n s,\n \"y\",\n /*y*/\n r[3]\n ), S(\n s,\n \"width\",\n /*w*/\n r[2]\n ), S(\n s,\n \"height\",\n /*h*/\n r[1]\n ), S(t, \"data-id\", n = /*annotation*/\n r[0].id);\n },\n m(o, a) {\n rt(o, t, a), Ue(t, e), Ue(t, s);\n },\n p(o, [a]) {\n a & /*computedStyle*/\n 32 && i !== (i = /*computedStyle*/\n o[5] ? \"display:none;\" : void 0) && S(e, \"style\", i), a & /*x*/\n 16 && S(\n e,\n \"x\",\n /*x*/\n o[4]\n ), a & /*y*/\n 8 && S(\n e,\n \"y\",\n /*y*/\n o[3]\n ), a & /*w*/\n 4 && S(\n e,\n \"width\",\n /*w*/\n o[2]\n ), a & /*h*/\n 2 && S(\n e,\n \"height\",\n /*h*/\n o[1]\n ), a & /*computedStyle*/\n 32 && S(\n s,\n \"style\",\n /*computedStyle*/\n o[5]\n ), a & /*x*/\n 16 && S(\n s,\n \"x\",\n /*x*/\n o[4]\n ), a & /*y*/\n 8 && S(\n s,\n \"y\",\n /*y*/\n o[3]\n ), a & /*w*/\n 4 && S(\n s,\n \"width\",\n /*w*/\n o[2]\n ), a & /*h*/\n 2 && S(\n s,\n \"height\",\n /*h*/\n o[1]\n ), a & /*annotation*/\n 1 && n !== (n = /*annotation*/\n o[0].id) && S(t, \"data-id\", n);\n },\n i: Ct,\n o: Ct,\n d(o) {\n o && tt(t);\n }\n };\n}\nfunction ng(r, t, e) {\n let i, s, n, o, a, { annotation: l } = t, { geom: h } = t, { style: c } = t;\n return r.$$set = (u) => {\n \"annotation\" in u && e(0, l = u.annotation), \"geom\" in u && e(6, h = u.geom), \"style\" in u && e(7, c = u.style);\n }, r.$$.update = () => {\n r.$$.dirty & /*annotation, style*/\n 129 && e(5, i = kn(l, c)), r.$$.dirty & /*geom*/\n 64 && e(4, { x: s, y: n, w: o, h: a } = h, s, (e(3, n), e(6, h)), (e(2, o), e(6, h)), (e(1, a), e(6, h)));\n }, [l, a, o, n, s, i, h, c];\n}\nclass og extends de {\n constructor(t) {\n super(), ue(this, t, ng, sg, Kt, { annotation: 0, geom: 6, style: 7 });\n }\n}\nconst ag = (r) => ({\n elementToImage: (t, e) => {\n const i = r.getBoundingClientRect(), s = r.createSVGPoint();\n s.x = t + i.x, s.y = e + i.y;\n const { x: n, y: o } = s.matrixTransform(r.getScreenCTM().inverse());\n return [n, o];\n }\n}), lg = 250, hg = (r, t) => {\n const e = Bi();\n let i;\n return { onPointerDown: () => i = performance.now(), onPointerUp: (s) => {\n if (performance.now() - i < lg) {\n const { x: n, y: o } = cg(s, r), a = t.getAt(n, o);\n a ? e(\"click\", { originalEvent: s, annotation: a }) : e(\"click\", { originalEvent: s });\n }\n } };\n}, cg = (r, t) => {\n const e = t.createSVGPoint(), i = t.getBoundingClientRect(), s = r.clientX - i.x, n = r.clientY - i.y, { left: o, top: a } = t.getBoundingClientRect();\n return e.x = s + o, e.y = n + a, e.matrixTransform(t.getScreenCTM().inverse());\n}, { Boolean: Tu } = gp;\nfunction Wl(r, t, e) {\n const i = r.slice();\n return i[30] = t[e], i;\n}\nfunction jl(r, t, e) {\n const i = r.slice();\n return i[33] = t[e], i;\n}\nfunction oo(r) {\n const t = r.slice(), e = (\n /*annotation*/\n t[33].target.selector\n );\n return t[36] = e, t;\n}\nfunction Yl(r) {\n let t = (\n /*annotation*/\n r[33].id\n ), e, i, s = ql(r);\n return {\n c() {\n s.c(), e = Ve();\n },\n m(n, o) {\n s.m(n, o), rt(n, e, o), i = !0;\n },\n p(n, o) {\n o[0] & /*$store*/\n 8192 && Kt(t, t = /*annotation*/\n n[33].id) ? (ke(), pt(s, 1, 1, Ct), Ge(), s = ql(n), s.c(), ot(s, 1), s.m(e.parentNode, e)) : s.p(n, o);\n },\n i(n) {\n i || (ot(s), i = !0);\n },\n o(n) {\n pt(s), i = !1;\n },\n d(n) {\n n && tt(e), s.d(n);\n }\n };\n}\nfunction ug(r) {\n let t, e;\n return t = new ig({\n props: {\n annotation: (\n /*annotation*/\n r[33]\n ),\n geom: (\n /*selector*/\n r[36].geometry\n ),\n style: (\n /*style*/\n r[1]\n )\n }\n }), {\n c() {\n le(t.$$.fragment);\n },\n m(i, s) {\n re(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s[0] & /*$store*/\n 8192 && (n.annotation = /*annotation*/\n i[33]), s[0] & /*$store*/\n 8192 && (n.geom = /*selector*/\n i[36].geometry), s[0] & /*style*/\n 2 && (n.style = /*style*/\n i[1]), t.$set(n);\n },\n i(i) {\n e || (ot(t.$$.fragment, i), e = !0);\n },\n o(i) {\n pt(t.$$.fragment, i), e = !1;\n },\n d(i) {\n ie(t, i);\n }\n };\n}\nfunction dg(r) {\n let t, e;\n return t = new og({\n props: {\n annotation: (\n /*annotation*/\n r[33]\n ),\n geom: (\n /*selector*/\n r[36].geometry\n ),\n style: (\n /*style*/\n r[1]\n )\n }\n }), {\n c() {\n le(t.$$.fragment);\n },\n m(i, s) {\n re(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s[0] & /*$store*/\n 8192 && (n.annotation = /*annotation*/\n i[33]), s[0] & /*$store*/\n 8192 && (n.geom = /*selector*/\n i[36].geometry), s[0] & /*style*/\n 2 && (n.style = /*style*/\n i[1]), t.$set(n);\n },\n i(i) {\n e || (ot(t.$$.fragment, i), e = !0);\n },\n o(i) {\n pt(t.$$.fragment, i), e = !1;\n },\n d(i) {\n ie(t, i);\n }\n };\n}\nfunction fg(r) {\n let t, e;\n return t = new Jm({\n props: {\n annotation: (\n /*annotation*/\n r[33]\n ),\n geom: (\n /*selector*/\n r[36].geometry\n ),\n style: (\n /*style*/\n r[1]\n )\n }\n }), {\n c() {\n le(t.$$.fragment);\n },\n m(i, s) {\n re(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s[0] & /*$store*/\n 8192 && (n.annotation = /*annotation*/\n i[33]), s[0] & /*$store*/\n 8192 && (n.geom = /*selector*/\n i[36].geometry), s[0] & /*style*/\n 2 && (n.style = /*style*/\n i[1]), t.$set(n);\n },\n i(i) {\n e || (ot(t.$$.fragment, i), e = !0);\n },\n o(i) {\n pt(t.$$.fragment, i), e = !1;\n },\n d(i) {\n ie(t, i);\n }\n };\n}\nfunction ql(r) {\n let t, e, i, s;\n const n = [fg, dg, ug], o = [];\n function a(l, h) {\n return (\n /*selector*/\n l[36].type === bt.ELLIPSE ? 0 : (\n /*selector*/\n l[36].type === bt.RECTANGLE ? 1 : (\n /*selector*/\n l[36].type === bt.POLYGON ? 2 : -1\n )\n )\n );\n }\n return ~(t = a(r)) && (e = o[t] = n[t](r)), {\n c() {\n e && e.c(), i = Ve();\n },\n m(l, h) {\n ~t && o[t].m(l, h), rt(l, i, h), s = !0;\n },\n p(l, h) {\n let c = t;\n t = a(l), t === c ? ~t && o[t].p(l, h) : (e && (ke(), pt(o[c], 1, 1, () => {\n o[c] = null;\n }), Ge()), ~t ? (e = o[t], e ? e.p(l, h) : (e = o[t] = n[t](l), e.c()), ot(e, 1), e.m(i.parentNode, i)) : e = null);\n },\n i(l) {\n s || (ot(e), s = !0);\n },\n o(l) {\n pt(e), s = !1;\n },\n d(l) {\n l && tt(i), ~t && o[t].d(l);\n }\n };\n}\nfunction Kl(r) {\n let t = !/*isEditable*/\n r[7](\n /*annotation*/\n r[33]\n ), e, i, s = t && Yl(oo(r));\n return {\n c() {\n s && s.c(), e = Ve();\n },\n m(n, o) {\n s && s.m(n, o), rt(n, e, o), i = !0;\n },\n p(n, o) {\n o[0] & /*isEditable, $store*/\n 8320 && (t = !/*isEditable*/\n n[7](\n /*annotation*/\n n[33]\n )), t ? s ? (s.p(oo(n), o), o[0] & /*isEditable, $store*/\n 8320 && ot(s, 1)) : (s = Yl(oo(n)), s.c(), ot(s, 1), s.m(e.parentNode, e)) : s && (ke(), pt(s, 1, 1, () => {\n s = null;\n }), Ge());\n },\n i(n) {\n i || (ot(s), i = !0);\n },\n o(n) {\n pt(s), i = !1;\n },\n d(n) {\n n && tt(e), s && s.d(n);\n }\n };\n}\nfunction Zl(r) {\n let t, e, i, s;\n const n = [mg, pg], o = [];\n function a(l, h) {\n return (\n /*editableAnnotations*/\n l[6] ? 0 : (\n /*tool*/\n l[12] && /*drawingEnabled*/\n l[0] ? 1 : -1\n )\n );\n }\n return ~(t = a(r)) && (e = o[t] = n[t](r)), {\n c() {\n e && e.c(), i = Ve();\n },\n m(l, h) {\n ~t && o[t].m(l, h), rt(l, i, h), s = !0;\n },\n p(l, h) {\n let c = t;\n t = a(l), t === c ? ~t && o[t].p(l, h) : (e && (ke(), pt(o[c], 1, 1, () => {\n o[c] = null;\n }), Ge()), ~t ? (e = o[t], e ? e.p(l, h) : (e = o[t] = n[t](l), e.c()), ot(e, 1), e.m(i.parentNode, i)) : e = null);\n },\n i(l) {\n s || (ot(e), s = !0);\n },\n o(l) {\n pt(e), s = !1;\n },\n d(l) {\n l && tt(i), ~t && o[t].d(l);\n }\n };\n}\nfunction pg(r) {\n let t = (\n /*toolName*/\n r[2]\n ), e, i, s = Jl(r);\n return {\n c() {\n s.c(), e = Ve();\n },\n m(n, o) {\n s.m(n, o), rt(n, e, o), i = !0;\n },\n p(n, o) {\n o[0] & /*toolName*/\n 4 && Kt(t, t = /*toolName*/\n n[2]) ? (ke(), pt(s, 1, 1, Ct), Ge(), s = Jl(n), s.c(), ot(s, 1), s.m(e.parentNode, e)) : s.p(n, o);\n },\n i(n) {\n i || (ot(s), i = !0);\n },\n o(n) {\n pt(s), i = !1;\n },\n d(n) {\n n && tt(e), s.d(n);\n }\n };\n}\nfunction mg(r) {\n let t, e, i = Ai(\n /*editableAnnotations*/\n r[6]\n ), s = [];\n for (let o = 0; o < i.length; o += 1)\n s[o] = th(Wl(r, i, o));\n const n = (o) => pt(s[o], 1, 1, () => {\n s[o] = null;\n });\n return {\n c() {\n for (let o = 0; o < s.length; o += 1)\n s[o].c();\n t = Ve();\n },\n m(o, a) {\n for (let l = 0; l < s.length; l += 1)\n s[l] && s[l].m(o, a);\n rt(o, t, a), e = !0;\n },\n p(o, a) {\n if (a[0] & /*editableAnnotations, drawingEl, getEditor, style, transform, $scale, onChangeSelected*/\n 803922) {\n i = Ai(\n /*editableAnnotations*/\n o[6]\n );\n let l;\n for (l = 0; l < i.length; l += 1) {\n const h = Wl(o, i, l);\n s[l] ? (s[l].p(h, a), ot(s[l], 1)) : (s[l] = th(h), s[l].c(), ot(s[l], 1), s[l].m(t.parentNode, t));\n }\n for (ke(), l = i.length; l < s.length; l += 1)\n n(l);\n Ge();\n }\n },\n i(o) {\n if (!e) {\n for (let a = 0; a < i.length; a += 1)\n ot(s[a]);\n e = !0;\n }\n },\n o(o) {\n s = s.filter(Tu);\n for (let a = 0; a < s.length; a += 1)\n pt(s[a]);\n e = !1;\n },\n d(o) {\n o && tt(t), rl(s, o);\n }\n };\n}\nfunction Jl(r) {\n let t, e;\n return t = new $m({\n props: {\n target: (\n /*drawingEl*/\n r[4]\n ),\n tool: (\n /*tool*/\n r[12]\n ),\n drawingMode: (\n /*drawingMode*/\n r[11]\n ),\n transform: (\n /*transform*/\n r[10]\n ),\n viewportScale: (\n /*$scale*/\n r[14]\n )\n }\n }), t.$on(\n \"create\",\n /*onSelectionCreated*/\n r[17]\n ), {\n c() {\n le(t.$$.fragment);\n },\n m(i, s) {\n re(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s[0] & /*drawingEl*/\n 16 && (n.target = /*drawingEl*/\n i[4]), s[0] & /*tool*/\n 4096 && (n.tool = /*tool*/\n i[12]), s[0] & /*drawingMode*/\n 2048 && (n.drawingMode = /*drawingMode*/\n i[11]), s[0] & /*transform*/\n 1024 && (n.transform = /*transform*/\n i[10]), s[0] & /*$scale*/\n 16384 && (n.viewportScale = /*$scale*/\n i[14]), t.$set(n);\n },\n i(i) {\n e || (ot(t.$$.fragment, i), e = !0);\n },\n o(i) {\n pt(t.$$.fragment, i), e = !1;\n },\n d(i) {\n ie(t, i);\n }\n };\n}\nfunction Ql(r) {\n let t, e;\n return t = new km({\n props: {\n target: (\n /*drawingEl*/\n r[4]\n ),\n editor: (\n /*getEditor*/\n r[19](\n /*editable*/\n r[30].target.selector\n )\n ),\n annotation: (\n /*editable*/\n r[30]\n ),\n style: (\n /*style*/\n r[1]\n ),\n transform: (\n /*transform*/\n r[10]\n ),\n viewportScale: (\n /*$scale*/\n r[14]\n )\n }\n }), t.$on(\"change\", function() {\n Nt(\n /*onChangeSelected*/\n r[18](\n /*editable*/\n r[30]\n )\n ) && r[18](\n /*editable*/\n r[30]\n ).apply(this, arguments);\n }), {\n c() {\n le(t.$$.fragment);\n },\n m(i, s) {\n re(t, i, s), e = !0;\n },\n p(i, s) {\n r = i;\n const n = {};\n s[0] & /*drawingEl*/\n 16 && (n.target = /*drawingEl*/\n r[4]), s[0] & /*editableAnnotations*/\n 64 && (n.editor = /*getEditor*/\n r[19](\n /*editable*/\n r[30].target.selector\n )), s[0] & /*editableAnnotations*/\n 64 && (n.annotation = /*editable*/\n r[30]), s[0] & /*style*/\n 2 && (n.style = /*style*/\n r[1]), s[0] & /*transform*/\n 1024 && (n.transform = /*transform*/\n r[10]), s[0] & /*$scale*/\n 16384 && (n.viewportScale = /*$scale*/\n r[14]), t.$set(n);\n },\n i(i) {\n e || (ot(t.$$.fragment, i), e = !0);\n },\n o(i) {\n pt(t.$$.fragment, i), e = !1;\n },\n d(i) {\n ie(t, i);\n }\n };\n}\nfunction th(r) {\n let t = (\n /*editable*/\n r[30].id\n ), e, i, s = Ql(r);\n return {\n c() {\n s.c(), e = Ve();\n },\n m(n, o) {\n s.m(n, o), rt(n, e, o), i = !0;\n },\n p(n, o) {\n o[0] & /*editableAnnotations*/\n 64 && Kt(t, t = /*editable*/\n n[30].id) ? (ke(), pt(s, 1, 1, Ct), Ge(), s = Ql(n), s.c(), ot(s, 1), s.m(e.parentNode, e)) : s.p(n, o);\n },\n i(n) {\n i || (ot(s), i = !0);\n },\n o(n) {\n pt(s), i = !1;\n },\n d(n) {\n n && tt(e), s.d(n);\n }\n };\n}\nfunction gg(r) {\n let t, e, i, s, n, o, a = Ai(\n /*$store*/\n r[13]\n ), l = [];\n for (let u = 0; u < a.length; u += 1)\n l[u] = Kl(jl(r, a, u));\n const h = (u) => pt(l[u], 1, 1, () => {\n l[u] = null;\n });\n let c = (\n /*drawingEl*/\n r[4] && Zl(r)\n );\n return {\n c() {\n t = mt(\"svg\"), e = mt(\"g\");\n for (let u = 0; u < l.length; u += 1)\n l[u].c();\n i = mt(\"g\"), c && c.c(), S(i, \"class\", \"drawing\"), S(t, \"class\", \"a9s-annotationlayer\"), fn(\n t,\n \"drawing\",\n /*tool*/\n r[12]\n );\n },\n m(u, d) {\n rt(u, t, d), Ue(t, e);\n for (let f = 0; f < l.length; f += 1)\n l[f] && l[f].m(e, null);\n Ue(t, i), c && c.m(i, null), r[26](i), r[27](t), s = !0, n || (o = [\n Ft(t, \"pointerup\", function() {\n Nt(\n /*onPointerUp*/\n r[8]\n ) && r[8].apply(this, arguments);\n }),\n Ft(t, \"pointerdown\", function() {\n Nt(\n /*onPointerDown*/\n r[9]\n ) && r[9].apply(this, arguments);\n })\n ], n = !0);\n },\n p(u, d) {\n if (r = u, d[0] & /*$store, style, isEditable*/\n 8322) {\n a = Ai(\n /*$store*/\n r[13]\n );\n let f;\n for (f = 0; f < a.length; f += 1) {\n const p = jl(r, a, f);\n l[f] ? (l[f].p(p, d), ot(l[f], 1)) : (l[f] = Kl(p), l[f].c(), ot(l[f], 1), l[f].m(e, null));\n }\n for (ke(), f = a.length; f < l.length; f += 1)\n h(f);\n Ge();\n }\n r[4] ? c ? (c.p(r, d), d[0] & /*drawingEl*/\n 16 && ot(c, 1)) : (c = Zl(r), c.c(), ot(c, 1), c.m(i, null)) : c && (ke(), pt(c, 1, 1, () => {\n c = null;\n }), Ge()), (!s || d[0] & /*tool*/\n 4096) && fn(\n t,\n \"drawing\",\n /*tool*/\n r[12]\n );\n },\n i(u) {\n if (!s) {\n for (let d = 0; d < a.length; d += 1)\n ot(l[d]);\n ot(c), s = !0;\n }\n },\n o(u) {\n l = l.filter(Tu);\n for (let d = 0; d < l.length; d += 1)\n pt(l[d]);\n pt(c), s = !1;\n },\n d(u) {\n u && tt(t), rl(l, u), c && c.d(), r[26](null), r[27](null), n = !1, Xe(o);\n }\n };\n}\nfunction yg(r, t, e) {\n let i, s, n, o, a, l, h, c, u, d, f = Ct, p = () => (f(), f = lu(b, (X) => e(14, d = X)), b);\n r.$$.on_destroy.push(() => f());\n let { drawingEnabled: m } = t, { image: g } = t, { preferredDrawingMode: y } = t, { state: x } = t, { style: _ = void 0 } = t, { toolName: v = Gn()[0] } = t, { user: w } = t, R, C, b;\n ps(() => p(e(5, b = Sm(g, C))));\n const { selection: T, store: I } = x;\n Bl(r, T, (X) => e(25, c = X)), Bl(r, I, (X) => e(13, u = X));\n let O, M;\n const E = (X) => {\n O && I.unobserve(O);\n const D = X.filter(({ editable: F }) => F).map(({ id: F }) => F);\n D.length > 0 ? (e(6, M = D.map((F) => I.getAnnotation(F)).filter(Boolean)), O = (F) => {\n const { updated: j } = F.changes;\n e(6, M = j == null ? void 0 : j.map((nt) => nt.newValue));\n }, I.observe(O, { annotations: D })) : e(6, M = void 0);\n }, A = (X) => {\n const D = pu(), F = {\n id: D,\n bodies: [],\n target: {\n annotation: D,\n selector: X.detail,\n creator: w,\n created: /* @__PURE__ */ new Date()\n }\n };\n I.addAnnotation(F), T.setSelected(F.id);\n }, L = (X) => (D) => {\n var F;\n const { target: j } = X, nt = 10 * 60 * 1e3, Q = ((F = j.creator) == null ? void 0 : F.id) !== w.id || !j.created || (/* @__PURE__ */ new Date()).getTime() - j.created.getTime() > nt;\n I.updateTarget({\n ...j,\n selector: D.detail,\n created: Q ? j.created : /* @__PURE__ */ new Date(),\n updated: Q ? /* @__PURE__ */ new Date() : void 0,\n updatedBy: Q ? w : void 0\n });\n }, k = (X) => xu(X);\n function G(X) {\n pn[X ? \"unshift\" : \"push\"](() => {\n R = X, e(4, R);\n });\n }\n function $(X) {\n pn[X ? \"unshift\" : \"push\"](() => {\n C = X, e(3, C);\n });\n }\n return r.$$set = (X) => {\n \"drawingEnabled\" in X && e(0, m = X.drawingEnabled), \"image\" in X && e(20, g = X.image), \"preferredDrawingMode\" in X && e(21, y = X.preferredDrawingMode), \"state\" in X && e(22, x = X.state), \"style\" in X && e(1, _ = X.style), \"toolName\" in X && e(2, v = X.toolName), \"user\" in X && e(23, w = X.user);\n }, r.$$.update = () => {\n r.$$.dirty[0] & /*toolName*/\n 4 && e(12, { tool: i, opts: s } = $n(v) || { tool: void 0, opts: void 0 }, i, (e(24, s), e(2, v))), r.$$.dirty[0] & /*opts, preferredDrawingMode*/\n 18874368 && e(11, n = (s == null ? void 0 : s.drawingMode) || y), r.$$.dirty[0] & /*svgEl*/\n 8 && e(10, o = ag(C)), r.$$.dirty[0] & /*svgEl*/\n 8 && e(9, { onPointerDown: a, onPointerUp: l } = hg(C, I), a, (e(8, l), e(3, C))), r.$$.dirty[0] & /*$selection*/\n 33554432 && e(7, h = (X) => c.selected.find((D) => D.id === X.id && D.editable)), r.$$.dirty[0] & /*$selection*/\n 33554432 && E(c.selected);\n }, [\n m,\n _,\n v,\n C,\n R,\n b,\n M,\n h,\n l,\n a,\n o,\n n,\n i,\n u,\n d,\n T,\n I,\n A,\n L,\n k,\n g,\n y,\n x,\n w,\n s,\n c,\n G,\n $\n ];\n}\nclass _g extends de {\n constructor(t) {\n super(), ue(\n this,\n t,\n yg,\n gg,\n Kt,\n {\n drawingEnabled: 0,\n image: 20,\n preferredDrawingMode: 21,\n state: 22,\n style: 1,\n toolName: 2,\n user: 23\n },\n null,\n [-1, -1]\n );\n }\n}\nfunction vg(r, t, e, i, s) {\n Au(r, t, e || 0, i || r.length - 1, s || xg);\n}\nfunction Au(r, t, e, i, s) {\n for (; i > e; ) {\n if (i - e > 600) {\n var n = i - e + 1, o = t - e + 1, a = Math.log(n), l = 0.5 * Math.exp(2 * a / 3), h = 0.5 * Math.sqrt(a * l * (n - l) / n) * (o - n / 2 < 0 ? -1 : 1), c = Math.max(e, Math.floor(t - o * l / n + h)), u = Math.min(i, Math.floor(t + (n - o) * l / n + h));\n Au(r, t, c, u, s);\n }\n var d = r[t], f = e, p = i;\n for (Ui(r, e, t), s(r[i], d) > 0 && Ui(r, e, i); f < p; ) {\n for (Ui(r, f, p), f++, p--; s(r[f], d) < 0; )\n f++;\n for (; s(r[p], d) > 0; )\n p--;\n }\n s(r[e], d) === 0 ? Ui(r, e, p) : (p++, Ui(r, p, i)), p <= t && (e = p + 1), t <= p && (i = p - 1);\n }\n}\nfunction Ui(r, t, e) {\n var i = r[t];\n r[t] = r[e], r[e] = i;\n}\nfunction xg(r, t) {\n return r < t ? -1 : r > t ? 1 : 0;\n}\nclass bg {\n constructor(t = 9) {\n this._maxEntries = Math.max(4, t), this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)), this.clear();\n }\n all() {\n return this._all(this.data, []);\n }\n search(t) {\n let e = this.data;\n const i = [];\n if (!Ts(t, e))\n return i;\n const s = this.toBBox, n = [];\n for (; e; ) {\n for (let o = 0; o < e.children.length; o++) {\n const a = e.children[o], l = e.leaf ? s(a) : a;\n Ts(t, l) && (e.leaf ? i.push(a) : lo(t, l) ? this._all(a, i) : n.push(a));\n }\n e = n.pop();\n }\n return i;\n }\n collides(t) {\n let e = this.data;\n if (!Ts(t, e))\n return !1;\n const i = [];\n for (; e; ) {\n for (let s = 0; s < e.children.length; s++) {\n const n = e.children[s], o = e.leaf ? this.toBBox(n) : n;\n if (Ts(t, o)) {\n if (e.leaf || lo(t, o))\n return !0;\n i.push(n);\n }\n }\n e = i.pop();\n }\n return !1;\n }\n load(t) {\n if (!(t && t.length))\n return this;\n if (t.length < this._minEntries) {\n for (let i = 0; i < t.length; i++)\n this.insert(t[i]);\n return this;\n }\n let e = this._build(t.slice(), 0, t.length - 1, 0);\n if (!this.data.children.length)\n this.data = e;\n else if (this.data.height === e.height)\n this._splitRoot(this.data, e);\n else {\n if (this.data.height < e.height) {\n const i = this.data;\n this.data = e, e = i;\n }\n this._insert(e, this.data.height - e.height - 1, !0);\n }\n return this;\n }\n insert(t) {\n return t && this._insert(t, this.data.height - 1), this;\n }\n clear() {\n return this.data = si([]), this;\n }\n remove(t, e) {\n if (!t)\n return this;\n let i = this.data;\n const s = this.toBBox(t), n = [], o = [];\n let a, l, h;\n for (; i || n.length; ) {\n if (i || (i = n.pop(), l = n[n.length - 1], a = o.pop(), h = !0), i.leaf) {\n const c = wg(t, i.children, e);\n if (c !== -1)\n return i.children.splice(c, 1), n.push(i), this._condense(n), this;\n }\n !h && !i.leaf && lo(i, s) ? (n.push(i), o.push(a), a = 0, l = i, i = i.children[0]) : l ? (a++, i = l.children[a], h = !1) : i = null;\n }\n return this;\n }\n toBBox(t) {\n return t;\n }\n compareMinX(t, e) {\n return t.minX - e.minX;\n }\n compareMinY(t, e) {\n return t.minY - e.minY;\n }\n toJSON() {\n return this.data;\n }\n fromJSON(t) {\n return this.data = t, this;\n }\n _all(t, e) {\n const i = [];\n for (; t; )\n t.leaf ? e.push(...t.children) : i.push(...t.children), t = i.pop();\n return e;\n }\n _build(t, e, i, s) {\n const n = i - e + 1;\n let o = this._maxEntries, a;\n if (n <= o)\n return a = si(t.slice(e, i + 1)), Kr(a, this.toBBox), a;\n s || (s = Math.ceil(Math.log(n) / Math.log(o)), o = Math.ceil(n / Math.pow(o, s - 1))), a = si([]), a.leaf = !1, a.height = s;\n const l = Math.ceil(n / o), h = l * Math.ceil(Math.sqrt(o));\n eh(t, e, i, h, this.compareMinX);\n for (let c = e; c <= i; c += h) {\n const u = Math.min(c + h - 1, i);\n eh(t, c, u, l, this.compareMinY);\n for (let d = c; d <= u; d += l) {\n const f = Math.min(d + l - 1, u);\n a.children.push(this._build(t, d, f, s - 1));\n }\n }\n return Kr(a, this.toBBox), a;\n }\n _chooseSubtree(t, e, i, s) {\n for (; s.push(e), !(e.leaf || s.length - 1 === i); ) {\n let n = 1 / 0, o = 1 / 0, a;\n for (let l = 0; l < e.children.length; l++) {\n const h = e.children[l], c = ao(h), u = Ag(t, h) - c;\n u < o ? (o = u, n = c < n ? c : n, a = h) : u === o && c < n && (n = c, a = h);\n }\n e = a || e.children[0];\n }\n return e;\n }\n _insert(t, e, i) {\n const s = i ? t : this.toBBox(t), n = [], o = this._chooseSubtree(s, this.data, e, n);\n for (o.children.push(t), Wi(o, s); e >= 0 && n[e].children.length > this._maxEntries; )\n this._split(n, e), e--;\n this._adjustParentBBoxes(s, n, e);\n }\n // split overflowed node into two\n _split(t, e) {\n const i = t[e], s = i.children.length, n = this._minEntries;\n this._chooseSplitAxis(i, n, s);\n const o = this._chooseSplitIndex(i, n, s), a = si(i.children.splice(o, i.children.length - o));\n a.height = i.height, a.leaf = i.leaf, Kr(i, this.toBBox), Kr(a, this.toBBox), e ? t[e - 1].children.push(a) : this._splitRoot(i, a);\n }\n _splitRoot(t, e) {\n this.data = si([t, e]), this.data.height = t.height + 1, this.data.leaf = !1, Kr(this.data, this.toBBox);\n }\n _chooseSplitIndex(t, e, i) {\n let s, n = 1 / 0, o = 1 / 0;\n for (let a = e; a <= i - e; a++) {\n const l = zi(t, 0, a, this.toBBox), h = zi(t, a, i, this.toBBox), c = Sg(l, h), u = ao(l) + ao(h);\n c < n ? (n = c, s = a, o = u < o ? u : o) : c === n && u < o && (o = u, s = a);\n }\n return s || i - e;\n }\n // sorts node children by the best axis for split\n _chooseSplitAxis(t, e, i) {\n const s = t.leaf ? this.compareMinX : Eg, n = t.leaf ? this.compareMinY : Tg, o = this._allDistMargin(t, e, i, s), a = this._allDistMargin(t, e, i, n);\n o < a && t.children.sort(s);\n }\n // total margin of all possible split distributions where each node is at least m full\n _allDistMargin(t, e, i, s) {\n t.children.sort(s);\n const n = this.toBBox, o = zi(t, 0, e, n), a = zi(t, i - e, i, n);\n let l = Es(o) + Es(a);\n for (let h = e; h < i - e; h++) {\n const c = t.children[h];\n Wi(o, t.leaf ? n(c) : c), l += Es(o);\n }\n for (let h = i - e - 1; h >= e; h--) {\n const c = t.children[h];\n Wi(a, t.leaf ? n(c) : c), l += Es(a);\n }\n return l;\n }\n _adjustParentBBoxes(t, e, i) {\n for (let s = i; s >= 0; s--)\n Wi(e[s], t);\n }\n _condense(t) {\n for (let e = t.length - 1, i; e >= 0; e--)\n t[e].children.length === 0 ? e > 0 ? (i = t[e - 1].children, i.splice(i.indexOf(t[e]), 1)) : this.clear() : Kr(t[e], this.toBBox);\n }\n}\nfunction wg(r, t, e) {\n if (!e)\n return t.indexOf(r);\n for (let i = 0; i < t.length; i++)\n if (e(r, t[i]))\n return i;\n return -1;\n}\nfunction Kr(r, t) {\n zi(r, 0, r.children.length, t, r);\n}\nfunction zi(r, t, e, i, s) {\n s || (s = si(null)), s.minX = 1 / 0, s.minY = 1 / 0, s.maxX = -1 / 0, s.maxY = -1 / 0;\n for (let n = t; n < e; n++) {\n const o = r.children[n];\n Wi(s, r.leaf ? i(o) : o);\n }\n return s;\n}\nfunction Wi(r, t) {\n return r.minX = Math.min(r.minX, t.minX), r.minY = Math.min(r.minY, t.minY), r.maxX = Math.max(r.maxX, t.maxX), r.maxY = Math.max(r.maxY, t.maxY), r;\n}\nfunction Eg(r, t) {\n return r.minX - t.minX;\n}\nfunction Tg(r, t) {\n return r.minY - t.minY;\n}\nfunction ao(r) {\n return (r.maxX - r.minX) * (r.maxY - r.minY);\n}\nfunction Es(r) {\n return r.maxX - r.minX + (r.maxY - r.minY);\n}\nfunction Ag(r, t) {\n return (Math.max(t.maxX, r.maxX) - Math.min(t.minX, r.minX)) * (Math.max(t.maxY, r.maxY) - Math.min(t.minY, r.minY));\n}\nfunction Sg(r, t) {\n const e = Math.max(r.minX, t.minX), i = Math.max(r.minY, t.minY), s = Math.min(r.maxX, t.maxX), n = Math.min(r.maxY, t.maxY);\n return Math.max(0, s - e) * Math.max(0, n - i);\n}\nfunction lo(r, t) {\n return r.minX <= t.minX && r.minY <= t.minY && t.maxX <= r.maxX && t.maxY <= r.maxY;\n}\nfunction Ts(r, t) {\n return t.minX <= r.maxX && t.minY <= r.maxY && t.maxX >= r.minX && t.maxY >= r.minY;\n}\nfunction si(r) {\n return {\n children: r,\n height: 1,\n leaf: !0,\n minX: 1 / 0,\n minY: 1 / 0,\n maxX: -1 / 0,\n maxY: -1 / 0\n };\n}\nfunction eh(r, t, e, i, s) {\n const n = [t, e];\n for (; n.length; ) {\n if (e = n.pop(), t = n.pop(), e - t <= i)\n continue;\n const o = t + Math.ceil((e - t) / i / 2) * i;\n vg(r, o, t, e, s), n.push(t, o, o, e);\n }\n}\nconst Cg = () => {\n const r = new bg(), t = /* @__PURE__ */ new Map(), e = () => [...t.values()], i = () => {\n r.clear(), t.clear();\n }, s = (o) => {\n const { minX: a, minY: l, maxX: h, maxY: c } = o.selector.geometry.bounds, u = { minX: a, minY: l, maxX: h, maxY: c, target: o };\n r.insert(u), t.set(o.annotation, u);\n }, n = (o) => {\n const a = t.get(o.annotation);\n a && r.remove(a), t.delete(o.annotation);\n };\n return {\n all: e,\n clear: i,\n getAt: (o, a) => {\n const l = r.search({\n minX: o,\n minY: a,\n maxX: o,\n maxY: a\n }).map((h) => h.target).filter((h) => h.selector.type === bt.RECTANGLE || Ap(h.selector, o, a));\n if (l.length > 0)\n return l.sort((h, c) => Qo(h.selector) - Qo(c.selector)), l[0];\n },\n getIntersecting: (o, a, l, h) => r.search({\n minX: o,\n minY: a,\n maxX: o + l,\n maxY: a + h\n }).map((c) => c.target),\n insert: s,\n remove: n,\n set: (o, a = !0) => {\n a && i();\n const l = o.map((h) => {\n const { minX: c, minY: u, maxX: d, maxY: f } = h.selector.geometry.bounds;\n return { minX: c, minY: u, maxX: d, maxY: f, target: h };\n });\n l.forEach((h) => t.set(h.target.annotation, h)), r.load(l);\n },\n size: () => r.all().length,\n update: (o, a) => {\n n(o), s(a);\n }\n };\n}, Su = (r) => {\n const t = Qp(), e = Cg(), i = Xp(t, r.pointerSelectAction), s = Hp(t), n = sm();\n return t.observe(({ changes: o }) => {\n e.set((o.created || []).map((a) => a.target), !1), (o.deleted || []).forEach((a) => e.remove(a.target)), (o.updated || []).forEach(({ oldValue: a, newValue: l }) => e.update(a.target, l.target));\n }), {\n store: {\n ...t,\n getAt: (o, a) => {\n const l = e.getAt(o, a);\n return l ? t.getAnnotation(l.annotation) : void 0;\n },\n getIntersecting: (o, a, l, h) => e.getIntersecting(o, a, l, h).map((c) => t.getAnnotation(c.annotation))\n },\n selection: i,\n hover: s,\n viewport: n\n };\n}, Ig = (r) => {\n const t = Su(r);\n return {\n ...t,\n store: tm(t.store)\n };\n}, Pg = (r) => {\n let t, e;\n if (r.nodeName === \"CANVAS\")\n t = r, e = t.getContext(\"2d\", { willReadFrequently: !0 });\n else {\n const s = r;\n t = document.createElement(\"canvas\"), t.width = s.width, t.height = s.height, e = t.getContext(\"2d\", { willReadFrequently: !0 }), e.drawImage(s, 0, 0, s.width, s.height);\n }\n let i = 0;\n for (let s = 1; s < 10; s++)\n for (let n = 1; n < 10; n++) {\n const o = Math.round(n * t.width / 10), a = Math.round(s * t.height / 10), l = e.getImageData(o, a, 1, 1).data, h = (0.299 * l[0] + 0.587 * l[1] + 0.114 * l[2]) / 255;\n i += h;\n }\n return i / 81;\n}, Cu = (r) => {\n const t = Pg(r), e = t > 0.6 ? \"dark\" : \"light\";\n return console.log(`[Annotorious] Image brightness: ${t.toFixed(1)}. Setting ${e} theme.`), e;\n}, rh = (r, t, e) => t.setAttribute(\"data-theme\", e === \"auto\" ? Cu(r) : e), Iu = (r, t) => ({\n ...r,\n drawingEnabled: r.drawingEnabled === void 0 ? t.drawingEnabled : r.drawingEnabled,\n drawingMode: r.drawingMode || t.drawingMode,\n pointerSelectAction: r.pointerSelectAction || t.pointerSelectAction,\n theme: r.theme || t.theme\n}), ih = navigator.userAgent.indexOf(\"Mac OS X\") !== -1, Pu = (r, t) => {\n const e = t || document, i = (o) => {\n const a = o;\n a.key === \"z\" && a.ctrlKey ? r.undo() : a.key === \"y\" && a.ctrlKey && r.redo();\n }, s = (o) => {\n const a = o;\n a.key === \"z\" && a.metaKey && (a.shiftKey ? r.redo() : r.undo());\n }, n = () => {\n ih ? e.removeEventListener(\"keydown\", s) : e.removeEventListener(\"keydown\", i);\n };\n return ih ? e.addEventListener(\"keydown\", s) : e.addEventListener(\"keydown\", i), {\n destroy: n\n };\n}, Rg = (r, t = {}) => {\n if (!r)\n throw \"Missing argument: image\";\n const e = typeof r == \"string\" ? document.getElementById(r) : r, i = Iu(t, {\n drawingEnabled: !0,\n drawingMode: \"drag\",\n pointerSelectAction: mu.EDIT,\n theme: \"light\"\n }), s = Ig(i), { selection: n, store: o } = s, a = im(o), l = nm(\n s,\n a,\n i.adapter,\n i.autoSave\n ), h = document.createElement(\"DIV\");\n h.style.position = \"relative\", h.style.display = \"inline-block\", e.style.display = \"block\", e.parentNode.insertBefore(h, e), h.appendChild(e);\n const c = Pu(a);\n let u = fm();\n rh(e, h, i.theme);\n const d = new _g({\n target: h,\n props: {\n drawingEnabled: !!i.drawingEnabled,\n image: e,\n preferredDrawingMode: i.drawingMode,\n state: s,\n style: i.style,\n user: u\n }\n });\n d.$on(\"click\", (b) => {\n const { originalEvent: T, annotation: I } = b.detail;\n I ? n.clickSelect(I.id, T) : n.isEmpty() || n.clear();\n });\n const f = am(s, a, i.adapter), p = () => {\n d.$destroy(), h.parentNode.insertBefore(e, h), h.parentNode.removeChild(h), c.destroy(), a.destroy();\n }, m = () => u, g = (b, T, I) => Eu(b, T, I), y = (b, T) => bu(b, T), x = (b) => {\n if (!$n(b))\n throw `No drawing tool named ${b}`;\n d.$set({ toolName: b });\n }, _ = (b) => d.$set({ drawingEnabled: b }), v = (b) => {\n console.warn(\"Filter not implemented yet\");\n }, w = (b) => d.$set({ style: b }), R = (b) => rh(e, h, b), C = (b) => {\n u = b, d.$set({ user: b });\n };\n return {\n ...f,\n destroy: p,\n getUser: m,\n listDrawingTools: Gn,\n on: l.on,\n off: l.off,\n registerDrawingTool: g,\n registerShapeEditor: y,\n setDrawingEnabled: _,\n setDrawingTool: x,\n setFilter: v,\n setStyle: w,\n setTheme: R,\n setUser: C,\n state: s\n };\n};\nfunction $e() {\n}\nfunction ta(r, t) {\n for (const e in t)\n r[e] = t[e];\n return (\n /** @type {T & S} */\n r\n );\n}\nfunction Ru(r) {\n return r();\n}\nfunction sh() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction sr(r) {\n r.forEach(Ru);\n}\nfunction Wt(r) {\n return typeof r == \"function\";\n}\nfunction Qt(r, t) {\n return r != r ? t == t : r !== t || r && typeof r == \"object\" || typeof r == \"function\";\n}\nfunction Mg(r) {\n return Object.keys(r).length === 0;\n}\nfunction Bg(r, ...t) {\n if (r == null) {\n for (const i of t)\n i(void 0);\n return $e;\n }\n const e = r.subscribe(...t);\n return e.unsubscribe ? () => e.unsubscribe() : e;\n}\nfunction ea(r, t, e) {\n r.$$.on_destroy.push(Bg(t, e));\n}\nfunction Mu(r, t, e, i) {\n if (r) {\n const s = Bu(r, t, e, i);\n return r[0](s);\n }\n}\nfunction Bu(r, t, e, i) {\n return r[1] && i ? ta(e.ctx.slice(), r[1](i(t))) : e.ctx;\n}\nfunction Du(r, t, e, i) {\n if (r[2] && i) {\n const s = r[2](i(e));\n if (t.dirty === void 0)\n return s;\n if (typeof s == \"object\") {\n const n = [], o = Math.max(t.dirty.length, s.length);\n for (let a = 0; a < o; a += 1)\n n[a] = t.dirty[a] | s[a];\n return n;\n }\n return t.dirty | s;\n }\n return t.dirty;\n}\nfunction Ou(r, t, e, i, s, n) {\n if (s) {\n const o = Bu(t, e, i, n);\n r.p(o, s);\n }\n}\nfunction Fu(r) {\n if (r.ctx.length > 32) {\n const t = [], e = r.ctx.length / 32;\n for (let i = 0; i < e; i++)\n t[i] = -1;\n return t;\n }\n return -1;\n}\nfunction nh(r) {\n const t = {};\n for (const e in r)\n e[0] !== \"$\" && (t[e] = r[e]);\n return t;\n}\nfunction gn(r) {\n return r ?? \"\";\n}\nconst Dg = typeof window < \"u\" ? window : typeof globalThis < \"u\" ? globalThis : (\n // @ts-ignore Node typings have this\n global\n);\nfunction Qe(r, t) {\n r.appendChild(t);\n}\nfunction ct(r, t, e) {\n r.insertBefore(t, e || null);\n}\nfunction ht(r) {\n r.parentNode && r.parentNode.removeChild(r);\n}\nfunction al(r, t) {\n for (let e = 0; e < r.length; e += 1)\n r[e] && r[e].d(t);\n}\nfunction Tt(r) {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", r);\n}\nfunction ll(r) {\n return document.createTextNode(r);\n}\nfunction _e() {\n return ll(\" \");\n}\nfunction br() {\n return ll(\"\");\n}\nfunction Vt(r, t, e, i) {\n return r.addEventListener(t, e, i), () => r.removeEventListener(t, e, i);\n}\nfunction P(r, t, e) {\n e == null ? r.removeAttribute(t) : r.getAttribute(t) !== e && r.setAttribute(t, e);\n}\nfunction Og(r) {\n return Array.from(r.childNodes);\n}\nfunction Fg(r, t) {\n t = \"\" + t, r.data !== t && (r.data = /** @type {string} */\n t);\n}\nfunction yn(r, t, e) {\n r.classList.toggle(t, !!e);\n}\nfunction Lg(r, t, { bubbles: e = !1, cancelable: i = !1 } = {}) {\n return new CustomEvent(r, { detail: t, bubbles: e, cancelable: i });\n}\nlet ls;\nfunction rs(r) {\n ls = r;\n}\nfunction hl() {\n if (!ls)\n throw new Error(\"Function called outside component initialization\");\n return ls;\n}\nfunction Hn(r) {\n hl().$$.on_mount.push(r);\n}\nfunction Ng(r) {\n hl().$$.on_destroy.push(r);\n}\nfunction Xn() {\n const r = hl();\n return (t, e, { cancelable: i = !1 } = {}) => {\n const s = r.$$.callbacks[t];\n if (s) {\n const n = Lg(\n /** @type {string} */\n t,\n e,\n { cancelable: i }\n );\n return s.slice().forEach((o) => {\n o.call(r, n);\n }), !n.defaultPrevented;\n }\n return !0;\n };\n}\nfunction tr(r, t) {\n const e = r.$$.callbacks[t.type];\n e && e.slice().forEach((i) => i.call(this, t));\n}\nconst ni = [], _n = [];\nlet gi = [];\nconst oh = [], Ug = /* @__PURE__ */ Promise.resolve();\nlet ra = !1;\nfunction kg() {\n ra || (ra = !0, Ug.then(Lu));\n}\nfunction ia(r) {\n gi.push(r);\n}\nconst ho = /* @__PURE__ */ new Set();\nlet Zr = 0;\nfunction Lu() {\n if (Zr !== 0)\n return;\n const r = ls;\n do {\n try {\n for (; Zr < ni.length; ) {\n const t = ni[Zr];\n Zr++, rs(t), Gg(t.$$);\n }\n } catch (t) {\n throw ni.length = 0, Zr = 0, t;\n }\n for (rs(null), ni.length = 0, Zr = 0; _n.length; )\n _n.pop()();\n for (let t = 0; t < gi.length; t += 1) {\n const e = gi[t];\n ho.has(e) || (ho.add(e), e());\n }\n gi.length = 0;\n } while (ni.length);\n for (; oh.length; )\n oh.pop()();\n ra = !1, ho.clear(), rs(r);\n}\nfunction Gg(r) {\n if (r.fragment !== null) {\n r.update(), sr(r.before_update);\n const t = r.dirty;\n r.dirty = [-1], r.fragment && r.fragment.p(r.ctx, t), r.after_update.forEach(ia);\n }\n}\nfunction $g(r) {\n const t = [], e = [];\n gi.forEach((i) => r.indexOf(i) === -1 ? t.push(i) : e.push(i)), e.forEach((i) => i()), gi = t;\n}\nconst Js = /* @__PURE__ */ new Set();\nlet Fr;\nfunction nr() {\n Fr = {\n r: 0,\n c: [],\n p: Fr\n // parent group\n };\n}\nfunction or() {\n Fr.r || sr(Fr.c), Fr = Fr.p;\n}\nfunction st(r, t) {\n r && r.i && (Js.delete(r), r.i(t));\n}\nfunction ut(r, t, e, i) {\n if (r && r.o) {\n if (Js.has(r))\n return;\n Js.add(r), Fr.c.push(() => {\n Js.delete(r), i && (e && r.d(1), i());\n }), r.o(t);\n } else\n i && i();\n}\nfunction Si(r) {\n return (r == null ? void 0 : r.length) !== void 0 ? r : Array.from(r);\n}\nfunction Zt(r) {\n r && r.c();\n}\nfunction jt(r, t, e) {\n const { fragment: i, after_update: s } = r.$$;\n i && i.m(t, e), ia(() => {\n const n = r.$$.on_mount.map(Ru).filter(Wt);\n r.$$.on_destroy ? r.$$.on_destroy.push(...n) : sr(n), r.$$.on_mount = [];\n }), s.forEach(ia);\n}\nfunction Yt(r, t) {\n const e = r.$$;\n e.fragment !== null && ($g(e.after_update), sr(e.on_destroy), e.fragment && e.fragment.d(t), e.on_destroy = e.fragment = null, e.ctx = []);\n}\nfunction Hg(r, t) {\n r.$$.dirty[0] === -1 && (ni.push(r), kg(), r.$$.dirty.fill(0)), r.$$.dirty[t / 31 | 0] |= 1 << t % 31;\n}\nfunction ne(r, t, e, i, s, n, o = null, a = [-1]) {\n const l = ls;\n rs(r);\n const h = r.$$ = {\n fragment: null,\n ctx: [],\n // state\n props: n,\n update: $e,\n not_equal: s,\n bound: sh(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(t.context || (l ? l.$$.context : [])),\n // everything else\n callbacks: sh(),\n dirty: a,\n skip_bound: !1,\n root: t.target || l.$$.root\n };\n o && o(h.root);\n let c = !1;\n if (h.ctx = e ? e(r, t.props || {}, (u, d, ...f) => {\n const p = f.length ? f[0] : d;\n return h.ctx && s(h.ctx[u], h.ctx[u] = p) && (!h.skip_bound && h.bound[u] && h.bound[u](p), c && Hg(r, u)), d;\n }) : [], h.update(), c = !0, sr(h.before_update), h.fragment = i ? i(h.ctx) : !1, t.target) {\n if (t.hydrate) {\n const u = Og(t.target);\n h.fragment && h.fragment.l(u), u.forEach(ht);\n } else\n h.fragment && h.fragment.c();\n t.intro && st(r.$$.fragment), jt(r, t.target, t.anchor), Lu();\n }\n rs(l);\n}\nclass oe {\n constructor() {\n /**\n * ### PRIVATE API\n *\n * Do not use, may change at any time\n *\n * @type {any}\n */\n to(this, \"$$\");\n /**\n * ### PRIVATE API\n *\n * Do not use, may change at any time\n *\n * @type {any}\n */\n to(this, \"$$set\");\n }\n /** @returns {void} */\n $destroy() {\n Yt(this, 1), this.$destroy = $e;\n }\n /**\n * @template {Extract<keyof Events, string>} K\n * @param {K} type\n * @param {((e: Events[K]) => void) | null | undefined} callback\n * @returns {() => void}\n */\n $on(t, e) {\n if (!Wt(e))\n return $e;\n const i = this.$$.callbacks[t] || (this.$$.callbacks[t] = []);\n return i.push(e), () => {\n const s = i.indexOf(e);\n s !== -1 && i.splice(s, 1);\n };\n }\n /**\n * @param {Partial<Props>} props\n * @returns {void}\n */\n $set(t) {\n this.$$set && !Mg(t) && (this.$$.skip_bound = !0, this.$$set(t), this.$$.skip_bound = !1);\n }\n}\nconst Xg = \"4\";\ntypeof window < \"u\" && (window.__svelte || (window.__svelte = { v: /* @__PURE__ */ new Set() })).v.add(Xg);\nvar zr = /* @__PURE__ */ ((r) => (r[r.WEBGL_LEGACY = 0] = \"WEBGL_LEGACY\", r[r.WEBGL = 1] = \"WEBGL\", r[r.WEBGL2 = 2] = \"WEBGL2\", r))(zr || {}), Nu = /* @__PURE__ */ ((r) => (r[r.UNKNOWN = 0] = \"UNKNOWN\", r[r.WEBGL = 1] = \"WEBGL\", r[r.CANVAS = 2] = \"CANVAS\", r))(Nu || {}), sa = /* @__PURE__ */ ((r) => (r[r.COLOR = 16384] = \"COLOR\", r[r.DEPTH = 256] = \"DEPTH\", r[r.STENCIL = 1024] = \"STENCIL\", r))(sa || {}), J = /* @__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))(J || {}), Fe = /* @__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))(Fe || {}), U = /* @__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))(U || {}), yi = /* @__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))(yi || {}), Z = /* @__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))(Z || {}), z = /* @__PURE__ */ ((r) => (r[r.FLOAT = 0] = \"FLOAT\", r[r.INT = 1] = \"INT\", r[r.UINT = 2] = \"UINT\", r))(z || {}), Ye = /* @__PURE__ */ ((r) => (r[r.NEAREST = 0] = \"NEAREST\", r[r.LINEAR = 1] = \"LINEAR\", r))(Ye || {}), _r = /* @__PURE__ */ ((r) => (r[r.CLAMP = 33071] = \"CLAMP\", r[r.REPEAT = 10497] = \"REPEAT\", r[r.MIRRORED_REPEAT = 33648] = \"MIRRORED_REPEAT\", r))(_r || {}), He = /* @__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))(He || {}), te = /* @__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))(te || {}), De = /* @__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))(De || {}), cl = /* @__PURE__ */ ((r) => (r[r.AUTO = 0] = \"AUTO\", r[r.MANUAL = 1] = \"MANUAL\", r))(cl || {}), he = /* @__PURE__ */ ((r) => (r.LOW = \"lowp\", r.MEDIUM = \"mediump\", r.HIGH = \"highp\", r))(he || {}), Ot = /* @__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))(Ot || {}), Bt = /* @__PURE__ */ ((r) => (r[r.NONE = 0] = \"NONE\", r[r.LOW = 2] = \"LOW\", r[r.MEDIUM = 4] = \"MEDIUM\", r[r.HIGH = 8] = \"HIGH\", r))(Bt || {}), Le = /* @__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))(Le || {});\nconst Vg = {\n /**\n * Creates a canvas element of the given size.\n * This canvas is created using the browser's native canvas element.\n * @param width - width of the canvas\n * @param height - height of the canvas\n */\n createCanvas: (r, t) => {\n const e = document.createElement(\"canvas\");\n return e.width = r, e.height = t, e;\n },\n getCanvasRenderingContext2D: () => CanvasRenderingContext2D,\n getWebGLRenderingContext: () => WebGLRenderingContext,\n getNavigator: () => navigator,\n getBaseUrl: () => document.baseURI ?? window.location.href,\n getFontFaceSet: () => document.fonts,\n fetch: (r, t) => fetch(r, t),\n parseXML: (r) => new DOMParser().parseFromString(r, \"text/xml\")\n}, W = {\n /**\n * This adapter is used to call methods that are platform dependent.\n * For example `document.createElement` only runs on the web but fails in node environments.\n * This allows us to support more platforms by abstracting away specific implementations per platform.\n *\n * By default the adapter is set to work in the browser. However you can create your own\n * by implementing the `IAdapter` interface. See `IAdapter` for more information.\n * @name ADAPTER\n * @memberof PIXI.settings\n * @type {PIXI.IAdapter}\n * @default PIXI.BrowserAdapter\n */\n ADAPTER: Vg,\n /**\n * Default resolution / device pixel ratio of the renderer.\n * @static\n * @name RESOLUTION\n * @memberof PIXI.settings\n * @type {number}\n * @default 1\n */\n RESOLUTION: 1,\n /**\n * Enables bitmap creation before image load. This feature is experimental.\n * @static\n * @name CREATE_IMAGE_BITMAP\n * @memberof PIXI.settings\n * @type {boolean}\n * @default false\n */\n CREATE_IMAGE_BITMAP: !1,\n /**\n * If true PixiJS will Math.floor() x/y values when rendering, stopping pixel interpolation.\n * Advantages can include sharper image quality (like text) and faster rendering on canvas.\n * The main disadvantage is movement of objects may appear less smooth.\n * @static\n * @memberof PIXI.settings\n * @type {boolean}\n * @default false\n */\n ROUND_PIXELS: !1\n};\nvar co = /iPhone/i, ah = /iPod/i, lh = /iPad/i, hh = /\\biOS-universal(?:.+)Mac\\b/i, uo = /\\bAndroid(?:.+)Mobile\\b/i, ch = /Android/i, Jr = /(?:SD4930UR|\\bSilk(?:.+)Mobile\\b)/i, As = /Silk/i, We = /Windows Phone/i, uh = /\\bWindows(?:.+)ARM\\b/i, dh = /BlackBerry/i, fh = /BB10/i, ph = /Opera Mini/i, mh = /\\b(CriOS|Chrome)(?:.+)Mobile/i, gh = /Mobile(?:.+)Firefox\\b/i, yh = function(r) {\n return typeof r < \"u\" && r.platform === \"MacIntel\" && typeof r.maxTouchPoints == \"number\" && r.maxTouchPoints > 1 && typeof MSStream > \"u\";\n};\nfunction zg(r) {\n return function(t) {\n return t.test(r);\n };\n}\nfunction _h(r) {\n var t = {\n userAgent: \"\",\n platform: \"\",\n maxTouchPoints: 0\n };\n !r && typeof navigator < \"u\" ? t = {\n userAgent: navigator.userAgent,\n platform: navigator.platform,\n maxTouchPoints: navigator.maxTouchPoints || 0\n } : typeof r == \"string\" ? t.userAgent = r : r && r.userAgent && (t = {\n userAgent: r.userAgent,\n platform: r.platform,\n maxTouchPoints: r.maxTouchPoints || 0\n });\n var e = t.userAgent, i = e.split(\"[FBAN\");\n typeof i[1] < \"u\" && (e = i[0]), i = e.split(\"Twitter\"), typeof i[1] < \"u\" && (e = i[0]);\n var s = zg(e), n = {\n apple: {\n phone: s(co) && !s(We),\n ipod: s(ah),\n tablet: !s(co) && (s(lh) || yh(t)) && !s(We),\n universal: s(hh),\n device: (s(co) || s(ah) || s(lh) || s(hh) || yh(t)) && !s(We)\n },\n amazon: {\n phone: s(Jr),\n tablet: !s(Jr) && s(As),\n device: s(Jr) || s(As)\n },\n android: {\n phone: !s(We) && s(Jr) || !s(We) && s(uo),\n tablet: !s(We) && !s(Jr) && !s(uo) && (s(As) || s(ch)),\n device: !s(We) && (s(Jr) || s(As) || s(uo) || s(ch)) || s(/\\bokhttp\\b/i)\n },\n windows: {\n phone: s(We),\n tablet: s(uh),\n device: s(We) || s(uh)\n },\n other: {\n blackberry: s(dh),\n blackberry10: s(fh),\n opera: s(ph),\n firefox: s(gh),\n chrome: s(mh),\n device: s(dh) || s(fh) || s(ph) || s(gh) || s(mh)\n },\n any: !1,\n phone: !1,\n tablet: !1\n };\n return n.any = n.apple.device || n.android.device || n.windows.device || n.other.device, n.phone = n.apple.phone || n.android.phone || n.windows.phone, n.tablet = n.apple.tablet || n.android.tablet || n.windows.tablet, n;\n}\nconst Wg = _h.default ?? _h, qe = Wg(globalThis.navigator);\nW.RETINA_PREFIX = /@([0-9\\.]+)x/;\nW.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT = !1;\nvar Qs = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction Uu(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nfunction jg(r) {\n if (r.__esModule)\n return r;\n var t = r.default;\n if (typeof t == \"function\") {\n var e = function i() {\n return this instanceof i ? Reflect.construct(t, arguments, this.constructor) : t.apply(this, arguments);\n };\n e.prototype = t.prototype;\n } else\n e = {};\n return Object.defineProperty(e, \"__esModule\", { value: !0 }), Object.keys(r).forEach(function(i) {\n var s = Object.getOwnPropertyDescriptor(r, i);\n Object.defineProperty(e, i, s.get ? s : {\n enumerable: !0,\n get: function() {\n return r[i];\n }\n });\n }), e;\n}\nvar ku = { exports: {} };\n(function(r) {\n var t = Object.prototype.hasOwnProperty, e = \"~\";\n function i() {\n }\n Object.create && (i.prototype = /* @__PURE__ */ Object.create(null), new i().__proto__ || (e = !1));\n function s(l, h, c) {\n this.fn = l, this.context = h, this.once = c || !1;\n }\n function n(l, h, c, u, d) {\n if (typeof c != \"function\")\n throw new TypeError(\"The listener must be a function\");\n var f = new s(c, u || l, d), p = e ? e + h : h;\n return l._events[p] ? l._events[p].fn ? l._events[p] = [l._events[p], f] : l._events[p].push(f) : (l._events[p] = f, l._eventsCount++), l;\n }\n function o(l, h) {\n --l._eventsCount === 0 ? l._events = new i() : delete l._events[h];\n }\n function a() {\n this._events = new i(), this._eventsCount = 0;\n }\n a.prototype.eventNames = function() {\n var h = [], c, u;\n if (this._eventsCount === 0)\n return h;\n for (u in c = this._events)\n t.call(c, u) && h.push(e ? u.slice(1) : u);\n return Object.getOwnPropertySymbols ? h.concat(Object.getOwnPropertySymbols(c)) : h;\n }, a.prototype.listeners = function(h) {\n var c = e ? e + h : h, u = this._events[c];\n if (!u)\n return [];\n if (u.fn)\n return [u.fn];\n for (var d = 0, f = u.length, p = new Array(f); d < f; d++)\n p[d] = u[d].fn;\n return p;\n }, a.prototype.listenerCount = function(h) {\n var c = e ? e + h : h, u = this._events[c];\n return u ? u.fn ? 1 : u.length : 0;\n }, a.prototype.emit = function(h, c, u, d, f, p) {\n var m = e ? e + h : h;\n if (!this._events[m])\n return !1;\n var g = this._events[m], y = arguments.length, x, _;\n if (g.fn) {\n switch (g.once && this.removeListener(h, g.fn, void 0, !0), y) {\n case 1:\n return g.fn.call(g.context), !0;\n case 2:\n return g.fn.call(g.context, c), !0;\n case 3:\n return g.fn.call(g.context, c, u), !0;\n case 4:\n return g.fn.call(g.context, c, u, d), !0;\n case 5:\n return g.fn.call(g.context, c, u, d, f), !0;\n case 6:\n return g.fn.call(g.context, c, u, d, f, p), !0;\n }\n for (_ = 1, x = new Array(y - 1); _ < y; _++)\n x[_ - 1] = arguments[_];\n g.fn.apply(g.context, x);\n } else {\n var v = g.length, w;\n for (_ = 0; _ < v; _++)\n switch (g[_].once && this.removeListener(h, g[_].fn, void 0, !0), y) {\n case 1:\n g[_].fn.call(g[_].context);\n break;\n case 2:\n g[_].fn.call(g[_].context, c);\n break;\n case 3:\n g[_].fn.call(g[_].context, c, u);\n break;\n case 4:\n g[_].fn.call(g[_].context, c, u, d);\n break;\n default:\n if (!x)\n for (w = 1, x = new Array(y - 1); w < y; w++)\n x[w - 1] = arguments[w];\n g[_].fn.apply(g[_].context, x);\n }\n }\n return !0;\n }, a.prototype.on = function(h, c, u) {\n return n(this, h, c, u, !1);\n }, a.prototype.once = function(h, c, u) {\n return n(this, h, c, u, !0);\n }, a.prototype.removeListener = function(h, c, u, d) {\n var f = e ? e + h : h;\n if (!this._events[f])\n return this;\n if (!c)\n return o(this, f), this;\n var p = this._events[f];\n if (p.fn)\n p.fn === c && (!d || p.once) && (!u || p.context === u) && o(this, f);\n else {\n for (var m = 0, g = [], y = p.length; m < y; m++)\n (p[m].fn !== c || d && !p[m].once || u && p[m].context !== u) && g.push(p[m]);\n g.length ? this._events[f] = g.length === 1 ? g[0] : g : o(this, f);\n }\n return this;\n }, a.prototype.removeAllListeners = function(h) {\n var c;\n return h ? (c = e ? e + h : h, this._events[c] && o(this, c)) : (this._events = new i(), this._eventsCount = 0), this;\n }, a.prototype.off = a.prototype.removeListener, a.prototype.addListener = a.prototype.on, a.prefixed = e, a.EventEmitter = a, r.exports = a;\n})(ku);\nvar Yg = ku.exports;\nconst ms = /* @__PURE__ */ Uu(Yg);\nvar ul = { exports: {} };\nul.exports = Vn;\nul.exports.default = Vn;\nfunction Vn(r, t, e) {\n e = e || 2;\n var i = t && t.length, s = i ? t[0] * e : r.length, n = Gu(r, 0, s, e, !0), o = [];\n if (!n || n.next === n.prev)\n return o;\n var a, l, h, c, u, d, f;\n if (i && (n = Qg(r, t, n, e)), r.length > 80 * e) {\n a = h = r[0], l = c = r[1];\n for (var p = e; p < s; p += e)\n u = r[p], d = r[p + 1], u < a && (a = u), d < l && (l = d), u > h && (h = u), d > c && (c = d);\n f = Math.max(h - a, c - l), f = f !== 0 ? 32767 / f : 0;\n }\n return hs(n, o, e, a, l, f, 0), o;\n}\nfunction Gu(r, t, e, i, s) {\n var n, o;\n if (s === aa(r, t, e, i) > 0)\n for (n = t; n < e; n += i)\n o = vh(n, r[n], r[n + 1], o);\n else\n for (n = e - i; n >= t; n -= i)\n o = vh(n, r[n], r[n + 1], o);\n return o && zn(o, o.next) && (us(o), o = o.next), o;\n}\nfunction Hr(r, t) {\n if (!r)\n return r;\n t || (t = r);\n var e = r, i;\n do\n if (i = !1, !e.steiner && (zn(e, e.next) || St(e.prev, e, e.next) === 0)) {\n if (us(e), e = t = e.prev, e === e.next)\n break;\n i = !0;\n } else\n e = e.next;\n while (i || e !== t);\n return t;\n}\nfunction hs(r, t, e, i, s, n, o) {\n if (r) {\n !o && n && sy(r, i, s, n);\n for (var a = r, l, h; r.prev !== r.next; ) {\n if (l = r.prev, h = r.next, n ? Kg(r, i, s, n) : qg(r)) {\n t.push(l.i / e | 0), t.push(r.i / e | 0), t.push(h.i / e | 0), us(r), r = h.next, a = h.next;\n continue;\n }\n if (r = h, r === a) {\n o ? o === 1 ? (r = Zg(Hr(r), t, e), hs(r, t, e, i, s, n, 2)) : o === 2 && Jg(r, t, e, i, s, n) : hs(Hr(r), t, e, i, s, n, 1);\n break;\n }\n }\n }\n}\nfunction qg(r) {\n var t = r.prev, e = r, i = r.next;\n if (St(t, e, i) >= 0)\n return !1;\n for (var s = t.x, n = e.x, o = i.x, a = t.y, l = e.y, h = i.y, c = s < n ? s < o ? s : o : n < o ? n : o, u = a < l ? a < h ? a : h : l < h ? l : h, d = s > n ? s > o ? s : o : n > o ? n : o, f = a > l ? a > h ? a : h : l > h ? l : h, p = i.next; p !== t; ) {\n if (p.x >= c && p.x <= d && p.y >= u && p.y <= f && fi(s, a, n, l, o, h, p.x, p.y) && St(p.prev, p, p.next) >= 0)\n return !1;\n p = p.next;\n }\n return !0;\n}\nfunction Kg(r, t, e, i) {\n var s = r.prev, n = r, o = r.next;\n if (St(s, n, o) >= 0)\n return !1;\n for (var a = s.x, l = n.x, h = o.x, c = s.y, u = n.y, d = o.y, f = a < l ? a < h ? a : h : l < h ? l : h, p = c < u ? c < d ? c : d : u < d ? u : d, m = a > l ? a > h ? a : h : l > h ? l : h, g = c > u ? c > d ? c : d : u > d ? u : d, y = na(f, p, t, e, i), x = na(m, g, t, e, i), _ = r.prevZ, v = r.nextZ; _ && _.z >= y && v && v.z <= x; ) {\n if (_.x >= f && _.x <= m && _.y >= p && _.y <= g && _ !== s && _ !== o && fi(a, c, l, u, h, d, _.x, _.y) && St(_.prev, _, _.next) >= 0 || (_ = _.prevZ, v.x >= f && v.x <= m && v.y >= p && v.y <= g && v !== s && v !== o && fi(a, c, l, u, h, d, v.x, v.y) && St(v.prev, v, v.next) >= 0))\n return !1;\n v = v.nextZ;\n }\n for (; _ && _.z >= y; ) {\n if (_.x >= f && _.x <= m && _.y >= p && _.y <= g && _ !== s && _ !== o && fi(a, c, l, u, h, d, _.x, _.y) && St(_.prev, _, _.next) >= 0)\n return !1;\n _ = _.prevZ;\n }\n for (; v && v.z <= x; ) {\n if (v.x >= f && v.x <= m && v.y >= p && v.y <= g && v !== s && v !== o && fi(a, c, l, u, h, d, v.x, v.y) && St(v.prev, v, v.next) >= 0)\n return !1;\n v = v.nextZ;\n }\n return !0;\n}\nfunction Zg(r, t, e) {\n var i = r;\n do {\n var s = i.prev, n = i.next.next;\n !zn(s, n) && $u(s, i, i.next, n) && cs(s, n) && cs(n, s) && (t.push(s.i / e | 0), t.push(i.i / e | 0), t.push(n.i / e | 0), us(i), us(i.next), i = r = n), i = i.next;\n } while (i !== r);\n return Hr(i);\n}\nfunction Jg(r, t, e, i, s, n) {\n var o = r;\n do {\n for (var a = o.next.next; a !== o.prev; ) {\n if (o.i !== a.i && ay(o, a)) {\n var l = Hu(o, a);\n o = Hr(o, o.next), l = Hr(l, l.next), hs(o, t, e, i, s, n, 0), hs(l, t, e, i, s, n, 0);\n return;\n }\n a = a.next;\n }\n o = o.next;\n } while (o !== r);\n}\nfunction Qg(r, t, e, i) {\n var s = [], n, o, a, l, h;\n for (n = 0, o = t.length; n < o; n++)\n a = t[n] * i, l = n < o - 1 ? t[n + 1] * i : r.length, h = Gu(r, a, l, i, !1), h === h.next && (h.steiner = !0), s.push(oy(h));\n for (s.sort(ty), n = 0; n < s.length; n++)\n e = ey(s[n], e);\n return e;\n}\nfunction ty(r, t) {\n return r.x - t.x;\n}\nfunction ey(r, t) {\n var e = ry(r, t);\n if (!e)\n return t;\n var i = Hu(e, r);\n return Hr(i, i.next), Hr(e, e.next);\n}\nfunction ry(r, t) {\n var e = t, i = r.x, s = r.y, n = -1 / 0, o;\n do {\n if (s <= e.y && s >= e.next.y && e.next.y !== e.y) {\n var a = e.x + (s - e.y) * (e.next.x - e.x) / (e.next.y - e.y);\n if (a <= i && a > n && (n = a, o = e.x < e.next.x ? e : e.next, a === i))\n return o;\n }\n e = e.next;\n } while (e !== t);\n if (!o)\n return null;\n var l = o, h = o.x, c = o.y, u = 1 / 0, d;\n e = o;\n do\n i >= e.x && e.x >= h && i !== e.x && fi(s < c ? i : n, s, h, c, s < c ? n : i, s, e.x, e.y) && (d = Math.abs(s - e.y) / (i - e.x), cs(e, r) && (d < u || d === u && (e.x > o.x || e.x === o.x && iy(o, e))) && (o = e, u = d)), e = e.next;\n while (e !== l);\n return o;\n}\nfunction iy(r, t) {\n return St(r.prev, r, t.prev) < 0 && St(t.next, r, r.next) < 0;\n}\nfunction sy(r, t, e, i) {\n var s = r;\n do\n s.z === 0 && (s.z = na(s.x, s.y, t, e, i)), s.prevZ = s.prev, s.nextZ = s.next, s = s.next;\n while (s !== r);\n s.prevZ.nextZ = null, s.prevZ = null, ny(s);\n}\nfunction ny(r) {\n var t, e, i, s, n, o, a, l, h = 1;\n do {\n for (e = r, r = null, n = null, o = 0; e; ) {\n for (o++, i = e, a = 0, t = 0; t < h && (a++, i = i.nextZ, !!i); t++)\n ;\n for (l = h; a > 0 || l > 0 && i; )\n a !== 0 && (l === 0 || !i || e.z <= i.z) ? (s = e, e = e.nextZ, a--) : (s = i, i = i.nextZ, l--), n ? n.nextZ = s : r = s, s.prevZ = n, n = s;\n e = i;\n }\n n.nextZ = null, h *= 2;\n } while (o > 1);\n return r;\n}\nfunction na(r, t, e, i, s) {\n return r = (r - e) * s | 0, t = (t - i) * s | 0, r = (r | r << 8) & 16711935, r = (r | r << 4) & 252645135, r = (r | r << 2) & 858993459, r = (r | r << 1) & 1431655765, t = (t | t << 8) & 16711935, t = (t | t << 4) & 252645135, t = (t | t << 2) & 858993459, t = (t | t << 1) & 1431655765, r | t << 1;\n}\nfunction oy(r) {\n var t = r, e = r;\n do\n (t.x < e.x || t.x === e.x && t.y < e.y) && (e = t), t = t.next;\n while (t !== r);\n return e;\n}\nfunction fi(r, t, e, i, s, n, o, a) {\n return (s - o) * (t - a) >= (r - o) * (n - a) && (r - o) * (i - a) >= (e - o) * (t - a) && (e - o) * (n - a) >= (s - o) * (i - a);\n}\nfunction ay(r, t) {\n return r.next.i !== t.i && r.prev.i !== t.i && !ly(r, t) && // dones't intersect other edges\n (cs(r, t) && cs(t, r) && hy(r, t) && // locally visible\n (St(r.prev, r, t.prev) || St(r, t.prev, t)) || // does not create opposite-facing sectors\n zn(r, t) && St(r.prev, r, r.next) > 0 && St(t.prev, t, t.next) > 0);\n}\nfunction St(r, t, e) {\n return (t.y - r.y) * (e.x - t.x) - (t.x - r.x) * (e.y - t.y);\n}\nfunction zn(r, t) {\n return r.x === t.x && r.y === t.y;\n}\nfunction $u(r, t, e, i) {\n var s = Cs(St(r, t, e)), n = Cs(St(r, t, i)), o = Cs(St(e, i, r)), a = Cs(St(e, i, t));\n return !!(s !== n && o !== a || s === 0 && Ss(r, e, t) || n === 0 && Ss(r, i, t) || o === 0 && Ss(e, r, i) || a === 0 && Ss(e, t, i));\n}\nfunction Ss(r, t, e) {\n return t.x <= Math.max(r.x, e.x) && t.x >= Math.min(r.x, e.x) && t.y <= Math.max(r.y, e.y) && t.y >= Math.min(r.y, e.y);\n}\nfunction Cs(r) {\n return r > 0 ? 1 : r < 0 ? -1 : 0;\n}\nfunction ly(r, t) {\n var e = r;\n do {\n if (e.i !== r.i && e.next.i !== r.i && e.i !== t.i && e.next.i !== t.i && $u(e, e.next, r, t))\n return !0;\n e = e.next;\n } while (e !== r);\n return !1;\n}\nfunction cs(r, t) {\n return St(r.prev, r, r.next) < 0 ? St(r, t, r.next) >= 0 && St(r, r.prev, t) >= 0 : St(r, t, r.prev) < 0 || St(r, r.next, t) < 0;\n}\nfunction hy(r, t) {\n var e = r, i = !1, s = (r.x + t.x) / 2, n = (r.y + t.y) / 2;\n do\n e.y > n != e.next.y > n && e.next.y !== e.y && s < (e.next.x - e.x) * (n - e.y) / (e.next.y - e.y) + e.x && (i = !i), e = e.next;\n while (e !== r);\n return i;\n}\nfunction Hu(r, t) {\n var e = new oa(r.i, r.x, r.y), i = new oa(t.i, t.x, t.y), s = r.next, n = t.prev;\n return r.next = t, t.prev = r, e.next = s, s.prev = e, i.next = e, e.prev = i, n.next = i, i.prev = n, i;\n}\nfunction vh(r, t, e, i) {\n var s = new oa(r, t, e);\n return i ? (s.next = i.next, s.prev = i, i.next.prev = s, i.next = s) : (s.prev = s, s.next = s), s;\n}\nfunction us(r) {\n r.next.prev = r.prev, r.prev.next = r.next, r.prevZ && (r.prevZ.nextZ = r.nextZ), r.nextZ && (r.nextZ.prevZ = r.prevZ);\n}\nfunction oa(r, t, e) {\n this.i = r, this.x = t, this.y = e, this.prev = null, this.next = null, this.z = 0, this.prevZ = null, this.nextZ = null, this.steiner = !1;\n}\nVn.deviation = function(r, t, e, i) {\n var s = t && t.length, n = s ? t[0] * e : r.length, o = Math.abs(aa(r, 0, n, e));\n if (s)\n for (var a = 0, l = t.length; a < l; a++) {\n var h = t[a] * e, c = a < l - 1 ? t[a + 1] * e : r.length;\n o -= Math.abs(aa(r, h, c, e));\n }\n var u = 0;\n for (a = 0; a < i.length; a += 3) {\n var d = i[a] * e, f = i[a + 1] * e, p = i[a + 2] * e;\n u += Math.abs(\n (r[d] - r[p]) * (r[f + 1] - r[d + 1]) - (r[d] - r[f]) * (r[p + 1] - r[d + 1])\n );\n }\n return o === 0 && u === 0 ? 0 : Math.abs((u - o) / o);\n};\nfunction aa(r, t, e, i) {\n for (var s = 0, n = t, o = e - i; n < e; n += i)\n s += (r[o] - r[n]) * (r[n + 1] + r[o + 1]), o = n;\n return s;\n}\nVn.flatten = function(r) {\n for (var t = r[0][0].length, e = { vertices: [], holes: [], dimensions: t }, i = 0, s = 0; s < r.length; s++) {\n for (var n = 0; n < r[s].length; n++)\n for (var o = 0; o < t; o++)\n e.vertices.push(r[s][n][o]);\n s > 0 && (i += r[s - 1].length, e.holes.push(i));\n }\n return e;\n};\nvar cy = ul.exports;\nconst uy = /* @__PURE__ */ Uu(cy);\nvar vn = { exports: {} };\n/*! https://mths.be/punycode v1.4.1 by @mathias */\nvn.exports;\n(function(r, t) {\n (function(e) {\n var i = t && !t.nodeType && t, s = r && !r.nodeType && r, n = typeof Qs == \"object\" && Qs;\n (n.global === n || n.window === n || n.self === n) && (e = n);\n var o, a = 2147483647, l = 36, h = 1, c = 26, u = 38, d = 700, f = 72, p = 128, m = \"-\", g = /^xn--/, y = /[^\\x20-\\x7E]/, x = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, _ = {\n overflow: \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\"\n }, v = l - h, w = Math.floor, R = String.fromCharCode, C;\n function b(D) {\n throw new RangeError(_[D]);\n }\n function T(D, F) {\n for (var j = D.length, nt = []; j--; )\n nt[j] = F(D[j]);\n return nt;\n }\n function I(D, F) {\n var j = D.split(\"@\"), nt = \"\";\n j.length > 1 && (nt = j[0] + \"@\", D = j[1]), D = D.replace(x, \".\");\n var Q = D.split(\".\"), V = T(Q, F).join(\".\");\n return nt + V;\n }\n function O(D) {\n for (var F = [], j = 0, nt = D.length, Q, V; j < nt; )\n Q = D.charCodeAt(j++), Q >= 55296 && Q <= 56319 && j < nt ? (V = D.charCodeAt(j++), (V & 64512) == 56320 ? F.push(((Q & 1023) << 10) + (V & 1023) + 65536) : (F.push(Q), j--)) : F.push(Q);\n return F;\n }\n function M(D) {\n return T(D, function(F) {\n var j = \"\";\n return F > 65535 && (F -= 65536, j += R(F >>> 10 & 1023 | 55296), F = 56320 | F & 1023), j += R(F), j;\n }).join(\"\");\n }\n function E(D) {\n return D - 48 < 10 ? D - 22 : D - 65 < 26 ? D - 65 : D - 97 < 26 ? D - 97 : l;\n }\n function A(D, F) {\n return D + 22 + 75 * (D < 26) - ((F != 0) << 5);\n }\n function L(D, F, j) {\n var nt = 0;\n for (D = j ? w(D / d) : D >> 1, D += w(D / F); D > v * c >> 1; nt += l)\n D = w(D / v);\n return w(nt + (v + 1) * D / (D + u));\n }\n function k(D) {\n var F = [], j = D.length, nt, Q = 0, V = p, _t = f, Et, N, B, vt, dt, gt, yt, Te, Ae;\n for (Et = D.lastIndexOf(m), Et < 0 && (Et = 0), N = 0; N < Et; ++N)\n D.charCodeAt(N) >= 128 && b(\"not-basic\"), F.push(D.charCodeAt(N));\n for (B = Et > 0 ? Et + 1 : 0; B < j; ) {\n for (vt = Q, dt = 1, gt = l; B >= j && b(\"invalid-input\"), yt = E(D.charCodeAt(B++)), (yt >= l || yt > w((a - Q) / dt)) && b(\"overflow\"), Q += yt * dt, Te = gt <= _t ? h : gt >= _t + c ? c : gt - _t, !(yt < Te); gt += l)\n Ae = l - Te, dt > w(a / Ae) && b(\"overflow\"), dt *= Ae;\n nt = F.length + 1, _t = L(Q - vt, nt, vt == 0), w(Q / nt) > a - V && b(\"overflow\"), V += w(Q / nt), Q %= nt, F.splice(Q++, 0, V);\n }\n return M(F);\n }\n function G(D) {\n var F, j, nt, Q, V, _t, Et, N, B, vt, dt, gt = [], yt, Te, Ae, Ni;\n for (D = O(D), yt = D.length, F = p, j = 0, V = f, _t = 0; _t < yt; ++_t)\n dt = D[_t], dt < 128 && gt.push(R(dt));\n for (nt = Q = gt.length, Q && gt.push(m); nt < yt; ) {\n for (Et = a, _t = 0; _t < yt; ++_t)\n dt = D[_t], dt >= F && dt < Et && (Et = dt);\n for (Te = nt + 1, Et - F > w((a - j) / Te) && b(\"overflow\"), j += (Et - F) * Te, F = Et, _t = 0; _t < yt; ++_t)\n if (dt = D[_t], dt < F && ++j > a && b(\"overflow\"), dt == F) {\n for (N = j, B = l; vt = B <= V ? h : B >= V + c ? c : B - V, !(N < vt); B += l)\n Ni = N - vt, Ae = l - vt, gt.push(\n R(A(vt + Ni % Ae, 0))\n ), N = w(Ni / Ae);\n gt.push(R(A(N, 0))), V = L(j, Te, nt == Q), j = 0, ++nt;\n }\n ++j, ++F;\n }\n return gt.join(\"\");\n }\n function $(D) {\n return I(D, function(F) {\n return g.test(F) ? k(F.slice(4).toLowerCase()) : F;\n });\n }\n function X(D) {\n return I(D, function(F) {\n return y.test(F) ? \"xn--\" + G(F) : F;\n });\n }\n if (o = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n version: \"1.4.1\",\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n ucs2: {\n decode: O,\n encode: M\n },\n decode: k,\n encode: G,\n toASCII: X,\n toUnicode: $\n }, i && s)\n if (r.exports == i)\n s.exports = o;\n else\n for (C in o)\n o.hasOwnProperty(C) && (i[C] = o[C]);\n else\n e.punycode = o;\n })(Qs);\n})(vn, vn.exports);\nvar dy = vn.exports, fy = Error, py = EvalError, my = RangeError, gy = ReferenceError, Xu = SyntaxError, gs = TypeError, yy = URIError, _y = function() {\n if (typeof Symbol != \"function\" || typeof Object.getOwnPropertySymbols != \"function\")\n return !1;\n if (typeof Symbol.iterator == \"symbol\")\n return !0;\n var t = {}, e = Symbol(\"test\"), i = Object(e);\n if (typeof e == \"string\" || Object.prototype.toString.call(e) !== \"[object Symbol]\" || Object.prototype.toString.call(i) !== \"[object Symbol]\")\n return !1;\n var s = 42;\n t[e] = s;\n for (e in t)\n return !1;\n if (typeof Object.keys == \"function\" && Object.keys(t).length !== 0 || typeof Object.getOwnPropertyNames == \"function\" && Object.getOwnPropertyNames(t).length !== 0)\n return !1;\n var n = Object.getOwnPropertySymbols(t);\n if (n.length !== 1 || n[0] !== e || !Object.prototype.propertyIsEnumerable.call(t, e))\n return !1;\n if (typeof Object.getOwnPropertyDescriptor == \"function\") {\n var o = Object.getOwnPropertyDescriptor(t, e);\n if (o.value !== s || o.enumerable !== !0)\n return !1;\n }\n return !0;\n}, xh = typeof Symbol < \"u\" && Symbol, vy = _y, xy = function() {\n return typeof xh != \"function\" || typeof Symbol != \"function\" || typeof xh(\"foo\") != \"symbol\" || typeof Symbol(\"bar\") != \"symbol\" ? !1 : vy();\n}, fo = {\n __proto__: null,\n foo: {}\n}, by = Object, wy = function() {\n return { __proto__: fo }.foo === fo.foo && !(fo instanceof by);\n}, Ey = \"Function.prototype.bind called on incompatible \", Ty = Object.prototype.toString, Ay = Math.max, Sy = \"[object Function]\", bh = function(t, e) {\n for (var i = [], s = 0; s < t.length; s += 1)\n i[s] = t[s];\n for (var n = 0; n < e.length; n += 1)\n i[n + t.length] = e[n];\n return i;\n}, Cy = function(t, e) {\n for (var i = [], s = e || 0, n = 0; s < t.length; s += 1, n += 1)\n i[n] = t[s];\n return i;\n}, Iy = function(r, t) {\n for (var e = \"\", i = 0; i < r.length; i += 1)\n e += r[i], i + 1 < r.length && (e += t);\n return e;\n}, Py = function(t) {\n var e = this;\n if (typeof e != \"function\" || Ty.apply(e) !== Sy)\n throw new TypeError(Ey + e);\n for (var i = Cy(arguments, 1), s, n = function() {\n if (this instanceof s) {\n var c = e.apply(\n this,\n bh(i, arguments)\n );\n return Object(c) === c ? c : this;\n }\n return e.apply(\n t,\n bh(i, arguments)\n );\n }, o = Ay(0, e.length - i.length), a = [], l = 0; l < o; l++)\n a[l] = \"$\" + l;\n if (s = Function(\"binder\", \"return function (\" + Iy(a, \",\") + \"){ return binder.apply(this,arguments); }\")(n), e.prototype) {\n var h = function() {\n };\n h.prototype = e.prototype, s.prototype = new h(), h.prototype = null;\n }\n return s;\n}, Ry = Py, dl = Function.prototype.bind || Ry, My = Function.prototype.call, By = Object.prototype.hasOwnProperty, Dy = dl, Oy = Dy.call(My, By), lt, Fy = fy, Ly = py, Ny = my, Uy = gy, Ci = Xu, _i = gs, ky = yy, Vu = Function, po = function(r) {\n try {\n return Vu('\"use strict\"; return (' + r + \").constructor;\")();\n } catch {\n }\n}, Ur = Object.getOwnPropertyDescriptor;\nif (Ur)\n try {\n Ur({}, \"\");\n } catch {\n Ur = null;\n }\nvar mo = function() {\n throw new _i();\n}, Gy = Ur ? function() {\n try {\n return arguments.callee, mo;\n } catch {\n try {\n return Ur(arguments, \"callee\").get;\n } catch {\n return mo;\n }\n }\n}() : mo, Qr = xy(), $y = wy(), Lt = Object.getPrototypeOf || ($y ? function(r) {\n return r.__proto__;\n} : null), oi = {}, Hy = typeof Uint8Array > \"u\" || !Lt ? lt : Lt(Uint8Array), kr = {\n __proto__: null,\n \"%AggregateError%\": typeof AggregateError > \"u\" ? lt : AggregateError,\n \"%Array%\": Array,\n \"%ArrayBuffer%\": typeof ArrayBuffer > \"u\" ? lt : ArrayBuffer,\n \"%ArrayIteratorPrototype%\": Qr && Lt ? Lt([][Symbol.iterator]()) : lt,\n \"%AsyncFromSyncIteratorPrototype%\": lt,\n \"%AsyncFunction%\": oi,\n \"%AsyncGenerator%\": oi,\n \"%AsyncGeneratorFunction%\": oi,\n \"%AsyncIteratorPrototype%\": oi,\n \"%Atomics%\": typeof Atomics > \"u\" ? lt : Atomics,\n \"%BigInt%\": typeof BigInt > \"u\" ? lt : BigInt,\n \"%BigInt64Array%\": typeof BigInt64Array > \"u\" ? lt : BigInt64Array,\n \"%BigUint64Array%\": typeof BigUint64Array > \"u\" ? lt : BigUint64Array,\n \"%Boolean%\": Boolean,\n \"%DataView%\": typeof DataView > \"u\" ? lt : DataView,\n \"%Date%\": Date,\n \"%decodeURI%\": decodeURI,\n \"%decodeURIComponent%\": decodeURIComponent,\n \"%encodeURI%\": encodeURI,\n \"%encodeURIComponent%\": encodeURIComponent,\n \"%Error%\": Fy,\n \"%eval%\": eval,\n // eslint-disable-line no-eval\n \"%EvalError%\": Ly,\n \"%Float32Array%\": typeof Float32Array > \"u\" ? lt : Float32Array,\n \"%Float64Array%\": typeof Float64Array > \"u\" ? lt : Float64Array,\n \"%FinalizationRegistry%\": typeof FinalizationRegistry > \"u\" ? lt : FinalizationRegistry,\n \"%Function%\": Vu,\n \"%GeneratorFunction%\": oi,\n \"%Int8Array%\": typeof Int8Array > \"u\" ? lt : Int8Array,\n \"%Int16Array%\": typeof Int16Array > \"u\" ? lt : Int16Array,\n \"%Int32Array%\": typeof Int32Array > \"u\" ? lt : Int32Array,\n \"%isFinite%\": isFinite,\n \"%isNaN%\": isNaN,\n \"%IteratorPrototype%\": Qr && Lt ? Lt(Lt([][Symbol.iterator]())) : lt,\n \"%JSON%\": typeof JSON == \"object\" ? JSON : lt,\n \"%Map%\": typeof Map > \"u\" ? lt : Map,\n \"%MapIteratorPrototype%\": typeof Map > \"u\" || !Qr || !Lt ? lt : Lt((/* @__PURE__ */ new Map())[Symbol.iterator]()),\n \"%Math%\": Math,\n \"%Number%\": Number,\n \"%Object%\": Object,\n \"%parseFloat%\": parseFloat,\n \"%parseInt%\": parseInt,\n \"%Promise%\": typeof Promise > \"u\" ? lt : Promise,\n \"%Proxy%\": typeof Proxy > \"u\" ? lt : Proxy,\n \"%RangeError%\": Ny,\n \"%ReferenceError%\": Uy,\n \"%Reflect%\": typeof Reflect > \"u\" ? lt : Reflect,\n \"%RegExp%\": RegExp,\n \"%Set%\": typeof Set > \"u\" ? lt : Set,\n \"%SetIteratorPrototype%\": typeof Set > \"u\" || !Qr || !Lt ? lt : Lt((/* @__PURE__ */ new Set())[Symbol.iterator]()),\n \"%SharedArrayBuffer%\": typeof SharedArrayBuffer > \"u\" ? lt : SharedArrayBuffer,\n \"%String%\": String,\n \"%StringIteratorPrototype%\": Qr && Lt ? Lt(\"\"[Symbol.iterator]()) : lt,\n \"%Symbol%\": Qr ? Symbol : lt,\n \"%SyntaxError%\": Ci,\n \"%ThrowTypeError%\": Gy,\n \"%TypedArray%\": Hy,\n \"%TypeError%\": _i,\n \"%Uint8Array%\": typeof Uint8Array > \"u\" ? lt : Uint8Array,\n \"%Uint8ClampedArray%\": typeof Uint8ClampedArray > \"u\" ? lt : Uint8ClampedArray,\n \"%Uint16Array%\": typeof Uint16Array > \"u\" ? lt : Uint16Array,\n \"%Uint32Array%\": typeof Uint32Array > \"u\" ? lt : Uint32Array,\n \"%URIError%\": ky,\n \"%WeakMap%\": typeof WeakMap > \"u\" ? lt : WeakMap,\n \"%WeakRef%\": typeof WeakRef > \"u\" ? lt : WeakRef,\n \"%WeakSet%\": typeof WeakSet > \"u\" ? lt : WeakSet\n};\nif (Lt)\n try {\n null.error;\n } catch (r) {\n var Xy = Lt(Lt(r));\n kr[\"%Error.prototype%\"] = Xy;\n }\nvar Vy = function r(t) {\n var e;\n if (t === \"%AsyncFunction%\")\n e = po(\"async function () {}\");\n else if (t === \"%GeneratorFunction%\")\n e = po(\"function* () {}\");\n else if (t === \"%AsyncGeneratorFunction%\")\n e = po(\"async function* () {}\");\n else if (t === \"%AsyncGenerator%\") {\n var i = r(\"%AsyncGeneratorFunction%\");\n i && (e = i.prototype);\n } else if (t === \"%AsyncIteratorPrototype%\") {\n var s = r(\"%AsyncGenerator%\");\n s && Lt && (e = Lt(s.prototype));\n }\n return kr[t] = e, e;\n}, wh = {\n __proto__: null,\n \"%ArrayBufferPrototype%\": [\"ArrayBuffer\", \"prototype\"],\n \"%ArrayPrototype%\": [\"Array\", \"prototype\"],\n \"%ArrayProto_entries%\": [\"Array\", \"prototype\", \"entries\"],\n \"%ArrayProto_forEach%\": [\"Array\", \"prototype\", \"forEach\"],\n \"%ArrayProto_keys%\": [\"Array\", \"prototype\", \"keys\"],\n \"%ArrayProto_values%\": [\"Array\", \"prototype\", \"values\"],\n \"%AsyncFunctionPrototype%\": [\"AsyncFunction\", \"prototype\"],\n \"%AsyncGenerator%\": [\"AsyncGeneratorFunction\", \"prototype\"],\n \"%AsyncGeneratorPrototype%\": [\"AsyncGeneratorFunction\", \"prototype\", \"prototype\"],\n \"%BooleanPrototype%\": [\"Boolean\", \"prototype\"],\n \"%DataViewPrototype%\": [\"DataView\", \"prototype\"],\n \"%DatePrototype%\": [\"Date\", \"prototype\"],\n \"%ErrorPrototype%\": [\"Error\", \"prototype\"],\n \"%EvalErrorPrototype%\": [\"EvalError\", \"prototype\"],\n \"%Float32ArrayPrototype%\": [\"Float32Array\", \"prototype\"],\n \"%Float64ArrayPrototype%\": [\"Float64Array\", \"prototype\"],\n \"%FunctionPrototype%\": [\"Function\", \"prototype\"],\n \"%Generator%\": [\"GeneratorFunction\", \"prototype\"],\n \"%GeneratorPrototype%\": [\"GeneratorFunction\", \"prototype\", \"prototype\"],\n \"%Int8ArrayPrototype%\": [\"Int8Array\", \"prototype\"],\n \"%Int16ArrayPrototype%\": [\"Int16Array\", \"prototype\"],\n \"%Int32ArrayPrototype%\": [\"Int32Array\", \"prototype\"],\n \"%JSONParse%\": [\"JSON\", \"parse\"],\n \"%JSONStringify%\": [\"JSON\", \"stringify\"],\n \"%MapPrototype%\": [\"Map\", \"prototype\"],\n \"%NumberPrototype%\": [\"Number\", \"prototype\"],\n \"%ObjectPrototype%\": [\"Object\", \"prototype\"],\n \"%ObjProto_toString%\": [\"Object\", \"prototype\", \"toString\"],\n \"%ObjProto_valueOf%\": [\"Object\", \"prototype\", \"valueOf\"],\n \"%PromisePrototype%\": [\"Promise\", \"prototype\"],\n \"%PromiseProto_then%\": [\"Promise\", \"prototype\", \"then\"],\n \"%Promise_all%\": [\"Promise\", \"all\"],\n \"%Promise_reject%\": [\"Promise\", \"reject\"],\n \"%Promise_resolve%\": [\"Promise\", \"resolve\"],\n \"%RangeErrorPrototype%\": [\"RangeError\", \"prototype\"],\n \"%ReferenceErrorPrototype%\": [\"ReferenceError\", \"prototype\"],\n \"%RegExpPrototype%\": [\"RegExp\", \"prototype\"],\n \"%SetPrototype%\": [\"Set\", \"prototype\"],\n \"%SharedArrayBufferPrototype%\": [\"SharedArrayBuffer\", \"prototype\"],\n \"%StringPrototype%\": [\"String\", \"prototype\"],\n \"%SymbolPrototype%\": [\"Symbol\", \"prototype\"],\n \"%SyntaxErrorPrototype%\": [\"SyntaxError\", \"prototype\"],\n \"%TypedArrayPrototype%\": [\"TypedArray\", \"prototype\"],\n \"%TypeErrorPrototype%\": [\"TypeError\", \"prototype\"],\n \"%Uint8ArrayPrototype%\": [\"Uint8Array\", \"prototype\"],\n \"%Uint8ClampedArrayPrototype%\": [\"Uint8ClampedArray\", \"prototype\"],\n \"%Uint16ArrayPrototype%\": [\"Uint16Array\", \"prototype\"],\n \"%Uint32ArrayPrototype%\": [\"Uint32Array\", \"prototype\"],\n \"%URIErrorPrototype%\": [\"URIError\", \"prototype\"],\n \"%WeakMapPrototype%\": [\"WeakMap\", \"prototype\"],\n \"%WeakSetPrototype%\": [\"WeakSet\", \"prototype\"]\n}, ys = dl, xn = Oy, zy = ys.call(Function.call, Array.prototype.concat), Wy = ys.call(Function.apply, Array.prototype.splice), Eh = ys.call(Function.call, String.prototype.replace), bn = ys.call(Function.call, String.prototype.slice), jy = ys.call(Function.call, RegExp.prototype.exec), Yy = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g, qy = /\\\\(\\\\)?/g, Ky = function(t) {\n var e = bn(t, 0, 1), i = bn(t, -1);\n if (e === \"%\" && i !== \"%\")\n throw new Ci(\"invalid intrinsic syntax, expected closing `%`\");\n if (i === \"%\" && e !== \"%\")\n throw new Ci(\"invalid intrinsic syntax, expected opening `%`\");\n var s = [];\n return Eh(t, Yy, function(n, o, a, l) {\n s[s.length] = a ? Eh(l, qy, \"$1\") : o || n;\n }), s;\n}, Zy = function(t, e) {\n var i = t, s;\n if (xn(wh, i) && (s = wh[i], i = \"%\" + s[0] + \"%\"), xn(kr, i)) {\n var n = kr[i];\n if (n === oi && (n = Vy(i)), typeof n > \"u\" && !e)\n throw new _i(\"intrinsic \" + t + \" exists, but is not available. Please file an issue!\");\n return {\n alias: s,\n name: i,\n value: n\n };\n }\n throw new Ci(\"intrinsic \" + t + \" does not exist!\");\n}, Di = function(t, e) {\n if (typeof t != \"string\" || t.length === 0)\n throw new _i(\"intrinsic name must be a non-empty string\");\n if (arguments.length > 1 && typeof e != \"boolean\")\n throw new _i('\"allowMissing\" argument must be a boolean');\n if (jy(/^%?[^%]*%?$/, t) === null)\n throw new Ci(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");\n var i = Ky(t), s = i.length > 0 ? i[0] : \"\", n = Zy(\"%\" + s + \"%\", e), o = n.name, a = n.value, l = !1, h = n.alias;\n h && (s = h[0], Wy(i, zy([0, 1], h)));\n for (var c = 1, u = !0; c < i.length; c += 1) {\n var d = i[c], f = bn(d, 0, 1), p = bn(d, -1);\n if ((f === '\"' || f === \"'\" || f === \"`\" || p === '\"' || p === \"'\" || p === \"`\") && f !== p)\n throw new Ci(\"property names with quotes must have matching quotes\");\n if ((d === \"constructor\" || !u) && (l = !0), s += \".\" + d, o = \"%\" + s + \"%\", xn(kr, o))\n a = kr[o];\n else if (a != null) {\n if (!(d in a)) {\n if (!e)\n throw new _i(\"base intrinsic for \" + t + \" exists, but the property is not available.\");\n return;\n }\n if (Ur && c + 1 >= i.length) {\n var m = Ur(a, d);\n u = !!m, u && \"get\" in m && !(\"originalValue\" in m.get) ? a = m.get : a = a[d];\n } else\n u = xn(a, d), a = a[d];\n u && !l && (kr[o] = a);\n }\n }\n return a;\n}, zu = { exports: {} }, go, Th;\nfunction fl() {\n if (Th)\n return go;\n Th = 1;\n var r = Di, t = r(\"%Object.defineProperty%\", !0) || !1;\n if (t)\n try {\n t({}, \"a\", { value: 1 });\n } catch {\n t = !1;\n }\n return go = t, go;\n}\nvar Jy = Di, tn = Jy(\"%Object.getOwnPropertyDescriptor%\", !0);\nif (tn)\n try {\n tn([], \"length\");\n } catch {\n tn = null;\n }\nvar Wu = tn, Ah = fl(), Qy = Xu, ti = gs, Sh = Wu, t0 = function(t, e, i) {\n if (!t || typeof t != \"object\" && typeof t != \"function\")\n throw new ti(\"`obj` must be an object or a function`\");\n if (typeof e != \"string\" && typeof e != \"symbol\")\n throw new ti(\"`property` must be a string or a symbol`\");\n if (arguments.length > 3 && typeof arguments[3] != \"boolean\" && arguments[3] !== null)\n throw new ti(\"`nonEnumerable`, if provided, must be a boolean or null\");\n if (arguments.length > 4 && typeof arguments[4] != \"boolean\" && arguments[4] !== null)\n throw new ti(\"`nonWritable`, if provided, must be a boolean or null\");\n if (arguments.length > 5 && typeof arguments[5] != \"boolean\" && arguments[5] !== null)\n throw new ti(\"`nonConfigurable`, if provided, must be a boolean or null\");\n if (arguments.length > 6 && typeof arguments[6] != \"boolean\")\n throw new ti(\"`loose`, if provided, must be a boolean\");\n var s = arguments.length > 3 ? arguments[3] : null, n = arguments.length > 4 ? arguments[4] : null, o = arguments.length > 5 ? arguments[5] : null, a = arguments.length > 6 ? arguments[6] : !1, l = !!Sh && Sh(t, e);\n if (Ah)\n Ah(t, e, {\n configurable: o === null && l ? l.configurable : !o,\n enumerable: s === null && l ? l.enumerable : !s,\n value: i,\n writable: n === null && l ? l.writable : !n\n });\n else if (a || !s && !n && !o)\n t[e] = i;\n else\n throw new Qy(\"This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.\");\n}, la = fl(), ju = function() {\n return !!la;\n};\nju.hasArrayLengthDefineBug = function() {\n if (!la)\n return null;\n try {\n return la([], \"length\", { value: 1 }).length !== 1;\n } catch {\n return !0;\n }\n};\nvar e0 = ju, r0 = Di, Ch = t0, i0 = e0(), Ih = Wu, Ph = gs, s0 = r0(\"%Math.floor%\"), n0 = function(t, e) {\n if (typeof t != \"function\")\n throw new Ph(\"`fn` is not a function\");\n if (typeof e != \"number\" || e < 0 || e > 4294967295 || s0(e) !== e)\n throw new Ph(\"`length` must be a positive 32-bit integer\");\n var i = arguments.length > 2 && !!arguments[2], s = !0, n = !0;\n if (\"length\" in t && Ih) {\n var o = Ih(t, \"length\");\n o && !o.configurable && (s = !1), o && !o.writable && (n = !1);\n }\n return (s || n || !i) && (i0 ? Ch(\n /** @type {Parameters<define>[0]} */\n t,\n \"length\",\n e,\n !0,\n !0\n ) : Ch(\n /** @type {Parameters<define>[0]} */\n t,\n \"length\",\n e\n )), t;\n};\n(function(r) {\n var t = dl, e = Di, i = n0, s = gs, n = e(\"%Function.prototype.apply%\"), o = e(\"%Function.prototype.call%\"), a = e(\"%Reflect.apply%\", !0) || t.call(o, n), l = fl(), h = e(\"%Math.max%\");\n r.exports = function(d) {\n if (typeof d != \"function\")\n throw new s(\"a function is required\");\n var f = a(t, o, arguments);\n return i(\n f,\n 1 + h(0, d.length - (arguments.length - 1)),\n !0\n );\n };\n var c = function() {\n return a(t, n, arguments);\n };\n l ? l(r.exports, \"apply\", { value: c }) : r.exports.apply = c;\n})(zu);\nvar o0 = zu.exports, Yu = Di, qu = o0, a0 = qu(Yu(\"String.prototype.indexOf\")), l0 = function(t, e) {\n var i = Yu(t, !!e);\n return typeof i == \"function\" && a0(t, \".prototype.\") > -1 ? qu(i) : i;\n};\nconst h0 = {}, c0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: h0\n}, Symbol.toStringTag, { value: \"Module\" })), u0 = /* @__PURE__ */ jg(c0);\nvar pl = typeof Map == \"function\" && Map.prototype, yo = Object.getOwnPropertyDescriptor && pl ? Object.getOwnPropertyDescriptor(Map.prototype, \"size\") : null, wn = pl && yo && typeof yo.get == \"function\" ? yo.get : null, Rh = pl && Map.prototype.forEach, ml = typeof Set == \"function\" && Set.prototype, _o = Object.getOwnPropertyDescriptor && ml ? Object.getOwnPropertyDescriptor(Set.prototype, \"size\") : null, En = ml && _o && typeof _o.get == \"function\" ? _o.get : null, Mh = ml && Set.prototype.forEach, d0 = typeof WeakMap == \"function\" && WeakMap.prototype, is = d0 ? WeakMap.prototype.has : null, f0 = typeof WeakSet == \"function\" && WeakSet.prototype, ss = f0 ? WeakSet.prototype.has : null, p0 = typeof WeakRef == \"function\" && WeakRef.prototype, Bh = p0 ? WeakRef.prototype.deref : null, m0 = Boolean.prototype.valueOf, g0 = Object.prototype.toString, y0 = Function.prototype.toString, _0 = String.prototype.match, gl = String.prototype.slice, mr = String.prototype.replace, v0 = String.prototype.toUpperCase, Dh = String.prototype.toLowerCase, Ku = RegExp.prototype.test, Oh = Array.prototype.concat, Oe = Array.prototype.join, x0 = Array.prototype.slice, Fh = Math.floor, ha = typeof BigInt == \"function\" ? BigInt.prototype.valueOf : null, vo = Object.getOwnPropertySymbols, ca = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? Symbol.prototype.toString : null, Ii = typeof Symbol == \"function\" && typeof Symbol.iterator == \"object\", qt = typeof Symbol == \"function\" && Symbol.toStringTag && (typeof Symbol.toStringTag === Ii || !0) ? Symbol.toStringTag : null, Zu = Object.prototype.propertyIsEnumerable, Lh = (typeof Reflect == \"function\" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(r) {\n return r.__proto__;\n} : null);\nfunction Nh(r, t) {\n if (r === 1 / 0 || r === -1 / 0 || r !== r || r && r > -1e3 && r < 1e3 || Ku.call(/e/, t))\n return t;\n var e = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof r == \"number\") {\n var i = r < 0 ? -Fh(-r) : Fh(r);\n if (i !== r) {\n var s = String(i), n = gl.call(t, s.length + 1);\n return mr.call(s, e, \"$&_\") + \".\" + mr.call(mr.call(n, /([0-9]{3})/g, \"$&_\"), /_$/, \"\");\n }\n }\n return mr.call(t, e, \"$&_\");\n}\nvar ua = u0, Uh = ua.custom, kh = Qu(Uh) ? Uh : null, b0 = function r(t, e, i, s) {\n var n = e || {};\n if (cr(n, \"quoteStyle\") && n.quoteStyle !== \"single\" && n.quoteStyle !== \"double\")\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n if (cr(n, \"maxStringLength\") && (typeof n.maxStringLength == \"number\" ? n.maxStringLength < 0 && n.maxStringLength !== 1 / 0 : n.maxStringLength !== null))\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n var o = cr(n, \"customInspect\") ? n.customInspect : !0;\n if (typeof o != \"boolean\" && o !== \"symbol\")\n throw new TypeError(\"option \\\"customInspect\\\", if provided, must be `true`, `false`, or `'symbol'`\");\n if (cr(n, \"indent\") && n.indent !== null && n.indent !== \"\t\" && !(parseInt(n.indent, 10) === n.indent && n.indent > 0))\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n if (cr(n, \"numericSeparator\") && typeof n.numericSeparator != \"boolean\")\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n var a = n.numericSeparator;\n if (typeof t > \"u\")\n return \"undefined\";\n if (t === null)\n return \"null\";\n if (typeof t == \"boolean\")\n return t ? \"true\" : \"false\";\n if (typeof t == \"string\")\n return ed(t, n);\n if (typeof t == \"number\") {\n if (t === 0)\n return 1 / 0 / t > 0 ? \"0\" : \"-0\";\n var l = String(t);\n return a ? Nh(t, l) : l;\n }\n if (typeof t == \"bigint\") {\n var h = String(t) + \"n\";\n return a ? Nh(t, h) : h;\n }\n var c = typeof n.depth > \"u\" ? 5 : n.depth;\n if (typeof i > \"u\" && (i = 0), i >= c && c > 0 && typeof t == \"object\")\n return da(t) ? \"[Array]\" : \"[Object]\";\n var u = k0(n, i);\n if (typeof s > \"u\")\n s = [];\n else if (td(s, t) >= 0)\n return \"[Circular]\";\n function d(E, A, L) {\n if (A && (s = x0.call(s), s.push(A)), L) {\n var k = {\n depth: n.depth\n };\n return cr(n, \"quoteStyle\") && (k.quoteStyle = n.quoteStyle), r(E, k, i + 1, s);\n }\n return r(E, n, i + 1, s);\n }\n if (typeof t == \"function\" && !Gh(t)) {\n var f = R0(t), p = Is(t, d);\n return \"[Function\" + (f ? \": \" + f : \" (anonymous)\") + \"]\" + (p.length > 0 ? \" { \" + Oe.call(p, \", \") + \" }\" : \"\");\n }\n if (Qu(t)) {\n var m = Ii ? mr.call(String(t), /^(Symbol\\(.*\\))_[^)]*$/, \"$1\") : ca.call(t);\n return typeof t == \"object\" && !Ii ? ki(m) : m;\n }\n if (L0(t)) {\n for (var g = \"<\" + Dh.call(String(t.nodeName)), y = t.attributes || [], x = 0; x < y.length; x++)\n g += \" \" + y[x].name + \"=\" + Ju(w0(y[x].value), \"double\", n);\n return g += \">\", t.childNodes && t.childNodes.length && (g += \"...\"), g += \"</\" + Dh.call(String(t.nodeName)) + \">\", g;\n }\n if (da(t)) {\n if (t.length === 0)\n return \"[]\";\n var _ = Is(t, d);\n return u && !U0(_) ? \"[\" + fa(_, u) + \"]\" : \"[ \" + Oe.call(_, \", \") + \" ]\";\n }\n if (T0(t)) {\n var v = Is(t, d);\n return !(\"cause\" in Error.prototype) && \"cause\" in t && !Zu.call(t, \"cause\") ? \"{ [\" + String(t) + \"] \" + Oe.call(Oh.call(\"[cause]: \" + d(t.cause), v), \", \") + \" }\" : v.length === 0 ? \"[\" + String(t) + \"]\" : \"{ [\" + String(t) + \"] \" + Oe.call(v, \", \") + \" }\";\n }\n if (typeof t == \"object\" && o) {\n if (kh && typeof t[kh] == \"function\" && ua)\n return ua(t, { depth: c - i });\n if (o !== \"symbol\" && typeof t.inspect == \"function\")\n return t.inspect();\n }\n if (M0(t)) {\n var w = [];\n return Rh && Rh.call(t, function(E, A) {\n w.push(d(A, t, !0) + \" => \" + d(E, t));\n }), $h(\"Map\", wn.call(t), w, u);\n }\n if (O0(t)) {\n var R = [];\n return Mh && Mh.call(t, function(E) {\n R.push(d(E, t));\n }), $h(\"Set\", En.call(t), R, u);\n }\n if (B0(t))\n return xo(\"WeakMap\");\n if (F0(t))\n return xo(\"WeakSet\");\n if (D0(t))\n return xo(\"WeakRef\");\n if (S0(t))\n return ki(d(Number(t)));\n if (I0(t))\n return ki(d(ha.call(t)));\n if (C0(t))\n return ki(m0.call(t));\n if (A0(t))\n return ki(d(String(t)));\n if (typeof window < \"u\" && t === window)\n return \"{ [object Window] }\";\n if (t === Qs)\n return \"{ [object globalThis] }\";\n if (!E0(t) && !Gh(t)) {\n var C = Is(t, d), b = Lh ? Lh(t) === Object.prototype : t instanceof Object || t.constructor === Object, T = t instanceof Object ? \"\" : \"null prototype\", I = !b && qt && Object(t) === t && qt in t ? gl.call(wr(t), 8, -1) : T ? \"Object\" : \"\", O = b || typeof t.constructor != \"function\" ? \"\" : t.constructor.name ? t.constructor.name + \" \" : \"\", M = O + (I || T ? \"[\" + Oe.call(Oh.call([], I || [], T || []), \": \") + \"] \" : \"\");\n return C.length === 0 ? M + \"{}\" : u ? M + \"{\" + fa(C, u) + \"}\" : M + \"{ \" + Oe.call(C, \", \") + \" }\";\n }\n return String(t);\n};\nfunction Ju(r, t, e) {\n var i = (e.quoteStyle || t) === \"double\" ? '\"' : \"'\";\n return i + r + i;\n}\nfunction w0(r) {\n return mr.call(String(r), /\"/g, \""\");\n}\nfunction da(r) {\n return wr(r) === \"[object Array]\" && (!qt || !(typeof r == \"object\" && qt in r));\n}\nfunction E0(r) {\n return wr(r) === \"[object Date]\" && (!qt || !(typeof r == \"object\" && qt in r));\n}\nfunction Gh(r) {\n return wr(r) === \"[object RegExp]\" && (!qt || !(typeof r == \"object\" && qt in r));\n}\nfunction T0(r) {\n return wr(r) === \"[object Error]\" && (!qt || !(typeof r == \"object\" && qt in r));\n}\nfunction A0(r) {\n return wr(r) === \"[object String]\" && (!qt || !(typeof r == \"object\" && qt in r));\n}\nfunction S0(r) {\n return wr(r) === \"[object Number]\" && (!qt || !(typeof r == \"object\" && qt in r));\n}\nfunction C0(r) {\n return wr(r) === \"[object Boolean]\" && (!qt || !(typeof r == \"object\" && qt in r));\n}\nfunction Qu(r) {\n if (Ii)\n return r && typeof r == \"object\" && r instanceof Symbol;\n if (typeof r == \"symbol\")\n return !0;\n if (!r || typeof r != \"object\" || !ca)\n return !1;\n try {\n return ca.call(r), !0;\n } catch {\n }\n return !1;\n}\nfunction I0(r) {\n if (!r || typeof r != \"object\" || !ha)\n return !1;\n try {\n return ha.call(r), !0;\n } catch {\n }\n return !1;\n}\nvar P0 = Object.prototype.hasOwnProperty || function(r) {\n return r in this;\n};\nfunction cr(r, t) {\n return P0.call(r, t);\n}\nfunction wr(r) {\n return g0.call(r);\n}\nfunction R0(r) {\n if (r.name)\n return r.name;\n var t = _0.call(y0.call(r), /^function\\s*([\\w$]+)/);\n return t ? t[1] : null;\n}\nfunction td(r, t) {\n if (r.indexOf)\n return r.indexOf(t);\n for (var e = 0, i = r.length; e < i; e++)\n if (r[e] === t)\n return e;\n return -1;\n}\nfunction M0(r) {\n if (!wn || !r || typeof r != \"object\")\n return !1;\n try {\n wn.call(r);\n try {\n En.call(r);\n } catch {\n return !0;\n }\n return r instanceof Map;\n } catch {\n }\n return !1;\n}\nfunction B0(r) {\n if (!is || !r || typeof r != \"object\")\n return !1;\n try {\n is.call(r, is);\n try {\n ss.call(r, ss);\n } catch {\n return !0;\n }\n return r instanceof WeakMap;\n } catch {\n }\n return !1;\n}\nfunction D0(r) {\n if (!Bh || !r || typeof r != \"object\")\n return !1;\n try {\n return Bh.call(r), !0;\n } catch {\n }\n return !1;\n}\nfunction O0(r) {\n if (!En || !r || typeof r != \"object\")\n return !1;\n try {\n En.call(r);\n try {\n wn.call(r);\n } catch {\n return !0;\n }\n return r instanceof Set;\n } catch {\n }\n return !1;\n}\nfunction F0(r) {\n if (!ss || !r || typeof r != \"object\")\n return !1;\n try {\n ss.call(r, ss);\n try {\n is.call(r, is);\n } catch {\n return !0;\n }\n return r instanceof WeakSet;\n } catch {\n }\n return !1;\n}\nfunction L0(r) {\n return !r || typeof r != \"object\" ? !1 : typeof HTMLElement < \"u\" && r instanceof HTMLElement ? !0 : typeof r.nodeName == \"string\" && typeof r.getAttribute == \"function\";\n}\nfunction ed(r, t) {\n if (r.length > t.maxStringLength) {\n var e = r.length - t.maxStringLength, i = \"... \" + e + \" more character\" + (e > 1 ? \"s\" : \"\");\n return ed(gl.call(r, 0, t.maxStringLength), t) + i;\n }\n var s = mr.call(mr.call(r, /(['\\\\])/g, \"\\\\$1\"), /[\\x00-\\x1f]/g, N0);\n return Ju(s, \"single\", t);\n}\nfunction N0(r) {\n var t = r.charCodeAt(0), e = {\n 8: \"b\",\n 9: \"t\",\n 10: \"n\",\n 12: \"f\",\n 13: \"r\"\n }[t];\n return e ? \"\\\\\" + e : \"\\\\x\" + (t < 16 ? \"0\" : \"\") + v0.call(t.toString(16));\n}\nfunction ki(r) {\n return \"Object(\" + r + \")\";\n}\nfunction xo(r) {\n return r + \" { ? }\";\n}\nfunction $h(r, t, e, i) {\n var s = i ? fa(e, i) : Oe.call(e, \", \");\n return r + \" (\" + t + \") {\" + s + \"}\";\n}\nfunction U0(r) {\n for (var t = 0; t < r.length; t++)\n if (td(r[t], `\n`) >= 0)\n return !1;\n return !0;\n}\nfunction k0(r, t) {\n var e;\n if (r.indent === \"\t\")\n e = \"\t\";\n else if (typeof r.indent == \"number\" && r.indent > 0)\n e = Oe.call(Array(r.indent + 1), \" \");\n else\n return null;\n return {\n base: e,\n prev: Oe.call(Array(t + 1), e)\n };\n}\nfunction fa(r, t) {\n if (r.length === 0)\n return \"\";\n var e = `\n` + t.prev + t.base;\n return e + Oe.call(r, \",\" + e) + `\n` + t.prev;\n}\nfunction Is(r, t) {\n var e = da(r), i = [];\n if (e) {\n i.length = r.length;\n for (var s = 0; s < r.length; s++)\n i[s] = cr(r, s) ? t(r[s], r) : \"\";\n }\n var n = typeof vo == \"function\" ? vo(r) : [], o;\n if (Ii) {\n o = {};\n for (var a = 0; a < n.length; a++)\n o[\"$\" + n[a]] = n[a];\n }\n for (var l in r)\n cr(r, l) && (e && String(Number(l)) === l && l < r.length || Ii && o[\"$\" + l] instanceof Symbol || (Ku.call(/[^\\w$]/, l) ? i.push(t(l, r) + \": \" + t(r[l], r)) : i.push(l + \": \" + t(r[l], r))));\n if (typeof vo == \"function\")\n for (var h = 0; h < n.length; h++)\n Zu.call(r, n[h]) && i.push(\"[\" + t(n[h]) + \"]: \" + t(r[n[h]], r));\n return i;\n}\nvar rd = Di, Oi = l0, G0 = b0, $0 = gs, Ps = rd(\"%WeakMap%\", !0), Rs = rd(\"%Map%\", !0), H0 = Oi(\"WeakMap.prototype.get\", !0), X0 = Oi(\"WeakMap.prototype.set\", !0), V0 = Oi(\"WeakMap.prototype.has\", !0), z0 = Oi(\"Map.prototype.get\", !0), W0 = Oi(\"Map.prototype.set\", !0), j0 = Oi(\"Map.prototype.has\", !0), yl = function(r, t) {\n for (var e = r, i; (i = e.next) !== null; e = i)\n if (i.key === t)\n return e.next = i.next, i.next = /** @type {NonNullable<typeof list.next>} */\n r.next, r.next = i, i;\n}, Y0 = function(r, t) {\n var e = yl(r, t);\n return e && e.value;\n}, q0 = function(r, t, e) {\n var i = yl(r, t);\n i ? i.value = e : r.next = /** @type {import('.').ListNode<typeof value>} */\n {\n // eslint-disable-line no-param-reassign, no-extra-parens\n key: t,\n next: r.next,\n value: e\n };\n}, K0 = function(r, t) {\n return !!yl(r, t);\n}, Z0 = function() {\n var t, e, i, s = {\n assert: function(n) {\n if (!s.has(n))\n throw new $0(\"Side channel does not contain \" + G0(n));\n },\n get: function(n) {\n if (Ps && n && (typeof n == \"object\" || typeof n == \"function\")) {\n if (t)\n return H0(t, n);\n } else if (Rs) {\n if (e)\n return z0(e, n);\n } else if (i)\n return Y0(i, n);\n },\n has: function(n) {\n if (Ps && n && (typeof n == \"object\" || typeof n == \"function\")) {\n if (t)\n return V0(t, n);\n } else if (Rs) {\n if (e)\n return j0(e, n);\n } else if (i)\n return K0(i, n);\n return !1;\n },\n set: function(n, o) {\n Ps && n && (typeof n == \"object\" || typeof n == \"function\") ? (t || (t = new Ps()), X0(t, n, o)) : Rs ? (e || (e = new Rs()), W0(e, n, o)) : (i || (i = { key: {}, next: null }), q0(i, n, o));\n }\n };\n return s;\n}, J0 = String.prototype.replace, Q0 = /%20/g, bo = {\n RFC1738: \"RFC1738\",\n RFC3986: \"RFC3986\"\n}, _l = {\n default: bo.RFC3986,\n formatters: {\n RFC1738: function(r) {\n return J0.call(r, Q0, \"+\");\n },\n RFC3986: function(r) {\n return String(r);\n }\n },\n RFC1738: bo.RFC1738,\n RFC3986: bo.RFC3986\n}, t_ = _l, wo = Object.prototype.hasOwnProperty, Br = Array.isArray, Se = function() {\n for (var r = [], t = 0; t < 256; ++t)\n r.push(\"%\" + ((t < 16 ? \"0\" : \"\") + t.toString(16)).toUpperCase());\n return r;\n}(), e_ = function(t) {\n for (; t.length > 1; ) {\n var e = t.pop(), i = e.obj[e.prop];\n if (Br(i)) {\n for (var s = [], n = 0; n < i.length; ++n)\n typeof i[n] < \"u\" && s.push(i[n]);\n e.obj[e.prop] = s;\n }\n }\n}, id = function(t, e) {\n for (var i = e && e.plainObjects ? /* @__PURE__ */ Object.create(null) : {}, s = 0; s < t.length; ++s)\n typeof t[s] < \"u\" && (i[s] = t[s]);\n return i;\n}, r_ = function r(t, e, i) {\n if (!e)\n return t;\n if (typeof e != \"object\") {\n if (Br(t))\n t.push(e);\n else if (t && typeof t == \"object\")\n (i && (i.plainObjects || i.allowPrototypes) || !wo.call(Object.prototype, e)) && (t[e] = !0);\n else\n return [t, e];\n return t;\n }\n if (!t || typeof t != \"object\")\n return [t].concat(e);\n var s = t;\n return Br(t) && !Br(e) && (s = id(t, i)), Br(t) && Br(e) ? (e.forEach(function(n, o) {\n if (wo.call(t, o)) {\n var a = t[o];\n a && typeof a == \"object\" && n && typeof n == \"object\" ? t[o] = r(a, n, i) : t.push(n);\n } else\n t[o] = n;\n }), t) : Object.keys(e).reduce(function(n, o) {\n var a = e[o];\n return wo.call(n, o) ? n[o] = r(n[o], a, i) : n[o] = a, n;\n }, s);\n}, i_ = function(t, e) {\n return Object.keys(e).reduce(function(i, s) {\n return i[s] = e[s], i;\n }, t);\n}, s_ = function(r, t, e) {\n var i = r.replace(/\\+/g, \" \");\n if (e === \"iso-8859-1\")\n return i.replace(/%[0-9a-f]{2}/gi, unescape);\n try {\n return decodeURIComponent(i);\n } catch {\n return i;\n }\n}, n_ = function(t, e, i, s, n) {\n if (t.length === 0)\n return t;\n var o = t;\n if (typeof t == \"symbol\" ? o = Symbol.prototype.toString.call(t) : typeof t != \"string\" && (o = String(t)), i === \"iso-8859-1\")\n return escape(o).replace(/%u[0-9a-f]{4}/gi, function(c) {\n return \"%26%23\" + parseInt(c.slice(2), 16) + \"%3B\";\n });\n for (var a = \"\", l = 0; l < o.length; ++l) {\n var h = o.charCodeAt(l);\n if (h === 45 || h === 46 || h === 95 || h === 126 || h >= 48 && h <= 57 || h >= 65 && h <= 90 || h >= 97 && h <= 122 || n === t_.RFC1738 && (h === 40 || h === 41)) {\n a += o.charAt(l);\n continue;\n }\n if (h < 128) {\n a = a + Se[h];\n continue;\n }\n if (h < 2048) {\n a = a + (Se[192 | h >> 6] + Se[128 | h & 63]);\n continue;\n }\n if (h < 55296 || h >= 57344) {\n a = a + (Se[224 | h >> 12] + Se[128 | h >> 6 & 63] + Se[128 | h & 63]);\n continue;\n }\n l += 1, h = 65536 + ((h & 1023) << 10 | o.charCodeAt(l) & 1023), a += Se[240 | h >> 18] + Se[128 | h >> 12 & 63] + Se[128 | h >> 6 & 63] + Se[128 | h & 63];\n }\n return a;\n}, o_ = function(t) {\n for (var e = [{ obj: { o: t }, prop: \"o\" }], i = [], s = 0; s < e.length; ++s)\n for (var n = e[s], o = n.obj[n.prop], a = Object.keys(o), l = 0; l < a.length; ++l) {\n var h = a[l], c = o[h];\n typeof c == \"object\" && c !== null && i.indexOf(c) === -1 && (e.push({ obj: o, prop: h }), i.push(c));\n }\n return e_(e), t;\n}, a_ = function(t) {\n return Object.prototype.toString.call(t) === \"[object RegExp]\";\n}, l_ = function(t) {\n return !t || typeof t != \"object\" ? !1 : !!(t.constructor && t.constructor.isBuffer && t.constructor.isBuffer(t));\n}, h_ = function(t, e) {\n return [].concat(t, e);\n}, c_ = function(t, e) {\n if (Br(t)) {\n for (var i = [], s = 0; s < t.length; s += 1)\n i.push(e(t[s]));\n return i;\n }\n return e(t);\n}, sd = {\n arrayToObject: id,\n assign: i_,\n combine: h_,\n compact: o_,\n decode: s_,\n encode: n_,\n isBuffer: l_,\n isRegExp: a_,\n maybeMap: c_,\n merge: r_\n}, nd = Z0, en = sd, ns = _l, u_ = Object.prototype.hasOwnProperty, od = {\n brackets: function(t) {\n return t + \"[]\";\n },\n comma: \"comma\",\n indices: function(t, e) {\n return t + \"[\" + e + \"]\";\n },\n repeat: function(t) {\n return t;\n }\n}, Be = Array.isArray, d_ = Array.prototype.push, ad = function(r, t) {\n d_.apply(r, Be(t) ? t : [t]);\n}, f_ = Date.prototype.toISOString, Hh = ns.default, Dt = {\n addQueryPrefix: !1,\n allowDots: !1,\n allowEmptyArrays: !1,\n arrayFormat: \"indices\",\n charset: \"utf-8\",\n charsetSentinel: !1,\n delimiter: \"&\",\n encode: !0,\n encodeDotInKeys: !1,\n encoder: en.encode,\n encodeValuesOnly: !1,\n format: Hh,\n formatter: ns.formatters[Hh],\n // deprecated\n indices: !1,\n serializeDate: function(t) {\n return f_.call(t);\n },\n skipNulls: !1,\n strictNullHandling: !1\n}, p_ = function(t) {\n return typeof t == \"string\" || typeof t == \"number\" || typeof t == \"boolean\" || typeof t == \"symbol\" || typeof t == \"bigint\";\n}, Eo = {}, m_ = function r(t, e, i, s, n, o, a, l, h, c, u, d, f, p, m, g, y, x) {\n for (var _ = t, v = x, w = 0, R = !1; (v = v.get(Eo)) !== void 0 && !R; ) {\n var C = v.get(t);\n if (w += 1, typeof C < \"u\") {\n if (C === w)\n throw new RangeError(\"Cyclic object value\");\n R = !0;\n }\n typeof v.get(Eo) > \"u\" && (w = 0);\n }\n if (typeof c == \"function\" ? _ = c(e, _) : _ instanceof Date ? _ = f(_) : i === \"comma\" && Be(_) && (_ = en.maybeMap(_, function(D) {\n return D instanceof Date ? f(D) : D;\n })), _ === null) {\n if (o)\n return h && !g ? h(e, Dt.encoder, y, \"key\", p) : e;\n _ = \"\";\n }\n if (p_(_) || en.isBuffer(_)) {\n if (h) {\n var b = g ? e : h(e, Dt.encoder, y, \"key\", p);\n return [m(b) + \"=\" + m(h(_, Dt.encoder, y, \"value\", p))];\n }\n return [m(e) + \"=\" + m(String(_))];\n }\n var T = [];\n if (typeof _ > \"u\")\n return T;\n var I;\n if (i === \"comma\" && Be(_))\n g && h && (_ = en.maybeMap(_, h)), I = [{ value: _.length > 0 ? _.join(\",\") || null : void 0 }];\n else if (Be(c))\n I = c;\n else {\n var O = Object.keys(_);\n I = u ? O.sort(u) : O;\n }\n var M = l ? e.replace(/\\./g, \"%2E\") : e, E = s && Be(_) && _.length === 1 ? M + \"[]\" : M;\n if (n && Be(_) && _.length === 0)\n return E + \"[]\";\n for (var A = 0; A < I.length; ++A) {\n var L = I[A], k = typeof L == \"object\" && typeof L.value < \"u\" ? L.value : _[L];\n if (!(a && k === null)) {\n var G = d && l ? L.replace(/\\./g, \"%2E\") : L, $ = Be(_) ? typeof i == \"function\" ? i(E, G) : E : E + (d ? \".\" + G : \"[\" + G + \"]\");\n x.set(t, w);\n var X = nd();\n X.set(Eo, x), ad(T, r(\n k,\n $,\n i,\n s,\n n,\n o,\n a,\n l,\n i === \"comma\" && g && Be(_) ? null : h,\n c,\n u,\n d,\n f,\n p,\n m,\n g,\n y,\n X\n ));\n }\n }\n return T;\n}, g_ = function(t) {\n if (!t)\n return Dt;\n if (typeof t.allowEmptyArrays < \"u\" && typeof t.allowEmptyArrays != \"boolean\")\n throw new TypeError(\"`allowEmptyArrays` option can only be `true` or `false`, when provided\");\n if (typeof t.encodeDotInKeys < \"u\" && typeof t.encodeDotInKeys != \"boolean\")\n throw new TypeError(\"`encodeDotInKeys` option can only be `true` or `false`, when provided\");\n if (t.encoder !== null && typeof t.encoder < \"u\" && typeof t.encoder != \"function\")\n throw new TypeError(\"Encoder has to be a function.\");\n var e = t.charset || Dt.charset;\n if (typeof t.charset < \"u\" && t.charset !== \"utf-8\" && t.charset !== \"iso-8859-1\")\n throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");\n var i = ns.default;\n if (typeof t.format < \"u\") {\n if (!u_.call(ns.formatters, t.format))\n throw new TypeError(\"Unknown format option provided.\");\n i = t.format;\n }\n var s = ns.formatters[i], n = Dt.filter;\n (typeof t.filter == \"function\" || Be(t.filter)) && (n = t.filter);\n var o;\n if (t.arrayFormat in od ? o = t.arrayFormat : \"indices\" in t ? o = t.indices ? \"indices\" : \"repeat\" : o = Dt.arrayFormat, \"commaRoundTrip\" in t && typeof t.commaRoundTrip != \"boolean\")\n throw new TypeError(\"`commaRoundTrip` must be a boolean, or absent\");\n var a = typeof t.allowDots > \"u\" ? t.encodeDotInKeys === !0 ? !0 : Dt.allowDots : !!t.allowDots;\n return {\n addQueryPrefix: typeof t.addQueryPrefix == \"boolean\" ? t.addQueryPrefix : Dt.addQueryPrefix,\n allowDots: a,\n allowEmptyArrays: typeof t.allowEmptyArrays == \"boolean\" ? !!t.allowEmptyArrays : Dt.allowEmptyArrays,\n arrayFormat: o,\n charset: e,\n charsetSentinel: typeof t.charsetSentinel == \"boolean\" ? t.charsetSentinel : Dt.charsetSentinel,\n commaRoundTrip: t.commaRoundTrip,\n delimiter: typeof t.delimiter > \"u\" ? Dt.delimiter : t.delimiter,\n encode: typeof t.encode == \"boolean\" ? t.encode : Dt.encode,\n encodeDotInKeys: typeof t.encodeDotInKeys == \"boolean\" ? t.encodeDotInKeys : Dt.encodeDotInKeys,\n encoder: typeof t.encoder == \"function\" ? t.encoder : Dt.encoder,\n encodeValuesOnly: typeof t.encodeValuesOnly == \"boolean\" ? t.encodeValuesOnly : Dt.encodeValuesOnly,\n filter: n,\n format: i,\n formatter: s,\n serializeDate: typeof t.serializeDate == \"function\" ? t.serializeDate : Dt.serializeDate,\n skipNulls: typeof t.skipNulls == \"boolean\" ? t.skipNulls : Dt.skipNulls,\n sort: typeof t.sort == \"function\" ? t.sort : null,\n strictNullHandling: typeof t.strictNullHandling == \"boolean\" ? t.strictNullHandling : Dt.strictNullHandling\n };\n}, y_ = function(r, t) {\n var e = r, i = g_(t), s, n;\n typeof i.filter == \"function\" ? (n = i.filter, e = n(\"\", e)) : Be(i.filter) && (n = i.filter, s = n);\n var o = [];\n if (typeof e != \"object\" || e === null)\n return \"\";\n var a = od[i.arrayFormat], l = a === \"comma\" && i.commaRoundTrip;\n s || (s = Object.keys(e)), i.sort && s.sort(i.sort);\n for (var h = nd(), c = 0; c < s.length; ++c) {\n var u = s[c];\n i.skipNulls && e[u] === null || ad(o, m_(\n e[u],\n u,\n a,\n l,\n i.allowEmptyArrays,\n i.strictNullHandling,\n i.skipNulls,\n i.encodeDotInKeys,\n i.encode ? i.encoder : null,\n i.filter,\n i.sort,\n i.allowDots,\n i.serializeDate,\n i.format,\n i.formatter,\n i.encodeValuesOnly,\n i.charset,\n h\n ));\n }\n var d = o.join(i.delimiter), f = i.addQueryPrefix === !0 ? \"?\" : \"\";\n return i.charsetSentinel && (i.charset === \"iso-8859-1\" ? f += \"utf8=%26%2310003%3B&\" : f += \"utf8=%E2%9C%93&\"), d.length > 0 ? f + d : \"\";\n}, Pi = sd, pa = Object.prototype.hasOwnProperty, __ = Array.isArray, Rt = {\n allowDots: !1,\n allowEmptyArrays: !1,\n allowPrototypes: !1,\n allowSparse: !1,\n arrayLimit: 20,\n charset: \"utf-8\",\n charsetSentinel: !1,\n comma: !1,\n decodeDotInKeys: !0,\n decoder: Pi.decode,\n delimiter: \"&\",\n depth: 5,\n duplicates: \"combine\",\n ignoreQueryPrefix: !1,\n interpretNumericEntities: !1,\n parameterLimit: 1e3,\n parseArrays: !0,\n plainObjects: !1,\n strictNullHandling: !1\n}, v_ = function(r) {\n return r.replace(/&#(\\d+);/g, function(t, e) {\n return String.fromCharCode(parseInt(e, 10));\n });\n}, ld = function(r, t) {\n return r && typeof r == \"string\" && t.comma && r.indexOf(\",\") > -1 ? r.split(\",\") : r;\n}, x_ = \"utf8=%26%2310003%3B\", b_ = \"utf8=%E2%9C%93\", w_ = function(t, e) {\n 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, l, h = e.charset;\n if (e.charsetSentinel)\n for (l = 0; l < o.length; ++l)\n o[l].indexOf(\"utf8=\") === 0 && (o[l] === b_ ? h = \"utf-8\" : o[l] === x_ && (h = \"iso-8859-1\"), a = l, l = o.length);\n for (l = 0; l < o.length; ++l)\n if (l !== a) {\n var c = o[l], u = c.indexOf(\"]=\"), d = u === -1 ? c.indexOf(\"=\") : u + 1, f, p;\n d === -1 ? (f = e.decoder(c, Rt.decoder, h, \"key\"), p = e.strictNullHandling ? null : \"\") : (f = e.decoder(c.slice(0, d), Rt.decoder, h, \"key\"), p = Pi.maybeMap(\n ld(c.slice(d + 1), e),\n function(g) {\n return e.decoder(g, Rt.decoder, h, \"value\");\n }\n )), p && e.interpretNumericEntities && h === \"iso-8859-1\" && (p = v_(p)), c.indexOf(\"[]=\") > -1 && (p = __(p) ? [p] : p);\n var m = pa.call(i, f);\n m && e.duplicates === \"combine\" ? i[f] = Pi.combine(i[f], p) : (!m || e.duplicates === \"last\") && (i[f] = p);\n }\n return i;\n}, E_ = function(r, t, e, i) {\n for (var s = i ? t : ld(t, e), n = r.length - 1; n >= 0; --n) {\n var o, a = r[n];\n if (a === \"[]\" && e.parseArrays)\n o = e.allowEmptyArrays && s === \"\" ? [] : [].concat(s);\n else {\n o = e.plainObjects ? /* @__PURE__ */ Object.create(null) : {};\n var l = a.charAt(0) === \"[\" && a.charAt(a.length - 1) === \"]\" ? a.slice(1, -1) : a, h = e.decodeDotInKeys ? l.replace(/%2E/g, \".\") : l, c = parseInt(h, 10);\n !e.parseArrays && h === \"\" ? o = { 0: s } : !isNaN(c) && a !== h && String(c) === h && c >= 0 && e.parseArrays && c <= e.arrayLimit ? (o = [], o[c] = s) : h !== \"__proto__\" && (o[h] = s);\n }\n s = o;\n }\n return s;\n}, T_ = function(t, e, i, s) {\n if (t) {\n var n = i.allowDots ? t.replace(/\\.([^.[]+)/g, \"[$1]\") : t, o = /(\\[[^[\\]]*])/, a = /(\\[[^[\\]]*])/g, l = i.depth > 0 && o.exec(n), h = l ? n.slice(0, l.index) : n, c = [];\n if (h) {\n if (!i.plainObjects && pa.call(Object.prototype, h) && !i.allowPrototypes)\n return;\n c.push(h);\n }\n for (var u = 0; i.depth > 0 && (l = a.exec(n)) !== null && u < i.depth; ) {\n if (u += 1, !i.plainObjects && pa.call(Object.prototype, l[1].slice(1, -1)) && !i.allowPrototypes)\n return;\n c.push(l[1]);\n }\n return l && c.push(\"[\" + n.slice(l.index) + \"]\"), E_(c, e, i, s);\n }\n}, A_ = function(t) {\n if (!t)\n return Rt;\n if (typeof t.allowEmptyArrays < \"u\" && typeof t.allowEmptyArrays != \"boolean\")\n throw new TypeError(\"`allowEmptyArrays` option can only be `true` or `false`, when provided\");\n if (typeof t.decodeDotInKeys < \"u\" && typeof t.decodeDotInKeys != \"boolean\")\n throw new TypeError(\"`decodeDotInKeys` option can only be `true` or `false`, when provided\");\n if (t.decoder !== null && typeof t.decoder < \"u\" && typeof t.decoder != \"function\")\n throw new TypeError(\"Decoder has to be a function.\");\n if (typeof t.charset < \"u\" && t.charset !== \"utf-8\" && t.charset !== \"iso-8859-1\")\n throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");\n var e = typeof t.charset > \"u\" ? Rt.charset : t.charset, i = typeof t.duplicates > \"u\" ? Rt.duplicates : t.duplicates;\n if (i !== \"combine\" && i !== \"first\" && i !== \"last\")\n throw new TypeError(\"The duplicates option must be either combine, first, or last\");\n var s = typeof t.allowDots > \"u\" ? t.decodeDotInKeys === !0 ? !0 : Rt.allowDots : !!t.allowDots;\n return {\n allowDots: s,\n allowEmptyArrays: typeof t.allowEmptyArrays == \"boolean\" ? !!t.allowEmptyArrays : Rt.allowEmptyArrays,\n allowPrototypes: typeof t.allowPrototypes == \"boolean\" ? t.allowPrototypes : Rt.allowPrototypes,\n allowSparse: typeof t.allowSparse == \"boolean\" ? t.allowSparse : Rt.allowSparse,\n arrayLimit: typeof t.arrayLimit == \"number\" ? t.arrayLimit : Rt.arrayLimit,\n charset: e,\n charsetSentinel: typeof t.charsetSentinel == \"boolean\" ? t.charsetSentinel : Rt.charsetSentinel,\n comma: typeof t.comma == \"boolean\" ? t.comma : Rt.comma,\n decodeDotInKeys: typeof t.decodeDotInKeys == \"boolean\" ? t.decodeDotInKeys : Rt.decodeDotInKeys,\n decoder: typeof t.decoder == \"function\" ? t.decoder : Rt.decoder,\n delimiter: typeof t.delimiter == \"string\" || Pi.isRegExp(t.delimiter) ? t.delimiter : Rt.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: typeof t.depth == \"number\" || t.depth === !1 ? +t.depth : Rt.depth,\n duplicates: i,\n ignoreQueryPrefix: t.ignoreQueryPrefix === !0,\n interpretNumericEntities: typeof t.interpretNumericEntities == \"boolean\" ? t.interpretNumericEntities : Rt.interpretNumericEntities,\n parameterLimit: typeof t.parameterLimit == \"number\" ? t.parameterLimit : Rt.parameterLimit,\n parseArrays: t.parseArrays !== !1,\n plainObjects: typeof t.plainObjects == \"boolean\" ? t.plainObjects : Rt.plainObjects,\n strictNullHandling: typeof t.strictNullHandling == \"boolean\" ? t.strictNullHandling : Rt.strictNullHandling\n };\n}, S_ = function(r, t) {\n var e = A_(t);\n if (r === \"\" || r === null || typeof r > \"u\")\n return e.plainObjects ? /* @__PURE__ */ Object.create(null) : {};\n 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) {\n var a = n[o], l = T_(a, i[a], e, typeof r == \"string\");\n s = Pi.merge(s, l, e);\n }\n return e.allowSparse === !0 ? s : Pi.compact(s);\n}, C_ = y_, I_ = S_, P_ = _l, R_ = {\n formats: P_,\n parse: I_,\n stringify: C_\n}, M_ = dy;\nfunction er() {\n this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null;\n}\nvar B_ = /^([a-z0-9.+-]+:)/i, D_ = /:[0-9]*$/, O_ = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/, F_ = [\n \"<\",\n \">\",\n '\"',\n \"`\",\n \" \",\n \"\\r\",\n `\n`,\n \"\t\"\n], L_ = [\n \"{\",\n \"}\",\n \"|\",\n \"\\\\\",\n \"^\",\n \"`\"\n].concat(F_), ma = [\"'\"].concat(L_), Xh = [\n \"%\",\n \"/\",\n \"?\",\n \";\",\n \"#\"\n].concat(ma), Vh = [\n \"/\",\n \"?\",\n \"#\"\n], N_ = 255, zh = /^[+a-z0-9A-Z_-]{0,63}$/, U_ = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, k_ = {\n javascript: !0,\n \"javascript:\": !0\n}, ga = {\n javascript: !0,\n \"javascript:\": !0\n}, vi = {\n http: !0,\n https: !0,\n ftp: !0,\n gopher: !0,\n file: !0,\n \"http:\": !0,\n \"https:\": !0,\n \"ftp:\": !0,\n \"gopher:\": !0,\n \"file:\": !0\n}, ya = R_;\nfunction G_(r, t, e) {\n if (r && typeof r == \"object\" && r instanceof er)\n return r;\n var i = new er();\n return i.parse(r, t, e), i;\n}\ner.prototype.parse = function(r, t, e) {\n if (typeof r != \"string\")\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof r);\n var i = r.indexOf(\"?\"), s = i !== -1 && i < r.indexOf(\"#\") ? \"?\" : \"#\", n = r.split(s), o = /\\\\/g;\n n[0] = n[0].replace(o, \"/\"), r = n.join(s);\n var a = r;\n if (a = a.trim(), !e && r.split(\"#\").length === 1) {\n var l = O_.exec(a);\n if (l)\n return this.path = a, this.href = a, this.pathname = l[1], l[2] ? (this.search = l[2], t ? this.query = ya.parse(this.search.substr(1)) : this.query = this.search.substr(1)) : t && (this.search = \"\", this.query = {}), this;\n }\n var h = B_.exec(a);\n if (h) {\n h = h[0];\n var c = h.toLowerCase();\n this.protocol = c, a = a.substr(h.length);\n }\n if (e || h || a.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var u = a.substr(0, 2) === \"//\";\n u && !(h && ga[h]) && (a = a.substr(2), this.slashes = !0);\n }\n if (!ga[h] && (u || h && !vi[h])) {\n for (var d = -1, f = 0; f < Vh.length; f++) {\n var p = a.indexOf(Vh[f]);\n p !== -1 && (d === -1 || p < d) && (d = p);\n }\n var m, g;\n d === -1 ? g = a.lastIndexOf(\"@\") : g = a.lastIndexOf(\"@\", d), g !== -1 && (m = a.slice(0, g), a = a.slice(g + 1), this.auth = decodeURIComponent(m)), d = -1;\n for (var f = 0; f < Xh.length; f++) {\n var p = a.indexOf(Xh[f]);\n p !== -1 && (d === -1 || p < d) && (d = p);\n }\n d === -1 && (d = a.length), this.host = a.slice(0, d), a = a.slice(d), this.parseHost(), this.hostname = this.hostname || \"\";\n var y = this.hostname[0] === \"[\" && this.hostname[this.hostname.length - 1] === \"]\";\n if (!y)\n for (var x = this.hostname.split(/\\./), f = 0, _ = x.length; f < _; f++) {\n var v = x[f];\n if (v && !v.match(zh)) {\n for (var w = \"\", R = 0, C = v.length; R < C; R++)\n v.charCodeAt(R) > 127 ? w += \"x\" : w += v[R];\n if (!w.match(zh)) {\n var b = x.slice(0, f), T = x.slice(f + 1), I = v.match(U_);\n I && (b.push(I[1]), T.unshift(I[2])), T.length && (a = \"/\" + T.join(\".\") + a), this.hostname = b.join(\".\");\n break;\n }\n }\n }\n this.hostname.length > N_ ? this.hostname = \"\" : this.hostname = this.hostname.toLowerCase(), y || (this.hostname = M_.toASCII(this.hostname));\n var O = this.port ? \":\" + this.port : \"\", M = this.hostname || \"\";\n this.host = M + O, this.href += this.host, y && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), a[0] !== \"/\" && (a = \"/\" + a));\n }\n if (!k_[c])\n for (var f = 0, _ = ma.length; f < _; f++) {\n var E = ma[f];\n if (a.indexOf(E) !== -1) {\n var A = encodeURIComponent(E);\n A === E && (A = escape(E)), a = a.split(E).join(A);\n }\n }\n var L = a.indexOf(\"#\");\n L !== -1 && (this.hash = a.substr(L), a = a.slice(0, L));\n var k = a.indexOf(\"?\");\n if (k !== -1 ? (this.search = a.substr(k), this.query = a.substr(k + 1), t && (this.query = ya.parse(this.query)), a = a.slice(0, k)) : t && (this.search = \"\", this.query = {}), a && (this.pathname = a), vi[c] && this.hostname && !this.pathname && (this.pathname = \"/\"), this.pathname || this.search) {\n var O = this.pathname || \"\", G = this.search || \"\";\n this.path = O + G;\n }\n return this.href = this.format(), this;\n};\ner.prototype.format = function() {\n var r = this.auth || \"\";\n r && (r = encodeURIComponent(r), r = r.replace(/%3A/i, \":\"), r += \"@\");\n var t = this.protocol || \"\", e = this.pathname || \"\", i = this.hash || \"\", s = !1, n = \"\";\n this.host ? s = r + this.host : this.hostname && (s = r + (this.hostname.indexOf(\":\") === -1 ? this.hostname : \"[\" + this.hostname + \"]\"), this.port && (s += \":\" + this.port)), this.query && typeof this.query == \"object\" && Object.keys(this.query).length && (n = ya.stringify(this.query, {\n arrayFormat: \"repeat\",\n addQueryPrefix: !1\n }));\n var o = this.search || n && \"?\" + n || \"\";\n return t && t.substr(-1) !== \":\" && (t += \":\"), this.slashes || (!t || vi[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) {\n return encodeURIComponent(a);\n }), o = o.replace(\"#\", \"%23\"), t + s + e + o + i;\n};\ner.prototype.resolve = function(r) {\n return this.resolveObject(G_(r, !1, !0)).format();\n};\ner.prototype.resolveObject = function(r) {\n if (typeof r == \"string\") {\n var t = new er();\n t.parse(r, !1, !0), r = t;\n }\n for (var e = new er(), i = Object.keys(this), s = 0; s < i.length; s++) {\n var n = i[s];\n e[n] = this[n];\n }\n if (e.hash = r.hash, r.href === \"\")\n return e.href = e.format(), e;\n if (r.slashes && !r.protocol) {\n for (var o = Object.keys(r), a = 0; a < o.length; a++) {\n var l = o[a];\n l !== \"protocol\" && (e[l] = r[l]);\n }\n return vi[e.protocol] && e.hostname && !e.pathname && (e.pathname = \"/\", e.path = e.pathname), e.href = e.format(), e;\n }\n if (r.protocol && r.protocol !== e.protocol) {\n if (!vi[r.protocol]) {\n for (var h = Object.keys(r), c = 0; c < h.length; c++) {\n var u = h[c];\n e[u] = r[u];\n }\n return e.href = e.format(), e;\n }\n if (e.protocol = r.protocol, !r.host && !ga[r.protocol]) {\n for (var _ = (r.pathname || \"\").split(\"/\"); _.length && !(r.host = _.shift()); )\n ;\n r.host || (r.host = \"\"), r.hostname || (r.hostname = \"\"), _[0] !== \"\" && _.unshift(\"\"), _.length < 2 && _.unshift(\"\"), e.pathname = _.join(\"/\");\n } else\n e.pathname = r.pathname;\n if (e.search = r.search, e.query = r.query, e.host = r.host || \"\", e.auth = r.auth, e.hostname = r.hostname || r.host, e.port = r.port, e.pathname || e.search) {\n var d = e.pathname || \"\", f = e.search || \"\";\n e.path = d + f;\n }\n return e.slashes = e.slashes || r.slashes, e.href = e.format(), e;\n }\n 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(\"/\") || [], _ = r.pathname && r.pathname.split(\"/\") || [], v = e.protocol && !vi[e.protocol];\n if (v && (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 && (_[0] === \"\" ? _[0] = r.host : _.unshift(r.host)), r.host = null), g = g && (_[0] === \"\" || x[0] === \"\")), m)\n 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 = _;\n else if (_.length)\n x || (x = []), x.pop(), x = x.concat(_), e.search = r.search, e.query = r.query;\n else if (r.search != null) {\n if (v) {\n e.host = x.shift(), e.hostname = e.host;\n var w = e.host && e.host.indexOf(\"@\") > 0 ? e.host.split(\"@\") : !1;\n w && (e.auth = w.shift(), e.hostname = w.shift(), e.host = e.hostname);\n }\n return e.search = r.search, e.query = r.query, (e.pathname !== null || e.search !== null) && (e.path = (e.pathname ? e.pathname : \"\") + (e.search ? e.search : \"\")), e.href = e.format(), e;\n }\n if (!x.length)\n return e.pathname = null, e.search ? e.path = \"/\" + e.search : e.path = null, e.href = e.format(), e;\n for (var R = x.slice(-1)[0], C = (e.host || r.host || x.length > 1) && (R === \".\" || R === \"..\") || R === \"\", b = 0, T = x.length; T >= 0; T--)\n R = x[T], R === \".\" ? x.splice(T, 1) : R === \"..\" ? (x.splice(T, 1), b++) : b && (x.splice(T, 1), b--);\n if (!g && !y)\n for (; b--; b)\n x.unshift(\"..\");\n g && x[0] !== \"\" && (!x[0] || x[0].charAt(0) !== \"/\") && x.unshift(\"\"), C && x.join(\"/\").substr(-1) !== \"/\" && x.push(\"\");\n var I = x[0] === \"\" || x[0] && x[0].charAt(0) === \"/\";\n if (v) {\n e.hostname = I ? \"\" : x.length ? x.shift() : \"\", e.host = e.hostname;\n var w = e.host && e.host.indexOf(\"@\") > 0 ? e.host.split(\"@\") : !1;\n w && (e.auth = w.shift(), e.hostname = w.shift(), e.host = e.hostname);\n }\n return g = g || e.host && x.length, g && !I && x.unshift(\"\"), x.length > 0 ? e.pathname = x.join(\"/\") : (e.pathname = null, e.path = null), (e.pathname !== null || e.search !== null) && (e.path = (e.pathname ? e.pathname : \"\") + (e.search ? e.search : \"\")), e.auth = r.auth || e.auth, e.slashes = e.slashes || r.slashes, e.href = e.format(), e;\n};\ner.prototype.parseHost = function() {\n var r = this.host, t = D_.exec(r);\n t && (t = t[0], t !== \":\" && (this.port = t.substr(1)), r = r.substr(0, r.length - t.length)), r && (this.hostname = r);\n};\nconst Wh = {};\nfunction at(r, t, e = 3) {\n if (Wh[t])\n return;\n let i = new Error().stack;\n typeof i > \"u\" ? console.warn(\"PixiJS Deprecation Warning: \", `${t}\nDeprecated since v${r}`) : (i = i.split(`\n`).splice(e).join(`\n`), console.groupCollapsed ? (console.groupCollapsed(\n \"%cPixiJS Deprecation Warning: %c%s\",\n \"color:#614108;background:#fffbe6\",\n \"font-weight:normal;color:#614108;background:#fffbe6\",\n `${t}\nDeprecated since v${r}`\n ), console.warn(i), console.groupEnd()) : (console.warn(\"PixiJS Deprecation Warning: \", `${t}\nDeprecated since v${r}`), console.warn(i))), Wh[t] = !0;\n}\nfunction fe(r) {\n if (typeof r != \"string\")\n throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`);\n}\nfunction Gi(r) {\n return r.split(\"?\")[0].split(\"#\")[0];\n}\nfunction $_(r) {\n return r.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nfunction H_(r, t, e) {\n return r.replace(new RegExp($_(t), \"g\"), e);\n}\nfunction X_(r, t) {\n let e = \"\", i = 0, s = -1, n = 0, o = -1;\n for (let a = 0; a <= r.length; ++a) {\n if (a < r.length)\n o = r.charCodeAt(a);\n else {\n if (o === 47)\n break;\n o = 47;\n }\n if (o === 47) {\n if (!(s === a - 1 || n === 1))\n if (s !== a - 1 && n === 2) {\n if (e.length < 2 || i !== 2 || e.charCodeAt(e.length - 1) !== 46 || e.charCodeAt(e.length - 2) !== 46) {\n if (e.length > 2) {\n const l = e.lastIndexOf(\"/\");\n if (l !== e.length - 1) {\n l === -1 ? (e = \"\", i = 0) : (e = e.slice(0, l), i = e.length - 1 - e.lastIndexOf(\"/\")), s = a, n = 0;\n continue;\n }\n } else if (e.length === 2 || e.length === 1) {\n e = \"\", i = 0, s = a, n = 0;\n continue;\n }\n }\n t && (e.length > 0 ? e += \"/..\" : e = \"..\", i = 2);\n } else\n e.length > 0 ? e += `/${r.slice(s + 1, a)}` : e = r.slice(s + 1, a), i = a - s - 1;\n s = a, n = 0;\n } else\n o === 46 && n !== -1 ? ++n : n = -1;\n }\n return e;\n}\nconst kt = {\n /**\n * Converts a path to posix format.\n * @param path - The path to convert to posix\n */\n toPosix(r) {\n return H_(r, \"\\\\\", \"/\");\n },\n /**\n * Checks if the path is a URL e.g. http://, https://\n * @param path - The path to check\n */\n isUrl(r) {\n return /^https?:/.test(this.toPosix(r));\n },\n /**\n * Checks if the path is a data URL\n * @param path - The path to check\n */\n isDataUrl(r) {\n return /^data:([a-z]+\\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s<>]*?)$/i.test(r);\n },\n /**\n * Checks if the path is a blob URL\n * @param path - The path to check\n */\n isBlobUrl(r) {\n return r.startsWith(\"blob:\");\n },\n /**\n * Checks if the path has a protocol e.g. http://, https://, file:///, data:, blob:, C:/\n * This will return true for windows file paths\n * @param path - The path to check\n */\n hasProtocol(r) {\n return /^[^/:]+:/.test(this.toPosix(r));\n },\n /**\n * Returns the protocol of the path e.g. http://, https://, file:///, data:, blob:, C:/\n * @param path - The path to get the protocol from\n */\n getProtocol(r) {\n fe(r), r = this.toPosix(r);\n const t = /^file:\\/\\/\\//.exec(r);\n if (t)\n return t[0];\n const e = /^[^/:]+:\\/{0,2}/.exec(r);\n return e ? e[0] : \"\";\n },\n /**\n * Converts URL to an absolute path.\n * When loading from a Web Worker, we must use absolute paths.\n * If the URL is already absolute we return it as is\n * If it's not, we convert it\n * @param url - The URL to test\n * @param customBaseUrl - The base URL to use\n * @param customRootUrl - The root URL to use\n */\n toAbsolute(r, t, e) {\n if (fe(r), this.isDataUrl(r) || this.isBlobUrl(r))\n return r;\n const i = Gi(this.toPosix(t ?? W.ADAPTER.getBaseUrl())), s = Gi(this.toPosix(e ?? this.rootname(i)));\n return r = this.toPosix(r), r.startsWith(\"/\") ? kt.join(s, r.slice(1)) : this.isAbsolute(r) ? r : this.join(i, r);\n },\n /**\n * Normalizes the given path, resolving '..' and '.' segments\n * @param path - The path to normalize\n */\n normalize(r) {\n if (fe(r), r.length === 0)\n return \".\";\n if (this.isDataUrl(r) || this.isBlobUrl(r))\n return r;\n r = this.toPosix(r);\n let t = \"\";\n const e = r.startsWith(\"/\");\n this.hasProtocol(r) && (t = this.rootname(r), r = r.slice(t.length));\n const i = r.endsWith(\"/\");\n return r = X_(r, !1), r.length > 0 && i && (r += \"/\"), e ? `/${r}` : t + r;\n },\n /**\n * Determines if path is an absolute path.\n * Absolute paths can be urls, data urls, or paths on disk\n * @param path - The path to test\n */\n isAbsolute(r) {\n return fe(r), r = this.toPosix(r), this.hasProtocol(r) ? !0 : r.startsWith(\"/\");\n },\n /**\n * Joins all given path segments together using the platform-specific separator as a delimiter,\n * then normalizes the resulting path\n * @param segments - The segments of the path to join\n */\n join(...r) {\n if (r.length === 0)\n return \".\";\n let t;\n for (let e = 0; e < r.length; ++e) {\n const i = r[e];\n if (fe(i), i.length > 0)\n if (t === void 0)\n t = i;\n else {\n const s = r[e - 1] ?? \"\";\n this.joinExtensions.includes(this.extname(s).toLowerCase()) ? t += `/../${i}` : t += `/${i}`;\n }\n }\n return t === void 0 ? \".\" : this.normalize(t);\n },\n /**\n * Returns the directory name of a path\n * @param path - The path to parse\n */\n dirname(r) {\n if (fe(r), r.length === 0)\n return \".\";\n r = this.toPosix(r);\n let t = r.charCodeAt(0);\n const e = t === 47;\n let i = -1, s = !0;\n const n = this.getProtocol(r), o = r;\n r = r.slice(n.length);\n for (let a = r.length - 1; a >= 1; --a)\n if (t = r.charCodeAt(a), t === 47) {\n if (!s) {\n i = a;\n break;\n }\n } else\n s = !1;\n return i === -1 ? e ? \"/\" : this.isUrl(o) ? n + r : n : e && i === 1 ? \"//\" : n + r.slice(0, i);\n },\n /**\n * Returns the root of the path e.g. /, C:/, file:///, http://domain.com/\n * @param path - The path to parse\n */\n rootname(r) {\n fe(r), r = this.toPosix(r);\n let t = \"\";\n if (r.startsWith(\"/\") ? t = \"/\" : t = this.getProtocol(r), this.isUrl(r)) {\n const e = r.indexOf(\"/\", t.length);\n e !== -1 ? t = r.slice(0, e) : t = r, t.endsWith(\"/\") || (t += \"/\");\n }\n return t;\n },\n /**\n * Returns the last portion of a path\n * @param path - The path to test\n * @param ext - Optional extension to remove\n */\n basename(r, t) {\n fe(r), t && fe(t), r = Gi(this.toPosix(r));\n let e = 0, i = -1, s = !0, n;\n if (t !== void 0 && t.length > 0 && t.length <= r.length) {\n if (t.length === r.length && t === r)\n return \"\";\n let o = t.length - 1, a = -1;\n for (n = r.length - 1; n >= 0; --n) {\n const l = r.charCodeAt(n);\n if (l === 47) {\n if (!s) {\n e = n + 1;\n break;\n }\n } else\n a === -1 && (s = !1, a = n + 1), o >= 0 && (l === t.charCodeAt(o) ? --o === -1 && (i = n) : (o = -1, i = a));\n }\n return e === i ? i = a : i === -1 && (i = r.length), r.slice(e, i);\n }\n for (n = r.length - 1; n >= 0; --n)\n if (r.charCodeAt(n) === 47) {\n if (!s) {\n e = n + 1;\n break;\n }\n } else\n i === -1 && (s = !1, i = n + 1);\n return i === -1 ? \"\" : r.slice(e, i);\n },\n /**\n * Returns the extension of the path, from the last occurrence of the . (period) character to end of string in the last\n * portion of the path. If there is no . in the last portion of the path, or if there are no . characters other than\n * the first character of the basename of path, an empty string is returned.\n * @param path - The path to parse\n */\n extname(r) {\n fe(r), r = Gi(this.toPosix(r));\n let t = -1, e = 0, i = -1, s = !0, n = 0;\n for (let o = r.length - 1; o >= 0; --o) {\n const a = r.charCodeAt(o);\n if (a === 47) {\n if (!s) {\n e = o + 1;\n break;\n }\n continue;\n }\n i === -1 && (s = !1, i = o + 1), a === 46 ? t === -1 ? t = o : n !== 1 && (n = 1) : t !== -1 && (n = -1);\n }\n return t === -1 || i === -1 || n === 0 || n === 1 && t === i - 1 && t === e + 1 ? \"\" : r.slice(t, i);\n },\n /**\n * Parses a path into an object containing the 'root', `dir`, `base`, `ext`, and `name` properties.\n * @param path - The path to parse\n */\n parse(r) {\n fe(r);\n const t = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n if (r.length === 0)\n return t;\n r = Gi(this.toPosix(r));\n let e = r.charCodeAt(0);\n const i = this.isAbsolute(r);\n let s;\n t.root = this.rootname(r), i || this.hasProtocol(r) ? s = 1 : s = 0;\n let n = -1, o = 0, a = -1, l = !0, h = r.length - 1, c = 0;\n for (; h >= s; --h) {\n if (e = r.charCodeAt(h), e === 47) {\n if (!l) {\n o = h + 1;\n break;\n }\n continue;\n }\n a === -1 && (l = !1, a = h + 1), e === 46 ? n === -1 ? n = h : c !== 1 && (c = 1) : n !== -1 && (c = -1);\n }\n return n === -1 || a === -1 || c === 0 || c === 1 && n === a - 1 && n === o + 1 ? a !== -1 && (o === 0 && i ? t.base = t.name = r.slice(1, a) : t.base = t.name = r.slice(o, a)) : (o === 0 && i ? (t.name = r.slice(1, n), t.base = r.slice(1, a)) : (t.name = r.slice(o, n), t.base = r.slice(o, a)), t.ext = r.slice(n, a)), t.dir = this.dirname(r), t;\n },\n sep: \"/\",\n delimiter: \":\",\n joinExtensions: [\".html\"]\n};\nlet To;\nasync function V_() {\n return To ?? (To = (async () => {\n var n;\n const r = document.createElement(\"canvas\").getContext(\"webgl\");\n if (!r)\n return te.UNPACK;\n const t = await new Promise((o) => {\n const a = document.createElement(\"video\");\n a.onloadeddata = () => o(a), a.onerror = () => o(null), a.autoplay = !1, a.crossOrigin = \"anonymous\", a.preload = \"auto\", a.src = \"data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=\", a.load();\n });\n if (!t)\n return te.UNPACK;\n const e = r.createTexture();\n r.bindTexture(r.TEXTURE_2D, e);\n const i = r.createFramebuffer();\n r.bindFramebuffer(r.FRAMEBUFFER, i), r.framebufferTexture2D(\n r.FRAMEBUFFER,\n r.COLOR_ATTACHMENT0,\n r.TEXTURE_2D,\n e,\n 0\n ), r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1), r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL, r.NONE), r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, r.RGBA, r.UNSIGNED_BYTE, t);\n const s = new Uint8Array(4);\n return r.readPixels(0, 0, 1, 1, r.RGBA, r.UNSIGNED_BYTE, s), r.deleteFramebuffer(i), r.deleteTexture(e), (n = r.getExtension(\"WEBGL_lose_context\")) == null || n.loseContext(), s[0] <= s[3] ? te.PMA : te.UNPACK;\n })()), To;\n}\nlet Ao;\nfunction z_() {\n return typeof Ao > \"u\" && (Ao = function() {\n var t;\n const r = {\n stencil: !0,\n failIfMajorPerformanceCaveat: W.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT\n };\n try {\n if (!W.ADAPTER.getWebGLRenderingContext())\n return !1;\n const e = W.ADAPTER.createCanvas();\n let i = e.getContext(\"webgl\", r) || e.getContext(\"experimental-webgl\", r);\n const s = !!((t = i == null ? void 0 : i.getContextAttributes()) != null && t.stencil);\n if (i) {\n const n = i.getExtension(\"WEBGL_lose_context\");\n n && n.loseContext();\n }\n return i = null, s;\n } catch {\n return !1;\n }\n }()), Ao;\n}\nvar W_ = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, je = function(r) {\n return typeof r == \"string\" ? r.length > 0 : typeof r == \"number\";\n}, Ut = function(r, t, e) {\n return t === void 0 && (t = 0), e === void 0 && (e = Math.pow(10, t)), Math.round(e * r) / e + 0;\n}, ce = function(r, t, e) {\n return t === void 0 && (t = 0), e === void 0 && (e = 1), r > e ? e : r > t ? r : t;\n}, hd = function(r) {\n return (r = isFinite(r) ? r % 360 : 0) > 0 ? r : r + 360;\n}, jh = function(r) {\n return { r: ce(r.r, 0, 255), g: ce(r.g, 0, 255), b: ce(r.b, 0, 255), a: ce(r.a) };\n}, So = function(r) {\n return { r: Ut(r.r), g: Ut(r.g), b: Ut(r.b), a: Ut(r.a, 3) };\n}, j_ = /^#([0-9a-f]{3,8})$/i, Ms = function(r) {\n var t = r.toString(16);\n return t.length < 2 ? \"0\" + t : t;\n}, cd = function(r) {\n 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;\n return { h: 60 * (a < 0 ? a + 6 : a), s: n ? o / n * 100 : 0, v: n / 255 * 100, a: s };\n}, ud = function(r) {\n var t = r.h, e = r.s, i = r.v, s = r.a;\n t = t / 360 * 6, e /= 100, i /= 100;\n var n = Math.floor(t), o = i * (1 - e), a = i * (1 - (t - n) * e), l = i * (1 - (1 - t + n) * e), h = n % 6;\n return { r: 255 * [i, a, o, o, l, i][h], g: 255 * [l, i, i, a, o, o][h], b: 255 * [o, o, l, i, i, a][h], a: s };\n}, Yh = function(r) {\n return { h: hd(r.h), s: ce(r.s, 0, 100), l: ce(r.l, 0, 100), a: ce(r.a) };\n}, qh = function(r) {\n return { h: Ut(r.h), s: Ut(r.s), l: Ut(r.l), a: Ut(r.a, 3) };\n}, Kh = function(r) {\n return ud((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 }));\n var t, e, i;\n}, os = function(r) {\n return { h: (t = cd(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 };\n var t, e, i, s;\n}, Y_ = /^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i, q_ = /^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s+([+-]?\\d*\\.?\\d+)%\\s+([+-]?\\d*\\.?\\d+)%\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i, K_ = /^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i, Z_ = /^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i, _a = { string: [[function(r) {\n var t = j_.exec(r);\n return t ? (r = t[1]).length <= 4 ? { r: parseInt(r[0] + r[0], 16), g: parseInt(r[1] + r[1], 16), b: parseInt(r[2] + r[2], 16), a: r.length === 4 ? Ut(parseInt(r[3] + r[3], 16) / 255, 2) : 1 } : r.length === 6 || r.length === 8 ? { r: parseInt(r.substr(0, 2), 16), g: parseInt(r.substr(2, 2), 16), b: parseInt(r.substr(4, 2), 16), a: r.length === 8 ? Ut(parseInt(r.substr(6, 2), 16) / 255, 2) : 1 } : null : null;\n}, \"hex\"], [function(r) {\n var t = K_.exec(r) || Z_.exec(r);\n return t ? t[2] !== t[4] || t[4] !== t[6] ? null : jh({ r: Number(t[1]) / (t[2] ? 100 / 255 : 1), g: Number(t[3]) / (t[4] ? 100 / 255 : 1), b: Number(t[5]) / (t[6] ? 100 / 255 : 1), a: t[7] === void 0 ? 1 : Number(t[7]) / (t[8] ? 100 : 1) }) : null;\n}, \"rgb\"], [function(r) {\n var t = Y_.exec(r) || q_.exec(r);\n if (!t)\n return null;\n var e, i, s = Yh({ h: (e = t[1], i = t[2], i === void 0 && (i = \"deg\"), Number(e) * (W_[i] || 1)), s: Number(t[3]), l: Number(t[4]), a: t[5] === void 0 ? 1 : Number(t[5]) / (t[6] ? 100 : 1) });\n return Kh(s);\n}, \"hsl\"]], object: [[function(r) {\n var t = r.r, e = r.g, i = r.b, s = r.a, n = s === void 0 ? 1 : s;\n return je(t) && je(e) && je(i) ? jh({ r: Number(t), g: Number(e), b: Number(i), a: Number(n) }) : null;\n}, \"rgb\"], [function(r) {\n var t = r.h, e = r.s, i = r.l, s = r.a, n = s === void 0 ? 1 : s;\n if (!je(t) || !je(e) || !je(i))\n return null;\n var o = Yh({ h: Number(t), s: Number(e), l: Number(i), a: Number(n) });\n return Kh(o);\n}, \"hsl\"], [function(r) {\n var t = r.h, e = r.s, i = r.v, s = r.a, n = s === void 0 ? 1 : s;\n if (!je(t) || !je(e) || !je(i))\n return null;\n var o = function(a) {\n return { h: hd(a.h), s: ce(a.s, 0, 100), v: ce(a.v, 0, 100), a: ce(a.a) };\n }({ h: Number(t), s: Number(e), v: Number(i), a: Number(n) });\n return ud(o);\n}, \"hsv\"]] }, Zh = function(r, t) {\n for (var e = 0; e < t.length; e++) {\n var i = t[e][0](r);\n if (i)\n return [i, t[e][1]];\n }\n return [null, void 0];\n}, J_ = function(r) {\n return typeof r == \"string\" ? Zh(r.trim(), _a.string) : typeof r == \"object\" && r !== null ? Zh(r, _a.object) : [null, void 0];\n}, Co = function(r, t) {\n var e = os(r);\n return { h: e.h, s: ce(e.s + 100 * t, 0, 100), l: e.l, a: e.a };\n}, Io = function(r) {\n return (299 * r.r + 587 * r.g + 114 * r.b) / 1e3 / 255;\n}, Jh = function(r, t) {\n var e = os(r);\n return { h: e.h, s: e.s, l: ce(e.l + 100 * t, 0, 100), a: e.a };\n}, va = function() {\n function r(t) {\n this.parsed = J_(t)[0], this.rgba = this.parsed || { r: 0, g: 0, b: 0, a: 1 };\n }\n return r.prototype.isValid = function() {\n return this.parsed !== null;\n }, r.prototype.brightness = function() {\n return Ut(Io(this.rgba), 2);\n }, r.prototype.isDark = function() {\n return Io(this.rgba) < 0.5;\n }, r.prototype.isLight = function() {\n return Io(this.rgba) >= 0.5;\n }, r.prototype.toHex = function() {\n return t = So(this.rgba), e = t.r, i = t.g, s = t.b, o = (n = t.a) < 1 ? Ms(Ut(255 * n)) : \"\", \"#\" + Ms(e) + Ms(i) + Ms(s) + o;\n var t, e, i, s, n, o;\n }, r.prototype.toRgb = function() {\n return So(this.rgba);\n }, r.prototype.toRgbString = function() {\n return t = So(this.rgba), e = t.r, i = t.g, s = t.b, (n = t.a) < 1 ? \"rgba(\" + e + \", \" + i + \", \" + s + \", \" + n + \")\" : \"rgb(\" + e + \", \" + i + \", \" + s + \")\";\n var t, e, i, s, n;\n }, r.prototype.toHsl = function() {\n return qh(os(this.rgba));\n }, r.prototype.toHslString = function() {\n return t = qh(os(this.rgba)), e = t.h, i = t.s, s = t.l, (n = t.a) < 1 ? \"hsla(\" + e + \", \" + i + \"%, \" + s + \"%, \" + n + \")\" : \"hsl(\" + e + \", \" + i + \"%, \" + s + \"%)\";\n var t, e, i, s, n;\n }, r.prototype.toHsv = function() {\n return t = cd(this.rgba), { h: Ut(t.h), s: Ut(t.s), v: Ut(t.v), a: Ut(t.a, 3) };\n var t;\n }, r.prototype.invert = function() {\n return Ce({ r: 255 - (t = this.rgba).r, g: 255 - t.g, b: 255 - t.b, a: t.a });\n var t;\n }, r.prototype.saturate = function(t) {\n return t === void 0 && (t = 0.1), Ce(Co(this.rgba, t));\n }, r.prototype.desaturate = function(t) {\n return t === void 0 && (t = 0.1), Ce(Co(this.rgba, -t));\n }, r.prototype.grayscale = function() {\n return Ce(Co(this.rgba, -1));\n }, r.prototype.lighten = function(t) {\n return t === void 0 && (t = 0.1), Ce(Jh(this.rgba, t));\n }, r.prototype.darken = function(t) {\n return t === void 0 && (t = 0.1), Ce(Jh(this.rgba, -t));\n }, r.prototype.rotate = function(t) {\n return t === void 0 && (t = 15), this.hue(this.hue() + t);\n }, r.prototype.alpha = function(t) {\n return typeof t == \"number\" ? Ce({ r: (e = this.rgba).r, g: e.g, b: e.b, a: t }) : Ut(this.rgba.a, 3);\n var e;\n }, r.prototype.hue = function(t) {\n var e = os(this.rgba);\n return typeof t == \"number\" ? Ce({ h: t, s: e.s, l: e.l, a: e.a }) : Ut(e.h);\n }, r.prototype.isEqual = function(t) {\n return this.toHex() === Ce(t).toHex();\n }, r;\n}(), Ce = function(r) {\n return r instanceof va ? r : new va(r);\n}, Qh = [], Q_ = function(r) {\n r.forEach(function(t) {\n Qh.indexOf(t) < 0 && (t(va, _a), Qh.push(t));\n });\n};\nfunction tv(r, t) {\n var e = { white: \"#ffffff\", bisque: \"#ffe4c4\", blue: \"#0000ff\", cadetblue: \"#5f9ea0\", chartreuse: \"#7fff00\", chocolate: \"#d2691e\", coral: \"#ff7f50\", antiquewhite: \"#faebd7\", aqua: \"#00ffff\", azure: \"#f0ffff\", whitesmoke: \"#f5f5f5\", papayawhip: \"#ffefd5\", plum: \"#dda0dd\", blanchedalmond: \"#ffebcd\", black: \"#000000\", gold: \"#ffd700\", goldenrod: \"#daa520\", gainsboro: \"#dcdcdc\", cornsilk: \"#fff8dc\", cornflowerblue: \"#6495ed\", burlywood: \"#deb887\", aquamarine: \"#7fffd4\", beige: \"#f5f5dc\", crimson: \"#dc143c\", cyan: \"#00ffff\", darkblue: \"#00008b\", darkcyan: \"#008b8b\", darkgoldenrod: \"#b8860b\", darkkhaki: \"#bdb76b\", darkgray: \"#a9a9a9\", darkgreen: \"#006400\", darkgrey: \"#a9a9a9\", peachpuff: \"#ffdab9\", darkmagenta: \"#8b008b\", darkred: \"#8b0000\", darkorchid: \"#9932cc\", darkorange: \"#ff8c00\", darkslateblue: \"#483d8b\", gray: \"#808080\", darkslategray: \"#2f4f4f\", darkslategrey: \"#2f4f4f\", deeppink: \"#ff1493\", deepskyblue: \"#00bfff\", wheat: \"#f5deb3\", firebrick: \"#b22222\", floralwhite: \"#fffaf0\", ghostwhite: \"#f8f8ff\", darkviolet: \"#9400d3\", magenta: \"#ff00ff\", green: \"#008000\", dodgerblue: \"#1e90ff\", grey: \"#808080\", honeydew: \"#f0fff0\", hotpink: \"#ff69b4\", blueviolet: \"#8a2be2\", forestgreen: \"#228b22\", lawngreen: \"#7cfc00\", indianred: \"#cd5c5c\", indigo: \"#4b0082\", fuchsia: \"#ff00ff\", brown: \"#a52a2a\", maroon: \"#800000\", mediumblue: \"#0000cd\", lightcoral: \"#f08080\", darkturquoise: \"#00ced1\", lightcyan: \"#e0ffff\", ivory: \"#fffff0\", lightyellow: \"#ffffe0\", lightsalmon: \"#ffa07a\", lightseagreen: \"#20b2aa\", linen: \"#faf0e6\", mediumaquamarine: \"#66cdaa\", lemonchiffon: \"#fffacd\", lime: \"#00ff00\", khaki: \"#f0e68c\", mediumseagreen: \"#3cb371\", limegreen: \"#32cd32\", mediumspringgreen: \"#00fa9a\", lightskyblue: \"#87cefa\", lightblue: \"#add8e6\", midnightblue: \"#191970\", lightpink: \"#ffb6c1\", mistyrose: \"#ffe4e1\", moccasin: \"#ffe4b5\", mintcream: \"#f5fffa\", lightslategray: \"#778899\", lightslategrey: \"#778899\", navajowhite: \"#ffdead\", navy: \"#000080\", mediumvioletred: \"#c71585\", powderblue: \"#b0e0e6\", palegoldenrod: \"#eee8aa\", oldlace: \"#fdf5e6\", paleturquoise: \"#afeeee\", mediumturquoise: \"#48d1cc\", mediumorchid: \"#ba55d3\", rebeccapurple: \"#663399\", lightsteelblue: \"#b0c4de\", mediumslateblue: \"#7b68ee\", thistle: \"#d8bfd8\", tan: \"#d2b48c\", orchid: \"#da70d6\", mediumpurple: \"#9370db\", purple: \"#800080\", pink: \"#ffc0cb\", skyblue: \"#87ceeb\", springgreen: \"#00ff7f\", palegreen: \"#98fb98\", red: \"#ff0000\", yellow: \"#ffff00\", slateblue: \"#6a5acd\", lavenderblush: \"#fff0f5\", peru: \"#cd853f\", palevioletred: \"#db7093\", violet: \"#ee82ee\", teal: \"#008080\", slategray: \"#708090\", slategrey: \"#708090\", aliceblue: \"#f0f8ff\", darkseagreen: \"#8fbc8f\", darkolivegreen: \"#556b2f\", greenyellow: \"#adff2f\", seagreen: \"#2e8b57\", seashell: \"#fff5ee\", tomato: \"#ff6347\", silver: \"#c0c0c0\", sienna: \"#a0522d\", lavender: \"#e6e6fa\", lightgreen: \"#90ee90\", orange: \"#ffa500\", orangered: \"#ff4500\", steelblue: \"#4682b4\", royalblue: \"#4169e1\", turquoise: \"#40e0d0\", yellowgreen: \"#9acd32\", salmon: \"#fa8072\", saddlebrown: \"#8b4513\", sandybrown: \"#f4a460\", rosybrown: \"#bc8f8f\", darksalmon: \"#e9967a\", lightgoldenrodyellow: \"#fafad2\", snow: \"#fffafa\", lightgrey: \"#d3d3d3\", lightgray: \"#d3d3d3\", dimgray: \"#696969\", dimgrey: \"#696969\", olivedrab: \"#6b8e23\", olive: \"#808000\" }, i = {};\n for (var s in e)\n i[e[s]] = s;\n var n = {};\n r.prototype.toName = function(o) {\n if (!(this.rgba.a || this.rgba.r || this.rgba.g || this.rgba.b))\n return \"transparent\";\n var a, l, h = i[this.toHex()];\n if (h)\n return h;\n if (o != null && o.closest) {\n var c = this.toRgb(), u = 1 / 0, d = \"black\";\n if (!n.length)\n for (var f in e)\n n[f] = new r(e[f]).toRgb();\n for (var p in e) {\n var m = (a = c, l = n[p], Math.pow(a.r - l.r, 2) + Math.pow(a.g - l.g, 2) + Math.pow(a.b - l.b, 2));\n m < u && (u = m, d = p);\n }\n return d;\n }\n }, t.string.push([function(o) {\n var a = o.toLowerCase(), l = a === \"transparent\" ? \"#0000\" : e[a];\n return l ? new r(l).toRgb() : null;\n }, \"name\"]);\n}\nQ_([tv]);\nconst ai = class rn {\n /**\n * @param {PIXI.ColorSource} value - Optional value to use, if not provided, white is used.\n */\n constructor(t = 16777215) {\n this._value = null, this._components = new Float32Array(4), this._components.fill(1), this._int = 16777215, this.value = t;\n }\n /** Get red component (0 - 1) */\n get red() {\n return this._components[0];\n }\n /** Get green component (0 - 1) */\n get green() {\n return this._components[1];\n }\n /** Get blue component (0 - 1) */\n get blue() {\n return this._components[2];\n }\n /** Get alpha component (0 - 1) */\n get alpha() {\n return this._components[3];\n }\n /**\n * Set the value, suitable for chaining\n * @param value\n * @see PIXI.Color.value\n */\n setValue(t) {\n return this.value = t, this;\n }\n /**\n * The current color source.\n *\n * When setting:\n * - Setting to an instance of `Color` will copy its color source and components.\n * - Otherwise, `Color` will try to normalize the color source and set the components.\n * If the color source is invalid, an `Error` will be thrown and the `Color` will left unchanged.\n *\n * Note: The `null` in the setter's parameter type is added to match the TypeScript rule: return type of getter\n * must be assignable to its setter's parameter type. Setting `value` to `null` will throw an `Error`.\n *\n * When getting:\n * - A return value of `null` means the previous value was overridden (e.g., {@link PIXI.Color.multiply multiply},\n * {@link PIXI.Color.premultiply premultiply} or {@link PIXI.Color.round round}).\n * - Otherwise, the color source used when setting is returned.\n * @type {PIXI.ColorSource}\n */\n set value(t) {\n if (t instanceof rn)\n this._value = this.cloneSource(t._value), this._int = t._int, this._components.set(t._components);\n else {\n if (t === null)\n throw new Error(\"Cannot set PIXI.Color#value to null\");\n (this._value === null || !this.isSourceEqual(this._value, t)) && (this.normalize(t), this._value = this.cloneSource(t));\n }\n }\n get value() {\n return this._value;\n }\n /**\n * Copy a color source internally.\n * @param value - Color source\n */\n cloneSource(t) {\n return typeof t == \"string\" || typeof t == \"number\" || t instanceof Number || t === null ? t : Array.isArray(t) || ArrayBuffer.isView(t) ? t.slice(0) : typeof t == \"object\" && t !== null ? { ...t } : t;\n }\n /**\n * Equality check for color sources.\n * @param value1 - First color source\n * @param value2 - Second color source\n * @returns `true` if the color sources are equal, `false` otherwise.\n */\n isSourceEqual(t, e) {\n const i = typeof t;\n if (i !== typeof e)\n return !1;\n if (i === \"number\" || i === \"string\" || t instanceof Number)\n return t === e;\n if (Array.isArray(t) && Array.isArray(e) || ArrayBuffer.isView(t) && ArrayBuffer.isView(e))\n return t.length !== e.length ? !1 : t.every((s, n) => s === e[n]);\n if (t !== null && e !== null) {\n const s = Object.keys(t), n = Object.keys(e);\n return s.length !== n.length ? !1 : s.every((o) => t[o] === e[o]);\n }\n return t === e;\n }\n /**\n * Convert to a RGBA color object.\n * @example\n * import { Color } from 'pixi.js';\n * new Color('white').toRgb(); // returns { r: 1, g: 1, b: 1, a: 1 }\n */\n toRgba() {\n const [t, e, i, s] = this._components;\n return { r: t, g: e, b: i, a: s };\n }\n /**\n * Convert to a RGB color object.\n * @example\n * import { Color } from 'pixi.js';\n * new Color('white').toRgb(); // returns { r: 1, g: 1, b: 1 }\n */\n toRgb() {\n const [t, e, i] = this._components;\n return { r: t, g: e, b: i };\n }\n /** Convert to a CSS-style rgba string: `rgba(255,255,255,1.0)`. */\n toRgbaString() {\n const [t, e, i] = this.toUint8RgbArray();\n return `rgba(${t},${e},${i},${this.alpha})`;\n }\n toUint8RgbArray(t) {\n const [e, i, s] = this._components;\n return t = t ?? [], t[0] = Math.round(e * 255), t[1] = Math.round(i * 255), t[2] = Math.round(s * 255), t;\n }\n toRgbArray(t) {\n t = t ?? [];\n const [e, i, s] = this._components;\n return t[0] = e, t[1] = i, t[2] = s, t;\n }\n /**\n * Convert to a hexadecimal number.\n * @example\n * import { Color } from 'pixi.js';\n * new Color('white').toNumber(); // returns 16777215\n */\n toNumber() {\n return this._int;\n }\n /**\n * Convert to a hexadecimal number in little endian format (e.g., BBGGRR).\n * @example\n * import { Color } from 'pixi.js';\n * new Color(0xffcc99).toLittleEndianNumber(); // returns 0x99ccff\n * @returns {number} - The color as a number in little endian format.\n */\n toLittleEndianNumber() {\n const t = this._int;\n return (t >> 16) + (t & 65280) + ((t & 255) << 16);\n }\n /**\n * Multiply with another color. This action is destructive, and will\n * override the previous `value` property to be `null`.\n * @param {PIXI.ColorSource} value - The color to multiply by.\n */\n multiply(t) {\n const [e, i, s, n] = rn.temp.setValue(t)._components;\n return this._components[0] *= e, this._components[1] *= i, this._components[2] *= s, this._components[3] *= n, this.refreshInt(), this._value = null, this;\n }\n /**\n * Converts color to a premultiplied alpha format. This action is destructive, and will\n * override the previous `value` property to be `null`.\n * @param alpha - The alpha to multiply by.\n * @param {boolean} [applyToRGB=true] - Whether to premultiply RGB channels.\n * @returns {PIXI.Color} - Itself.\n */\n premultiply(t, e = !0) {\n return e && (this._components[0] *= t, this._components[1] *= t, this._components[2] *= t), this._components[3] = t, this.refreshInt(), this._value = null, this;\n }\n /**\n * Premultiplies alpha with current color.\n * @param {number} alpha - The alpha to multiply by.\n * @param {boolean} [applyToRGB=true] - Whether to premultiply RGB channels.\n * @returns {number} tint multiplied by alpha\n */\n toPremultiplied(t, e = !0) {\n if (t === 1)\n return (255 << 24) + this._int;\n if (t === 0)\n return e ? 0 : this._int;\n let i = this._int >> 16 & 255, s = this._int >> 8 & 255, n = this._int & 255;\n return e && (i = i * t + 0.5 | 0, s = s * t + 0.5 | 0, n = n * t + 0.5 | 0), (t * 255 << 24) + (i << 16) + (s << 8) + n;\n }\n /**\n * Convert to a hexidecimal string.\n * @example\n * import { Color } from 'pixi.js';\n * new Color('white').toHex(); // returns \"#ffffff\"\n */\n toHex() {\n const t = this._int.toString(16);\n return `#${\"000000\".substring(0, 6 - t.length) + t}`;\n }\n /**\n * Convert to a hexidecimal string with alpha.\n * @example\n * import { Color } from 'pixi.js';\n * new Color('white').toHexa(); // returns \"#ffffffff\"\n */\n toHexa() {\n const t = Math.round(this._components[3] * 255).toString(16);\n return this.toHex() + \"00\".substring(0, 2 - t.length) + t;\n }\n /**\n * Set alpha, suitable for chaining.\n * @param alpha\n */\n setAlpha(t) {\n return this._components[3] = this._clamp(t), this;\n }\n /**\n * Rounds the specified color according to the step. This action is destructive, and will\n * override the previous `value` property to be `null`. The alpha component is not rounded.\n * @param steps - Number of steps which will be used as a cap when rounding colors\n * @deprecated since 7.3.0\n */\n round(t) {\n const [e, i, s] = this._components;\n return this._components[0] = Math.round(e * t) / t, this._components[1] = Math.round(i * t) / t, this._components[2] = Math.round(s * t) / t, this.refreshInt(), this._value = null, this;\n }\n toArray(t) {\n t = t ?? [];\n const [e, i, s, n] = this._components;\n return t[0] = e, t[1] = i, t[2] = s, t[3] = n, t;\n }\n /**\n * Normalize the input value into rgba\n * @param value - Input value\n */\n normalize(t) {\n let e, i, s, n;\n if ((typeof t == \"number\" || t instanceof Number) && t >= 0 && t <= 16777215) {\n const o = t;\n e = (o >> 16 & 255) / 255, i = (o >> 8 & 255) / 255, s = (o & 255) / 255, n = 1;\n } else if ((Array.isArray(t) || t instanceof Float32Array) && t.length >= 3 && t.length <= 4)\n t = this._clamp(t), [e, i, s, n = 1] = t;\n else if ((t instanceof Uint8Array || t instanceof Uint8ClampedArray) && t.length >= 3 && t.length <= 4)\n t = this._clamp(t, 0, 255), [e, i, s, n = 255] = t, e /= 255, i /= 255, s /= 255, n /= 255;\n else if (typeof t == \"string\" || typeof t == \"object\") {\n if (typeof t == \"string\") {\n const a = rn.HEX_PATTERN.exec(t);\n a && (t = `#${a[2]}`);\n }\n const o = Ce(t);\n o.isValid() && ({ r: e, g: i, b: s, a: n } = o.rgba, e /= 255, i /= 255, s /= 255);\n }\n if (e !== void 0)\n this._components[0] = e, this._components[1] = i, this._components[2] = s, this._components[3] = n, this.refreshInt();\n else\n throw new Error(`Unable to convert color ${t}`);\n }\n /** Refresh the internal color rgb number */\n refreshInt() {\n this._clamp(this._components);\n const [t, e, i] = this._components;\n this._int = (t * 255 << 16) + (e * 255 << 8) + (i * 255 | 0);\n }\n /**\n * Clamps values to a range. Will override original values\n * @param value - Value(s) to clamp\n * @param min - Minimum value\n * @param max - Maximum value\n */\n _clamp(t, e = 0, i = 1) {\n return typeof t == \"number\" ? Math.min(Math.max(t, e), i) : (t.forEach((s, n) => {\n t[n] = Math.min(Math.max(s, e), i);\n }), t);\n }\n};\nai.shared = new ai(), /**\n* Temporary Color object for static uses internally.\n* As to not conflict with Color.shared.\n* @ignore\n*/\nai.temp = new ai(), /** Pattern for hex strings */\nai.HEX_PATTERN = /^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;\nlet xt = ai;\nfunction ev(r) {\n return at(\"7.2.0\", \"utils.hex2string is deprecated, use Color#toHex instead\"), xt.shared.setValue(r).toHex();\n}\nfunction rv(r) {\n return at(\"7.2.0\", \"utils.rgb2hex is deprecated, use Color#toNumber instead\"), xt.shared.setValue(r).toNumber();\n}\nfunction iv() {\n const r = [], t = [];\n for (let i = 0; i < 32; i++)\n r[i] = i, t[i] = i;\n r[J.NORMAL_NPM] = J.NORMAL, r[J.ADD_NPM] = J.ADD, r[J.SCREEN_NPM] = J.SCREEN, t[J.NORMAL] = J.NORMAL_NPM, t[J.ADD] = J.ADD_NPM, t[J.SCREEN] = J.SCREEN_NPM;\n const e = [];\n return e.push(t), e.push(r), e;\n}\nconst dd = iv();\nfunction fd(r, t) {\n return dd[t ? 1 : 0][r];\n}\nfunction sv(r, t = null) {\n const e = r * 6;\n if (t = t || new Uint16Array(e), t.length !== e)\n throw new Error(`Out buffer length is incorrect, got ${t.length} and expected ${e}`);\n for (let i = 0, s = 0; i < e; i += 6, s += 4)\n t[i + 0] = s + 0, t[i + 1] = s + 1, t[i + 2] = s + 2, t[i + 3] = s + 0, t[i + 4] = s + 2, t[i + 5] = s + 3;\n return t;\n}\nfunction pd(r) {\n if (r.BYTES_PER_ELEMENT === 4)\n return r instanceof Float32Array ? \"Float32Array\" : r instanceof Uint32Array ? \"Uint32Array\" : \"Int32Array\";\n if (r.BYTES_PER_ELEMENT === 2) {\n if (r instanceof Uint16Array)\n return \"Uint16Array\";\n } else if (r.BYTES_PER_ELEMENT === 1 && r instanceof Uint8Array)\n return \"Uint8Array\";\n return null;\n}\nfunction Tn(r) {\n return r += r === 0 ? 1 : 0, --r, r |= r >>> 1, r |= r >>> 2, r |= r >>> 4, r |= r >>> 8, r |= r >>> 16, r + 1;\n}\nfunction tc(r) {\n return !(r & r - 1) && !!r;\n}\nfunction ec(r) {\n let t = (r > 65535 ? 1 : 0) << 4;\n r >>>= t;\n let e = (r > 255 ? 1 : 0) << 3;\n return r >>>= e, t |= e, e = (r > 15 ? 1 : 0) << 2, r >>>= e, t |= e, e = (r > 3 ? 1 : 0) << 1, r >>>= e, t |= e, t | r >> 1;\n}\nfunction xi(r, t, e) {\n const i = r.length;\n let s;\n if (t >= i || e === 0)\n return;\n e = t + e > i ? i - t : e;\n const n = i - e;\n for (s = t; s < n; ++s)\n r[s] = r[s + e];\n r.length = n;\n}\nfunction gr(r) {\n return r === 0 ? 0 : r < 0 ? -1 : 1;\n}\nlet nv = 0;\nfunction Xr() {\n return ++nv;\n}\nconst xa = class {\n /**\n * @param left - The left coordinate value of the bounding box.\n * @param top - The top coordinate value of the bounding box.\n * @param right - The right coordinate value of the bounding box.\n * @param bottom - The bottom coordinate value of the bounding box.\n */\n constructor(r, t, e, i) {\n this.left = r, this.top = t, this.right = e, this.bottom = i;\n }\n /** The width of the bounding box. */\n get width() {\n return this.right - this.left;\n }\n /** The height of the bounding box. */\n get height() {\n return this.bottom - this.top;\n }\n /** Determines whether the BoundingBox is empty. */\n isEmpty() {\n return this.left === this.right || this.top === this.bottom;\n }\n};\nxa.EMPTY = new xa(0, 0, 0, 0);\nlet rc = xa;\nconst ic = {}, Ie = /* @__PURE__ */ Object.create(null), ar = /* @__PURE__ */ Object.create(null);\nclass ov {\n /**\n * @param width - the width for the newly created canvas\n * @param height - the height for the newly created canvas\n * @param {number} [resolution=PIXI.settings.RESOLUTION] - The resolution / device pixel ratio of the canvas\n */\n constructor(t, e, i) {\n this._canvas = W.ADAPTER.createCanvas(), this._context = this._canvas.getContext(\"2d\"), this.resolution = i || W.RESOLUTION, this.resize(t, e);\n }\n /**\n * Clears the canvas that was created by the CanvasRenderTarget class.\n * @private\n */\n clear() {\n this._checkDestroyed(), this._context.setTransform(1, 0, 0, 1, 0, 0), this._context.clearRect(0, 0, this._canvas.width, this._canvas.height);\n }\n /**\n * Resizes the canvas to the specified width and height.\n * @param desiredWidth - the desired width of the canvas\n * @param desiredHeight - the desired height of the canvas\n */\n resize(t, e) {\n this._checkDestroyed(), this._canvas.width = Math.round(t * this.resolution), this._canvas.height = Math.round(e * this.resolution);\n }\n /** Destroys this canvas. */\n destroy() {\n this._context = null, this._canvas = null;\n }\n /**\n * The width of the canvas buffer in pixels.\n * @member {number}\n */\n get width() {\n return this._checkDestroyed(), this._canvas.width;\n }\n set width(t) {\n this._checkDestroyed(), this._canvas.width = Math.round(t);\n }\n /**\n * The height of the canvas buffer in pixels.\n * @member {number}\n */\n get height() {\n return this._checkDestroyed(), this._canvas.height;\n }\n set height(t) {\n this._checkDestroyed(), this._canvas.height = Math.round(t);\n }\n /** The Canvas object that belongs to this CanvasRenderTarget. */\n get canvas() {\n return this._checkDestroyed(), this._canvas;\n }\n /** A CanvasRenderingContext2D object representing a two-dimensional rendering context. */\n get context() {\n return this._checkDestroyed(), this._context;\n }\n _checkDestroyed() {\n if (this._canvas === null)\n throw new TypeError(\"The CanvasRenderTarget has already been destroyed\");\n }\n}\nfunction sc(r, t, e) {\n for (let i = 0, s = 4 * e * t; i < t; ++i, s += 4)\n if (r[s + 3] !== 0)\n return !1;\n return !0;\n}\nfunction nc(r, t, e, i, s) {\n const n = 4 * t;\n for (let o = i, a = i * n + 4 * e; o <= s; ++o, a += n)\n if (r[a + 3] !== 0)\n return !1;\n return !0;\n}\nfunction av(r) {\n const { width: t, height: e } = r, i = r.getContext(\"2d\", {\n willReadFrequently: !0\n });\n if (i === null)\n throw new TypeError(\"Failed to get canvas 2D context\");\n const s = i.getImageData(0, 0, t, e).data;\n let n = 0, o = 0, a = t - 1, l = e - 1;\n for (; o < e && sc(s, t, o); )\n ++o;\n if (o === e)\n return rc.EMPTY;\n for (; sc(s, t, l); )\n --l;\n for (; nc(s, t, n, o, l); )\n ++n;\n for (; nc(s, t, a, o, l); )\n --a;\n return ++a, ++l, new rc(n, o, a, l);\n}\nfunction lv(r) {\n const t = av(r), { width: e, height: i } = t;\n let s = null;\n if (!t.isEmpty()) {\n const n = r.getContext(\"2d\");\n if (n === null)\n throw new TypeError(\"Failed to get canvas 2D context\");\n s = n.getImageData(\n t.left,\n t.top,\n e,\n i\n );\n }\n return { width: e, height: i, data: s };\n}\nfunction hv(r, t = globalThis.location) {\n if (r.startsWith(\"data:\"))\n return \"\";\n t = t || globalThis.location;\n const e = new URL(r, document.baseURI);\n return e.hostname !== t.hostname || e.port !== t.port || e.protocol !== t.protocol ? \"anonymous\" : \"\";\n}\nfunction rr(r, t = 1) {\n var i;\n const e = (i = W.RETINA_PREFIX) == null ? void 0 : i.exec(r);\n return e ? parseFloat(e[1]) : t;\n}\nvar H = /* @__PURE__ */ ((r) => (r.Renderer = \"renderer\", r.Application = \"application\", r.RendererSystem = \"renderer-webgl-system\", r.RendererPlugin = \"renderer-webgl-plugin\", r.CanvasRendererSystem = \"renderer-canvas-system\", r.CanvasRendererPlugin = \"renderer-canvas-plugin\", r.Asset = \"asset\", r.LoadParser = \"load-parser\", r.ResolveParser = \"resolve-parser\", r.CacheParser = \"cache-parser\", r.DetectionParser = \"detection-parser\", r))(H || {});\nconst ba = (r) => {\n if (typeof r == \"function\" || typeof r == \"object\" && r.extension) {\n if (!r.extension)\n throw new Error(\"Extension class must have an extension object\");\n r = { ...typeof r.extension != \"object\" ? { type: r.extension } : r.extension, ref: r };\n }\n if (typeof r == \"object\")\n r = { ...r };\n else\n throw new Error(\"Invalid extension type\");\n return typeof r.type == \"string\" && (r.type = [r.type]), r;\n}, oc = (r, t) => ba(r).priority ?? t, q = {\n /** @ignore */\n _addHandlers: {},\n /** @ignore */\n _removeHandlers: {},\n /** @ignore */\n _queue: {},\n /**\n * Remove extensions from PixiJS.\n * @param extensions - Extensions to be removed.\n * @returns {PIXI.extensions} For chaining.\n */\n remove(...r) {\n return r.map(ba).forEach((t) => {\n t.type.forEach((e) => {\n var i, s;\n return (s = (i = this._removeHandlers)[e]) == null ? void 0 : s.call(i, t);\n });\n }), this;\n },\n /**\n * Register new extensions with PixiJS.\n * @param extensions - The spread of extensions to add to PixiJS.\n * @returns {PIXI.extensions} For chaining.\n */\n add(...r) {\n return r.map(ba).forEach((t) => {\n t.type.forEach((e) => {\n var n, o;\n const i = this._addHandlers, s = this._queue;\n i[e] ? (n = i[e]) == null || n.call(i, t) : (s[e] = s[e] || [], (o = s[e]) == null || o.push(t));\n });\n }), this;\n },\n /**\n * Internal method to handle extensions by name.\n * @param type - The extension type.\n * @param onAdd - Function for handling when extensions are added/registered passes {@link PIXI.ExtensionFormat}.\n * @param onRemove - Function for handling when extensions are removed/unregistered passes {@link PIXI.ExtensionFormat}.\n * @returns {PIXI.extensions} For chaining.\n */\n handle(r, t, e) {\n var o;\n const i = this._addHandlers, s = this._removeHandlers;\n if (i[r] || s[r])\n throw new Error(`Extension type ${r} already has a handler`);\n i[r] = t, s[r] = e;\n const n = this._queue;\n return n[r] && ((o = n[r]) == null || o.forEach((a) => t(a)), delete n[r]), this;\n },\n /**\n * Handle a type, but using a map by `name` property.\n * @param type - Type of extension to handle.\n * @param map - The object map of named extensions.\n * @returns {PIXI.extensions} For chaining.\n */\n handleByMap(r, t) {\n return this.handle(\n r,\n (e) => {\n e.name && (t[e.name] = e.ref);\n },\n (e) => {\n e.name && delete t[e.name];\n }\n );\n },\n /**\n * Handle a type, but using a list of extensions.\n * @param type - Type of extension to handle.\n * @param list - The list of extensions.\n * @param defaultPriority - The default priority to use if none is specified.\n * @returns {PIXI.extensions} For chaining.\n */\n handleByList(r, t, e = -1) {\n return this.handle(\n r,\n (i) => {\n t.includes(i.ref) || (t.push(i.ref), t.sort((s, n) => oc(n, e) - oc(s, e)));\n },\n (i) => {\n const s = t.indexOf(i.ref);\n s !== -1 && t.splice(s, 1);\n }\n );\n }\n};\nclass wa {\n constructor(t) {\n typeof t == \"number\" ? this.rawBinaryData = new ArrayBuffer(t) : t instanceof Uint8Array ? this.rawBinaryData = t.buffer : this.rawBinaryData = t, this.uint32View = new Uint32Array(this.rawBinaryData), this.float32View = new Float32Array(this.rawBinaryData);\n }\n /** View on the raw binary data as a `Int8Array`. */\n get int8View() {\n return this._int8View || (this._int8View = new Int8Array(this.rawBinaryData)), this._int8View;\n }\n /** View on the raw binary data as a `Uint8Array`. */\n get uint8View() {\n return this._uint8View || (this._uint8View = new Uint8Array(this.rawBinaryData)), this._uint8View;\n }\n /** View on the raw binary data as a `Int16Array`. */\n get int16View() {\n return this._int16View || (this._int16View = new Int16Array(this.rawBinaryData)), this._int16View;\n }\n /** View on the raw binary data as a `Uint16Array`. */\n get uint16View() {\n return this._uint16View || (this._uint16View = new Uint16Array(this.rawBinaryData)), this._uint16View;\n }\n /** View on the raw binary data as a `Int32Array`. */\n get int32View() {\n return this._int32View || (this._int32View = new Int32Array(this.rawBinaryData)), this._int32View;\n }\n /**\n * Returns the view of the given type.\n * @param type - One of `int8`, `uint8`, `int16`,\n * `uint16`, `int32`, `uint32`, and `float32`.\n * @returns - typed array of given type\n */\n view(t) {\n return this[`${t}View`];\n }\n /** Destroys all buffer references. Do not use after calling this. */\n destroy() {\n this.rawBinaryData = null, this._int8View = null, this._uint8View = null, this._int16View = null, this._uint16View = null, this._int32View = null, this.uint32View = null, this.float32View = null;\n }\n static sizeOf(t) {\n switch (t) {\n case \"int8\":\n case \"uint8\":\n return 1;\n case \"int16\":\n case \"uint16\":\n return 2;\n case \"int32\":\n case \"uint32\":\n case \"float32\":\n return 4;\n default:\n throw new Error(`${t} isn't a valid view type`);\n }\n }\n}\nconst cv = [\n \"precision mediump float;\",\n \"void main(void){\",\n \"float test = 0.1;\",\n \"%forloop%\",\n \"gl_FragColor = vec4(0.0);\",\n \"}\"\n].join(`\n`);\nfunction uv(r) {\n let t = \"\";\n for (let e = 0; e < r; ++e)\n e > 0 && (t += `\nelse `), e < r - 1 && (t += `if(test == ${e}.0){}`);\n return t;\n}\nfunction dv(r, t) {\n if (r === 0)\n throw new Error(\"Invalid value of `0` passed to `checkMaxIfStatementsInShader`\");\n const e = t.createShader(t.FRAGMENT_SHADER);\n for (; ; ) {\n const i = cv.replace(/%forloop%/gi, uv(r));\n if (t.shaderSource(e, i), t.compileShader(e), !t.getShaderParameter(e, t.COMPILE_STATUS))\n r = r / 2 | 0;\n else\n break;\n }\n return r;\n}\nconst Po = 0, Ro = 1, Mo = 2, Bo = 3, Do = 4, Oo = 5;\nclass ze {\n constructor() {\n this.data = 0, this.blendMode = J.NORMAL, this.polygonOffset = 0, this.blend = !0, this.depthMask = !0;\n }\n /**\n * Activates blending of the computed fragment color values.\n * @default true\n */\n get blend() {\n return !!(this.data & 1 << Po);\n }\n set blend(t) {\n !!(this.data & 1 << Po) !== t && (this.data ^= 1 << Po);\n }\n /**\n * Activates adding an offset to depth values of polygon's fragments\n * @default false\n */\n get offsets() {\n return !!(this.data & 1 << Ro);\n }\n set offsets(t) {\n !!(this.data & 1 << Ro) !== t && (this.data ^= 1 << Ro);\n }\n /**\n * Activates culling of polygons.\n * @default false\n */\n get culling() {\n return !!(this.data & 1 << Mo);\n }\n set culling(t) {\n !!(this.data & 1 << Mo) !== t && (this.data ^= 1 << Mo);\n }\n /**\n * Activates depth comparisons and updates to the depth buffer.\n * @default false\n */\n get depthTest() {\n return !!(this.data & 1 << Bo);\n }\n set depthTest(t) {\n !!(this.data & 1 << Bo) !== t && (this.data ^= 1 << Bo);\n }\n /**\n * Enables or disables writing to the depth buffer.\n * @default true\n */\n get depthMask() {\n return !!(this.data & 1 << Oo);\n }\n set depthMask(t) {\n !!(this.data & 1 << Oo) !== t && (this.data ^= 1 << Oo);\n }\n /**\n * Specifies whether or not front or back-facing polygons can be culled.\n * @default false\n */\n get clockwiseFrontFace() {\n return !!(this.data & 1 << Do);\n }\n set clockwiseFrontFace(t) {\n !!(this.data & 1 << Do) !== t && (this.data ^= 1 << Do);\n }\n /**\n * The blend mode to be applied when this state is set. Apply a value of `PIXI.BLEND_MODES.NORMAL` to reset the blend mode.\n * Setting this mode to anything other than NO_BLEND will automatically switch blending on.\n * @default PIXI.BLEND_MODES.NORMAL\n */\n get blendMode() {\n return this._blendMode;\n }\n set blendMode(t) {\n this.blend = t !== J.NONE, this._blendMode = t;\n }\n /**\n * The polygon offset. Setting this property to anything other than 0 will automatically enable polygon offset fill.\n * @default 0\n */\n get polygonOffset() {\n return this._polygonOffset;\n }\n set polygonOffset(t) {\n this.offsets = !!t, this._polygonOffset = t;\n }\n static for2d() {\n const t = new ze();\n return t.depthTest = !1, t.blend = !0, t;\n }\n}\nze.prototype.toString = function() {\n return `[@pixi/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`;\n};\nconst Ea = [];\nfunction md(r, t) {\n if (!r)\n return null;\n let e = \"\";\n if (typeof r == \"string\") {\n const i = /\\.(\\w{3,4})(?:$|\\?|#)/i.exec(r);\n i && (e = i[1].toLowerCase());\n }\n for (let i = Ea.length - 1; i >= 0; --i) {\n const s = Ea[i];\n if (s.test && s.test(r, e))\n return new s(r, t);\n }\n throw new Error(\"Unrecognized source type to auto-detect Resource\");\n}\nclass xe {\n /**\n * @param {string} name - The function name that will be executed on the listeners added to this Runner.\n */\n constructor(t) {\n this.items = [], this._name = t, this._aliasCount = 0;\n }\n /* eslint-disable jsdoc/require-param, jsdoc/check-param-names */\n /**\n * Dispatch/Broadcast Runner to all listeners added to the queue.\n * @param {...any} params - (optional) parameters to pass to each listener\n */\n /* eslint-enable jsdoc/require-param, jsdoc/check-param-names */\n emit(t, e, i, s, n, o, a, l) {\n if (arguments.length > 8)\n throw new Error(\"max arguments reached\");\n const { name: h, items: c } = this;\n this._aliasCount++;\n for (let u = 0, d = c.length; u < d; u++)\n c[u][h](t, e, i, s, n, o, a, l);\n return c === this.items && this._aliasCount--, this;\n }\n ensureNonAliasedItems() {\n this._aliasCount > 0 && this.items.length > 1 && (this._aliasCount = 0, this.items = this.items.slice(0));\n }\n /**\n * Add a listener to the Runner\n *\n * Runners do not need to have scope or functions passed to them.\n * All that is required is to pass the listening object and ensure that it has contains a function that has the same name\n * as the name provided to the Runner when it was created.\n *\n * E.g. A listener passed to this Runner will require a 'complete' function.\n *\n * ```js\n * import { Runner } from '@pixi/runner';\n *\n * const complete = new Runner('complete');\n * ```\n *\n * The scope used will be the object itself.\n * @param {any} item - The object that will be listening.\n */\n add(t) {\n return t[this._name] && (this.ensureNonAliasedItems(), this.remove(t), this.items.push(t)), this;\n }\n /**\n * Remove a single listener from the dispatch queue.\n * @param {any} item - The listener that you would like to remove.\n */\n remove(t) {\n const e = this.items.indexOf(t);\n return e !== -1 && (this.ensureNonAliasedItems(), this.items.splice(e, 1)), this;\n }\n /**\n * Check to see if the listener is already in the Runner\n * @param {any} item - The listener that you would like to check.\n */\n contains(t) {\n return this.items.includes(t);\n }\n /** Remove all listeners from the Runner */\n removeAll() {\n return this.ensureNonAliasedItems(), this.items.length = 0, this;\n }\n /** Remove all references, don't use after this. */\n destroy() {\n this.removeAll(), this.items.length = 0, this._name = \"\";\n }\n /**\n * `true` if there are no this Runner contains no listeners\n * @readonly\n */\n get empty() {\n return this.items.length === 0;\n }\n /**\n * The name of the runner.\n * @type {string}\n */\n get name() {\n return this._name;\n }\n}\nObject.defineProperties(xe.prototype, {\n /**\n * Alias for `emit`\n * @memberof PIXI.Runner#\n * @method dispatch\n * @see PIXI.Runner#emit\n */\n dispatch: { value: xe.prototype.emit },\n /**\n * Alias for `emit`\n * @memberof PIXI.Runner#\n * @method run\n * @see PIXI.Runner#emit\n */\n run: { value: xe.prototype.emit }\n});\nclass ds {\n /**\n * @param width - Width of the resource\n * @param height - Height of the resource\n */\n constructor(t = 0, e = 0) {\n this._width = t, this._height = e, this.destroyed = !1, this.internal = !1, this.onResize = new xe(\"setRealSize\"), this.onUpdate = new xe(\"update\"), this.onError = new xe(\"onError\");\n }\n /**\n * Bind to a parent BaseTexture\n * @param baseTexture - Parent texture\n */\n bind(t) {\n this.onResize.add(t), this.onUpdate.add(t), this.onError.add(t), (this._width || this._height) && this.onResize.emit(this._width, this._height);\n }\n /**\n * Unbind to a parent BaseTexture\n * @param baseTexture - Parent texture\n */\n unbind(t) {\n this.onResize.remove(t), this.onUpdate.remove(t), this.onError.remove(t);\n }\n /**\n * Trigger a resize event\n * @param width - X dimension\n * @param height - Y dimension\n */\n resize(t, e) {\n (t !== this._width || e !== this._height) && (this._width = t, this._height = e, this.onResize.emit(t, e));\n }\n /**\n * Has been validated\n * @readonly\n */\n get valid() {\n return !!this._width && !!this._height;\n }\n /** Has been updated trigger event. */\n update() {\n this.destroyed || this.onUpdate.emit();\n }\n /**\n * This can be overridden to start preloading a resource\n * or do any other prepare step.\n * @protected\n * @returns Handle the validate event\n */\n load() {\n return Promise.resolve(this);\n }\n /**\n * The width of the resource.\n * @readonly\n */\n get width() {\n return this._width;\n }\n /**\n * The height of the resource.\n * @readonly\n */\n get height() {\n return this._height;\n }\n /**\n * Set the style, optional to override\n * @param _renderer - yeah, renderer!\n * @param _baseTexture - the texture\n * @param _glTexture - texture instance for this webgl context\n * @returns - `true` is success\n */\n style(t, e, i) {\n return !1;\n }\n /** Clean up anything, this happens when destroying is ready. */\n dispose() {\n }\n /**\n * Call when destroying resource, unbind any BaseTexture object\n * before calling this method, as reference counts are maintained\n * internally.\n */\n destroy() {\n this.destroyed || (this.destroyed = !0, this.dispose(), this.onError.removeAll(), this.onError = null, this.onResize.removeAll(), this.onResize = null, this.onUpdate.removeAll(), this.onUpdate = null);\n }\n /**\n * Abstract, used to auto-detect resource type.\n * @param {*} _source - The source object\n * @param {string} _extension - The extension of source, if set\n */\n static test(t, e) {\n return !1;\n }\n}\nclass Wn extends ds {\n /**\n * @param source - Source buffer\n * @param options - Options\n * @param {number} options.width - Width of the texture\n * @param {number} options.height - Height of the texture\n * @param {1|2|4|8} [options.unpackAlignment=4] - The alignment of the pixel rows.\n */\n constructor(t, e) {\n const { width: i, height: s } = e || {};\n if (!i || !s)\n throw new Error(\"BufferResource width or height invalid\");\n super(i, s), this.data = t, this.unpackAlignment = e.unpackAlignment ?? 4;\n }\n /**\n * Upload the texture to the GPU.\n * @param renderer - Upload to the renderer\n * @param baseTexture - Reference to parent texture\n * @param glTexture - glTexture\n * @returns - true is success\n */\n upload(t, e, i) {\n const s = t.gl;\n s.pixelStorei(s.UNPACK_ALIGNMENT, this.unpackAlignment), s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.alphaMode === te.UNPACK);\n const n = e.realWidth, o = e.realHeight;\n return i.width === n && i.height === o ? s.texSubImage2D(\n e.target,\n 0,\n 0,\n 0,\n n,\n o,\n e.format,\n i.type,\n this.data\n ) : (i.width = n, i.height = o, s.texImage2D(\n e.target,\n 0,\n i.internalFormat,\n n,\n o,\n 0,\n e.format,\n i.type,\n this.data\n )), !0;\n }\n /** Destroy and don't use after this. */\n dispose() {\n this.data = null;\n }\n /**\n * Used to auto-detect the type of resource.\n * @param {*} source - The source object\n * @returns {boolean} `true` if buffer source\n */\n static test(t) {\n return t === null || t instanceof Int8Array || t instanceof Uint8Array || t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array;\n }\n}\nconst fv = {\n scaleMode: Ye.NEAREST,\n alphaMode: te.NPM\n}, Ta = class li extends ms {\n /**\n * @param {PIXI.Resource|PIXI.ImageSource|string} [resource=null] -\n * The current resource to use, for things that aren't Resource objects, will be converted\n * into a Resource.\n * @param options - Collection of options, default options inherited from {@link PIXI.BaseTexture.defaultOptions}.\n * @param {PIXI.MIPMAP_MODES} [options.mipmap] - If mipmapping is enabled for texture\n * @param {number} [options.anisotropicLevel] - Anisotropic filtering level of texture\n * @param {PIXI.WRAP_MODES} [options.wrapMode] - Wrap mode for textures\n * @param {PIXI.SCALE_MODES} [options.scaleMode] - Default scale mode, linear, nearest\n * @param {PIXI.FORMATS} [options.format] - GL format type\n * @param {PIXI.TYPES} [options.type] - GL data type\n * @param {PIXI.TARGETS} [options.target] - GL texture target\n * @param {PIXI.ALPHA_MODES} [options.alphaMode] - Pre multiply the image alpha\n * @param {number} [options.width=0] - Width of the texture\n * @param {number} [options.height=0] - Height of the texture\n * @param {number} [options.resolution=PIXI.settings.RESOLUTION] - Resolution of the base texture\n * @param {object} [options.resourceOptions] - Optional resource options,\n * see {@link PIXI.autoDetectResource autoDetectResource}\n */\n constructor(t = null, e = null) {\n super(), e = Object.assign({}, li.defaultOptions, e);\n const {\n alphaMode: i,\n mipmap: s,\n anisotropicLevel: n,\n scaleMode: o,\n width: a,\n height: l,\n wrapMode: h,\n format: c,\n type: u,\n target: d,\n resolution: f,\n resourceOptions: p\n } = e;\n t && !(t instanceof ds) && (t = md(t, p), t.internal = !0), this.resolution = f || W.RESOLUTION, this.width = Math.round((a || 0) * this.resolution) / this.resolution, this.height = Math.round((l || 0) * this.resolution) / this.resolution, this._mipmap = s, this.anisotropicLevel = n, this._wrapMode = h, this._scaleMode = o, this.format = c, this.type = u, this.target = d, this.alphaMode = i, this.uid = Xr(), this.touched = 0, this.isPowerOfTwo = !1, this._refreshPOT(), this._glTextures = {}, this.dirtyId = 0, this.dirtyStyleId = 0, this.cacheId = null, this.valid = a > 0 && l > 0, this.textureCacheIds = [], this.destroyed = !1, this.resource = null, this._batchEnabled = 0, this._batchLocation = 0, this.parentTextureArray = null, this.setResource(t);\n }\n /**\n * Pixel width of the source of this texture\n * @readonly\n */\n get realWidth() {\n return Math.round(this.width * this.resolution);\n }\n /**\n * Pixel height of the source of this texture\n * @readonly\n */\n get realHeight() {\n return Math.round(this.height * this.resolution);\n }\n /**\n * Mipmap mode of the texture, affects downscaled images\n * @default PIXI.MIPMAP_MODES.POW2\n */\n get mipmap() {\n return this._mipmap;\n }\n set mipmap(t) {\n this._mipmap !== t && (this._mipmap = t, this.dirtyStyleId++);\n }\n /**\n * The scale mode to apply when scaling this texture\n * @default PIXI.SCALE_MODES.LINEAR\n */\n get scaleMode() {\n return this._scaleMode;\n }\n set scaleMode(t) {\n this._scaleMode !== t && (this._scaleMode = t, this.dirtyStyleId++);\n }\n /**\n * How the texture wraps\n * @default PIXI.WRAP_MODES.CLAMP\n */\n get wrapMode() {\n return this._wrapMode;\n }\n set wrapMode(t) {\n this._wrapMode !== t && (this._wrapMode = t, this.dirtyStyleId++);\n }\n /**\n * Changes style options of BaseTexture\n * @param scaleMode - Pixi scalemode\n * @param mipmap - enable mipmaps\n * @returns - this\n */\n setStyle(t, e) {\n let i;\n return t !== void 0 && t !== this.scaleMode && (this.scaleMode = t, i = !0), e !== void 0 && e !== this.mipmap && (this.mipmap = e, i = !0), i && this.dirtyStyleId++, this;\n }\n /**\n * Changes w/h/resolution. Texture becomes valid if width and height are greater than zero.\n * @param desiredWidth - Desired visual width\n * @param desiredHeight - Desired visual height\n * @param resolution - Optionally set resolution\n * @returns - this\n */\n setSize(t, e, i) {\n return i = i || this.resolution, this.setRealSize(t * i, e * i, i);\n }\n /**\n * Sets real size of baseTexture, preserves current resolution.\n * @param realWidth - Full rendered width\n * @param realHeight - Full rendered height\n * @param resolution - Optionally set resolution\n * @returns - this\n */\n setRealSize(t, e, i) {\n return this.resolution = i || this.resolution, this.width = Math.round(t) / this.resolution, this.height = Math.round(e) / this.resolution, this._refreshPOT(), this.update(), this;\n }\n /**\n * Refresh check for isPowerOfTwo texture based on size\n * @private\n */\n _refreshPOT() {\n this.isPowerOfTwo = tc(this.realWidth) && tc(this.realHeight);\n }\n /**\n * Changes resolution\n * @param resolution - res\n * @returns - this\n */\n setResolution(t) {\n const e = this.resolution;\n return e === t ? this : (this.resolution = t, this.valid && (this.width = Math.round(this.width * e) / t, this.height = Math.round(this.height * e) / t, this.emit(\"update\", this)), this._refreshPOT(), this);\n }\n /**\n * Sets the resource if it wasn't set. Throws error if resource already present\n * @param resource - that is managing this BaseTexture\n * @returns - this\n */\n setResource(t) {\n if (this.resource === t)\n return this;\n if (this.resource)\n throw new Error(\"Resource can be set only once\");\n return t.bind(this), this.resource = t, this;\n }\n /** Invalidates the object. Texture becomes valid if width and height are greater than zero. */\n update() {\n this.valid ? (this.dirtyId++, this.dirtyStyleId++, this.emit(\"update\", this)) : this.width > 0 && this.height > 0 && (this.valid = !0, this.emit(\"loaded\", this), this.emit(\"update\", this));\n }\n /**\n * Handle errors with resources.\n * @private\n * @param event - Error event emitted.\n */\n onError(t) {\n this.emit(\"error\", this, t);\n }\n /**\n * Destroys this base texture.\n * The method stops if resource doesn't want this texture to be destroyed.\n * Removes texture from all caches.\n * @fires PIXI.BaseTexture#destroyed\n */\n destroy() {\n this.resource && (this.resource.unbind(this), this.resource.internal && this.resource.destroy(), this.resource = null), this.cacheId && (delete ar[this.cacheId], delete Ie[this.cacheId], this.cacheId = null), this.valid = !1, this.dispose(), li.removeFromCache(this), this.textureCacheIds = null, this.destroyed = !0, this.emit(\"destroyed\", this), this.removeAllListeners();\n }\n /**\n * Frees the texture from WebGL memory without destroying this texture object.\n * This means you can still use the texture later which will upload it to GPU\n * memory again.\n * @fires PIXI.BaseTexture#dispose\n */\n dispose() {\n this.emit(\"dispose\", this);\n }\n /** Utility function for BaseTexture|Texture cast. */\n castToBaseTexture() {\n return this;\n }\n /**\n * Helper function that creates a base texture based on the source you provide.\n * The source can be - image url, image element, canvas element. If the\n * source is an image url or an image element and not in the base texture\n * cache, it will be created and loaded.\n * @static\n * @param {PIXI.ImageSource|string|string[]} source - The\n * source to create base texture from.\n * @param options - See {@link PIXI.BaseTexture}'s constructor for options.\n * @param {string} [options.pixiIdPrefix=pixiid] - If a source has no id, this is the prefix of the generated id\n * @param {boolean} [strict] - Enforce strict-mode, see {@link PIXI.settings.STRICT_TEXTURE_CACHE}.\n * @returns {PIXI.BaseTexture} The new base texture.\n */\n static from(t, e, i = W.STRICT_TEXTURE_CACHE) {\n const s = typeof t == \"string\";\n let n = null;\n if (s)\n n = t;\n else {\n if (!t._pixiId) {\n const a = (e == null ? void 0 : e.pixiIdPrefix) || \"pixiid\";\n t._pixiId = `${a}_${Xr()}`;\n }\n n = t._pixiId;\n }\n let o = ar[n];\n if (s && i && !o)\n throw new Error(`The cacheId \"${n}\" does not exist in BaseTextureCache.`);\n return o || (o = new li(t, e), o.cacheId = n, li.addToCache(o, n)), o;\n }\n /**\n * Create a new Texture with a BufferResource from a typed array.\n * @param buffer - The optional array to use. If no data is provided, a new Float32Array is created.\n * @param width - Width of the resource\n * @param height - Height of the resource\n * @param options - See {@link PIXI.BaseTexture}'s constructor for options.\n * Default properties are different from the constructor's defaults.\n * @param {PIXI.FORMATS} [options.format] - The format is not given, the type is inferred from the\n * type of the buffer: `RGBA` if Float32Array, Int8Array, Uint8Array, or Uint8ClampedArray,\n * otherwise `RGBA_INTEGER`.\n * @param {PIXI.TYPES} [options.type] - The type is not given, the type is inferred from the\n * type of the buffer. Maps Float32Array to `FLOAT`, Int32Array to `INT`, Uint32Array to\n * `UNSIGNED_INT`, Int16Array to `SHORT`, Uint16Array to `UNSIGNED_SHORT`, Int8Array to `BYTE`,\n * Uint8Array/Uint8ClampedArray to `UNSIGNED_BYTE`.\n * @param {PIXI.ALPHA_MODES} [options.alphaMode=PIXI.ALPHA_MODES.NPM]\n * @param {PIXI.SCALE_MODES} [options.scaleMode=PIXI.SCALE_MODES.NEAREST]\n * @returns - The resulting new BaseTexture\n */\n static fromBuffer(t, e, i, s) {\n t = t || new Float32Array(e * i * 4);\n const n = new Wn(t, { width: e, height: i, ...s == null ? void 0 : s.resourceOptions });\n let o, a;\n return t instanceof Float32Array ? (o = U.RGBA, a = Z.FLOAT) : t instanceof Int32Array ? (o = U.RGBA_INTEGER, a = Z.INT) : t instanceof Uint32Array ? (o = U.RGBA_INTEGER, a = Z.UNSIGNED_INT) : t instanceof Int16Array ? (o = U.RGBA_INTEGER, a = Z.SHORT) : t instanceof Uint16Array ? (o = U.RGBA_INTEGER, a = Z.UNSIGNED_SHORT) : t instanceof Int8Array ? (o = U.RGBA, a = Z.BYTE) : (o = U.RGBA, a = Z.UNSIGNED_BYTE), n.internal = !0, new li(n, Object.assign({}, fv, { type: a, format: o }, s));\n }\n /**\n * Adds a BaseTexture to the global BaseTextureCache. This cache is shared across the whole PIXI object.\n * @param {PIXI.BaseTexture} baseTexture - The BaseTexture to add to the cache.\n * @param {string} id - The id that the BaseTexture will be stored against.\n */\n static addToCache(t, e) {\n e && (t.textureCacheIds.includes(e) || t.textureCacheIds.push(e), ar[e] && ar[e] !== t && console.warn(`BaseTexture added to the cache with an id [${e}] that already had an entry`), ar[e] = t);\n }\n /**\n * Remove a BaseTexture from the global BaseTextureCache.\n * @param {string|PIXI.BaseTexture} baseTexture - id of a BaseTexture to be removed, or a BaseTexture instance itself.\n * @returns {PIXI.BaseTexture|null} The BaseTexture that was removed.\n */\n static removeFromCache(t) {\n if (typeof t == \"string\") {\n const e = ar[t];\n if (e) {\n const i = e.textureCacheIds.indexOf(t);\n return i > -1 && e.textureCacheIds.splice(i, 1), delete ar[t], e;\n }\n } else if (t != null && t.textureCacheIds) {\n for (let e = 0; e < t.textureCacheIds.length; ++e)\n delete ar[t.textureCacheIds[e]];\n return t.textureCacheIds.length = 0, t;\n }\n return null;\n }\n};\nTa.defaultOptions = {\n /**\n * If mipmapping is enabled for texture.\n * @type {PIXI.MIPMAP_MODES}\n * @default PIXI.MIPMAP_MODES.POW2\n */\n mipmap: He.POW2,\n /** Anisotropic filtering level of texture */\n anisotropicLevel: 0,\n /**\n * Default scale mode, linear, nearest.\n * @type {PIXI.SCALE_MODES}\n * @default PIXI.SCALE_MODES.LINEAR\n */\n scaleMode: Ye.LINEAR,\n /**\n * Wrap mode for textures.\n * @type {PIXI.WRAP_MODES}\n * @default PIXI.WRAP_MODES.CLAMP\n */\n wrapMode: _r.CLAMP,\n /**\n * Pre multiply the image alpha\n * @type {PIXI.ALPHA_MODES}\n * @default PIXI.ALPHA_MODES.UNPACK\n */\n alphaMode: te.UNPACK,\n /**\n * GL texture target\n * @type {PIXI.TARGETS}\n * @default PIXI.TARGETS.TEXTURE_2D\n */\n target: yi.TEXTURE_2D,\n /**\n * GL format type\n * @type {PIXI.FORMATS}\n * @default PIXI.FORMATS.RGBA\n */\n format: U.RGBA,\n /**\n * GL data type\n * @type {PIXI.TYPES}\n * @default PIXI.TYPES.UNSIGNED_BYTE\n */\n type: Z.UNSIGNED_BYTE\n}, /** Global number of the texture batch, used by multi-texture renderers. */\nTa._globalBatch = 0;\nlet et = Ta;\nclass Aa {\n constructor() {\n this.texArray = null, this.blend = 0, this.type = Fe.TRIANGLES, this.start = 0, this.size = 0, this.data = null;\n }\n}\nlet pv = 0;\nclass Mt {\n /**\n * @param {PIXI.IArrayBuffer} data - the data to store in the buffer.\n * @param _static - `true` for static buffer\n * @param index - `true` for index buffer\n */\n constructor(t, e = !0, i = !1) {\n this.data = t || new Float32Array(1), this._glBuffers = {}, this._updateID = 0, this.index = i, this.static = e, this.id = pv++, this.disposeRunner = new xe(\"disposeBuffer\");\n }\n // TODO could explore flagging only a partial upload?\n /**\n * Flags this buffer as requiring an upload to the GPU.\n * @param {PIXI.IArrayBuffer|number[]} [data] - the data to update in the buffer.\n */\n update(t) {\n t instanceof Array && (t = new Float32Array(t)), this.data = t || this.data, this._updateID++;\n }\n /** Disposes WebGL resources that are connected to this geometry. */\n dispose() {\n this.disposeRunner.emit(this, !1);\n }\n /** Destroys the buffer. */\n destroy() {\n this.dispose(), this.data = null;\n }\n /**\n * Flags whether this is an index buffer.\n *\n * Index buffers are of type `ELEMENT_ARRAY_BUFFER`. Note that setting this property to false will make\n * the buffer of type `ARRAY_BUFFER`.\n *\n * For backwards compatibility.\n */\n set index(t) {\n this.type = t ? Le.ELEMENT_ARRAY_BUFFER : Le.ARRAY_BUFFER;\n }\n get index() {\n return this.type === Le.ELEMENT_ARRAY_BUFFER;\n }\n /**\n * Helper function that creates a buffer based on an array or TypedArray\n * @param {ArrayBufferView | number[]} data - the TypedArray that the buffer will store. If this is a regular Array it will be converted to a Float32Array.\n * @returns - A new Buffer based on the data provided.\n */\n static from(t) {\n return t instanceof Array && (t = new Float32Array(t)), new Mt(t);\n }\n}\nclass An {\n /**\n * @param buffer - the id of the buffer that this attribute will look for\n * @param size - the size of the attribute. If you have 2 floats per vertex (eg position x and y) this would be 2.\n * @param normalized - should the data be normalized.\n * @param {PIXI.TYPES} [type=PIXI.TYPES.FLOAT] - what type of number is the attribute. Check {@link PIXI.TYPES} to see the ones available\n * @param [stride=0] - How far apart, in bytes, the start of each value is. (used for interleaving data)\n * @param [start=0] - How far into the array to start reading values (used for interleaving data)\n * @param [instance=false] - Whether the geometry is instanced.\n * @param [divisor=1] - Divisor to use when doing instanced rendering\n */\n constructor(t, e = 0, i = !1, s = Z.FLOAT, n, o, a, l = 1) {\n this.buffer = t, this.size = e, this.normalized = i, this.type = s, this.stride = n, this.start = o, this.instance = a, this.divisor = l;\n }\n /** Destroys the Attribute. */\n destroy() {\n this.buffer = null;\n }\n /**\n * Helper function that creates an Attribute based on the information provided\n * @param buffer - the id of the buffer that this attribute will look for\n * @param [size=0] - the size of the attribute. If you have 2 floats per vertex (eg position x and y) this would be 2\n * @param [normalized=false] - should the data be normalized.\n * @param [type=PIXI.TYPES.FLOAT] - what type of number is the attribute. Check {@link PIXI.TYPES} to see the ones available\n * @param [stride=0] - How far apart, in bytes, the start of each value is. (used for interleaving data)\n * @returns - A new {@link PIXI.Attribute} based on the information provided\n */\n static from(t, e, i, s, n) {\n return new An(t, e, i, s, n);\n }\n}\nconst mv = {\n Float32Array,\n Uint32Array,\n Int32Array,\n Uint8Array\n};\nfunction gv(r, t) {\n let e = 0, i = 0;\n const s = {};\n for (let l = 0; l < r.length; l++)\n i += t[l], e += r[l].length;\n const n = new ArrayBuffer(e * 4);\n let o = null, a = 0;\n for (let l = 0; l < r.length; l++) {\n const h = t[l], c = r[l], u = pd(c);\n s[u] || (s[u] = new mv[u](n)), o = s[u];\n for (let d = 0; d < c.length; d++) {\n const f = (d / h | 0) * i + a, p = d % h;\n o[f + p] = c[d];\n }\n a += h;\n }\n return new Float32Array(n);\n}\nconst ac = { 5126: 4, 5123: 2, 5121: 1 };\nlet yv = 0;\nconst _v = {\n Float32Array,\n Uint32Array,\n Int32Array,\n Uint8Array,\n Uint16Array\n};\nclass vr {\n /**\n * @param buffers - An array of buffers. optional.\n * @param attributes - Of the geometry, optional structure of the attributes layout\n */\n constructor(t = [], e = {}) {\n this.buffers = t, this.indexBuffer = null, this.attributes = e, this.glVertexArrayObjects = {}, this.id = yv++, this.instanced = !1, this.instanceCount = 1, this.disposeRunner = new xe(\"disposeGeometry\"), this.refCount = 0;\n }\n /**\n *\n * Adds an attribute to the geometry\n * Note: `stride` and `start` should be `undefined` if you dont know them, not 0!\n * @param id - the name of the attribute (matching up to a shader)\n * @param {PIXI.Buffer|number[]} buffer - the buffer that holds the data of the attribute . You can also provide an Array and a buffer will be created from it.\n * @param size - the size of the attribute. If you have 2 floats per vertex (eg position x and y) this would be 2\n * @param normalized - should the data be normalized.\n * @param [type=PIXI.TYPES.FLOAT] - what type of number is the attribute. Check {@link PIXI.TYPES} to see the ones available\n * @param [stride=0] - How far apart, in bytes, the start of each value is. (used for interleaving data)\n * @param [start=0] - How far into the array to start reading values (used for interleaving data)\n * @param instance - Instancing flag\n * @returns - Returns self, useful for chaining.\n */\n addAttribute(t, e, i = 0, s = !1, n, o, a, l = !1) {\n if (!e)\n throw new Error(\"You must pass a buffer when creating an attribute\");\n e instanceof Mt || (e instanceof Array && (e = new Float32Array(e)), e = new Mt(e));\n const h = t.split(\"|\");\n if (h.length > 1) {\n for (let u = 0; u < h.length; u++)\n this.addAttribute(h[u], e, i, s, n);\n return this;\n }\n let c = this.buffers.indexOf(e);\n return c === -1 && (this.buffers.push(e), c = this.buffers.length - 1), this.attributes[t] = new An(c, i, s, n, o, a, l), this.instanced = this.instanced || l, this;\n }\n /**\n * Returns the requested attribute.\n * @param id - The name of the attribute required\n * @returns - The attribute requested.\n */\n getAttribute(t) {\n return this.attributes[t];\n }\n /**\n * Returns the requested buffer.\n * @param id - The name of the buffer required.\n * @returns - The buffer requested.\n */\n getBuffer(t) {\n return this.buffers[this.getAttribute(t).buffer];\n }\n /**\n *\n * Adds an index buffer to the geometry\n * The index buffer contains integers, three for each triangle in the geometry, which reference the various attribute buffers (position, colour, UV coordinates, other UV coordinates, normal, …). There is only ONE index buffer.\n * @param {PIXI.Buffer|number[]} [buffer] - The buffer that holds the data of the index buffer. You can also provide an Array and a buffer will be created from it.\n * @returns - Returns self, useful for chaining.\n */\n addIndex(t) {\n return t instanceof Mt || (t instanceof Array && (t = new Uint16Array(t)), t = new Mt(t)), t.type = Le.ELEMENT_ARRAY_BUFFER, this.indexBuffer = t, this.buffers.includes(t) || this.buffers.push(t), this;\n }\n /**\n * Returns the index buffer\n * @returns - The index buffer.\n */\n getIndex() {\n return this.indexBuffer;\n }\n /**\n * This function modifies the structure so that all current attributes become interleaved into a single buffer\n * This can be useful if your model remains static as it offers a little performance boost\n * @returns - Returns self, useful for chaining.\n */\n interleave() {\n if (this.buffers.length === 1 || this.buffers.length === 2 && this.indexBuffer)\n return this;\n const t = [], e = [], i = new Mt();\n let s;\n for (s in this.attributes) {\n const n = this.attributes[s], o = this.buffers[n.buffer];\n t.push(o.data), e.push(n.size * ac[n.type] / 4), n.buffer = 0;\n }\n for (i.data = gv(t, e), s = 0; s < this.buffers.length; s++)\n this.buffers[s] !== this.indexBuffer && this.buffers[s].destroy();\n return this.buffers = [i], this.indexBuffer && this.buffers.push(this.indexBuffer), this;\n }\n /** Get the size of the geometries, in vertices. */\n getSize() {\n for (const t in this.attributes) {\n const e = this.attributes[t];\n return this.buffers[e.buffer].data.length / (e.stride / 4 || e.size);\n }\n return 0;\n }\n /** Disposes WebGL resources that are connected to this geometry. */\n dispose() {\n this.disposeRunner.emit(this, !1);\n }\n /** Destroys the geometry. */\n destroy() {\n this.dispose(), this.buffers = null, this.indexBuffer = null, this.attributes = null;\n }\n /**\n * Returns a clone of the geometry.\n * @returns - A new clone of this geometry.\n */\n clone() {\n const t = new vr();\n for (let e = 0; e < this.buffers.length; e++)\n t.buffers[e] = new Mt(this.buffers[e].data.slice(0));\n for (const e in this.attributes) {\n const i = this.attributes[e];\n t.attributes[e] = new An(\n i.buffer,\n i.size,\n i.normalized,\n i.type,\n i.stride,\n i.start,\n i.instance\n );\n }\n return this.indexBuffer && (t.indexBuffer = t.buffers[this.buffers.indexOf(this.indexBuffer)], t.indexBuffer.type = Le.ELEMENT_ARRAY_BUFFER), t;\n }\n /**\n * Merges an array of geometries into a new single one.\n *\n * Geometry attribute styles must match for this operation to work.\n * @param geometries - array of geometries to merge\n * @returns - Shiny new geometry!\n */\n static merge(t) {\n const e = new vr(), i = [], s = [], n = [];\n let o;\n for (let a = 0; a < t.length; a++) {\n o = t[a];\n for (let l = 0; l < o.buffers.length; l++)\n s[l] = s[l] || 0, s[l] += o.buffers[l].data.length, n[l] = 0;\n }\n for (let a = 0; a < o.buffers.length; a++)\n i[a] = new _v[pd(o.buffers[a].data)](s[a]), e.buffers[a] = new Mt(i[a]);\n for (let a = 0; a < t.length; a++) {\n o = t[a];\n for (let l = 0; l < o.buffers.length; l++)\n i[l].set(o.buffers[l].data, n[l]), n[l] += o.buffers[l].data.length;\n }\n if (e.attributes = o.attributes, o.indexBuffer) {\n e.indexBuffer = e.buffers[o.buffers.indexOf(o.indexBuffer)], e.indexBuffer.type = Le.ELEMENT_ARRAY_BUFFER;\n let a = 0, l = 0, h = 0, c = 0;\n for (let u = 0; u < o.buffers.length; u++)\n if (o.buffers[u] !== o.indexBuffer) {\n c = u;\n break;\n }\n for (const u in o.attributes) {\n const d = o.attributes[u];\n (d.buffer | 0) === c && (l += d.size * ac[d.type] / 4);\n }\n for (let u = 0; u < t.length; u++) {\n const d = t[u].indexBuffer.data;\n for (let f = 0; f < d.length; f++)\n e.indexBuffer.data[f + h] += a;\n a += t[u].buffers[c].data.length / l, h += d.length;\n }\n }\n return e;\n }\n}\nclass gd extends vr {\n /**\n * @param {boolean} [_static=false] - Optimization flag, where `false`\n * is updated every frame, `true` doesn't change frame-to-frame.\n */\n constructor(t = !1) {\n super(), this._buffer = new Mt(null, t, !1), this._indexBuffer = new Mt(null, t, !0), this.addAttribute(\"aVertexPosition\", this._buffer, 2, !1, Z.FLOAT).addAttribute(\"aTextureCoord\", this._buffer, 2, !1, Z.FLOAT).addAttribute(\"aColor\", this._buffer, 4, !0, Z.UNSIGNED_BYTE).addAttribute(\"aTextureId\", this._buffer, 1, !0, Z.FLOAT).addIndex(this._indexBuffer);\n }\n}\nconst Sn = Math.PI * 2, vv = 180 / Math.PI, xv = Math.PI / 180;\nvar zt = /* @__PURE__ */ ((r) => (r[r.POLY = 0] = \"POLY\", r[r.RECT = 1] = \"RECT\", r[r.CIRC = 2] = \"CIRC\", r[r.ELIP = 3] = \"ELIP\", r[r.RREC = 4] = \"RREC\", r))(zt || {});\nclass ft {\n /**\n * Creates a new `Point`\n * @param {number} [x=0] - position of the point on the x axis\n * @param {number} [y=0] - position of the point on the y axis\n */\n constructor(t = 0, e = 0) {\n this.x = 0, this.y = 0, this.x = t, this.y = e;\n }\n /**\n * Creates a clone of this point\n * @returns A clone of this point\n */\n clone() {\n return new ft(this.x, this.y);\n }\n /**\n * Copies `x` and `y` from the given point into this point\n * @param p - The point to copy from\n * @returns The point instance itself\n */\n copyFrom(t) {\n return this.set(t.x, t.y), this;\n }\n /**\n * Copies this point's x and y into the given point (`p`).\n * @param p - The point to copy to. Can be any of type that is or extends `IPointData`\n * @returns The point (`p`) with values updated\n */\n copyTo(t) {\n return t.set(this.x, this.y), t;\n }\n /**\n * Accepts another point (`p`) and returns `true` if the given point is equal to this point\n * @param p - The point to check\n * @returns Returns `true` if both `x` and `y` are equal\n */\n equals(t) {\n return t.x === this.x && t.y === this.y;\n }\n /**\n * Sets the point to a new `x` and `y` position.\n * If `y` is omitted, both `x` and `y` will be set to `x`.\n * @param {number} [x=0] - position of the point on the `x` axis\n * @param {number} [y=x] - position of the point on the `y` axis\n * @returns The point instance itself\n */\n set(t = 0, e = t) {\n return this.x = t, this.y = e, this;\n }\n}\nft.prototype.toString = function() {\n return `[@pixi/math:Point x=${this.x} y=${this.y}]`;\n};\nconst Bs = [new ft(), new ft(), new ft(), new ft()];\nclass it {\n /**\n * @param x - The X coordinate of the upper-left corner of the rectangle\n * @param y - The Y coordinate of the upper-left corner of the rectangle\n * @param width - The overall width of the rectangle\n * @param height - The overall height of the rectangle\n */\n constructor(t = 0, e = 0, i = 0, s = 0) {\n this.x = Number(t), this.y = Number(e), this.width = Number(i), this.height = Number(s), this.type = zt.RECT;\n }\n /** Returns the left edge of the rectangle. */\n get left() {\n return this.x;\n }\n /** Returns the right edge of the rectangle. */\n get right() {\n return this.x + this.width;\n }\n /** Returns the top edge of the rectangle. */\n get top() {\n return this.y;\n }\n /** Returns the bottom edge of the rectangle. */\n get bottom() {\n return this.y + this.height;\n }\n /** A constant empty rectangle. */\n static get EMPTY() {\n return new it(0, 0, 0, 0);\n }\n /**\n * Creates a clone of this Rectangle\n * @returns a copy of the rectangle\n */\n clone() {\n return new it(this.x, this.y, this.width, this.height);\n }\n /**\n * Copies another rectangle to this one.\n * @param rectangle - The rectangle to copy from.\n * @returns Returns itself.\n */\n copyFrom(t) {\n return this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height, this;\n }\n /**\n * Copies this rectangle to another one.\n * @param rectangle - The rectangle to copy to.\n * @returns Returns given parameter.\n */\n copyTo(t) {\n return t.x = this.x, t.y = this.y, t.width = this.width, t.height = this.height, t;\n }\n /**\n * Checks whether the x and y coordinates given are contained within this Rectangle\n * @param x - The X coordinate of the point to test\n * @param y - The Y coordinate of the point to test\n * @returns Whether the x/y coordinates are within this Rectangle\n */\n contains(t, e) {\n return this.width <= 0 || this.height <= 0 ? !1 : t >= this.x && t < this.x + this.width && e >= this.y && e < this.y + this.height;\n }\n /**\n * Determines whether the `other` Rectangle transformed by `transform` intersects with `this` Rectangle object.\n * Returns true only if the area of the intersection is >0, this means that Rectangles\n * sharing a side are not overlapping. Another side effect is that an arealess rectangle\n * (width or height equal to zero) can't intersect any other rectangle.\n * @param {Rectangle} other - The Rectangle to intersect with `this`.\n * @param {Matrix} transform - The transformation matrix of `other`.\n * @returns {boolean} A value of `true` if the transformed `other` Rectangle intersects with `this`; otherwise `false`.\n */\n intersects(t, e) {\n if (!e) {\n const b = this.x < t.x ? t.x : this.x;\n if ((this.right > t.right ? t.right : this.right) <= b)\n return !1;\n const T = this.y < t.y ? t.y : this.y;\n return (this.bottom > t.bottom ? t.bottom : this.bottom) > T;\n }\n const i = this.left, s = this.right, n = this.top, o = this.bottom;\n if (s <= i || o <= n)\n return !1;\n const a = Bs[0].set(t.left, t.top), l = Bs[1].set(t.left, t.bottom), h = Bs[2].set(t.right, t.top), c = Bs[3].set(t.right, t.bottom);\n if (h.x <= a.x || l.y <= a.y)\n return !1;\n const u = Math.sign(e.a * e.d - e.b * e.c);\n if (u === 0 || (e.apply(a, a), e.apply(l, l), e.apply(h, h), e.apply(c, c), Math.max(a.x, l.x, h.x, c.x) <= i || Math.min(a.x, l.x, h.x, c.x) >= s || Math.max(a.y, l.y, h.y, c.y) <= n || Math.min(a.y, l.y, h.y, c.y) >= o))\n return !1;\n const d = u * (l.y - a.y), f = u * (a.x - l.x), p = d * i + f * n, m = d * s + f * n, g = d * i + f * o, y = d * s + f * o;\n if (Math.max(p, m, g, y) <= d * a.x + f * a.y || Math.min(p, m, g, y) >= d * c.x + f * c.y)\n return !1;\n const x = u * (a.y - h.y), _ = u * (h.x - a.x), v = x * i + _ * n, w = x * s + _ * n, R = x * i + _ * o, C = x * s + _ * o;\n return !(Math.max(v, w, R, C) <= x * a.x + _ * a.y || Math.min(v, w, R, C) >= x * c.x + _ * c.y);\n }\n /**\n * Pads the rectangle making it grow in all directions.\n * If paddingY is omitted, both paddingX and paddingY will be set to paddingX.\n * @param paddingX - The horizontal padding amount.\n * @param paddingY - The vertical padding amount.\n * @returns Returns itself.\n */\n pad(t = 0, e = t) {\n return this.x -= t, this.y -= e, this.width += t * 2, this.height += e * 2, this;\n }\n /**\n * Fits this rectangle around the passed one.\n * @param rectangle - The rectangle to fit.\n * @returns Returns itself.\n */\n fit(t) {\n const e = Math.max(this.x, t.x), i = Math.min(this.x + this.width, t.x + t.width), s = Math.max(this.y, t.y), n = Math.min(this.y + this.height, t.y + t.height);\n return this.x = e, this.width = Math.max(i - e, 0), this.y = s, this.height = Math.max(n - s, 0), this;\n }\n /**\n * Enlarges rectangle that way its corners lie on grid\n * @param resolution - resolution\n * @param eps - precision\n * @returns Returns itself.\n */\n ceil(t = 1, e = 1e-3) {\n const i = Math.ceil((this.x + this.width - e) * t) / t, s = Math.ceil((this.y + this.height - e) * t) / t;\n return this.x = Math.floor((this.x + e) * t) / t, this.y = Math.floor((this.y + e) * t) / t, this.width = i - this.x, this.height = s - this.y, this;\n }\n /**\n * Enlarges this rectangle to include the passed rectangle.\n * @param rectangle - The rectangle to include.\n * @returns Returns itself.\n */\n enlarge(t) {\n const e = Math.min(this.x, t.x), i = Math.max(this.x + this.width, t.x + t.width), s = Math.min(this.y, t.y), n = Math.max(this.y + this.height, t.y + t.height);\n return this.x = e, this.width = i - e, this.y = s, this.height = n - s, this;\n }\n}\nit.prototype.toString = function() {\n return `[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`;\n};\nclass jn {\n /**\n * @param x - The X coordinate of the center of this circle\n * @param y - The Y coordinate of the center of this circle\n * @param radius - The radius of the circle\n */\n constructor(t = 0, e = 0, i = 0) {\n this.x = t, this.y = e, this.radius = i, this.type = zt.CIRC;\n }\n /**\n * Creates a clone of this Circle instance\n * @returns A copy of the Circle\n */\n clone() {\n return new jn(this.x, this.y, this.radius);\n }\n /**\n * Checks whether the x and y coordinates given are contained within this circle\n * @param x - The X coordinate of the point to test\n * @param y - The Y coordinate of the point to test\n * @returns Whether the x/y coordinates are within this Circle\n */\n contains(t, e) {\n if (this.radius <= 0)\n return !1;\n const i = this.radius * this.radius;\n let s = this.x - t, n = this.y - e;\n return s *= s, n *= n, s + n <= i;\n }\n /**\n * Returns the framing rectangle of the circle as a Rectangle object\n * @returns The framing rectangle\n */\n getBounds() {\n return new it(this.x - this.radius, this.y - this.radius, this.radius * 2, this.radius * 2);\n }\n}\njn.prototype.toString = function() {\n return `[@pixi/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`;\n};\nclass Yn {\n /**\n * @param x - The X coordinate of the center of this ellipse\n * @param y - The Y coordinate of the center of this ellipse\n * @param halfWidth - The half width of this ellipse\n * @param halfHeight - The half height of this ellipse\n */\n constructor(t = 0, e = 0, i = 0, s = 0) {\n this.x = t, this.y = e, this.width = i, this.height = s, this.type = zt.ELIP;\n }\n /**\n * Creates a clone of this Ellipse instance\n * @returns {PIXI.Ellipse} A copy of the ellipse\n */\n clone() {\n return new Yn(this.x, this.y, this.width, this.height);\n }\n /**\n * Checks whether the x and y coordinates given are contained within this ellipse\n * @param x - The X coordinate of the point to test\n * @param y - The Y coordinate of the point to test\n * @returns Whether the x/y coords are within this ellipse\n */\n contains(t, e) {\n if (this.width <= 0 || this.height <= 0)\n return !1;\n let i = (t - this.x) / this.width, s = (e - this.y) / this.height;\n return i *= i, s *= s, i + s <= 1;\n }\n /**\n * Returns the framing rectangle of the ellipse as a Rectangle object\n * @returns The framing rectangle\n */\n getBounds() {\n return new it(this.x - this.width, this.y - this.height, this.width, this.height);\n }\n}\nYn.prototype.toString = function() {\n return `[@pixi/math:Ellipse x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`;\n};\nclass Gr {\n /**\n * @param {PIXI.IPointData[]|number[]} points - This can be an array of Points\n * that form the polygon, a flat array of numbers that will be interpreted as [x,y, x,y, ...], or\n * the arguments passed can be all the points of the polygon e.g.\n * `new Polygon(new Point(), new Point(), ...)`, or the arguments passed can be flat\n * x,y values e.g. `new Polygon(x,y, x,y, x,y, ...)` where `x` and `y` are Numbers.\n */\n constructor(...t) {\n let e = Array.isArray(t[0]) ? t[0] : t;\n if (typeof e[0] != \"number\") {\n const i = [];\n for (let s = 0, n = e.length; s < n; s++)\n i.push(e[s].x, e[s].y);\n e = i;\n }\n this.points = e, this.type = zt.POLY, this.closeStroke = !0;\n }\n /**\n * Creates a clone of this polygon.\n * @returns - A copy of the polygon.\n */\n clone() {\n const t = this.points.slice(), e = new Gr(t);\n return e.closeStroke = this.closeStroke, e;\n }\n /**\n * Checks whether the x and y coordinates passed to this function are contained within this polygon.\n * @param x - The X coordinate of the point to test.\n * @param y - The Y coordinate of the point to test.\n * @returns - Whether the x/y coordinates are within this polygon.\n */\n contains(t, e) {\n let i = !1;\n const s = this.points.length / 2;\n for (let n = 0, o = s - 1; n < s; o = n++) {\n const a = this.points[n * 2], l = this.points[n * 2 + 1], h = this.points[o * 2], c = this.points[o * 2 + 1];\n l > e != c > e && t < (h - a) * ((e - l) / (c - l)) + a && (i = !i);\n }\n return i;\n }\n}\nGr.prototype.toString = function() {\n return `[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce((r, t) => `${r}, ${t}`, \"\")}]`;\n};\nclass qn {\n /**\n * @param x - The X coordinate of the upper-left corner of the rounded rectangle\n * @param y - The Y coordinate of the upper-left corner of the rounded rectangle\n * @param width - The overall width of this rounded rectangle\n * @param height - The overall height of this rounded rectangle\n * @param radius - Controls the radius of the rounded corners\n */\n constructor(t = 0, e = 0, i = 0, s = 0, n = 20) {\n this.x = t, this.y = e, this.width = i, this.height = s, this.radius = n, this.type = zt.RREC;\n }\n /**\n * Creates a clone of this Rounded Rectangle.\n * @returns - A copy of the rounded rectangle.\n */\n clone() {\n return new qn(this.x, this.y, this.width, this.height, this.radius);\n }\n /**\n * Checks whether the x and y coordinates given are contained within this Rounded Rectangle\n * @param x - The X coordinate of the point to test.\n * @param y - The Y coordinate of the point to test.\n * @returns - Whether the x/y coordinates are within this Rounded Rectangle.\n */\n contains(t, e) {\n if (this.width <= 0 || this.height <= 0)\n return !1;\n if (t >= this.x && t <= this.x + this.width && e >= this.y && e <= this.y + this.height) {\n const i = Math.max(0, Math.min(this.radius, Math.min(this.width, this.height) / 2));\n if (e >= this.y + i && e <= this.y + this.height - i || t >= this.x + i && t <= this.x + this.width - i)\n return !0;\n let s = t - (this.x + i), n = e - (this.y + i);\n const o = i * i;\n if (s * s + n * n <= o || (s = t - (this.x + this.width - i), s * s + n * n <= o) || (n = e - (this.y + this.height - i), s * s + n * n <= o) || (s = t - (this.x + i), s * s + n * n <= o))\n return !0;\n }\n return !1;\n }\n}\nqn.prototype.toString = function() {\n return `[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`;\n};\nclass wt {\n /**\n * @param a - x scale\n * @param b - y skew\n * @param c - x skew\n * @param d - y scale\n * @param tx - x translation\n * @param ty - y translation\n */\n constructor(t = 1, e = 0, i = 0, s = 1, n = 0, o = 0) {\n this.array = null, this.a = t, this.b = e, this.c = i, this.d = s, this.tx = n, this.ty = o;\n }\n /**\n * Creates a Matrix object based on the given array. The Element to Matrix mapping order is as follows:\n *\n * a = array[0]\n * b = array[1]\n * c = array[3]\n * d = array[4]\n * tx = array[2]\n * ty = array[5]\n * @param array - The array that the matrix will be populated from.\n */\n fromArray(t) {\n this.a = t[0], this.b = t[1], this.c = t[3], this.d = t[4], this.tx = t[2], this.ty = t[5];\n }\n /**\n * Sets the matrix properties.\n * @param a - Matrix component\n * @param b - Matrix component\n * @param c - Matrix component\n * @param d - Matrix component\n * @param tx - Matrix component\n * @param ty - Matrix component\n * @returns This matrix. Good for chaining method calls.\n */\n set(t, e, i, s, n, o) {\n return this.a = t, this.b = e, this.c = i, this.d = s, this.tx = n, this.ty = o, this;\n }\n /**\n * Creates an array from the current Matrix object.\n * @param transpose - Whether we need to transpose the matrix or not\n * @param [out=new Float32Array(9)] - If provided the array will be assigned to out\n * @returns The newly created array which contains the matrix\n */\n toArray(t, e) {\n this.array || (this.array = new Float32Array(9));\n const i = e || this.array;\n return t ? (i[0] = this.a, i[1] = this.b, i[2] = 0, i[3] = this.c, i[4] = this.d, i[5] = 0, i[6] = this.tx, i[7] = this.ty, i[8] = 1) : (i[0] = this.a, i[1] = this.c, i[2] = this.tx, i[3] = this.b, i[4] = this.d, i[5] = this.ty, i[6] = 0, i[7] = 0, i[8] = 1), i;\n }\n /**\n * Get a new position with the current transformation applied.\n * Can be used to go from a child's coordinate space to the world coordinate space. (e.g. rendering)\n * @param pos - The origin\n * @param {PIXI.Point} [newPos] - The point that the new position is assigned to (allowed to be same as input)\n * @returns {PIXI.Point} The new point, transformed through this matrix\n */\n apply(t, e) {\n e = e || new ft();\n const i = t.x, s = t.y;\n return e.x = this.a * i + this.c * s + this.tx, e.y = this.b * i + this.d * s + this.ty, e;\n }\n /**\n * Get a new position with the inverse of the current transformation applied.\n * Can be used to go from the world coordinate space to a child's coordinate space. (e.g. input)\n * @param pos - The origin\n * @param {PIXI.Point} [newPos] - The point that the new position is assigned to (allowed to be same as input)\n * @returns {PIXI.Point} The new point, inverse-transformed through this matrix\n */\n applyInverse(t, e) {\n e = e || new ft();\n const i = 1 / (this.a * this.d + this.c * -this.b), s = t.x, n = t.y;\n return e.x = this.d * i * s + -this.c * i * n + (this.ty * this.c - this.tx * this.d) * i, e.y = this.a * i * n + -this.b * i * s + (-this.ty * this.a + this.tx * this.b) * i, e;\n }\n /**\n * Translates the matrix on the x and y.\n * @param x - How much to translate x by\n * @param y - How much to translate y by\n * @returns This matrix. Good for chaining method calls.\n */\n translate(t, e) {\n return this.tx += t, this.ty += e, this;\n }\n /**\n * Applies a scale transformation to the matrix.\n * @param x - The amount to scale horizontally\n * @param y - The amount to scale vertically\n * @returns This matrix. Good for chaining method calls.\n */\n scale(t, e) {\n return this.a *= t, this.d *= e, this.c *= t, this.b *= e, this.tx *= t, this.ty *= e, this;\n }\n /**\n * Applies a rotation transformation to the matrix.\n * @param angle - The angle in radians.\n * @returns This matrix. Good for chaining method calls.\n */\n rotate(t) {\n const e = Math.cos(t), i = Math.sin(t), s = this.a, n = this.c, o = this.tx;\n return this.a = s * e - this.b * i, this.b = s * i + this.b * e, this.c = n * e - this.d * i, this.d = n * i + this.d * e, this.tx = o * e - this.ty * i, this.ty = o * i + this.ty * e, this;\n }\n /**\n * Appends the given Matrix to this Matrix.\n * @param matrix - The matrix to append.\n * @returns This matrix. Good for chaining method calls.\n */\n append(t) {\n const e = this.a, i = this.b, s = this.c, n = this.d;\n return this.a = t.a * e + t.b * s, this.b = t.a * i + t.b * n, this.c = t.c * e + t.d * s, this.d = t.c * i + t.d * n, this.tx = t.tx * e + t.ty * s + this.tx, this.ty = t.tx * i + t.ty * n + this.ty, this;\n }\n /**\n * Sets the matrix based on all the available properties\n * @param x - Position on the x axis\n * @param y - Position on the y axis\n * @param pivotX - Pivot on the x axis\n * @param pivotY - Pivot on the y axis\n * @param scaleX - Scale on the x axis\n * @param scaleY - Scale on the y axis\n * @param rotation - Rotation in radians\n * @param skewX - Skew on the x axis\n * @param skewY - Skew on the y axis\n * @returns This matrix. Good for chaining method calls.\n */\n setTransform(t, e, i, s, n, o, a, l, h) {\n return this.a = Math.cos(a + h) * n, this.b = Math.sin(a + h) * n, this.c = -Math.sin(a - l) * o, this.d = Math.cos(a - l) * o, this.tx = t - (i * this.a + s * this.c), this.ty = e - (i * this.b + s * this.d), this;\n }\n /**\n * Prepends the given Matrix to this Matrix.\n * @param matrix - The matrix to prepend\n * @returns This matrix. Good for chaining method calls.\n */\n prepend(t) {\n const e = this.tx;\n if (t.a !== 1 || t.b !== 0 || t.c !== 0 || t.d !== 1) {\n const i = this.a, s = this.c;\n this.a = i * t.a + this.b * t.c, this.b = i * t.b + this.b * t.d, this.c = s * t.a + this.d * t.c, this.d = s * t.b + this.d * t.d;\n }\n return this.tx = e * t.a + this.ty * t.c + t.tx, this.ty = e * t.b + this.ty * t.d + t.ty, this;\n }\n /**\n * Decomposes the matrix (x, y, scaleX, scaleY, and rotation) and sets the properties on to a transform.\n * @param transform - The transform to apply the properties to.\n * @returns The transform with the newly applied properties\n */\n decompose(t) {\n const e = this.a, i = this.b, s = this.c, n = this.d, o = t.pivot, a = -Math.atan2(-s, n), l = Math.atan2(i, e), h = Math.abs(a + l);\n return h < 1e-5 || Math.abs(Sn - h) < 1e-5 ? (t.rotation = l, t.skew.x = t.skew.y = 0) : (t.rotation = 0, t.skew.x = a, t.skew.y = l), t.scale.x = Math.sqrt(e * e + i * i), t.scale.y = Math.sqrt(s * s + n * n), t.position.x = this.tx + (o.x * e + o.y * s), t.position.y = this.ty + (o.x * i + o.y * n), t;\n }\n /**\n * Inverts this matrix\n * @returns This matrix. Good for chaining method calls.\n */\n invert() {\n const t = this.a, e = this.b, i = this.c, s = this.d, n = this.tx, o = t * s - e * i;\n return this.a = s / o, this.b = -e / o, this.c = -i / o, this.d = t / o, this.tx = (i * this.ty - s * n) / o, this.ty = -(t * this.ty - e * n) / o, this;\n }\n /**\n * Resets this Matrix to an identity (default) matrix.\n * @returns This matrix. Good for chaining method calls.\n */\n identity() {\n return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this;\n }\n /**\n * Creates a new Matrix object with the same values as this one.\n * @returns A copy of this matrix. Good for chaining method calls.\n */\n clone() {\n const t = new wt();\n return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t;\n }\n /**\n * Changes the values of the given matrix to be the same as the ones in this matrix\n * @param matrix - The matrix to copy to.\n * @returns The matrix given in parameter with its values updated.\n */\n copyTo(t) {\n return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t;\n }\n /**\n * Changes the values of the matrix to be the same as the ones in given matrix\n * @param {PIXI.Matrix} matrix - The matrix to copy from.\n * @returns {PIXI.Matrix} this\n */\n copyFrom(t) {\n return this.a = t.a, this.b = t.b, this.c = t.c, this.d = t.d, this.tx = t.tx, this.ty = t.ty, this;\n }\n /**\n * A default (identity) matrix\n * @readonly\n */\n static get IDENTITY() {\n return new wt();\n }\n /**\n * A temp matrix\n * @readonly\n */\n static get TEMP_MATRIX() {\n return new wt();\n }\n}\nwt.prototype.toString = function() {\n return `[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`;\n};\nconst Sr = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1], Cr = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1], Ir = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1], Pr = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1], Sa = [], yd = [], Ds = Math.sign;\nfunction bv() {\n for (let r = 0; r < 16; r++) {\n const t = [];\n Sa.push(t);\n for (let e = 0; e < 16; e++) {\n const i = Ds(Sr[r] * Sr[e] + Ir[r] * Cr[e]), s = Ds(Cr[r] * Sr[e] + Pr[r] * Cr[e]), n = Ds(Sr[r] * Ir[e] + Ir[r] * Pr[e]), o = Ds(Cr[r] * Ir[e] + Pr[r] * Pr[e]);\n for (let a = 0; a < 16; a++)\n if (Sr[a] === i && Cr[a] === s && Ir[a] === n && Pr[a] === o) {\n t.push(a);\n break;\n }\n }\n }\n for (let r = 0; r < 16; r++) {\n const t = new wt();\n t.set(Sr[r], Cr[r], Ir[r], Pr[r], 0, 0), yd.push(t);\n }\n}\nbv();\nconst At = {\n /**\n * | Rotation | Direction |\n * |----------|-----------|\n * | 0° | East |\n * @readonly\n */\n E: 0,\n /**\n * | Rotation | Direction |\n * |----------|-----------|\n * | 45°↻ | Southeast |\n * @readonly\n */\n SE: 1,\n /**\n * | Rotation | Direction |\n * |----------|-----------|\n * | 90°↻ | South |\n * @readonly\n */\n S: 2,\n /**\n * | Rotation | Direction |\n * |----------|-----------|\n * | 135°↻ | Southwest |\n * @readonly\n */\n SW: 3,\n /**\n * | Rotation | Direction |\n * |----------|-----------|\n * | 180° | West |\n * @readonly\n */\n W: 4,\n /**\n * | Rotation | Direction |\n * |-------------|--------------|\n * | -135°/225°↻ | Northwest |\n * @readonly\n */\n NW: 5,\n /**\n * | Rotation | Direction |\n * |-------------|--------------|\n * | -90°/270°↻ | North |\n * @readonly\n */\n N: 6,\n /**\n * | Rotation | Direction |\n * |-------------|--------------|\n * | -45°/315°↻ | Northeast |\n * @readonly\n */\n NE: 7,\n /**\n * Reflection about Y-axis.\n * @readonly\n */\n MIRROR_VERTICAL: 8,\n /**\n * Reflection about the main diagonal.\n * @readonly\n */\n MAIN_DIAGONAL: 10,\n /**\n * Reflection about X-axis.\n * @readonly\n */\n MIRROR_HORIZONTAL: 12,\n /**\n * Reflection about reverse diagonal.\n * @readonly\n */\n REVERSE_DIAGONAL: 14,\n /**\n * @param {PIXI.GD8Symmetry} ind - sprite rotation angle.\n * @returns {PIXI.GD8Symmetry} The X-component of the U-axis\n * after rotating the axes.\n */\n uX: (r) => Sr[r],\n /**\n * @param {PIXI.GD8Symmetry} ind - sprite rotation angle.\n * @returns {PIXI.GD8Symmetry} The Y-component of the U-axis\n * after rotating the axes.\n */\n uY: (r) => Cr[r],\n /**\n * @param {PIXI.GD8Symmetry} ind - sprite rotation angle.\n * @returns {PIXI.GD8Symmetry} The X-component of the V-axis\n * after rotating the axes.\n */\n vX: (r) => Ir[r],\n /**\n * @param {PIXI.GD8Symmetry} ind - sprite rotation angle.\n * @returns {PIXI.GD8Symmetry} The Y-component of the V-axis\n * after rotating the axes.\n */\n vY: (r) => Pr[r],\n /**\n * @param {PIXI.GD8Symmetry} rotation - symmetry whose opposite\n * is needed. Only rotations have opposite symmetries while\n * reflections don't.\n * @returns {PIXI.GD8Symmetry} The opposite symmetry of `rotation`\n */\n inv: (r) => r & 8 ? r & 15 : -r & 7,\n /**\n * Composes the two D8 operations.\n *\n * Taking `^` as reflection:\n *\n * | | E=0 | S=2 | W=4 | N=6 | E^=8 | S^=10 | W^=12 | N^=14 |\n * |-------|-----|-----|-----|-----|------|-------|-------|-------|\n * | E=0 | E | S | W | N | E^ | S^ | W^ | N^ |\n * | S=2 | S | W | N | E | S^ | W^ | N^ | E^ |\n * | W=4 | W | N | E | S | W^ | N^ | E^ | S^ |\n * | N=6 | N | E | S | W | N^ | E^ | S^ | W^ |\n * | E^=8 | E^ | N^ | W^ | S^ | E | N | W | S |\n * | S^=10 | S^ | E^ | N^ | W^ | S | E | N | W |\n * | W^=12 | W^ | S^ | E^ | N^ | W | S | E | N |\n * | N^=14 | N^ | W^ | S^ | E^ | N | W | S | E |\n *\n * [This is a Cayley table]{@link https://en.wikipedia.org/wiki/Cayley_table}\n * @param {PIXI.GD8Symmetry} rotationSecond - Second operation, which\n * is the row in the above cayley table.\n * @param {PIXI.GD8Symmetry} rotationFirst - First operation, which\n * is the column in the above cayley table.\n * @returns {PIXI.GD8Symmetry} Composed operation\n */\n add: (r, t) => Sa[r][t],\n /**\n * Reverse of `add`.\n * @param {PIXI.GD8Symmetry} rotationSecond - Second operation\n * @param {PIXI.GD8Symmetry} rotationFirst - First operation\n * @returns {PIXI.GD8Symmetry} Result\n */\n sub: (r, t) => Sa[r][At.inv(t)],\n /**\n * Adds 180 degrees to rotation, which is a commutative\n * operation.\n * @param {number} rotation - The number to rotate.\n * @returns {number} Rotated number\n */\n rotate180: (r) => r ^ 4,\n /**\n * Checks if the rotation angle is vertical, i.e. south\n * or north. It doesn't work for reflections.\n * @param {PIXI.GD8Symmetry} rotation - The number to check.\n * @returns {boolean} Whether or not the direction is vertical\n */\n isVertical: (r) => (r & 3) === 2,\n // rotation % 4 === 2\n /**\n * Approximates the vector `V(dx,dy)` into one of the\n * eight directions provided by `groupD8`.\n * @param {number} dx - X-component of the vector\n * @param {number} dy - Y-component of the vector\n * @returns {PIXI.GD8Symmetry} Approximation of the vector into\n * one of the eight symmetries.\n */\n byDirection: (r, t) => Math.abs(r) * 2 <= Math.abs(t) ? t >= 0 ? At.S : At.N : Math.abs(t) * 2 <= Math.abs(r) ? r > 0 ? At.E : At.W : t > 0 ? r > 0 ? At.SE : At.SW : r > 0 ? At.NE : At.NW,\n /**\n * Helps sprite to compensate texture packer rotation.\n * @param {PIXI.Matrix} matrix - sprite world matrix\n * @param {PIXI.GD8Symmetry} rotation - The rotation factor to use.\n * @param {number} tx - sprite anchoring\n * @param {number} ty - sprite anchoring\n */\n matrixAppendRotationInv: (r, t, e = 0, i = 0) => {\n const s = yd[At.inv(t)];\n s.tx = e, s.ty = i, r.append(s);\n }\n};\nclass Ke {\n /**\n * Creates a new `ObservablePoint`\n * @param cb - callback function triggered when `x` and/or `y` are changed\n * @param scope - owner of callback\n * @param {number} [x=0] - position of the point on the x axis\n * @param {number} [y=0] - position of the point on the y axis\n */\n constructor(t, e, i = 0, s = 0) {\n this._x = i, this._y = s, this.cb = t, this.scope = e;\n }\n /**\n * Creates a clone of this point.\n * The callback and scope params can be overridden otherwise they will default\n * to the clone object's values.\n * @override\n * @param cb - The callback function triggered when `x` and/or `y` are changed\n * @param scope - The owner of the callback\n * @returns a copy of this observable point\n */\n clone(t = this.cb, e = this.scope) {\n return new Ke(t, e, this._x, this._y);\n }\n /**\n * Sets the point to a new `x` and `y` position.\n * If `y` is omitted, both `x` and `y` will be set to `x`.\n * @param {number} [x=0] - position of the point on the x axis\n * @param {number} [y=x] - position of the point on the y axis\n * @returns The observable point instance itself\n */\n set(t = 0, e = t) {\n return (this._x !== t || this._y !== e) && (this._x = t, this._y = e, this.cb.call(this.scope)), this;\n }\n /**\n * Copies x and y from the given point (`p`)\n * @param p - The point to copy from. Can be any of type that is or extends `IPointData`\n * @returns The observable point instance itself\n */\n copyFrom(t) {\n return (this._x !== t.x || this._y !== t.y) && (this._x = t.x, this._y = t.y, this.cb.call(this.scope)), this;\n }\n /**\n * Copies this point's x and y into that of the given point (`p`)\n * @param p - The point to copy to. Can be any of type that is or extends `IPointData`\n * @returns The point (`p`) with values updated\n */\n copyTo(t) {\n return t.set(this._x, this._y), t;\n }\n /**\n * Accepts another point (`p`) and returns `true` if the given point is equal to this point\n * @param p - The point to check\n * @returns Returns `true` if both `x` and `y` are equal\n */\n equals(t) {\n return t.x === this._x && t.y === this._y;\n }\n /** Position of the observable point on the x axis. */\n get x() {\n return this._x;\n }\n set x(t) {\n this._x !== t && (this._x = t, this.cb.call(this.scope));\n }\n /** Position of the observable point on the y axis. */\n get y() {\n return this._y;\n }\n set y(t) {\n this._y !== t && (this._y = t, this.cb.call(this.scope));\n }\n}\nKe.prototype.toString = function() {\n return `[@pixi/math:ObservablePoint x=${this.x} y=${this.y} scope=${this.scope}]`;\n};\nconst Ca = class {\n constructor() {\n this.worldTransform = new wt(), this.localTransform = new wt(), this.position = new Ke(this.onChange, this, 0, 0), this.scale = new Ke(this.onChange, this, 1, 1), this.pivot = new Ke(this.onChange, this, 0, 0), this.skew = new Ke(this.updateSkew, this, 0, 0), this._rotation = 0, this._cx = 1, this._sx = 0, this._cy = 0, this._sy = 1, this._localID = 0, this._currentLocalID = 0, this._worldID = 0, this._parentID = 0;\n }\n /** Called when a value changes. */\n onChange() {\n this._localID++;\n }\n /** Called when the skew or the rotation changes. */\n updateSkew() {\n this._cx = Math.cos(this._rotation + this.skew.y), this._sx = Math.sin(this._rotation + this.skew.y), this._cy = -Math.sin(this._rotation - this.skew.x), this._sy = Math.cos(this._rotation - this.skew.x), this._localID++;\n }\n /** Updates the local transformation matrix. */\n updateLocalTransform() {\n const r = this.localTransform;\n this._localID !== this._currentLocalID && (r.a = this._cx * this.scale.x, r.b = this._sx * this.scale.x, r.c = this._cy * this.scale.y, r.d = this._sy * this.scale.y, r.tx = this.position.x - (this.pivot.x * r.a + this.pivot.y * r.c), r.ty = this.position.y - (this.pivot.x * r.b + this.pivot.y * r.d), this._currentLocalID = this._localID, this._parentID = -1);\n }\n /**\n * Updates the local and the world transformation matrices.\n * @param parentTransform - The parent transform\n */\n updateTransform(r) {\n const t = this.localTransform;\n if (this._localID !== this._currentLocalID && (t.a = this._cx * this.scale.x, t.b = this._sx * this.scale.x, t.c = this._cy * this.scale.y, t.d = this._sy * this.scale.y, t.tx = this.position.x - (this.pivot.x * t.a + this.pivot.y * t.c), t.ty = this.position.y - (this.pivot.x * t.b + this.pivot.y * t.d), this._currentLocalID = this._localID, this._parentID = -1), this._parentID !== r._worldID) {\n const e = r.worldTransform, i = this.worldTransform;\n i.a = t.a * e.a + t.b * e.c, i.b = t.a * e.b + t.b * e.d, i.c = t.c * e.a + t.d * e.c, i.d = t.c * e.b + t.d * e.d, i.tx = t.tx * e.a + t.ty * e.c + e.tx, i.ty = t.tx * e.b + t.ty * e.d + e.ty, this._parentID = r._worldID, this._worldID++;\n }\n }\n /**\n * Decomposes a matrix and sets the transforms properties based on it.\n * @param matrix - The matrix to decompose\n */\n setFromMatrix(r) {\n r.decompose(this), this._localID++;\n }\n /** The rotation of the object in radians. */\n get rotation() {\n return this._rotation;\n }\n set rotation(r) {\n this._rotation !== r && (this._rotation = r, this.updateSkew());\n }\n};\nCa.IDENTITY = new Ca();\nlet vl = Ca;\nvl.prototype.toString = function() {\n 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}) ]`;\n};\nvar wv = `varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n gl_FragColor *= texture2D(uSampler, vTextureCoord);\n}`, Ev = `attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}\n`;\nfunction lc(r, t, e) {\n const i = r.createShader(t);\n return r.shaderSource(i, e), r.compileShader(i), i;\n}\nfunction Fo(r) {\n const t = new Array(r);\n for (let e = 0; e < t.length; e++)\n t[e] = !1;\n return t;\n}\nfunction _d(r, t) {\n switch (r) {\n case \"float\":\n return 0;\n case \"vec2\":\n return new Float32Array(2 * t);\n case \"vec3\":\n return new Float32Array(3 * t);\n case \"vec4\":\n return new Float32Array(4 * t);\n case \"int\":\n case \"uint\":\n case \"sampler2D\":\n case \"sampler2DArray\":\n return 0;\n case \"ivec2\":\n return new Int32Array(2 * t);\n case \"ivec3\":\n return new Int32Array(3 * t);\n case \"ivec4\":\n return new Int32Array(4 * t);\n case \"uvec2\":\n return new Uint32Array(2 * t);\n case \"uvec3\":\n return new Uint32Array(3 * t);\n case \"uvec4\":\n return new Uint32Array(4 * t);\n case \"bool\":\n return !1;\n case \"bvec2\":\n return Fo(2 * t);\n case \"bvec3\":\n return Fo(3 * t);\n case \"bvec4\":\n return Fo(4 * t);\n case \"mat2\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 1\n ]);\n case \"mat3\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1\n ]);\n case \"mat4\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n return null;\n}\nconst bi = [\n // a float cache layer\n {\n test: (r) => r.type === \"float\" && r.size === 1 && !r.isArray,\n code: (r) => `\n if(uv[\"${r}\"] !== ud[\"${r}\"].value)\n {\n ud[\"${r}\"].value = uv[\"${r}\"]\n gl.uniform1f(ud[\"${r}\"].location, uv[\"${r}\"])\n }\n `\n },\n // handling samplers\n {\n test: (r, t) => (\n // eslint-disable-next-line max-len,no-eq-null,eqeqeq\n (r.type === \"sampler2D\" || r.type === \"samplerCube\" || r.type === \"sampler2DArray\") && r.size === 1 && !r.isArray && (t == null || t.castToBaseTexture !== void 0)\n ),\n code: (r) => `t = syncData.textureCount++;\n\n renderer.texture.bind(uv[\"${r}\"], t);\n\n if(ud[\"${r}\"].value !== t)\n {\n ud[\"${r}\"].value = t;\n gl.uniform1i(ud[\"${r}\"].location, t);\n; // eslint-disable-line max-len\n }`\n },\n // uploading pixi matrix object to mat3\n {\n test: (r, t) => r.type === \"mat3\" && r.size === 1 && !r.isArray && t.a !== void 0,\n code: (r) => (\n // TODO and some smart caching dirty ids here!\n `\n gl.uniformMatrix3fv(ud[\"${r}\"].location, false, uv[\"${r}\"].toArray(true));\n `\n ),\n codeUbo: (r) => `\n var ${r}_matrix = uv.${r}.toArray(true);\n\n data[offset] = ${r}_matrix[0];\n data[offset+1] = ${r}_matrix[1];\n data[offset+2] = ${r}_matrix[2];\n \n data[offset + 4] = ${r}_matrix[3];\n data[offset + 5] = ${r}_matrix[4];\n data[offset + 6] = ${r}_matrix[5];\n \n data[offset + 8] = ${r}_matrix[6];\n data[offset + 9] = ${r}_matrix[7];\n data[offset + 10] = ${r}_matrix[8];\n `\n },\n // uploading a pixi point as a vec2 with caching layer\n {\n test: (r, t) => r.type === \"vec2\" && r.size === 1 && !r.isArray && t.x !== void 0,\n code: (r) => `\n cv = ud[\"${r}\"].value;\n v = uv[\"${r}\"];\n\n if(cv[0] !== v.x || cv[1] !== v.y)\n {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud[\"${r}\"].location, v.x, v.y);\n }`,\n codeUbo: (r) => `\n v = uv.${r};\n\n data[offset] = v.x;\n data[offset+1] = v.y;\n `\n },\n // caching layer for a vec2\n {\n test: (r) => r.type === \"vec2\" && r.size === 1 && !r.isArray,\n code: (r) => `\n cv = ud[\"${r}\"].value;\n v = uv[\"${r}\"];\n\n if(cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(ud[\"${r}\"].location, v[0], v[1]);\n }\n `\n },\n // upload a pixi rectangle as a vec4 with caching layer\n {\n test: (r, t) => r.type === \"vec4\" && r.size === 1 && !r.isArray && t.width !== void 0,\n code: (r) => `\n cv = ud[\"${r}\"].value;\n v = uv[\"${r}\"];\n\n if(cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height)\n {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud[\"${r}\"].location, v.x, v.y, v.width, v.height)\n }`,\n codeUbo: (r) => `\n v = uv.${r};\n\n data[offset] = v.x;\n data[offset+1] = v.y;\n data[offset+2] = v.width;\n data[offset+3] = v.height;\n `\n },\n // upload a pixi color as vec4 with caching layer\n {\n test: (r, t) => r.type === \"vec4\" && r.size === 1 && !r.isArray && t.red !== void 0,\n code: (r) => `\n cv = ud[\"${r}\"].value;\n v = uv[\"${r}\"];\n\n if(cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha)\n {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n cv[3] = v.alpha;\n gl.uniform4f(ud[\"${r}\"].location, v.red, v.green, v.blue, v.alpha)\n }`,\n codeUbo: (r) => `\n v = uv.${r};\n\n data[offset] = v.red;\n data[offset+1] = v.green;\n data[offset+2] = v.blue;\n data[offset+3] = v.alpha;\n `\n },\n // upload a pixi color as a vec3 with caching layer\n {\n test: (r, t) => r.type === \"vec3\" && r.size === 1 && !r.isArray && t.red !== void 0,\n code: (r) => `\n cv = ud[\"${r}\"].value;\n v = uv[\"${r}\"];\n\n if(cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.a)\n {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n \n gl.uniform3f(ud[\"${r}\"].location, v.red, v.green, v.blue)\n }`,\n codeUbo: (r) => `\n v = uv.${r};\n\n data[offset] = v.red;\n data[offset+1] = v.green;\n data[offset+2] = v.blue;\n `\n },\n // a caching layer for vec4 uploading\n {\n test: (r) => r.type === \"vec4\" && r.size === 1 && !r.isArray,\n code: (r) => `\n cv = ud[\"${r}\"].value;\n v = uv[\"${r}\"];\n\n if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n\n gl.uniform4f(ud[\"${r}\"].location, v[0], v[1], v[2], v[3])\n }`\n }\n], Tv = {\n float: `\n if (cv !== v)\n {\n cu.value = v;\n gl.uniform1f(location, v);\n }`,\n vec2: `\n if (cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n\n gl.uniform2f(location, v[0], v[1])\n }`,\n vec3: `\n if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n\n gl.uniform3f(location, v[0], v[1], v[2])\n }`,\n vec4: `\n if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n\n gl.uniform4f(location, v[0], v[1], v[2], v[3]);\n }`,\n int: `\n if (cv !== v)\n {\n cu.value = v;\n\n gl.uniform1i(location, v);\n }`,\n ivec2: `\n if (cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n\n gl.uniform2i(location, v[0], v[1]);\n }`,\n ivec3: `\n if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n\n gl.uniform3i(location, v[0], v[1], v[2]);\n }`,\n ivec4: `\n if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n\n gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n }`,\n uint: `\n if (cv !== v)\n {\n cu.value = v;\n\n gl.uniform1ui(location, v);\n }`,\n uvec2: `\n if (cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n\n gl.uniform2ui(location, v[0], v[1]);\n }`,\n uvec3: `\n if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n\n gl.uniform3ui(location, v[0], v[1], v[2]);\n }`,\n uvec4: `\n if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n\n gl.uniform4ui(location, v[0], v[1], v[2], v[3]);\n }`,\n bool: `\n if (cv !== v)\n {\n cu.value = v;\n gl.uniform1i(location, v);\n }`,\n bvec2: `\n if (cv[0] != v[0] || cv[1] != v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n\n gl.uniform2i(location, v[0], v[1]);\n }`,\n bvec3: `\n if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n\n gl.uniform3i(location, v[0], v[1], v[2]);\n }`,\n bvec4: `\n if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n\n gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n }`,\n mat2: \"gl.uniformMatrix2fv(location, false, v)\",\n mat3: \"gl.uniformMatrix3fv(location, false, v)\",\n mat4: \"gl.uniformMatrix4fv(location, false, v)\",\n sampler2D: `\n if (cv !== v)\n {\n cu.value = v;\n\n gl.uniform1i(location, v);\n }`,\n samplerCube: `\n if (cv !== v)\n {\n cu.value = v;\n\n gl.uniform1i(location, v);\n }`,\n sampler2DArray: `\n if (cv !== v)\n {\n cu.value = v;\n\n gl.uniform1i(location, v);\n }`\n}, Av = {\n float: \"gl.uniform1fv(location, v)\",\n vec2: \"gl.uniform2fv(location, v)\",\n vec3: \"gl.uniform3fv(location, v)\",\n vec4: \"gl.uniform4fv(location, v)\",\n mat4: \"gl.uniformMatrix4fv(location, false, v)\",\n mat3: \"gl.uniformMatrix3fv(location, false, v)\",\n mat2: \"gl.uniformMatrix2fv(location, false, v)\",\n int: \"gl.uniform1iv(location, v)\",\n ivec2: \"gl.uniform2iv(location, v)\",\n ivec3: \"gl.uniform3iv(location, v)\",\n ivec4: \"gl.uniform4iv(location, v)\",\n uint: \"gl.uniform1uiv(location, v)\",\n uvec2: \"gl.uniform2uiv(location, v)\",\n uvec3: \"gl.uniform3uiv(location, v)\",\n uvec4: \"gl.uniform4uiv(location, v)\",\n bool: \"gl.uniform1iv(location, v)\",\n bvec2: \"gl.uniform2iv(location, v)\",\n bvec3: \"gl.uniform3iv(location, v)\",\n bvec4: \"gl.uniform4iv(location, v)\",\n sampler2D: \"gl.uniform1iv(location, v)\",\n samplerCube: \"gl.uniform1iv(location, v)\",\n sampler2DArray: \"gl.uniform1iv(location, v)\"\n};\nfunction Sv(r, t) {\n var i;\n const e = [`\n var v = null;\n var cv = null;\n var cu = null;\n var t = 0;\n var gl = renderer.gl;\n `];\n for (const s in r.uniforms) {\n const n = t[s];\n if (!n) {\n ((i = r.uniforms[s]) == null ? void 0 : i.group) === !0 && (r.uniforms[s].ubo ? e.push(`\n renderer.shader.syncUniformBufferGroup(uv.${s}, '${s}');\n `) : e.push(`\n renderer.shader.syncUniformGroup(uv.${s}, syncData);\n `));\n continue;\n }\n const o = r.uniforms[s];\n let a = !1;\n for (let l = 0; l < bi.length; l++)\n if (bi[l].test(n, o)) {\n e.push(bi[l].code(s, o)), a = !0;\n break;\n }\n if (!a) {\n const l = (n.size === 1 && !n.isArray ? Tv : Av)[n.type].replace(\"location\", `ud[\"${s}\"].location`);\n e.push(`\n cu = ud[\"${s}\"];\n cv = cu.value;\n v = uv[\"${s}\"];\n ${l};`);\n }\n }\n return new Function(\"ud\", \"uv\", \"renderer\", \"syncData\", e.join(`\n`));\n}\nconst vd = {};\nlet ei = vd;\nfunction Cv() {\n if (ei === vd || ei != null && ei.isContextLost()) {\n const r = W.ADAPTER.createCanvas();\n let t;\n W.PREFER_ENV >= zr.WEBGL2 && (t = r.getContext(\"webgl2\", {})), t || (t = r.getContext(\"webgl\", {}) || r.getContext(\"experimental-webgl\", {}), t ? t.getExtension(\"WEBGL_draw_buffers\") : t = null), ei = t;\n }\n return ei;\n}\nlet Os;\nfunction Iv() {\n if (!Os) {\n Os = he.MEDIUM;\n const r = Cv();\n if (r && r.getShaderPrecisionFormat) {\n const t = r.getShaderPrecisionFormat(r.FRAGMENT_SHADER, r.HIGH_FLOAT);\n t && (Os = t.precision ? he.HIGH : he.MEDIUM);\n }\n }\n return Os;\n}\nfunction hc(r, t) {\n const e = r.getShaderSource(t).split(`\n`).map((h, c) => `${c}: ${h}`), i = r.getShaderInfoLog(t), s = i.split(`\n`), n = {}, o = s.map((h) => parseFloat(h.replace(/^ERROR\\: 0\\:([\\d]+)\\:.*$/, \"$1\"))).filter((h) => h && !n[h] ? (n[h] = !0, !0) : !1), a = [\"\"];\n o.forEach((h) => {\n e[h - 1] = `%c${e[h - 1]}%c`, a.push(\"background: #FF0000; color:#FFFFFF; font-size: 10px\", \"font-size: 10px\");\n });\n const l = e.join(`\n`);\n a[0] = l, console.error(i), console.groupCollapsed(\"click to view full shader code\"), console.warn(...a), console.groupEnd();\n}\nfunction Pv(r, t, e, i) {\n r.getProgramParameter(t, r.LINK_STATUS) || (r.getShaderParameter(e, r.COMPILE_STATUS) || hc(r, e), r.getShaderParameter(i, r.COMPILE_STATUS) || hc(r, i), console.error(\"PixiJS Error: Could not initialize shader.\"), r.getProgramInfoLog(t) !== \"\" && console.warn(\"PixiJS Warning: gl.getProgramInfoLog()\", r.getProgramInfoLog(t)));\n}\nconst Rv = {\n float: 1,\n vec2: 2,\n vec3: 3,\n vec4: 4,\n int: 1,\n ivec2: 2,\n ivec3: 3,\n ivec4: 4,\n uint: 1,\n uvec2: 2,\n uvec3: 3,\n uvec4: 4,\n bool: 1,\n bvec2: 2,\n bvec3: 3,\n bvec4: 4,\n mat2: 4,\n mat3: 9,\n mat4: 16,\n sampler2D: 1\n};\nfunction xd(r) {\n return Rv[r];\n}\nlet Fs = null;\nconst cc = {\n FLOAT: \"float\",\n FLOAT_VEC2: \"vec2\",\n FLOAT_VEC3: \"vec3\",\n FLOAT_VEC4: \"vec4\",\n INT: \"int\",\n INT_VEC2: \"ivec2\",\n INT_VEC3: \"ivec3\",\n INT_VEC4: \"ivec4\",\n UNSIGNED_INT: \"uint\",\n UNSIGNED_INT_VEC2: \"uvec2\",\n UNSIGNED_INT_VEC3: \"uvec3\",\n UNSIGNED_INT_VEC4: \"uvec4\",\n BOOL: \"bool\",\n BOOL_VEC2: \"bvec2\",\n BOOL_VEC3: \"bvec3\",\n BOOL_VEC4: \"bvec4\",\n FLOAT_MAT2: \"mat2\",\n FLOAT_MAT3: \"mat3\",\n FLOAT_MAT4: \"mat4\",\n SAMPLER_2D: \"sampler2D\",\n INT_SAMPLER_2D: \"sampler2D\",\n UNSIGNED_INT_SAMPLER_2D: \"sampler2D\",\n SAMPLER_CUBE: \"samplerCube\",\n INT_SAMPLER_CUBE: \"samplerCube\",\n UNSIGNED_INT_SAMPLER_CUBE: \"samplerCube\",\n SAMPLER_2D_ARRAY: \"sampler2DArray\",\n INT_SAMPLER_2D_ARRAY: \"sampler2DArray\",\n UNSIGNED_INT_SAMPLER_2D_ARRAY: \"sampler2DArray\"\n};\nfunction bd(r, t) {\n if (!Fs) {\n const e = Object.keys(cc);\n Fs = {};\n for (let i = 0; i < e.length; ++i) {\n const s = e[i];\n Fs[r[s]] = cc[s];\n }\n }\n return Fs[t];\n}\nfunction uc(r, t, e) {\n if (r.substring(0, 9) !== \"precision\") {\n let i = t;\n return t === he.HIGH && e !== he.HIGH && (i = he.MEDIUM), `precision ${i} float;\n${r}`;\n } else if (e !== he.HIGH && r.substring(0, 15) === \"precision highp\")\n return r.replace(\"precision highp\", \"precision mediump\");\n return r;\n}\nlet $i;\nfunction Mv() {\n if (typeof $i == \"boolean\")\n return $i;\n try {\n $i = new Function(\"param1\", \"param2\", \"param3\", \"return param1[param2] === param3;\")({ a: \"b\" }, \"a\", \"b\") === !0;\n } catch {\n $i = !1;\n }\n return $i;\n}\nlet Bv = 0;\nconst Ls = {}, Ia = class hi {\n /**\n * @param vertexSrc - The source of the vertex shader.\n * @param fragmentSrc - The source of the fragment shader.\n * @param name - Name for shader\n * @param extra - Extra data for shader\n */\n constructor(t, e, i = \"pixi-shader\", s = {}) {\n this.extra = {}, this.id = Bv++, this.vertexSrc = t || hi.defaultVertexSrc, this.fragmentSrc = e || hi.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, \"-\"), Ls[i] ? (Ls[i]++, i += `-${Ls[i]}`) : Ls[i] = 1, this.vertexSrc = `#define SHADER_NAME ${i}\n${this.vertexSrc}`, this.fragmentSrc = `#define SHADER_NAME ${i}\n${this.fragmentSrc}`, this.vertexSrc = uc(\n this.vertexSrc,\n hi.defaultVertexPrecision,\n he.HIGH\n ), this.fragmentSrc = uc(\n this.fragmentSrc,\n hi.defaultFragmentPrecision,\n Iv()\n )), this.glPrograms = {}, this.syncUniforms = null;\n }\n /**\n * The default vertex shader source.\n * @readonly\n */\n static get defaultVertexSrc() {\n return Ev;\n }\n /**\n * The default fragment shader source.\n * @readonly\n */\n static get defaultFragmentSrc() {\n return wv;\n }\n /**\n * A short hand function to create a program based of a vertex and fragment shader.\n *\n * This method will also check to see if there is a cached program.\n * @param vertexSrc - The source of the vertex shader.\n * @param fragmentSrc - The source of the fragment shader.\n * @param name - Name for shader\n * @returns A shiny new PixiJS shader program!\n */\n static from(t, e, i) {\n const s = t + e;\n let n = ic[s];\n return n || (ic[s] = n = new hi(t, e, i)), n;\n }\n};\nIa.defaultVertexPrecision = he.HIGH, /**\n* Default specify float precision in fragment shader.\n* iOS is best set at highp due to https://github.com/pixijs/pixijs/issues/3742\n* @static\n* @type {PIXI.PRECISION}\n* @default PIXI.PRECISION.MEDIUM\n*/\nIa.defaultFragmentPrecision = qe.apple.device ? he.HIGH : he.MEDIUM;\nlet Ze = Ia, Dv = 0;\nclass be {\n /**\n * @param {object | Buffer} [uniforms] - Custom uniforms to use to augment the built-in ones. Or a pixi buffer.\n * @param isStatic - Uniforms wont be changed after creation.\n * @param isUbo - If true, will treat this uniform group as a uniform buffer object.\n */\n constructor(t, e, i) {\n this.group = !0, this.syncUniforms = {}, this.dirtyId = 0, this.id = Dv++, this.static = !!e, this.ubo = !!i, t instanceof Mt ? (this.buffer = t, this.buffer.type = Le.UNIFORM_BUFFER, this.autoManage = !1, this.ubo = !0) : (this.uniforms = t, this.ubo && (this.buffer = new Mt(new Float32Array(1)), this.buffer.type = Le.UNIFORM_BUFFER, this.autoManage = !0));\n }\n update() {\n this.dirtyId++, !this.autoManage && this.buffer && this.buffer.update();\n }\n add(t, e, i) {\n if (!this.ubo)\n this.uniforms[t] = new be(e, i);\n else\n throw new Error(\"[UniformGroup] uniform groups in ubo mode cannot be modified, or have uniform groups nested in them\");\n }\n static from(t, e, i) {\n return new be(t, e, i);\n }\n /**\n * A short hand function for creating a static UBO UniformGroup.\n * @param uniforms - the ubo item\n * @param _static - should this be updated each time it is used? defaults to true here!\n */\n static uboFrom(t, e) {\n return new be(t, e ?? !0, !0);\n }\n}\nclass Ne {\n /**\n * @param program - The program the shader will use.\n * @param uniforms - Custom uniforms to use to augment the built-in ones.\n */\n constructor(t, e) {\n this.uniformBindCount = 0, this.program = t, e ? e instanceof be ? this.uniformGroup = e : this.uniformGroup = new be(e) : this.uniformGroup = new be({}), this.disposeRunner = new xe(\"disposeShader\");\n }\n // TODO move to shader system..\n checkUniformExists(t, e) {\n if (e.uniforms[t])\n return !0;\n for (const i in e.uniforms) {\n const s = e.uniforms[i];\n if (s.group === !0 && this.checkUniformExists(t, s))\n return !0;\n }\n return !1;\n }\n destroy() {\n this.uniformGroup = null, this.disposeRunner.emit(this), this.disposeRunner.destroy();\n }\n /**\n * Shader uniform values, shortcut for `uniformGroup.uniforms`.\n * @readonly\n */\n get uniforms() {\n return this.uniformGroup.uniforms;\n }\n /**\n * A short hand function to create a shader based of a vertex and fragment shader.\n * @param vertexSrc - The source of the vertex shader.\n * @param fragmentSrc - The source of the fragment shader.\n * @param uniforms - Custom uniforms to use to augment the built-in ones.\n * @returns A shiny new PixiJS shader!\n */\n static from(t, e, i) {\n const s = Ze.from(t, e);\n return new Ne(s, i);\n }\n}\nclass Ov {\n /**\n * @param vertexSrc - Vertex shader\n * @param fragTemplate - Fragment shader template\n */\n constructor(t, e) {\n if (this.vertexSrc = t, this.fragTemplate = e, this.programCache = {}, this.defaultGroupCache = {}, !e.includes(\"%count%\"))\n throw new Error('Fragment template must contain \"%count%\".');\n if (!e.includes(\"%forloop%\"))\n throw new Error('Fragment template must contain \"%forloop%\".');\n }\n generateShader(t) {\n if (!this.programCache[t]) {\n const i = new Int32Array(t);\n for (let n = 0; n < t; n++)\n i[n] = n;\n this.defaultGroupCache[t] = be.from({ uSamplers: i }, !0);\n let s = this.fragTemplate;\n s = s.replace(/%count%/gi, `${t}`), s = s.replace(/%forloop%/gi, this.generateSampleSrc(t)), this.programCache[t] = new Ze(this.vertexSrc, s);\n }\n const e = {\n tint: new Float32Array([1, 1, 1, 1]),\n translationMatrix: new wt(),\n default: this.defaultGroupCache[t]\n };\n return new Ne(this.programCache[t], e);\n }\n generateSampleSrc(t) {\n let e = \"\";\n e += `\n`, e += `\n`;\n for (let i = 0; i < t; i++)\n i > 0 && (e += `\nelse `), i < t - 1 && (e += `if(vTextureId < ${i}.5)`), e += `\n{`, e += `\n\tcolor = texture2D(uSamplers[${i}], vTextureCoord);`, e += `\n}`;\n return e += `\n`, e += `\n`, e;\n }\n}\nclass Pa {\n constructor() {\n this.elements = [], this.ids = [], this.count = 0;\n }\n clear() {\n for (let t = 0; t < this.count; t++)\n this.elements[t] = null;\n this.count = 0;\n }\n}\nfunction Fv() {\n return !qe.apple.device;\n}\nfunction Lv(r) {\n let t = !0;\n const e = W.ADAPTER.getNavigator();\n if (qe.tablet || qe.phone) {\n if (qe.apple.device) {\n const i = e.userAgent.match(/OS (\\d+)_(\\d+)?/);\n i && parseInt(i[1], 10) < 11 && (t = !1);\n }\n if (qe.android.device) {\n const i = e.userAgent.match(/Android\\s([0-9.]*)/);\n i && parseInt(i[1], 10) < 7 && (t = !1);\n }\n }\n return t ? r : 4;\n}\nclass Kn {\n /**\n * @param renderer - The renderer this manager works for.\n */\n constructor(t) {\n this.renderer = t;\n }\n /** Stub method that should be used to empty the current batch by rendering objects now. */\n flush() {\n }\n /** Generic destruction method that frees all resources. This should be called by subclasses. */\n destroy() {\n this.renderer = null;\n }\n /**\n * Stub method that initializes any state required before\n * rendering starts. It is different from the `prerender`\n * signal, which occurs every frame, in that it is called\n * whenever an object requests _this_ renderer specifically.\n */\n start() {\n }\n /** Stops the renderer. It should free up any state and become dormant. */\n stop() {\n this.flush();\n }\n /**\n * Keeps the object to render. It doesn't have to be\n * rendered immediately.\n * @param {PIXI.DisplayObject} _object - The object to render.\n */\n render(t) {\n }\n}\nvar Nv = `varying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\nuniform sampler2D uSamplers[%count%];\n\nvoid main(void){\n vec4 color;\n %forloop%\n gl_FragColor = color * vColor;\n}\n`, Uv = `precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform vec4 tint;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vTextureId = aTextureId;\n vColor = aColor * tint;\n}\n`;\nconst ji = class me extends Kn {\n /**\n * This will hook onto the renderer's `contextChange`\n * and `prerender` signals.\n * @param {PIXI.Renderer} renderer - The renderer this works for.\n */\n constructor(t) {\n super(t), this.setShaderGenerator(), this.geometryClass = gd, this.vertexSize = 6, this.state = ze.for2d(), this.size = me.defaultBatchSize * 4, this._vertexCount = 0, this._indexCount = 0, this._bufferedElements = [], this._bufferedTextures = [], this._bufferSize = 0, this._shader = null, this._packedGeometries = [], this._packedGeometryPoolSize = 2, this._flushId = 0, this._aBuffers = {}, this._iBuffers = {}, this.maxTextures = 1, this.renderer.on(\"prerender\", this.onPrerender, this), t.runners.contextChange.add(this), this._dcIndex = 0, this._aIndex = 0, this._iIndex = 0, this._attributeBuffer = null, this._indexBuffer = null, this._tempBoundTextures = [];\n }\n /**\n * The maximum textures that this device supports.\n * @static\n * @default 32\n */\n static get defaultMaxTextures() {\n return this._defaultMaxTextures = this._defaultMaxTextures ?? Lv(32), this._defaultMaxTextures;\n }\n static set defaultMaxTextures(t) {\n this._defaultMaxTextures = t;\n }\n /**\n * Can we upload the same buffer in a single frame?\n * @static\n */\n static get canUploadSameBuffer() {\n return this._canUploadSameBuffer = this._canUploadSameBuffer ?? Fv(), this._canUploadSameBuffer;\n }\n static set canUploadSameBuffer(t) {\n this._canUploadSameBuffer = t;\n }\n /**\n * @see PIXI.BatchRenderer#maxTextures\n * @deprecated since 7.1.0\n * @readonly\n */\n get MAX_TEXTURES() {\n return at(\"7.1.0\", \"BatchRenderer#MAX_TEXTURES renamed to BatchRenderer#maxTextures\"), this.maxTextures;\n }\n /**\n * The default vertex shader source\n * @readonly\n */\n static get defaultVertexSrc() {\n return Uv;\n }\n /**\n * The default fragment shader source\n * @readonly\n */\n static get defaultFragmentTemplate() {\n return Nv;\n }\n /**\n * Set the shader generator.\n * @param {object} [options]\n * @param {string} [options.vertex=PIXI.BatchRenderer.defaultVertexSrc] - Vertex shader source\n * @param {string} [options.fragment=PIXI.BatchRenderer.defaultFragmentTemplate] - Fragment shader template\n */\n setShaderGenerator({\n vertex: t = me.defaultVertexSrc,\n fragment: e = me.defaultFragmentTemplate\n } = {}) {\n this.shaderGenerator = new Ov(t, e);\n }\n /**\n * Handles the `contextChange` signal.\n *\n * It calculates `this.maxTextures` and allocating the packed-geometry object pool.\n */\n contextChange() {\n const t = this.renderer.gl;\n W.PREFER_ENV === zr.WEBGL_LEGACY ? this.maxTextures = 1 : (this.maxTextures = Math.min(\n t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),\n me.defaultMaxTextures\n ), this.maxTextures = dv(\n this.maxTextures,\n t\n )), this._shader = this.shaderGenerator.generateShader(this.maxTextures);\n for (let e = 0; e < this._packedGeometryPoolSize; e++)\n this._packedGeometries[e] = new this.geometryClass();\n this.initFlushBuffers();\n }\n /** Makes sure that static and dynamic flush pooled objects have correct dimensions. */\n initFlushBuffers() {\n const {\n _drawCallPool: t,\n _textureArrayPool: e\n } = me, i = this.size / 4, s = Math.floor(i / this.maxTextures) + 1;\n for (; t.length < i; )\n t.push(new Aa());\n for (; e.length < s; )\n e.push(new Pa());\n for (let n = 0; n < this.maxTextures; n++)\n this._tempBoundTextures[n] = null;\n }\n /** Handles the `prerender` signal. It ensures that flushes start from the first geometry object again. */\n onPrerender() {\n this._flushId = 0;\n }\n /**\n * Buffers the \"batchable\" object. It need not be rendered immediately.\n * @param {PIXI.DisplayObject} element - the element to render when\n * using this renderer\n */\n render(t) {\n t._texture.valid && (this._vertexCount + t.vertexData.length / 2 > this.size && this.flush(), this._vertexCount += t.vertexData.length / 2, this._indexCount += t.indices.length, this._bufferedTextures[this._bufferSize] = t._texture.baseTexture, this._bufferedElements[this._bufferSize++] = t);\n }\n buildTexturesAndDrawCalls() {\n const {\n _bufferedTextures: t,\n maxTextures: e\n } = this, i = me._textureArrayPool, s = this.renderer.batch, n = this._tempBoundTextures, o = this.renderer.textureGC.count;\n let a = ++et._globalBatch, l = 0, h = i[0], c = 0;\n s.copyBoundTextures(n, e);\n for (let u = 0; u < this._bufferSize; ++u) {\n const d = t[u];\n t[u] = null, d._batchEnabled !== a && (h.count >= e && (s.boundArray(h, n, a, e), this.buildDrawCalls(h, c, u), c = u, h = i[++l], ++a), d._batchEnabled = a, d.touched = o, h.elements[h.count++] = d);\n }\n h.count > 0 && (s.boundArray(h, n, a, e), this.buildDrawCalls(h, c, this._bufferSize), ++l, ++a);\n for (let u = 0; u < n.length; u++)\n n[u] = null;\n et._globalBatch = a;\n }\n /**\n * Populating drawcalls for rendering\n * @param texArray\n * @param start\n * @param finish\n */\n buildDrawCalls(t, e, i) {\n const {\n _bufferedElements: s,\n _attributeBuffer: n,\n _indexBuffer: o,\n vertexSize: a\n } = this, l = me._drawCallPool;\n let h = this._dcIndex, c = this._aIndex, u = this._iIndex, d = l[h];\n d.start = this._iIndex, d.texArray = t;\n for (let f = e; f < i; ++f) {\n const p = s[f], m = p._texture.baseTexture, g = dd[m.alphaMode ? 1 : 0][p.blendMode];\n s[f] = null, e < f && d.blend !== g && (d.size = u - d.start, e = f, d = l[++h], d.texArray = t, d.start = u), this.packInterleavedGeometry(p, n, o, c, u), c += p.vertexData.length / 2 * a, u += p.indices.length, d.blend = g;\n }\n e < i && (d.size = u - d.start, ++h), this._dcIndex = h, this._aIndex = c, this._iIndex = u;\n }\n /**\n * Bind textures for current rendering\n * @param texArray\n */\n bindAndClearTexArray(t) {\n const e = this.renderer.texture;\n for (let i = 0; i < t.count; i++)\n e.bind(t.elements[i], t.ids[i]), t.elements[i] = null;\n t.count = 0;\n }\n updateGeometry() {\n const {\n _packedGeometries: t,\n _attributeBuffer: e,\n _indexBuffer: i\n } = this;\n me.canUploadSameBuffer ? (t[this._flushId]._buffer.update(e.rawBinaryData), t[this._flushId]._indexBuffer.update(i), this.renderer.geometry.updateBuffers()) : (this._packedGeometryPoolSize <= this._flushId && (this._packedGeometryPoolSize++, t[this._flushId] = new this.geometryClass()), t[this._flushId]._buffer.update(e.rawBinaryData), t[this._flushId]._indexBuffer.update(i), this.renderer.geometry.bind(t[this._flushId]), this.renderer.geometry.updateBuffers(), this._flushId++);\n }\n drawBatches() {\n const t = this._dcIndex, { gl: e, state: i } = this.renderer, s = me._drawCallPool;\n let n = null;\n for (let o = 0; o < t; o++) {\n const { texArray: a, type: l, size: h, start: c, blend: u } = s[o];\n n !== a && (n = a, this.bindAndClearTexArray(a)), this.state.blendMode = u, i.set(this.state), e.drawElements(l, h, e.UNSIGNED_SHORT, c * 2);\n }\n }\n /** Renders the content _now_ and empties the current batch. */\n flush() {\n this._vertexCount !== 0 && (this._attributeBuffer = this.getAttributeBuffer(this._vertexCount), this._indexBuffer = this.getIndexBuffer(this._indexCount), this._aIndex = 0, this._iIndex = 0, this._dcIndex = 0, this.buildTexturesAndDrawCalls(), this.updateGeometry(), this.drawBatches(), this._bufferSize = 0, this._vertexCount = 0, this._indexCount = 0);\n }\n /** Starts a new sprite batch. */\n start() {\n this.renderer.state.set(this.state), this.renderer.texture.ensureSamplerType(this.maxTextures), this.renderer.shader.bind(this._shader), me.canUploadSameBuffer && this.renderer.geometry.bind(this._packedGeometries[this._flushId]);\n }\n /** Stops and flushes the current batch. */\n stop() {\n this.flush();\n }\n /** Destroys this `BatchRenderer`. It cannot be used again. */\n destroy() {\n for (let t = 0; t < this._packedGeometryPoolSize; t++)\n this._packedGeometries[t] && this._packedGeometries[t].destroy();\n this.renderer.off(\"prerender\", this.onPrerender, this), this._aBuffers = null, this._iBuffers = null, this._packedGeometries = null, this._attributeBuffer = null, this._indexBuffer = null, this._shader && (this._shader.destroy(), this._shader = null), super.destroy();\n }\n /**\n * Fetches an attribute buffer from `this._aBuffers` that can hold atleast `size` floats.\n * @param size - minimum capacity required\n * @returns - buffer than can hold atleast `size` floats\n */\n getAttributeBuffer(t) {\n const e = Tn(Math.ceil(t / 8)), i = ec(e), s = e * 8;\n this._aBuffers.length <= i && (this._iBuffers.length = i + 1);\n let n = this._aBuffers[s];\n return n || (this._aBuffers[s] = n = new wa(s * this.vertexSize * 4)), n;\n }\n /**\n * Fetches an index buffer from `this._iBuffers` that can\n * have at least `size` capacity.\n * @param size - minimum required capacity\n * @returns - buffer that can fit `size` indices.\n */\n getIndexBuffer(t) {\n const e = Tn(Math.ceil(t / 12)), i = ec(e), s = e * 12;\n this._iBuffers.length <= i && (this._iBuffers.length = i + 1);\n let n = this._iBuffers[i];\n return n || (this._iBuffers[i] = n = new Uint16Array(s)), n;\n }\n /**\n * Takes the four batching parameters of `element`, interleaves\n * and pushes them into the batching attribute/index buffers given.\n *\n * It uses these properties: `vertexData` `uvs`, `textureId` and\n * `indicies`. It also uses the \"tint\" of the base-texture, if\n * present.\n * @param {PIXI.DisplayObject} element - element being rendered\n * @param attributeBuffer - attribute buffer.\n * @param indexBuffer - index buffer\n * @param aIndex - number of floats already in the attribute buffer\n * @param iIndex - number of indices already in `indexBuffer`\n */\n packInterleavedGeometry(t, e, i, s, n) {\n const {\n uint32View: o,\n float32View: a\n } = e, l = s / this.vertexSize, h = t.uvs, c = t.indices, u = t.vertexData, d = t._texture.baseTexture._batchLocation, f = Math.min(t.worldAlpha, 1), p = xt.shared.setValue(t._tintRGB).toPremultiplied(f, t._texture.baseTexture.alphaMode > 0);\n for (let m = 0; m < u.length; m += 2)\n a[s++] = u[m], a[s++] = u[m + 1], a[s++] = h[m], a[s++] = h[m + 1], o[s++] = p, a[s++] = d;\n for (let m = 0; m < c.length; m++)\n i[n++] = l + c[m];\n }\n};\nji.defaultBatchSize = 4096, /** @ignore */\nji.extension = {\n name: \"batch\",\n type: H.RendererPlugin\n}, /**\n* Pool of `BatchDrawCall` objects that `flush` used\n* to create \"batches\" of the objects being rendered.\n*\n* These are never re-allocated again.\n* Shared between all batch renderers because it can be only one \"flush\" working at the moment.\n* @member {PIXI.BatchDrawCall[]}\n*/\nji._drawCallPool = [], /**\n* Pool of `BatchDrawCall` objects that `flush` used\n* to create \"batches\" of the objects being rendered.\n*\n* These are never re-allocated again.\n* Shared between all batch renderers because it can be only one \"flush\" working at the moment.\n* @member {PIXI.BatchTextureArray[]}\n*/\nji._textureArrayPool = [];\nlet Rr = ji;\nq.add(Rr);\nvar kv = `varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n}\n`, Gv = `attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n`;\nconst Ra = class Yi extends Ne {\n /**\n * @param vertexSrc - The source of the vertex shader.\n * @param fragmentSrc - The source of the fragment shader.\n * @param uniforms - Custom uniforms to use to augment the built-in ones.\n */\n constructor(t, e, i) {\n const s = Ze.from(\n t || Yi.defaultVertexSrc,\n e || Yi.defaultFragmentSrc\n );\n super(s, i), this.padding = 0, this.resolution = Yi.defaultResolution, this.multisample = Yi.defaultMultisample, this.enabled = !0, this.autoFit = !0, this.state = new ze();\n }\n /**\n * Applies the filter\n * @param {PIXI.FilterSystem} filterManager - The renderer to retrieve the filter from\n * @param {PIXI.RenderTexture} input - The input render target.\n * @param {PIXI.RenderTexture} output - The target to output to.\n * @param {PIXI.CLEAR_MODES} [clearMode] - Should the output be cleared before rendering to it.\n * @param {object} [_currentState] - It's current state of filter.\n * There are some useful properties in the currentState :\n * target, filters, sourceFrame, destinationFrame, renderTarget, resolution\n */\n apply(t, e, i, s, n) {\n t.applyFilter(this, e, i, s);\n }\n /**\n * Sets the blend mode of the filter.\n * @default PIXI.BLEND_MODES.NORMAL\n */\n get blendMode() {\n return this.state.blendMode;\n }\n set blendMode(t) {\n this.state.blendMode = t;\n }\n /**\n * The resolution of the filter. Setting this to be lower will lower the quality but\n * increase the performance of the filter.\n * If set to `null` or `0`, the resolution of the current render target is used.\n * @default PIXI.Filter.defaultResolution\n */\n get resolution() {\n return this._resolution;\n }\n set resolution(t) {\n this._resolution = t;\n }\n /**\n * The default vertex shader source\n * @readonly\n */\n static get defaultVertexSrc() {\n return Gv;\n }\n /**\n * The default fragment shader source\n * @readonly\n */\n static get defaultFragmentSrc() {\n return kv;\n }\n};\nRa.defaultResolution = 1, /**\n* Default filter samples for any filter.\n* @static\n* @type {PIXI.MSAA_QUALITY|null}\n* @default PIXI.MSAA_QUALITY.NONE\n*/\nRa.defaultMultisample = Bt.NONE;\nlet Jt = Ra;\nclass Cn {\n constructor() {\n this.clearBeforeRender = !0, this._backgroundColor = new xt(0), this.alpha = 1;\n }\n /**\n * initiates the background system\n * @param {PIXI.IRendererOptions} options - the options for the background colors\n */\n init(t) {\n this.clearBeforeRender = t.clearBeforeRender;\n const { backgroundColor: e, background: i, backgroundAlpha: s } = t, n = i ?? e;\n n !== void 0 && (this.color = n), this.alpha = s;\n }\n /**\n * The background color to fill if not transparent.\n * @member {PIXI.ColorSource}\n */\n get color() {\n return this._backgroundColor.value;\n }\n set color(t) {\n this._backgroundColor.setValue(t);\n }\n /**\n * The background color alpha. Setting this to 0 will make the canvas transparent.\n * @member {number}\n */\n get alpha() {\n return this._backgroundColor.alpha;\n }\n set alpha(t) {\n this._backgroundColor.setAlpha(t);\n }\n /** The background color object. */\n get backgroundColor() {\n return this._backgroundColor;\n }\n destroy() {\n }\n}\nCn.defaultOptions = {\n /**\n * {@link PIXI.IRendererOptions.backgroundAlpha}\n * @default 1\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n backgroundAlpha: 1,\n /**\n * {@link PIXI.IRendererOptions.backgroundColor}\n * @default 0x000000\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n backgroundColor: 0,\n /**\n * {@link PIXI.IRendererOptions.clearBeforeRender}\n * @default true\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n clearBeforeRender: !0\n}, /** @ignore */\nCn.extension = {\n type: [\n H.RendererSystem,\n H.CanvasRendererSystem\n ],\n name: \"background\"\n};\nq.add(Cn);\nclass wd {\n /**\n * @param renderer - The renderer this System works for.\n */\n constructor(t) {\n this.renderer = t, this.emptyRenderer = new Kn(t), this.currentRenderer = this.emptyRenderer;\n }\n /**\n * Changes the current renderer to the one given in parameter\n * @param objectRenderer - The object renderer to use.\n */\n setObjectRenderer(t) {\n this.currentRenderer !== t && (this.currentRenderer.stop(), this.currentRenderer = t, this.currentRenderer.start());\n }\n /**\n * This should be called if you wish to do some custom rendering\n * It will basically render anything that may be batched up such as sprites\n */\n flush() {\n this.setObjectRenderer(this.emptyRenderer);\n }\n /** Reset the system to an empty renderer */\n reset() {\n this.setObjectRenderer(this.emptyRenderer);\n }\n /**\n * Handy function for batch renderers: copies bound textures in first maxTextures locations to array\n * sets actual _batchLocation for them\n * @param arr - arr copy destination\n * @param maxTextures - number of copied elements\n */\n copyBoundTextures(t, e) {\n const { boundTextures: i } = this.renderer.texture;\n for (let s = e - 1; s >= 0; --s)\n t[s] = i[s] || null, t[s] && (t[s]._batchLocation = s);\n }\n /**\n * Assigns batch locations to textures in array based on boundTextures state.\n * All textures in texArray should have `_batchEnabled = _batchId`,\n * and their count should be less than `maxTextures`.\n * @param texArray - textures to bound\n * @param boundTextures - current state of bound textures\n * @param batchId - marker for _batchEnabled param of textures in texArray\n * @param maxTextures - number of texture locations to manipulate\n */\n boundArray(t, e, i, s) {\n const { elements: n, ids: o, count: a } = t;\n let l = 0;\n for (let h = 0; h < a; h++) {\n const c = n[h], u = c._batchLocation;\n if (u >= 0 && u < s && e[u] === c) {\n o[h] = u;\n continue;\n }\n for (; l < s; ) {\n const d = e[l];\n if (d && d._batchEnabled === i && d._batchLocation === l) {\n l++;\n continue;\n }\n o[h] = l, c._batchLocation = l, e[l] = c;\n break;\n }\n }\n }\n /**\n * @ignore\n */\n destroy() {\n this.renderer = null;\n }\n}\nwd.extension = {\n type: H.RendererSystem,\n name: \"batch\"\n};\nq.add(wd);\nlet dc = 0;\nclass In {\n /** @param renderer - The renderer this System works for. */\n constructor(t) {\n this.renderer = t, this.webGLVersion = 1, this.extensions = {}, this.supports = {\n uint32Indices: !1\n }, this.handleContextLost = this.handleContextLost.bind(this), this.handleContextRestored = this.handleContextRestored.bind(this);\n }\n /**\n * `true` if the context is lost\n * @readonly\n */\n get isLost() {\n return !this.gl || this.gl.isContextLost();\n }\n /**\n * Handles the context change event.\n * @param {WebGLRenderingContext} gl - New WebGL context.\n */\n contextChange(t) {\n this.gl = t, this.renderer.gl = t, this.renderer.CONTEXT_UID = dc++;\n }\n init(t) {\n if (t.context)\n this.initFromContext(t.context);\n else {\n const e = this.renderer.background.alpha < 1, i = t.premultipliedAlpha;\n this.preserveDrawingBuffer = t.preserveDrawingBuffer, this.useContextAlpha = t.useContextAlpha, this.powerPreference = t.powerPreference, this.initFromOptions({\n alpha: e,\n premultipliedAlpha: i,\n antialias: t.antialias,\n stencil: !0,\n preserveDrawingBuffer: t.preserveDrawingBuffer,\n powerPreference: t.powerPreference\n });\n }\n }\n /**\n * Initializes the context.\n * @protected\n * @param {WebGLRenderingContext} gl - WebGL context\n */\n initFromContext(t) {\n this.gl = t, this.validateContext(t), this.renderer.gl = t, this.renderer.CONTEXT_UID = dc++, this.renderer.runners.contextChange.emit(t);\n const e = this.renderer.view;\n e.addEventListener !== void 0 && (e.addEventListener(\"webglcontextlost\", this.handleContextLost, !1), e.addEventListener(\"webglcontextrestored\", this.handleContextRestored, !1));\n }\n /**\n * Initialize from context options\n * @protected\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext\n * @param {object} options - context attributes\n */\n initFromOptions(t) {\n const e = this.createContext(this.renderer.view, t);\n this.initFromContext(e);\n }\n /**\n * Helper class to create a WebGL Context\n * @param canvas - the canvas element that we will get the context from\n * @param options - An options object that gets passed in to the canvas element containing the\n * context attributes\n * @see https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement/getContext\n * @returns {WebGLRenderingContext} the WebGL context\n */\n createContext(t, e) {\n let i;\n if (W.PREFER_ENV >= zr.WEBGL2 && (i = t.getContext(\"webgl2\", e)), i)\n this.webGLVersion = 2;\n else if (this.webGLVersion = 1, i = t.getContext(\"webgl\", e) || t.getContext(\"experimental-webgl\", e), !i)\n throw new Error(\"This browser does not support WebGL. Try using the canvas renderer\");\n return this.gl = i, this.getExtensions(), this.gl;\n }\n /** Auto-populate the {@link PIXI.ContextSystem.extensions extensions}. */\n getExtensions() {\n const { gl: t } = this, e = {\n loseContext: t.getExtension(\"WEBGL_lose_context\"),\n anisotropicFiltering: t.getExtension(\"EXT_texture_filter_anisotropic\"),\n floatTextureLinear: t.getExtension(\"OES_texture_float_linear\"),\n s3tc: t.getExtension(\"WEBGL_compressed_texture_s3tc\"),\n s3tc_sRGB: t.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\"),\n // eslint-disable-line camelcase\n etc: t.getExtension(\"WEBGL_compressed_texture_etc\"),\n etc1: t.getExtension(\"WEBGL_compressed_texture_etc1\"),\n pvrtc: t.getExtension(\"WEBGL_compressed_texture_pvrtc\") || t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\"),\n atc: t.getExtension(\"WEBGL_compressed_texture_atc\"),\n astc: t.getExtension(\"WEBGL_compressed_texture_astc\"),\n bptc: t.getExtension(\"EXT_texture_compression_bptc\")\n };\n this.webGLVersion === 1 ? Object.assign(this.extensions, e, {\n drawBuffers: t.getExtension(\"WEBGL_draw_buffers\"),\n depthTexture: t.getExtension(\"WEBGL_depth_texture\"),\n vertexArrayObject: t.getExtension(\"OES_vertex_array_object\") || t.getExtension(\"MOZ_OES_vertex_array_object\") || t.getExtension(\"WEBKIT_OES_vertex_array_object\"),\n uint32ElementIndex: t.getExtension(\"OES_element_index_uint\"),\n // Floats and half-floats\n floatTexture: t.getExtension(\"OES_texture_float\"),\n floatTextureLinear: t.getExtension(\"OES_texture_float_linear\"),\n textureHalfFloat: t.getExtension(\"OES_texture_half_float\"),\n textureHalfFloatLinear: t.getExtension(\"OES_texture_half_float_linear\")\n }) : this.webGLVersion === 2 && Object.assign(this.extensions, e, {\n // Floats and half-floats\n colorBufferFloat: t.getExtension(\"EXT_color_buffer_float\")\n });\n }\n /**\n * Handles a lost webgl context\n * @param {WebGLContextEvent} event - The context lost event.\n */\n handleContextLost(t) {\n t.preventDefault(), setTimeout(() => {\n this.gl.isContextLost() && this.extensions.loseContext && this.extensions.loseContext.restoreContext();\n }, 0);\n }\n /** Handles a restored webgl context. */\n handleContextRestored() {\n this.renderer.runners.contextChange.emit(this.gl);\n }\n destroy() {\n const t = this.renderer.view;\n this.renderer = null, t.removeEventListener !== void 0 && (t.removeEventListener(\"webglcontextlost\", this.handleContextLost), t.removeEventListener(\"webglcontextrestored\", this.handleContextRestored)), this.gl.useProgram(null), this.extensions.loseContext && this.extensions.loseContext.loseContext();\n }\n /** Handle the post-render runner event. */\n postrender() {\n this.renderer.objectRenderer.renderingToScreen && this.gl.flush();\n }\n /**\n * Validate context.\n * @param {WebGLRenderingContext} gl - Render context.\n */\n validateContext(t) {\n const e = t.getContextAttributes(), i = \"WebGL2RenderingContext\" in globalThis && t instanceof globalThis.WebGL2RenderingContext;\n i && (this.webGLVersion = 2), e && !e.stencil && console.warn(\"Provided WebGL context does not have a stencil buffer, masks may not render correctly\");\n const s = i || !!t.getExtension(\"OES_element_index_uint\");\n this.supports.uint32Indices = s, s || console.warn(\"Provided WebGL context does not support 32 index buffer, complex graphics may not render correctly\");\n }\n}\nIn.defaultOptions = {\n /**\n * {@link PIXI.IRendererOptions.context}\n * @default null\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n context: null,\n /**\n * {@link PIXI.IRendererOptions.antialias}\n * @default false\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n antialias: !1,\n /**\n * {@link PIXI.IRendererOptions.premultipliedAlpha}\n * @default true\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n premultipliedAlpha: !0,\n /**\n * {@link PIXI.IRendererOptions.preserveDrawingBuffer}\n * @default false\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n preserveDrawingBuffer: !1,\n /**\n * {@link PIXI.IRendererOptions.powerPreference}\n * @default default\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n powerPreference: \"default\"\n}, /** @ignore */\nIn.extension = {\n type: H.RendererSystem,\n name: \"context\"\n};\nq.add(In);\nclass Ma {\n /**\n * @param width - Width of the frame buffer\n * @param height - Height of the frame buffer\n */\n constructor(t, e) {\n if (this.width = Math.round(t), this.height = Math.round(e), !this.width || !this.height)\n throw new Error(\"Framebuffer width or height is zero\");\n this.stencil = !1, this.depth = !1, this.dirtyId = 0, this.dirtyFormat = 0, this.dirtySize = 0, this.depthTexture = null, this.colorTextures = [], this.glFramebuffers = {}, this.disposeRunner = new xe(\"disposeFramebuffer\"), this.multisample = Bt.NONE;\n }\n /**\n * Reference to the colorTexture.\n * @readonly\n */\n get colorTexture() {\n return this.colorTextures[0];\n }\n /**\n * Add texture to the colorTexture array.\n * @param index - Index of the array to add the texture to\n * @param texture - Texture to add to the array\n */\n addColorTexture(t = 0, e) {\n return this.colorTextures[t] = e || new et(null, {\n scaleMode: Ye.NEAREST,\n resolution: 1,\n mipmap: He.OFF,\n width: this.width,\n height: this.height\n }), this.dirtyId++, this.dirtyFormat++, this;\n }\n /**\n * Add a depth texture to the frame buffer.\n * @param texture - Texture to add.\n */\n addDepthTexture(t) {\n return this.depthTexture = t || new et(null, {\n scaleMode: Ye.NEAREST,\n resolution: 1,\n width: this.width,\n height: this.height,\n mipmap: He.OFF,\n format: U.DEPTH_COMPONENT,\n type: Z.UNSIGNED_SHORT\n }), this.dirtyId++, this.dirtyFormat++, this;\n }\n /** Enable depth on the frame buffer. */\n enableDepth() {\n return this.depth = !0, this.dirtyId++, this.dirtyFormat++, this;\n }\n /** Enable stencil on the frame buffer. */\n enableStencil() {\n return this.stencil = !0, this.dirtyId++, this.dirtyFormat++, this;\n }\n /**\n * Resize the frame buffer\n * @param width - Width of the frame buffer to resize to\n * @param height - Height of the frame buffer to resize to\n */\n resize(t, e) {\n if (t = Math.round(t), e = Math.round(e), !t || !e)\n throw new Error(\"Framebuffer width and height must not be zero\");\n if (!(t === this.width && e === this.height)) {\n this.width = t, this.height = e, this.dirtyId++, this.dirtySize++;\n for (let i = 0; i < this.colorTextures.length; i++) {\n const s = this.colorTextures[i], n = s.resolution;\n s.setSize(t / n, e / n);\n }\n if (this.depthTexture) {\n const i = this.depthTexture.resolution;\n this.depthTexture.setSize(t / i, e / i);\n }\n }\n }\n /** Disposes WebGL resources that are connected to this geometry. */\n dispose() {\n this.disposeRunner.emit(this, !1);\n }\n /** Destroys and removes the depth texture added to this framebuffer. */\n destroyDepthTexture() {\n this.depthTexture && (this.depthTexture.destroy(), this.depthTexture = null, ++this.dirtyId, ++this.dirtyFormat);\n }\n}\nclass Ed extends et {\n /**\n * @param options\n * @param {number} [options.width=100] - The width of the base render texture.\n * @param {number} [options.height=100] - The height of the base render texture.\n * @param {PIXI.SCALE_MODES} [options.scaleMode=PIXI.BaseTexture.defaultOptions.scaleMode] - See {@link PIXI.SCALE_MODES}\n * for possible values.\n * @param {number} [options.resolution=PIXI.settings.RESOLUTION] - The resolution / device pixel ratio\n * of the texture being generated.\n * @param {PIXI.MSAA_QUALITY} [options.multisample=PIXI.MSAA_QUALITY.NONE] - The number of samples of the frame buffer.\n */\n constructor(t = {}) {\n if (typeof t == \"number\") {\n const e = arguments[0], i = arguments[1], s = arguments[2], n = arguments[3];\n t = { width: e, height: i, scaleMode: s, resolution: n };\n }\n t.width = t.width ?? 100, t.height = t.height ?? 100, t.multisample ?? (t.multisample = Bt.NONE), super(null, t), this.mipmap = He.OFF, this.valid = !0, this._clear = new xt([0, 0, 0, 0]), this.framebuffer = new Ma(this.realWidth, this.realHeight).addColorTexture(0, this), this.framebuffer.multisample = t.multisample, this.maskStack = [], this.filterStack = [{}];\n }\n /** Color when clearning the texture. */\n set clearColor(t) {\n this._clear.setValue(t);\n }\n get clearColor() {\n return this._clear.value;\n }\n /**\n * Color object when clearning the texture.\n * @readonly\n * @since 7.2.0\n */\n get clear() {\n return this._clear;\n }\n /**\n * Shortcut to `this.framebuffer.multisample`.\n * @default PIXI.MSAA_QUALITY.NONE\n */\n get multisample() {\n return this.framebuffer.multisample;\n }\n set multisample(t) {\n this.framebuffer.multisample = t;\n }\n /**\n * Resizes the BaseRenderTexture.\n * @param desiredWidth - The desired width to resize to.\n * @param desiredHeight - The desired height to resize to.\n */\n resize(t, e) {\n this.framebuffer.resize(t * this.resolution, e * this.resolution), this.setRealSize(this.framebuffer.width, this.framebuffer.height);\n }\n /**\n * Frees the texture and framebuffer from WebGL memory without destroying this texture object.\n * This means you can still use the texture later which will upload it to GPU\n * memory again.\n * @fires PIXI.BaseTexture#dispose\n */\n dispose() {\n this.framebuffer.dispose(), super.dispose();\n }\n /** Destroys this texture. */\n destroy() {\n super.destroy(), this.framebuffer.destroyDepthTexture(), this.framebuffer = null;\n }\n}\nclass ir extends ds {\n /**\n * @param {PIXI.ImageSourcee} source\n */\n constructor(t) {\n const e = t, i = e.naturalWidth || e.videoWidth || e.displayWidth || e.width, s = e.naturalHeight || e.videoHeight || e.displayHeight || e.height;\n super(i, s), this.source = t, this.noSubImage = !1;\n }\n /**\n * Set cross origin based detecting the url and the crossorigin\n * @param element - Element to apply crossOrigin\n * @param url - URL to check\n * @param crossorigin - Cross origin value to use\n */\n static crossOrigin(t, e, i) {\n i === void 0 && !e.startsWith(\"data:\") ? t.crossOrigin = hv(e) : i !== !1 && (t.crossOrigin = typeof i == \"string\" ? i : \"anonymous\");\n }\n /**\n * Upload the texture to the GPU.\n * @param renderer - Upload to the renderer\n * @param baseTexture - Reference to parent texture\n * @param glTexture\n * @param {PIXI.ImageSourcee} [source] - (optional)\n * @returns - true is success\n */\n upload(t, e, i, s) {\n const n = t.gl, o = e.realWidth, a = e.realHeight;\n if (s = s || this.source, typeof HTMLImageElement < \"u\" && s instanceof HTMLImageElement) {\n if (!s.complete || s.naturalWidth === 0)\n return !1;\n } else if (typeof HTMLVideoElement < \"u\" && s instanceof HTMLVideoElement && s.readyState <= 1)\n return !1;\n return n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.alphaMode === te.UNPACK), !this.noSubImage && e.target === n.TEXTURE_2D && i.width === o && i.height === a ? n.texSubImage2D(n.TEXTURE_2D, 0, 0, 0, e.format, i.type, s) : (i.width = o, i.height = a, n.texImage2D(e.target, 0, i.internalFormat, e.format, i.type, s)), !0;\n }\n /**\n * Checks if source width/height was changed, resize can cause extra baseTexture update.\n * Triggers one update in any case.\n */\n update() {\n if (this.destroyed)\n return;\n const t = this.source, e = t.naturalWidth || t.videoWidth || t.width, i = t.naturalHeight || t.videoHeight || t.height;\n this.resize(e, i), super.update();\n }\n /** Destroy this {@link PIXI.BaseImageResource} */\n dispose() {\n this.source = null;\n }\n}\nclass Td extends ir {\n /**\n * @param source - image source or URL\n * @param options\n * @param {boolean} [options.autoLoad=true] - start loading process\n * @param {boolean} [options.createBitmap=PIXI.settings.CREATE_IMAGE_BITMAP] - whether its required to create\n * a bitmap before upload\n * @param {boolean} [options.crossorigin=true] - Load image using cross origin\n * @param {PIXI.ALPHA_MODES} [options.alphaMode=PIXI.ALPHA_MODES.UNPACK] - Premultiply image alpha in bitmap\n */\n constructor(t, e) {\n if (e = e || {}, typeof t == \"string\") {\n const i = new Image();\n ir.crossOrigin(i, t, e.crossorigin), i.src = t, t = i;\n }\n super(t), !t.complete && this._width && this._height && (this._width = 0, this._height = 0), this.url = t.src, this._process = null, this.preserveBitmap = !1, this.createBitmap = (e.createBitmap ?? W.CREATE_IMAGE_BITMAP) && !!globalThis.createImageBitmap, this.alphaMode = typeof e.alphaMode == \"number\" ? e.alphaMode : null, this.bitmap = null, this._load = null, e.autoLoad !== !1 && this.load();\n }\n /**\n * Returns a promise when image will be loaded and processed.\n * @param createBitmap - whether process image into bitmap\n */\n load(t) {\n return this._load ? this._load : (t !== void 0 && (this.createBitmap = t), this._load = new Promise((e, i) => {\n const s = this.source;\n this.url = s.src;\n const n = () => {\n this.destroyed || (s.onload = null, s.onerror = null, this.update(), this._load = null, this.createBitmap ? e(this.process()) : e(this));\n };\n s.complete && s.src ? n() : (s.onload = n, s.onerror = (o) => {\n i(o), this.onError.emit(o);\n });\n }), this._load);\n }\n /**\n * Called when we need to convert image into BitmapImage.\n * Can be called multiple times, real promise is cached inside.\n * @returns - Cached promise to fill that bitmap\n */\n process() {\n const t = this.source;\n if (this._process !== null)\n return this._process;\n if (this.bitmap !== null || !globalThis.createImageBitmap)\n return Promise.resolve(this);\n const e = globalThis.createImageBitmap, i = !t.crossOrigin || t.crossOrigin === \"anonymous\";\n return this._process = fetch(\n t.src,\n {\n mode: i ? \"cors\" : \"no-cors\"\n }\n ).then((s) => s.blob()).then((s) => e(\n s,\n 0,\n 0,\n t.width,\n t.height,\n {\n premultiplyAlpha: this.alphaMode === null || this.alphaMode === te.UNPACK ? \"premultiply\" : \"none\"\n }\n )).then((s) => this.destroyed ? Promise.reject() : (this.bitmap = s, this.update(), this._process = null, Promise.resolve(this))), this._process;\n }\n /**\n * Upload the image resource to GPU.\n * @param renderer - Renderer to upload to\n * @param baseTexture - BaseTexture for this resource\n * @param glTexture - GLTexture to use\n * @returns {boolean} true is success\n */\n upload(t, e, i) {\n if (typeof this.alphaMode == \"number\" && (e.alphaMode = this.alphaMode), !this.createBitmap)\n return super.upload(t, e, i);\n if (!this.bitmap && (this.process(), !this.bitmap))\n return !1;\n if (super.upload(t, e, i, this.bitmap), !this.preserveBitmap) {\n let s = !0;\n const n = e._glTextures;\n for (const o in n) {\n const a = n[o];\n if (a !== i && a.dirtyId !== e.dirtyId) {\n s = !1;\n break;\n }\n }\n s && (this.bitmap.close && this.bitmap.close(), this.bitmap = null);\n }\n return !0;\n }\n /** Destroys this resource. */\n dispose() {\n this.source.onload = null, this.source.onerror = null, super.dispose(), this.bitmap && (this.bitmap.close(), this.bitmap = null), this._process = null, this._load = null;\n }\n /**\n * Used to auto-detect the type of resource.\n * @param {*} source - The source object\n * @returns {boolean} `true` if current environment support HTMLImageElement, and source is string or HTMLImageElement\n */\n static test(t) {\n return typeof HTMLImageElement < \"u\" && (typeof t == \"string\" || t instanceof HTMLImageElement);\n }\n}\nclass xl {\n constructor() {\n this.x0 = 0, this.y0 = 0, this.x1 = 1, this.y1 = 0, this.x2 = 1, this.y2 = 1, this.x3 = 0, this.y3 = 1, this.uvsFloat32 = new Float32Array(8);\n }\n /**\n * Sets the texture Uvs based on the given frame information.\n * @protected\n * @param frame - The frame of the texture\n * @param baseFrame - The base frame of the texture\n * @param rotate - Rotation of frame, see {@link PIXI.groupD8}\n */\n set(t, e, i) {\n const s = e.width, n = e.height;\n if (i) {\n const o = t.width / 2 / s, a = t.height / 2 / n, l = t.x / s + o, h = t.y / n + a;\n i = At.add(i, At.NW), this.x0 = l + o * At.uX(i), this.y0 = h + a * At.uY(i), i = At.add(i, 2), this.x1 = l + o * At.uX(i), this.y1 = h + a * At.uY(i), i = At.add(i, 2), this.x2 = l + o * At.uX(i), this.y2 = h + a * At.uY(i), i = At.add(i, 2), this.x3 = l + o * At.uX(i), this.y3 = h + a * At.uY(i);\n } else\n this.x0 = t.x / s, this.y0 = t.y / n, this.x1 = (t.x + t.width) / s, this.y1 = t.y / n, this.x2 = (t.x + t.width) / s, this.y2 = (t.y + t.height) / n, this.x3 = t.x / s, this.y3 = (t.y + t.height) / n;\n this.uvsFloat32[0] = this.x0, this.uvsFloat32[1] = this.y0, this.uvsFloat32[2] = this.x1, this.uvsFloat32[3] = this.y1, this.uvsFloat32[4] = this.x2, this.uvsFloat32[5] = this.y2, this.uvsFloat32[6] = this.x3, this.uvsFloat32[7] = this.y3;\n }\n}\nxl.prototype.toString = function() {\n return `[@pixi/core:TextureUvs x0=${this.x0} y0=${this.y0} x1=${this.x1} y1=${this.y1} x2=${this.x2} y2=${this.y2} x3=${this.x3} y3=${this.y3}]`;\n};\nconst fc = new xl();\nfunction Ns(r) {\n r.destroy = function() {\n }, r.on = function() {\n }, r.once = function() {\n }, r.emit = function() {\n };\n}\nclass Y extends ms {\n /**\n * @param baseTexture - The base texture source to create the texture from\n * @param frame - The rectangle frame of the texture to show\n * @param orig - The area of original texture\n * @param trim - Trimmed rectangle of original texture\n * @param rotate - indicates how the texture was rotated by texture packer. See {@link PIXI.groupD8}\n * @param anchor - Default anchor point used for sprite placement / rotation\n * @param borders - Default borders used for 9-slice scaling. See {@link PIXI.NineSlicePlane}\n */\n constructor(t, e, i, s, n, o, a) {\n if (super(), this.noFrame = !1, e || (this.noFrame = !0, e = new it(0, 0, 1, 1)), t instanceof Y && (t = t.baseTexture), this.baseTexture = t, this._frame = e, this.trim = s, this.valid = !1, this.destroyed = !1, this._uvs = fc, this.uvMatrix = null, this.orig = i || e, this._rotate = Number(n || 0), n === !0)\n this._rotate = 2;\n else if (this._rotate % 2 !== 0)\n throw new Error(\"attempt to use diamond-shaped UVs. If you are sure, set rotation manually\");\n this.defaultAnchor = o ? new ft(o.x, o.y) : new ft(0, 0), this.defaultBorders = a, this._updateID = 0, this.textureCacheIds = [], t.valid ? this.noFrame ? t.valid && this.onBaseTextureUpdated(t) : this.frame = e : t.once(\"loaded\", this.onBaseTextureUpdated, this), this.noFrame && t.on(\"update\", this.onBaseTextureUpdated, this);\n }\n /**\n * Updates this texture on the gpu.\n *\n * Calls the TextureResource update.\n *\n * If you adjusted `frame` manually, please call `updateUvs()` instead.\n */\n update() {\n this.baseTexture.resource && this.baseTexture.resource.update();\n }\n /**\n * Called when the base texture is updated\n * @protected\n * @param baseTexture - The base texture.\n */\n onBaseTextureUpdated(t) {\n if (this.noFrame) {\n if (!this.baseTexture.valid)\n return;\n this._frame.width = t.width, this._frame.height = t.height, this.valid = !0, this.updateUvs();\n } else\n this.frame = this._frame;\n this.emit(\"update\", this);\n }\n /**\n * Destroys this texture\n * @param [destroyBase=false] - Whether to destroy the base texture as well\n * @fires PIXI.Texture#destroyed\n */\n destroy(t) {\n if (this.baseTexture) {\n if (t) {\n const { resource: e } = this.baseTexture;\n e != null && e.url && Ie[e.url] && Y.removeFromCache(e.url), this.baseTexture.destroy();\n }\n this.baseTexture.off(\"loaded\", this.onBaseTextureUpdated, this), this.baseTexture.off(\"update\", this.onBaseTextureUpdated, this), this.baseTexture = null;\n }\n this._frame = null, this._uvs = null, this.trim = null, this.orig = null, this.valid = !1, Y.removeFromCache(this), this.textureCacheIds = null, this.destroyed = !0, this.emit(\"destroyed\", this), this.removeAllListeners();\n }\n /**\n * Creates a new texture object that acts the same as this one.\n * @returns - The new texture\n */\n clone() {\n var s;\n const t = this._frame.clone(), e = this._frame === this.orig ? t : this.orig.clone(), i = new Y(\n this.baseTexture,\n !this.noFrame && t,\n e,\n (s = this.trim) == null ? void 0 : s.clone(),\n this.rotate,\n this.defaultAnchor,\n this.defaultBorders\n );\n return this.noFrame && (i._frame = t), i;\n }\n /**\n * Updates the internal WebGL UV cache. Use it after you change `frame` or `trim` of the texture.\n * Call it after changing the frame\n */\n updateUvs() {\n this._uvs === fc && (this._uvs = new xl()), this._uvs.set(this._frame, this.baseTexture, this.rotate), this._updateID++;\n }\n /**\n * Helper function that creates a new Texture based on the source you provide.\n * The source can be - frame id, image url, video url, canvas element, video element, base texture\n * @param {string|PIXI.BaseTexture|HTMLImageElement|HTMLVideoElement|ImageBitmap|PIXI.ICanvas} source -\n * Source or array of sources to create texture from\n * @param options - See {@link PIXI.BaseTexture}'s constructor for options.\n * @param {string} [options.pixiIdPrefix=pixiid] - If a source has no id, this is the prefix of the generated id\n * @param {boolean} [strict] - Enforce strict-mode, see {@link PIXI.settings.STRICT_TEXTURE_CACHE}.\n * @returns {PIXI.Texture} The newly created texture\n */\n static from(t, e = {}, i = W.STRICT_TEXTURE_CACHE) {\n const s = typeof t == \"string\";\n let n = null;\n if (s)\n n = t;\n else if (t instanceof et) {\n if (!t.cacheId) {\n const a = (e == null ? void 0 : e.pixiIdPrefix) || \"pixiid\";\n t.cacheId = `${a}-${Xr()}`, et.addToCache(t, t.cacheId);\n }\n n = t.cacheId;\n } else {\n if (!t._pixiId) {\n const a = (e == null ? void 0 : e.pixiIdPrefix) || \"pixiid\";\n t._pixiId = `${a}_${Xr()}`;\n }\n n = t._pixiId;\n }\n let o = Ie[n];\n if (s && i && !o)\n throw new Error(`The cacheId \"${n}\" does not exist in TextureCache.`);\n return !o && !(t instanceof et) ? (e.resolution || (e.resolution = rr(t)), o = new Y(new et(t, e)), o.baseTexture.cacheId = n, et.addToCache(o.baseTexture, n), Y.addToCache(o, n)) : !o && t instanceof et && (o = new Y(t), Y.addToCache(o, n)), o;\n }\n /**\n * Useful for loading textures via URLs. Use instead of `Texture.from` because\n * it does a better job of handling failed URLs more effectively. This also ignores\n * `PIXI.settings.STRICT_TEXTURE_CACHE`. Works for Videos, SVGs, Images.\n * @param url - The remote URL or array of URLs to load.\n * @param options - Optional options to include\n * @returns - A Promise that resolves to a Texture.\n */\n static fromURL(t, e) {\n const i = Object.assign({ autoLoad: !1 }, e == null ? void 0 : e.resourceOptions), s = Y.from(t, Object.assign({ resourceOptions: i }, e), !1), n = s.baseTexture.resource;\n return s.baseTexture.valid ? Promise.resolve(s) : n.load().then(() => Promise.resolve(s));\n }\n /**\n * Create a new Texture with a BufferResource from a typed array.\n * @param buffer - The optional array to use. If no data is provided, a new Float32Array is created.\n * @param width - Width of the resource\n * @param height - Height of the resource\n * @param options - See {@link PIXI.BaseTexture}'s constructor for options.\n * Default properties are different from the constructor's defaults.\n * @param {PIXI.FORMATS} [options.format] - The format is not given, the type is inferred from the\n * type of the buffer: `RGBA` if Float32Array, Int8Array, Uint8Array, or Uint8ClampedArray,\n * otherwise `RGBA_INTEGER`.\n * @param {PIXI.TYPES} [options.type] - The type is not given, the type is inferred from the\n * type of the buffer. Maps Float32Array to `FLOAT`, Int32Array to `INT`, Uint32Array to\n * `UNSIGNED_INT`, Int16Array to `SHORT`, Uint16Array to `UNSIGNED_SHORT`, Int8Array to `BYTE`,\n * Uint8Array/Uint8ClampedArray to `UNSIGNED_BYTE`.\n * @param {PIXI.ALPHA_MODES} [options.alphaMode=PIXI.ALPHA_MODES.NPM]\n * @param {PIXI.SCALE_MODES} [options.scaleMode=PIXI.SCALE_MODES.NEAREST]\n * @returns - The resulting new BaseTexture\n */\n static fromBuffer(t, e, i, s) {\n return new Y(et.fromBuffer(t, e, i, s));\n }\n /**\n * Create a texture from a source and add to the cache.\n * @param {HTMLImageElement|HTMLVideoElement|ImageBitmap|PIXI.ICanvas|string} source - The input source.\n * @param imageUrl - File name of texture, for cache and resolving resolution.\n * @param name - Human readable name for the texture cache. If no name is\n * specified, only `imageUrl` will be used as the cache ID.\n * @param options\n * @returns - Output texture\n */\n static fromLoader(t, e, i, s) {\n const n = new et(t, Object.assign({\n scaleMode: et.defaultOptions.scaleMode,\n resolution: rr(e)\n }, s)), { resource: o } = n;\n o instanceof Td && (o.url = e);\n const a = new Y(n);\n return i || (i = e), et.addToCache(a.baseTexture, i), Y.addToCache(a, i), i !== e && (et.addToCache(a.baseTexture, e), Y.addToCache(a, e)), a.baseTexture.valid ? Promise.resolve(a) : new Promise((l) => {\n a.baseTexture.once(\"loaded\", () => l(a));\n });\n }\n /**\n * Adds a Texture to the global TextureCache. This cache is shared across the whole PIXI object.\n * @param texture - The Texture to add to the cache.\n * @param id - The id that the Texture will be stored against.\n */\n static addToCache(t, e) {\n e && (t.textureCacheIds.includes(e) || t.textureCacheIds.push(e), Ie[e] && Ie[e] !== t && console.warn(`Texture added to the cache with an id [${e}] that already had an entry`), Ie[e] = t);\n }\n /**\n * Remove a Texture from the global TextureCache.\n * @param texture - id of a Texture to be removed, or a Texture instance itself\n * @returns - The Texture that was removed\n */\n static removeFromCache(t) {\n if (typeof t == \"string\") {\n const e = Ie[t];\n if (e) {\n const i = e.textureCacheIds.indexOf(t);\n return i > -1 && e.textureCacheIds.splice(i, 1), delete Ie[t], e;\n }\n } else if (t != null && t.textureCacheIds) {\n for (let e = 0; e < t.textureCacheIds.length; ++e)\n Ie[t.textureCacheIds[e]] === t && delete Ie[t.textureCacheIds[e]];\n return t.textureCacheIds.length = 0, t;\n }\n return null;\n }\n /**\n * Returns resolution of baseTexture\n * @readonly\n */\n get resolution() {\n return this.baseTexture.resolution;\n }\n /**\n * The frame specifies the region of the base texture that this texture uses.\n * Please call `updateUvs()` after you change coordinates of `frame` manually.\n */\n get frame() {\n return this._frame;\n }\n set frame(t) {\n this._frame = t, this.noFrame = !1;\n const { x: e, y: i, width: s, height: n } = t, o = e + s > this.baseTexture.width, a = i + n > this.baseTexture.height;\n if (o || a) {\n const l = o && a ? \"and\" : \"or\", h = `X: ${e} + ${s} = ${e + s} > ${this.baseTexture.width}`, c = `Y: ${i} + ${n} = ${i + n} > ${this.baseTexture.height}`;\n throw new Error(`Texture Error: frame does not fit inside the base Texture dimensions: ${h} ${l} ${c}`);\n }\n this.valid = s && n && this.baseTexture.valid, !this.trim && !this.rotate && (this.orig = t), this.valid && this.updateUvs();\n }\n /**\n * Indicates whether the texture is rotated inside the atlas\n * set to 2 to compensate for texture packer rotation\n * set to 6 to compensate for spine packer rotation\n * can be used to rotate or mirror sprites\n * See {@link PIXI.groupD8} for explanation\n */\n get rotate() {\n return this._rotate;\n }\n set rotate(t) {\n this._rotate = t, this.valid && this.updateUvs();\n }\n /** The width of the Texture in pixels. */\n get width() {\n return this.orig.width;\n }\n /** The height of the Texture in pixels. */\n get height() {\n return this.orig.height;\n }\n /** Utility function for BaseTexture|Texture cast. */\n castToBaseTexture() {\n return this.baseTexture;\n }\n /** An empty texture, used often to not have to create multiple empty textures. Can not be destroyed. */\n static get EMPTY() {\n return Y._EMPTY || (Y._EMPTY = new Y(new et()), Ns(Y._EMPTY), Ns(Y._EMPTY.baseTexture)), Y._EMPTY;\n }\n /** A white texture of 16x16 size, used for graphics and other things Can not be destroyed. */\n static get WHITE() {\n if (!Y._WHITE) {\n const t = W.ADAPTER.createCanvas(16, 16), e = t.getContext(\"2d\");\n t.width = 16, t.height = 16, e.fillStyle = \"white\", e.fillRect(0, 0, 16, 16), Y._WHITE = new Y(et.from(t)), Ns(Y._WHITE), Ns(Y._WHITE.baseTexture);\n }\n return Y._WHITE;\n }\n}\nclass Wr extends Y {\n /**\n * @param baseRenderTexture - The base texture object that this texture uses.\n * @param frame - The rectangle frame of the texture to show.\n */\n constructor(t, e) {\n super(t, e), this.valid = !0, this.filterFrame = null, this.filterPoolKey = null, this.updateUvs();\n }\n /**\n * Shortcut to `this.baseTexture.framebuffer`, saves baseTexture cast.\n * @readonly\n */\n get framebuffer() {\n return this.baseTexture.framebuffer;\n }\n /**\n * Shortcut to `this.framebuffer.multisample`.\n * @default PIXI.MSAA_QUALITY.NONE\n */\n get multisample() {\n return this.framebuffer.multisample;\n }\n set multisample(t) {\n this.framebuffer.multisample = t;\n }\n /**\n * Resizes the RenderTexture.\n * @param desiredWidth - The desired width to resize to.\n * @param desiredHeight - The desired height to resize to.\n * @param resizeBaseTexture - Should the baseTexture.width and height values be resized as well?\n */\n resize(t, e, i = !0) {\n const s = this.baseTexture.resolution, n = Math.round(t * s) / s, o = Math.round(e * s) / s;\n this.valid = n > 0 && o > 0, this._frame.width = this.orig.width = n, this._frame.height = this.orig.height = o, i && this.baseTexture.resize(n, o), this.updateUvs();\n }\n /**\n * Changes the resolution of baseTexture, but does not change framebuffer size.\n * @param resolution - The new resolution to apply to RenderTexture\n */\n setResolution(t) {\n const { baseTexture: e } = this;\n e.resolution !== t && (e.setResolution(t), this.resize(e.width, e.height, !1));\n }\n /**\n * A short hand way of creating a render texture.\n * @param options - Options\n * @param {number} [options.width=100] - The width of the render texture\n * @param {number} [options.height=100] - The height of the render texture\n * @param {PIXI.SCALE_MODES} [options.scaleMode=PIXI.BaseTexture.defaultOptions.scaleMode] - See {@link PIXI.SCALE_MODES}\n * for possible values\n * @param {number} [options.resolution=PIXI.settings.RESOLUTION] - The resolution / device pixel ratio of the texture\n * being generated\n * @param {PIXI.MSAA_QUALITY} [options.multisample=PIXI.MSAA_QUALITY.NONE] - The number of samples of the frame buffer\n * @returns The new render texture\n */\n static create(t) {\n return new Wr(new Ed(t));\n }\n}\nclass Ad {\n /**\n * @param textureOptions - options that will be passed to BaseRenderTexture constructor\n * @param {PIXI.SCALE_MODES} [textureOptions.scaleMode] - See {@link PIXI.SCALE_MODES} for possible values.\n */\n constructor(t) {\n this.texturePool = {}, this.textureOptions = t || {}, this.enableFullScreen = !1, this._pixelsWidth = 0, this._pixelsHeight = 0;\n }\n /**\n * Creates texture with params that were specified in pool constructor.\n * @param realWidth - Width of texture in pixels.\n * @param realHeight - Height of texture in pixels.\n * @param multisample - Number of samples of the framebuffer.\n */\n createTexture(t, e, i = Bt.NONE) {\n const s = new Ed(Object.assign({\n width: t,\n height: e,\n resolution: 1,\n multisample: i\n }, this.textureOptions));\n return new Wr(s);\n }\n /**\n * Gets a Power-of-Two render texture or fullScreen texture\n * @param minWidth - The minimum width of the render texture.\n * @param minHeight - The minimum height of the render texture.\n * @param resolution - The resolution of the render texture.\n * @param multisample - Number of samples of the render texture.\n * @returns The new render texture.\n */\n getOptimalTexture(t, e, i = 1, s = Bt.NONE) {\n let n;\n t = Math.max(Math.ceil(t * i - 1e-6), 1), e = Math.max(Math.ceil(e * i - 1e-6), 1), !this.enableFullScreen || t !== this._pixelsWidth || e !== this._pixelsHeight ? (t = Tn(t), e = Tn(e), n = ((t & 65535) << 16 | e & 65535) >>> 0, s > 1 && (n += s * 4294967296)) : n = s > 1 ? -s : -1, this.texturePool[n] || (this.texturePool[n] = []);\n let o = this.texturePool[n].pop();\n return o || (o = this.createTexture(t, e, s)), o.filterPoolKey = n, o.setResolution(i), o;\n }\n /**\n * Gets extra texture of the same size as input renderTexture\n *\n * `getFilterTexture(input, 0.5)` or `getFilterTexture(0.5, input)`\n * @param input - renderTexture from which size and resolution will be copied\n * @param resolution - override resolution of the renderTexture\n * It overrides, it does not multiply\n * @param multisample - number of samples of the renderTexture\n */\n getFilterTexture(t, e, i) {\n const s = this.getOptimalTexture(\n t.width,\n t.height,\n e || t.resolution,\n i || Bt.NONE\n );\n return s.filterFrame = t.filterFrame, s;\n }\n /**\n * Place a render texture back into the pool.\n * @param renderTexture - The renderTexture to free\n */\n returnTexture(t) {\n const e = t.filterPoolKey;\n t.filterFrame = null, this.texturePool[e].push(t);\n }\n /**\n * Alias for returnTexture, to be compliant with FilterSystem interface.\n * @param renderTexture - The renderTexture to free\n */\n returnFilterTexture(t) {\n this.returnTexture(t);\n }\n /**\n * Clears the pool.\n * @param destroyTextures - Destroy all stored textures.\n */\n clear(t) {\n if (t = t !== !1, t)\n for (const e in this.texturePool) {\n const i = this.texturePool[e];\n if (i)\n for (let s = 0; s < i.length; s++)\n i[s].destroy(!0);\n }\n this.texturePool = {};\n }\n /**\n * If screen size was changed, drops all screen-sized textures,\n * sets new screen size, sets `enableFullScreen` to true\n *\n * Size is measured in pixels, `renderer.view` can be passed here, not `renderer.screen`\n * @param size - Initial size of screen.\n */\n setScreenSize(t) {\n if (!(t.width === this._pixelsWidth && t.height === this._pixelsHeight)) {\n this.enableFullScreen = t.width > 0 && t.height > 0;\n for (const e in this.texturePool) {\n if (!(Number(e) < 0))\n continue;\n const i = this.texturePool[e];\n if (i)\n for (let s = 0; s < i.length; s++)\n i[s].destroy(!0);\n this.texturePool[e] = [];\n }\n this._pixelsWidth = t.width, this._pixelsHeight = t.height;\n }\n }\n}\nAd.SCREEN_KEY = -1;\nclass $v extends vr {\n constructor() {\n super(), this.addAttribute(\"aVertexPosition\", new Float32Array([\n 0,\n 0,\n 1,\n 0,\n 1,\n 1,\n 0,\n 1\n ])).addIndex([0, 1, 3, 2]);\n }\n}\nclass Sd extends vr {\n constructor() {\n super(), this.vertices = new Float32Array([\n -1,\n -1,\n 1,\n -1,\n 1,\n 1,\n -1,\n 1\n ]), this.uvs = new Float32Array([\n 0,\n 0,\n 1,\n 0,\n 1,\n 1,\n 0,\n 1\n ]), this.vertexBuffer = new Mt(this.vertices), this.uvBuffer = new Mt(this.uvs), this.addAttribute(\"aVertexPosition\", this.vertexBuffer).addAttribute(\"aTextureCoord\", this.uvBuffer).addIndex([0, 1, 2, 0, 2, 3]);\n }\n /**\n * Maps two Rectangle to the quad.\n * @param targetTextureFrame - The first rectangle\n * @param destinationFrame - The second rectangle\n * @returns - Returns itself.\n */\n map(t, e) {\n let i = 0, s = 0;\n return this.uvs[0] = i, this.uvs[1] = s, this.uvs[2] = i + e.width / t.width, this.uvs[3] = s, this.uvs[4] = i + e.width / t.width, this.uvs[5] = s + e.height / t.height, this.uvs[6] = i, this.uvs[7] = s + e.height / t.height, i = e.x, s = e.y, this.vertices[0] = i, this.vertices[1] = s, this.vertices[2] = i + e.width, this.vertices[3] = s, this.vertices[4] = i + e.width, this.vertices[5] = s + e.height, this.vertices[6] = i, this.vertices[7] = s + e.height, this.invalidate(), this;\n }\n /**\n * Legacy upload method, just marks buffers dirty.\n * @returns - Returns itself.\n */\n invalidate() {\n return this.vertexBuffer._updateID++, this.uvBuffer._updateID++, this;\n }\n}\nclass Hv {\n constructor() {\n this.renderTexture = null, this.target = null, this.legacy = !1, this.resolution = 1, this.multisample = Bt.NONE, this.sourceFrame = new it(), this.destinationFrame = new it(), this.bindingSourceFrame = new it(), this.bindingDestinationFrame = new it(), this.filters = [], this.transform = null;\n }\n /** Clears the state */\n clear() {\n this.target = null, this.filters = null, this.renderTexture = null;\n }\n}\nconst Us = [new ft(), new ft(), new ft(), new ft()], Lo = new wt();\nclass Cd {\n /**\n * @param renderer - The renderer this System works for.\n */\n constructor(t) {\n this.renderer = t, this.defaultFilterStack = [{}], this.texturePool = new Ad(), this.statePool = [], this.quad = new $v(), this.quadUv = new Sd(), this.tempRect = new it(), this.activeState = {}, this.globalUniforms = new be({\n outputFrame: new it(),\n inputSize: new Float32Array(4),\n inputPixel: new Float32Array(4),\n inputClamp: new Float32Array(4),\n resolution: 1,\n // legacy variables\n filterArea: new Float32Array(4),\n filterClamp: new Float32Array(4)\n }, !0), this.forceClear = !1, this.useMaxPadding = !1;\n }\n init() {\n this.texturePool.setScreenSize(this.renderer.view);\n }\n /**\n * Pushes a set of filters to be applied later to the system. This will redirect further rendering into an\n * input render-texture for the rest of the filtering pipeline.\n * @param {PIXI.DisplayObject} target - The target of the filter to render.\n * @param filters - The filters to apply.\n */\n push(t, e) {\n const i = this.renderer, s = this.defaultFilterStack, n = this.statePool.pop() || new Hv(), o = i.renderTexture;\n let a, l;\n if (o.current) {\n const g = o.current;\n a = g.resolution, l = g.multisample;\n } else\n a = i.resolution, l = i.multisample;\n let h = e[0].resolution || a, c = e[0].multisample ?? l, u = e[0].padding, d = e[0].autoFit, f = e[0].legacy ?? !0;\n for (let g = 1; g < e.length; g++) {\n const y = e[g];\n h = Math.min(h, y.resolution || a), c = Math.min(c, y.multisample ?? l), u = this.useMaxPadding ? Math.max(u, y.padding) : u + y.padding, d = d && y.autoFit, f = f || (y.legacy ?? !0);\n }\n s.length === 1 && (this.defaultFilterStack[0].renderTexture = o.current), s.push(n), n.resolution = h, n.multisample = c, n.legacy = f, n.target = t, n.sourceFrame.copyFrom(t.filterArea || t.getBounds(!0)), n.sourceFrame.pad(u);\n const p = this.tempRect.copyFrom(o.sourceFrame);\n i.projection.transform && this.transformAABB(\n Lo.copyFrom(i.projection.transform).invert(),\n p\n ), d ? (n.sourceFrame.fit(p), (n.sourceFrame.width <= 0 || n.sourceFrame.height <= 0) && (n.sourceFrame.width = 0, n.sourceFrame.height = 0)) : n.sourceFrame.intersects(p) || (n.sourceFrame.width = 0, n.sourceFrame.height = 0), this.roundFrame(\n n.sourceFrame,\n o.current ? o.current.resolution : i.resolution,\n o.sourceFrame,\n o.destinationFrame,\n i.projection.transform\n ), n.renderTexture = this.getOptimalFilterTexture(\n n.sourceFrame.width,\n n.sourceFrame.height,\n h,\n c\n ), n.filters = e, n.destinationFrame.width = n.renderTexture.width, n.destinationFrame.height = n.renderTexture.height;\n const m = this.tempRect;\n m.x = 0, m.y = 0, m.width = n.sourceFrame.width, m.height = n.sourceFrame.height, n.renderTexture.filterFrame = n.sourceFrame, n.bindingSourceFrame.copyFrom(o.sourceFrame), n.bindingDestinationFrame.copyFrom(o.destinationFrame), n.transform = i.projection.transform, i.projection.transform = null, o.bind(n.renderTexture, n.sourceFrame, m), i.framebuffer.clear(0, 0, 0, 0);\n }\n /** Pops off the filter and applies it. */\n pop() {\n const t = this.defaultFilterStack, e = t.pop(), i = e.filters;\n this.activeState = e;\n const s = this.globalUniforms.uniforms;\n s.outputFrame = e.sourceFrame, s.resolution = e.resolution;\n const n = s.inputSize, o = s.inputPixel, a = s.inputClamp;\n if (n[0] = e.destinationFrame.width, n[1] = e.destinationFrame.height, n[2] = 1 / n[0], n[3] = 1 / n[1], o[0] = Math.round(n[0] * e.resolution), o[1] = Math.round(n[1] * e.resolution), o[2] = 1 / o[0], o[3] = 1 / o[1], a[0] = 0.5 * o[2], a[1] = 0.5 * o[3], a[2] = e.sourceFrame.width * n[2] - 0.5 * o[2], a[3] = e.sourceFrame.height * n[3] - 0.5 * o[3], e.legacy) {\n const h = s.filterArea;\n h[0] = e.destinationFrame.width, h[1] = e.destinationFrame.height, h[2] = e.sourceFrame.x, h[3] = e.sourceFrame.y, s.filterClamp = s.inputClamp;\n }\n this.globalUniforms.update();\n const l = t[t.length - 1];\n if (this.renderer.framebuffer.blit(), i.length === 1)\n i[0].apply(this, e.renderTexture, l.renderTexture, De.BLEND, e), this.returnFilterTexture(e.renderTexture);\n else {\n let h = e.renderTexture, c = this.getOptimalFilterTexture(\n h.width,\n h.height,\n e.resolution\n );\n c.filterFrame = h.filterFrame;\n let u = 0;\n for (u = 0; u < i.length - 1; ++u) {\n u === 1 && e.multisample > 1 && (c = this.getOptimalFilterTexture(\n h.width,\n h.height,\n e.resolution\n ), c.filterFrame = h.filterFrame), i[u].apply(this, h, c, De.CLEAR, e);\n const d = h;\n h = c, c = d;\n }\n i[u].apply(this, h, l.renderTexture, De.BLEND, e), u > 1 && e.multisample > 1 && this.returnFilterTexture(e.renderTexture), this.returnFilterTexture(h), this.returnFilterTexture(c);\n }\n e.clear(), this.statePool.push(e);\n }\n /**\n * Binds a renderTexture with corresponding `filterFrame`, clears it if mode corresponds.\n * @param filterTexture - renderTexture to bind, should belong to filter pool or filter stack\n * @param clearMode - clearMode, by default its CLEAR/YES. See {@link PIXI.CLEAR_MODES}\n */\n bindAndClear(t, e = De.CLEAR) {\n const {\n renderTexture: i,\n state: s\n } = this.renderer;\n if (t === this.defaultFilterStack[this.defaultFilterStack.length - 1].renderTexture ? this.renderer.projection.transform = this.activeState.transform : this.renderer.projection.transform = null, t == null ? void 0 : t.filterFrame) {\n const o = this.tempRect;\n o.x = 0, o.y = 0, o.width = t.filterFrame.width, o.height = t.filterFrame.height, i.bind(t, t.filterFrame, o);\n } else\n t !== this.defaultFilterStack[this.defaultFilterStack.length - 1].renderTexture ? i.bind(t) : this.renderer.renderTexture.bind(\n t,\n this.activeState.bindingSourceFrame,\n this.activeState.bindingDestinationFrame\n );\n const n = s.stateId & 1 || this.forceClear;\n (e === De.CLEAR || e === De.BLIT && n) && this.renderer.framebuffer.clear(0, 0, 0, 0);\n }\n /**\n * Draws a filter using the default rendering process.\n *\n * This should be called only by {@link PIXI.Filter#apply}.\n * @param filter - The filter to draw.\n * @param input - The input render target.\n * @param output - The target to output to.\n * @param clearMode - Should the output be cleared before rendering to it\n */\n applyFilter(t, e, i, s) {\n const n = this.renderer;\n n.state.set(t.state), this.bindAndClear(i, s), t.uniforms.uSampler = e, t.uniforms.filterGlobals = this.globalUniforms, n.shader.bind(t), t.legacy = !!t.program.attributeData.aTextureCoord, t.legacy ? (this.quadUv.map(e._frame, e.filterFrame), n.geometry.bind(this.quadUv), n.geometry.draw(Fe.TRIANGLES)) : (n.geometry.bind(this.quad), n.geometry.draw(Fe.TRIANGLE_STRIP));\n }\n /**\n * Multiply _input normalized coordinates_ to this matrix to get _sprite texture normalized coordinates_.\n *\n * Use `outputMatrix * vTextureCoord` in the shader.\n * @param outputMatrix - The matrix to output to.\n * @param {PIXI.Sprite} sprite - The sprite to map to.\n * @returns The mapped matrix.\n */\n calculateSpriteMatrix(t, e) {\n const { sourceFrame: i, destinationFrame: s } = this.activeState, { orig: n } = e._texture, o = t.set(\n s.width,\n 0,\n 0,\n s.height,\n i.x,\n i.y\n ), a = e.worldTransform.copyTo(wt.TEMP_MATRIX);\n return a.invert(), o.prepend(a), o.scale(1 / n.width, 1 / n.height), o.translate(e.anchor.x, e.anchor.y), o;\n }\n /** Destroys this Filter System. */\n destroy() {\n this.renderer = null, this.texturePool.clear(!1);\n }\n /**\n * Gets a Power-of-Two render texture or fullScreen texture\n * @param minWidth - The minimum width of the render texture in real pixels.\n * @param minHeight - The minimum height of the render texture in real pixels.\n * @param resolution - The resolution of the render texture.\n * @param multisample - Number of samples of the render texture.\n * @returns - The new render texture.\n */\n getOptimalFilterTexture(t, e, i = 1, s = Bt.NONE) {\n return this.texturePool.getOptimalTexture(t, e, i, s);\n }\n /**\n * Gets extra render texture to use inside current filter\n * To be compliant with older filters, you can use params in any order\n * @param input - renderTexture from which size and resolution will be copied\n * @param resolution - override resolution of the renderTexture\n * @param multisample - number of samples of the renderTexture\n */\n getFilterTexture(t, e, i) {\n if (typeof t == \"number\") {\n const n = t;\n t = e, e = n;\n }\n t = t || this.activeState.renderTexture;\n const s = this.texturePool.getOptimalTexture(\n t.width,\n t.height,\n e || t.resolution,\n i || Bt.NONE\n );\n return s.filterFrame = t.filterFrame, s;\n }\n /**\n * Frees a render texture back into the pool.\n * @param renderTexture - The renderTarget to free\n */\n returnFilterTexture(t) {\n this.texturePool.returnTexture(t);\n }\n /** Empties the texture pool. */\n emptyPool() {\n this.texturePool.clear(!0);\n }\n /** Calls `texturePool.resize()`, affects fullScreen renderTextures. */\n resize() {\n this.texturePool.setScreenSize(this.renderer.view);\n }\n /**\n * @param matrix - first param\n * @param rect - second param\n */\n transformAABB(t, e) {\n const i = Us[0], s = Us[1], n = Us[2], o = Us[3];\n i.set(e.left, e.top), s.set(e.left, e.bottom), n.set(e.right, e.top), o.set(e.right, e.bottom), t.apply(i, i), t.apply(s, s), t.apply(n, n), t.apply(o, o);\n const a = Math.min(i.x, s.x, n.x, o.x), l = Math.min(i.y, s.y, n.y, o.y), h = Math.max(i.x, s.x, n.x, o.x), c = Math.max(i.y, s.y, n.y, o.y);\n e.x = a, e.y = l, e.width = h - a, e.height = c - l;\n }\n roundFrame(t, e, i, s, n) {\n if (!(t.width <= 0 || t.height <= 0 || i.width <= 0 || i.height <= 0)) {\n if (n) {\n const { a: o, b: a, c: l, d: h } = n;\n if ((Math.abs(a) > 1e-4 || Math.abs(l) > 1e-4) && (Math.abs(o) > 1e-4 || Math.abs(h) > 1e-4))\n return;\n }\n n = n ? Lo.copyFrom(n) : Lo.identity(), n.translate(-i.x, -i.y).scale(\n s.width / i.width,\n s.height / i.height\n ).translate(s.x, s.y), this.transformAABB(n, t), t.ceil(e), this.transformAABB(n.invert(), t);\n }\n }\n}\nCd.extension = {\n type: H.RendererSystem,\n name: \"filter\"\n};\nq.add(Cd);\nclass Xv {\n constructor(t) {\n this.framebuffer = t, this.stencil = null, this.dirtyId = -1, this.dirtyFormat = -1, this.dirtySize = -1, this.multisample = Bt.NONE, this.msaaBuffer = null, this.blitFramebuffer = null, this.mipLevel = 0;\n }\n}\nconst Vv = new it();\nclass Id {\n /**\n * @param renderer - The renderer this System works for.\n */\n constructor(t) {\n this.renderer = t, this.managedFramebuffers = [], this.unknownFramebuffer = new Ma(10, 10), this.msaaSamples = null;\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n this.disposeAll(!0);\n const t = this.gl = this.renderer.gl;\n if (this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.current = this.unknownFramebuffer, this.viewport = new it(), this.hasMRT = !0, this.writeDepthTexture = !0, this.renderer.context.webGLVersion === 1) {\n let e = this.renderer.context.extensions.drawBuffers, i = this.renderer.context.extensions.depthTexture;\n W.PREFER_ENV === zr.WEBGL_LEGACY && (e = null, i = null), e ? t.drawBuffers = (s) => e.drawBuffersWEBGL(s) : (this.hasMRT = !1, t.drawBuffers = () => {\n }), i || (this.writeDepthTexture = !1);\n } else\n this.msaaSamples = t.getInternalformatParameter(t.RENDERBUFFER, t.RGBA8, t.SAMPLES);\n }\n /**\n * Bind a framebuffer.\n * @param framebuffer\n * @param frame - frame, default is framebuffer size\n * @param mipLevel - optional mip level to set on the framebuffer - defaults to 0\n */\n bind(t, e, i = 0) {\n const { gl: s } = this;\n if (t) {\n const n = t.glFramebuffers[this.CONTEXT_UID] || this.initFramebuffer(t);\n this.current !== t && (this.current = t, s.bindFramebuffer(s.FRAMEBUFFER, n.framebuffer)), n.mipLevel !== i && (t.dirtyId++, t.dirtyFormat++, n.mipLevel = i), n.dirtyId !== t.dirtyId && (n.dirtyId = t.dirtyId, n.dirtyFormat !== t.dirtyFormat ? (n.dirtyFormat = t.dirtyFormat, n.dirtySize = t.dirtySize, this.updateFramebuffer(t, i)) : n.dirtySize !== t.dirtySize && (n.dirtySize = t.dirtySize, this.resizeFramebuffer(t)));\n for (let o = 0; o < t.colorTextures.length; o++) {\n const a = t.colorTextures[o];\n this.renderer.texture.unbind(a.parentTextureArray || a);\n }\n if (t.depthTexture && this.renderer.texture.unbind(t.depthTexture), e) {\n const o = e.width >> i, a = e.height >> i, l = o / e.width;\n this.setViewport(\n e.x * l,\n e.y * l,\n o,\n a\n );\n } else {\n const o = t.width >> i, a = t.height >> i;\n this.setViewport(0, 0, o, a);\n }\n } else\n this.current && (this.current = null, s.bindFramebuffer(s.FRAMEBUFFER, null)), e ? this.setViewport(e.x, e.y, e.width, e.height) : this.setViewport(0, 0, this.renderer.width, this.renderer.height);\n }\n /**\n * Set the WebGLRenderingContext's viewport.\n * @param x - X position of viewport\n * @param y - Y position of viewport\n * @param width - Width of viewport\n * @param height - Height of viewport\n */\n setViewport(t, e, i, s) {\n const n = this.viewport;\n t = Math.round(t), e = Math.round(e), i = Math.round(i), s = Math.round(s), (n.width !== i || n.height !== s || n.x !== t || n.y !== e) && (n.x = t, n.y = e, n.width = i, n.height = s, this.gl.viewport(t, e, i, s));\n }\n /**\n * Get the size of the current width and height. Returns object with `width` and `height` values.\n * @readonly\n */\n get size() {\n return this.current ? { x: 0, y: 0, width: this.current.width, height: this.current.height } : { x: 0, y: 0, width: this.renderer.width, height: this.renderer.height };\n }\n /**\n * Clear the color of the context\n * @param r - Red value from 0 to 1\n * @param g - Green value from 0 to 1\n * @param b - Blue value from 0 to 1\n * @param a - Alpha value from 0 to 1\n * @param {PIXI.BUFFER_BITS} [mask=BUFFER_BITS.COLOR | BUFFER_BITS.DEPTH] - Bitwise OR of masks\n * that indicate the buffers to be cleared, by default COLOR and DEPTH buffers.\n */\n clear(t, e, i, s, n = sa.COLOR | sa.DEPTH) {\n const { gl: o } = this;\n o.clearColor(t, e, i, s), o.clear(n);\n }\n /**\n * Initialize framebuffer for this context\n * @protected\n * @param framebuffer\n * @returns - created GLFramebuffer\n */\n initFramebuffer(t) {\n const { gl: e } = this, i = new Xv(e.createFramebuffer());\n return i.multisample = this.detectSamples(t.multisample), t.glFramebuffers[this.CONTEXT_UID] = i, this.managedFramebuffers.push(t), t.disposeRunner.add(this), i;\n }\n /**\n * Resize the framebuffer\n * @param framebuffer\n * @protected\n */\n resizeFramebuffer(t) {\n const { gl: e } = this, i = t.glFramebuffers[this.CONTEXT_UID];\n if (i.stencil) {\n e.bindRenderbuffer(e.RENDERBUFFER, i.stencil);\n let o;\n this.renderer.context.webGLVersion === 1 ? o = e.DEPTH_STENCIL : t.depth && t.stencil ? o = e.DEPTH24_STENCIL8 : t.depth ? o = e.DEPTH_COMPONENT24 : o = e.STENCIL_INDEX8, i.msaaBuffer ? e.renderbufferStorageMultisample(\n e.RENDERBUFFER,\n i.multisample,\n o,\n t.width,\n t.height\n ) : e.renderbufferStorage(e.RENDERBUFFER, o, t.width, t.height);\n }\n const s = t.colorTextures;\n let n = s.length;\n e.drawBuffers || (n = Math.min(n, 1));\n for (let o = 0; o < n; o++) {\n const a = s[o], l = a.parentTextureArray || a;\n this.renderer.texture.bind(l, 0), o === 0 && i.msaaBuffer && (e.bindRenderbuffer(e.RENDERBUFFER, i.msaaBuffer), e.renderbufferStorageMultisample(\n e.RENDERBUFFER,\n i.multisample,\n l._glTextures[this.CONTEXT_UID].internalFormat,\n t.width,\n t.height\n ));\n }\n t.depthTexture && this.writeDepthTexture && this.renderer.texture.bind(t.depthTexture, 0);\n }\n /**\n * Update the framebuffer\n * @param framebuffer\n * @param mipLevel\n * @protected\n */\n updateFramebuffer(t, e) {\n const { gl: i } = this, s = t.glFramebuffers[this.CONTEXT_UID], n = t.colorTextures;\n let o = n.length;\n i.drawBuffers || (o = Math.min(o, 1)), s.multisample > 1 && this.canMultisampleFramebuffer(t) ? s.msaaBuffer = s.msaaBuffer || i.createRenderbuffer() : s.msaaBuffer && (i.deleteRenderbuffer(s.msaaBuffer), s.msaaBuffer = null, s.blitFramebuffer && (s.blitFramebuffer.dispose(), s.blitFramebuffer = null));\n const a = [];\n for (let l = 0; l < o; l++) {\n const h = n[l], c = h.parentTextureArray || h;\n this.renderer.texture.bind(c, 0), l === 0 && s.msaaBuffer ? (i.bindRenderbuffer(i.RENDERBUFFER, s.msaaBuffer), i.renderbufferStorageMultisample(\n i.RENDERBUFFER,\n s.multisample,\n c._glTextures[this.CONTEXT_UID].internalFormat,\n t.width,\n t.height\n ), i.framebufferRenderbuffer(i.FRAMEBUFFER, i.COLOR_ATTACHMENT0, i.RENDERBUFFER, s.msaaBuffer)) : (i.framebufferTexture2D(\n i.FRAMEBUFFER,\n i.COLOR_ATTACHMENT0 + l,\n h.target,\n c._glTextures[this.CONTEXT_UID].texture,\n e\n ), a.push(i.COLOR_ATTACHMENT0 + l));\n }\n if (a.length > 1 && i.drawBuffers(a), t.depthTexture && this.writeDepthTexture) {\n const l = t.depthTexture;\n this.renderer.texture.bind(l, 0), i.framebufferTexture2D(\n i.FRAMEBUFFER,\n i.DEPTH_ATTACHMENT,\n i.TEXTURE_2D,\n l._glTextures[this.CONTEXT_UID].texture,\n e\n );\n }\n if ((t.stencil || t.depth) && !(t.depthTexture && this.writeDepthTexture)) {\n s.stencil = s.stencil || i.createRenderbuffer();\n let l, h;\n this.renderer.context.webGLVersion === 1 ? (l = i.DEPTH_STENCIL_ATTACHMENT, h = i.DEPTH_STENCIL) : t.depth && t.stencil ? (l = i.DEPTH_STENCIL_ATTACHMENT, h = i.DEPTH24_STENCIL8) : t.depth ? (l = i.DEPTH_ATTACHMENT, h = i.DEPTH_COMPONENT24) : (l = i.STENCIL_ATTACHMENT, h = i.STENCIL_INDEX8), i.bindRenderbuffer(i.RENDERBUFFER, s.stencil), s.msaaBuffer ? i.renderbufferStorageMultisample(\n i.RENDERBUFFER,\n s.multisample,\n h,\n t.width,\n t.height\n ) : i.renderbufferStorage(i.RENDERBUFFER, h, t.width, t.height), i.framebufferRenderbuffer(i.FRAMEBUFFER, l, i.RENDERBUFFER, s.stencil);\n } else\n s.stencil && (i.deleteRenderbuffer(s.stencil), s.stencil = null);\n }\n /**\n * Returns true if the frame buffer can be multisampled.\n * @param framebuffer\n */\n canMultisampleFramebuffer(t) {\n return this.renderer.context.webGLVersion !== 1 && t.colorTextures.length <= 1 && !t.depthTexture;\n }\n /**\n * Detects number of samples that is not more than a param but as close to it as possible\n * @param samples - number of samples\n * @returns - recommended number of samples\n */\n detectSamples(t) {\n const { msaaSamples: e } = this;\n let i = Bt.NONE;\n if (t <= 1 || e === null)\n return i;\n for (let s = 0; s < e.length; s++)\n if (e[s] <= t) {\n i = e[s];\n break;\n }\n return i === 1 && (i = Bt.NONE), i;\n }\n /**\n * Only works with WebGL2\n *\n * blits framebuffer to another of the same or bigger size\n * after that target framebuffer is bound\n *\n * Fails with WebGL warning if blits multisample framebuffer to different size\n * @param framebuffer - by default it blits \"into itself\", from renderBuffer to texture.\n * @param sourcePixels - source rectangle in pixels\n * @param destPixels - dest rectangle in pixels, assumed to be the same as sourcePixels\n */\n blit(t, e, i) {\n const { current: s, renderer: n, gl: o, CONTEXT_UID: a } = this;\n if (n.context.webGLVersion !== 2 || !s)\n return;\n const l = s.glFramebuffers[a];\n if (!l)\n return;\n if (!t) {\n if (!l.msaaBuffer)\n return;\n const c = s.colorTextures[0];\n if (!c)\n return;\n l.blitFramebuffer || (l.blitFramebuffer = new Ma(s.width, s.height), l.blitFramebuffer.addColorTexture(0, c)), t = l.blitFramebuffer, t.colorTextures[0] !== c && (t.colorTextures[0] = c, t.dirtyId++, t.dirtyFormat++), (t.width !== s.width || t.height !== s.height) && (t.width = s.width, t.height = s.height, t.dirtyId++, t.dirtySize++);\n }\n e || (e = Vv, e.width = s.width, e.height = s.height), i || (i = e);\n const h = e.width === i.width && e.height === i.height;\n this.bind(t), o.bindFramebuffer(o.READ_FRAMEBUFFER, l.framebuffer), o.blitFramebuffer(\n e.left,\n e.top,\n e.right,\n e.bottom,\n i.left,\n i.top,\n i.right,\n i.bottom,\n o.COLOR_BUFFER_BIT,\n h ? o.NEAREST : o.LINEAR\n ), o.bindFramebuffer(o.READ_FRAMEBUFFER, t.glFramebuffers[this.CONTEXT_UID].framebuffer);\n }\n /**\n * Disposes framebuffer.\n * @param framebuffer - framebuffer that has to be disposed of\n * @param contextLost - If context was lost, we suppress all delete function calls\n */\n disposeFramebuffer(t, e) {\n const i = t.glFramebuffers[this.CONTEXT_UID], s = this.gl;\n if (!i)\n return;\n delete t.glFramebuffers[this.CONTEXT_UID];\n const n = this.managedFramebuffers.indexOf(t);\n n >= 0 && this.managedFramebuffers.splice(n, 1), t.disposeRunner.remove(this), e || (s.deleteFramebuffer(i.framebuffer), i.msaaBuffer && s.deleteRenderbuffer(i.msaaBuffer), i.stencil && s.deleteRenderbuffer(i.stencil)), i.blitFramebuffer && this.disposeFramebuffer(i.blitFramebuffer, e);\n }\n /**\n * Disposes all framebuffers, but not textures bound to them.\n * @param [contextLost=false] - If context was lost, we suppress all delete function calls\n */\n disposeAll(t) {\n const e = this.managedFramebuffers;\n this.managedFramebuffers = [];\n for (let i = 0; i < e.length; i++)\n this.disposeFramebuffer(e[i], t);\n }\n /**\n * Forcing creation of stencil buffer for current framebuffer, if it wasn't done before.\n * Used by MaskSystem, when its time to use stencil mask for Graphics element.\n *\n * Its an alternative for public lazy `framebuffer.enableStencil`, in case we need stencil without rebind.\n * @private\n */\n forceStencil() {\n const t = this.current;\n if (!t)\n return;\n const e = t.glFramebuffers[this.CONTEXT_UID];\n if (!e || e.stencil && t.stencil)\n return;\n t.stencil = !0;\n const i = t.width, s = t.height, n = this.gl, o = e.stencil = n.createRenderbuffer();\n n.bindRenderbuffer(n.RENDERBUFFER, o);\n let a, l;\n this.renderer.context.webGLVersion === 1 ? (a = n.DEPTH_STENCIL_ATTACHMENT, l = n.DEPTH_STENCIL) : t.depth ? (a = n.DEPTH_STENCIL_ATTACHMENT, l = n.DEPTH24_STENCIL8) : (a = n.STENCIL_ATTACHMENT, l = n.STENCIL_INDEX8), e.msaaBuffer ? n.renderbufferStorageMultisample(n.RENDERBUFFER, e.multisample, l, i, s) : n.renderbufferStorage(n.RENDERBUFFER, l, i, s), n.framebufferRenderbuffer(n.FRAMEBUFFER, a, n.RENDERBUFFER, o);\n }\n /** Resets framebuffer stored state, binds screen framebuffer. Should be called before renderTexture reset(). */\n reset() {\n this.current = this.unknownFramebuffer, this.viewport = new it();\n }\n destroy() {\n this.renderer = null;\n }\n}\nId.extension = {\n type: H.RendererSystem,\n name: \"framebuffer\"\n};\nq.add(Id);\nconst No = { 5126: 4, 5123: 2, 5121: 1 };\nclass Pd {\n /** @param renderer - The renderer this System works for. */\n constructor(t) {\n this.renderer = t, this._activeGeometry = null, this._activeVao = null, this.hasVao = !0, this.hasInstance = !0, this.canUseUInt32ElementIndex = !1, this.managedGeometries = {};\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n this.disposeAll(!0);\n const t = this.gl = this.renderer.gl, e = this.renderer.context;\n if (this.CONTEXT_UID = this.renderer.CONTEXT_UID, e.webGLVersion !== 2) {\n let i = this.renderer.context.extensions.vertexArrayObject;\n W.PREFER_ENV === zr.WEBGL_LEGACY && (i = null), i ? (t.createVertexArray = () => i.createVertexArrayOES(), t.bindVertexArray = (s) => i.bindVertexArrayOES(s), t.deleteVertexArray = (s) => i.deleteVertexArrayOES(s)) : (this.hasVao = !1, t.createVertexArray = () => null, t.bindVertexArray = () => null, t.deleteVertexArray = () => null);\n }\n if (e.webGLVersion !== 2) {\n const i = t.getExtension(\"ANGLE_instanced_arrays\");\n i ? (t.vertexAttribDivisor = (s, n) => i.vertexAttribDivisorANGLE(s, n), t.drawElementsInstanced = (s, n, o, a, l) => i.drawElementsInstancedANGLE(s, n, o, a, l), t.drawArraysInstanced = (s, n, o, a) => i.drawArraysInstancedANGLE(s, n, o, a)) : this.hasInstance = !1;\n }\n this.canUseUInt32ElementIndex = e.webGLVersion === 2 || !!e.extensions.uint32ElementIndex;\n }\n /**\n * Binds geometry so that is can be drawn. Creating a Vao if required\n * @param geometry - Instance of geometry to bind.\n * @param shader - Instance of shader to use vao for.\n */\n bind(t, e) {\n e = e || this.renderer.shader.shader;\n const { gl: i } = this;\n let s = t.glVertexArrayObjects[this.CONTEXT_UID], n = !1;\n s || (this.managedGeometries[t.id] = t, t.disposeRunner.add(this), t.glVertexArrayObjects[this.CONTEXT_UID] = s = {}, n = !0);\n const o = s[e.program.id] || this.initGeometryVao(t, e, n);\n this._activeGeometry = t, this._activeVao !== o && (this._activeVao = o, this.hasVao ? i.bindVertexArray(o) : this.activateVao(t, e.program)), this.updateBuffers();\n }\n /** Reset and unbind any active VAO and geometry. */\n reset() {\n this.unbind();\n }\n /** Update buffers of the currently bound geometry. */\n updateBuffers() {\n const t = this._activeGeometry, e = this.renderer.buffer;\n for (let i = 0; i < t.buffers.length; i++) {\n const s = t.buffers[i];\n e.update(s);\n }\n }\n /**\n * Check compatibility between a geometry and a program\n * @param geometry - Geometry instance.\n * @param program - Program instance.\n */\n checkCompatibility(t, e) {\n const i = t.attributes, s = e.attributeData;\n for (const n in s)\n if (!i[n])\n throw new Error(`shader and geometry incompatible, geometry missing the \"${n}\" attribute`);\n }\n /**\n * Takes a geometry and program and generates a unique signature for them.\n * @param geometry - To get signature from.\n * @param program - To test geometry against.\n * @returns - Unique signature of the geometry and program\n */\n getSignature(t, e) {\n const i = t.attributes, s = e.attributeData, n = [\"g\", t.id];\n for (const o in i)\n s[o] && n.push(o, s[o].location);\n return n.join(\"-\");\n }\n /**\n * Creates or gets Vao with the same structure as the geometry and stores it on the geometry.\n * If vao is created, it is bound automatically. We use a shader to infer what and how to set up the\n * attribute locations.\n * @param geometry - Instance of geometry to to generate Vao for.\n * @param shader - Instance of the shader.\n * @param incRefCount - Increment refCount of all geometry buffers.\n */\n initGeometryVao(t, e, i = !0) {\n const s = this.gl, n = this.CONTEXT_UID, o = this.renderer.buffer, a = e.program;\n a.glPrograms[n] || this.renderer.shader.generateProgram(e), this.checkCompatibility(t, a);\n const l = this.getSignature(t, a), h = t.glVertexArrayObjects[this.CONTEXT_UID];\n let c = h[l];\n if (c)\n return h[a.id] = c, c;\n const u = t.buffers, d = t.attributes, f = {}, p = {};\n for (const m in u)\n f[m] = 0, p[m] = 0;\n for (const m in d)\n !d[m].size && a.attributeData[m] ? d[m].size = a.attributeData[m].size : d[m].size || console.warn(`PIXI Geometry attribute '${m}' size cannot be determined (likely the bound shader does not have the attribute)`), f[d[m].buffer] += d[m].size * No[d[m].type];\n for (const m in d) {\n const g = d[m], y = g.size;\n g.stride === void 0 && (f[g.buffer] === y * No[g.type] ? g.stride = 0 : g.stride = f[g.buffer]), g.start === void 0 && (g.start = p[g.buffer], p[g.buffer] += y * No[g.type]);\n }\n c = s.createVertexArray(), s.bindVertexArray(c);\n for (let m = 0; m < u.length; m++) {\n const g = u[m];\n o.bind(g), i && g._glBuffers[n].refCount++;\n }\n return this.activateVao(t, a), h[a.id] = c, h[l] = c, s.bindVertexArray(null), o.unbind(Le.ARRAY_BUFFER), c;\n }\n /**\n * Disposes geometry.\n * @param geometry - Geometry with buffers. Only VAO will be disposed\n * @param [contextLost=false] - If context was lost, we suppress deleteVertexArray\n */\n disposeGeometry(t, e) {\n var a;\n if (!this.managedGeometries[t.id])\n return;\n delete this.managedGeometries[t.id];\n const i = t.glVertexArrayObjects[this.CONTEXT_UID], s = this.gl, n = t.buffers, o = (a = this.renderer) == null ? void 0 : a.buffer;\n if (t.disposeRunner.remove(this), !!i) {\n if (o)\n for (let l = 0; l < n.length; l++) {\n const h = n[l]._glBuffers[this.CONTEXT_UID];\n h && (h.refCount--, h.refCount === 0 && !e && o.dispose(n[l], e));\n }\n if (!e) {\n for (const l in i)\n if (l[0] === \"g\") {\n const h = i[l];\n this._activeVao === h && this.unbind(), s.deleteVertexArray(h);\n }\n }\n delete t.glVertexArrayObjects[this.CONTEXT_UID];\n }\n }\n /**\n * Dispose all WebGL resources of all managed geometries.\n * @param [contextLost=false] - If context was lost, we suppress `gl.delete` calls\n */\n disposeAll(t) {\n const e = Object.keys(this.managedGeometries);\n for (let i = 0; i < e.length; i++)\n this.disposeGeometry(this.managedGeometries[e[i]], t);\n }\n /**\n * Activate vertex array object.\n * @param geometry - Geometry instance.\n * @param program - Shader program instance.\n */\n activateVao(t, e) {\n const i = this.gl, s = this.CONTEXT_UID, n = this.renderer.buffer, o = t.buffers, a = t.attributes;\n t.indexBuffer && n.bind(t.indexBuffer);\n let l = null;\n for (const h in a) {\n const c = a[h], u = o[c.buffer], d = u._glBuffers[s];\n if (e.attributeData[h]) {\n l !== d && (n.bind(u), l = d);\n const f = e.attributeData[h].location;\n if (i.enableVertexAttribArray(f), i.vertexAttribPointer(\n f,\n c.size,\n c.type || i.FLOAT,\n c.normalized,\n c.stride,\n c.start\n ), c.instance)\n if (this.hasInstance)\n i.vertexAttribDivisor(f, c.divisor);\n else\n throw new Error(\"geometry error, GPU Instancing is not supported on this device\");\n }\n }\n }\n /**\n * Draws the currently bound geometry.\n * @param type - The type primitive to render.\n * @param size - The number of elements to be rendered. If not specified, all vertices after the\n * starting vertex will be drawn.\n * @param start - The starting vertex in the geometry to start drawing from. If not specified,\n * drawing will start from the first vertex.\n * @param instanceCount - The number of instances of the set of elements to execute. If not specified,\n * all instances will be drawn.\n */\n draw(t, e, i, s) {\n const { gl: n } = this, o = this._activeGeometry;\n if (o.indexBuffer) {\n const a = o.indexBuffer.data.BYTES_PER_ELEMENT, l = a === 2 ? n.UNSIGNED_SHORT : n.UNSIGNED_INT;\n a === 2 || a === 4 && this.canUseUInt32ElementIndex ? o.instanced ? n.drawElementsInstanced(t, e || o.indexBuffer.data.length, l, (i || 0) * a, s || 1) : n.drawElements(t, e || o.indexBuffer.data.length, l, (i || 0) * a) : console.warn(\"unsupported index buffer type: uint32\");\n } else\n o.instanced ? n.drawArraysInstanced(t, i, e || o.getSize(), s || 1) : n.drawArrays(t, i, e || o.getSize());\n return this;\n }\n /** Unbind/reset everything. */\n unbind() {\n this.gl.bindVertexArray(null), this._activeVao = null, this._activeGeometry = null;\n }\n destroy() {\n this.renderer = null;\n }\n}\nPd.extension = {\n type: H.RendererSystem,\n name: \"geometry\"\n};\nq.add(Pd);\nconst pc = new wt();\nclass Rd {\n /**\n * @param texture - observed texture\n * @param clampMargin - Changes frame clamping, 0.5 by default. Use -0.5 for extra border.\n */\n constructor(t, e) {\n this._texture = t, this.mapCoord = new wt(), this.uClampFrame = new Float32Array(4), this.uClampOffset = new Float32Array(2), this._textureID = -1, this._updateID = 0, this.clampOffset = 0, this.clampMargin = typeof e > \"u\" ? 0.5 : e, this.isSimple = !1;\n }\n /** Texture property. */\n get texture() {\n return this._texture;\n }\n set texture(t) {\n this._texture = t, this._textureID = -1;\n }\n /**\n * Multiplies uvs array to transform\n * @param uvs - mesh uvs\n * @param [out=uvs] - output\n * @returns - output\n */\n multiplyUvs(t, e) {\n e === void 0 && (e = t);\n const i = this.mapCoord;\n for (let s = 0; s < t.length; s += 2) {\n const n = t[s], o = t[s + 1];\n e[s] = n * i.a + o * i.c + i.tx, e[s + 1] = n * i.b + o * i.d + i.ty;\n }\n return e;\n }\n /**\n * Updates matrices if texture was changed.\n * @param [forceUpdate=false] - if true, matrices will be updated any case\n * @returns - Whether or not it was updated\n */\n update(t) {\n const e = this._texture;\n if (!e || !e.valid || !t && this._textureID === e._updateID)\n return !1;\n this._textureID = e._updateID, this._updateID++;\n const i = e._uvs;\n this.mapCoord.set(i.x1 - i.x0, i.y1 - i.y0, i.x3 - i.x0, i.y3 - i.y0, i.x0, i.y0);\n const s = e.orig, n = e.trim;\n n && (pc.set(\n s.width / n.width,\n 0,\n 0,\n s.height / n.height,\n -n.x / n.width,\n -n.y / n.height\n ), this.mapCoord.append(pc));\n const o = e.baseTexture, a = this.uClampFrame, l = this.clampMargin / o.resolution, h = this.clampOffset;\n return a[0] = (e._frame.x + l + h) / o.width, a[1] = (e._frame.y + l + h) / o.height, a[2] = (e._frame.x + e._frame.width - l + h) / o.width, a[3] = (e._frame.y + e._frame.height - l + h) / o.height, this.uClampOffset[0] = h / o.realWidth, this.uClampOffset[1] = h / o.realHeight, this.isSimple = e._frame.width === o.width && e._frame.height === o.height && e.rotate === 0, !0;\n }\n}\nvar zv = `varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D mask;\nuniform float alpha;\nuniform float npmAlpha;\nuniform vec4 maskClamp;\n\nvoid main(void)\n{\n float clip = step(3.5,\n step(maskClamp.x, vMaskCoord.x) +\n step(maskClamp.y, vMaskCoord.y) +\n step(vMaskCoord.x, maskClamp.z) +\n step(vMaskCoord.y, maskClamp.w));\n\n vec4 original = texture2D(uSampler, vTextureCoord);\n vec4 masky = texture2D(mask, vMaskCoord);\n float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\n\n original *= (alphaMul * masky.r * alpha * clip);\n\n gl_FragColor = original;\n}\n`, Wv = `attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0) ).xy;\n}\n`;\nclass jv extends Jt {\n /** @ignore */\n constructor(t, e, i) {\n let s = null;\n typeof t != \"string\" && e === void 0 && i === void 0 && (s = t, t = void 0, e = void 0, i = void 0), super(t || Wv, e || zv, i), this.maskSprite = s, this.maskMatrix = new wt();\n }\n /**\n * Sprite mask\n * @type {PIXI.DisplayObject}\n */\n get maskSprite() {\n return this._maskSprite;\n }\n set maskSprite(t) {\n this._maskSprite = t, this._maskSprite && (this._maskSprite.renderable = !1);\n }\n /**\n * Applies the filter\n * @param filterManager - The renderer to retrieve the filter from\n * @param input - The input render target.\n * @param output - The target to output to.\n * @param clearMode - Should the output be cleared before rendering to it.\n */\n apply(t, e, i, s) {\n const n = this._maskSprite, o = n._texture;\n o.valid && (o.uvMatrix || (o.uvMatrix = new Rd(o, 0)), o.uvMatrix.update(), this.uniforms.npmAlpha = o.baseTexture.alphaMode ? 0 : 1, this.uniforms.mask = o, this.uniforms.otherMatrix = t.calculateSpriteMatrix(this.maskMatrix, n).prepend(o.uvMatrix.mapCoord), this.uniforms.alpha = n.worldAlpha, this.uniforms.maskClamp = o.uvMatrix.uClampFrame, t.applyFilter(this, e, i, s));\n }\n}\nclass Yv {\n /**\n * Create MaskData\n * @param {PIXI.DisplayObject} [maskObject=null] - object that describes the mask\n */\n constructor(t = null) {\n this.type = Ot.NONE, this.autoDetect = !0, this.maskObject = t || null, this.pooled = !1, this.isMaskData = !0, this.resolution = null, this.multisample = Jt.defaultMultisample, this.enabled = !0, this.colorMask = 15, this._filters = null, this._stencilCounter = 0, this._scissorCounter = 0, this._scissorRect = null, this._scissorRectLocal = null, this._colorMask = 15, this._target = null;\n }\n /**\n * The sprite mask filter.\n * If set to `null`, the default sprite mask filter is used.\n * @default null\n */\n get filter() {\n return this._filters ? this._filters[0] : null;\n }\n set filter(t) {\n t ? this._filters ? this._filters[0] = t : this._filters = [t] : this._filters = null;\n }\n /** Resets the mask data after popMask(). */\n reset() {\n this.pooled && (this.maskObject = null, this.type = Ot.NONE, this.autoDetect = !0), this._target = null, this._scissorRectLocal = null;\n }\n /**\n * Copies counters from maskData above, called from pushMask().\n * @param maskAbove\n */\n copyCountersOrReset(t) {\n t ? (this._stencilCounter = t._stencilCounter, this._scissorCounter = t._scissorCounter, this._scissorRect = t._scissorRect) : (this._stencilCounter = 0, this._scissorCounter = 0, this._scissorRect = null);\n }\n}\nclass Md {\n /**\n * @param renderer - The renderer this System works for.\n */\n constructor(t) {\n this.renderer = t, this.enableScissor = !0, this.alphaMaskPool = [], this.maskDataPool = [], this.maskStack = [], this.alphaMaskIndex = 0;\n }\n /**\n * Changes the mask stack that is used by this System.\n * @param maskStack - The mask stack\n */\n setMaskStack(t) {\n this.maskStack = t, this.renderer.scissor.setMaskStack(t), this.renderer.stencil.setMaskStack(t);\n }\n /**\n * Enables the mask and appends it to the current mask stack.\n *\n * NOTE: The batch renderer should be flushed beforehand to prevent pending renders from being masked.\n * @param {PIXI.DisplayObject} target - Display Object to push the mask to\n * @param {PIXI.MaskData|PIXI.Sprite|PIXI.Graphics|PIXI.DisplayObject} maskDataOrTarget - The masking data.\n */\n push(t, e) {\n let i = e;\n if (!i.isMaskData) {\n const n = this.maskDataPool.pop() || new Yv();\n n.pooled = !0, n.maskObject = e, i = n;\n }\n const s = this.maskStack.length !== 0 ? this.maskStack[this.maskStack.length - 1] : null;\n if (i.copyCountersOrReset(s), i._colorMask = s ? s._colorMask : 15, i.autoDetect && this.detect(i), i._target = t, i.type !== Ot.SPRITE && this.maskStack.push(i), i.enabled)\n switch (i.type) {\n case Ot.SCISSOR:\n this.renderer.scissor.push(i);\n break;\n case Ot.STENCIL:\n this.renderer.stencil.push(i);\n break;\n case Ot.SPRITE:\n i.copyCountersOrReset(null), this.pushSpriteMask(i);\n break;\n case Ot.COLOR:\n this.pushColorMask(i);\n break;\n }\n i.type === Ot.SPRITE && this.maskStack.push(i);\n }\n /**\n * Removes the last mask from the mask stack and doesn't return it.\n *\n * NOTE: The batch renderer should be flushed beforehand to render the masked contents before the mask is removed.\n * @param {PIXI.IMaskTarget} target - Display Object to pop the mask from\n */\n pop(t) {\n const e = this.maskStack.pop();\n if (!(!e || e._target !== t)) {\n if (e.enabled)\n switch (e.type) {\n case Ot.SCISSOR:\n this.renderer.scissor.pop(e);\n break;\n case Ot.STENCIL:\n this.renderer.stencil.pop(e.maskObject);\n break;\n case Ot.SPRITE:\n this.popSpriteMask(e);\n break;\n case Ot.COLOR:\n this.popColorMask(e);\n break;\n }\n if (e.reset(), e.pooled && this.maskDataPool.push(e), this.maskStack.length !== 0) {\n const i = this.maskStack[this.maskStack.length - 1];\n i.type === Ot.SPRITE && i._filters && (i._filters[0].maskSprite = i.maskObject);\n }\n }\n }\n /**\n * Sets type of MaskData based on its maskObject.\n * @param maskData\n */\n detect(t) {\n const e = t.maskObject;\n e ? e.isSprite ? t.type = Ot.SPRITE : this.enableScissor && this.renderer.scissor.testScissor(t) ? t.type = Ot.SCISSOR : t.type = Ot.STENCIL : t.type = Ot.COLOR;\n }\n /**\n * Applies the Mask and adds it to the current filter stack.\n * @param maskData - Sprite to be used as the mask.\n */\n pushSpriteMask(t) {\n const { maskObject: e } = t, i = t._target;\n let s = t._filters;\n s || (s = this.alphaMaskPool[this.alphaMaskIndex], s || (s = this.alphaMaskPool[this.alphaMaskIndex] = [new jv()])), s[0].resolution = t.resolution, s[0].multisample = t.multisample, s[0].maskSprite = e;\n const n = i.filterArea;\n i.filterArea = e.getBounds(!0), this.renderer.filter.push(i, s), i.filterArea = n, t._filters || this.alphaMaskIndex++;\n }\n /**\n * Removes the last filter from the filter stack and doesn't return it.\n * @param maskData - Sprite to be used as the mask.\n */\n popSpriteMask(t) {\n this.renderer.filter.pop(), t._filters ? t._filters[0].maskSprite = null : (this.alphaMaskIndex--, this.alphaMaskPool[this.alphaMaskIndex][0].maskSprite = null);\n }\n /**\n * Pushes the color mask.\n * @param maskData - The mask data\n */\n pushColorMask(t) {\n const e = t._colorMask, i = t._colorMask = e & t.colorMask;\n i !== e && this.renderer.gl.colorMask(\n (i & 1) !== 0,\n (i & 2) !== 0,\n (i & 4) !== 0,\n (i & 8) !== 0\n );\n }\n /**\n * Pops the color mask.\n * @param maskData - The mask data\n */\n popColorMask(t) {\n const e = t._colorMask, i = this.maskStack.length > 0 ? this.maskStack[this.maskStack.length - 1]._colorMask : 15;\n i !== e && this.renderer.gl.colorMask(\n (i & 1) !== 0,\n (i & 2) !== 0,\n (i & 4) !== 0,\n (i & 8) !== 0\n );\n }\n destroy() {\n this.renderer = null;\n }\n}\nMd.extension = {\n type: H.RendererSystem,\n name: \"mask\"\n};\nq.add(Md);\nclass Bd {\n /**\n * @param renderer - The renderer this System works for.\n */\n constructor(t) {\n this.renderer = t, this.maskStack = [], this.glConst = 0;\n }\n /** Gets count of masks of certain type. */\n getStackLength() {\n return this.maskStack.length;\n }\n /**\n * Changes the mask stack that is used by this System.\n * @param {PIXI.MaskData[]} maskStack - The mask stack\n */\n setMaskStack(t) {\n const { gl: e } = this.renderer, i = this.getStackLength();\n this.maskStack = t;\n const s = this.getStackLength();\n s !== i && (s === 0 ? e.disable(this.glConst) : (e.enable(this.glConst), this._useCurrent()));\n }\n /**\n * Setup renderer to use the current mask data.\n * @private\n */\n _useCurrent() {\n }\n /** Destroys the mask stack. */\n destroy() {\n this.renderer = null, this.maskStack = null;\n }\n}\nconst mc = new wt(), gc = [], Dd = class sn extends Bd {\n /**\n * @param {PIXI.Renderer} renderer - The renderer this System works for.\n */\n constructor(t) {\n super(t), this.glConst = W.ADAPTER.getWebGLRenderingContext().SCISSOR_TEST;\n }\n getStackLength() {\n const t = this.maskStack[this.maskStack.length - 1];\n return t ? t._scissorCounter : 0;\n }\n /**\n * evaluates _boundsTransformed, _scissorRect for MaskData\n * @param maskData\n */\n calcScissorRect(t) {\n if (t._scissorRectLocal)\n return;\n const e = t._scissorRect, { maskObject: i } = t, { renderer: s } = this, n = s.renderTexture, o = i.getBounds(!0, gc.pop() ?? new it());\n this.roundFrameToPixels(\n o,\n n.current ? n.current.resolution : s.resolution,\n n.sourceFrame,\n n.destinationFrame,\n s.projection.transform\n ), e && o.fit(e), t._scissorRectLocal = o;\n }\n static isMatrixRotated(t) {\n if (!t)\n return !1;\n const { a: e, b: i, c: s, d: n } = t;\n return (Math.abs(i) > 1e-4 || Math.abs(s) > 1e-4) && (Math.abs(e) > 1e-4 || Math.abs(n) > 1e-4);\n }\n /**\n * Test, whether the object can be scissor mask with current renderer projection.\n * Calls \"calcScissorRect()\" if its true.\n * @param maskData - mask data\n * @returns whether Whether the object can be scissor mask\n */\n testScissor(t) {\n const { maskObject: e } = t;\n if (!e.isFastRect || !e.isFastRect() || sn.isMatrixRotated(e.worldTransform) || sn.isMatrixRotated(this.renderer.projection.transform))\n return !1;\n this.calcScissorRect(t);\n const i = t._scissorRectLocal;\n return i.width > 0 && i.height > 0;\n }\n roundFrameToPixels(t, e, i, s, n) {\n sn.isMatrixRotated(n) || (n = n ? mc.copyFrom(n) : mc.identity(), n.translate(-i.x, -i.y).scale(\n s.width / i.width,\n s.height / i.height\n ).translate(s.x, s.y), this.renderer.filter.transformAABB(n, t), t.fit(s), t.x = Math.round(t.x * e), t.y = Math.round(t.y * e), t.width = Math.round(t.width * e), t.height = Math.round(t.height * e));\n }\n /**\n * Applies the Mask and adds it to the current stencil stack.\n * @author alvin\n * @param maskData - The mask data.\n */\n push(t) {\n t._scissorRectLocal || this.calcScissorRect(t);\n const { gl: e } = this.renderer;\n t._scissorRect || e.enable(e.SCISSOR_TEST), t._scissorCounter++, t._scissorRect = t._scissorRectLocal, this._useCurrent();\n }\n /**\n * This should be called after a mask is popped off the mask stack. It will rebind the scissor box to be latest with the\n * last mask in the stack.\n *\n * This can also be called when you directly modify the scissor box and want to restore PixiJS state.\n * @param maskData - The mask data.\n */\n pop(t) {\n const { gl: e } = this.renderer;\n t && gc.push(t._scissorRectLocal), this.getStackLength() > 0 ? this._useCurrent() : e.disable(e.SCISSOR_TEST);\n }\n /**\n * Setup renderer to use the current scissor data.\n * @private\n */\n _useCurrent() {\n const t = this.maskStack[this.maskStack.length - 1]._scissorRect;\n let e;\n this.renderer.renderTexture.current ? e = t.y : e = this.renderer.height - t.height - t.y, this.renderer.gl.scissor(t.x, e, t.width, t.height);\n }\n};\nDd.extension = {\n type: H.RendererSystem,\n name: \"scissor\"\n};\nlet qv = Dd;\nq.add(qv);\nclass Od extends Bd {\n /**\n * @param renderer - The renderer this System works for.\n */\n constructor(t) {\n super(t), this.glConst = W.ADAPTER.getWebGLRenderingContext().STENCIL_TEST;\n }\n getStackLength() {\n const t = this.maskStack[this.maskStack.length - 1];\n return t ? t._stencilCounter : 0;\n }\n /**\n * Applies the Mask and adds it to the current stencil stack.\n * @param maskData - The mask data\n */\n push(t) {\n const e = t.maskObject, { gl: i } = this.renderer, s = t._stencilCounter;\n s === 0 && (this.renderer.framebuffer.forceStencil(), i.clearStencil(0), i.clear(i.STENCIL_BUFFER_BIT), i.enable(i.STENCIL_TEST)), t._stencilCounter++;\n const n = t._colorMask;\n n !== 0 && (t._colorMask = 0, i.colorMask(!1, !1, !1, !1)), i.stencilFunc(i.EQUAL, s, 4294967295), i.stencilOp(i.KEEP, i.KEEP, i.INCR), e.renderable = !0, e.render(this.renderer), this.renderer.batch.flush(), e.renderable = !1, n !== 0 && (t._colorMask = n, i.colorMask(\n (n & 1) !== 0,\n (n & 2) !== 0,\n (n & 4) !== 0,\n (n & 8) !== 0\n )), this._useCurrent();\n }\n /**\n * Pops stencil mask. MaskData is already removed from stack\n * @param {PIXI.DisplayObject} maskObject - object of popped mask data\n */\n pop(t) {\n const e = this.renderer.gl;\n if (this.getStackLength() === 0)\n e.disable(e.STENCIL_TEST);\n else {\n const i = this.maskStack.length !== 0 ? this.maskStack[this.maskStack.length - 1] : null, s = i ? i._colorMask : 15;\n s !== 0 && (i._colorMask = 0, e.colorMask(!1, !1, !1, !1)), e.stencilOp(e.KEEP, e.KEEP, e.DECR), t.renderable = !0, t.render(this.renderer), this.renderer.batch.flush(), t.renderable = !1, s !== 0 && (i._colorMask = s, e.colorMask(\n (s & 1) !== 0,\n (s & 2) !== 0,\n (s & 4) !== 0,\n (s & 8) !== 0\n )), this._useCurrent();\n }\n }\n /**\n * Setup renderer to use the current stencil data.\n * @private\n */\n _useCurrent() {\n const t = this.renderer.gl;\n t.stencilFunc(t.EQUAL, this.getStackLength(), 4294967295), t.stencilOp(t.KEEP, t.KEEP, t.KEEP);\n }\n}\nOd.extension = {\n type: H.RendererSystem,\n name: \"stencil\"\n};\nq.add(Od);\nclass Fd {\n constructor(t) {\n this.renderer = t, this.plugins = {}, Object.defineProperties(this.plugins, {\n extract: {\n enumerable: !1,\n get() {\n return at(\"7.0.0\", \"renderer.plugins.extract has moved to renderer.extract\"), t.extract;\n }\n },\n prepare: {\n enumerable: !1,\n get() {\n return at(\"7.0.0\", \"renderer.plugins.prepare has moved to renderer.prepare\"), t.prepare;\n }\n },\n interaction: {\n enumerable: !1,\n get() {\n return at(\"7.0.0\", \"renderer.plugins.interaction has been deprecated, use renderer.events\"), t.events;\n }\n }\n });\n }\n /**\n * Initialize the plugins.\n * @protected\n */\n init() {\n const t = this.rendererPlugins;\n for (const e in t)\n this.plugins[e] = new t[e](this.renderer);\n }\n destroy() {\n for (const t in this.plugins)\n this.plugins[t].destroy(), this.plugins[t] = null;\n }\n}\nFd.extension = {\n type: [\n H.RendererSystem,\n H.CanvasRendererSystem\n ],\n name: \"_plugin\"\n};\nq.add(Fd);\nclass Ld {\n /** @param renderer - The renderer this System works for. */\n constructor(t) {\n this.renderer = t, this.destinationFrame = null, this.sourceFrame = null, this.defaultFrame = null, this.projectionMatrix = new wt(), this.transform = null;\n }\n /**\n * Updates the projection-matrix based on the sourceFrame → destinationFrame mapping provided.\n *\n * NOTE: It is expected you call `renderer.framebuffer.setViewport(destinationFrame)` after this. This is because\n * the framebuffer viewport converts shader vertex output in normalized device coordinates to window coordinates.\n *\n * NOTE-2: {@link PIXI.RenderTextureSystem#bind} updates the projection-matrix when you bind a render-texture.\n * It is expected\n * that you dirty the current bindings when calling this manually.\n * @param destinationFrame - The rectangle in the render-target to render the contents into. If rendering to the canvas,\n * the origin is on the top-left; if rendering to a render-texture, the origin is on the bottom-left.\n * @param sourceFrame - The rectangle in world space that contains the contents being rendered.\n * @param resolution - The resolution of the render-target, which is the ratio of\n * world-space (or CSS) pixels to physical pixels.\n * @param root - Whether the render-target is the screen. This is required because rendering to textures\n * is y-flipped (i.e. upside down relative to the screen).\n */\n update(t, e, i, s) {\n this.destinationFrame = t || this.destinationFrame || this.defaultFrame, this.sourceFrame = e || this.sourceFrame || t, this.calculateProjection(this.destinationFrame, this.sourceFrame, i, s), this.transform && this.projectionMatrix.append(this.transform);\n const n = this.renderer;\n n.globalUniforms.uniforms.projectionMatrix = this.projectionMatrix, n.globalUniforms.update(), n.shader.shader && n.shader.syncUniformGroup(n.shader.shader.uniforms.globals);\n }\n /**\n * Calculates the `projectionMatrix` to map points inside `sourceFrame` to inside `destinationFrame`.\n * @param _destinationFrame - The destination frame in the render-target.\n * @param sourceFrame - The source frame in world space.\n * @param _resolution - The render-target's resolution, i.e. ratio of CSS to physical pixels.\n * @param root - Whether rendering into the screen. Otherwise, if rendering to a framebuffer, the projection\n * is y-flipped.\n */\n calculateProjection(t, e, i, s) {\n const n = this.projectionMatrix, o = s ? -1 : 1;\n n.identity(), n.a = 1 / e.width * 2, n.d = o * (1 / e.height * 2), n.tx = -1 - e.x * n.a, n.ty = -o - e.y * n.d;\n }\n /**\n * Sets the transform of the active render target to the given matrix.\n * @param _matrix - The transformation matrix\n */\n setTransform(t) {\n }\n destroy() {\n this.renderer = null;\n }\n}\nLd.extension = {\n type: H.RendererSystem,\n name: \"projection\"\n};\nq.add(Ld);\nconst Kv = new vl(), yc = new it();\nclass Nd {\n constructor(t) {\n this.renderer = t, this._tempMatrix = new wt();\n }\n /**\n * A Useful function that returns a texture of the display object that can then be used to create sprites\n * This can be quite useful if your displayObject is complicated and needs to be reused multiple times.\n * @param displayObject - The displayObject the object will be generated from.\n * @param {IGenerateTextureOptions} options - Generate texture options.\n * @param {PIXI.Rectangle} options.region - The region of the displayObject, that shall be rendered,\n * if no region is specified, defaults to the local bounds of the displayObject.\n * @param {number} [options.resolution] - If not given, the renderer's resolution is used.\n * @param {PIXI.MSAA_QUALITY} [options.multisample] - If not given, the renderer's multisample is used.\n * @returns a shiny new texture of the display object passed in\n */\n generateTexture(t, e) {\n const { region: i, ...s } = e || {}, n = (i == null ? void 0 : i.copyTo(yc)) || t.getLocalBounds(yc, !0), o = s.resolution || this.renderer.resolution;\n n.width = Math.max(n.width, 1 / o), n.height = Math.max(n.height, 1 / o), s.width = n.width, s.height = n.height, s.resolution = o, s.multisample ?? (s.multisample = this.renderer.multisample);\n const a = Wr.create(s);\n this._tempMatrix.tx = -n.x, this._tempMatrix.ty = -n.y;\n const l = t.transform;\n return t.transform = Kv, this.renderer.render(t, {\n renderTexture: a,\n transform: this._tempMatrix,\n skipUpdateTransform: !!t.parent,\n blit: !0\n }), t.transform = l, a;\n }\n destroy() {\n }\n}\nNd.extension = {\n type: [\n H.RendererSystem,\n H.CanvasRendererSystem\n ],\n name: \"textureGenerator\"\n};\nq.add(Nd);\nconst Tr = new it(), Hi = new it();\nclass Ud {\n /**\n * @param renderer - The renderer this System works for.\n */\n constructor(t) {\n this.renderer = t, this.defaultMaskStack = [], this.current = null, this.sourceFrame = new it(), this.destinationFrame = new it(), this.viewportFrame = new it();\n }\n contextChange() {\n var e;\n const t = (e = this.renderer) == null ? void 0 : e.gl.getContextAttributes();\n this._rendererPremultipliedAlpha = !!(t && t.alpha && t.premultipliedAlpha);\n }\n /**\n * Bind the current render texture.\n * @param renderTexture - RenderTexture to bind, by default its `null` - the screen.\n * @param sourceFrame - Part of world that is mapped to the renderTexture.\n * @param destinationFrame - Part of renderTexture, by default it has the same size as sourceFrame.\n */\n bind(t = null, e, i) {\n const s = this.renderer;\n this.current = t;\n let n, o, a;\n t ? (n = t.baseTexture, a = n.resolution, e || (Tr.width = t.frame.width, Tr.height = t.frame.height, e = Tr), i || (Hi.x = t.frame.x, Hi.y = t.frame.y, Hi.width = e.width, Hi.height = e.height, i = Hi), o = n.framebuffer) : (a = s.resolution, e || (Tr.width = s._view.screen.width, Tr.height = s._view.screen.height, e = Tr), i || (i = Tr, i.width = e.width, i.height = e.height));\n const l = this.viewportFrame;\n l.x = i.x * a, l.y = i.y * a, l.width = i.width * a, l.height = i.height * a, t || (l.y = s.view.height - (l.y + l.height)), l.ceil(), this.renderer.framebuffer.bind(o, l), this.renderer.projection.update(i, e, a, !o), t ? this.renderer.mask.setMaskStack(n.maskStack) : this.renderer.mask.setMaskStack(this.defaultMaskStack), this.sourceFrame.copyFrom(e), this.destinationFrame.copyFrom(i);\n }\n /**\n * Erases the render texture and fills the drawing area with a colour.\n * @param clearColor - The color as rgba, default to use the renderer backgroundColor\n * @param [mask=BUFFER_BITS.COLOR | BUFFER_BITS.DEPTH] - Bitwise OR of masks\n * that indicate the buffers to be cleared, by default COLOR and DEPTH buffers.\n */\n clear(t, e) {\n const i = this.current ? this.current.baseTexture.clear : this.renderer.background.backgroundColor, s = xt.shared.setValue(t || i);\n (this.current && this.current.baseTexture.alphaMode > 0 || !this.current && this._rendererPremultipliedAlpha) && s.premultiply(s.alpha);\n const n = this.destinationFrame, o = this.current ? this.current.baseTexture : this.renderer._view.screen, a = n.width !== o.width || n.height !== o.height;\n if (a) {\n let { x: l, y: h, width: c, height: u } = this.viewportFrame;\n l = Math.round(l), h = Math.round(h), c = Math.round(c), u = Math.round(u), this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST), this.renderer.gl.scissor(l, h, c, u);\n }\n this.renderer.framebuffer.clear(s.red, s.green, s.blue, s.alpha, e), a && this.renderer.scissor.pop();\n }\n resize() {\n this.bind(null);\n }\n /** Resets render-texture state. */\n reset() {\n this.bind(null);\n }\n destroy() {\n this.renderer = null;\n }\n}\nUd.extension = {\n type: H.RendererSystem,\n name: \"renderTexture\"\n};\nq.add(Ud);\nclass Zv {\n /**\n * Makes a new Pixi program.\n * @param program - webgl program\n * @param uniformData - uniforms\n */\n constructor(t, e) {\n this.program = t, this.uniformData = e, this.uniformGroups = {}, this.uniformDirtyGroups = {}, this.uniformBufferBindings = {};\n }\n /** Destroys this program. */\n destroy() {\n this.uniformData = null, this.uniformGroups = null, this.uniformDirtyGroups = null, this.uniformBufferBindings = null, this.program = null;\n }\n}\nfunction Jv(r, t) {\n const e = {}, i = t.getProgramParameter(r, t.ACTIVE_ATTRIBUTES);\n for (let s = 0; s < i; s++) {\n const n = t.getActiveAttrib(r, s);\n if (n.name.startsWith(\"gl_\"))\n continue;\n const o = bd(t, n.type), a = {\n type: o,\n name: n.name,\n size: xd(o),\n location: t.getAttribLocation(r, n.name)\n };\n e[n.name] = a;\n }\n return e;\n}\nfunction Qv(r, t) {\n const e = {}, i = t.getProgramParameter(r, t.ACTIVE_UNIFORMS);\n for (let s = 0; s < i; s++) {\n const n = t.getActiveUniform(r, s), o = n.name.replace(/\\[.*?\\]$/, \"\"), a = !!n.name.match(/\\[.*?\\]$/), l = bd(t, n.type);\n e[o] = {\n name: o,\n index: s,\n type: l,\n size: n.size,\n isArray: a,\n value: _d(l, n.size)\n };\n }\n return e;\n}\nfunction t1(r, t) {\n var a;\n const e = lc(r, r.VERTEX_SHADER, t.vertexSrc), i = lc(r, r.FRAGMENT_SHADER, t.fragmentSrc), s = r.createProgram();\n r.attachShader(s, e), r.attachShader(s, i);\n const n = (a = t.extra) == null ? void 0 : a.transformFeedbackVaryings;\n if (n && (typeof r.transformFeedbackVaryings != \"function\" ? console.warn(\"TransformFeedback is not supported but TransformFeedbackVaryings are given.\") : r.transformFeedbackVaryings(\n s,\n n.names,\n n.bufferMode === \"separate\" ? r.SEPARATE_ATTRIBS : r.INTERLEAVED_ATTRIBS\n )), r.linkProgram(s), r.getProgramParameter(s, r.LINK_STATUS) || Pv(r, s, e, i), t.attributeData = Jv(s, r), t.uniformData = Qv(s, r), !/^[ \\t]*#[ \\t]*version[ \\t]+300[ \\t]+es[ \\t]*$/m.test(t.vertexSrc)) {\n const l = Object.keys(t.attributeData);\n l.sort((h, c) => h > c ? 1 : -1);\n for (let h = 0; h < l.length; h++)\n t.attributeData[l[h]].location = h, r.bindAttribLocation(s, h, l[h]);\n r.linkProgram(s);\n }\n r.deleteShader(e), r.deleteShader(i);\n const o = {};\n for (const l in t.uniformData) {\n const h = t.uniformData[l];\n o[l] = {\n location: r.getUniformLocation(s, l),\n value: _d(h.type, h.size)\n };\n }\n return new Zv(s, o);\n}\nfunction e1(r, t, e, i, s) {\n e.buffer.update(s);\n}\nconst r1 = {\n float: `\n data[offset] = v;\n `,\n vec2: `\n data[offset] = v[0];\n data[offset+1] = v[1];\n `,\n vec3: `\n data[offset] = v[0];\n data[offset+1] = v[1];\n data[offset+2] = v[2];\n\n `,\n vec4: `\n data[offset] = v[0];\n data[offset+1] = v[1];\n data[offset+2] = v[2];\n data[offset+3] = v[3];\n `,\n mat2: `\n data[offset] = v[0];\n data[offset+1] = v[1];\n\n data[offset+4] = v[2];\n data[offset+5] = v[3];\n `,\n mat3: `\n data[offset] = v[0];\n data[offset+1] = v[1];\n data[offset+2] = v[2];\n\n data[offset + 4] = v[3];\n data[offset + 5] = v[4];\n data[offset + 6] = v[5];\n\n data[offset + 8] = v[6];\n data[offset + 9] = v[7];\n data[offset + 10] = v[8];\n `,\n mat4: `\n for(var i = 0; i < 16; i++)\n {\n data[offset + i] = v[i];\n }\n `\n}, kd = {\n float: 4,\n vec2: 8,\n vec3: 12,\n vec4: 16,\n int: 4,\n ivec2: 8,\n ivec3: 12,\n ivec4: 16,\n uint: 4,\n uvec2: 8,\n uvec3: 12,\n uvec4: 16,\n bool: 4,\n bvec2: 8,\n bvec3: 12,\n bvec4: 16,\n mat2: 16 * 2,\n mat3: 16 * 3,\n mat4: 16 * 4\n};\nfunction i1(r) {\n const t = r.map((n) => ({\n data: n,\n offset: 0,\n dataLen: 0,\n dirty: 0\n }));\n let e = 0, i = 0, s = 0;\n for (let n = 0; n < t.length; n++) {\n const o = t[n];\n if (e = kd[o.data.type], o.data.size > 1 && (e = Math.max(e, 16) * o.data.size), o.dataLen = e, i % e !== 0 && i < 16) {\n const a = i % e % 16;\n i += a, s += a;\n }\n i + e > 16 ? (s = Math.ceil(s / 16) * 16, o.offset = s, s += e, i = e) : (o.offset = s, i += e, s += e);\n }\n return s = Math.ceil(s / 16) * 16, { uboElements: t, size: s };\n}\nfunction s1(r, t) {\n const e = [];\n for (const i in r)\n t[i] && e.push(t[i]);\n return e.sort((i, s) => i.index - s.index), e;\n}\nfunction n1(r, t) {\n if (!r.autoManage)\n return { size: 0, syncFunc: e1 };\n const e = s1(r.uniforms, t), { uboElements: i, size: s } = i1(e), n = [`\n var v = null;\n var v2 = null;\n var cv = null;\n var t = 0;\n var gl = renderer.gl\n var index = 0;\n var data = buffer.data;\n `];\n for (let o = 0; o < i.length; o++) {\n const a = i[o], l = r.uniforms[a.data.name], h = a.data.name;\n let c = !1;\n for (let u = 0; u < bi.length; u++) {\n const d = bi[u];\n if (d.codeUbo && d.test(a.data, l)) {\n n.push(\n `offset = ${a.offset / 4};`,\n bi[u].codeUbo(a.data.name, l)\n ), c = !0;\n break;\n }\n }\n if (!c)\n if (a.data.size > 1) {\n const u = xd(a.data.type), d = Math.max(kd[a.data.type] / 16, 1), f = u / d, p = (4 - f % 4) % 4;\n n.push(`\n cv = ud.${h}.value;\n v = uv.${h};\n offset = ${a.offset / 4};\n\n t = 0;\n\n for(var i=0; i < ${a.data.size * d}; i++)\n {\n for(var j = 0; j < ${f}; j++)\n {\n data[offset++] = v[t++];\n }\n offset += ${p};\n }\n\n `);\n } else {\n const u = r1[a.data.type];\n n.push(`\n cv = ud.${h}.value;\n v = uv.${h};\n offset = ${a.offset / 4};\n ${u};\n `);\n }\n }\n return n.push(`\n renderer.buffer.update(buffer);\n `), {\n size: s,\n // eslint-disable-next-line no-new-func\n syncFunc: new Function(\n \"ud\",\n \"uv\",\n \"renderer\",\n \"syncData\",\n \"buffer\",\n n.join(`\n`)\n )\n };\n}\nlet o1 = 0;\nconst ks = { textureCount: 0, uboCount: 0 };\nclass Gd {\n /** @param renderer - The renderer this System works for. */\n constructor(t) {\n this.destroyed = !1, this.renderer = t, this.systemCheck(), this.gl = null, this.shader = null, this.program = null, this.cache = {}, this._uboCache = {}, this.id = o1++;\n }\n /**\n * Overrideable function by `@pixi/unsafe-eval` to silence\n * throwing an error if platform doesn't support unsafe-evals.\n * @private\n */\n systemCheck() {\n if (!Mv())\n throw new Error(\"Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.\");\n }\n contextChange(t) {\n this.gl = t, this.reset();\n }\n /**\n * Changes the current shader to the one given in parameter.\n * @param shader - the new shader\n * @param dontSync - false if the shader should automatically sync its uniforms.\n * @returns the glProgram that belongs to the shader.\n */\n bind(t, e) {\n t.disposeRunner.add(this), t.uniforms.globals = this.renderer.globalUniforms;\n const i = t.program, s = i.glPrograms[this.renderer.CONTEXT_UID] || this.generateProgram(t);\n return this.shader = t, this.program !== i && (this.program = i, this.gl.useProgram(s.program)), e || (ks.textureCount = 0, ks.uboCount = 0, this.syncUniformGroup(t.uniformGroup, ks)), s;\n }\n /**\n * Uploads the uniforms values to the currently bound shader.\n * @param uniforms - the uniforms values that be applied to the current shader\n */\n setUniforms(t) {\n const e = this.shader.program, i = e.glPrograms[this.renderer.CONTEXT_UID];\n e.syncUniforms(i.uniformData, t, this.renderer);\n }\n /* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n /**\n * Syncs uniforms on the group\n * @param group - the uniform group to sync\n * @param syncData - this is data that is passed to the sync function and any nested sync functions\n */\n syncUniformGroup(t, e) {\n const i = this.getGlProgram();\n (!t.static || t.dirtyId !== i.uniformDirtyGroups[t.id]) && (i.uniformDirtyGroups[t.id] = t.dirtyId, this.syncUniforms(t, i, e));\n }\n /**\n * Overrideable by the @pixi/unsafe-eval package to use static syncUniforms instead.\n * @param group\n * @param glProgram\n * @param syncData\n */\n syncUniforms(t, e, i) {\n (t.syncUniforms[this.shader.program.id] || this.createSyncGroups(t))(e.uniformData, t.uniforms, this.renderer, i);\n }\n createSyncGroups(t) {\n const e = this.getSignature(t, this.shader.program.uniformData, \"u\");\n return this.cache[e] || (this.cache[e] = Sv(t, this.shader.program.uniformData)), t.syncUniforms[this.shader.program.id] = this.cache[e], t.syncUniforms[this.shader.program.id];\n }\n /**\n * Syncs uniform buffers\n * @param group - the uniform buffer group to sync\n * @param name - the name of the uniform buffer\n */\n syncUniformBufferGroup(t, e) {\n const i = this.getGlProgram();\n if (!t.static || t.dirtyId !== 0 || !i.uniformGroups[t.id]) {\n t.dirtyId = 0;\n const s = i.uniformGroups[t.id] || this.createSyncBufferGroup(t, i, e);\n t.buffer.update(), s(\n i.uniformData,\n t.uniforms,\n this.renderer,\n ks,\n t.buffer\n );\n }\n this.renderer.buffer.bindBufferBase(t.buffer, i.uniformBufferBindings[e]);\n }\n /**\n * Will create a function that uploads a uniform buffer using the STD140 standard.\n * The upload function will then be cached for future calls\n * If a group is manually managed, then a simple upload function is generated\n * @param group - the uniform buffer group to sync\n * @param glProgram - the gl program to attach the uniform bindings to\n * @param name - the name of the uniform buffer (must exist on the shader)\n */\n createSyncBufferGroup(t, e, i) {\n const { gl: s } = this.renderer;\n this.renderer.buffer.bind(t.buffer);\n const n = this.gl.getUniformBlockIndex(e.program, i);\n e.uniformBufferBindings[i] = this.shader.uniformBindCount, s.uniformBlockBinding(e.program, n, this.shader.uniformBindCount), this.shader.uniformBindCount++;\n const o = this.getSignature(t, this.shader.program.uniformData, \"ubo\");\n let a = this._uboCache[o];\n if (a || (a = this._uboCache[o] = n1(t, this.shader.program.uniformData)), t.autoManage) {\n const l = new Float32Array(a.size / 4);\n t.buffer.update(l);\n }\n return e.uniformGroups[t.id] = a.syncFunc, e.uniformGroups[t.id];\n }\n /**\n * Takes a uniform group and data and generates a unique signature for them.\n * @param group - The uniform group to get signature of\n * @param group.uniforms\n * @param uniformData - Uniform information generated by the shader\n * @param preFix\n * @returns Unique signature of the uniform group\n */\n getSignature(t, e, i) {\n const s = t.uniforms, n = [`${i}-`];\n for (const o in s)\n n.push(o), e[o] && n.push(e[o].type);\n return n.join(\"-\");\n }\n /**\n * Returns the underlying GLShade rof the currently bound shader.\n *\n * This can be handy for when you to have a little more control over the setting of your uniforms.\n * @returns The glProgram for the currently bound Shader for this context\n */\n getGlProgram() {\n return this.shader ? this.shader.program.glPrograms[this.renderer.CONTEXT_UID] : null;\n }\n /**\n * Generates a glProgram version of the Shader provided.\n * @param shader - The shader that the glProgram will be based on.\n * @returns A shiny new glProgram!\n */\n generateProgram(t) {\n const e = this.gl, i = t.program, s = t1(e, i);\n return i.glPrograms[this.renderer.CONTEXT_UID] = s, s;\n }\n /** Resets ShaderSystem state, does not affect WebGL state. */\n reset() {\n this.program = null, this.shader = null;\n }\n /**\n * Disposes shader.\n * If disposing one equals with current shader, set current as null.\n * @param shader - Shader object\n */\n disposeShader(t) {\n this.shader === t && (this.shader = null);\n }\n /** Destroys this System and removes all its textures. */\n destroy() {\n this.renderer = null, this.destroyed = !0;\n }\n}\nGd.extension = {\n type: H.RendererSystem,\n name: \"shader\"\n};\nq.add(Gd);\nclass Pn {\n constructor(t) {\n this.renderer = t;\n }\n /**\n * It all starts here! This initiates every system, passing in the options for any system by name.\n * @param options - the config for the renderer and all its systems\n */\n run(t) {\n const { renderer: e } = this;\n e.runners.init.emit(e.options), t.hello && console.log(`PixiJS 7.4.2 - ${e.rendererLogId} - https://pixijs.com`), e.resize(e.screen.width, e.screen.height);\n }\n destroy() {\n }\n}\nPn.defaultOptions = {\n /**\n * {@link PIXI.IRendererOptions.hello}\n * @default false\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n hello: !1\n}, /** @ignore */\nPn.extension = {\n type: [\n H.RendererSystem,\n H.CanvasRendererSystem\n ],\n name: \"startup\"\n};\nq.add(Pn);\nfunction a1(r, t = []) {\n return t[J.NORMAL] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.ADD] = [r.ONE, r.ONE], t[J.MULTIPLY] = [r.DST_COLOR, r.ONE_MINUS_SRC_ALPHA, r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.SCREEN] = [r.ONE, r.ONE_MINUS_SRC_COLOR, r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.OVERLAY] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.DARKEN] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.LIGHTEN] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.COLOR_DODGE] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.COLOR_BURN] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.HARD_LIGHT] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.SOFT_LIGHT] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.DIFFERENCE] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.EXCLUSION] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.HUE] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.SATURATION] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.COLOR] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.LUMINOSITY] = [r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.NONE] = [0, 0], t[J.NORMAL_NPM] = [r.SRC_ALPHA, r.ONE_MINUS_SRC_ALPHA, r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.ADD_NPM] = [r.SRC_ALPHA, r.ONE, r.ONE, r.ONE], t[J.SCREEN_NPM] = [r.SRC_ALPHA, r.ONE_MINUS_SRC_COLOR, r.ONE, r.ONE_MINUS_SRC_ALPHA], t[J.SRC_IN] = [r.DST_ALPHA, r.ZERO], t[J.SRC_OUT] = [r.ONE_MINUS_DST_ALPHA, r.ZERO], t[J.SRC_ATOP] = [r.DST_ALPHA, r.ONE_MINUS_SRC_ALPHA], t[J.DST_OVER] = [r.ONE_MINUS_DST_ALPHA, r.ONE], t[J.DST_IN] = [r.ZERO, r.SRC_ALPHA], t[J.DST_OUT] = [r.ZERO, r.ONE_MINUS_SRC_ALPHA], t[J.DST_ATOP] = [r.ONE_MINUS_DST_ALPHA, r.SRC_ALPHA], t[J.XOR] = [r.ONE_MINUS_DST_ALPHA, r.ONE_MINUS_SRC_ALPHA], t[J.SUBTRACT] = [r.ONE, r.ONE, r.ONE, r.ONE, r.FUNC_REVERSE_SUBTRACT, r.FUNC_ADD], t;\n}\nconst l1 = 0, h1 = 1, c1 = 2, u1 = 3, d1 = 4, f1 = 5, $d = class Ba {\n constructor() {\n this.gl = null, this.stateId = 0, this.polygonOffset = 0, this.blendMode = J.NONE, this._blendEq = !1, this.map = [], this.map[l1] = this.setBlend, this.map[h1] = this.setOffset, this.map[c1] = this.setCullFace, this.map[u1] = this.setDepthTest, this.map[d1] = this.setFrontFace, this.map[f1] = this.setDepthMask, this.checks = [], this.defaultState = new ze(), this.defaultState.blend = !0;\n }\n contextChange(t) {\n this.gl = t, this.blendModes = a1(t), this.set(this.defaultState), this.reset();\n }\n /**\n * Sets the current state\n * @param {*} state - The state to set.\n */\n set(t) {\n if (t = t || this.defaultState, this.stateId !== t.data) {\n let e = this.stateId ^ t.data, i = 0;\n for (; e; )\n e & 1 && this.map[i].call(this, !!(t.data & 1 << i)), e = e >> 1, i++;\n this.stateId = t.data;\n }\n for (let e = 0; e < this.checks.length; e++)\n this.checks[e](this, t);\n }\n /**\n * Sets the state, when previous state is unknown.\n * @param {*} state - The state to set\n */\n forceState(t) {\n t = t || this.defaultState;\n for (let e = 0; e < this.map.length; e++)\n this.map[e].call(this, !!(t.data & 1 << e));\n for (let e = 0; e < this.checks.length; e++)\n this.checks[e](this, t);\n this.stateId = t.data;\n }\n /**\n * Sets whether to enable or disable blending.\n * @param value - Turn on or off WebGl blending.\n */\n setBlend(t) {\n this.updateCheck(Ba.checkBlendMode, t), this.gl[t ? \"enable\" : \"disable\"](this.gl.BLEND);\n }\n /**\n * Sets whether to enable or disable polygon offset fill.\n * @param value - Turn on or off webgl polygon offset testing.\n */\n setOffset(t) {\n this.updateCheck(Ba.checkPolygonOffset, t), this.gl[t ? \"enable\" : \"disable\"](this.gl.POLYGON_OFFSET_FILL);\n }\n /**\n * Sets whether to enable or disable depth test.\n * @param value - Turn on or off webgl depth testing.\n */\n setDepthTest(t) {\n this.gl[t ? \"enable\" : \"disable\"](this.gl.DEPTH_TEST);\n }\n /**\n * Sets whether to enable or disable depth mask.\n * @param value - Turn on or off webgl depth mask.\n */\n setDepthMask(t) {\n this.gl.depthMask(t);\n }\n /**\n * Sets whether to enable or disable cull face.\n * @param {boolean} value - Turn on or off webgl cull face.\n */\n setCullFace(t) {\n this.gl[t ? \"enable\" : \"disable\"](this.gl.CULL_FACE);\n }\n /**\n * Sets the gl front face.\n * @param {boolean} value - true is clockwise and false is counter-clockwise\n */\n setFrontFace(t) {\n this.gl.frontFace(this.gl[t ? \"CW\" : \"CCW\"]);\n }\n /**\n * Sets the blend mode.\n * @param {number} value - The blend mode to set to.\n */\n setBlendMode(t) {\n if (t === this.blendMode)\n return;\n this.blendMode = t;\n const e = this.blendModes[t], i = this.gl;\n e.length === 2 ? i.blendFunc(e[0], e[1]) : i.blendFuncSeparate(e[0], e[1], e[2], e[3]), e.length === 6 ? (this._blendEq = !0, i.blendEquationSeparate(e[4], e[5])) : this._blendEq && (this._blendEq = !1, i.blendEquationSeparate(i.FUNC_ADD, i.FUNC_ADD));\n }\n /**\n * Sets the polygon offset.\n * @param {number} value - the polygon offset\n * @param {number} scale - the polygon offset scale\n */\n setPolygonOffset(t, e) {\n this.gl.polygonOffset(t, e);\n }\n // used\n /** Resets all the logic and disables the VAOs. */\n reset() {\n this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, !1), this.forceState(this.defaultState), this._blendEq = !0, this.blendMode = -1, this.setBlendMode(0);\n }\n /**\n * Checks to see which updates should be checked based on which settings have been activated.\n *\n * For example, if blend is enabled then we should check the blend modes each time the state is changed\n * or if polygon fill is activated then we need to check if the polygon offset changes.\n * The idea is that we only check what we have too.\n * @param func - the checking function to add or remove\n * @param value - should the check function be added or removed.\n */\n updateCheck(t, e) {\n const i = this.checks.indexOf(t);\n e && i === -1 ? this.checks.push(t) : !e && i !== -1 && this.checks.splice(i, 1);\n }\n /**\n * A private little wrapper function that we call to check the blend mode.\n * @param system - the System to perform the state check on\n * @param state - the state that the blendMode will pulled from\n */\n static checkBlendMode(t, e) {\n t.setBlendMode(e.blendMode);\n }\n /**\n * A private little wrapper function that we call to check the polygon offset.\n * @param system - the System to perform the state check on\n * @param state - the state that the blendMode will pulled from\n */\n static checkPolygonOffset(t, e) {\n t.setPolygonOffset(1, e.polygonOffset);\n }\n /**\n * @ignore\n */\n destroy() {\n this.gl = null;\n }\n};\n$d.extension = {\n type: H.RendererSystem,\n name: \"state\"\n};\nlet p1 = $d;\nq.add(p1);\nclass m1 extends ms {\n constructor() {\n super(...arguments), this.runners = {}, this._systemsHash = {};\n }\n /**\n * Set up a system with a collection of SystemClasses and runners.\n * Systems are attached dynamically to this class when added.\n * @param config - the config for the system manager\n */\n setup(t) {\n this.addRunners(...t.runners);\n const e = (t.priority ?? []).filter((s) => t.systems[s]), i = [\n ...e,\n ...Object.keys(t.systems).filter((s) => !e.includes(s))\n ];\n for (const s of i)\n this.addSystem(t.systems[s], s);\n }\n /**\n * Create a bunch of runners based of a collection of ids\n * @param runnerIds - the runner ids to add\n */\n addRunners(...t) {\n t.forEach((e) => {\n this.runners[e] = new xe(e);\n });\n }\n /**\n * Add a new system to the renderer.\n * @param ClassRef - Class reference\n * @param name - Property name for system, if not specified\n * will use a static `name` property on the class itself. This\n * name will be assigned as s property on the Renderer so make\n * sure it doesn't collide with properties on Renderer.\n * @returns Return instance of renderer\n */\n addSystem(t, e) {\n const i = new t(this);\n if (this[e])\n throw new Error(`Whoops! The name \"${e}\" is already in use`);\n this[e] = i, this._systemsHash[e] = i;\n for (const s in this.runners)\n this.runners[s].add(i);\n return this;\n }\n /**\n * A function that will run a runner and call the runners function but pass in different options\n * to each system based on there name.\n *\n * E.g. If you have two systems added called `systemA` and `systemB` you could call do the following:\n *\n * ```js\n * system.emitWithCustomOptions(init, {\n * systemA: {...optionsForA},\n * systemB: {...optionsForB},\n * });\n * ```\n *\n * `init` would be called on system A passing `optionsForA` and on system B passing `optionsForB`.\n * @param runner - the runner to target\n * @param options - key value options for each system\n */\n emitWithCustomOptions(t, e) {\n const i = Object.keys(this._systemsHash);\n t.items.forEach((s) => {\n const n = i.find((o) => this._systemsHash[o] === s);\n s[t.name](e[n]);\n });\n }\n /** destroy the all runners and systems. Its apps job to */\n destroy() {\n Object.values(this.runners).forEach((t) => {\n t.destroy();\n }), this._systemsHash = {};\n }\n // TODO implement!\n // removeSystem(ClassRef: ISystemConstructor, name: string): void\n // {\n // }\n}\nconst qi = class nn {\n /** @param renderer - The renderer this System works for. */\n constructor(t) {\n this.renderer = t, this.count = 0, this.checkCount = 0, this.maxIdle = nn.defaultMaxIdle, this.checkCountMax = nn.defaultCheckCountMax, this.mode = nn.defaultMode;\n }\n /**\n * Checks to see when the last time a texture was used.\n * If the texture has not been used for a specified amount of time, it will be removed from the GPU.\n */\n postrender() {\n this.renderer.objectRenderer.renderingToScreen && (this.count++, this.mode !== cl.MANUAL && (this.checkCount++, this.checkCount > this.checkCountMax && (this.checkCount = 0, this.run())));\n }\n /**\n * Checks to see when the last time a texture was used.\n * If the texture has not been used for a specified amount of time, it will be removed from the GPU.\n */\n run() {\n const t = this.renderer.texture, e = t.managedTextures;\n let i = !1;\n for (let s = 0; s < e.length; s++) {\n const n = e[s];\n n.resource && this.count - n.touched > this.maxIdle && (t.destroyTexture(n, !0), e[s] = null, i = !0);\n }\n if (i) {\n let s = 0;\n for (let n = 0; n < e.length; n++)\n e[n] !== null && (e[s++] = e[n]);\n e.length = s;\n }\n }\n /**\n * Removes all the textures within the specified displayObject and its children from the GPU.\n * @param {PIXI.DisplayObject} displayObject - the displayObject to remove the textures from.\n */\n unload(t) {\n const e = this.renderer.texture, i = t._texture;\n i && !i.framebuffer && e.destroyTexture(i);\n for (let s = t.children.length - 1; s >= 0; s--)\n this.unload(t.children[s]);\n }\n destroy() {\n this.renderer = null;\n }\n};\nqi.defaultMode = cl.AUTO, /**\n* Default maximum idle frames before a texture is destroyed by garbage collection.\n* @static\n* @default 3600\n* @see PIXI.TextureGCSystem#maxIdle\n*/\nqi.defaultMaxIdle = 60 * 60, /**\n* Default frames between two garbage collections.\n* @static\n* @default 600\n* @see PIXI.TextureGCSystem#checkCountMax\n*/\nqi.defaultCheckCountMax = 60 * 10, /** @ignore */\nqi.extension = {\n type: H.RendererSystem,\n name: \"textureGC\"\n};\nlet Mr = qi;\nq.add(Mr);\nclass Uo {\n constructor(t) {\n this.texture = t, this.width = -1, this.height = -1, this.dirtyId = -1, this.dirtyStyleId = -1, this.mipmap = !1, this.wrapMode = 33071, this.type = Z.UNSIGNED_BYTE, this.internalFormat = U.RGBA, this.samplerType = 0;\n }\n}\nfunction g1(r) {\n let t;\n return \"WebGL2RenderingContext\" in globalThis && r instanceof globalThis.WebGL2RenderingContext ? t = {\n [r.RGB]: z.FLOAT,\n [r.RGBA]: z.FLOAT,\n [r.ALPHA]: z.FLOAT,\n [r.LUMINANCE]: z.FLOAT,\n [r.LUMINANCE_ALPHA]: z.FLOAT,\n [r.R8]: z.FLOAT,\n [r.R8_SNORM]: z.FLOAT,\n [r.RG8]: z.FLOAT,\n [r.RG8_SNORM]: z.FLOAT,\n [r.RGB8]: z.FLOAT,\n [r.RGB8_SNORM]: z.FLOAT,\n [r.RGB565]: z.FLOAT,\n [r.RGBA4]: z.FLOAT,\n [r.RGB5_A1]: z.FLOAT,\n [r.RGBA8]: z.FLOAT,\n [r.RGBA8_SNORM]: z.FLOAT,\n [r.RGB10_A2]: z.FLOAT,\n [r.RGB10_A2UI]: z.FLOAT,\n [r.SRGB8]: z.FLOAT,\n [r.SRGB8_ALPHA8]: z.FLOAT,\n [r.R16F]: z.FLOAT,\n [r.RG16F]: z.FLOAT,\n [r.RGB16F]: z.FLOAT,\n [r.RGBA16F]: z.FLOAT,\n [r.R32F]: z.FLOAT,\n [r.RG32F]: z.FLOAT,\n [r.RGB32F]: z.FLOAT,\n [r.RGBA32F]: z.FLOAT,\n [r.R11F_G11F_B10F]: z.FLOAT,\n [r.RGB9_E5]: z.FLOAT,\n [r.R8I]: z.INT,\n [r.R8UI]: z.UINT,\n [r.R16I]: z.INT,\n [r.R16UI]: z.UINT,\n [r.R32I]: z.INT,\n [r.R32UI]: z.UINT,\n [r.RG8I]: z.INT,\n [r.RG8UI]: z.UINT,\n [r.RG16I]: z.INT,\n [r.RG16UI]: z.UINT,\n [r.RG32I]: z.INT,\n [r.RG32UI]: z.UINT,\n [r.RGB8I]: z.INT,\n [r.RGB8UI]: z.UINT,\n [r.RGB16I]: z.INT,\n [r.RGB16UI]: z.UINT,\n [r.RGB32I]: z.INT,\n [r.RGB32UI]: z.UINT,\n [r.RGBA8I]: z.INT,\n [r.RGBA8UI]: z.UINT,\n [r.RGBA16I]: z.INT,\n [r.RGBA16UI]: z.UINT,\n [r.RGBA32I]: z.INT,\n [r.RGBA32UI]: z.UINT,\n [r.DEPTH_COMPONENT16]: z.FLOAT,\n [r.DEPTH_COMPONENT24]: z.FLOAT,\n [r.DEPTH_COMPONENT32F]: z.FLOAT,\n [r.DEPTH_STENCIL]: z.FLOAT,\n [r.DEPTH24_STENCIL8]: z.FLOAT,\n [r.DEPTH32F_STENCIL8]: z.FLOAT\n } : t = {\n [r.RGB]: z.FLOAT,\n [r.RGBA]: z.FLOAT,\n [r.ALPHA]: z.FLOAT,\n [r.LUMINANCE]: z.FLOAT,\n [r.LUMINANCE_ALPHA]: z.FLOAT,\n [r.DEPTH_STENCIL]: z.FLOAT\n }, t;\n}\nfunction y1(r) {\n let t;\n return \"WebGL2RenderingContext\" in globalThis && r instanceof globalThis.WebGL2RenderingContext ? t = {\n [Z.UNSIGNED_BYTE]: {\n [U.RGBA]: r.RGBA8,\n [U.RGB]: r.RGB8,\n [U.RG]: r.RG8,\n [U.RED]: r.R8,\n [U.RGBA_INTEGER]: r.RGBA8UI,\n [U.RGB_INTEGER]: r.RGB8UI,\n [U.RG_INTEGER]: r.RG8UI,\n [U.RED_INTEGER]: r.R8UI,\n [U.ALPHA]: r.ALPHA,\n [U.LUMINANCE]: r.LUMINANCE,\n [U.LUMINANCE_ALPHA]: r.LUMINANCE_ALPHA\n },\n [Z.BYTE]: {\n [U.RGBA]: r.RGBA8_SNORM,\n [U.RGB]: r.RGB8_SNORM,\n [U.RG]: r.RG8_SNORM,\n [U.RED]: r.R8_SNORM,\n [U.RGBA_INTEGER]: r.RGBA8I,\n [U.RGB_INTEGER]: r.RGB8I,\n [U.RG_INTEGER]: r.RG8I,\n [U.RED_INTEGER]: r.R8I\n },\n [Z.UNSIGNED_SHORT]: {\n [U.RGBA_INTEGER]: r.RGBA16UI,\n [U.RGB_INTEGER]: r.RGB16UI,\n [U.RG_INTEGER]: r.RG16UI,\n [U.RED_INTEGER]: r.R16UI,\n [U.DEPTH_COMPONENT]: r.DEPTH_COMPONENT16\n },\n [Z.SHORT]: {\n [U.RGBA_INTEGER]: r.RGBA16I,\n [U.RGB_INTEGER]: r.RGB16I,\n [U.RG_INTEGER]: r.RG16I,\n [U.RED_INTEGER]: r.R16I\n },\n [Z.UNSIGNED_INT]: {\n [U.RGBA_INTEGER]: r.RGBA32UI,\n [U.RGB_INTEGER]: r.RGB32UI,\n [U.RG_INTEGER]: r.RG32UI,\n [U.RED_INTEGER]: r.R32UI,\n [U.DEPTH_COMPONENT]: r.DEPTH_COMPONENT24\n },\n [Z.INT]: {\n [U.RGBA_INTEGER]: r.RGBA32I,\n [U.RGB_INTEGER]: r.RGB32I,\n [U.RG_INTEGER]: r.RG32I,\n [U.RED_INTEGER]: r.R32I\n },\n [Z.FLOAT]: {\n [U.RGBA]: r.RGBA32F,\n [U.RGB]: r.RGB32F,\n [U.RG]: r.RG32F,\n [U.RED]: r.R32F,\n [U.DEPTH_COMPONENT]: r.DEPTH_COMPONENT32F\n },\n [Z.HALF_FLOAT]: {\n [U.RGBA]: r.RGBA16F,\n [U.RGB]: r.RGB16F,\n [U.RG]: r.RG16F,\n [U.RED]: r.R16F\n },\n [Z.UNSIGNED_SHORT_5_6_5]: {\n [U.RGB]: r.RGB565\n },\n [Z.UNSIGNED_SHORT_4_4_4_4]: {\n [U.RGBA]: r.RGBA4\n },\n [Z.UNSIGNED_SHORT_5_5_5_1]: {\n [U.RGBA]: r.RGB5_A1\n },\n [Z.UNSIGNED_INT_2_10_10_10_REV]: {\n [U.RGBA]: r.RGB10_A2,\n [U.RGBA_INTEGER]: r.RGB10_A2UI\n },\n [Z.UNSIGNED_INT_10F_11F_11F_REV]: {\n [U.RGB]: r.R11F_G11F_B10F\n },\n [Z.UNSIGNED_INT_5_9_9_9_REV]: {\n [U.RGB]: r.RGB9_E5\n },\n [Z.UNSIGNED_INT_24_8]: {\n [U.DEPTH_STENCIL]: r.DEPTH24_STENCIL8\n },\n [Z.FLOAT_32_UNSIGNED_INT_24_8_REV]: {\n [U.DEPTH_STENCIL]: r.DEPTH32F_STENCIL8\n }\n } : t = {\n [Z.UNSIGNED_BYTE]: {\n [U.RGBA]: r.RGBA,\n [U.RGB]: r.RGB,\n [U.ALPHA]: r.ALPHA,\n [U.LUMINANCE]: r.LUMINANCE,\n [U.LUMINANCE_ALPHA]: r.LUMINANCE_ALPHA\n },\n [Z.UNSIGNED_SHORT_5_6_5]: {\n [U.RGB]: r.RGB\n },\n [Z.UNSIGNED_SHORT_4_4_4_4]: {\n [U.RGBA]: r.RGBA\n },\n [Z.UNSIGNED_SHORT_5_5_5_1]: {\n [U.RGBA]: r.RGBA\n }\n }, t;\n}\nclass Hd {\n /**\n * @param renderer - The renderer this system works for.\n */\n constructor(t) {\n this.renderer = t, this.boundTextures = [], this.currentLocation = -1, this.managedTextures = [], this._unknownBoundTextures = !1, this.unknownTexture = new et(), this.hasIntegerTextures = !1;\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n const t = this.gl = this.renderer.gl;\n this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.webGLVersion = this.renderer.context.webGLVersion, this.internalFormats = y1(t), this.samplerTypes = g1(t);\n const e = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);\n this.boundTextures.length = e;\n for (let s = 0; s < e; s++)\n this.boundTextures[s] = null;\n this.emptyTextures = {};\n const i = new Uo(t.createTexture());\n t.bindTexture(t.TEXTURE_2D, i.texture), t.texImage2D(t.TEXTURE_2D, 0, t.RGBA, 1, 1, 0, t.RGBA, t.UNSIGNED_BYTE, new Uint8Array(4)), this.emptyTextures[t.TEXTURE_2D] = i, this.emptyTextures[t.TEXTURE_CUBE_MAP] = new Uo(t.createTexture()), t.bindTexture(t.TEXTURE_CUBE_MAP, this.emptyTextures[t.TEXTURE_CUBE_MAP].texture);\n for (let s = 0; s < 6; s++)\n t.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X + s, 0, t.RGBA, 1, 1, 0, t.RGBA, t.UNSIGNED_BYTE, null);\n t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, t.LINEAR), t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MIN_FILTER, t.LINEAR);\n for (let s = 0; s < this.boundTextures.length; s++)\n this.bind(null, s);\n }\n /**\n * Bind a texture to a specific location\n *\n * If you want to unbind something, please use `unbind(texture)` instead of `bind(null, textureLocation)`\n * @param texture - Texture to bind\n * @param [location=0] - Location to bind at\n */\n bind(t, e = 0) {\n const { gl: i } = this;\n if (t = t == null ? void 0 : t.castToBaseTexture(), (t == null ? void 0 : t.valid) && !t.parentTextureArray) {\n t.touched = this.renderer.textureGC.count;\n const s = t._glTextures[this.CONTEXT_UID] || this.initTexture(t);\n this.boundTextures[e] !== t && (this.currentLocation !== e && (this.currentLocation = e, i.activeTexture(i.TEXTURE0 + e)), i.bindTexture(t.target, s.texture)), s.dirtyId !== t.dirtyId ? (this.currentLocation !== e && (this.currentLocation = e, i.activeTexture(i.TEXTURE0 + e)), this.updateTexture(t)) : s.dirtyStyleId !== t.dirtyStyleId && this.updateTextureStyle(t), this.boundTextures[e] = t;\n } else\n this.currentLocation !== e && (this.currentLocation = e, i.activeTexture(i.TEXTURE0 + e)), i.bindTexture(i.TEXTURE_2D, this.emptyTextures[i.TEXTURE_2D].texture), this.boundTextures[e] = null;\n }\n /** Resets texture location and bound textures Actual `bind(null, i)` calls will be performed at next `unbind()` call */\n reset() {\n this._unknownBoundTextures = !0, this.hasIntegerTextures = !1, this.currentLocation = -1;\n for (let t = 0; t < this.boundTextures.length; t++)\n this.boundTextures[t] = this.unknownTexture;\n }\n /**\n * Unbind a texture.\n * @param texture - Texture to bind\n */\n unbind(t) {\n const { gl: e, boundTextures: i } = this;\n if (this._unknownBoundTextures) {\n this._unknownBoundTextures = !1;\n for (let s = 0; s < i.length; s++)\n i[s] === this.unknownTexture && this.bind(null, s);\n }\n for (let s = 0; s < i.length; s++)\n i[s] === t && (this.currentLocation !== s && (e.activeTexture(e.TEXTURE0 + s), this.currentLocation = s), e.bindTexture(t.target, this.emptyTextures[t.target].texture), i[s] = null);\n }\n /**\n * Ensures that current boundTextures all have FLOAT sampler type,\n * see {@link PIXI.SAMPLER_TYPES} for explanation.\n * @param maxTextures - number of locations to check\n */\n ensureSamplerType(t) {\n const { boundTextures: e, hasIntegerTextures: i, CONTEXT_UID: s } = this;\n if (i)\n for (let n = t - 1; n >= 0; --n) {\n const o = e[n];\n o && o._glTextures[s].samplerType !== z.FLOAT && this.renderer.texture.unbind(o);\n }\n }\n /**\n * Initialize a texture\n * @private\n * @param texture - Texture to initialize\n */\n initTexture(t) {\n const e = new Uo(this.gl.createTexture());\n return e.dirtyId = -1, t._glTextures[this.CONTEXT_UID] = e, this.managedTextures.push(t), t.on(\"dispose\", this.destroyTexture, this), e;\n }\n initTextureType(t, e) {\n var i;\n e.internalFormat = ((i = this.internalFormats[t.type]) == null ? void 0 : i[t.format]) ?? t.format, e.samplerType = this.samplerTypes[e.internalFormat] ?? z.FLOAT, this.webGLVersion === 2 && t.type === Z.HALF_FLOAT ? e.type = this.gl.HALF_FLOAT : e.type = t.type;\n }\n /**\n * Update a texture\n * @private\n * @param {PIXI.BaseTexture} texture - Texture to initialize\n */\n updateTexture(t) {\n var s;\n const e = t._glTextures[this.CONTEXT_UID];\n if (!e)\n return;\n const i = this.renderer;\n if (this.initTextureType(t, e), (s = t.resource) == null ? void 0 : s.upload(i, t, e))\n e.samplerType !== z.FLOAT && (this.hasIntegerTextures = !0);\n else {\n const n = t.realWidth, o = t.realHeight, a = i.gl;\n (e.width !== n || e.height !== o || e.dirtyId < 0) && (e.width = n, e.height = o, a.texImage2D(\n t.target,\n 0,\n e.internalFormat,\n n,\n o,\n 0,\n t.format,\n e.type,\n null\n ));\n }\n t.dirtyStyleId !== e.dirtyStyleId && this.updateTextureStyle(t), e.dirtyId = t.dirtyId;\n }\n /**\n * Deletes the texture from WebGL\n * @private\n * @param texture - the texture to destroy\n * @param [skipRemove=false] - Whether to skip removing the texture from the TextureManager.\n */\n destroyTexture(t, e) {\n const { gl: i } = this;\n if (t = t.castToBaseTexture(), t._glTextures[this.CONTEXT_UID] && (this.unbind(t), i.deleteTexture(t._glTextures[this.CONTEXT_UID].texture), t.off(\"dispose\", this.destroyTexture, this), delete t._glTextures[this.CONTEXT_UID], !e)) {\n const s = this.managedTextures.indexOf(t);\n s !== -1 && xi(this.managedTextures, s, 1);\n }\n }\n /**\n * Update texture style such as mipmap flag\n * @private\n * @param {PIXI.BaseTexture} texture - Texture to update\n */\n updateTextureStyle(t) {\n var i;\n const e = t._glTextures[this.CONTEXT_UID];\n e && ((t.mipmap === He.POW2 || this.webGLVersion !== 2) && !t.isPowerOfTwo ? e.mipmap = !1 : e.mipmap = t.mipmap >= 1, this.webGLVersion !== 2 && !t.isPowerOfTwo ? e.wrapMode = _r.CLAMP : e.wrapMode = t.wrapMode, (i = t.resource) != null && i.style(this.renderer, t, e) || this.setStyle(t, e), e.dirtyStyleId = t.dirtyStyleId);\n }\n /**\n * Set style for texture\n * @private\n * @param texture - Texture to update\n * @param glTexture\n */\n setStyle(t, e) {\n const i = this.gl;\n if (e.mipmap && t.mipmap !== He.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) {\n i.texParameteri(t.target, i.TEXTURE_MIN_FILTER, t.scaleMode === Ye.LINEAR ? i.LINEAR_MIPMAP_LINEAR : i.NEAREST_MIPMAP_NEAREST);\n const s = this.renderer.context.extensions.anisotropicFiltering;\n if (s && t.anisotropicLevel > 0 && t.scaleMode === Ye.LINEAR) {\n const n = Math.min(t.anisotropicLevel, i.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));\n i.texParameterf(t.target, s.TEXTURE_MAX_ANISOTROPY_EXT, n);\n }\n } else\n i.texParameteri(t.target, i.TEXTURE_MIN_FILTER, t.scaleMode === Ye.LINEAR ? i.LINEAR : i.NEAREST);\n i.texParameteri(t.target, i.TEXTURE_MAG_FILTER, t.scaleMode === Ye.LINEAR ? i.LINEAR : i.NEAREST);\n }\n destroy() {\n this.renderer = null;\n }\n}\nHd.extension = {\n type: H.RendererSystem,\n name: \"texture\"\n};\nq.add(Hd);\nclass Xd {\n /**\n * @param renderer - The renderer this System works for.\n */\n constructor(t) {\n this.renderer = t;\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n this.gl = this.renderer.gl, this.CONTEXT_UID = this.renderer.CONTEXT_UID;\n }\n /**\n * Bind TransformFeedback and buffers\n * @param transformFeedback - TransformFeedback to bind\n */\n bind(t) {\n const { gl: e, CONTEXT_UID: i } = this, s = t._glTransformFeedbacks[i] || this.createGLTransformFeedback(t);\n e.bindTransformFeedback(e.TRANSFORM_FEEDBACK, s);\n }\n /** Unbind TransformFeedback */\n unbind() {\n const { gl: t } = this;\n t.bindTransformFeedback(t.TRANSFORM_FEEDBACK, null);\n }\n /**\n * Begin TransformFeedback\n * @param drawMode - DrawMode for TransformFeedback\n * @param shader - A Shader used by TransformFeedback. Current bound shader will be used if not provided.\n */\n beginTransformFeedback(t, e) {\n const { gl: i, renderer: s } = this;\n e && s.shader.bind(e), i.beginTransformFeedback(t);\n }\n /** End TransformFeedback */\n endTransformFeedback() {\n const { gl: t } = this;\n t.endTransformFeedback();\n }\n /**\n * Create TransformFeedback and bind buffers\n * @param tf - TransformFeedback\n * @returns WebGLTransformFeedback\n */\n createGLTransformFeedback(t) {\n const { gl: e, renderer: i, CONTEXT_UID: s } = this, n = e.createTransformFeedback();\n t._glTransformFeedbacks[s] = n, e.bindTransformFeedback(e.TRANSFORM_FEEDBACK, n);\n for (let o = 0; o < t.buffers.length; o++) {\n const a = t.buffers[o];\n a && (i.buffer.update(a), a._glBuffers[s].refCount++, e.bindBufferBase(e.TRANSFORM_FEEDBACK_BUFFER, o, a._glBuffers[s].buffer || null));\n }\n return e.bindTransformFeedback(e.TRANSFORM_FEEDBACK, null), t.disposeRunner.add(this), n;\n }\n /**\n * Disposes TransfromFeedback\n * @param {PIXI.TransformFeedback} tf - TransformFeedback\n * @param {boolean} [contextLost=false] - If context was lost, we suppress delete TransformFeedback\n */\n disposeTransformFeedback(t, e) {\n const i = t._glTransformFeedbacks[this.CONTEXT_UID], s = this.gl;\n t.disposeRunner.remove(this);\n const n = this.renderer.buffer;\n if (n)\n for (let o = 0; o < t.buffers.length; o++) {\n const a = t.buffers[o];\n if (!a)\n continue;\n const l = a._glBuffers[this.CONTEXT_UID];\n l && (l.refCount--, l.refCount === 0 && !e && n.dispose(a, e));\n }\n i && (e || s.deleteTransformFeedback(i), delete t._glTransformFeedbacks[this.CONTEXT_UID]);\n }\n destroy() {\n this.renderer = null;\n }\n}\nXd.extension = {\n type: H.RendererSystem,\n name: \"transformFeedback\"\n};\nq.add(Xd);\nclass Rn {\n constructor(t) {\n this.renderer = t;\n }\n /**\n * initiates the view system\n * @param {PIXI.ViewOptions} options - the options for the view\n */\n init(t) {\n this.screen = new it(0, 0, t.width, t.height), this.element = t.view || W.ADAPTER.createCanvas(), this.resolution = t.resolution || W.RESOLUTION, this.autoDensity = !!t.autoDensity;\n }\n /**\n * Resizes the screen and canvas to the specified dimensions.\n * @param desiredScreenWidth - The new width of the screen.\n * @param desiredScreenHeight - The new height of the screen.\n */\n resizeView(t, e) {\n this.element.width = Math.round(t * this.resolution), this.element.height = Math.round(e * this.resolution);\n const i = this.element.width / this.resolution, s = this.element.height / this.resolution;\n this.screen.width = i, this.screen.height = s, this.autoDensity && (this.element.style.width = `${i}px`, this.element.style.height = `${s}px`), this.renderer.emit(\"resize\", i, s), this.renderer.runners.resize.emit(this.screen.width, this.screen.height);\n }\n /**\n * Destroys this System and optionally removes the canvas from the dom.\n * @param {boolean} [removeView=false] - Whether to remove the canvas from the DOM.\n */\n destroy(t) {\n var e;\n t && ((e = this.element.parentNode) == null || e.removeChild(this.element)), this.renderer = null, this.element = null, this.screen = null;\n }\n}\nRn.defaultOptions = {\n /**\n * {@link PIXI.IRendererOptions.width}\n * @default 800\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n width: 800,\n /**\n * {@link PIXI.IRendererOptions.height}\n * @default 600\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n height: 600,\n /**\n * {@link PIXI.IRendererOptions.resolution}\n * @type {number}\n * @default PIXI.settings.RESOLUTION\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n resolution: void 0,\n /**\n * {@link PIXI.IRendererOptions.autoDensity}\n * @default false\n * @memberof PIXI.settings.RENDER_OPTIONS\n */\n autoDensity: !1\n}, /** @ignore */\nRn.extension = {\n type: [\n H.RendererSystem,\n H.CanvasRendererSystem\n ],\n name: \"_view\"\n};\nq.add(Rn);\nW.PREFER_ENV = zr.WEBGL2;\nW.STRICT_TEXTURE_CACHE = !1;\nW.RENDER_OPTIONS = {\n ...In.defaultOptions,\n ...Cn.defaultOptions,\n ...Rn.defaultOptions,\n ...Pn.defaultOptions\n};\nObject.defineProperties(W, {\n /**\n * @static\n * @name WRAP_MODE\n * @memberof PIXI.settings\n * @type {PIXI.WRAP_MODES}\n * @deprecated since 7.1.0\n * @see PIXI.BaseTexture.defaultOptions.wrapMode\n */\n WRAP_MODE: {\n get() {\n return et.defaultOptions.wrapMode;\n },\n set(r) {\n at(\"7.1.0\", \"settings.WRAP_MODE is deprecated, use BaseTexture.defaultOptions.wrapMode\"), et.defaultOptions.wrapMode = r;\n }\n },\n /**\n * @static\n * @name SCALE_MODE\n * @memberof PIXI.settings\n * @type {PIXI.SCALE_MODES}\n * @deprecated since 7.1.0\n * @see PIXI.BaseTexture.defaultOptions.scaleMode\n */\n SCALE_MODE: {\n get() {\n return et.defaultOptions.scaleMode;\n },\n set(r) {\n at(\"7.1.0\", \"settings.SCALE_MODE is deprecated, use BaseTexture.defaultOptions.scaleMode\"), et.defaultOptions.scaleMode = r;\n }\n },\n /**\n * @static\n * @name MIPMAP_TEXTURES\n * @memberof PIXI.settings\n * @type {PIXI.MIPMAP_MODES}\n * @deprecated since 7.1.0\n * @see PIXI.BaseTexture.defaultOptions.mipmap\n */\n MIPMAP_TEXTURES: {\n get() {\n return et.defaultOptions.mipmap;\n },\n set(r) {\n at(\"7.1.0\", \"settings.MIPMAP_TEXTURES is deprecated, use BaseTexture.defaultOptions.mipmap\"), et.defaultOptions.mipmap = r;\n }\n // MIPMAP_MODES.POW2,\n },\n /**\n * @static\n * @name ANISOTROPIC_LEVEL\n * @memberof PIXI.settings\n * @type {number}\n * @deprecated since 7.1.0\n * @see PIXI.BaseTexture.defaultOptions.anisotropicLevel\n */\n ANISOTROPIC_LEVEL: {\n get() {\n return et.defaultOptions.anisotropicLevel;\n },\n set(r) {\n at(\n \"7.1.0\",\n \"settings.ANISOTROPIC_LEVEL is deprecated, use BaseTexture.defaultOptions.anisotropicLevel\"\n ), et.defaultOptions.anisotropicLevel = r;\n }\n },\n /**\n * Default filter resolution.\n * @static\n * @name FILTER_RESOLUTION\n * @memberof PIXI.settings\n * @deprecated since 7.1.0\n * @type {number|null}\n * @see PIXI.Filter.defaultResolution\n */\n FILTER_RESOLUTION: {\n get() {\n return at(\"7.1.0\", \"settings.FILTER_RESOLUTION is deprecated, use Filter.defaultResolution\"), Jt.defaultResolution;\n },\n set(r) {\n Jt.defaultResolution = r;\n }\n },\n /**\n * Default filter samples.\n * @static\n * @name FILTER_MULTISAMPLE\n * @memberof PIXI.settings\n * @deprecated since 7.1.0\n * @type {PIXI.MSAA_QUALITY}\n * @see PIXI.Filter.defaultMultisample\n */\n FILTER_MULTISAMPLE: {\n get() {\n return at(\"7.1.0\", \"settings.FILTER_MULTISAMPLE is deprecated, use Filter.defaultMultisample\"), Jt.defaultMultisample;\n },\n set(r) {\n Jt.defaultMultisample = r;\n }\n },\n /**\n * The maximum textures that this device supports.\n * @static\n * @name SPRITE_MAX_TEXTURES\n * @memberof PIXI.settings\n * @deprecated since 7.1.0\n * @see PIXI.BatchRenderer.defaultMaxTextures\n * @type {number}\n */\n SPRITE_MAX_TEXTURES: {\n get() {\n return Rr.defaultMaxTextures;\n },\n set(r) {\n at(\"7.1.0\", \"settings.SPRITE_MAX_TEXTURES is deprecated, use BatchRenderer.defaultMaxTextures\"), Rr.defaultMaxTextures = r;\n }\n },\n /**\n * The default sprite batch size.\n *\n * The default aims to balance desktop and mobile devices.\n * @static\n * @name SPRITE_BATCH_SIZE\n * @memberof PIXI.settings\n * @see PIXI.BatchRenderer.defaultBatchSize\n * @deprecated since 7.1.0\n * @type {number}\n */\n SPRITE_BATCH_SIZE: {\n get() {\n return Rr.defaultBatchSize;\n },\n set(r) {\n at(\"7.1.0\", \"settings.SPRITE_BATCH_SIZE is deprecated, use BatchRenderer.defaultBatchSize\"), Rr.defaultBatchSize = r;\n }\n },\n /**\n * Can we upload the same buffer in a single frame?\n * @static\n * @name CAN_UPLOAD_SAME_BUFFER\n * @memberof PIXI.settings\n * @see PIXI.BatchRenderer.canUploadSameBuffer\n * @deprecated since 7.1.0\n * @type {boolean}\n */\n CAN_UPLOAD_SAME_BUFFER: {\n get() {\n return Rr.canUploadSameBuffer;\n },\n set(r) {\n at(\"7.1.0\", \"settings.CAN_UPLOAD_SAME_BUFFER is deprecated, use BatchRenderer.canUploadSameBuffer\"), Rr.canUploadSameBuffer = r;\n }\n },\n /**\n * Default Garbage Collection mode.\n * @static\n * @name GC_MODE\n * @memberof PIXI.settings\n * @type {PIXI.GC_MODES}\n * @deprecated since 7.1.0\n * @see PIXI.TextureGCSystem.defaultMode\n */\n GC_MODE: {\n get() {\n return Mr.defaultMode;\n },\n set(r) {\n at(\"7.1.0\", \"settings.GC_MODE is deprecated, use TextureGCSystem.defaultMode\"), Mr.defaultMode = r;\n }\n },\n /**\n * Default Garbage Collection max idle.\n * @static\n * @name GC_MAX_IDLE\n * @memberof PIXI.settings\n * @type {number}\n * @deprecated since 7.1.0\n * @see PIXI.TextureGCSystem.defaultMaxIdle\n */\n GC_MAX_IDLE: {\n get() {\n return Mr.defaultMaxIdle;\n },\n set(r) {\n at(\"7.1.0\", \"settings.GC_MAX_IDLE is deprecated, use TextureGCSystem.defaultMaxIdle\"), Mr.defaultMaxIdle = r;\n }\n },\n /**\n * Default Garbage Collection maximum check count.\n * @static\n * @name GC_MAX_CHECK_COUNT\n * @memberof PIXI.settings\n * @type {number}\n * @deprecated since 7.1.0\n * @see PIXI.TextureGCSystem.defaultCheckCountMax\n */\n GC_MAX_CHECK_COUNT: {\n get() {\n return Mr.defaultCheckCountMax;\n },\n set(r) {\n at(\"7.1.0\", \"settings.GC_MAX_CHECK_COUNT is deprecated, use TextureGCSystem.defaultCheckCountMax\"), Mr.defaultCheckCountMax = r;\n }\n },\n /**\n * Default specify float precision in vertex shader.\n * @static\n * @name PRECISION_VERTEX\n * @memberof PIXI.settings\n * @type {PIXI.PRECISION}\n * @deprecated since 7.1.0\n * @see PIXI.Program.defaultVertexPrecision\n */\n PRECISION_VERTEX: {\n get() {\n return Ze.defaultVertexPrecision;\n },\n set(r) {\n at(\"7.1.0\", \"settings.PRECISION_VERTEX is deprecated, use Program.defaultVertexPrecision\"), Ze.defaultVertexPrecision = r;\n }\n },\n /**\n * Default specify float precision in fragment shader.\n * @static\n * @name PRECISION_FRAGMENT\n * @memberof PIXI.settings\n * @type {PIXI.PRECISION}\n * @deprecated since 7.1.0\n * @see PIXI.Program.defaultFragmentPrecision\n */\n PRECISION_FRAGMENT: {\n get() {\n return Ze.defaultFragmentPrecision;\n },\n set(r) {\n at(\"7.1.0\", \"settings.PRECISION_FRAGMENT is deprecated, use Program.defaultFragmentPrecision\"), Ze.defaultFragmentPrecision = r;\n }\n }\n});\nvar Vr = /* @__PURE__ */ ((r) => (r[r.INTERACTION = 50] = \"INTERACTION\", r[r.HIGH = 25] = \"HIGH\", r[r.NORMAL = 0] = \"NORMAL\", r[r.LOW = -25] = \"LOW\", r[r.UTILITY = -50] = \"UTILITY\", r))(Vr || {});\nclass ko {\n /**\n * Constructor\n * @private\n * @param fn - The listener function to be added for one update\n * @param context - The listener context\n * @param priority - The priority for emitting\n * @param once - If the handler should fire once\n */\n constructor(t, e = null, i = 0, s = !1) {\n this.next = null, this.previous = null, this._destroyed = !1, this.fn = t, this.context = e, this.priority = i, this.once = s;\n }\n /**\n * Simple compare function to figure out if a function and context match.\n * @private\n * @param fn - The listener function to be added for one update\n * @param context - The listener context\n * @returns `true` if the listener match the arguments\n */\n match(t, e = null) {\n return this.fn === t && this.context === e;\n }\n /**\n * Emit by calling the current function.\n * @private\n * @param deltaTime - time since the last emit.\n * @returns Next ticker\n */\n emit(t) {\n this.fn && (this.context ? this.fn.call(this.context, t) : this.fn(t));\n const e = this.next;\n return this.once && this.destroy(!0), this._destroyed && (this.next = null), e;\n }\n /**\n * Connect to the list.\n * @private\n * @param previous - Input node, previous listener\n */\n connect(t) {\n this.previous = t, t.next && (t.next.previous = this), this.next = t.next, t.next = this;\n }\n /**\n * Destroy and don't use after this.\n * @private\n * @param hard - `true` to remove the `next` reference, this\n * is considered a hard destroy. Soft destroy maintains the next reference.\n * @returns The listener to redirect while emitting or removing.\n */\n destroy(t = !1) {\n this._destroyed = !0, this.fn = null, this.context = null, this.previous && (this.previous.next = this.next), this.next && (this.next.previous = this.previous);\n const e = this.next;\n return this.next = t ? null : e, this.previous = null, e;\n }\n}\nconst Vd = class ee {\n constructor() {\n this.autoStart = !1, this.deltaTime = 1, this.lastTime = -1, this.speed = 1, this.started = !1, this._requestId = null, this._maxElapsedMS = 100, this._minElapsedMS = 0, this._protected = !1, this._lastFrame = -1, this._head = new ko(null, null, 1 / 0), this.deltaMS = 1 / ee.targetFPMS, this.elapsedMS = 1 / ee.targetFPMS, this._tick = (t) => {\n this._requestId = null, this.started && (this.update(t), this.started && this._requestId === null && this._head.next && (this._requestId = requestAnimationFrame(this._tick)));\n };\n }\n /**\n * Conditionally requests a new animation frame.\n * If a frame has not already been requested, and if the internal\n * emitter has listeners, a new frame is requested.\n * @private\n */\n _requestIfNeeded() {\n this._requestId === null && this._head.next && (this.lastTime = performance.now(), this._lastFrame = this.lastTime, this._requestId = requestAnimationFrame(this._tick));\n }\n /**\n * Conditionally cancels a pending animation frame.\n * @private\n */\n _cancelIfNeeded() {\n this._requestId !== null && (cancelAnimationFrame(this._requestId), this._requestId = null);\n }\n /**\n * Conditionally requests a new animation frame.\n * If the ticker has been started it checks if a frame has not already\n * been requested, and if the internal emitter has listeners. If these\n * conditions are met, a new frame is requested. If the ticker has not\n * been started, but autoStart is `true`, then the ticker starts now,\n * and continues with the previous conditions to request a new frame.\n * @private\n */\n _startIfPossible() {\n this.started ? this._requestIfNeeded() : this.autoStart && this.start();\n }\n /**\n * Register a handler for tick events. Calls continuously unless\n * it is removed or the ticker is stopped.\n * @param fn - The listener function to be added for updates\n * @param context - The listener context\n * @param {number} [priority=PIXI.UPDATE_PRIORITY.NORMAL] - The priority for emitting\n * @returns This instance of a ticker\n */\n add(t, e, i = Vr.NORMAL) {\n return this._addListener(new ko(t, e, i));\n }\n /**\n * Add a handler for the tick event which is only execute once.\n * @param fn - The listener function to be added for one update\n * @param context - The listener context\n * @param {number} [priority=PIXI.UPDATE_PRIORITY.NORMAL] - The priority for emitting\n * @returns This instance of a ticker\n */\n addOnce(t, e, i = Vr.NORMAL) {\n return this._addListener(new ko(t, e, i, !0));\n }\n /**\n * Internally adds the event handler so that it can be sorted by priority.\n * Priority allows certain handler (user, AnimatedSprite, Interaction) to be run\n * before the rendering.\n * @private\n * @param listener - Current listener being added.\n * @returns This instance of a ticker\n */\n _addListener(t) {\n let e = this._head.next, i = this._head;\n if (!e)\n t.connect(i);\n else {\n for (; e; ) {\n if (t.priority > e.priority) {\n t.connect(i);\n break;\n }\n i = e, e = e.next;\n }\n t.previous || t.connect(i);\n }\n return this._startIfPossible(), this;\n }\n /**\n * Removes any handlers matching the function and context parameters.\n * If no handlers are left after removing, then it cancels the animation frame.\n * @param fn - The listener function to be removed\n * @param context - The listener context to be removed\n * @returns This instance of a ticker\n */\n remove(t, e) {\n let i = this._head.next;\n for (; i; )\n i.match(t, e) ? i = i.destroy() : i = i.next;\n return this._head.next || this._cancelIfNeeded(), this;\n }\n /**\n * The number of listeners on this ticker, calculated by walking through linked list\n * @readonly\n * @member {number}\n */\n get count() {\n if (!this._head)\n return 0;\n let t = 0, e = this._head;\n for (; e = e.next; )\n t++;\n return t;\n }\n /** Starts the ticker. If the ticker has listeners a new animation frame is requested at this point. */\n start() {\n this.started || (this.started = !0, this._requestIfNeeded());\n }\n /** Stops the ticker. If the ticker has requested an animation frame it is canceled at this point. */\n stop() {\n this.started && (this.started = !1, this._cancelIfNeeded());\n }\n /** Destroy the ticker and don't use after this. Calling this method removes all references to internal events. */\n destroy() {\n if (!this._protected) {\n this.stop();\n let t = this._head.next;\n for (; t; )\n t = t.destroy(!0);\n this._head.destroy(), this._head = null;\n }\n }\n /**\n * Triggers an update. An update entails setting the\n * current {@link PIXI.Ticker#elapsedMS},\n * the current {@link PIXI.Ticker#deltaTime},\n * invoking all listeners with current deltaTime,\n * and then finally setting {@link PIXI.Ticker#lastTime}\n * with the value of currentTime that was provided.\n * This method will be called automatically by animation\n * frame callbacks if the ticker instance has been started\n * and listeners are added.\n * @param {number} [currentTime=performance.now()] - the current time of execution\n */\n update(t = performance.now()) {\n let e;\n if (t > this.lastTime) {\n if (e = this.elapsedMS = t - this.lastTime, e > this._maxElapsedMS && (e = this._maxElapsedMS), e *= this.speed, this._minElapsedMS) {\n const n = t - this._lastFrame | 0;\n if (n < this._minElapsedMS)\n return;\n this._lastFrame = t - n % this._minElapsedMS;\n }\n this.deltaMS = e, this.deltaTime = this.deltaMS * ee.targetFPMS;\n const i = this._head;\n let s = i.next;\n for (; s; )\n s = s.emit(this.deltaTime);\n i.next || this._cancelIfNeeded();\n } else\n this.deltaTime = this.deltaMS = this.elapsedMS = 0;\n this.lastTime = t;\n }\n /**\n * The frames per second at which this ticker is running.\n * The default is approximately 60 in most modern browsers.\n * **Note:** This does not factor in the value of\n * {@link PIXI.Ticker#speed}, which is specific\n * to scaling {@link PIXI.Ticker#deltaTime}.\n * @member {number}\n * @readonly\n */\n get FPS() {\n return 1e3 / this.elapsedMS;\n }\n /**\n * Manages the maximum amount of milliseconds allowed to\n * elapse between invoking {@link PIXI.Ticker#update}.\n * This value is used to cap {@link PIXI.Ticker#deltaTime},\n * but does not effect the measured value of {@link PIXI.Ticker#FPS}.\n * When setting this property it is clamped to a value between\n * `0` and `Ticker.targetFPMS * 1000`.\n * @member {number}\n * @default 10\n */\n get minFPS() {\n return 1e3 / this._maxElapsedMS;\n }\n set minFPS(t) {\n const e = Math.min(this.maxFPS, t), i = Math.min(Math.max(0, e) / 1e3, ee.targetFPMS);\n this._maxElapsedMS = 1 / i;\n }\n /**\n * Manages the minimum amount of milliseconds required to\n * elapse between invoking {@link PIXI.Ticker#update}.\n * This will effect the measured value of {@link PIXI.Ticker#FPS}.\n * If it is set to `0`, then there is no limit; PixiJS will render as many frames as it can.\n * Otherwise it will be at least `minFPS`\n * @member {number}\n * @default 0\n */\n get maxFPS() {\n return this._minElapsedMS ? Math.round(1e3 / this._minElapsedMS) : 0;\n }\n set maxFPS(t) {\n if (t === 0)\n this._minElapsedMS = 0;\n else {\n const e = Math.max(this.minFPS, t);\n this._minElapsedMS = 1 / (e / 1e3);\n }\n }\n /**\n * The shared ticker instance used by {@link PIXI.AnimatedSprite} and by\n * {@link PIXI.VideoResource} to update animation frames / video textures.\n *\n * It may also be used by {@link PIXI.Application} if created with the `sharedTicker` option property set to true.\n *\n * The property {@link PIXI.Ticker#autoStart} is set to `true` for this instance.\n * Please follow the examples for usage, including how to opt-out of auto-starting the shared ticker.\n * @example\n * import { Ticker } from 'pixi.js';\n *\n * const ticker = Ticker.shared;\n * // Set this to prevent starting this ticker when listeners are added.\n * // By default this is true only for the PIXI.Ticker.shared instance.\n * ticker.autoStart = false;\n *\n * // FYI, call this to ensure the ticker is stopped. It should be stopped\n * // if you have not attempted to render anything yet.\n * ticker.stop();\n *\n * // Call this when you are ready for a running shared ticker.\n * ticker.start();\n * @example\n * import { autoDetectRenderer, Container } from 'pixi.js';\n *\n * // You may use the shared ticker to render...\n * const renderer = autoDetectRenderer();\n * const stage = new Container();\n * document.body.appendChild(renderer.view);\n * ticker.add((time) => renderer.render(stage));\n *\n * // Or you can just update it manually.\n * ticker.autoStart = false;\n * ticker.stop();\n * const animate = (time) => {\n * ticker.update(time);\n * renderer.render(stage);\n * requestAnimationFrame(animate);\n * };\n * animate(performance.now());\n * @member {PIXI.Ticker}\n * @static\n */\n static get shared() {\n if (!ee._shared) {\n const t = ee._shared = new ee();\n t.autoStart = !0, t._protected = !0;\n }\n return ee._shared;\n }\n /**\n * The system ticker instance used by {@link PIXI.BasePrepare} for core timing\n * functionality that shouldn't usually need to be paused, unlike the `shared`\n * ticker which drives visual animations and rendering which may want to be paused.\n *\n * The property {@link PIXI.Ticker#autoStart} is set to `true` for this instance.\n * @member {PIXI.Ticker}\n * @static\n */\n static get system() {\n if (!ee._system) {\n const t = ee._system = new ee();\n t.autoStart = !0, t._protected = !0;\n }\n return ee._system;\n }\n};\nVd.targetFPMS = 0.06;\nlet se = Vd;\nObject.defineProperties(W, {\n /**\n * Target frames per millisecond.\n * @static\n * @name TARGET_FPMS\n * @memberof PIXI.settings\n * @type {number}\n * @deprecated since 7.1.0\n * @see PIXI.Ticker.targetFPMS\n */\n TARGET_FPMS: {\n get() {\n return se.targetFPMS;\n },\n set(r) {\n at(\"7.1.0\", \"settings.TARGET_FPMS is deprecated, use Ticker.targetFPMS\"), se.targetFPMS = r;\n }\n }\n});\nclass zd {\n /**\n * Initialize the plugin with scope of application instance\n * @static\n * @private\n * @param {object} [options] - See application options\n */\n static init(t) {\n t = Object.assign({\n autoStart: !0,\n sharedTicker: !1\n }, t), Object.defineProperty(\n this,\n \"ticker\",\n {\n set(e) {\n this._ticker && this._ticker.remove(this.render, this), this._ticker = e, e && e.add(this.render, this, Vr.LOW);\n },\n get() {\n return this._ticker;\n }\n }\n ), this.stop = () => {\n this._ticker.stop();\n }, this.start = () => {\n this._ticker.start();\n }, this._ticker = null, this.ticker = t.sharedTicker ? se.shared : new se(), t.autoStart && this.start();\n }\n /**\n * Clean up the ticker, scoped to application.\n * @static\n * @private\n */\n static destroy() {\n if (this._ticker) {\n const t = this._ticker;\n this.ticker = null, t.destroy();\n }\n }\n}\nzd.extension = H.Application;\nq.add(zd);\nconst Wd = [];\nq.handleByList(H.Renderer, Wd);\nfunction jd(r) {\n for (const t of Wd)\n if (t.test(r))\n return new t(r);\n throw new Error(\"Unable to auto-detect a suitable renderer.\");\n}\nvar _1 = `attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}`, v1 = `attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n`;\nconst x1 = _1, Yd = v1;\nclass qd {\n constructor(t) {\n this.renderer = t;\n }\n contextChange(t) {\n let e;\n if (this.renderer.context.webGLVersion === 1) {\n const i = t.getParameter(t.FRAMEBUFFER_BINDING);\n t.bindFramebuffer(t.FRAMEBUFFER, null), e = t.getParameter(t.SAMPLES), t.bindFramebuffer(t.FRAMEBUFFER, i);\n } else {\n const i = t.getParameter(t.DRAW_FRAMEBUFFER_BINDING);\n t.bindFramebuffer(t.DRAW_FRAMEBUFFER, null), e = t.getParameter(t.SAMPLES), t.bindFramebuffer(t.DRAW_FRAMEBUFFER, i);\n }\n e >= Bt.HIGH ? this.multisample = Bt.HIGH : e >= Bt.MEDIUM ? this.multisample = Bt.MEDIUM : e >= Bt.LOW ? this.multisample = Bt.LOW : this.multisample = Bt.NONE;\n }\n destroy() {\n }\n}\nqd.extension = {\n type: H.RendererSystem,\n name: \"_multisample\"\n};\nq.add(qd);\nclass b1 {\n constructor(t) {\n this.buffer = t || null, this.updateID = -1, this.byteLength = -1, this.refCount = 0;\n }\n}\nclass Kd {\n /**\n * @param {PIXI.Renderer} renderer - The renderer this System works for.\n */\n constructor(t) {\n this.renderer = t, this.managedBuffers = {}, this.boundBufferBases = {};\n }\n /**\n * @ignore\n */\n destroy() {\n this.renderer = null;\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n this.disposeAll(!0), this.gl = this.renderer.gl, this.CONTEXT_UID = this.renderer.CONTEXT_UID;\n }\n /**\n * This binds specified buffer. On first run, it will create the webGL buffers for the context too\n * @param buffer - the buffer to bind to the renderer\n */\n bind(t) {\n const { gl: e, CONTEXT_UID: i } = this, s = t._glBuffers[i] || this.createGLBuffer(t);\n e.bindBuffer(t.type, s.buffer);\n }\n unbind(t) {\n const { gl: e } = this;\n e.bindBuffer(t, null);\n }\n /**\n * Binds an uniform buffer to at the given index.\n *\n * A cache is used so a buffer will not be bound again if already bound.\n * @param buffer - the buffer to bind\n * @param index - the base index to bind it to.\n */\n bindBufferBase(t, e) {\n const { gl: i, CONTEXT_UID: s } = this;\n if (this.boundBufferBases[e] !== t) {\n const n = t._glBuffers[s] || this.createGLBuffer(t);\n this.boundBufferBases[e] = t, i.bindBufferBase(i.UNIFORM_BUFFER, e, n.buffer);\n }\n }\n /**\n * Binds a buffer whilst also binding its range.\n * This will make the buffer start from the offset supplied rather than 0 when it is read.\n * @param buffer - the buffer to bind\n * @param index - the base index to bind at, defaults to 0\n * @param offset - the offset to bind at (this is blocks of 256). 0 = 0, 1 = 256, 2 = 512 etc\n */\n bindBufferRange(t, e, i) {\n const { gl: s, CONTEXT_UID: n } = this;\n i = i || 0;\n const o = t._glBuffers[n] || this.createGLBuffer(t);\n s.bindBufferRange(s.UNIFORM_BUFFER, e || 0, o.buffer, i * 256, 256);\n }\n /**\n * Will ensure the data in the buffer is uploaded to the GPU.\n * @param {PIXI.Buffer} buffer - the buffer to update\n */\n update(t) {\n const { gl: e, CONTEXT_UID: i } = this, s = t._glBuffers[i] || this.createGLBuffer(t);\n if (t._updateID !== s.updateID)\n if (s.updateID = t._updateID, e.bindBuffer(t.type, s.buffer), s.byteLength >= t.data.byteLength)\n e.bufferSubData(t.type, 0, t.data);\n else {\n const n = t.static ? e.STATIC_DRAW : e.DYNAMIC_DRAW;\n s.byteLength = t.data.byteLength, e.bufferData(t.type, t.data, n);\n }\n }\n /**\n * Disposes buffer\n * @param {PIXI.Buffer} buffer - buffer with data\n * @param {boolean} [contextLost=false] - If context was lost, we suppress deleteVertexArray\n */\n dispose(t, e) {\n if (!this.managedBuffers[t.id])\n return;\n delete this.managedBuffers[t.id];\n const i = t._glBuffers[this.CONTEXT_UID], s = this.gl;\n t.disposeRunner.remove(this), i && (e || s.deleteBuffer(i.buffer), delete t._glBuffers[this.CONTEXT_UID]);\n }\n /**\n * dispose all WebGL resources of all managed buffers\n * @param {boolean} [contextLost=false] - If context was lost, we suppress `gl.delete` calls\n */\n disposeAll(t) {\n const e = Object.keys(this.managedBuffers);\n for (let i = 0; i < e.length; i++)\n this.dispose(this.managedBuffers[e[i]], t);\n }\n /**\n * creates and attaches a GLBuffer object tied to the current context.\n * @param buffer\n * @protected\n */\n createGLBuffer(t) {\n const { CONTEXT_UID: e, gl: i } = this;\n return t._glBuffers[e] = new b1(i.createBuffer()), this.managedBuffers[t.id] = t, t.disposeRunner.add(this), t._glBuffers[e];\n }\n}\nKd.extension = {\n type: H.RendererSystem,\n name: \"buffer\"\n};\nq.add(Kd);\nclass Zd {\n // renderers scene graph!\n constructor(t) {\n this.renderer = t;\n }\n /**\n * Renders the object to its WebGL view.\n * @param displayObject - The object to be rendered.\n * @param options - the options to be passed to the renderer\n */\n render(t, e) {\n const i = this.renderer;\n let s, n, o, a;\n if (e && (s = e.renderTexture, n = e.clear, o = e.transform, a = e.skipUpdateTransform), this.renderingToScreen = !s, i.runners.prerender.emit(), i.emit(\"prerender\"), i.projection.transform = o, !i.context.isLost) {\n if (s || (this.lastObjectRendered = t), !a) {\n const l = t.enableTempParent();\n t.updateTransform(), t.disableTempParent(l);\n }\n i.renderTexture.bind(s), i.batch.currentRenderer.start(), (n ?? i.background.clearBeforeRender) && i.renderTexture.clear(), t.render(i), i.batch.currentRenderer.flush(), s && (e.blit && i.framebuffer.blit(), s.baseTexture.update()), i.runners.postrender.emit(), i.projection.transform = null, i.emit(\"postrender\");\n }\n }\n destroy() {\n this.renderer = null, this.lastObjectRendered = null;\n }\n}\nZd.extension = {\n type: H.RendererSystem,\n name: \"objectRenderer\"\n};\nq.add(Zd);\nconst on = class Da extends m1 {\n /**\n * @param {PIXI.IRendererOptions} [options] - See {@link PIXI.settings.RENDER_OPTIONS} for defaults.\n */\n constructor(t) {\n super(), this.type = Nu.WEBGL, t = Object.assign({}, W.RENDER_OPTIONS, t), this.gl = null, this.CONTEXT_UID = 0, this.globalUniforms = new be({\n projectionMatrix: new wt()\n }, !0);\n const e = {\n runners: [\n \"init\",\n \"destroy\",\n \"contextChange\",\n \"resolutionChange\",\n \"reset\",\n \"update\",\n \"postrender\",\n \"prerender\",\n \"resize\"\n ],\n systems: Da.__systems,\n priority: [\n \"_view\",\n \"textureGenerator\",\n \"background\",\n \"_plugin\",\n \"startup\",\n // low level WebGL systems\n \"context\",\n \"state\",\n \"texture\",\n \"buffer\",\n \"geometry\",\n \"framebuffer\",\n \"transformFeedback\",\n // high level pixi specific rendering\n \"mask\",\n \"scissor\",\n \"stencil\",\n \"projection\",\n \"textureGC\",\n \"filter\",\n \"renderTexture\",\n \"batch\",\n \"objectRenderer\",\n \"_multisample\"\n ]\n };\n this.setup(e), \"useContextAlpha\" in t && (at(\"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 = Da.__plugins, this.options = t, this.startup.run(this.options);\n }\n /**\n * Create renderer if WebGL is available. Overrideable\n * by the **@pixi/canvas-renderer** package to allow fallback.\n * throws error if WebGL is not available.\n * @param options\n * @private\n */\n static test(t) {\n return t != null && t.forceCanvas ? !1 : z_();\n }\n /**\n * Renders the object to its WebGL view.\n * @param displayObject - The object to be rendered.\n * @param {object} [options] - Object to use for render options.\n * @param {PIXI.RenderTexture} [options.renderTexture] - The render texture to render to.\n * @param {boolean} [options.clear=true] - Should the canvas be cleared before the new render.\n * @param {PIXI.Matrix} [options.transform] - A transform to apply to the render texture before rendering.\n * @param {boolean} [options.skipUpdateTransform=false] - Should we skip the update transform pass?\n */\n render(t, e) {\n this.objectRenderer.render(t, e);\n }\n /**\n * Resizes the WebGL view to the specified width and height.\n * @param desiredScreenWidth - The desired width of the screen.\n * @param desiredScreenHeight - The desired height of the screen.\n */\n resize(t, e) {\n this._view.resizeView(t, e);\n }\n /**\n * Resets the WebGL state so you can render things however you fancy!\n * @returns Returns itself.\n */\n reset() {\n return this.runners.reset.emit(), this;\n }\n /** Clear the frame buffer. */\n clear() {\n this.renderTexture.bind(), this.renderTexture.clear();\n }\n /**\n * Removes everything from the renderer (event listeners, spritebatch, etc...)\n * @param [removeView=false] - Removes the Canvas element from the DOM.\n * See: https://github.com/pixijs/pixijs/issues/2233\n */\n destroy(t = !1) {\n this.runners.destroy.items.reverse(), this.emitWithCustomOptions(this.runners.destroy, {\n _view: t\n }), super.destroy();\n }\n /** Collection of plugins */\n get plugins() {\n return this._plugin.plugins;\n }\n /** The number of msaa samples of the canvas. */\n get multisample() {\n return this._multisample.multisample;\n }\n /**\n * Same as view.width, actual number of pixels in the canvas by horizontal.\n * @member {number}\n * @readonly\n * @default 800\n */\n get width() {\n return this._view.element.width;\n }\n /**\n * Same as view.height, actual number of pixels in the canvas by vertical.\n * @default 600\n */\n get height() {\n return this._view.element.height;\n }\n /** The resolution / device pixel ratio of the renderer. */\n get resolution() {\n return this._view.resolution;\n }\n set resolution(t) {\n this._view.resolution = t, this.runners.resolutionChange.emit(t);\n }\n /** Whether CSS dimensions of canvas view should be resized to screen dimensions automatically. */\n get autoDensity() {\n return this._view.autoDensity;\n }\n /** The canvas element that everything is drawn to.*/\n get view() {\n return this._view.element;\n }\n /**\n * Measurements of the screen. (0, 0, screenWidth, screenHeight).\n *\n * Its safe to use as filterArea or hitArea for the whole stage.\n * @member {PIXI.Rectangle}\n */\n get screen() {\n return this._view.screen;\n }\n /** the last object rendered by the renderer. Useful for other plugins like interaction managers */\n get lastObjectRendered() {\n return this.objectRenderer.lastObjectRendered;\n }\n /** Flag if we are rendering to the screen vs renderTexture */\n get renderingToScreen() {\n return this.objectRenderer.renderingToScreen;\n }\n /** When logging Pixi to the console, this is the name we will show */\n get rendererLogId() {\n return `WebGL ${this.context.webGLVersion}`;\n }\n /**\n * This sets weather the screen is totally cleared between each frame withthe background color and alpha\n * @deprecated since 7.0.0\n */\n get clearBeforeRender() {\n return at(\"7.0.0\", \"renderer.clearBeforeRender has been deprecated, please use renderer.background.clearBeforeRender instead.\"), this.background.clearBeforeRender;\n }\n /**\n * Pass-thru setting for the canvas' context `alpha` property. This is typically\n * not something you need to fiddle with. If you want transparency, use `backgroundAlpha`.\n * @deprecated since 7.0.0\n * @member {boolean}\n */\n get useContextAlpha() {\n return at(\"7.0.0\", \"renderer.useContextAlpha has been deprecated, please use renderer.context.premultipliedAlpha instead.\"), this.context.useContextAlpha;\n }\n /**\n * readonly drawing buffer preservation\n * we can only know this if Pixi created the context\n * @deprecated since 7.0.0\n */\n get preserveDrawingBuffer() {\n return at(\"7.0.0\", \"renderer.preserveDrawingBuffer has been deprecated, we cannot truly know this unless pixi created the context\"), this.context.preserveDrawingBuffer;\n }\n /**\n * The background color to fill if not transparent\n * @member {number}\n * @deprecated since 7.0.0\n */\n get backgroundColor() {\n return at(\"7.0.0\", \"renderer.backgroundColor has been deprecated, use renderer.background.color instead.\"), this.background.color;\n }\n set backgroundColor(t) {\n at(\"7.0.0\", \"renderer.backgroundColor has been deprecated, use renderer.background.color instead.\"), this.background.color = t;\n }\n /**\n * The background color alpha. Setting this to 0 will make the canvas transparent.\n * @member {number}\n * @deprecated since 7.0.0\n */\n get backgroundAlpha() {\n return at(\"7.0.0\", \"renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead.\"), this.background.alpha;\n }\n /**\n * @deprecated since 7.0.0\n */\n set backgroundAlpha(t) {\n at(\"7.0.0\", \"renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead.\"), this.background.alpha = t;\n }\n /**\n * @deprecated since 7.0.0\n */\n get powerPreference() {\n return at(\"7.0.0\", \"renderer.powerPreference has been deprecated, we can only know this if pixi creates the context\"), this.context.powerPreference;\n }\n /**\n * Useful function that returns a texture of the display object that can then be used to create sprites\n * This can be quite useful if your displayObject is complicated and needs to be reused multiple times.\n * @param displayObject - The displayObject the object will be generated from.\n * @param {IGenerateTextureOptions} options - Generate texture options.\n * @param {PIXI.Rectangle} options.region - The region of the displayObject, that shall be rendered,\n * if no region is specified, defaults to the local bounds of the displayObject.\n * @param {number} [options.resolution] - If not given, the renderer's resolution is used.\n * @param {PIXI.MSAA_QUALITY} [options.multisample] - If not given, the renderer's multisample is used.\n * @returns A texture of the graphics object.\n */\n generateTexture(t, e) {\n return this.textureGenerator.generateTexture(t, e);\n }\n};\non.extension = {\n type: H.Renderer,\n priority: 1\n}, /**\n* Collection of installed plugins. These are included by default in PIXI, but can be excluded\n* by creating a custom build. Consult the README for more information about creating custom\n* builds and excluding plugins.\n* @private\n*/\non.__plugins = {}, /**\n* The collection of installed systems.\n* @private\n*/\non.__systems = {};\nlet bl = on;\nq.handleByMap(H.RendererPlugin, bl.__plugins);\nq.handleByMap(H.RendererSystem, bl.__systems);\nq.add(bl);\nclass Jd extends ds {\n /**\n * @param length\n * @param options - Options to for Resource constructor\n * @param {number} [options.width] - Width of the resource\n * @param {number} [options.height] - Height of the resource\n */\n constructor(t, e) {\n const { width: i, height: s } = e || {};\n super(i, s), this.items = [], this.itemDirtyIds = [];\n for (let n = 0; n < t; n++) {\n const o = new et();\n this.items.push(o), this.itemDirtyIds.push(-2);\n }\n this.length = t, this._load = null, this.baseTexture = null;\n }\n /**\n * Used from ArrayResource and CubeResource constructors.\n * @param resources - Can be resources, image elements, canvas, etc. ,\n * length should be same as constructor length\n * @param options - Detect options for resources\n */\n initFromArray(t, e) {\n for (let i = 0; i < this.length; i++)\n t[i] && (t[i].castToBaseTexture ? this.addBaseTextureAt(t[i].castToBaseTexture(), i) : t[i] instanceof ds ? this.addResourceAt(t[i], i) : this.addResourceAt(md(t[i], e), i));\n }\n /** Destroy this BaseImageResource. */\n dispose() {\n for (let t = 0, e = this.length; t < e; t++)\n this.items[t].destroy();\n this.items = null, this.itemDirtyIds = null, this._load = null;\n }\n /**\n * Set a resource by ID\n * @param resource\n * @param index - Zero-based index of resource to set\n * @returns - Instance for chaining\n */\n addResourceAt(t, e) {\n if (!this.items[e])\n throw new Error(`Index ${e} is out of bounds`);\n return t.valid && !this.valid && this.resize(t.width, t.height), this.items[e].setResource(t), this;\n }\n /**\n * Set the parent base texture.\n * @param baseTexture\n */\n bind(t) {\n if (this.baseTexture !== null)\n throw new Error(\"Only one base texture per TextureArray is allowed\");\n super.bind(t);\n for (let e = 0; e < this.length; e++)\n this.items[e].parentTextureArray = t, this.items[e].on(\"update\", t.update, t);\n }\n /**\n * Unset the parent base texture.\n * @param baseTexture\n */\n unbind(t) {\n super.unbind(t);\n for (let e = 0; e < this.length; e++)\n this.items[e].parentTextureArray = null, this.items[e].off(\"update\", t.update, t);\n }\n /**\n * Load all the resources simultaneously\n * @returns - When load is resolved\n */\n load() {\n if (this._load)\n return this._load;\n const t = this.items.map((e) => e.resource).filter((e) => e).map((e) => e.load());\n return this._load = Promise.all(t).then(\n () => {\n const { realWidth: e, realHeight: i } = this.items[0];\n return this.resize(e, i), this.update(), Promise.resolve(this);\n }\n ), this._load;\n }\n}\nclass w1 extends Jd {\n /**\n * @param source - Number of items in array or the collection\n * of image URLs to use. Can also be resources, image elements, canvas, etc.\n * @param options - Options to apply to {@link PIXI.autoDetectResource}\n * @param {number} [options.width] - Width of the resource\n * @param {number} [options.height] - Height of the resource\n */\n constructor(t, e) {\n const { width: i, height: s } = e || {};\n let n, o;\n Array.isArray(t) ? (n = t, o = t.length) : o = t, super(o, { width: i, height: s }), n && this.initFromArray(n, e);\n }\n /**\n * Set a baseTexture by ID,\n * ArrayResource just takes resource from it, nothing more\n * @param baseTexture\n * @param index - Zero-based index of resource to set\n * @returns - Instance for chaining\n */\n addBaseTextureAt(t, e) {\n if (t.resource)\n this.addResourceAt(t.resource, e);\n else\n throw new Error(\"ArrayResource does not support RenderTexture\");\n return this;\n }\n /**\n * Add binding\n * @param baseTexture\n */\n bind(t) {\n super.bind(t), t.target = yi.TEXTURE_2D_ARRAY;\n }\n /**\n * Upload the resources to the GPU.\n * @param renderer\n * @param texture\n * @param glTexture\n * @returns - whether texture was uploaded\n */\n upload(t, e, i) {\n const { length: s, itemDirtyIds: n, items: o } = this, { gl: a } = t;\n i.dirtyId < 0 && a.texImage3D(\n a.TEXTURE_2D_ARRAY,\n 0,\n i.internalFormat,\n this._width,\n this._height,\n s,\n 0,\n e.format,\n i.type,\n null\n );\n for (let l = 0; l < s; l++) {\n const h = o[l];\n n[l] < h.dirtyId && (n[l] = h.dirtyId, h.valid && a.texSubImage3D(\n a.TEXTURE_2D_ARRAY,\n 0,\n 0,\n // xoffset\n 0,\n // yoffset\n l,\n // zoffset\n h.resource.width,\n h.resource.height,\n 1,\n e.format,\n i.type,\n h.resource.source\n ));\n }\n return !0;\n }\n}\nclass E1 extends ir {\n /**\n * @param source - Canvas element to use\n */\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(t) {\n super(t);\n }\n /**\n * Used to auto-detect the type of resource.\n * @param {*} source - The source object\n * @returns {boolean} `true` if source is HTMLCanvasElement or OffscreenCanvas\n */\n static test(t) {\n const { OffscreenCanvas: e } = globalThis;\n return e && t instanceof e ? !0 : globalThis.HTMLCanvasElement && t instanceof HTMLCanvasElement;\n }\n}\nconst Qd = class Ki extends Jd {\n /**\n * @param {Array<string|PIXI.Resource>} [source] - Collection of URLs or resources\n * to use as the sides of the cube.\n * @param options - ImageResource options\n * @param {number} [options.width] - Width of resource\n * @param {number} [options.height] - Height of resource\n * @param {number} [options.autoLoad=true] - Whether to auto-load resources\n * @param {number} [options.linkBaseTexture=true] - In case BaseTextures are supplied,\n * whether to copy them or use\n */\n constructor(t, e) {\n const { width: i, height: s, autoLoad: n, linkBaseTexture: o } = e || {};\n if (t && t.length !== Ki.SIDES)\n throw new Error(`Invalid length. Got ${t.length}, expected 6`);\n super(6, { width: i, height: s });\n for (let a = 0; a < Ki.SIDES; a++)\n this.items[a].target = yi.TEXTURE_CUBE_MAP_POSITIVE_X + a;\n this.linkBaseTexture = o !== !1, t && this.initFromArray(t, e), n !== !1 && this.load();\n }\n /**\n * Add binding.\n * @param baseTexture - parent base texture\n */\n bind(t) {\n super.bind(t), t.target = yi.TEXTURE_CUBE_MAP;\n }\n addBaseTextureAt(t, e, i) {\n if (i === void 0 && (i = this.linkBaseTexture), !this.items[e])\n throw new Error(`Index ${e} is out of bounds`);\n if (!this.linkBaseTexture || t.parentTextureArray || Object.keys(t._glTextures).length > 0)\n if (t.resource)\n this.addResourceAt(t.resource, e);\n else\n throw new Error(\"CubeResource does not support copying of renderTexture.\");\n else\n t.target = yi.TEXTURE_CUBE_MAP_POSITIVE_X + e, t.parentTextureArray = this.baseTexture, this.items[e] = t;\n return t.valid && !this.valid && this.resize(t.realWidth, t.realHeight), this.items[e] = t, this;\n }\n /**\n * Upload the resource\n * @param renderer\n * @param _baseTexture\n * @param glTexture\n * @returns {boolean} true is success\n */\n upload(t, e, i) {\n const s = this.itemDirtyIds;\n for (let n = 0; n < Ki.SIDES; n++) {\n const o = this.items[n];\n (s[n] < o.dirtyId || i.dirtyId < e.dirtyId) && (o.valid && o.resource ? (o.resource.upload(t, o, i), s[n] = o.dirtyId) : s[n] < -1 && (t.gl.texImage2D(\n o.target,\n 0,\n i.internalFormat,\n e.realWidth,\n e.realHeight,\n 0,\n e.format,\n i.type,\n null\n ), s[n] = -1));\n }\n return !0;\n }\n /**\n * Used to auto-detect the type of resource.\n * @param {*} source - The source object\n * @returns {boolean} `true` if source is an array of 6 elements\n */\n static test(t) {\n return Array.isArray(t) && t.length === Ki.SIDES;\n }\n};\nQd.SIDES = 6;\nlet T1 = Qd;\nclass pi extends ir {\n /**\n * @param source - ImageBitmap or URL to use.\n * @param options - Options to use.\n */\n constructor(t, e) {\n e = e || {};\n let i, s, n;\n typeof t == \"string\" ? (i = pi.EMPTY, s = t, n = !0) : (i = t, s = null, n = !1), super(i), this.url = s, this.crossOrigin = e.crossOrigin ?? !0, this.alphaMode = typeof e.alphaMode == \"number\" ? e.alphaMode : null, this.ownsImageBitmap = e.ownsImageBitmap ?? n, this._load = null, e.autoLoad !== !1 && this.load();\n }\n load() {\n return this._load ? this._load : (this._load = new Promise(async (t, e) => {\n if (this.url === null) {\n t(this);\n return;\n }\n try {\n const i = await W.ADAPTER.fetch(this.url, {\n mode: this.crossOrigin ? \"cors\" : \"no-cors\"\n });\n if (this.destroyed)\n return;\n const s = await i.blob();\n if (this.destroyed)\n return;\n const n = await createImageBitmap(s, {\n premultiplyAlpha: this.alphaMode === null || this.alphaMode === te.UNPACK ? \"premultiply\" : \"none\"\n });\n if (this.destroyed) {\n n.close();\n return;\n }\n this.source = n, this.update(), t(this);\n } catch (i) {\n if (this.destroyed)\n return;\n e(i), this.onError.emit(i);\n }\n }), this._load);\n }\n /**\n * Upload the image bitmap resource to GPU.\n * @param renderer - Renderer to upload to\n * @param baseTexture - BaseTexture for this resource\n * @param glTexture - GLTexture to use\n * @returns {boolean} true is success\n */\n upload(t, e, i) {\n return this.source instanceof ImageBitmap ? (typeof this.alphaMode == \"number\" && (e.alphaMode = this.alphaMode), super.upload(t, e, i)) : (this.load(), !1);\n }\n /** Destroys this resource. */\n dispose() {\n this.ownsImageBitmap && this.source instanceof ImageBitmap && this.source.close(), super.dispose(), this._load = null;\n }\n /**\n * Used to auto-detect the type of resource.\n * @param {*} source - The source object\n * @returns {boolean} `true` if current environment support ImageBitmap, and source is string or ImageBitmap\n */\n static test(t) {\n return !!globalThis.createImageBitmap && typeof ImageBitmap < \"u\" && (typeof t == \"string\" || t instanceof ImageBitmap);\n }\n /**\n * ImageBitmap cannot be created synchronously, so a empty placeholder canvas is needed when loading from URLs.\n * Only for internal usage.\n * @returns The cached placeholder canvas.\n */\n static get EMPTY() {\n return pi._EMPTY = pi._EMPTY ?? W.ADAPTER.createCanvas(0, 0), pi._EMPTY;\n }\n}\nconst Oa = class an extends ir {\n /**\n * @param sourceBase64 - Base64 encoded SVG element or URL for SVG file.\n * @param {object} [options] - Options to use\n * @param {number} [options.scale=1] - Scale to apply to SVG. Overridden by...\n * @param {number} [options.width] - Rasterize SVG this wide. Aspect ratio preserved if height not specified.\n * @param {number} [options.height] - Rasterize SVG this high. Aspect ratio preserved if width not specified.\n * @param {boolean} [options.autoLoad=true] - Start loading right away.\n */\n constructor(t, e) {\n e = e || {}, super(W.ADAPTER.createCanvas()), this._width = 0, this._height = 0, this.svg = t, this.scale = e.scale || 1, this._overrideWidth = e.width, this._overrideHeight = e.height, this._resolve = null, this._crossorigin = e.crossorigin, this._load = null, e.autoLoad !== !1 && this.load();\n }\n load() {\n return this._load ? this._load : (this._load = new Promise((t) => {\n if (this._resolve = () => {\n this.update(), t(this);\n }, an.SVG_XML.test(this.svg.trim())) {\n if (!btoa)\n throw new Error(\"Your browser doesn't support base64 conversions.\");\n this.svg = `data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(this.svg)))}`;\n }\n this._loadSvg();\n }), this._load);\n }\n /** Loads an SVG image from `imageUrl` or `data URL`. */\n _loadSvg() {\n const t = new Image();\n ir.crossOrigin(t, this.svg, this._crossorigin), t.src = this.svg, t.onerror = (e) => {\n this._resolve && (t.onerror = null, this.onError.emit(e));\n }, t.onload = () => {\n if (!this._resolve)\n return;\n const e = t.width, i = t.height;\n if (!e || !i)\n throw new Error(\"The SVG image must have width and height defined (in pixels), canvas API needs them.\");\n let s = e * this.scale, n = i * this.scale;\n (this._overrideWidth || this._overrideHeight) && (s = this._overrideWidth || this._overrideHeight / i * e, n = this._overrideHeight || this._overrideWidth / e * i), s = Math.round(s), n = Math.round(n);\n const o = this.source;\n o.width = s, o.height = n, o._pixiId = `canvas_${Xr()}`, o.getContext(\"2d\").drawImage(t, 0, 0, e, i, 0, 0, s, n), this._resolve(), this._resolve = null;\n };\n }\n /**\n * Get size from an svg string using a regular expression.\n * @param svgString - a serialized svg element\n * @returns - image extension\n */\n static getSize(t) {\n const e = an.SVG_SIZE.exec(t), i = {};\n return e && (i[e[1]] = Math.round(parseFloat(e[3])), i[e[5]] = Math.round(parseFloat(e[7]))), i;\n }\n /** Destroys this texture. */\n dispose() {\n super.dispose(), this._resolve = null, this._crossorigin = null;\n }\n /**\n * Used to auto-detect the type of resource.\n * @param {*} source - The source object\n * @param {string} extension - The extension of source, if set\n * @returns {boolean} - If the source is a SVG source or data file\n */\n static test(t, e) {\n return e === \"svg\" || typeof t == \"string\" && t.startsWith(\"data:image/svg+xml\") || typeof t == \"string\" && an.SVG_XML.test(t);\n }\n // eslint-disable-line max-len\n};\nOa.SVG_XML = /^(<\\?xml[^?]+\\?>)?\\s*(<!--[^(-->)]*-->)?\\s*\\<svg/m, /**\n* Regular expression for SVG size.\n* @example <svg width=\"100\" height=\"100\"></svg>\n* @readonly\n*/\nOa.SVG_SIZE = /<svg[^>]*(?:\\s(width|height)=('|\")(\\d*(?:\\.\\d+)?)(?:px)?('|\"))[^>]*(?:\\s(width|height)=('|\")(\\d*(?:\\.\\d+)?)(?:px)?('|\"))[^>]*>/i;\nlet Fa = Oa;\nclass A1 extends ir {\n /**\n * @param source - Image element to use\n */\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(t) {\n super(t);\n }\n /**\n * Used to auto-detect the type of resource.\n * @param {*} source - The source object\n * @returns {boolean} `true` if source is an VideoFrame\n */\n static test(t) {\n return !!globalThis.VideoFrame && t instanceof globalThis.VideoFrame;\n }\n}\nconst La = class Na extends ir {\n /**\n * @param {HTMLVideoElement|object|string|Array<string|object>} source - Video element to use.\n * @param {object} [options] - Options to use\n * @param {boolean} [options.autoLoad=true] - Start loading the video immediately\n * @param {boolean} [options.autoPlay=true] - Start playing video immediately\n * @param {number} [options.updateFPS=0] - How many times a second to update the texture from the video.\n * If 0, `requestVideoFrameCallback` is used to update the texture.\n * If `requestVideoFrameCallback` is not available, the texture is updated every render.\n * @param {boolean} [options.crossorigin=true] - Load image using cross origin\n * @param {boolean} [options.loop=false] - Loops the video\n * @param {boolean} [options.muted=false] - Mutes the video audio, useful for autoplay\n * @param {boolean} [options.playsinline=true] - Prevents opening the video on mobile devices\n */\n constructor(t, e) {\n if (e = e || {}, !(t instanceof HTMLVideoElement)) {\n const i = document.createElement(\"video\");\n e.autoLoad !== !1 && i.setAttribute(\"preload\", \"auto\"), e.playsinline !== !1 && (i.setAttribute(\"webkit-playsinline\", \"\"), i.setAttribute(\"playsinline\", \"\")), e.muted === !0 && (i.setAttribute(\"muted\", \"\"), i.muted = !0), e.loop === !0 && i.setAttribute(\"loop\", \"\"), e.autoPlay !== !1 && i.setAttribute(\"autoplay\", \"\"), typeof t == \"string\" && (t = [t]);\n const s = t[0].src || t[0];\n ir.crossOrigin(i, s, e.crossorigin);\n for (let n = 0; n < t.length; ++n) {\n const o = document.createElement(\"source\");\n let { src: a, mime: l } = t[n];\n if (a = a || t[n], a.startsWith(\"data:\"))\n l = a.slice(5, a.indexOf(\";\"));\n else if (!a.startsWith(\"blob:\")) {\n const h = a.split(\"?\").shift().toLowerCase(), c = h.slice(h.lastIndexOf(\".\") + 1);\n l = l || Na.MIME_TYPES[c] || `video/${c}`;\n }\n o.src = a, l && (o.type = l), i.appendChild(o);\n }\n t = i;\n }\n super(t), this.noSubImage = !0, this._autoUpdate = !0, this._isConnectedToTicker = !1, this._updateFPS = e.updateFPS || 0, this._msToNextUpdate = 0, this.autoPlay = e.autoPlay !== !1, this._videoFrameRequestCallback = this._videoFrameRequestCallback.bind(this), this._videoFrameRequestCallbackHandle = null, this._load = null, this._resolve = null, this._reject = null, this._onCanPlay = this._onCanPlay.bind(this), this._onError = this._onError.bind(this), this._onPlayStart = this._onPlayStart.bind(this), this._onPlayStop = this._onPlayStop.bind(this), this._onSeeked = this._onSeeked.bind(this), e.autoLoad !== !1 && this.load();\n }\n /**\n * Trigger updating of the texture.\n * @param _deltaTime - time delta since last tick\n */\n update(t = 0) {\n if (!this.destroyed) {\n if (this._updateFPS) {\n const e = se.shared.elapsedMS * this.source.playbackRate;\n this._msToNextUpdate = Math.floor(this._msToNextUpdate - e);\n }\n (!this._updateFPS || this._msToNextUpdate <= 0) && (super.update(\n /* deltaTime*/\n ), this._msToNextUpdate = this._updateFPS ? Math.floor(1e3 / this._updateFPS) : 0);\n }\n }\n _videoFrameRequestCallback() {\n this.update(), this.destroyed ? this._videoFrameRequestCallbackHandle = null : this._videoFrameRequestCallbackHandle = this.source.requestVideoFrameCallback(\n this._videoFrameRequestCallback\n );\n }\n /**\n * Start preloading the video resource.\n * @returns {Promise<void>} Handle the validate event\n */\n load() {\n if (this._load)\n return this._load;\n const t = this.source;\n return (t.readyState === t.HAVE_ENOUGH_DATA || t.readyState === t.HAVE_FUTURE_DATA) && t.width && t.height && (t.complete = !0), t.addEventListener(\"play\", this._onPlayStart), t.addEventListener(\"pause\", this._onPlayStop), t.addEventListener(\"seeked\", this._onSeeked), this._isSourceReady() ? this._onCanPlay() : (t.addEventListener(\"canplay\", this._onCanPlay), t.addEventListener(\"canplaythrough\", this._onCanPlay), t.addEventListener(\"error\", this._onError, !0)), this._load = new Promise((e, i) => {\n this.valid ? e(this) : (this._resolve = e, this._reject = i, t.load());\n }), this._load;\n }\n /**\n * Handle video error events.\n * @param event\n */\n _onError(t) {\n this.source.removeEventListener(\"error\", this._onError, !0), this.onError.emit(t), this._reject && (this._reject(t), this._reject = null, this._resolve = null);\n }\n /**\n * Returns true if the underlying source is playing.\n * @returns - True if playing.\n */\n _isSourcePlaying() {\n const t = this.source;\n return !t.paused && !t.ended;\n }\n /**\n * Returns true if the underlying source is ready for playing.\n * @returns - True if ready.\n */\n _isSourceReady() {\n return this.source.readyState > 2;\n }\n /** Runs the update loop when the video is ready to play. */\n _onPlayStart() {\n this.valid || this._onCanPlay(), this._configureAutoUpdate();\n }\n /** Fired when a pause event is triggered, stops the update loop. */\n _onPlayStop() {\n this._configureAutoUpdate();\n }\n /** Fired when the video is completed seeking to the current playback position. */\n _onSeeked() {\n this._autoUpdate && !this._isSourcePlaying() && (this._msToNextUpdate = 0, this.update(), this._msToNextUpdate = 0);\n }\n /** Fired when the video is loaded and ready to play. */\n _onCanPlay() {\n const t = this.source;\n t.removeEventListener(\"canplay\", this._onCanPlay), t.removeEventListener(\"canplaythrough\", this._onCanPlay);\n const e = this.valid;\n this._msToNextUpdate = 0, this.update(), this._msToNextUpdate = 0, !e && this._resolve && (this._resolve(this), this._resolve = null, this._reject = null), this._isSourcePlaying() ? this._onPlayStart() : this.autoPlay && t.play();\n }\n /** Destroys this texture. */\n dispose() {\n this._configureAutoUpdate();\n const t = this.source;\n t && (t.removeEventListener(\"play\", this._onPlayStart), t.removeEventListener(\"pause\", this._onPlayStop), t.removeEventListener(\"seeked\", this._onSeeked), t.removeEventListener(\"canplay\", this._onCanPlay), t.removeEventListener(\"canplaythrough\", this._onCanPlay), t.removeEventListener(\"error\", this._onError, !0), t.pause(), t.src = \"\", t.load()), super.dispose();\n }\n /** Should the base texture automatically update itself, set to true by default. */\n get autoUpdate() {\n return this._autoUpdate;\n }\n set autoUpdate(t) {\n t !== this._autoUpdate && (this._autoUpdate = t, this._configureAutoUpdate());\n }\n /**\n * How many times a second to update the texture from the video. If 0, `requestVideoFrameCallback` is used to\n * update the texture. If `requestVideoFrameCallback` is not available, the texture is updated every render.\n * A lower fps can help performance, as updating the texture at 60fps on a 30ps video may not be efficient.\n */\n get updateFPS() {\n return this._updateFPS;\n }\n set updateFPS(t) {\n t !== this._updateFPS && (this._updateFPS = t, this._configureAutoUpdate());\n }\n _configureAutoUpdate() {\n this._autoUpdate && this._isSourcePlaying() ? !this._updateFPS && this.source.requestVideoFrameCallback ? (this._isConnectedToTicker && (se.shared.remove(this.update, this), this._isConnectedToTicker = !1, this._msToNextUpdate = 0), this._videoFrameRequestCallbackHandle === null && (this._videoFrameRequestCallbackHandle = this.source.requestVideoFrameCallback(\n this._videoFrameRequestCallback\n ))) : (this._videoFrameRequestCallbackHandle !== null && (this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle), this._videoFrameRequestCallbackHandle = null), this._isConnectedToTicker || (se.shared.add(this.update, this), this._isConnectedToTicker = !0, this._msToNextUpdate = 0)) : (this._videoFrameRequestCallbackHandle !== null && (this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle), this._videoFrameRequestCallbackHandle = null), this._isConnectedToTicker && (se.shared.remove(this.update, this), this._isConnectedToTicker = !1, this._msToNextUpdate = 0));\n }\n /**\n * Used to auto-detect the type of resource.\n * @param {*} source - The source object\n * @param {string} extension - The extension of source, if set\n * @returns {boolean} `true` if video source\n */\n static test(t, e) {\n return globalThis.HTMLVideoElement && t instanceof HTMLVideoElement || Na.TYPES.includes(e);\n }\n};\nLa.TYPES = [\"mp4\", \"m4v\", \"webm\", \"ogg\", \"ogv\", \"h264\", \"avi\", \"mov\"], /**\n* Map of video MIME types that can't be directly derived from file extensions.\n* @readonly\n*/\nLa.MIME_TYPES = {\n ogv: \"video/ogg\",\n mov: \"video/quicktime\",\n m4v: \"video/mp4\"\n};\nlet tf = La;\nEa.push(\n pi,\n Td,\n E1,\n tf,\n A1,\n Fa,\n Wn,\n T1,\n w1\n);\nclass Mn {\n constructor() {\n this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, this.rect = null, this.updateID = -1;\n }\n /**\n * Checks if bounds are empty.\n * @returns - True if empty.\n */\n isEmpty() {\n return this.minX > this.maxX || this.minY > this.maxY;\n }\n /** Clears the bounds and resets. */\n clear() {\n this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0;\n }\n /**\n * Can return Rectangle.EMPTY constant, either construct new rectangle, either use your rectangle\n * It is not guaranteed that it will return tempRect\n * @param rect - Temporary object will be used if AABB is not empty\n * @returns - A rectangle of the bounds\n */\n getRectangle(t) {\n return this.minX > this.maxX || this.minY > this.maxY ? it.EMPTY : (t = t || new it(0, 0, 1, 1), t.x = this.minX, t.y = this.minY, t.width = this.maxX - this.minX, t.height = this.maxY - this.minY, t);\n }\n /**\n * This function should be inlined when its possible.\n * @param point - The point to add.\n */\n addPoint(t) {\n this.minX = Math.min(this.minX, t.x), this.maxX = Math.max(this.maxX, t.x), this.minY = Math.min(this.minY, t.y), this.maxY = Math.max(this.maxY, t.y);\n }\n /**\n * Adds a point, after transformed. This should be inlined when its possible.\n * @param matrix\n * @param point\n */\n addPointMatrix(t, e) {\n const { a: i, b: s, c: n, d: o, tx: a, ty: l } = t, h = i * e.x + n * e.y + a, c = s * e.x + o * e.y + l;\n this.minX = Math.min(this.minX, h), this.maxX = Math.max(this.maxX, h), this.minY = Math.min(this.minY, c), this.maxY = Math.max(this.maxY, c);\n }\n /**\n * Adds a quad, not transformed\n * @param vertices - The verts to add.\n */\n addQuad(t) {\n let e = this.minX, i = this.minY, s = this.maxX, n = this.maxY, o = t[0], a = t[1];\n e = o < e ? o : e, i = a < i ? a : i, s = o > s ? o : s, n = a > n ? a : n, o = t[2], a = t[3], e = o < e ? o : e, i = a < i ? a : i, s = o > s ? o : s, n = a > n ? a : n, o = t[4], a = t[5], e = o < e ? o : e, i = a < i ? a : i, s = o > s ? o : s, n = a > n ? a : n, o = t[6], a = t[7], e = o < e ? o : e, i = a < i ? a : i, s = o > s ? o : s, n = a > n ? a : n, this.minX = e, this.minY = i, this.maxX = s, this.maxY = n;\n }\n /**\n * Adds sprite frame, transformed.\n * @param transform - transform to apply\n * @param x0 - left X of frame\n * @param y0 - top Y of frame\n * @param x1 - right X of frame\n * @param y1 - bottom Y of frame\n */\n addFrame(t, e, i, s, n) {\n this.addFrameMatrix(t.worldTransform, e, i, s, n);\n }\n /**\n * Adds sprite frame, multiplied by matrix\n * @param matrix - matrix to apply\n * @param x0 - left X of frame\n * @param y0 - top Y of frame\n * @param x1 - right X of frame\n * @param y1 - bottom Y of frame\n */\n addFrameMatrix(t, e, i, s, n) {\n const o = t.a, a = t.b, l = t.c, h = t.d, c = t.tx, u = t.ty;\n let d = this.minX, f = this.minY, p = this.maxX, m = this.maxY, g = o * e + l * i + c, y = a * e + h * i + u;\n d = g < d ? g : d, f = y < f ? y : f, p = g > p ? g : p, m = y > m ? y : m, g = o * s + l * i + c, y = a * s + h * i + u, d = g < d ? g : d, f = y < f ? y : f, p = g > p ? g : p, m = y > m ? y : m, g = o * e + l * n + c, y = a * e + h * n + u, d = g < d ? g : d, f = y < f ? y : f, p = g > p ? g : p, m = y > m ? y : m, g = o * s + l * n + c, y = a * s + h * n + u, d = g < d ? g : d, f = y < f ? y : f, p = g > p ? g : p, m = y > m ? y : m, this.minX = d, this.minY = f, this.maxX = p, this.maxY = m;\n }\n /**\n * Adds screen vertices from array\n * @param vertexData - calculated vertices\n * @param beginOffset - begin offset\n * @param endOffset - end offset, excluded\n */\n addVertexData(t, e, i) {\n let s = this.minX, n = this.minY, o = this.maxX, a = this.maxY;\n for (let l = e; l < i; l += 2) {\n const h = t[l], c = t[l + 1];\n s = h < s ? h : s, n = c < n ? c : n, o = h > o ? h : o, a = c > a ? c : a;\n }\n this.minX = s, this.minY = n, this.maxX = o, this.maxY = a;\n }\n /**\n * Add an array of mesh vertices\n * @param transform - mesh transform\n * @param vertices - mesh coordinates in array\n * @param beginOffset - begin offset\n * @param endOffset - end offset, excluded\n */\n addVertices(t, e, i, s) {\n this.addVerticesMatrix(t.worldTransform, e, i, s);\n }\n /**\n * Add an array of mesh vertices.\n * @param matrix - mesh matrix\n * @param vertices - mesh coordinates in array\n * @param beginOffset - begin offset\n * @param endOffset - end offset, excluded\n * @param padX - x padding\n * @param padY - y padding\n */\n addVerticesMatrix(t, e, i, s, n = 0, o = n) {\n const a = t.a, l = t.b, h = t.c, c = t.d, u = t.tx, d = t.ty;\n let f = this.minX, p = this.minY, m = this.maxX, g = this.maxY;\n for (let y = i; y < s; y += 2) {\n const x = e[y], _ = e[y + 1], v = a * x + h * _ + u, w = c * _ + l * x + d;\n f = Math.min(f, v - n), m = Math.max(m, v + n), p = Math.min(p, w - o), g = Math.max(g, w + o);\n }\n this.minX = f, this.minY = p, this.maxX = m, this.maxY = g;\n }\n /**\n * Adds other {@link PIXI.Bounds}.\n * @param bounds - The Bounds to be added\n */\n addBounds(t) {\n const e = this.minX, i = this.minY, s = this.maxX, n = this.maxY;\n this.minX = t.minX < e ? t.minX : e, this.minY = t.minY < i ? t.minY : i, this.maxX = t.maxX > s ? t.maxX : s, this.maxY = t.maxY > n ? t.maxY : n;\n }\n /**\n * Adds other Bounds, masked with Bounds.\n * @param bounds - The Bounds to be added.\n * @param mask - TODO\n */\n addBoundsMask(t, e) {\n const i = t.minX > e.minX ? t.minX : e.minX, s = t.minY > e.minY ? t.minY : e.minY, n = t.maxX < e.maxX ? t.maxX : e.maxX, o = t.maxY < e.maxY ? t.maxY : e.maxY;\n if (i <= n && s <= o) {\n const a = this.minX, l = this.minY, h = this.maxX, c = this.maxY;\n this.minX = i < a ? i : a, this.minY = s < l ? s : l, this.maxX = n > h ? n : h, this.maxY = o > c ? o : c;\n }\n }\n /**\n * Adds other Bounds, multiplied by matrix. Bounds shouldn't be empty.\n * @param bounds - other bounds\n * @param matrix - multiplicator\n */\n addBoundsMatrix(t, e) {\n this.addFrameMatrix(e, t.minX, t.minY, t.maxX, t.maxY);\n }\n /**\n * Adds other Bounds, masked with Rectangle.\n * @param bounds - TODO\n * @param area - TODO\n */\n addBoundsArea(t, e) {\n const i = t.minX > e.x ? t.minX : e.x, s = t.minY > e.y ? t.minY : e.y, n = t.maxX < e.x + e.width ? t.maxX : e.x + e.width, o = t.maxY < e.y + e.height ? t.maxY : e.y + e.height;\n if (i <= n && s <= o) {\n const a = this.minX, l = this.minY, h = this.maxX, c = this.maxY;\n this.minX = i < a ? i : a, this.minY = s < l ? s : l, this.maxX = n > h ? n : h, this.maxY = o > c ? o : c;\n }\n }\n /**\n * Pads bounds object, making it grow in all directions.\n * If paddingY is omitted, both paddingX and paddingY will be set to paddingX.\n * @param paddingX - The horizontal padding amount.\n * @param paddingY - The vertical padding amount.\n */\n pad(t = 0, e = t) {\n this.isEmpty() || (this.minX -= t, this.maxX += t, this.minY -= e, this.maxY += e);\n }\n /**\n * Adds padded frame. (x0, y0) should be strictly less than (x1, y1)\n * @param x0 - left X of frame\n * @param y0 - top Y of frame\n * @param x1 - right X of frame\n * @param y1 - bottom Y of frame\n * @param padX - padding X\n * @param padY - padding Y\n */\n addFramePad(t, e, i, s, n, o) {\n t -= n, e -= o, i += n, s += o, this.minX = this.minX < t ? this.minX : t, this.maxX = this.maxX > i ? this.maxX : i, this.minY = this.minY < e ? this.minY : e, this.maxY = this.maxY > s ? this.maxY : s;\n }\n}\nclass It extends ms {\n constructor() {\n super(), this.tempDisplayObjectParent = null, this.transform = new vl(), this.alpha = 1, this.visible = !0, this.renderable = !0, this.cullable = !1, this.cullArea = null, this.parent = null, this.worldAlpha = 1, this._lastSortedIndex = 0, this._zIndex = 0, this.filterArea = null, this.filters = null, this._enabledFilters = null, this._bounds = new Mn(), this._localBounds = null, this._boundsID = 0, this._boundsRect = null, this._localBoundsRect = null, this._mask = null, this._maskRefCount = 0, this._destroyed = !1, this.isSprite = !1, this.isMask = !1;\n }\n /**\n * Mixes all enumerable properties and methods from a source object to DisplayObject.\n * @param source - The source of properties and methods to mix in.\n */\n static mixin(t) {\n const e = Object.keys(t);\n for (let i = 0; i < e.length; ++i) {\n const s = e[i];\n Object.defineProperty(\n It.prototype,\n s,\n Object.getOwnPropertyDescriptor(t, s)\n );\n }\n }\n /**\n * Fired when this DisplayObject is added to a Container.\n * @instance\n * @event added\n * @param {PIXI.Container} container - The container added to.\n */\n /**\n * Fired when this DisplayObject is removed from a Container.\n * @instance\n * @event removed\n * @param {PIXI.Container} container - The container removed from.\n */\n /**\n * Fired when this DisplayObject is destroyed. This event is emitted once\n * destroy is finished.\n * @instance\n * @event destroyed\n */\n /** Readonly flag for destroyed display objects. */\n get destroyed() {\n return this._destroyed;\n }\n /** Recursively updates transform of all objects from the root to this one internal function for toLocal() */\n _recursivePostUpdateTransform() {\n this.parent ? (this.parent._recursivePostUpdateTransform(), this.transform.updateTransform(this.parent.transform)) : this.transform.updateTransform(this._tempDisplayObjectParent.transform);\n }\n /** Updates the object transform for rendering. TODO - Optimization pass! */\n updateTransform() {\n this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha;\n }\n /**\n * Calculates and returns the (world) bounds of the display object as a [Rectangle]{@link PIXI.Rectangle}.\n *\n * This method is expensive on containers with a large subtree (like the stage). This is because the bounds\n * of a container depend on its children's bounds, which recursively causes all bounds in the subtree to\n * be recalculated. The upside, however, is that calling `getBounds` once on a container will indeed update\n * the bounds of all children (the whole subtree, in fact). This side effect should be exploited by using\n * `displayObject._bounds.getRectangle()` when traversing through all the bounds in a scene graph. Otherwise,\n * calling `getBounds` on each object in a subtree will cause the total cost to increase quadratically as\n * its height increases.\n *\n * The transforms of all objects in a container's **subtree** and of all **ancestors** are updated.\n * The world bounds of all display objects in a container's **subtree** will also be recalculated.\n *\n * The `_bounds` object stores the last calculation of the bounds. You can use to entirely skip bounds\n * calculation if needed.\n *\n * ```js\n * const lastCalculatedBounds = displayObject._bounds.getRectangle(optionalRect);\n * ```\n *\n * Do know that usage of `getLocalBounds` can corrupt the `_bounds` of children (the whole subtree, actually). This\n * is a known issue that has not been solved. See [getLocalBounds]{@link PIXI.DisplayObject#getLocalBounds} for more\n * details.\n *\n * `getBounds` should be called with `skipUpdate` equal to `true` in a render() call. This is because the transforms\n * are guaranteed to be update-to-date. In fact, recalculating inside a render() call may cause corruption in certain\n * cases.\n * @param skipUpdate - Setting to `true` will stop the transforms of the scene graph from\n * being updated. This means the calculation returned MAY be out of date BUT will give you a\n * nice performance boost.\n * @param rect - Optional rectangle to store the result of the bounds calculation.\n * @returns - The minimum axis-aligned rectangle in world space that fits around this object.\n */\n getBounds(t, e) {\n return t || (this.parent ? (this._recursivePostUpdateTransform(), this.updateTransform()) : (this.parent = this._tempDisplayObjectParent, this.updateTransform(), this.parent = null)), this._bounds.updateID !== this._boundsID && (this.calculateBounds(), this._bounds.updateID = this._boundsID), e || (this._boundsRect || (this._boundsRect = new it()), e = this._boundsRect), this._bounds.getRectangle(e);\n }\n /**\n * Retrieves the local bounds of the displayObject as a rectangle object.\n * @param rect - Optional rectangle to store the result of the bounds calculation.\n * @returns - The rectangular bounding area.\n */\n getLocalBounds(t) {\n t || (this._localBoundsRect || (this._localBoundsRect = new it()), t = this._localBoundsRect), this._localBounds || (this._localBounds = new Mn());\n const e = this.transform, i = this.parent;\n this.parent = null, this._tempDisplayObjectParent.worldAlpha = (i == null ? void 0 : i.worldAlpha) ?? 1, this.transform = this._tempDisplayObjectParent.transform;\n const s = this._bounds, n = this._boundsID;\n this._bounds = this._localBounds;\n const o = this.getBounds(!1, t);\n return this.parent = i, this.transform = e, this._bounds = s, this._bounds.updateID += this._boundsID - n, o;\n }\n /**\n * Calculates the global position of the display object.\n * @param position - The world origin to calculate from.\n * @param point - A Point object in which to store the value, optional\n * (otherwise will create a new Point).\n * @param skipUpdate - Should we skip the update transform.\n * @returns - A point object representing the position of this object.\n */\n toGlobal(t, e, i = !1) {\n return i || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.apply(t, e);\n }\n /**\n * Calculates the local position of the display object relative to another point.\n * @param position - The world origin to calculate from.\n * @param from - The DisplayObject to calculate the global position from.\n * @param point - A Point object in which to store the value, optional\n * (otherwise will create a new Point).\n * @param skipUpdate - Should we skip the update transform\n * @returns - A point object representing the position of this object\n */\n toLocal(t, e, i, s) {\n return e && (t = e.toGlobal(t, i, s)), s || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.applyInverse(t, i);\n }\n /**\n * Set the parent Container of this DisplayObject.\n * @param container - The Container to add this DisplayObject to.\n * @returns - The Container that this DisplayObject was added to.\n */\n setParent(t) {\n if (!t || !t.addChild)\n throw new Error(\"setParent: Argument must be a Container\");\n return t.addChild(this), t;\n }\n /** Remove the DisplayObject from its parent Container. If the DisplayObject has no parent, do nothing. */\n removeFromParent() {\n var t;\n (t = this.parent) == null || t.removeChild(this);\n }\n /**\n * Convenience function to set the position, scale, skew and pivot at once.\n * @param x - The X position\n * @param y - The Y position\n * @param scaleX - The X scale value\n * @param scaleY - The Y scale value\n * @param rotation - The rotation\n * @param skewX - The X skew value\n * @param skewY - The Y skew value\n * @param pivotX - The X pivot value\n * @param pivotY - The Y pivot value\n * @returns - The DisplayObject instance\n */\n setTransform(t = 0, e = 0, i = 1, s = 1, n = 0, o = 0, a = 0, l = 0, h = 0) {\n return this.position.x = t, this.position.y = e, this.scale.x = i || 1, this.scale.y = s || 1, this.rotation = n, this.skew.x = o, this.skew.y = a, this.pivot.x = l, this.pivot.y = h, this;\n }\n /**\n * Base destroy method for generic display objects. This will automatically\n * remove the display object from its parent Container as well as remove\n * all current event listeners and internal references. Do not use a DisplayObject\n * after calling `destroy()`.\n * @param _options\n */\n destroy(t) {\n this.removeFromParent(), this._destroyed = !0, this.transform = null, this.parent = null, this._bounds = null, this.mask = null, this.cullArea = null, this.filters = null, this.filterArea = null, this.hitArea = null, this.eventMode = \"auto\", this.interactiveChildren = !1, this.emit(\"destroyed\"), this.removeAllListeners();\n }\n /**\n * @protected\n * @member {PIXI.Container}\n */\n get _tempDisplayObjectParent() {\n return this.tempDisplayObjectParent === null && (this.tempDisplayObjectParent = new S1()), this.tempDisplayObjectParent;\n }\n /**\n * Used in Renderer, cacheAsBitmap and other places where you call an `updateTransform` on root.\n *\n * ```js\n * const cacheParent = elem.enableTempParent();\n * elem.updateTransform();\n * elem.disableTempParent(cacheParent);\n * ```\n * @returns - Current parent\n */\n enableTempParent() {\n const t = this.parent;\n return this.parent = this._tempDisplayObjectParent, t;\n }\n /**\n * Pair method for `enableTempParent`\n * @param cacheParent - Actual parent of element\n */\n disableTempParent(t) {\n this.parent = t;\n }\n /**\n * The position of the displayObject on the x axis relative to the local coordinates of the parent.\n * An alias to position.x\n */\n get x() {\n return this.position.x;\n }\n set x(t) {\n this.transform.position.x = t;\n }\n /**\n * The position of the displayObject on the y axis relative to the local coordinates of the parent.\n * An alias to position.y\n */\n get y() {\n return this.position.y;\n }\n set y(t) {\n this.transform.position.y = t;\n }\n /**\n * Current transform of the object based on world (parent) factors.\n * @readonly\n */\n get worldTransform() {\n return this.transform.worldTransform;\n }\n /**\n * Current transform of the object based on local factors: position, scale, other stuff.\n * @readonly\n */\n get localTransform() {\n return this.transform.localTransform;\n }\n /**\n * The coordinate of the object relative to the local coordinates of the parent.\n * @since 4.0.0\n */\n get position() {\n return this.transform.position;\n }\n set position(t) {\n this.transform.position.copyFrom(t);\n }\n /**\n * The scale factors of this object along the local coordinate axes.\n *\n * The default scale is (1, 1).\n * @since 4.0.0\n */\n get scale() {\n return this.transform.scale;\n }\n set scale(t) {\n this.transform.scale.copyFrom(t);\n }\n /**\n * The center of rotation, scaling, and skewing for this display object in its local space. The `position`\n * is the projection of `pivot` in the parent's local space.\n *\n * By default, the pivot is the origin (0, 0).\n * @since 4.0.0\n */\n get pivot() {\n return this.transform.pivot;\n }\n set pivot(t) {\n this.transform.pivot.copyFrom(t);\n }\n /**\n * The skew factor for the object in radians.\n * @since 4.0.0\n */\n get skew() {\n return this.transform.skew;\n }\n set skew(t) {\n this.transform.skew.copyFrom(t);\n }\n /**\n * The rotation of the object in radians.\n * 'rotation' and 'angle' have the same effect on a display object; rotation is in radians, angle is in degrees.\n */\n get rotation() {\n return this.transform.rotation;\n }\n set rotation(t) {\n this.transform.rotation = t;\n }\n /**\n * The angle of the object in degrees.\n * 'rotation' and 'angle' have the same effect on a display object; rotation is in radians, angle is in degrees.\n */\n get angle() {\n return this.transform.rotation * vv;\n }\n set angle(t) {\n this.transform.rotation = t * xv;\n }\n /**\n * The zIndex of the displayObject.\n *\n * If a container has the sortableChildren property set to true, children will be automatically\n * sorted by zIndex value; a higher value will mean it will be moved towards the end of the array,\n * and thus rendered on top of other display objects within the same container.\n * @see PIXI.Container#sortableChildren\n */\n get zIndex() {\n return this._zIndex;\n }\n set zIndex(t) {\n this._zIndex !== t && (this._zIndex = t, this.parent && (this.parent.sortDirty = !0));\n }\n /**\n * Indicates if the object is globally visible.\n * @readonly\n */\n get worldVisible() {\n let t = this;\n do {\n if (!t.visible)\n return !1;\n t = t.parent;\n } while (t);\n return !0;\n }\n /**\n * Sets a mask for the displayObject. A mask is an object that limits the visibility of an\n * object to the shape of the mask applied to it. In PixiJS a regular mask must be a\n * {@link PIXI.Graphics} or a {@link PIXI.Sprite} object. This allows for much faster masking in canvas as it\n * utilities shape clipping. Furthermore, a mask of an object must be in the subtree of its parent.\n * Otherwise, `getLocalBounds` may calculate incorrect bounds, which makes the container's width and height wrong.\n * To remove a mask, set this property to `null`.\n *\n * For sprite mask both alpha and red channel are used. Black mask is the same as transparent mask.\n * @example\n * import { Graphics, Sprite } from 'pixi.js';\n *\n * const graphics = new Graphics();\n * graphics.beginFill(0xFF3300);\n * graphics.drawRect(50, 250, 100, 100);\n * graphics.endFill();\n *\n * const sprite = new Sprite(texture);\n * sprite.mask = graphics;\n * @todo At the moment, CanvasRenderer doesn't support Sprite as mask.\n */\n get mask() {\n return this._mask;\n }\n set mask(t) {\n if (this._mask !== t) {\n if (this._mask) {\n const e = this._mask.isMaskData ? this._mask.maskObject : this._mask;\n e && (e._maskRefCount--, e._maskRefCount === 0 && (e.renderable = !0, e.isMask = !1));\n }\n if (this._mask = t, this._mask) {\n const e = this._mask.isMaskData ? this._mask.maskObject : this._mask;\n e && (e._maskRefCount === 0 && (e.renderable = !1, e.isMask = !0), e._maskRefCount++);\n }\n }\n }\n}\nclass S1 extends It {\n constructor() {\n super(...arguments), this.sortDirty = null;\n }\n}\nIt.prototype.displayObjectUpdateTransform = It.prototype.updateTransform;\nconst C1 = new wt();\nfunction I1(r, t) {\n return r.zIndex === t.zIndex ? r._lastSortedIndex - t._lastSortedIndex : r.zIndex - t.zIndex;\n}\nconst ef = class Ua extends It {\n constructor() {\n super(), this.children = [], this.sortableChildren = Ua.defaultSortableChildren, this.sortDirty = !1;\n }\n /**\n * Overridable method that can be used by Container subclasses whenever the children array is modified.\n * @param _length\n */\n onChildrenChange(t) {\n }\n /**\n * Adds one or more children to the container.\n *\n * Multiple items can be added like so: `myContainer.addChild(thingOne, thingTwo, thingThree)`\n * @param {...PIXI.DisplayObject} children - The DisplayObject(s) to add to the container\n * @returns {PIXI.DisplayObject} - The first child that was added.\n */\n addChild(...t) {\n if (t.length > 1)\n for (let e = 0; e < t.length; e++)\n this.addChild(t[e]);\n else {\n const e = t[0];\n e.parent && e.parent.removeChild(e), e.parent = this, this.sortDirty = !0, e.transform._parentID = -1, this.children.push(e), this._boundsID++, this.onChildrenChange(this.children.length - 1), this.emit(\"childAdded\", e, this, this.children.length - 1), e.emit(\"added\", this);\n }\n return t[0];\n }\n /**\n * Adds a child to the container at a specified index. If the index is out of bounds an error will be thrown.\n * If the child is already in this container, it will be moved to the specified index.\n * @param {PIXI.DisplayObject} child - The child to add.\n * @param {number} index - The absolute index where the child will be positioned at the end of the operation.\n * @returns {PIXI.DisplayObject} The child that was added.\n */\n addChildAt(t, e) {\n if (e < 0 || e > this.children.length)\n throw new Error(`${t}addChildAt: The index ${e} supplied is out of bounds ${this.children.length}`);\n return t.parent && t.parent.removeChild(t), t.parent = this, this.sortDirty = !0, t.transform._parentID = -1, this.children.splice(e, 0, t), this._boundsID++, this.onChildrenChange(e), t.emit(\"added\", this), this.emit(\"childAdded\", t, this, e), t;\n }\n /**\n * Swaps the position of 2 Display Objects within this container.\n * @param child - First display object to swap\n * @param child2 - Second display object to swap\n */\n swapChildren(t, e) {\n if (t === e)\n return;\n const i = this.getChildIndex(t), s = this.getChildIndex(e);\n this.children[i] = e, this.children[s] = t, this.onChildrenChange(i < s ? i : s);\n }\n /**\n * Returns the index position of a child DisplayObject instance\n * @param child - The DisplayObject instance to identify\n * @returns - The index position of the child display object to identify\n */\n getChildIndex(t) {\n const e = this.children.indexOf(t);\n if (e === -1)\n throw new Error(\"The supplied DisplayObject must be a child of the caller\");\n return e;\n }\n /**\n * Changes the position of an existing child in the display object container\n * @param child - The child DisplayObject instance for which you want to change the index number\n * @param index - The resulting index number for the child display object\n */\n setChildIndex(t, e) {\n if (e < 0 || e >= this.children.length)\n throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);\n const i = this.getChildIndex(t);\n xi(this.children, i, 1), this.children.splice(e, 0, t), this.onChildrenChange(e);\n }\n /**\n * Returns the child at the specified index\n * @param index - The index to get the child at\n * @returns - The child at the given index, if any.\n */\n getChildAt(t) {\n if (t < 0 || t >= this.children.length)\n throw new Error(`getChildAt: Index (${t}) does not exist.`);\n return this.children[t];\n }\n /**\n * Removes one or more children from the container.\n * @param {...PIXI.DisplayObject} children - The DisplayObject(s) to remove\n * @returns {PIXI.DisplayObject} The first child that was removed.\n */\n removeChild(...t) {\n if (t.length > 1)\n for (let e = 0; e < t.length; e++)\n this.removeChild(t[e]);\n else {\n const e = t[0], i = this.children.indexOf(e);\n if (i === -1)\n return null;\n e.parent = null, e.transform._parentID = -1, xi(this.children, i, 1), this._boundsID++, this.onChildrenChange(i), e.emit(\"removed\", this), this.emit(\"childRemoved\", e, this, i);\n }\n return t[0];\n }\n /**\n * Removes a child from the specified index position.\n * @param index - The index to get the child from\n * @returns The child that was removed.\n */\n removeChildAt(t) {\n const e = this.getChildAt(t);\n return e.parent = null, e.transform._parentID = -1, xi(this.children, t, 1), this._boundsID++, this.onChildrenChange(t), e.emit(\"removed\", this), this.emit(\"childRemoved\", e, this, t), e;\n }\n /**\n * Removes all children from this container that are within the begin and end indexes.\n * @param beginIndex - The beginning position.\n * @param endIndex - The ending position. Default value is size of the container.\n * @returns - List of removed children\n */\n removeChildren(t = 0, e = this.children.length) {\n const i = t, s = e, n = s - i;\n let o;\n if (n > 0 && n <= s) {\n o = this.children.splice(i, n);\n for (let a = 0; a < o.length; ++a)\n o[a].parent = null, o[a].transform && (o[a].transform._parentID = -1);\n this._boundsID++, this.onChildrenChange(t);\n for (let a = 0; a < o.length; ++a)\n o[a].emit(\"removed\", this), this.emit(\"childRemoved\", o[a], this, a);\n return o;\n } else if (n === 0 && this.children.length === 0)\n return [];\n throw new RangeError(\"removeChildren: numeric values are outside the acceptable range.\");\n }\n /** Sorts children by zIndex. Previous order is maintained for 2 children with the same zIndex. */\n sortChildren() {\n let t = !1;\n for (let e = 0, i = this.children.length; e < i; ++e) {\n const s = this.children[e];\n s._lastSortedIndex = e, !t && s.zIndex !== 0 && (t = !0);\n }\n t && this.children.length > 1 && this.children.sort(I1), this.sortDirty = !1;\n }\n /** Updates the transform on all children of this container for rendering. */\n updateTransform() {\n this.sortableChildren && this.sortDirty && this.sortChildren(), this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha;\n for (let t = 0, e = this.children.length; t < e; ++t) {\n const i = this.children[t];\n i.visible && i.updateTransform();\n }\n }\n /**\n * Recalculates the bounds of the container.\n *\n * This implementation will automatically fit the children's bounds into the calculation. Each child's bounds\n * is limited to its mask's bounds or filterArea, if any is applied.\n */\n calculateBounds() {\n this._bounds.clear(), this._calculateBounds();\n for (let t = 0; t < this.children.length; t++) {\n const e = this.children[t];\n if (!(!e.visible || !e.renderable))\n if (e.calculateBounds(), e._mask) {\n const i = e._mask.isMaskData ? e._mask.maskObject : e._mask;\n i ? (i.calculateBounds(), this._bounds.addBoundsMask(e._bounds, i._bounds)) : this._bounds.addBounds(e._bounds);\n } else\n e.filterArea ? this._bounds.addBoundsArea(e._bounds, e.filterArea) : this._bounds.addBounds(e._bounds);\n }\n this._bounds.updateID = this._boundsID;\n }\n /**\n * Retrieves the local bounds of the displayObject as a rectangle object.\n *\n * Calling `getLocalBounds` may invalidate the `_bounds` of the whole subtree below. If using it inside a render()\n * call, it is advised to call `getBounds()` immediately after to recalculate the world bounds of the subtree.\n * @param rect - Optional rectangle to store the result of the bounds calculation.\n * @param skipChildrenUpdate - Setting to `true` will stop re-calculation of children transforms,\n * it was default behaviour of pixi 4.0-5.2 and caused many problems to users.\n * @returns - The rectangular bounding area.\n */\n getLocalBounds(t, e = !1) {\n const i = super.getLocalBounds(t);\n if (!e)\n for (let s = 0, n = this.children.length; s < n; ++s) {\n const o = this.children[s];\n o.visible && o.updateTransform();\n }\n return i;\n }\n /**\n * Recalculates the content bounds of this object. This should be overriden to\n * calculate the bounds of this specific object (not including children).\n * @protected\n */\n _calculateBounds() {\n }\n /**\n * Renders this object and its children with culling.\n * @protected\n * @param {PIXI.Renderer} renderer - The renderer\n */\n _renderWithCulling(t) {\n const e = t.renderTexture.sourceFrame;\n if (!(e.width > 0 && e.height > 0))\n return;\n let i, s;\n this.cullArea ? (i = this.cullArea, s = this.worldTransform) : this._render !== Ua.prototype._render && (i = this.getBounds(!0));\n const n = t.projection.transform;\n if (n && (s ? (s = C1.copyFrom(s), s.prepend(n)) : s = n), i && e.intersects(i, s))\n this._render(t);\n else if (this.cullArea)\n return;\n for (let o = 0, a = this.children.length; o < a; ++o) {\n const l = this.children[o], h = l.cullable;\n l.cullable = h || !this.cullArea, l.render(t), l.cullable = h;\n }\n }\n /**\n * Renders the object using the WebGL renderer.\n *\n * The [_render]{@link PIXI.Container#_render} method is be overriden for rendering the contents of the\n * container itself. This `render` method will invoke it, and also invoke the `render` methods of all\n * children afterward.\n *\n * If `renderable` or `visible` is false or if `worldAlpha` is not positive or if `cullable` is true and\n * the bounds of this object are out of frame, this implementation will entirely skip rendering.\n * See {@link PIXI.DisplayObject} for choosing between `renderable` or `visible`. Generally,\n * setting alpha to zero is not recommended for purely skipping rendering.\n *\n * When your scene becomes large (especially when it is larger than can be viewed in a single screen), it is\n * advised to employ **culling** to automatically skip rendering objects outside of the current screen.\n * See [cullable]{@link PIXI.DisplayObject#cullable} and [cullArea]{@link PIXI.DisplayObject#cullArea}.\n * Other culling methods might be better suited for a large number static objects; see\n * [@pixi-essentials/cull]{@link https://www.npmjs.com/package/@pixi-essentials/cull} and\n * [pixi-cull]{@link https://www.npmjs.com/package/pixi-cull}.\n *\n * The [renderAdvanced]{@link PIXI.Container#renderAdvanced} method is internally used when when masking or\n * filtering is applied on a container. This does, however, break batching and can affect performance when\n * masking and filtering is applied extensively throughout the scene graph.\n * @param renderer - The renderer\n */\n render(t) {\n var e;\n if (!(!this.visible || this.worldAlpha <= 0 || !this.renderable))\n if (this._mask || (e = this.filters) != null && e.length)\n this.renderAdvanced(t);\n else if (this.cullable)\n this._renderWithCulling(t);\n else {\n this._render(t);\n for (let i = 0, s = this.children.length; i < s; ++i)\n this.children[i].render(t);\n }\n }\n /**\n * Render the object using the WebGL renderer and advanced features.\n * @param renderer - The renderer\n */\n renderAdvanced(t) {\n var n, o, a;\n const e = this.filters, i = this._mask;\n if (e) {\n this._enabledFilters || (this._enabledFilters = []), this._enabledFilters.length = 0;\n for (let l = 0; l < e.length; l++)\n e[l].enabled && this._enabledFilters.push(e[l]);\n }\n const s = e && ((n = this._enabledFilters) == null ? void 0 : n.length) || i && (!i.isMaskData || i.enabled && (i.autoDetect || i.type !== Ot.NONE));\n if (s && t.batch.flush(), e && ((o = this._enabledFilters) != null && o.length) && t.filter.push(this, this._enabledFilters), i && t.mask.push(this, this._mask), this.cullable)\n this._renderWithCulling(t);\n else {\n this._render(t);\n for (let l = 0, h = this.children.length; l < h; ++l)\n this.children[l].render(t);\n }\n s && t.batch.flush(), i && t.mask.pop(this), e && ((a = this._enabledFilters) != null && a.length) && t.filter.pop();\n }\n /**\n * To be overridden by the subclasses.\n * @param _renderer - The renderer\n */\n _render(t) {\n }\n /**\n * Removes all internal references and listeners as well as removes children from the display list.\n * Do not use a Container after calling `destroy`.\n * @param options - Options parameter. A boolean will act as if all options\n * have been set to that value\n * @param {boolean} [options.children=false] - if set to true, all the children will have their destroy\n * method called as well. 'options' will be passed on to those calls.\n * @param {boolean} [options.texture=false] - Only used for child Sprites if options.children is set to true\n * Should it destroy the texture of the child sprite\n * @param {boolean} [options.baseTexture=false] - Only used for child Sprites if options.children is set to true\n * Should it destroy the base texture of the child sprite\n */\n destroy(t) {\n super.destroy(), this.sortDirty = !1;\n const e = typeof t == \"boolean\" ? t : t == null ? void 0 : t.children, i = this.removeChildren(0, this.children.length);\n if (e)\n for (let s = 0; s < i.length; ++s)\n i[s].destroy(t);\n }\n /** The width of the Container, setting this will actually modify the scale to achieve the value set. */\n get width() {\n return this.scale.x * this.getLocalBounds().width;\n }\n set width(t) {\n const e = this.getLocalBounds().width;\n e !== 0 ? this.scale.x = t / e : this.scale.x = 1, this._width = t;\n }\n /** The height of the Container, setting this will actually modify the scale to achieve the value set. */\n get height() {\n return this.scale.y * this.getLocalBounds().height;\n }\n set height(t) {\n const e = this.getLocalBounds().height;\n e !== 0 ? this.scale.y = t / e : this.scale.y = 1, this._height = t;\n }\n};\nef.defaultSortableChildren = !1;\nlet we = ef;\nwe.prototype.containerUpdateTransform = we.prototype.updateTransform;\nObject.defineProperties(W, {\n /**\n * Sets the default value for the container property 'sortableChildren'.\n * @static\n * @name SORTABLE_CHILDREN\n * @memberof PIXI.settings\n * @deprecated since 7.1.0\n * @type {boolean}\n * @see PIXI.Container.defaultSortableChildren\n */\n SORTABLE_CHILDREN: {\n get() {\n return we.defaultSortableChildren;\n },\n set(r) {\n at(\"7.1.0\", \"settings.SORTABLE_CHILDREN is deprecated, use Container.defaultSortableChildren\"), we.defaultSortableChildren = r;\n }\n }\n});\nconst Xi = new ft(), P1 = new Uint16Array([0, 1, 2, 0, 2, 3]);\nclass Fi extends we {\n /** @param texture - The texture for this sprite. */\n constructor(t) {\n super(), this._anchor = new Ke(\n this._onAnchorUpdate,\n this,\n t ? t.defaultAnchor.x : 0,\n t ? t.defaultAnchor.y : 0\n ), this._texture = null, this._width = 0, this._height = 0, this._tintColor = new xt(16777215), this._tintRGB = null, this.tint = 16777215, this.blendMode = J.NORMAL, this._cachedTint = 16777215, this.uvs = null, this.texture = t || Y.EMPTY, this.vertexData = new Float32Array(8), this.vertexTrimmedData = null, this._transformID = -1, this._textureID = -1, this._transformTrimmedID = -1, this._textureTrimmedID = -1, this.indices = P1, this.pluginName = \"batch\", this.isSprite = !0, this._roundPixels = W.ROUND_PIXELS;\n }\n /** When the texture is updated, this event will fire to update the scale and frame. */\n _onTextureUpdate() {\n this._textureID = -1, this._textureTrimmedID = -1, this._cachedTint = 16777215, this._width && (this.scale.x = gr(this.scale.x) * this._width / this._texture.orig.width), this._height && (this.scale.y = gr(this.scale.y) * this._height / this._texture.orig.height);\n }\n /** Called when the anchor position updates. */\n _onAnchorUpdate() {\n this._transformID = -1, this._transformTrimmedID = -1;\n }\n /** Calculates worldTransform * vertices, store it in vertexData. */\n calculateVertices() {\n const t = this._texture;\n if (this._transformID === this.transform._worldID && this._textureID === t._updateID)\n return;\n this._textureID !== t._updateID && (this.uvs = this._texture._uvs.uvsFloat32), this._transformID = this.transform._worldID, this._textureID = t._updateID;\n const e = this.transform.worldTransform, i = e.a, s = e.b, n = e.c, o = e.d, a = e.tx, l = e.ty, h = this.vertexData, c = t.trim, u = t.orig, d = this._anchor;\n let f = 0, p = 0, m = 0, g = 0;\n if (c ? (p = c.x - d._x * u.width, f = p + c.width, g = c.y - d._y * u.height, m = g + c.height) : (p = -d._x * u.width, f = p + u.width, g = -d._y * u.height, m = g + u.height), h[0] = i * p + n * g + a, h[1] = o * g + s * p + l, h[2] = i * f + n * g + a, h[3] = o * g + s * f + l, h[4] = i * f + n * m + a, h[5] = o * m + s * f + l, h[6] = i * p + n * m + a, h[7] = o * m + s * p + l, this._roundPixels) {\n const y = W.RESOLUTION;\n for (let x = 0; x < h.length; ++x)\n h[x] = Math.round(h[x] * y) / y;\n }\n }\n /**\n * Calculates worldTransform * vertices for a non texture with a trim. store it in vertexTrimmedData.\n *\n * This is used to ensure that the true width and height of a trimmed texture is respected.\n */\n calculateTrimmedVertices() {\n if (!this.vertexTrimmedData)\n this.vertexTrimmedData = new Float32Array(8);\n else if (this._transformTrimmedID === this.transform._worldID && this._textureTrimmedID === this._texture._updateID)\n return;\n this._transformTrimmedID = this.transform._worldID, this._textureTrimmedID = this._texture._updateID;\n const t = this._texture, e = this.vertexTrimmedData, i = t.orig, s = this._anchor, n = this.transform.worldTransform, o = n.a, a = n.b, l = n.c, h = n.d, c = n.tx, u = n.ty, d = -s._x * i.width, f = d + i.width, p = -s._y * i.height, m = p + i.height;\n if (e[0] = o * d + l * p + c, e[1] = h * p + a * d + u, e[2] = o * f + l * p + c, e[3] = h * p + a * f + u, e[4] = o * f + l * m + c, e[5] = h * m + a * f + u, e[6] = o * d + l * m + c, e[7] = h * m + a * d + u, this._roundPixels) {\n const g = W.RESOLUTION;\n for (let y = 0; y < e.length; ++y)\n e[y] = Math.round(e[y] * g) / g;\n }\n }\n /**\n *\n * Renders the object using the WebGL renderer\n * @param renderer - The webgl renderer to use.\n */\n _render(t) {\n this.calculateVertices(), t.batch.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this);\n }\n /** Updates the bounds of the sprite. */\n _calculateBounds() {\n const t = this._texture.trim, e = this._texture.orig;\n !t || t.width === e.width && t.height === e.height ? (this.calculateVertices(), this._bounds.addQuad(this.vertexData)) : (this.calculateTrimmedVertices(), this._bounds.addQuad(this.vertexTrimmedData));\n }\n /**\n * Gets the local bounds of the sprite object.\n * @param rect - Optional output rectangle.\n * @returns The bounds.\n */\n getLocalBounds(t) {\n return this.children.length === 0 ? (this._localBounds || (this._localBounds = new Mn()), this._localBounds.minX = this._texture.orig.width * -this._anchor._x, this._localBounds.minY = this._texture.orig.height * -this._anchor._y, this._localBounds.maxX = this._texture.orig.width * (1 - this._anchor._x), this._localBounds.maxY = this._texture.orig.height * (1 - this._anchor._y), t || (this._localBoundsRect || (this._localBoundsRect = new it()), t = this._localBoundsRect), this._localBounds.getRectangle(t)) : super.getLocalBounds.call(this, t);\n }\n /**\n * Tests if a point is inside this sprite\n * @param point - the point to test\n * @returns The result of the test\n */\n containsPoint(t) {\n this.worldTransform.applyInverse(t, Xi);\n const e = this._texture.orig.width, i = this._texture.orig.height, s = -e * this.anchor.x;\n let n = 0;\n return Xi.x >= s && Xi.x < s + e && (n = -i * this.anchor.y, Xi.y >= n && Xi.y < n + i);\n }\n /**\n * Destroys this sprite and optionally its texture and children.\n * @param options - Options parameter. A boolean will act as if all options\n * have been set to that value\n * @param [options.children=false] - if set to true, all the children will have their destroy\n * method called as well. 'options' will be passed on to those calls.\n * @param [options.texture=false] - Should it destroy the current texture of the sprite as well\n * @param [options.baseTexture=false] - Should it destroy the base texture of the sprite as well\n */\n destroy(t) {\n if (super.destroy(t), this._texture.off(\"update\", this._onTextureUpdate, this), this._anchor = null, typeof t == \"boolean\" ? t : t == null ? void 0 : t.texture) {\n const e = typeof t == \"boolean\" ? t : t == null ? void 0 : t.baseTexture;\n this._texture.destroy(!!e);\n }\n this._texture = null;\n }\n // some helper functions..\n /**\n * Helper function that creates a new sprite based on the source you provide.\n * The source can be - frame id, image url, video url, canvas element, video element, base texture\n * @param {string|PIXI.Texture|HTMLImageElement|HTMLVideoElement|ImageBitmap|PIXI.ICanvas} source\n * - Source to create texture from\n * @param {object} [options] - See {@link PIXI.BaseTexture}'s constructor for options.\n * @returns The newly created sprite\n */\n static from(t, e) {\n const i = t instanceof Y ? t : Y.from(t, e);\n return new Fi(i);\n }\n /**\n * If true PixiJS will Math.floor() x/y values when rendering, stopping pixel interpolation.\n *\n * Advantages can include sharper image quality (like text) and faster rendering on canvas.\n * The main disadvantage is movement of objects may appear less smooth.\n *\n * To set the global default, change {@link PIXI.settings.ROUND_PIXELS}.\n * @default false\n */\n set roundPixels(t) {\n this._roundPixels !== t && (this._transformID = -1, this._transformTrimmedID = -1), this._roundPixels = t;\n }\n get roundPixels() {\n return this._roundPixels;\n }\n /** The width of the sprite, setting this will actually modify the scale to achieve the value set. */\n get width() {\n return Math.abs(this.scale.x) * this._texture.orig.width;\n }\n set width(t) {\n const e = gr(this.scale.x) || 1;\n this.scale.x = e * t / this._texture.orig.width, this._width = t;\n }\n /** The height of the sprite, setting this will actually modify the scale to achieve the value set. */\n get height() {\n return Math.abs(this.scale.y) * this._texture.orig.height;\n }\n set height(t) {\n const e = gr(this.scale.y) || 1;\n this.scale.y = e * t / this._texture.orig.height, this._height = t;\n }\n /**\n * The anchor sets the origin point of the sprite. The default value is taken from the {@link PIXI.Texture|Texture}\n * and passed to the constructor.\n *\n * The default is `(0,0)`, this means the sprite's origin is the top left.\n *\n * Setting the anchor to `(0.5,0.5)` means the sprite's origin is centered.\n *\n * Setting the anchor to `(1,1)` would mean the sprite's origin point will be the bottom right corner.\n *\n * If you pass only single parameter, it will set both x and y to the same value as shown in the example below.\n * @example\n * import { Sprite } from 'pixi.js';\n *\n * const sprite = new Sprite(Texture.WHITE);\n * sprite.anchor.set(0.5); // This will set the origin to center. (0.5) is same as (0.5, 0.5).\n */\n get anchor() {\n return this._anchor;\n }\n set anchor(t) {\n this._anchor.copyFrom(t);\n }\n /**\n * The tint applied to the sprite. This is a hex value.\n *\n * A value of 0xFFFFFF will remove any tint effect.\n * @default 0xFFFFFF\n */\n get tint() {\n return this._tintColor.value;\n }\n set tint(t) {\n this._tintColor.setValue(t), this._tintRGB = this._tintColor.toLittleEndianNumber();\n }\n /**\n * Get the tint as a RGB integer.\n * @ignore\n */\n get tintValue() {\n return this._tintColor.toNumber();\n }\n /** The texture that the sprite is using. */\n get texture() {\n return this._texture;\n }\n set texture(t) {\n this._texture !== t && (this._texture && this._texture.off(\"update\", this._onTextureUpdate, this), this._texture = t || Y.EMPTY, this._cachedTint = 16777215, this._textureID = -1, this._textureTrimmedID = -1, t && (t.baseTexture.valid ? this._onTextureUpdate() : t.once(\"update\", this._onTextureUpdate, this)));\n }\n}\nconst rf = new wt();\nIt.prototype._cacheAsBitmap = !1;\nIt.prototype._cacheData = null;\nIt.prototype._cacheAsBitmapResolution = null;\nIt.prototype._cacheAsBitmapMultisample = null;\nclass R1 {\n constructor() {\n this.textureCacheId = null, this.originalRender = null, this.originalRenderCanvas = null, this.originalCalculateBounds = null, this.originalGetLocalBounds = null, this.originalUpdateTransform = null, this.originalDestroy = null, this.originalMask = null, this.originalFilterArea = null, this.originalContainsPoint = null, this.sprite = null;\n }\n}\nObject.defineProperties(It.prototype, {\n /**\n * The resolution to use for cacheAsBitmap. By default this will use the renderer's resolution\n * but can be overriden for performance. Lower values will reduce memory usage at the expense\n * of render quality. A falsey value of `null` or `0` will default to the renderer's resolution.\n * If `cacheAsBitmap` is set to `true`, this will re-render with the new resolution.\n * @member {number|null} cacheAsBitmapResolution\n * @memberof PIXI.DisplayObject#\n * @default null\n */\n cacheAsBitmapResolution: {\n get() {\n return this._cacheAsBitmapResolution;\n },\n set(r) {\n r !== this._cacheAsBitmapResolution && (this._cacheAsBitmapResolution = r, this.cacheAsBitmap && (this.cacheAsBitmap = !1, this.cacheAsBitmap = !0));\n }\n },\n /**\n * The number of samples to use for cacheAsBitmap. If set to `null`, the renderer's\n * sample count is used.\n * If `cacheAsBitmap` is set to `true`, this will re-render with the new number of samples.\n * @member {number|null} cacheAsBitmapMultisample\n * @memberof PIXI.DisplayObject#\n * @default null\n */\n cacheAsBitmapMultisample: {\n get() {\n return this._cacheAsBitmapMultisample;\n },\n set(r) {\n r !== this._cacheAsBitmapMultisample && (this._cacheAsBitmapMultisample = r, this.cacheAsBitmap && (this.cacheAsBitmap = !1, this.cacheAsBitmap = !0));\n }\n },\n /**\n * Set this to true if you want this display object to be cached as a bitmap.\n * This basically takes a snapshot of the display object as it is at that moment. It can\n * provide a performance benefit for complex static displayObjects.\n * To remove simply set this property to `false`\n *\n * IMPORTANT GOTCHA - Make sure that all your textures are preloaded BEFORE setting this property to true\n * as it will take a snapshot of what is currently there. If the textures have not loaded then they will not appear.\n * @member {boolean}\n * @memberof PIXI.DisplayObject#\n */\n cacheAsBitmap: {\n get() {\n return this._cacheAsBitmap;\n },\n set(r) {\n if (this._cacheAsBitmap === r)\n return;\n this._cacheAsBitmap = r;\n let t;\n r ? (this._cacheData || (this._cacheData = new R1()), t = this._cacheData, t.originalRender = this.render, t.originalRenderCanvas = this.renderCanvas, t.originalUpdateTransform = this.updateTransform, t.originalCalculateBounds = this.calculateBounds, t.originalGetLocalBounds = this.getLocalBounds, t.originalDestroy = this.destroy, t.originalContainsPoint = this.containsPoint, t.originalMask = this._mask, t.originalFilterArea = this.filterArea, this.render = this._renderCached, this.renderCanvas = this._renderCachedCanvas, this.destroy = this._cacheAsBitmapDestroy) : (t = this._cacheData, t.sprite && this._destroyCachedDisplayObject(), this.render = t.originalRender, this.renderCanvas = t.originalRenderCanvas, this.calculateBounds = t.originalCalculateBounds, this.getLocalBounds = t.originalGetLocalBounds, this.destroy = t.originalDestroy, this.updateTransform = t.originalUpdateTransform, this.containsPoint = t.originalContainsPoint, this._mask = t.originalMask, this.filterArea = t.originalFilterArea);\n }\n }\n});\nIt.prototype._renderCached = function(r) {\n !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObject(r), this._cacheData.sprite.transform._worldID = this.transform._worldID, this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._render(r));\n};\nIt.prototype._initCachedDisplayObject = function(r) {\n var d, f;\n if ((d = this._cacheData) != null && d.sprite)\n return;\n const t = this.alpha;\n this.alpha = 1, r.batch.flush();\n const e = this.getLocalBounds(new it(), !0);\n if ((f = this.filters) != null && f.length) {\n const p = this.filters[0].padding;\n e.pad(p);\n }\n const i = this.cacheAsBitmapResolution || r.resolution;\n e.ceil(i), e.width = Math.max(e.width, 1 / i), e.height = Math.max(e.height, 1 / i);\n const s = r.renderTexture.current, n = r.renderTexture.sourceFrame.clone(), o = r.renderTexture.destinationFrame.clone(), a = r.projection.transform, l = Wr.create({\n width: e.width,\n height: e.height,\n resolution: i,\n multisample: this.cacheAsBitmapMultisample ?? r.multisample\n }), h = `cacheAsBitmap_${Xr()}`;\n this._cacheData.textureCacheId = h, et.addToCache(l.baseTexture, h), Y.addToCache(l, h);\n const c = this.transform.localTransform.copyTo(rf).invert().translate(-e.x, -e.y);\n this.render = this._cacheData.originalRender, r.render(this, { renderTexture: l, 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;\n const u = new Fi(l);\n 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);\n};\nIt.prototype._renderCachedCanvas = function(r) {\n !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObjectCanvas(r), this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._renderCanvas(r));\n};\nIt.prototype._initCachedDisplayObjectCanvas = function(r) {\n var c;\n if ((c = this._cacheData) != null && c.sprite)\n return;\n const t = this.getLocalBounds(new it(), !0), e = this.alpha;\n this.alpha = 1;\n const i = r.canvasContext.activeContext, s = r._projTransform, n = this.cacheAsBitmapResolution || r.resolution;\n t.ceil(n), t.width = Math.max(t.width, 1 / n), t.height = Math.max(t.height, 1 / n);\n const o = Wr.create({\n width: t.width,\n height: t.height,\n resolution: n\n }), a = `cacheAsBitmap_${Xr()}`;\n this._cacheData.textureCacheId = a, et.addToCache(o.baseTexture, a), Y.addToCache(o, a);\n const l = rf;\n this.transform.localTransform.copyTo(l), l.invert(), l.tx -= t.x, l.ty -= t.y, this.renderCanvas = this._cacheData.originalRenderCanvas, r.render(this, { renderTexture: o, clear: !0, transform: l, 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;\n const h = new Fi(o);\n h.transform.worldTransform = this.transform.worldTransform, h.anchor.x = -(t.x / t.width), h.anchor.y = -(t.y / t.height), h.alpha = e, h._bounds = this._bounds, this._cacheData.sprite = h, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = r._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = h.containsPoint.bind(h);\n};\nIt.prototype._calculateCachedBounds = function() {\n this._bounds.clear(), this._cacheData.sprite.transform._worldID = this.transform._worldID, this._cacheData.sprite._calculateBounds(), this._bounds.updateID = this._boundsID;\n};\nIt.prototype._getCachedLocalBounds = function() {\n return this._cacheData.sprite.getLocalBounds(null);\n};\nIt.prototype._destroyCachedDisplayObject = function() {\n this._cacheData.sprite._texture.destroy(!0), this._cacheData.sprite = null, et.removeFromCache(this._cacheData.textureCacheId), Y.removeFromCache(this._cacheData.textureCacheId), this._cacheData.textureCacheId = null;\n};\nIt.prototype._cacheAsBitmapDestroy = function(r) {\n this.cacheAsBitmap = !1, this.destroy(r);\n};\nIt.prototype.name = null;\nwe.prototype.getChildByName = function(r, t) {\n for (let e = 0, i = this.children.length; e < i; e++)\n if (this.children[e].name === r)\n return this.children[e];\n if (t)\n for (let e = 0, i = this.children.length; e < i; e++) {\n const s = this.children[e];\n if (!s.getChildByName)\n continue;\n const n = s.getChildByName(r, !0);\n if (n)\n return n;\n }\n return null;\n};\nIt.prototype.getGlobalPosition = function(r = new ft(), t = !1) {\n return this.parent ? this.parent.toGlobal(this.position, r, t) : (r.x = this.position.x, r.y = this.position.y), r;\n};\nvar M1 = `varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float uAlpha;\n\nvoid main(void)\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;\n}\n`;\nclass B1 extends Jt {\n /**\n * @param alpha - Amount of alpha from 0 to 1, where 0 is transparent\n */\n constructor(t = 1) {\n super(x1, M1, { uAlpha: 1 }), this.alpha = t;\n }\n /**\n * Coefficient for alpha multiplication\n * @default 1\n */\n get alpha() {\n return this.uniforms.uAlpha;\n }\n set alpha(t) {\n this.uniforms.uAlpha = t;\n }\n}\nconst D1 = {\n 5: [0.153388, 0.221461, 0.250301],\n 7: [0.071303, 0.131514, 0.189879, 0.214607],\n 9: [0.028532, 0.067234, 0.124009, 0.179044, 0.20236],\n 11: [93e-4, 0.028002, 0.065984, 0.121703, 0.175713, 0.198596],\n 13: [2406e-6, 9255e-6, 0.027867, 0.065666, 0.121117, 0.174868, 0.197641],\n 15: [489e-6, 2403e-6, 9246e-6, 0.02784, 0.065602, 0.120999, 0.174697, 0.197448]\n}, O1 = [\n \"varying vec2 vBlurTexCoords[%size%];\",\n \"uniform sampler2D uSampler;\",\n \"void main(void)\",\n \"{\",\n \" gl_FragColor = vec4(0.0);\",\n \" %blur%\",\n \"}\"\n].join(`\n`);\nfunction F1(r) {\n const t = D1[r], e = t.length;\n let i = O1, s = \"\";\n const n = \"gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;\";\n let o;\n for (let a = 0; a < r; a++) {\n let l = n.replace(\"%index%\", a.toString());\n o = a, a >= e && (o = r - a - 1), l = l.replace(\"%value%\", t[o].toString()), s += l, s += `\n`;\n }\n return i = i.replace(\"%blur%\", s), i = i.replace(\"%size%\", r.toString()), i;\n}\nconst L1 = `\n attribute vec2 aVertexPosition;\n\n uniform mat3 projectionMatrix;\n\n uniform float strength;\n\n varying vec2 vBlurTexCoords[%size%];\n\n uniform vec4 inputSize;\n uniform vec4 outputFrame;\n\n vec4 filterVertexPosition( void )\n {\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n }\n\n vec2 filterTextureCoord( void )\n {\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n }\n\n void main(void)\n {\n gl_Position = filterVertexPosition();\n\n vec2 textureCoord = filterTextureCoord();\n %blur%\n }`;\nfunction N1(r, t) {\n const e = Math.ceil(r / 2);\n let i = L1, s = \"\", n;\n t ? n = \"vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * strength, 0.0);\" : n = \"vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * strength);\";\n for (let o = 0; o < r; o++) {\n let a = n.replace(\"%index%\", o.toString());\n a = a.replace(\"%sampleIndex%\", `${o - (e - 1)}.0`), s += a, s += `\n`;\n }\n return i = i.replace(\"%blur%\", s), i = i.replace(\"%size%\", r.toString()), i;\n}\nclass ka extends Jt {\n /**\n * @param horizontal - Do pass along the x-axis (`true`) or y-axis (`false`).\n * @param strength - The strength of the blur filter.\n * @param quality - The quality of the blur filter.\n * @param {number|null} [resolution=PIXI.Filter.defaultResolution] - The resolution of the blur filter.\n * @param kernelSize - The kernelSize of the blur filter.Options: 5, 7, 9, 11, 13, 15.\n */\n constructor(t, e = 8, i = 4, s = Jt.defaultResolution, n = 5) {\n const o = N1(n, t), a = F1(n);\n super(\n // vertex shader\n o,\n // fragment shader\n a\n ), this.horizontal = t, this.resolution = s, this._quality = 0, this.quality = i, this.blur = e;\n }\n /**\n * Applies the filter.\n * @param filterManager - The manager.\n * @param input - The input target.\n * @param output - The output target.\n * @param clearMode - How to clear\n */\n apply(t, e, i, s) {\n if (i ? this.horizontal ? this.uniforms.strength = 1 / i.width * (i.width / e.width) : this.uniforms.strength = 1 / i.height * (i.height / e.height) : this.horizontal ? this.uniforms.strength = 1 / t.renderer.width * (t.renderer.width / e.width) : this.uniforms.strength = 1 / t.renderer.height * (t.renderer.height / e.height), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, this.passes === 1)\n t.applyFilter(this, e, i, s);\n else {\n const n = t.getFilterTexture(), o = t.renderer;\n let a = e, l = n;\n this.state.blend = !1, t.applyFilter(this, a, l, De.CLEAR);\n for (let h = 1; h < this.passes - 1; h++) {\n t.bindAndClear(a, De.BLIT), this.uniforms.uSampler = l;\n const c = l;\n l = a, a = c, o.shader.bind(this), o.geometry.draw(5);\n }\n this.state.blend = !0, t.applyFilter(this, l, i, s), t.returnFilterTexture(n);\n }\n }\n /**\n * Sets the strength of both the blur.\n * @default 16\n */\n get blur() {\n return this.strength;\n }\n set blur(t) {\n this.padding = 1 + Math.abs(t) * 2, this.strength = t;\n }\n /**\n * Sets the quality of the blur by modifying the number of passes. More passes means higher\n * quality bluring but the lower the performance.\n * @default 4\n */\n get quality() {\n return this._quality;\n }\n set quality(t) {\n this._quality = t, this.passes = t;\n }\n}\nclass U1 extends Jt {\n /**\n * @param strength - The strength of the blur filter.\n * @param quality - The quality of the blur filter.\n * @param {number|null} [resolution=PIXI.Filter.defaultResolution] - The resolution of the blur filter.\n * @param kernelSize - The kernelSize of the blur filter.Options: 5, 7, 9, 11, 13, 15.\n */\n constructor(t = 8, e = 4, i = Jt.defaultResolution, s = 5) {\n super(), this._repeatEdgePixels = !1, this.blurXFilter = new ka(!0, t, e, i, s), this.blurYFilter = new ka(!1, t, e, i, s), this.resolution = i, this.quality = e, this.blur = t, this.repeatEdgePixels = !1;\n }\n /**\n * Applies the filter.\n * @param filterManager - The manager.\n * @param input - The input target.\n * @param output - The output target.\n * @param clearMode - How to clear\n */\n apply(t, e, i, s) {\n const n = Math.abs(this.blurXFilter.strength), o = Math.abs(this.blurYFilter.strength);\n if (n && o) {\n const a = t.getFilterTexture();\n this.blurXFilter.apply(t, e, a, De.CLEAR), this.blurYFilter.apply(t, a, i, s), t.returnFilterTexture(a);\n } else\n o ? this.blurYFilter.apply(t, e, i, s) : this.blurXFilter.apply(t, e, i, s);\n }\n updatePadding() {\n this._repeatEdgePixels ? this.padding = 0 : this.padding = Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength)) * 2;\n }\n /**\n * Sets the strength of both the blurX and blurY properties simultaneously\n * @default 2\n */\n get blur() {\n return this.blurXFilter.blur;\n }\n set blur(t) {\n this.blurXFilter.blur = this.blurYFilter.blur = t, this.updatePadding();\n }\n /**\n * Sets the number of passes for blur. More passes means higher quality bluring.\n * @default 1\n */\n get quality() {\n return this.blurXFilter.quality;\n }\n set quality(t) {\n this.blurXFilter.quality = this.blurYFilter.quality = t;\n }\n /**\n * Sets the strength of the blurX property\n * @default 2\n */\n get blurX() {\n return this.blurXFilter.blur;\n }\n set blurX(t) {\n this.blurXFilter.blur = t, this.updatePadding();\n }\n /**\n * Sets the strength of the blurY property\n * @default 2\n */\n get blurY() {\n return this.blurYFilter.blur;\n }\n set blurY(t) {\n this.blurYFilter.blur = t, this.updatePadding();\n }\n /**\n * Sets the blendmode of the filter\n * @default PIXI.BLEND_MODES.NORMAL\n */\n get blendMode() {\n return this.blurYFilter.blendMode;\n }\n set blendMode(t) {\n this.blurYFilter.blendMode = t;\n }\n /**\n * If set to true the edge of the target will be clamped\n * @default false\n */\n get repeatEdgePixels() {\n return this._repeatEdgePixels;\n }\n set repeatEdgePixels(t) {\n this._repeatEdgePixels = t, this.updatePadding();\n }\n}\nvar k1 = `varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float m[20];\nuniform float uAlpha;\n\nvoid main(void)\n{\n vec4 c = texture2D(uSampler, vTextureCoord);\n\n if (uAlpha == 0.0) {\n gl_FragColor = c;\n return;\n }\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (c.a > 0.0) {\n c.rgb /= c.a;\n }\n\n vec4 result;\n\n result.r = (m[0] * c.r);\n result.r += (m[1] * c.g);\n result.r += (m[2] * c.b);\n result.r += (m[3] * c.a);\n result.r += m[4];\n\n result.g = (m[5] * c.r);\n result.g += (m[6] * c.g);\n result.g += (m[7] * c.b);\n result.g += (m[8] * c.a);\n result.g += m[9];\n\n result.b = (m[10] * c.r);\n result.b += (m[11] * c.g);\n result.b += (m[12] * c.b);\n result.b += (m[13] * c.a);\n result.b += m[14];\n\n result.a = (m[15] * c.r);\n result.a += (m[16] * c.g);\n result.a += (m[17] * c.b);\n result.a += (m[18] * c.a);\n result.a += m[19];\n\n vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n // Premultiply alpha again.\n rgb *= result.a;\n\n gl_FragColor = vec4(rgb, result.a);\n}\n`;\nclass Ga extends Jt {\n constructor() {\n const t = {\n m: new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ]),\n uAlpha: 1\n };\n super(Yd, k1, t), this.alpha = 1;\n }\n /**\n * Transforms current matrix and set the new one\n * @param {number[]} matrix - 5x4 matrix\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n _loadMatrix(t, e = !1) {\n let i = t;\n e && (this._multiply(i, this.uniforms.m, t), i = this._colorMatrix(i)), this.uniforms.m = i;\n }\n /**\n * Multiplies two mat5's\n * @private\n * @param out - 5x4 matrix the receiving matrix\n * @param a - 5x4 matrix the first operand\n * @param b - 5x4 matrix the second operand\n * @returns {number[]} 5x4 matrix\n */\n _multiply(t, e, i) {\n return t[0] = e[0] * i[0] + e[1] * i[5] + e[2] * i[10] + e[3] * i[15], t[1] = e[0] * i[1] + e[1] * i[6] + e[2] * i[11] + e[3] * i[16], t[2] = e[0] * i[2] + e[1] * i[7] + e[2] * i[12] + e[3] * i[17], t[3] = e[0] * i[3] + e[1] * i[8] + e[2] * i[13] + e[3] * i[18], t[4] = e[0] * i[4] + e[1] * i[9] + e[2] * i[14] + e[3] * i[19] + e[4], t[5] = e[5] * i[0] + e[6] * i[5] + e[7] * i[10] + e[8] * i[15], t[6] = e[5] * i[1] + e[6] * i[6] + e[7] * i[11] + e[8] * i[16], t[7] = e[5] * i[2] + e[6] * i[7] + e[7] * i[12] + e[8] * i[17], t[8] = e[5] * i[3] + e[6] * i[8] + e[7] * i[13] + e[8] * i[18], t[9] = e[5] * i[4] + e[6] * i[9] + e[7] * i[14] + e[8] * i[19] + e[9], t[10] = e[10] * i[0] + e[11] * i[5] + e[12] * i[10] + e[13] * i[15], t[11] = e[10] * i[1] + e[11] * i[6] + e[12] * i[11] + e[13] * i[16], t[12] = e[10] * i[2] + e[11] * i[7] + e[12] * i[12] + e[13] * i[17], t[13] = e[10] * i[3] + e[11] * i[8] + e[12] * i[13] + e[13] * i[18], t[14] = e[10] * i[4] + e[11] * i[9] + e[12] * i[14] + e[13] * i[19] + e[14], t[15] = e[15] * i[0] + e[16] * i[5] + e[17] * i[10] + e[18] * i[15], t[16] = e[15] * i[1] + e[16] * i[6] + e[17] * i[11] + e[18] * i[16], t[17] = e[15] * i[2] + e[16] * i[7] + e[17] * i[12] + e[18] * i[17], t[18] = e[15] * i[3] + e[16] * i[8] + e[17] * i[13] + e[18] * i[18], t[19] = e[15] * i[4] + e[16] * i[9] + e[17] * i[14] + e[18] * i[19] + e[19], t;\n }\n /**\n * Create a Float32 Array and normalize the offset component to 0-1\n * @param {number[]} matrix - 5x4 matrix\n * @returns {number[]} 5x4 matrix with all values between 0-1\n */\n _colorMatrix(t) {\n const e = new Float32Array(t);\n return e[4] /= 255, e[9] /= 255, e[14] /= 255, e[19] /= 255, e;\n }\n /**\n * Adjusts brightness\n * @param b - value of the brigthness (0-1, where 0 is black)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n brightness(t, e) {\n const i = [\n t,\n 0,\n 0,\n 0,\n 0,\n 0,\n t,\n 0,\n 0,\n 0,\n 0,\n 0,\n t,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(i, e);\n }\n /**\n * Sets each channel on the diagonal of the color matrix.\n * This can be used to achieve a tinting effect on Containers similar to the tint field of some\n * display objects like Sprite, Text, Graphics, and Mesh.\n * @param color - Color of the tint. This is a hex value.\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n tint(t, e) {\n const [i, s, n] = xt.shared.setValue(t).toArray(), o = [\n i,\n 0,\n 0,\n 0,\n 0,\n 0,\n s,\n 0,\n 0,\n 0,\n 0,\n 0,\n n,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(o, e);\n }\n /**\n * Set the matrices in grey scales\n * @param scale - value of the grey (0-1, where 0 is black)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n greyscale(t, e) {\n const i = [\n t,\n t,\n t,\n 0,\n 0,\n t,\n t,\n t,\n 0,\n 0,\n t,\n t,\n t,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(i, e);\n }\n /**\n * Set the black and white matrice.\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n blackAndWhite(t) {\n const e = [\n 0.3,\n 0.6,\n 0.1,\n 0,\n 0,\n 0.3,\n 0.6,\n 0.1,\n 0,\n 0,\n 0.3,\n 0.6,\n 0.1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * Set the hue property of the color\n * @param rotation - in degrees\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n hue(t, e) {\n t = (t || 0) / 180 * Math.PI;\n const i = Math.cos(t), s = Math.sin(t), n = Math.sqrt, o = 1 / 3, a = n(o), l = i + (1 - i) * o, h = o * (1 - i) - a * s, c = o * (1 - i) + a * s, u = o * (1 - i) + a * s, d = i + o * (1 - i), f = o * (1 - i) - a * s, p = o * (1 - i) - a * s, m = o * (1 - i) + a * s, g = i + o * (1 - i), y = [\n l,\n h,\n c,\n 0,\n 0,\n u,\n d,\n f,\n 0,\n 0,\n p,\n m,\n g,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(y, e);\n }\n /**\n * Set the contrast matrix, increase the separation between dark and bright\n * Increase contrast : shadows darker and highlights brighter\n * Decrease contrast : bring the shadows up and the highlights down\n * @param amount - value of the contrast (0-1)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n contrast(t, e) {\n const i = (t || 0) + 1, s = -0.5 * (i - 1), n = [\n i,\n 0,\n 0,\n 0,\n s,\n 0,\n i,\n 0,\n 0,\n s,\n 0,\n 0,\n i,\n 0,\n s,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(n, e);\n }\n /**\n * Set the saturation matrix, increase the separation between colors\n * Increase saturation : increase contrast, brightness, and sharpness\n * @param amount - The saturation amount (0-1)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n saturate(t = 0, e) {\n const i = t * 2 / 3 + 1, s = (i - 1) * -0.5, n = [\n i,\n s,\n s,\n 0,\n 0,\n s,\n i,\n s,\n 0,\n 0,\n s,\n s,\n i,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(n, e);\n }\n /** Desaturate image (remove color) Call the saturate function */\n desaturate() {\n this.saturate(-1);\n }\n /**\n * Negative image (inverse of classic rgb matrix)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n negative(t) {\n const e = [\n -1,\n 0,\n 0,\n 1,\n 0,\n 0,\n -1,\n 0,\n 1,\n 0,\n 0,\n 0,\n -1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * Sepia image\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n sepia(t) {\n const e = [\n 0.393,\n 0.7689999,\n 0.18899999,\n 0,\n 0,\n 0.349,\n 0.6859999,\n 0.16799999,\n 0,\n 0,\n 0.272,\n 0.5339999,\n 0.13099999,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * Color motion picture process invented in 1916 (thanks Dominic Szablewski)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n technicolor(t) {\n const e = [\n 1.9125277891456083,\n -0.8545344976951645,\n -0.09155508482755585,\n 0,\n 11.793603434377337,\n -0.3087833385928097,\n 1.7658908555458428,\n -0.10601743074722245,\n 0,\n -70.35205161461398,\n -0.231103377548616,\n -0.7501899197440212,\n 1.847597816108189,\n 0,\n 30.950940869491138,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * Polaroid filter\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n polaroid(t) {\n const e = [\n 1.438,\n -0.062,\n -0.062,\n 0,\n 0,\n -0.122,\n 1.378,\n -0.122,\n 0,\n 0,\n -0.016,\n -0.016,\n 1.483,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * Filter who transforms : Red -> Blue and Blue -> Red\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n toBGR(t) {\n const e = [\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * Color reversal film introduced by Eastman Kodak in 1935. (thanks Dominic Szablewski)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n kodachrome(t) {\n const e = [\n 1.1285582396593525,\n -0.3967382283601348,\n -0.03992559172921793,\n 0,\n 63.72958762196502,\n -0.16404339962244616,\n 1.0835251566291304,\n -0.05498805115633132,\n 0,\n 24.732407896706203,\n -0.16786010706155763,\n -0.5603416277695248,\n 1.6014850761964943,\n 0,\n 35.62982807460946,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * Brown delicious browni filter (thanks Dominic Szablewski)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n browni(t) {\n const e = [\n 0.5997023498159715,\n 0.34553243048391263,\n -0.2708298674538042,\n 0,\n 47.43192855600873,\n -0.037703249837783157,\n 0.8609577587992641,\n 0.15059552388459913,\n 0,\n -36.96841498319127,\n 0.24113635128153335,\n -0.07441037908422492,\n 0.44972182064877153,\n 0,\n -7.562075277591283,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * Vintage filter (thanks Dominic Szablewski)\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n vintage(t) {\n const e = [\n 0.6279345635605994,\n 0.3202183420819367,\n -0.03965408211312453,\n 0,\n 9.651285835294123,\n 0.02578397704808868,\n 0.6441188644374771,\n 0.03259127616149294,\n 0,\n 7.462829176470591,\n 0.0466055556782719,\n -0.0851232987247891,\n 0.5241648018700465,\n 0,\n 5.159190588235296,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /**\n * We don't know exactly what it does, kind of gradient map, but funny to play with!\n * @param desaturation - Tone values.\n * @param toned - Tone values.\n * @param lightColor - Tone values, example: `0xFFE580`\n * @param darkColor - Tone values, example: `0xFFE580`\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n colorTone(t, e, i, s, n) {\n t = t || 0.2, e = e || 0.15, i = i || 16770432, s = s || 3375104;\n const o = xt.shared, [a, l, h] = o.setValue(i).toArray(), [c, u, d] = o.setValue(s).toArray(), f = [\n 0.3,\n 0.59,\n 0.11,\n 0,\n 0,\n a,\n l,\n h,\n t,\n 0,\n c,\n u,\n d,\n e,\n 0,\n a - c,\n l - u,\n h - d,\n 0,\n 0\n ];\n this._loadMatrix(f, n);\n }\n /**\n * Night effect\n * @param intensity - The intensity of the night effect.\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n night(t, e) {\n t = t || 0.1;\n const i = [\n t * -2,\n -t,\n 0,\n 0,\n 0,\n -t,\n 0,\n t,\n 0,\n 0,\n 0,\n t,\n t * 2,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(i, e);\n }\n /**\n * Predator effect\n *\n * Erase the current matrix by setting a new indepent one\n * @param amount - how much the predator feels his future victim\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n predator(t, e) {\n const i = [\n // row 1\n 11.224130630493164 * t,\n -4.794486999511719 * t,\n -2.8746118545532227 * t,\n 0 * t,\n 0.40342438220977783 * t,\n // row 2\n -3.6330697536468506 * t,\n 9.193157196044922 * t,\n -2.951810836791992 * t,\n 0 * t,\n -1.316135048866272 * t,\n // row 3\n -3.2184197902679443 * t,\n -4.2375030517578125 * t,\n 7.476448059082031 * t,\n 0 * t,\n 0.8044459223747253 * t,\n // row 4\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(i, e);\n }\n /**\n * LSD effect\n *\n * Multiply the current matrix\n * @param multiply - if true, current matrix and matrix are multiplied. If false,\n * just set the current matrix with @param matrix\n */\n lsd(t) {\n const e = [\n 2,\n -0.4,\n 0.5,\n 0,\n 0,\n -0.5,\n 2,\n -0.4,\n 0,\n 0,\n -0.4,\n -0.5,\n 3,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(e, t);\n }\n /** Erase the current matrix by setting the default one. */\n reset() {\n const t = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ];\n this._loadMatrix(t, !1);\n }\n /**\n * The matrix of the color matrix filter\n * @member {number[]}\n * @default [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]\n */\n get matrix() {\n return this.uniforms.m;\n }\n set matrix(t) {\n this.uniforms.m = t;\n }\n /**\n * The opacity value to use when mixing the original and resultant colors.\n *\n * When the value is 0, the original color is used without modification.\n * When the value is 1, the result color is used.\n * When in the range (0, 1) the color is interpolated between the original and result by this amount.\n * @default 1\n */\n get alpha() {\n return this.uniforms.uAlpha;\n }\n set alpha(t) {\n this.uniforms.uAlpha = t;\n }\n}\nGa.prototype.grayscale = Ga.prototype.greyscale;\nvar G1 = `varying vec2 vFilterCoord;\nvarying vec2 vTextureCoord;\n\nuniform vec2 scale;\nuniform mat2 rotation;\nuniform sampler2D uSampler;\nuniform sampler2D mapSampler;\n\nuniform highp vec4 inputSize;\nuniform vec4 inputClamp;\n\nvoid main(void)\n{\n vec4 map = texture2D(mapSampler, vFilterCoord);\n\n map -= 0.5;\n map.xy = scale * inputSize.zw * (rotation * map.xy);\n\n gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), inputClamp.xy, inputClamp.zw));\n}\n`, $1 = `attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\nuniform mat3 filterMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vFilterCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n\tgl_Position = filterVertexPosition();\n\tvTextureCoord = filterTextureCoord();\n\tvFilterCoord = ( filterMatrix * vec3( vTextureCoord, 1.0) ).xy;\n}\n`;\nclass H1 extends Jt {\n /**\n * @param {PIXI.Sprite} sprite - The sprite used for the displacement map. (make sure its added to the scene!)\n * @param scale - The scale of the displacement\n */\n constructor(t, e) {\n const i = new wt();\n t.renderable = !1, super($1, G1, {\n mapSampler: t._texture,\n filterMatrix: i,\n scale: { x: 1, y: 1 },\n rotation: new Float32Array([1, 0, 0, 1])\n }), this.maskSprite = t, this.maskMatrix = i, e == null && (e = 20), this.scale = new ft(e, e);\n }\n /**\n * Applies the filter.\n * @param filterManager - The manager.\n * @param input - The input target.\n * @param output - The output target.\n * @param clearMode - clearMode.\n */\n apply(t, e, i, s) {\n this.uniforms.filterMatrix = t.calculateSpriteMatrix(this.maskMatrix, this.maskSprite), this.uniforms.scale.x = this.scale.x, this.uniforms.scale.y = this.scale.y;\n const n = this.maskSprite.worldTransform, o = Math.sqrt(n.a * n.a + n.b * n.b), a = Math.sqrt(n.c * n.c + n.d * n.d);\n o !== 0 && a !== 0 && (this.uniforms.rotation[0] = n.a / o, this.uniforms.rotation[1] = n.b / o, this.uniforms.rotation[2] = n.c / a, this.uniforms.rotation[3] = n.d / a), t.applyFilter(this, e, i, s);\n }\n /** The texture used for the displacement map. Must be power of 2 sized texture. */\n get map() {\n return this.uniforms.mapSampler;\n }\n set map(t) {\n this.uniforms.mapSampler = t;\n }\n}\nvar X1 = `varying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vFragCoord;\nuniform sampler2D uSampler;\nuniform highp vec4 inputSize;\n\n\n/**\n Basic FXAA implementation based on the code on geeks3d.com with the\n modification that the texture2DLod stuff was removed since it's\n unsupported by WebGL.\n\n --\n\n From:\n https://github.com/mitsuhiko/webgl-meincraft\n\n Copyright (c) 2011 by Armin Ronacher.\n\n Some rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials provided\n with the distribution.\n\n * The names of the contributors may not be used to endorse or\n promote products derived from this software without specific\n prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#ifndef FXAA_REDUCE_MIN\n#define FXAA_REDUCE_MIN (1.0/ 128.0)\n#endif\n#ifndef FXAA_REDUCE_MUL\n#define FXAA_REDUCE_MUL (1.0 / 8.0)\n#endif\n#ifndef FXAA_SPAN_MAX\n#define FXAA_SPAN_MAX 8.0\n#endif\n\n//optimized version for mobile, where dependent\n//texture reads can be a bottleneck\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 inverseVP,\n vec2 v_rgbNW, vec2 v_rgbNE,\n vec2 v_rgbSW, vec2 v_rgbSE,\n vec2 v_rgbM) {\n vec4 color;\n vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;\n vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;\n vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;\n vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;\n vec4 texColor = texture2D(tex, v_rgbM);\n vec3 rgbM = texColor.xyz;\n vec3 luma = vec3(0.299, 0.587, 0.114);\n float lumaNW = dot(rgbNW, luma);\n float lumaNE = dot(rgbNE, luma);\n float lumaSW = dot(rgbSW, luma);\n float lumaSE = dot(rgbSE, luma);\n float lumaM = dot(rgbM, luma);\n float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n\n mediump vec2 dir;\n dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n\n float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\n (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\n\n float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\n dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n dir * rcpDirMin)) * inverseVP;\n\n vec3 rgbA = 0.5 * (\n texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\n texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\n vec3 rgbB = rgbA * 0.5 + 0.25 * (\n texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +\n texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\n\n float lumaB = dot(rgbB, luma);\n if ((lumaB < lumaMin) || (lumaB > lumaMax))\n color = vec4(rgbA, texColor.a);\n else\n color = vec4(rgbB, texColor.a);\n return color;\n}\n\nvoid main() {\n\n vec4 color;\n\n color = fxaa(uSampler, vFragCoord, inputSize.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n gl_FragColor = color;\n}\n`, V1 = `\nattribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vFragCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvoid texcoords(vec2 fragCoord, vec2 inverseVP,\n out vec2 v_rgbNW, out vec2 v_rgbNE,\n out vec2 v_rgbSW, out vec2 v_rgbSE,\n out vec2 v_rgbM) {\n v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\n v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\n v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\n v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\n v_rgbM = vec2(fragCoord * inverseVP);\n}\n\nvoid main(void) {\n\n gl_Position = filterVertexPosition();\n\n vFragCoord = aVertexPosition * outputFrame.zw;\n\n texcoords(vFragCoord, inputSize.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n}\n`;\nclass z1 extends Jt {\n constructor() {\n super(V1, X1);\n }\n}\nvar W1 = `precision highp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uSampler;\n\nfloat rand(vec2 co)\n{\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n float randomValue = rand(gl_FragCoord.xy * uSeed);\n float diff = (randomValue - 0.5) * uNoise;\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (color.a > 0.0) {\n color.rgb /= color.a;\n }\n\n color.r += diff;\n color.g += diff;\n color.b += diff;\n\n // Premultiply alpha again.\n color.rgb *= color.a;\n\n gl_FragColor = color;\n}\n`;\nclass j1 extends Jt {\n /**\n * @param {number} [noise=0.5] - The noise intensity, should be a normalized value in the range [0, 1].\n * @param {number} [seed] - A random seed for the noise generation. Default is `Math.random()`.\n */\n constructor(t = 0.5, e = Math.random()) {\n super(Yd, W1, {\n uNoise: 0,\n uSeed: 0\n }), this.noise = t, this.seed = e;\n }\n /**\n * The amount of noise to apply, this value should be in the range (0, 1].\n * @default 0.5\n */\n get noise() {\n return this.uniforms.uNoise;\n }\n set noise(t) {\n this.uniforms.uNoise = t;\n }\n /** A seed value to apply to the random noise generation. `Math.random()` is a good value to use. */\n get seed() {\n return this.uniforms.uSeed;\n }\n set seed(t) {\n this.uniforms.uSeed = t;\n }\n}\nconst _c = {\n /**\n * @class\n * @memberof PIXI.filters\n * @deprecated since 7.1.0\n * @see PIXI.AlphaFilter\n */\n AlphaFilter: B1,\n /**\n * @class\n * @memberof PIXI.filters\n * @deprecated since 7.1.0\n * @see PIXI.BlurFilter\n */\n BlurFilter: U1,\n /**\n * @class\n * @memberof PIXI.filters\n * @deprecated since 7.1.0\n * @see PIXI.BlurFilterPass\n */\n BlurFilterPass: ka,\n /**\n * @class\n * @memberof PIXI.filters\n * @deprecated since 7.1.0\n * @see PIXI.ColorMatrixFilter\n */\n ColorMatrixFilter: Ga,\n /**\n * @class\n * @memberof PIXI.filters\n * @deprecated since 7.1.0\n * @see PIXI.DisplacementFilter\n */\n DisplacementFilter: H1,\n /**\n * @class\n * @memberof PIXI.filters\n * @deprecated since 7.1.0\n * @see PIXI.FXAAFilter\n */\n FXAAFilter: z1,\n /**\n * @class\n * @memberof PIXI.filters\n * @deprecated since 7.1.0\n * @see PIXI.NoiseFilter\n */\n NoiseFilter: j1\n};\nObject.entries(_c).forEach(([r, t]) => {\n Object.defineProperty(_c, r, {\n get() {\n return at(\"7.1.0\", `filters.${r} has moved to ${r}`), t;\n }\n });\n});\nclass Y1 {\n constructor() {\n this.interactionFrequency = 10, this._deltaTime = 0, this._didMove = !1, this.tickerAdded = !1, this._pauseUpdate = !0;\n }\n /**\n * Initializes the event ticker.\n * @param events - The event system.\n */\n init(t) {\n this.removeTickerListener(), this.events = t, this.interactionFrequency = 10, this._deltaTime = 0, this._didMove = !1, this.tickerAdded = !1, this._pauseUpdate = !0;\n }\n /** Whether to pause the update checks or not. */\n get pauseUpdate() {\n return this._pauseUpdate;\n }\n set pauseUpdate(t) {\n this._pauseUpdate = t;\n }\n /** Adds the ticker listener. */\n addTickerListener() {\n this.tickerAdded || !this.domElement || (se.system.add(this.tickerUpdate, this, Vr.INTERACTION), this.tickerAdded = !0);\n }\n /** Removes the ticker listener. */\n removeTickerListener() {\n this.tickerAdded && (se.system.remove(this.tickerUpdate, this), this.tickerAdded = !1);\n }\n /** Sets flag to not fire extra events when the user has already moved there mouse */\n pointerMoved() {\n this._didMove = !0;\n }\n /** Updates the state of interactive objects. */\n update() {\n if (!this.domElement || this._pauseUpdate)\n return;\n if (this._didMove) {\n this._didMove = !1;\n return;\n }\n const t = this.events.rootPointerEvent;\n this.events.supportsTouchEvents && t.pointerType === \"touch\" || globalThis.document.dispatchEvent(new PointerEvent(\"pointermove\", {\n clientX: t.clientX,\n clientY: t.clientY\n }));\n }\n /**\n * Updates the state of interactive objects if at least {@link PIXI.EventsTicker#interactionFrequency}\n * milliseconds have passed since the last invocation.\n *\n * Invoked by a throttled ticker update from {@link PIXI.Ticker.system}.\n * @param deltaTime - time delta since the last call\n */\n tickerUpdate(t) {\n this._deltaTime += t, !(this._deltaTime < this.interactionFrequency) && (this._deltaTime = 0, this.update());\n }\n}\nconst dr = new Y1();\nclass _s {\n /**\n * @param manager - The event boundary which manages this event. Propagation can only occur\n * within the boundary's jurisdiction.\n */\n constructor(t) {\n this.bubbles = !0, this.cancelBubble = !0, this.cancelable = !1, this.composed = !1, this.defaultPrevented = !1, this.eventPhase = _s.prototype.NONE, this.propagationStopped = !1, this.propagationImmediatelyStopped = !1, this.layer = new ft(), this.page = new ft(), this.NONE = 0, this.CAPTURING_PHASE = 1, this.AT_TARGET = 2, this.BUBBLING_PHASE = 3, this.manager = t;\n }\n /** @readonly */\n get layerX() {\n return this.layer.x;\n }\n /** @readonly */\n get layerY() {\n return this.layer.y;\n }\n /** @readonly */\n get pageX() {\n return this.page.x;\n }\n /** @readonly */\n get pageY() {\n return this.page.y;\n }\n /**\n * Fallback for the deprecated @code{PIXI.InteractionEvent.data}.\n * @deprecated since 7.0.0\n */\n get data() {\n return this;\n }\n /** The propagation path for this event. Alias for {@link PIXI.EventBoundary.propagationPath}. */\n composedPath() {\n return this.manager && (!this.path || this.path[this.path.length - 1] !== this.target) && (this.path = this.target ? this.manager.propagationPath(this.target) : []), this.path;\n }\n /**\n * Unimplemented method included for implementing the DOM interface {@code Event}. It will throw an {@code Error}.\n * @deprecated\n * @param _type\n * @param _bubbles\n * @param _cancelable\n */\n initEvent(t, e, i) {\n throw new Error(\"initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.\");\n }\n /**\n * Unimplemented method included for implementing the DOM interface {@code UIEvent}. It will throw an {@code Error}.\n * @deprecated\n * @param _typeArg\n * @param _bubblesArg\n * @param _cancelableArg\n * @param _viewArg\n * @param _detailArg\n */\n initUIEvent(t, e, i, s, n) {\n throw new Error(\"initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.\");\n }\n /** Prevent default behavior of PixiJS and the user agent. */\n preventDefault() {\n this.nativeEvent instanceof Event && this.nativeEvent.cancelable && this.nativeEvent.preventDefault(), this.defaultPrevented = !0;\n }\n /**\n * Stop this event from propagating to any addition listeners, including on the\n * {@link PIXI.FederatedEventTarget.currentTarget currentTarget} and also the following\n * event targets on the propagation path.\n */\n stopImmediatePropagation() {\n this.propagationImmediatelyStopped = !0;\n }\n /**\n * Stop this event from propagating to the next {@link PIXI.FederatedEventTarget}. The rest of the listeners\n * on the {@link PIXI.FederatedEventTarget.currentTarget currentTarget} will still be notified.\n */\n stopPropagation() {\n this.propagationStopped = !0;\n }\n}\nclass Bn extends _s {\n constructor() {\n super(...arguments), this.client = new ft(), this.movement = new ft(), this.offset = new ft(), this.global = new ft(), this.screen = new ft();\n }\n /** @readonly */\n get clientX() {\n return this.client.x;\n }\n /** @readonly */\n get clientY() {\n return this.client.y;\n }\n /**\n * Alias for {@link PIXI.FederatedMouseEvent.clientX this.clientX}.\n * @readonly\n */\n get x() {\n return this.clientX;\n }\n /**\n * Alias for {@link PIXI.FederatedMouseEvent.clientY this.clientY}.\n * @readonly\n */\n get y() {\n return this.clientY;\n }\n /** @readonly */\n get movementX() {\n return this.movement.x;\n }\n /** @readonly */\n get movementY() {\n return this.movement.y;\n }\n /** @readonly */\n get offsetX() {\n return this.offset.x;\n }\n /** @readonly */\n get offsetY() {\n return this.offset.y;\n }\n /** @readonly */\n get globalX() {\n return this.global.x;\n }\n /** @readonly */\n get globalY() {\n return this.global.y;\n }\n /**\n * The pointer coordinates in the renderer's screen. Alias for {@code screen.x}.\n * @readonly\n */\n get screenX() {\n return this.screen.x;\n }\n /**\n * The pointer coordinates in the renderer's screen. Alias for {@code screen.y}.\n * @readonly\n */\n get screenY() {\n return this.screen.y;\n }\n /**\n * This will return the local coordinates of the specified displayObject for this InteractionData\n * @param {PIXI.DisplayObject} displayObject - The DisplayObject that you would like the local\n * coords off\n * @param {PIXI.IPointData} point - A Point object in which to store the value, optional (otherwise\n * will create a new point)\n * @param {PIXI.IPointData} globalPos - A Point object containing your custom global coords, optional\n * (otherwise will use the current global coords)\n * @returns - A point containing the coordinates of the InteractionData position relative\n * to the DisplayObject\n */\n getLocalPosition(t, e, i) {\n return t.worldTransform.applyInverse(i || this.global, e);\n }\n /**\n * Whether the modifier key was pressed when this event natively occurred.\n * @param key - The modifier key.\n */\n getModifierState(t) {\n return \"getModifierState\" in this.nativeEvent && this.nativeEvent.getModifierState(t);\n }\n /**\n * Not supported.\n * @param _typeArg\n * @param _canBubbleArg\n * @param _cancelableArg\n * @param _viewArg\n * @param _detailArg\n * @param _screenXArg\n * @param _screenYArg\n * @param _clientXArg\n * @param _clientYArg\n * @param _ctrlKeyArg\n * @param _altKeyArg\n * @param _shiftKeyArg\n * @param _metaKeyArg\n * @param _buttonArg\n * @param _relatedTargetArg\n * @deprecated since 7.0.0\n */\n // eslint-disable-next-line max-params\n initMouseEvent(t, e, i, s, n, o, a, l, h, c, u, d, f, p, m) {\n throw new Error(\"Method not implemented.\");\n }\n}\nclass ge extends Bn {\n constructor() {\n super(...arguments), this.width = 0, this.height = 0, this.isPrimary = !1;\n }\n // Only included for completeness for now\n getCoalescedEvents() {\n return this.type === \"pointermove\" || this.type === \"mousemove\" || this.type === \"touchmove\" ? [this] : [];\n }\n // Only included for completeness for now\n getPredictedEvents() {\n throw new Error(\"getPredictedEvents is not supported!\");\n }\n}\nclass wi extends Bn {\n constructor() {\n super(...arguments), this.DOM_DELTA_PIXEL = 0, this.DOM_DELTA_LINE = 1, this.DOM_DELTA_PAGE = 2;\n }\n}\nwi.DOM_DELTA_PIXEL = 0, /** Units specified in lines. */\nwi.DOM_DELTA_LINE = 1, /** Units specified in pages. */\nwi.DOM_DELTA_PAGE = 2;\nconst q1 = 2048, K1 = new ft(), Go = new ft();\nclass Z1 {\n /**\n * @param rootTarget - The holder of the event boundary.\n */\n constructor(t) {\n this.dispatch = new ms(), this.moveOnAll = !1, this.enableGlobalMoveEvents = !0, this.mappingState = {\n trackingData: {}\n }, this.eventPool = /* @__PURE__ */ new Map(), this._allInteractiveElements = [], this._hitElements = [], this._isPointerMoveEvent = !1, this.rootTarget = t, this.hitPruneFn = this.hitPruneFn.bind(this), this.hitTestFn = this.hitTestFn.bind(this), this.mapPointerDown = this.mapPointerDown.bind(this), this.mapPointerMove = this.mapPointerMove.bind(this), this.mapPointerOut = this.mapPointerOut.bind(this), this.mapPointerOver = this.mapPointerOver.bind(this), this.mapPointerUp = this.mapPointerUp.bind(this), this.mapPointerUpOutside = this.mapPointerUpOutside.bind(this), this.mapWheel = this.mapWheel.bind(this), this.mappingTable = {}, this.addEventMapping(\"pointerdown\", this.mapPointerDown), this.addEventMapping(\"pointermove\", this.mapPointerMove), this.addEventMapping(\"pointerout\", this.mapPointerOut), this.addEventMapping(\"pointerleave\", this.mapPointerOut), this.addEventMapping(\"pointerover\", this.mapPointerOver), this.addEventMapping(\"pointerup\", this.mapPointerUp), this.addEventMapping(\"pointerupoutside\", this.mapPointerUpOutside), this.addEventMapping(\"wheel\", this.mapWheel);\n }\n /**\n * Adds an event mapping for the event `type` handled by `fn`.\n *\n * Event mappings can be used to implement additional or custom events. They take an event\n * coming from the upstream scene (or directly from the {@link PIXI.EventSystem}) and dispatch new downstream events\n * generally trickling down and bubbling up to {@link PIXI.EventBoundary.rootTarget this.rootTarget}.\n *\n * To modify the semantics of existing events, the built-in mapping methods of EventBoundary should be overridden\n * instead.\n * @param type - The type of upstream event to map.\n * @param fn - The mapping method. The context of this function must be bound manually, if desired.\n */\n addEventMapping(t, e) {\n this.mappingTable[t] || (this.mappingTable[t] = []), this.mappingTable[t].push({\n fn: e,\n priority: 0\n }), this.mappingTable[t].sort((i, s) => i.priority - s.priority);\n }\n /**\n * Dispatches the given event\n * @param e\n * @param type\n */\n dispatchEvent(t, e) {\n t.propagationStopped = !1, t.propagationImmediatelyStopped = !1, this.propagate(t, e), this.dispatch.emit(e || t.type, t);\n }\n /**\n * Maps the given upstream event through the event boundary and propagates it downstream.\n * @param e\n */\n mapEvent(t) {\n if (!this.rootTarget)\n return;\n const e = this.mappingTable[t.type];\n if (e)\n for (let i = 0, s = e.length; i < s; i++)\n e[i].fn(t);\n else\n console.warn(`[EventBoundary]: Event mapping not defined for ${t.type}`);\n }\n /**\n * Finds the DisplayObject that is the target of a event at the given coordinates.\n *\n * The passed (x,y) coordinates are in the world space above this event boundary.\n * @param x\n * @param y\n */\n hitTest(t, e) {\n dr.pauseUpdate = !0;\n const i = this._isPointerMoveEvent && this.enableGlobalMoveEvents ? \"hitTestMoveRecursive\" : \"hitTestRecursive\", s = this[i](\n this.rootTarget,\n this.rootTarget.eventMode,\n K1.set(t, e),\n this.hitTestFn,\n this.hitPruneFn\n );\n return s && s[0];\n }\n /**\n * Propagate the passed event from from {@link PIXI.EventBoundary.rootTarget this.rootTarget} to its\n * target {@code e.target}.\n * @param e - The event to propagate.\n * @param type\n */\n propagate(t, e) {\n if (!t.target)\n return;\n const i = t.composedPath();\n t.eventPhase = t.CAPTURING_PHASE;\n for (let s = 0, n = i.length - 1; s < n; s++)\n if (t.currentTarget = i[s], this.notifyTarget(t, e), t.propagationStopped || t.propagationImmediatelyStopped)\n return;\n if (t.eventPhase = t.AT_TARGET, t.currentTarget = t.target, this.notifyTarget(t, e), !(t.propagationStopped || t.propagationImmediatelyStopped)) {\n t.eventPhase = t.BUBBLING_PHASE;\n for (let s = i.length - 2; s >= 0; s--)\n if (t.currentTarget = i[s], this.notifyTarget(t, e), t.propagationStopped || t.propagationImmediatelyStopped)\n return;\n }\n }\n /**\n * Emits the event {@code e} to all interactive display objects. The event is propagated in the bubbling phase always.\n *\n * This is used in the `globalpointermove` event.\n * @param e - The emitted event.\n * @param type - The listeners to notify.\n * @param targets - The targets to notify.\n */\n all(t, e, i = this._allInteractiveElements) {\n if (i.length === 0)\n return;\n t.eventPhase = t.BUBBLING_PHASE;\n const s = Array.isArray(e) ? e : [e];\n for (let n = i.length - 1; n >= 0; n--)\n s.forEach((o) => {\n t.currentTarget = i[n], this.notifyTarget(t, o);\n });\n }\n /**\n * Finds the propagation path from {@link PIXI.EventBoundary.rootTarget rootTarget} to the passed\n * {@code target}. The last element in the path is {@code target}.\n * @param target\n */\n propagationPath(t) {\n const e = [t];\n for (let i = 0; i < q1 && t !== this.rootTarget; i++) {\n if (!t.parent)\n throw new Error(\"Cannot find propagation path to disconnected target\");\n e.push(t.parent), t = t.parent;\n }\n return e.reverse(), e;\n }\n hitTestMoveRecursive(t, e, i, s, n, o = !1) {\n let a = !1;\n if (this._interactivePrune(t))\n return null;\n if ((t.eventMode === \"dynamic\" || e === \"dynamic\") && (dr.pauseUpdate = !1), t.interactiveChildren && t.children) {\n const c = t.children;\n for (let u = c.length - 1; u >= 0; u--) {\n const d = c[u], f = this.hitTestMoveRecursive(\n d,\n this._isInteractive(e) ? e : d.eventMode,\n i,\n s,\n n,\n o || n(t, i)\n );\n if (f) {\n if (f.length > 0 && !f[f.length - 1].parent)\n continue;\n const p = t.isInteractive();\n (f.length > 0 || p) && (p && this._allInteractiveElements.push(t), f.push(t)), this._hitElements.length === 0 && (this._hitElements = f), a = !0;\n }\n }\n }\n const l = this._isInteractive(e), h = t.isInteractive();\n return l && h && this._allInteractiveElements.push(t), o || this._hitElements.length > 0 ? null : a ? this._hitElements : l && !n(t, i) && s(t, i) ? h ? [t] : [] : null;\n }\n /**\n * Recursive implementation for {@link PIXI.EventBoundary.hitTest hitTest}.\n * @param currentTarget - The DisplayObject that is to be hit tested.\n * @param eventMode - The event mode for the `currentTarget` or one of its parents.\n * @param location - The location that is being tested for overlap.\n * @param testFn - Callback that determines whether the target passes hit testing. This callback\n * can assume that `pruneFn` failed to prune the display object.\n * @param pruneFn - Callback that determiness whether the target and all of its children\n * cannot pass the hit test. It is used as a preliminary optimization to prune entire subtrees\n * of the scene graph.\n * @returns An array holding the hit testing target and all its ancestors in order. The first element\n * is the target itself and the last is {@link PIXI.EventBoundary.rootTarget rootTarget}. This is the opposite\n * order w.r.t. the propagation path. If no hit testing target is found, null is returned.\n */\n hitTestRecursive(t, e, i, s, n) {\n if (this._interactivePrune(t) || n(t, i))\n return null;\n if ((t.eventMode === \"dynamic\" || e === \"dynamic\") && (dr.pauseUpdate = !1), t.interactiveChildren && t.children) {\n const l = t.children;\n for (let h = l.length - 1; h >= 0; h--) {\n const c = l[h], u = this.hitTestRecursive(\n c,\n this._isInteractive(e) ? e : c.eventMode,\n i,\n s,\n n\n );\n if (u) {\n if (u.length > 0 && !u[u.length - 1].parent)\n continue;\n const d = t.isInteractive();\n return (u.length > 0 || d) && u.push(t), u;\n }\n }\n }\n const o = this._isInteractive(e), a = t.isInteractive();\n return o && s(t, i) ? a ? [t] : [] : null;\n }\n _isInteractive(t) {\n return t === \"static\" || t === \"dynamic\";\n }\n _interactivePrune(t) {\n return !!(!t || t.isMask || !t.visible || !t.renderable || t.eventMode === \"none\" || t.eventMode === \"passive\" && !t.interactiveChildren || t.isMask);\n }\n /**\n * Checks whether the display object or any of its children cannot pass the hit test at all.\n *\n * {@link PIXI.EventBoundary}'s implementation uses the {@link PIXI.DisplayObject.hitArea hitArea}\n * and {@link PIXI.DisplayObject._mask} for pruning.\n * @param displayObject\n * @param location\n */\n hitPruneFn(t, e) {\n var i;\n if (t.hitArea && (t.worldTransform.applyInverse(e, Go), !t.hitArea.contains(Go.x, Go.y)))\n return !0;\n if (t._mask) {\n const s = t._mask.isMaskData ? t._mask.maskObject : t._mask;\n if (s && !((i = s.containsPoint) != null && i.call(s, e)))\n return !0;\n }\n return !1;\n }\n /**\n * Checks whether the display object passes hit testing for the given location.\n * @param displayObject\n * @param location\n * @returns - Whether `displayObject` passes hit testing for `location`.\n */\n hitTestFn(t, e) {\n return t.eventMode === \"passive\" ? !1 : t.hitArea ? !0 : t.containsPoint ? t.containsPoint(e) : !1;\n }\n /**\n * Notify all the listeners to the event's `currentTarget`.\n *\n * If the `currentTarget` contains the property `on<type>`, then it is called here,\n * simulating the behavior from version 6.x and prior.\n * @param e - The event passed to the target.\n * @param type\n */\n notifyTarget(t, e) {\n var n, o;\n e = e ?? t.type;\n const i = `on${e}`;\n (o = (n = t.currentTarget)[i]) == null || o.call(n, t);\n const s = t.eventPhase === t.CAPTURING_PHASE || t.eventPhase === t.AT_TARGET ? `${e}capture` : e;\n this.notifyListeners(t, s), t.eventPhase === t.AT_TARGET && this.notifyListeners(t, e);\n }\n /**\n * Maps the upstream `pointerdown` events to a downstream `pointerdown` event.\n *\n * `touchstart`, `rightdown`, `mousedown` events are also dispatched for specific pointer types.\n * @param from\n */\n mapPointerDown(t) {\n if (!(t instanceof ge)) {\n console.warn(\"EventBoundary cannot map a non-pointer event as a pointer event\");\n return;\n }\n const e = this.createPointerEvent(t);\n if (this.dispatchEvent(e, \"pointerdown\"), e.pointerType === \"touch\")\n this.dispatchEvent(e, \"touchstart\");\n else if (e.pointerType === \"mouse\" || e.pointerType === \"pen\") {\n const s = e.button === 2;\n this.dispatchEvent(e, s ? \"rightdown\" : \"mousedown\");\n }\n const i = this.trackingData(t.pointerId);\n i.pressTargetsByButton[t.button] = e.composedPath(), this.freeEvent(e);\n }\n /**\n * Maps the upstream `pointermove` to downstream `pointerout`, `pointerover`, and `pointermove` events, in that order.\n *\n * The tracking data for the specific pointer has an updated `overTarget`. `mouseout`, `mouseover`,\n * `mousemove`, and `touchmove` events are fired as well for specific pointer types.\n * @param from - The upstream `pointermove` event.\n */\n mapPointerMove(t) {\n var l, h;\n if (!(t instanceof ge)) {\n console.warn(\"EventBoundary cannot map a non-pointer event as a pointer event\");\n return;\n }\n this._allInteractiveElements.length = 0, this._hitElements.length = 0, this._isPointerMoveEvent = !0;\n const e = this.createPointerEvent(t);\n this._isPointerMoveEvent = !1;\n const i = e.pointerType === \"mouse\" || e.pointerType === \"pen\", s = this.trackingData(t.pointerId), n = this.findMountedTarget(s.overTargets);\n if (((l = s.overTargets) == null ? void 0 : l.length) > 0 && n !== e.target) {\n const c = t.type === \"mousemove\" ? \"mouseout\" : \"pointerout\", u = this.createPointerEvent(t, c, n);\n if (this.dispatchEvent(u, \"pointerout\"), i && this.dispatchEvent(u, \"mouseout\"), !e.composedPath().includes(n)) {\n const d = this.createPointerEvent(t, \"pointerleave\", n);\n for (d.eventPhase = d.AT_TARGET; d.target && !e.composedPath().includes(d.target); )\n d.currentTarget = d.target, this.notifyTarget(d), i && this.notifyTarget(d, \"mouseleave\"), d.target = d.target.parent;\n this.freeEvent(d);\n }\n this.freeEvent(u);\n }\n if (n !== e.target) {\n const c = t.type === \"mousemove\" ? \"mouseover\" : \"pointerover\", u = this.clonePointerEvent(e, c);\n this.dispatchEvent(u, \"pointerover\"), i && this.dispatchEvent(u, \"mouseover\");\n let d = n == null ? void 0 : n.parent;\n for (; d && d !== this.rootTarget.parent && d !== e.target; )\n d = d.parent;\n if (!d || d === this.rootTarget.parent) {\n const f = this.clonePointerEvent(e, \"pointerenter\");\n for (f.eventPhase = f.AT_TARGET; f.target && f.target !== n && f.target !== this.rootTarget.parent; )\n f.currentTarget = f.target, this.notifyTarget(f), i && this.notifyTarget(f, \"mouseenter\"), f.target = f.target.parent;\n this.freeEvent(f);\n }\n this.freeEvent(u);\n }\n const o = [], a = this.enableGlobalMoveEvents ?? !0;\n this.moveOnAll ? o.push(\"pointermove\") : this.dispatchEvent(e, \"pointermove\"), a && o.push(\"globalpointermove\"), e.pointerType === \"touch\" && (this.moveOnAll ? o.splice(1, 0, \"touchmove\") : this.dispatchEvent(e, \"touchmove\"), a && o.push(\"globaltouchmove\")), i && (this.moveOnAll ? o.splice(1, 0, \"mousemove\") : this.dispatchEvent(e, \"mousemove\"), a && o.push(\"globalmousemove\"), this.cursor = (h = e.target) == null ? void 0 : h.cursor), o.length > 0 && this.all(e, o), this._allInteractiveElements.length = 0, this._hitElements.length = 0, s.overTargets = e.composedPath(), this.freeEvent(e);\n }\n /**\n * Maps the upstream `pointerover` to downstream `pointerover` and `pointerenter` events, in that order.\n *\n * The tracking data for the specific pointer gets a new `overTarget`.\n * @param from - The upstream `pointerover` event.\n */\n mapPointerOver(t) {\n var o;\n if (!(t instanceof ge)) {\n console.warn(\"EventBoundary cannot map a non-pointer event as a pointer event\");\n return;\n }\n const e = this.trackingData(t.pointerId), i = this.createPointerEvent(t), s = i.pointerType === \"mouse\" || i.pointerType === \"pen\";\n this.dispatchEvent(i, \"pointerover\"), s && this.dispatchEvent(i, \"mouseover\"), i.pointerType === \"mouse\" && (this.cursor = (o = i.target) == null ? void 0 : o.cursor);\n const n = this.clonePointerEvent(i, \"pointerenter\");\n for (n.eventPhase = n.AT_TARGET; n.target && n.target !== this.rootTarget.parent; )\n n.currentTarget = n.target, this.notifyTarget(n), s && this.notifyTarget(n, \"mouseenter\"), n.target = n.target.parent;\n e.overTargets = i.composedPath(), this.freeEvent(i), this.freeEvent(n);\n }\n /**\n * Maps the upstream `pointerout` to downstream `pointerout`, `pointerleave` events, in that order.\n *\n * The tracking data for the specific pointer is cleared of a `overTarget`.\n * @param from - The upstream `pointerout` event.\n */\n mapPointerOut(t) {\n if (!(t instanceof ge)) {\n console.warn(\"EventBoundary cannot map a non-pointer event as a pointer event\");\n return;\n }\n const e = this.trackingData(t.pointerId);\n if (e.overTargets) {\n const i = t.pointerType === \"mouse\" || t.pointerType === \"pen\", s = this.findMountedTarget(e.overTargets), n = this.createPointerEvent(t, \"pointerout\", s);\n this.dispatchEvent(n), i && this.dispatchEvent(n, \"mouseout\");\n const o = this.createPointerEvent(t, \"pointerleave\", s);\n for (o.eventPhase = o.AT_TARGET; o.target && o.target !== this.rootTarget.parent; )\n o.currentTarget = o.target, this.notifyTarget(o), i && this.notifyTarget(o, \"mouseleave\"), o.target = o.target.parent;\n e.overTargets = null, this.freeEvent(n), this.freeEvent(o);\n }\n this.cursor = null;\n }\n /**\n * Maps the upstream `pointerup` event to downstream `pointerup`, `pointerupoutside`,\n * and `click`/`rightclick`/`pointertap` events, in that order.\n *\n * The `pointerupoutside` event bubbles from the original `pointerdown` target to the most specific\n * ancestor of the `pointerdown` and `pointerup` targets, which is also the `click` event's target. `touchend`,\n * `rightup`, `mouseup`, `touchendoutside`, `rightupoutside`, `mouseupoutside`, and `tap` are fired as well for\n * specific pointer types.\n * @param from - The upstream `pointerup` event.\n */\n mapPointerUp(t) {\n if (!(t instanceof ge)) {\n console.warn(\"EventBoundary cannot map a non-pointer event as a pointer event\");\n return;\n }\n const e = performance.now(), i = this.createPointerEvent(t);\n if (this.dispatchEvent(i, \"pointerup\"), i.pointerType === \"touch\")\n this.dispatchEvent(i, \"touchend\");\n else if (i.pointerType === \"mouse\" || i.pointerType === \"pen\") {\n const a = i.button === 2;\n this.dispatchEvent(i, a ? \"rightup\" : \"mouseup\");\n }\n const s = this.trackingData(t.pointerId), n = this.findMountedTarget(s.pressTargetsByButton[t.button]);\n let o = n;\n if (n && !i.composedPath().includes(n)) {\n let a = n;\n for (; a && !i.composedPath().includes(a); ) {\n if (i.currentTarget = a, this.notifyTarget(i, \"pointerupoutside\"), i.pointerType === \"touch\")\n this.notifyTarget(i, \"touchendoutside\");\n else if (i.pointerType === \"mouse\" || i.pointerType === \"pen\") {\n const l = i.button === 2;\n this.notifyTarget(i, l ? \"rightupoutside\" : \"mouseupoutside\");\n }\n a = a.parent;\n }\n delete s.pressTargetsByButton[t.button], o = a;\n }\n if (o) {\n const a = this.clonePointerEvent(i, \"click\");\n a.target = o, a.path = null, s.clicksByButton[t.button] || (s.clicksByButton[t.button] = {\n clickCount: 0,\n target: a.target,\n timeStamp: e\n });\n const l = s.clicksByButton[t.button];\n if (l.target === a.target && e - l.timeStamp < 200 ? ++l.clickCount : l.clickCount = 1, l.target = a.target, l.timeStamp = e, a.detail = l.clickCount, a.pointerType === \"mouse\") {\n const h = a.button === 2;\n this.dispatchEvent(a, h ? \"rightclick\" : \"click\");\n } else\n a.pointerType === \"touch\" && this.dispatchEvent(a, \"tap\");\n this.dispatchEvent(a, \"pointertap\"), this.freeEvent(a);\n }\n this.freeEvent(i);\n }\n /**\n * Maps the upstream `pointerupoutside` event to a downstream `pointerupoutside` event, bubbling from the original\n * `pointerdown` target to `rootTarget`.\n *\n * (The most specific ancestor of the `pointerdown` event and the `pointerup` event must the\n * `{@link PIXI.EventBoundary}'s root because the `pointerup` event occurred outside of the boundary.)\n *\n * `touchendoutside`, `mouseupoutside`, and `rightupoutside` events are fired as well for specific pointer\n * types. The tracking data for the specific pointer is cleared of a `pressTarget`.\n * @param from - The upstream `pointerupoutside` event.\n */\n mapPointerUpOutside(t) {\n if (!(t instanceof ge)) {\n console.warn(\"EventBoundary cannot map a non-pointer event as a pointer event\");\n return;\n }\n const e = this.trackingData(t.pointerId), i = this.findMountedTarget(e.pressTargetsByButton[t.button]), s = this.createPointerEvent(t);\n if (i) {\n let n = i;\n for (; n; )\n s.currentTarget = n, this.notifyTarget(s, \"pointerupoutside\"), s.pointerType === \"touch\" ? this.notifyTarget(s, \"touchendoutside\") : (s.pointerType === \"mouse\" || s.pointerType === \"pen\") && this.notifyTarget(s, s.button === 2 ? \"rightupoutside\" : \"mouseupoutside\"), n = n.parent;\n delete e.pressTargetsByButton[t.button];\n }\n this.freeEvent(s);\n }\n /**\n * Maps the upstream `wheel` event to a downstream `wheel` event.\n * @param from - The upstream `wheel` event.\n */\n mapWheel(t) {\n if (!(t instanceof wi)) {\n console.warn(\"EventBoundary cannot map a non-wheel event as a wheel event\");\n return;\n }\n const e = this.createWheelEvent(t);\n this.dispatchEvent(e), this.freeEvent(e);\n }\n /**\n * Finds the most specific event-target in the given propagation path that is still mounted in the scene graph.\n *\n * This is used to find the correct `pointerup` and `pointerout` target in the case that the original `pointerdown`\n * or `pointerover` target was unmounted from the scene graph.\n * @param propagationPath - The propagation path was valid in the past.\n * @returns - The most specific event-target still mounted at the same location in the scene graph.\n */\n findMountedTarget(t) {\n if (!t)\n return null;\n let e = t[0];\n for (let i = 1; i < t.length && t[i].parent === e; i++)\n e = t[i];\n return e;\n }\n /**\n * Creates an event whose {@code originalEvent} is {@code from}, with an optional `type` and `target` override.\n *\n * The event is allocated using {@link PIXI.EventBoundary#allocateEvent this.allocateEvent}.\n * @param from - The {@code originalEvent} for the returned event.\n * @param [type=from.type] - The type of the returned event.\n * @param target - The target of the returned event.\n */\n createPointerEvent(t, e, i) {\n const s = this.allocateEvent(ge);\n return this.copyPointerData(t, s), this.copyMouseData(t, s), this.copyData(t, s), s.nativeEvent = t.nativeEvent, s.originalEvent = t, s.target = i ?? this.hitTest(s.global.x, s.global.y) ?? this._hitElements[0], typeof e == \"string\" && (s.type = e), s;\n }\n /**\n * Creates a wheel event whose {@code originalEvent} is {@code from}.\n *\n * The event is allocated using {@link PIXI.EventBoundary#allocateEvent this.allocateEvent}.\n * @param from - The upstream wheel event.\n */\n createWheelEvent(t) {\n const e = this.allocateEvent(wi);\n return this.copyWheelData(t, e), this.copyMouseData(t, e), this.copyData(t, e), e.nativeEvent = t.nativeEvent, e.originalEvent = t, e.target = this.hitTest(e.global.x, e.global.y), e;\n }\n /**\n * Clones the event {@code from}, with an optional {@code type} override.\n *\n * The event is allocated using {@link PIXI.EventBoundary#allocateEvent this.allocateEvent}.\n * @param from - The event to clone.\n * @param [type=from.type] - The type of the returned event.\n */\n clonePointerEvent(t, e) {\n const i = this.allocateEvent(ge);\n return i.nativeEvent = t.nativeEvent, i.originalEvent = t.originalEvent, this.copyPointerData(t, i), this.copyMouseData(t, i), this.copyData(t, i), i.target = t.target, i.path = t.composedPath().slice(), i.type = e ?? i.type, i;\n }\n /**\n * Copies wheel {@link PIXI.FederatedWheelEvent} data from {@code from} into {@code to}.\n *\n * The following properties are copied:\n * + deltaMode\n * + deltaX\n * + deltaY\n * + deltaZ\n * @param from\n * @param to\n */\n copyWheelData(t, e) {\n e.deltaMode = t.deltaMode, e.deltaX = t.deltaX, e.deltaY = t.deltaY, e.deltaZ = t.deltaZ;\n }\n /**\n * Copies pointer {@link PIXI.FederatedPointerEvent} data from {@code from} into {@code to}.\n *\n * The following properties are copied:\n * + pointerId\n * + width\n * + height\n * + isPrimary\n * + pointerType\n * + pressure\n * + tangentialPressure\n * + tiltX\n * + tiltY\n * @param from\n * @param to\n */\n copyPointerData(t, e) {\n t instanceof ge && e instanceof ge && (e.pointerId = t.pointerId, e.width = t.width, e.height = t.height, e.isPrimary = t.isPrimary, e.pointerType = t.pointerType, e.pressure = t.pressure, e.tangentialPressure = t.tangentialPressure, e.tiltX = t.tiltX, e.tiltY = t.tiltY, e.twist = t.twist);\n }\n /**\n * Copies mouse {@link PIXI.FederatedMouseEvent} data from {@code from} to {@code to}.\n *\n * The following properties are copied:\n * + altKey\n * + button\n * + buttons\n * + clientX\n * + clientY\n * + metaKey\n * + movementX\n * + movementY\n * + pageX\n * + pageY\n * + x\n * + y\n * + screen\n * + shiftKey\n * + global\n * @param from\n * @param to\n */\n copyMouseData(t, e) {\n t instanceof Bn && e instanceof Bn && (e.altKey = t.altKey, e.button = t.button, e.buttons = t.buttons, e.client.copyFrom(t.client), e.ctrlKey = t.ctrlKey, e.metaKey = t.metaKey, e.movement.copyFrom(t.movement), e.screen.copyFrom(t.screen), e.shiftKey = t.shiftKey, e.global.copyFrom(t.global));\n }\n /**\n * Copies base {@link PIXI.FederatedEvent} data from {@code from} into {@code to}.\n *\n * The following properties are copied:\n * + isTrusted\n * + srcElement\n * + timeStamp\n * + type\n * @param from - The event to copy data from.\n * @param to - The event to copy data into.\n */\n copyData(t, e) {\n e.isTrusted = t.isTrusted, e.srcElement = t.srcElement, e.timeStamp = performance.now(), e.type = t.type, e.detail = t.detail, e.view = t.view, e.which = t.which, e.layer.copyFrom(t.layer), e.page.copyFrom(t.page);\n }\n /**\n * @param id - The pointer ID.\n * @returns The tracking data stored for the given pointer. If no data exists, a blank\n * state will be created.\n */\n trackingData(t) {\n return this.mappingState.trackingData[t] || (this.mappingState.trackingData[t] = {\n pressTargetsByButton: {},\n clicksByButton: {},\n overTarget: null\n }), this.mappingState.trackingData[t];\n }\n /**\n * Allocate a specific type of event from {@link PIXI.EventBoundary#eventPool this.eventPool}.\n *\n * This allocation is constructor-agnostic, as long as it only takes one argument - this event\n * boundary.\n * @param constructor - The event's constructor.\n */\n allocateEvent(t) {\n this.eventPool.has(t) || this.eventPool.set(t, []);\n const e = this.eventPool.get(t).pop() || new t(this);\n return e.eventPhase = e.NONE, e.currentTarget = null, e.path = null, e.target = null, e;\n }\n /**\n * Frees the event and puts it back into the event pool.\n *\n * It is illegal to reuse the event until it is allocated again, using `this.allocateEvent`.\n *\n * It is also advised that events not allocated from {@link PIXI.EventBoundary#allocateEvent this.allocateEvent}\n * not be freed. This is because of the possibility that the same event is freed twice, which can cause\n * it to be allocated twice & result in overwriting.\n * @param event - The event to be freed.\n * @throws Error if the event is managed by another event boundary.\n */\n freeEvent(t) {\n if (t.manager !== this)\n throw new Error(\"It is illegal to free an event not managed by this EventBoundary!\");\n const e = t.constructor;\n this.eventPool.has(e) || this.eventPool.set(e, []), this.eventPool.get(e).push(t);\n }\n /**\n * Similar to {@link PIXI.EventEmitter.emit}, except it stops if the `propagationImmediatelyStopped` flag\n * is set on the event.\n * @param e - The event to call each listener with.\n * @param type - The event key.\n */\n notifyListeners(t, e) {\n const i = t.currentTarget._events[e];\n if (i && t.currentTarget.isInteractive())\n if (\"fn\" in i)\n i.once && t.currentTarget.removeListener(e, i.fn, void 0, !0), i.fn.call(i.context, t);\n else\n for (let s = 0, n = i.length; s < n && !t.propagationImmediatelyStopped; s++)\n i[s].once && t.currentTarget.removeListener(e, i[s].fn, void 0, !0), i[s].fn.call(i[s].context, t);\n }\n}\nconst J1 = 1, Q1 = {\n touchstart: \"pointerdown\",\n touchend: \"pointerup\",\n touchendoutside: \"pointerupoutside\",\n touchmove: \"pointermove\",\n touchcancel: \"pointercancel\"\n}, $a = class Ha {\n /**\n * @param {PIXI.Renderer} renderer\n */\n constructor(t) {\n this.supportsTouchEvents = \"ontouchstart\" in globalThis, this.supportsPointerEvents = !!globalThis.PointerEvent, this.domElement = null, this.resolution = 1, this.renderer = t, this.rootBoundary = new Z1(null), dr.init(this), this.autoPreventDefault = !0, this.eventsAdded = !1, this.rootPointerEvent = new ge(null), this.rootWheelEvent = new wi(null), this.cursorStyles = {\n default: \"inherit\",\n pointer: \"pointer\"\n }, this.features = new Proxy({ ...Ha.defaultEventFeatures }, {\n set: (e, i, s) => (i === \"globalMove\" && (this.rootBoundary.enableGlobalMoveEvents = s), e[i] = s, !0)\n }), this.onPointerDown = this.onPointerDown.bind(this), this.onPointerMove = this.onPointerMove.bind(this), this.onPointerUp = this.onPointerUp.bind(this), this.onPointerOverOut = this.onPointerOverOut.bind(this), this.onWheel = this.onWheel.bind(this);\n }\n /**\n * The default interaction mode for all display objects.\n * @see PIXI.DisplayObject.eventMode\n * @type {PIXI.EventMode}\n * @readonly\n * @since 7.2.0\n */\n static get defaultEventMode() {\n return this._defaultEventMode;\n }\n /**\n * Runner init called, view is available at this point.\n * @ignore\n */\n init(t) {\n const { view: e, resolution: i } = this.renderer;\n this.setTargetElement(e), this.resolution = i, Ha._defaultEventMode = t.eventMode ?? \"auto\", Object.assign(this.features, t.eventFeatures ?? {}), this.rootBoundary.enableGlobalMoveEvents = this.features.globalMove;\n }\n /**\n * Handle changing resolution.\n * @ignore\n */\n resolutionChange(t) {\n this.resolution = t;\n }\n /** Destroys all event listeners and detaches the renderer. */\n destroy() {\n this.setTargetElement(null), this.renderer = null;\n }\n /**\n * Sets the current cursor mode, handling any callbacks or CSS style changes.\n * @param mode - cursor mode, a key from the cursorStyles dictionary\n */\n setCursor(t) {\n t = t || \"default\";\n let e = !0;\n if (globalThis.OffscreenCanvas && this.domElement instanceof OffscreenCanvas && (e = !1), this.currentCursor === t)\n return;\n this.currentCursor = t;\n const i = this.cursorStyles[t];\n if (i)\n switch (typeof i) {\n case \"string\":\n e && (this.domElement.style.cursor = i);\n break;\n case \"function\":\n i(t);\n break;\n case \"object\":\n e && Object.assign(this.domElement.style, i);\n break;\n }\n else\n e && typeof t == \"string\" && !Object.prototype.hasOwnProperty.call(this.cursorStyles, t) && (this.domElement.style.cursor = t);\n }\n /**\n * The global pointer event.\n * Useful for getting the pointer position without listening to events.\n * @since 7.2.0\n */\n get pointer() {\n return this.rootPointerEvent;\n }\n /**\n * Event handler for pointer down events on {@link PIXI.EventSystem#domElement this.domElement}.\n * @param nativeEvent - The native mouse/pointer/touch event.\n */\n onPointerDown(t) {\n if (!this.features.click)\n return;\n this.rootBoundary.rootTarget = this.renderer.lastObjectRendered;\n const e = this.normalizeToPointerData(t);\n this.autoPreventDefault && e[0].isNormalized && (t.cancelable || !(\"cancelable\" in t)) && t.preventDefault();\n for (let i = 0, s = e.length; i < s; i++) {\n const n = e[i], o = this.bootstrapEvent(this.rootPointerEvent, n);\n this.rootBoundary.mapEvent(o);\n }\n this.setCursor(this.rootBoundary.cursor);\n }\n /**\n * Event handler for pointer move events on on {@link PIXI.EventSystem#domElement this.domElement}.\n * @param nativeEvent - The native mouse/pointer/touch events.\n */\n onPointerMove(t) {\n if (!this.features.move)\n return;\n this.rootBoundary.rootTarget = this.renderer.lastObjectRendered, dr.pointerMoved();\n const e = this.normalizeToPointerData(t);\n for (let i = 0, s = e.length; i < s; i++) {\n const n = this.bootstrapEvent(this.rootPointerEvent, e[i]);\n this.rootBoundary.mapEvent(n);\n }\n this.setCursor(this.rootBoundary.cursor);\n }\n /**\n * Event handler for pointer up events on {@link PIXI.EventSystem#domElement this.domElement}.\n * @param nativeEvent - The native mouse/pointer/touch event.\n */\n onPointerUp(t) {\n if (!this.features.click)\n return;\n this.rootBoundary.rootTarget = this.renderer.lastObjectRendered;\n let e = t.target;\n t.composedPath && t.composedPath().length > 0 && (e = t.composedPath()[0]);\n const i = e !== this.domElement ? \"outside\" : \"\", s = this.normalizeToPointerData(t);\n for (let n = 0, o = s.length; n < o; n++) {\n const a = this.bootstrapEvent(this.rootPointerEvent, s[n]);\n a.type += i, this.rootBoundary.mapEvent(a);\n }\n this.setCursor(this.rootBoundary.cursor);\n }\n /**\n * Event handler for pointer over & out events on {@link PIXI.EventSystem#domElement this.domElement}.\n * @param nativeEvent - The native mouse/pointer/touch event.\n */\n onPointerOverOut(t) {\n if (!this.features.click)\n return;\n this.rootBoundary.rootTarget = this.renderer.lastObjectRendered;\n const e = this.normalizeToPointerData(t);\n for (let i = 0, s = e.length; i < s; i++) {\n const n = this.bootstrapEvent(this.rootPointerEvent, e[i]);\n this.rootBoundary.mapEvent(n);\n }\n this.setCursor(this.rootBoundary.cursor);\n }\n /**\n * Passive handler for `wheel` events on {@link PIXI.EventSystem.domElement this.domElement}.\n * @param nativeEvent - The native wheel event.\n */\n onWheel(t) {\n if (!this.features.wheel)\n return;\n const e = this.normalizeWheelEvent(t);\n this.rootBoundary.rootTarget = this.renderer.lastObjectRendered, this.rootBoundary.mapEvent(e);\n }\n /**\n * Sets the {@link PIXI.EventSystem#domElement domElement} and binds event listeners.\n *\n * To deregister the current DOM element without setting a new one, pass {@code null}.\n * @param element - The new DOM element.\n */\n setTargetElement(t) {\n this.removeEvents(), this.domElement = t, dr.domElement = t, this.addEvents();\n }\n /** Register event listeners on {@link PIXI.Renderer#domElement this.domElement}. */\n addEvents() {\n if (this.eventsAdded || !this.domElement)\n return;\n dr.addTickerListener();\n const t = this.domElement.style;\n t && (globalThis.navigator.msPointerEnabled ? (t.msContentZooming = \"none\", t.msTouchAction = \"none\") : this.supportsPointerEvents && (t.touchAction = \"none\")), this.supportsPointerEvents ? (globalThis.document.addEventListener(\"pointermove\", this.onPointerMove, !0), this.domElement.addEventListener(\"pointerdown\", this.onPointerDown, !0), this.domElement.addEventListener(\"pointerleave\", this.onPointerOverOut, !0), this.domElement.addEventListener(\"pointerover\", this.onPointerOverOut, !0), globalThis.addEventListener(\"pointerup\", this.onPointerUp, !0)) : (globalThis.document.addEventListener(\"mousemove\", this.onPointerMove, !0), this.domElement.addEventListener(\"mousedown\", this.onPointerDown, !0), this.domElement.addEventListener(\"mouseout\", this.onPointerOverOut, !0), this.domElement.addEventListener(\"mouseover\", this.onPointerOverOut, !0), globalThis.addEventListener(\"mouseup\", this.onPointerUp, !0), this.supportsTouchEvents && (this.domElement.addEventListener(\"touchstart\", this.onPointerDown, !0), this.domElement.addEventListener(\"touchend\", this.onPointerUp, !0), this.domElement.addEventListener(\"touchmove\", this.onPointerMove, !0))), this.domElement.addEventListener(\"wheel\", this.onWheel, {\n passive: !0,\n capture: !0\n }), this.eventsAdded = !0;\n }\n /** Unregister event listeners on {@link PIXI.EventSystem#domElement this.domElement}. */\n removeEvents() {\n if (!this.eventsAdded || !this.domElement)\n return;\n dr.removeTickerListener();\n const t = this.domElement.style;\n globalThis.navigator.msPointerEnabled ? (t.msContentZooming = \"\", t.msTouchAction = \"\") : this.supportsPointerEvents && (t.touchAction = \"\"), this.supportsPointerEvents ? (globalThis.document.removeEventListener(\"pointermove\", this.onPointerMove, !0), this.domElement.removeEventListener(\"pointerdown\", this.onPointerDown, !0), this.domElement.removeEventListener(\"pointerleave\", this.onPointerOverOut, !0), this.domElement.removeEventListener(\"pointerover\", this.onPointerOverOut, !0), globalThis.removeEventListener(\"pointerup\", this.onPointerUp, !0)) : (globalThis.document.removeEventListener(\"mousemove\", this.onPointerMove, !0), this.domElement.removeEventListener(\"mousedown\", this.onPointerDown, !0), this.domElement.removeEventListener(\"mouseout\", this.onPointerOverOut, !0), this.domElement.removeEventListener(\"mouseover\", this.onPointerOverOut, !0), globalThis.removeEventListener(\"mouseup\", this.onPointerUp, !0), this.supportsTouchEvents && (this.domElement.removeEventListener(\"touchstart\", this.onPointerDown, !0), this.domElement.removeEventListener(\"touchend\", this.onPointerUp, !0), this.domElement.removeEventListener(\"touchmove\", this.onPointerMove, !0))), this.domElement.removeEventListener(\"wheel\", this.onWheel, !0), this.domElement = null, this.eventsAdded = !1;\n }\n /**\n * Maps x and y coords from a DOM object and maps them correctly to the PixiJS view. The\n * resulting value is stored in the point. This takes into account the fact that the DOM\n * element could be scaled and positioned anywhere on the screen.\n * @param {PIXI.IPointData} point - the point that the result will be stored in\n * @param {number} x - the x coord of the position to map\n * @param {number} y - the y coord of the position to map\n */\n mapPositionToPoint(t, e, i) {\n const s = this.domElement.isConnected ? this.domElement.getBoundingClientRect() : {\n x: 0,\n y: 0,\n width: this.domElement.width,\n height: this.domElement.height,\n left: 0,\n top: 0\n }, n = 1 / this.resolution;\n t.x = (e - s.left) * (this.domElement.width / s.width) * n, t.y = (i - s.top) * (this.domElement.height / s.height) * n;\n }\n /**\n * Ensures that the original event object contains all data that a regular pointer event would have\n * @param event - The original event data from a touch or mouse event\n * @returns An array containing a single normalized pointer event, in the case of a pointer\n * or mouse event, or a multiple normalized pointer events if there are multiple changed touches\n */\n normalizeToPointerData(t) {\n const e = [];\n if (this.supportsTouchEvents && t instanceof TouchEvent)\n for (let i = 0, s = t.changedTouches.length; i < s; i++) {\n const n = t.changedTouches[i];\n typeof n.button > \"u\" && (n.button = 0), typeof n.buttons > \"u\" && (n.buttons = 1), typeof n.isPrimary > \"u\" && (n.isPrimary = t.touches.length === 1 && t.type === \"touchstart\"), typeof n.width > \"u\" && (n.width = n.radiusX || 1), typeof n.height > \"u\" && (n.height = n.radiusY || 1), typeof n.tiltX > \"u\" && (n.tiltX = 0), typeof n.tiltY > \"u\" && (n.tiltY = 0), typeof n.pointerType > \"u\" && (n.pointerType = \"touch\"), typeof n.pointerId > \"u\" && (n.pointerId = n.identifier || 0), typeof n.pressure > \"u\" && (n.pressure = n.force || 0.5), typeof n.twist > \"u\" && (n.twist = 0), typeof n.tangentialPressure > \"u\" && (n.tangentialPressure = 0), typeof n.layerX > \"u\" && (n.layerX = n.offsetX = n.clientX), typeof n.layerY > \"u\" && (n.layerY = n.offsetY = n.clientY), n.isNormalized = !0, n.type = t.type, e.push(n);\n }\n else if (!globalThis.MouseEvent || t instanceof MouseEvent && (!this.supportsPointerEvents || !(t instanceof globalThis.PointerEvent))) {\n const i = t;\n typeof i.isPrimary > \"u\" && (i.isPrimary = !0), typeof i.width > \"u\" && (i.width = 1), typeof i.height > \"u\" && (i.height = 1), typeof i.tiltX > \"u\" && (i.tiltX = 0), typeof i.tiltY > \"u\" && (i.tiltY = 0), typeof i.pointerType > \"u\" && (i.pointerType = \"mouse\"), typeof i.pointerId > \"u\" && (i.pointerId = J1), typeof i.pressure > \"u\" && (i.pressure = 0.5), typeof i.twist > \"u\" && (i.twist = 0), typeof i.tangentialPressure > \"u\" && (i.tangentialPressure = 0), i.isNormalized = !0, e.push(i);\n } else\n e.push(t);\n return e;\n }\n /**\n * Normalizes the native {@link https://w3c.github.io/uievents/#interface-wheelevent WheelEvent}.\n *\n * The returned {@link PIXI.FederatedWheelEvent} is a shared instance. It will not persist across\n * multiple native wheel events.\n * @param nativeEvent - The native wheel event that occurred on the canvas.\n * @returns A federated wheel event.\n */\n normalizeWheelEvent(t) {\n const e = this.rootWheelEvent;\n return this.transferMouseData(e, t), e.deltaX = t.deltaX, e.deltaY = t.deltaY, e.deltaZ = t.deltaZ, e.deltaMode = t.deltaMode, this.mapPositionToPoint(e.screen, t.clientX, t.clientY), e.global.copyFrom(e.screen), e.offset.copyFrom(e.screen), e.nativeEvent = t, e.type = t.type, e;\n }\n /**\n * Normalizes the `nativeEvent` into a federateed {@link PIXI.FederatedPointerEvent}.\n * @param event\n * @param nativeEvent\n */\n bootstrapEvent(t, e) {\n return t.originalEvent = null, t.nativeEvent = e, t.pointerId = e.pointerId, t.width = e.width, t.height = e.height, t.isPrimary = e.isPrimary, t.pointerType = e.pointerType, t.pressure = e.pressure, t.tangentialPressure = e.tangentialPressure, t.tiltX = e.tiltX, t.tiltY = e.tiltY, t.twist = e.twist, this.transferMouseData(t, e), this.mapPositionToPoint(t.screen, e.clientX, e.clientY), t.global.copyFrom(t.screen), t.offset.copyFrom(t.screen), t.isTrusted = e.isTrusted, t.type === \"pointerleave\" && (t.type = \"pointerout\"), t.type.startsWith(\"mouse\") && (t.type = t.type.replace(\"mouse\", \"pointer\")), t.type.startsWith(\"touch\") && (t.type = Q1[t.type] || t.type), t;\n }\n /**\n * Transfers base & mouse event data from the {@code nativeEvent} to the federated event.\n * @param event\n * @param nativeEvent\n */\n transferMouseData(t, e) {\n t.isTrusted = e.isTrusted, t.srcElement = e.srcElement, t.timeStamp = performance.now(), t.type = e.type, t.altKey = e.altKey, t.button = e.button, t.buttons = e.buttons, t.client.x = e.clientX, t.client.y = e.clientY, t.ctrlKey = e.ctrlKey, t.metaKey = e.metaKey, t.movement.x = e.movementX, t.movement.y = e.movementY, t.page.x = e.pageX, t.page.y = e.pageY, t.relatedTarget = null, t.shiftKey = e.shiftKey;\n }\n};\n$a.extension = {\n name: \"events\",\n type: [\n H.RendererSystem,\n H.CanvasRendererSystem\n ]\n}, /**\n* The event features that are enabled by the EventSystem\n* This option only is available when using **@pixi/events** package\n* (included in the **pixi.js** and **pixi.js-legacy** bundle), otherwise it will be ignored.\n* @since 7.2.0\n*/\n$a.defaultEventFeatures = {\n move: !0,\n globalMove: !0,\n click: !0,\n wheel: !0\n};\nlet Xa = $a;\nq.add(Xa);\nfunction vc(r) {\n return r === \"dynamic\" || r === \"static\";\n}\nconst tx = {\n /**\n * Property-based event handler for the `click` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onclick = (event) => {\n * //some function here that happens on click\n * }\n */\n onclick: null,\n /**\n * Property-based event handler for the `mousedown` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onmousedown = (event) => {\n * //some function here that happens on mousedown\n * }\n */\n onmousedown: null,\n /**\n * Property-based event handler for the `mouseenter` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onmouseenter = (event) => {\n * //some function here that happens on mouseenter\n * }\n */\n onmouseenter: null,\n /**\n * Property-based event handler for the `mouseleave` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onmouseleave = (event) => {\n * //some function here that happens on mouseleave\n * }\n */\n onmouseleave: null,\n /**\n * Property-based event handler for the `mousemove` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onmousemove = (event) => {\n * //some function here that happens on mousemove\n * }\n */\n onmousemove: null,\n /**\n * Property-based event handler for the `globalmousemove` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onglobalmousemove = (event) => {\n * //some function here that happens on globalmousemove\n * }\n */\n onglobalmousemove: null,\n /**\n * Property-based event handler for the `mouseout` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onmouseout = (event) => {\n * //some function here that happens on mouseout\n * }\n */\n onmouseout: null,\n /**\n * Property-based event handler for the `mouseover` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onmouseover = (event) => {\n * //some function here that happens on mouseover\n * }\n */\n onmouseover: null,\n /**\n * Property-based event handler for the `mouseup` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onmouseup = (event) => {\n * //some function here that happens on mouseup\n * }\n */\n onmouseup: null,\n /**\n * Property-based event handler for the `mouseupoutside` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onmouseupoutside = (event) => {\n * //some function here that happens on mouseupoutside\n * }\n */\n onmouseupoutside: null,\n /**\n * Property-based event handler for the `pointercancel` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointercancel = (event) => {\n * //some function here that happens on pointercancel\n * }\n */\n onpointercancel: null,\n /**\n * Property-based event handler for the `pointerdown` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointerdown = (event) => {\n * //some function here that happens on pointerdown\n * }\n */\n onpointerdown: null,\n /**\n * Property-based event handler for the `pointerenter` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointerenter = (event) => {\n * //some function here that happens on pointerenter\n * }\n */\n onpointerenter: null,\n /**\n * Property-based event handler for the `pointerleave` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointerleave = (event) => {\n * //some function here that happens on pointerleave\n * }\n */\n onpointerleave: null,\n /**\n * Property-based event handler for the `pointermove` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointermove = (event) => {\n * //some function here that happens on pointermove\n * }\n */\n onpointermove: null,\n /**\n * Property-based event handler for the `globalpointermove` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onglobalpointermove = (event) => {\n * //some function here that happens on globalpointermove\n * }\n */\n onglobalpointermove: null,\n /**\n * Property-based event handler for the `pointerout` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointerout = (event) => {\n * //some function here that happens on pointerout\n * }\n */\n onpointerout: null,\n /**\n * Property-based event handler for the `pointerover` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointerover = (event) => {\n * //some function here that happens on pointerover\n * }\n */\n onpointerover: null,\n /**\n * Property-based event handler for the `pointertap` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointertap = (event) => {\n * //some function here that happens on pointertap\n * }\n */\n onpointertap: null,\n /**\n * Property-based event handler for the `pointerup` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointerup = (event) => {\n * //some function here that happens on pointerup\n * }\n */\n onpointerup: null,\n /**\n * Property-based event handler for the `pointerupoutside` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onpointerupoutside = (event) => {\n * //some function here that happens on pointerupoutside\n * }\n */\n onpointerupoutside: null,\n /**\n * Property-based event handler for the `rightclick` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onrightclick = (event) => {\n * //some function here that happens on rightclick\n * }\n */\n onrightclick: null,\n /**\n * Property-based event handler for the `rightdown` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onrightdown = (event) => {\n * //some function here that happens on rightdown\n * }\n */\n onrightdown: null,\n /**\n * Property-based event handler for the `rightup` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onrightup = (event) => {\n * //some function here that happens on rightup\n * }\n */\n onrightup: null,\n /**\n * Property-based event handler for the `rightupoutside` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onrightupoutside = (event) => {\n * //some function here that happens on rightupoutside\n * }\n */\n onrightupoutside: null,\n /**\n * Property-based event handler for the `tap` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.ontap = (event) => {\n * //some function here that happens on tap\n * }\n */\n ontap: null,\n /**\n * Property-based event handler for the `touchcancel` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.ontouchcancel = (event) => {\n * //some function here that happens on touchcancel\n * }\n */\n ontouchcancel: null,\n /**\n * Property-based event handler for the `touchend` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.ontouchend = (event) => {\n * //some function here that happens on touchend\n * }\n */\n ontouchend: null,\n /**\n * Property-based event handler for the `touchendoutside` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.ontouchendoutside = (event) => {\n * //some function here that happens on touchendoutside\n * }\n */\n ontouchendoutside: null,\n /**\n * Property-based event handler for the `touchmove` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.ontouchmove = (event) => {\n * //some function here that happens on touchmove\n * }\n */\n ontouchmove: null,\n /**\n * Property-based event handler for the `globaltouchmove` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onglobaltouchmove = (event) => {\n * //some function here that happens on globaltouchmove\n * }\n */\n onglobaltouchmove: null,\n /**\n * Property-based event handler for the `touchstart` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.ontouchstart = (event) => {\n * //some function here that happens on touchstart\n * }\n */\n ontouchstart: null,\n /**\n * Property-based event handler for the `wheel` event.\n * @memberof PIXI.DisplayObject#\n * @default null\n * @example\n * this.onwheel = (event) => {\n * //some function here that happens on wheel\n * }\n */\n onwheel: null,\n /**\n * @ignore\n */\n _internalInteractive: void 0,\n /**\n * Enable interaction events for the DisplayObject. Touch, pointer and mouse\n * @memberof PIXI.DisplayObject#\n */\n get interactive() {\n return this._internalInteractive ?? vc(Xa.defaultEventMode);\n },\n set interactive(r) {\n at(\n \"7.2.0\",\n // eslint-disable-next-line max-len\n \"Setting interactive is deprecated, use eventMode = 'none'/'passive'/'auto'/'static'/'dynamic' instead.\"\n ), this._internalInteractive = r, this.eventMode = r ? \"static\" : \"auto\";\n },\n /**\n * @ignore\n */\n _internalEventMode: void 0,\n /**\n * Enable interaction events for the DisplayObject. Touch, pointer and mouse.\n * This now replaces the `interactive` property.\n * There are 5 types of interaction settings:\n * - `'none'`: Ignores all interaction events, even on its children.\n * - `'passive'`: Does not emit events and ignores all hit testing on itself and non-interactive children.\n * Interactive children will still emit events.\n * - `'auto'`: Does not emit events but is hit tested if parent is interactive. Same as `interactive = false` in v7\n * - `'static'`: Emit events and is hit tested. Same as `interaction = true` in v7\n * - `'dynamic'`: Emits events and is hit tested but will also receive mock interaction events fired from a ticker to\n * allow for interaction when the mouse isn't moving\n * @example\n * import { Sprite } from 'pixi.js';\n *\n * const sprite = new Sprite(texture);\n * sprite.eventMode = 'static';\n * sprite.on('tap', (event) => {\n * // Handle event\n * });\n * @memberof PIXI.DisplayObject#\n * @since 7.2.0\n */\n get eventMode() {\n return this._internalEventMode ?? Xa.defaultEventMode;\n },\n set eventMode(r) {\n this._internalInteractive = vc(r), this._internalEventMode = r;\n },\n /**\n * Determines if the displayObject is interactive or not\n * @returns {boolean} Whether the displayObject is interactive or not\n * @memberof PIXI.DisplayObject#\n * @since 7.2.0\n * @example\n * import { Sprite } from 'pixi.js';\n * const sprite = new Sprite(texture);\n * sprite.eventMode = 'static';\n * sprite.isInteractive(); // true\n *\n * sprite.eventMode = 'dynamic';\n * sprite.isInteractive(); // true\n *\n * sprite.eventMode = 'none';\n * sprite.isInteractive(); // false\n *\n * sprite.eventMode = 'passive';\n * sprite.isInteractive(); // false\n *\n * sprite.eventMode = 'auto';\n * sprite.isInteractive(); // false\n */\n isInteractive() {\n return this.eventMode === \"static\" || this.eventMode === \"dynamic\";\n },\n /**\n * Determines if the children to the displayObject can be clicked/touched\n * Setting this to false allows PixiJS to bypass a recursive `hitTest` function\n * @memberof PIXI.Container#\n */\n interactiveChildren: !0,\n /**\n * Interaction shape. Children will be hit first, then this shape will be checked.\n * Setting this will cause this shape to be checked in hit tests rather than the displayObject's bounds.\n * @example\n * import { Rectangle, Sprite } from 'pixi.js';\n *\n * const sprite = new Sprite(texture);\n * sprite.interactive = true;\n * sprite.hitArea = new Rectangle(0, 0, 100, 100);\n * @member {PIXI.IHitArea}\n * @memberof PIXI.DisplayObject#\n */\n hitArea: null,\n /**\n * Unlike `on` or `addListener` which are methods from EventEmitter, `addEventListener`\n * seeks to be compatible with the DOM's `addEventListener` with support for options.\n * **IMPORTANT:** _Only_ available if using the `@pixi/events` package.\n * @memberof PIXI.DisplayObject\n * @param type - The type of event to listen to.\n * @param listener - The listener callback or object.\n * @param options - Listener options, used for capture phase.\n * @example\n * // Tell the user whether they did a single, double, triple, or nth click.\n * button.addEventListener('click', {\n * handleEvent(e): {\n * let prefix;\n *\n * switch (e.detail) {\n * case 1: prefix = 'single'; break;\n * case 2: prefix = 'double'; break;\n * case 3: prefix = 'triple'; break;\n * default: prefix = e.detail + 'th'; break;\n * }\n *\n * console.log('That was a ' + prefix + 'click');\n * }\n * });\n *\n * // But skip the first click!\n * button.parent.addEventListener('click', function blockClickOnce(e) {\n * e.stopImmediatePropagation();\n * button.parent.removeEventListener('click', blockClickOnce, true);\n * }, {\n * capture: true,\n * });\n */\n addEventListener(r, t, e) {\n const i = typeof e == \"boolean\" && e || typeof e == \"object\" && e.capture, s = typeof e == \"object\" ? e.signal : void 0, n = typeof e == \"object\" ? e.once === !0 : !1, o = typeof t == \"function\" ? void 0 : t;\n r = i ? `${r}capture` : r;\n const a = typeof t == \"function\" ? t : t.handleEvent, l = this;\n s && s.addEventListener(\"abort\", () => {\n l.off(r, a, o);\n }), n ? l.once(r, a, o) : l.on(r, a, o);\n },\n /**\n * Unlike `off` or `removeListener` which are methods from EventEmitter, `removeEventListener`\n * seeks to be compatible with the DOM's `removeEventListener` with support for options.\n * **IMPORTANT:** _Only_ available if using the `@pixi/events` package.\n * @memberof PIXI.DisplayObject\n * @param type - The type of event the listener is bound to.\n * @param listener - The listener callback or object.\n * @param options - The original listener options. This is required to deregister a capture phase listener.\n */\n removeEventListener(r, t, e) {\n const i = typeof e == \"boolean\" && e || typeof e == \"object\" && e.capture, s = typeof t == \"function\" ? void 0 : t;\n r = i ? `${r}capture` : r, t = typeof t == \"function\" ? t : t.handleEvent, this.off(r, t, s);\n },\n /**\n * Dispatch the event on this {@link PIXI.DisplayObject} using the event's {@link PIXI.EventBoundary}.\n *\n * The target of the event is set to `this` and the `defaultPrevented` flag is cleared before dispatch.\n *\n * **IMPORTANT:** _Only_ available if using the `@pixi/events` package.\n * @memberof PIXI.DisplayObject\n * @param e - The event to dispatch.\n * @returns Whether the {@link PIXI.FederatedEvent.preventDefault preventDefault}() method was not invoked.\n * @example\n * // Reuse a click event!\n * button.dispatchEvent(clickEvent);\n */\n dispatchEvent(r) {\n if (!(r instanceof _s))\n throw new Error(\"DisplayObject cannot propagate events outside of the Federated Events API\");\n return r.defaultPrevented = !1, r.path = null, r.target = this, r.manager.dispatchEvent(r), !r.defaultPrevented;\n }\n};\nIt.mixin(tx);\nconst ex = {\n /**\n * Flag for if the object is accessible. If true AccessibilityManager will overlay a\n * shadow div with attributes set\n * @member {boolean}\n * @memberof PIXI.DisplayObject#\n */\n accessible: !1,\n /**\n * Sets the title attribute of the shadow div\n * If accessibleTitle AND accessibleHint has not been this will default to 'displayObject [tabIndex]'\n * @member {?string}\n * @memberof PIXI.DisplayObject#\n */\n accessibleTitle: null,\n /**\n * Sets the aria-label attribute of the shadow div\n * @member {string}\n * @memberof PIXI.DisplayObject#\n */\n accessibleHint: null,\n /**\n * @member {number}\n * @memberof PIXI.DisplayObject#\n * @private\n * @todo Needs docs.\n */\n tabIndex: 0,\n /**\n * @member {boolean}\n * @memberof PIXI.DisplayObject#\n * @todo Needs docs.\n */\n _accessibleActive: !1,\n /**\n * @member {boolean}\n * @memberof PIXI.DisplayObject#\n * @todo Needs docs.\n */\n _accessibleDiv: null,\n /**\n * Specify the type of div the accessible layer is. Screen readers treat the element differently\n * depending on this type. Defaults to button.\n * @member {string}\n * @memberof PIXI.DisplayObject#\n * @default 'button'\n */\n accessibleType: \"button\",\n /**\n * Specify the pointer-events the accessible div will use\n * Defaults to auto.\n * @member {string}\n * @memberof PIXI.DisplayObject#\n * @default 'auto'\n */\n accessiblePointerEvents: \"auto\",\n /**\n * Setting to false will prevent any children inside this container to\n * be accessible. Defaults to true.\n * @member {boolean}\n * @memberof PIXI.DisplayObject#\n * @default true\n */\n accessibleChildren: !0,\n renderId: -1\n};\nIt.mixin(ex);\nconst rx = 9, Gs = 100, ix = 0, sx = 0, xc = 2, bc = 1, nx = -1e3, ox = -1e3, ax = 2;\nclass sf {\n // 2fps\n /**\n * @param {PIXI.CanvasRenderer|PIXI.Renderer} renderer - A reference to the current renderer\n */\n constructor(t) {\n this.debug = !1, this._isActive = !1, this._isMobileAccessibility = !1, this.pool = [], this.renderId = 0, this.children = [], this.androidUpdateCount = 0, this.androidUpdateFrequency = 500, this._hookDiv = null, (qe.tablet || qe.phone) && this.createTouchHook();\n const e = document.createElement(\"div\");\n e.style.width = `${Gs}px`, e.style.height = `${Gs}px`, e.style.position = \"absolute\", e.style.top = `${ix}px`, e.style.left = `${sx}px`, e.style.zIndex = xc.toString(), this.div = e, this.renderer = t, this._onKeyDown = this._onKeyDown.bind(this), this._onMouseMove = this._onMouseMove.bind(this), globalThis.addEventListener(\"keydown\", this._onKeyDown, !1);\n }\n /**\n * Value of `true` if accessibility is currently active and accessibility layers are showing.\n * @member {boolean}\n * @readonly\n */\n get isActive() {\n return this._isActive;\n }\n /**\n * Value of `true` if accessibility is enabled for touch devices.\n * @member {boolean}\n * @readonly\n */\n get isMobileAccessibility() {\n return this._isMobileAccessibility;\n }\n /**\n * Creates the touch hooks.\n * @private\n */\n createTouchHook() {\n const t = document.createElement(\"button\");\n t.style.width = `${bc}px`, t.style.height = `${bc}px`, t.style.position = \"absolute\", t.style.top = `${nx}px`, t.style.left = `${ox}px`, t.style.zIndex = ax.toString(), t.style.backgroundColor = \"#FF0000\", t.title = \"select to enable accessibility for this content\", t.addEventListener(\"focus\", () => {\n this._isMobileAccessibility = !0, this.activate(), this.destroyTouchHook();\n }), document.body.appendChild(t), this._hookDiv = t;\n }\n /**\n * Destroys the touch hooks.\n * @private\n */\n destroyTouchHook() {\n this._hookDiv && (document.body.removeChild(this._hookDiv), this._hookDiv = null);\n }\n /**\n * Activating will cause the Accessibility layer to be shown.\n * This is called when a user presses the tab key.\n * @private\n */\n activate() {\n var t;\n this._isActive || (this._isActive = !0, globalThis.document.addEventListener(\"mousemove\", this._onMouseMove, !0), globalThis.removeEventListener(\"keydown\", this._onKeyDown, !1), this.renderer.on(\"postrender\", this.update, this), (t = this.renderer.view.parentNode) == null || t.appendChild(this.div));\n }\n /**\n * Deactivating will cause the Accessibility layer to be hidden.\n * This is called when a user moves the mouse.\n * @private\n */\n deactivate() {\n var t;\n !this._isActive || this._isMobileAccessibility || (this._isActive = !1, globalThis.document.removeEventListener(\"mousemove\", this._onMouseMove, !0), globalThis.addEventListener(\"keydown\", this._onKeyDown, !1), this.renderer.off(\"postrender\", this.update), (t = this.div.parentNode) == null || t.removeChild(this.div));\n }\n /**\n * This recursive function will run through the scene graph and add any new accessible objects to the DOM layer.\n * @private\n * @param {PIXI.Container} displayObject - The DisplayObject to check.\n */\n updateAccessibleObjects(t) {\n if (!t.visible || !t.accessibleChildren)\n return;\n t.accessible && t.isInteractive() && (t._accessibleActive || this.addChild(t), t.renderId = this.renderId);\n const e = t.children;\n if (e)\n for (let i = 0; i < e.length; i++)\n this.updateAccessibleObjects(e[i]);\n }\n /**\n * Before each render this function will ensure that all divs are mapped correctly to their DisplayObjects.\n * @private\n */\n update() {\n const t = performance.now();\n if (qe.android.device && t < this.androidUpdateCount || (this.androidUpdateCount = t + this.androidUpdateFrequency, !this.renderer.renderingToScreen))\n return;\n this.renderer.lastObjectRendered && this.updateAccessibleObjects(this.renderer.lastObjectRendered);\n const { x: e, y: i, width: s, height: n } = this.renderer.view.getBoundingClientRect(), { width: o, height: a, resolution: l } = this.renderer, h = s / o * l, c = n / a * l;\n let u = this.div;\n u.style.left = `${e}px`, u.style.top = `${i}px`, u.style.width = `${o}px`, u.style.height = `${a}px`;\n for (let d = 0; d < this.children.length; d++) {\n const f = this.children[d];\n if (f.renderId !== this.renderId)\n f._accessibleActive = !1, xi(this.children, d, 1), this.div.removeChild(f._accessibleDiv), this.pool.push(f._accessibleDiv), f._accessibleDiv = null, d--;\n else {\n u = f._accessibleDiv;\n let p = f.hitArea;\n const m = f.worldTransform;\n f.hitArea ? (u.style.left = `${(m.tx + p.x * m.a) * h}px`, u.style.top = `${(m.ty + p.y * m.d) * c}px`, u.style.width = `${p.width * m.a * h}px`, u.style.height = `${p.height * m.d * c}px`) : (p = f.getBounds(), this.capHitArea(p), u.style.left = `${p.x * h}px`, u.style.top = `${p.y * c}px`, u.style.width = `${p.width * h}px`, u.style.height = `${p.height * c}px`, u.title !== f.accessibleTitle && f.accessibleTitle !== null && (u.title = f.accessibleTitle), u.getAttribute(\"aria-label\") !== f.accessibleHint && f.accessibleHint !== null && u.setAttribute(\"aria-label\", f.accessibleHint)), (f.accessibleTitle !== u.title || f.tabIndex !== u.tabIndex) && (u.title = f.accessibleTitle, u.tabIndex = f.tabIndex, this.debug && this.updateDebugHTML(u));\n }\n }\n this.renderId++;\n }\n /**\n * private function that will visually add the information to the\n * accessability div\n * @param {HTMLElement} div -\n */\n updateDebugHTML(t) {\n t.innerHTML = `type: ${t.type}</br> title : ${t.title}</br> tabIndex: ${t.tabIndex}`;\n }\n /**\n * Adjust the hit area based on the bounds of a display object\n * @param {PIXI.Rectangle} hitArea - Bounds of the child\n */\n capHitArea(t) {\n t.x < 0 && (t.width += t.x, t.x = 0), t.y < 0 && (t.height += t.y, t.y = 0);\n const { width: e, height: i } = this.renderer;\n t.x + t.width > e && (t.width = e - t.x), t.y + t.height > i && (t.height = i - t.y);\n }\n /**\n * Adds a DisplayObject to the accessibility manager\n * @private\n * @param {PIXI.DisplayObject} displayObject - The child to make accessible.\n */\n addChild(t) {\n let e = this.pool.pop();\n e || (e = document.createElement(\"button\"), e.style.width = `${Gs}px`, e.style.height = `${Gs}px`, e.style.backgroundColor = this.debug ? \"rgba(255,255,255,0.5)\" : \"transparent\", e.style.position = \"absolute\", e.style.zIndex = xc.toString(), e.style.borderStyle = \"none\", navigator.userAgent.toLowerCase().includes(\"chrome\") ? e.setAttribute(\"aria-live\", \"off\") : e.setAttribute(\"aria-live\", \"polite\"), navigator.userAgent.match(/rv:.*Gecko\\//) ? e.setAttribute(\"aria-relevant\", \"additions\") : e.setAttribute(\"aria-relevant\", \"text\"), e.addEventListener(\"click\", this._onClick.bind(this)), e.addEventListener(\"focus\", this._onFocus.bind(this)), e.addEventListener(\"focusout\", this._onFocusOut.bind(this))), e.style.pointerEvents = t.accessiblePointerEvents, e.type = t.accessibleType, t.accessibleTitle && t.accessibleTitle !== null ? e.title = t.accessibleTitle : (!t.accessibleHint || t.accessibleHint === null) && (e.title = `displayObject ${t.tabIndex}`), t.accessibleHint && t.accessibleHint !== null && e.setAttribute(\"aria-label\", t.accessibleHint), this.debug && this.updateDebugHTML(e), t._accessibleActive = !0, t._accessibleDiv = e, e.displayObject = t, this.children.push(t), this.div.appendChild(t._accessibleDiv), t._accessibleDiv.tabIndex = t.tabIndex;\n }\n /**\n * Dispatch events with the EventSystem.\n * @param e\n * @param type\n * @private\n */\n _dispatchEvent(t, e) {\n const { displayObject: i } = t.target, s = this.renderer.events.rootBoundary, n = Object.assign(new _s(s), { target: i });\n s.rootTarget = this.renderer.lastObjectRendered, e.forEach((o) => s.dispatchEvent(n, o));\n }\n /**\n * Maps the div button press to pixi's EventSystem (click)\n * @private\n * @param {MouseEvent} e - The click event.\n */\n _onClick(t) {\n this._dispatchEvent(t, [\"click\", \"pointertap\", \"tap\"]);\n }\n /**\n * Maps the div focus events to pixi's EventSystem (mouseover)\n * @private\n * @param {FocusEvent} e - The focus event.\n */\n _onFocus(t) {\n t.target.getAttribute(\"aria-live\") || t.target.setAttribute(\"aria-live\", \"assertive\"), this._dispatchEvent(t, [\"mouseover\"]);\n }\n /**\n * Maps the div focus events to pixi's EventSystem (mouseout)\n * @private\n * @param {FocusEvent} e - The focusout event.\n */\n _onFocusOut(t) {\n t.target.getAttribute(\"aria-live\") || t.target.setAttribute(\"aria-live\", \"polite\"), this._dispatchEvent(t, [\"mouseout\"]);\n }\n /**\n * Is called when a key is pressed\n * @private\n * @param {KeyboardEvent} e - The keydown event.\n */\n _onKeyDown(t) {\n t.keyCode === rx && this.activate();\n }\n /**\n * Is called when the mouse moves across the renderer element\n * @private\n * @param {MouseEvent} e - The mouse event.\n */\n _onMouseMove(t) {\n t.movementX === 0 && t.movementY === 0 || this.deactivate();\n }\n /** Destroys the accessibility manager */\n destroy() {\n this.destroyTouchHook(), this.div = null, globalThis.document.removeEventListener(\"mousemove\", this._onMouseMove, !0), globalThis.removeEventListener(\"keydown\", this._onKeyDown), this.pool = null, this.children = null, this.renderer = null;\n }\n}\nsf.extension = {\n name: \"accessibility\",\n type: [\n H.RendererPlugin,\n H.CanvasRendererPlugin\n ]\n};\nq.add(sf);\nconst nf = class Va {\n /**\n * @param options - The optional application and renderer parameters.\n */\n constructor(t) {\n this.stage = new we(), t = Object.assign({\n forceCanvas: !1\n }, t), this.renderer = jd(t), Va._plugins.forEach((e) => {\n e.init.call(this, t);\n });\n }\n /** Render the current stage. */\n render() {\n this.renderer.render(this.stage);\n }\n /**\n * Reference to the renderer's canvas element.\n * @member {PIXI.ICanvas}\n * @readonly\n */\n get view() {\n var t;\n return (t = this.renderer) == null ? void 0 : t.view;\n }\n /**\n * Reference to the renderer's screen rectangle. Its safe to use as `filterArea` or `hitArea` for the whole screen.\n * @member {PIXI.Rectangle}\n * @readonly\n */\n get screen() {\n var t;\n return (t = this.renderer) == null ? void 0 : t.screen;\n }\n /**\n * Destroy and don't use after this.\n * @param {boolean} [removeView=false] - Automatically remove canvas from DOM.\n * @param {object|boolean} [stageOptions] - Options parameter. A boolean will act as if all options\n * have been set to that value\n * @param {boolean} [stageOptions.children=false] - if set to true, all the children will have their destroy\n * method called as well. 'stageOptions' will be passed on to those calls.\n * @param {boolean} [stageOptions.texture=false] - Only used for child Sprites if stageOptions.children is set\n * to true. Should it destroy the texture of the child sprite\n * @param {boolean} [stageOptions.baseTexture=false] - Only used for child Sprites if stageOptions.children is set\n * to true. Should it destroy the base texture of the child sprite\n */\n destroy(t, e) {\n const i = Va._plugins.slice(0);\n i.reverse(), i.forEach((s) => {\n s.destroy.call(this);\n }), this.stage.destroy(e), this.stage = null, this.renderer.destroy(t), this.renderer = null;\n }\n};\nnf._plugins = [];\nlet lx = nf;\nq.handleByList(H.Application, lx._plugins);\nclass of {\n /**\n * Initialize the plugin with scope of application instance\n * @static\n * @private\n * @param {object} [options] - See application options\n */\n static init(t) {\n Object.defineProperty(\n this,\n \"resizeTo\",\n /**\n * The HTML element or window to automatically resize the\n * renderer's view element to match width and height.\n * @member {Window|HTMLElement}\n * @name resizeTo\n * @memberof PIXI.Application#\n */\n {\n set(e) {\n globalThis.removeEventListener(\"resize\", this.queueResize), this._resizeTo = e, e && (globalThis.addEventListener(\"resize\", this.queueResize), this.resize());\n },\n get() {\n return this._resizeTo;\n }\n }\n ), this.queueResize = () => {\n this._resizeTo && (this.cancelResize(), this._resizeId = requestAnimationFrame(() => this.resize()));\n }, this.cancelResize = () => {\n this._resizeId && (cancelAnimationFrame(this._resizeId), this._resizeId = null);\n }, this.resize = () => {\n if (!this._resizeTo)\n return;\n this.cancelResize();\n let e, i;\n if (this._resizeTo === globalThis.window)\n e = globalThis.innerWidth, i = globalThis.innerHeight;\n else {\n const { clientWidth: s, clientHeight: n } = this._resizeTo;\n e = s, i = n;\n }\n this.renderer.resize(e, i), this.render();\n }, this._resizeId = null, this._resizeTo = null, this.resizeTo = t.resizeTo || null;\n }\n /**\n * Clean up the ticker, scoped to application\n * @static\n * @private\n */\n static destroy() {\n globalThis.removeEventListener(\"resize\", this.queueResize), this.cancelResize(), this.cancelResize = null, this.queueResize = null, this.resizeTo = null, this.resize = null;\n }\n}\nof.extension = H.Application;\nq.add(of);\nconst wc = {\n loader: H.LoadParser,\n resolver: H.ResolveParser,\n cache: H.CacheParser,\n detection: H.DetectionParser\n};\nq.handle(H.Asset, (r) => {\n const t = r.ref;\n Object.entries(wc).filter(([e]) => !!t[e]).forEach(([e, i]) => q.add(Object.assign(\n t[e],\n // Allow the function to optionally define it's own\n // ExtensionMetadata, the use cases here is priority for LoaderParsers\n { extension: t[e].extension ?? i }\n )));\n}, (r) => {\n const t = r.ref;\n Object.keys(wc).filter((e) => !!t[e]).forEach((e) => q.remove(t[e]));\n});\nclass hx {\n /**\n * @param loader\n * @param verbose - should the loader log to the console\n */\n constructor(t, e = !1) {\n this._loader = t, this._assetList = [], this._isLoading = !1, this._maxConcurrent = 1, this.verbose = e;\n }\n /**\n * Adds an array of assets to load.\n * @param assetUrls - assets to load\n */\n add(t) {\n t.forEach((e) => {\n this._assetList.push(e);\n }), this.verbose && console.log(\"[BackgroundLoader] assets: \", this._assetList), this._isActive && !this._isLoading && this._next();\n }\n /**\n * Loads the next set of assets. Will try to load as many assets as it can at the same time.\n *\n * The max assets it will try to load at one time will be 4.\n */\n async _next() {\n if (this._assetList.length && this._isActive) {\n this._isLoading = !0;\n const t = [], e = Math.min(this._assetList.length, this._maxConcurrent);\n for (let i = 0; i < e; i++)\n t.push(this._assetList.pop());\n await this._loader.load(t), this._isLoading = !1, this._next();\n }\n }\n /**\n * Activate/Deactivate the loading. If set to true then it will immediately continue to load the next asset.\n * @returns whether the class is active\n */\n get active() {\n return this._isActive;\n }\n set active(t) {\n this._isActive !== t && (this._isActive = t, t && !this._isLoading && this._next());\n }\n}\nfunction Li(r, t) {\n if (Array.isArray(t)) {\n for (const e of t)\n if (r.startsWith(`data:${e}`))\n return !0;\n return !1;\n }\n return r.startsWith(`data:${t}`);\n}\nfunction Er(r, t) {\n const e = r.split(\"?\")[0], i = kt.extname(e).toLowerCase();\n return Array.isArray(t) ? t.includes(i) : i === t;\n}\nconst ve = (r, t, e = !1) => (Array.isArray(r) || (r = [r]), t ? r.map((i) => typeof i == \"string\" || e ? t(i) : i) : r), za = (r, t) => {\n const e = t.split(\"?\")[1];\n return e && (r += `?${e}`), r;\n};\nfunction af(r, t, e, i, s) {\n const n = t[e];\n for (let o = 0; o < n.length; o++) {\n const a = n[o];\n e < t.length - 1 ? af(r.replace(i[e], a), t, e + 1, i, s) : s.push(r.replace(i[e], a));\n }\n}\nfunction cx(r) {\n const t = /\\{(.*?)\\}/g, e = r.match(t), i = [];\n if (e) {\n const s = [];\n e.forEach((n) => {\n const o = n.substring(1, n.length - 1).split(\",\");\n s.push(o);\n }), af(r, s, 0, e, i);\n } else\n i.push(r);\n return i;\n}\nconst Dn = (r) => !Array.isArray(r);\nclass ux {\n constructor() {\n this._parsers = [], this._cache = /* @__PURE__ */ new Map(), this._cacheMap = /* @__PURE__ */ new Map();\n }\n /** Clear all entries. */\n reset() {\n this._cacheMap.clear(), this._cache.clear();\n }\n /**\n * Check if the key exists\n * @param key - The key to check\n */\n has(t) {\n return this._cache.has(t);\n }\n /**\n * Fetch entry by key\n * @param key - The key of the entry to get\n */\n get(t) {\n const e = this._cache.get(t);\n return e || console.warn(`[Assets] Asset id ${t} was not found in the Cache`), e;\n }\n /**\n * Set a value by key or keys name\n * @param key - The key or keys to set\n * @param value - The value to store in the cache or from which cacheable assets will be derived.\n */\n set(t, e) {\n const i = ve(t);\n let s;\n for (let a = 0; a < this.parsers.length; a++) {\n const l = this.parsers[a];\n if (l.test(e)) {\n s = l.getCacheableAssets(i, e);\n break;\n }\n }\n s || (s = {}, i.forEach((a) => {\n s[a] = e;\n }));\n const n = Object.keys(s), o = {\n cacheKeys: n,\n keys: i\n };\n if (i.forEach((a) => {\n this._cacheMap.set(a, o);\n }), n.forEach((a) => {\n this._cache.has(a) && this._cache.get(a) !== e && console.warn(\"[Cache] already has key:\", a), this._cache.set(a, s[a]);\n }), e instanceof Y) {\n const a = e;\n i.forEach((l) => {\n a.baseTexture !== Y.EMPTY.baseTexture && et.addToCache(a.baseTexture, l), Y.addToCache(a, l);\n });\n }\n }\n /**\n * Remove entry by key\n *\n * This function will also remove any associated alias from the cache also.\n * @param key - The key of the entry to remove\n */\n remove(t) {\n if (!this._cacheMap.has(t)) {\n console.warn(`[Assets] Asset id ${t} was not found in the Cache`);\n return;\n }\n const e = this._cacheMap.get(t);\n e.cacheKeys.forEach((i) => {\n this._cache.delete(i);\n }), e.keys.forEach((i) => {\n this._cacheMap.delete(i);\n });\n }\n /** All loader parsers registered */\n get parsers() {\n return this._parsers;\n }\n}\nconst Dr = new ux();\nclass dx {\n constructor() {\n this._parsers = [], this._parsersValidated = !1, this.parsers = new Proxy(this._parsers, {\n set: (t, e, i) => (this._parsersValidated = !1, t[e] = i, !0)\n }), this.promiseCache = {};\n }\n /** function used for testing */\n reset() {\n this._parsersValidated = !1, this.promiseCache = {};\n }\n /**\n * Used internally to generate a promise for the asset to be loaded.\n * @param url - The URL to be loaded\n * @param data - any custom additional information relevant to the asset being loaded\n * @returns - a promise that will resolve to an Asset for example a Texture of a JSON object\n */\n _getLoadPromiseAndParser(t, e) {\n const i = {\n promise: null,\n parser: null\n };\n return i.promise = (async () => {\n var o, a;\n let s = null, n = null;\n if (e.loadParser && (n = this._parserHash[e.loadParser], n || console.warn(`[Assets] specified load parser \"${e.loadParser}\" not found while loading ${t}`)), !n) {\n for (let l = 0; l < this.parsers.length; l++) {\n const h = this.parsers[l];\n if (h.load && ((o = h.test) != null && o.call(h, t, e, this))) {\n n = h;\n break;\n }\n }\n if (!n)\n return console.warn(`[Assets] ${t} could not be loaded as we don't know how to parse it, ensure the correct parser has been added`), null;\n }\n s = await n.load(t, e, this), i.parser = n;\n for (let l = 0; l < this.parsers.length; l++) {\n const h = this.parsers[l];\n h.parse && h.parse && await ((a = h.testParse) == null ? void 0 : a.call(h, s, e, this)) && (s = await h.parse(s, e, this) || s, i.parser = h);\n }\n return s;\n })(), i;\n }\n async load(t, e) {\n this._parsersValidated || this._validateParsers();\n let i = 0;\n const s = {}, n = Dn(t), o = ve(t, (h) => ({\n alias: [h],\n src: h\n })), a = o.length, l = o.map(async (h) => {\n const c = kt.toAbsolute(h.src);\n if (!s[h.src])\n try {\n this.promiseCache[c] || (this.promiseCache[c] = this._getLoadPromiseAndParser(c, h)), s[h.src] = await this.promiseCache[c].promise, e && e(++i / a);\n } catch (u) {\n throw delete this.promiseCache[c], delete s[h.src], new Error(`[Loader.load] Failed to load ${c}.\n${u}`);\n }\n });\n return await Promise.all(l), n ? s[o[0].src] : s;\n }\n /**\n * Unloads one or more assets. Any unloaded assets will be destroyed, freeing up memory for your app.\n * The parser that created the asset, will be the one that unloads it.\n * @example\n * // Single asset:\n * const asset = await Loader.load('cool.png');\n *\n * await Loader.unload('cool.png');\n *\n * console.log(asset.destroyed); // true\n * @param assetsToUnloadIn - urls that you want to unload, or a single one!\n */\n async unload(t) {\n const e = ve(t, (i) => ({\n alias: [i],\n src: i\n })).map(async (i) => {\n var o, a;\n const s = kt.toAbsolute(i.src), n = this.promiseCache[s];\n if (n) {\n const l = await n.promise;\n delete this.promiseCache[s], (a = (o = n.parser) == null ? void 0 : o.unload) == null || a.call(o, l, i, this);\n }\n });\n await Promise.all(e);\n }\n /** validates our parsers, right now it only checks for name conflicts but we can add more here as required! */\n _validateParsers() {\n this._parsersValidated = !0, this._parserHash = this._parsers.filter((t) => t.name).reduce((t, e) => (t[e.name] && console.warn(`[Assets] loadParser name conflict \"${e.name}\"`), { ...t, [e.name]: e }), {});\n }\n}\nvar Ee = /* @__PURE__ */ ((r) => (r[r.Low = 0] = \"Low\", r[r.Normal = 1] = \"Normal\", r[r.High = 2] = \"High\", r))(Ee || {});\nconst fx = \".json\", px = \"application/json\", mx = {\n extension: {\n type: H.LoadParser,\n priority: Ee.Low\n },\n name: \"loadJson\",\n test(r) {\n return Li(r, px) || Er(r, fx);\n },\n async load(r) {\n return await (await W.ADAPTER.fetch(r)).json();\n }\n};\nq.add(mx);\nconst gx = \".txt\", yx = \"text/plain\", _x = {\n name: \"loadTxt\",\n extension: {\n type: H.LoadParser,\n priority: Ee.Low\n },\n test(r) {\n return Li(r, yx) || Er(r, gx);\n },\n async load(r) {\n return await (await W.ADAPTER.fetch(r)).text();\n }\n};\nq.add(_x);\nconst vx = [\n \"normal\",\n \"bold\",\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\"\n], xx = [\".ttf\", \".otf\", \".woff\", \".woff2\"], bx = [\n \"font/ttf\",\n \"font/otf\",\n \"font/woff\",\n \"font/woff2\"\n], wx = /^(--|-?[A-Z_])[0-9A-Z_-]*$/i;\nfunction Ex(r) {\n const t = kt.extname(r), e = kt.basename(r, t).replace(/(-|_)/g, \" \").toLowerCase().split(\" \").map((n) => n.charAt(0).toUpperCase() + n.slice(1));\n let i = e.length > 0;\n for (const n of e)\n if (!n.match(wx)) {\n i = !1;\n break;\n }\n let s = e.join(\" \");\n return i || (s = `\"${s.replace(/[\\\\\"]/g, \"\\\\$&\")}\"`), s;\n}\nconst Tx = /^[0-9A-Za-z%:/?#\\[\\]@!\\$&'()\\*\\+,;=\\-._~]*$/;\nfunction Ax(r) {\n return Tx.test(r) ? r : encodeURI(r);\n}\nconst Sx = {\n extension: {\n type: H.LoadParser,\n priority: Ee.Low\n },\n name: \"loadWebFont\",\n test(r) {\n return Li(r, bx) || Er(r, xx);\n },\n async load(r, t) {\n var i, s, n;\n const e = W.ADAPTER.getFontFaceSet();\n if (e) {\n const o = [], a = ((i = t.data) == null ? void 0 : i.family) ?? Ex(r), l = ((n = (s = t.data) == null ? void 0 : s.weights) == null ? void 0 : n.filter((c) => vx.includes(c))) ?? [\"normal\"], h = t.data ?? {};\n for (let c = 0; c < l.length; c++) {\n const u = l[c], d = new FontFace(a, `url(${Ax(r)})`, {\n ...h,\n weight: u\n });\n await d.load(), e.add(d), o.push(d);\n }\n return o.length === 1 ? o[0] : o;\n }\n return console.warn(\"[loadWebFont] FontFace API is not supported. Skipping loading font\"), null;\n },\n unload(r) {\n (Array.isArray(r) ? r : [r]).forEach((t) => W.ADAPTER.getFontFaceSet().delete(t));\n }\n};\nq.add(Sx);\nconst Cx = `(function() {\n \"use strict\";\n const WHITE_PNG = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=\";\n async function checkImageBitmap() {\n try {\n if (typeof createImageBitmap != \"function\")\n return !1;\n const imageBlob = await (await fetch(WHITE_PNG)).blob(), imageBitmap = await createImageBitmap(imageBlob);\n return imageBitmap.width === 1 && imageBitmap.height === 1;\n } catch {\n return !1;\n }\n }\n checkImageBitmap().then((result) => {\n self.postMessage(result);\n });\n})();\n`;\nlet Ei = null, Wa = class {\n constructor() {\n Ei || (Ei = URL.createObjectURL(new Blob([Cx], { type: \"application/javascript\" }))), this.worker = new Worker(Ei);\n }\n};\nWa.revokeObjectURL = function() {\n Ei && (URL.revokeObjectURL(Ei), Ei = null);\n};\nconst Ix = `(function() {\n \"use strict\";\n async function loadImageBitmap(url) {\n const response = await fetch(url);\n if (!response.ok)\n throw new Error(\\`[WorkerManager.loadImageBitmap] Failed to fetch \\${url}: \\${response.status} \\${response.statusText}\\`);\n const imageBlob = await response.blob();\n return await createImageBitmap(imageBlob);\n }\n self.onmessage = async (event) => {\n try {\n const imageBitmap = await loadImageBitmap(event.data.data[0]);\n self.postMessage({\n data: imageBitmap,\n uuid: event.data.uuid,\n id: event.data.id\n }, [imageBitmap]);\n } catch (e) {\n self.postMessage({\n error: e,\n uuid: event.data.uuid,\n id: event.data.id\n });\n }\n };\n})();\n`;\nlet Ti = null;\nclass lf {\n constructor() {\n Ti || (Ti = URL.createObjectURL(new Blob([Ix], { type: \"application/javascript\" }))), this.worker = new Worker(Ti);\n }\n}\nlf.revokeObjectURL = function() {\n Ti && (URL.revokeObjectURL(Ti), Ti = null);\n};\nlet Ec = 0, $o;\nclass Px {\n constructor() {\n this._initialized = !1, this._createdWorkers = 0, this.workerPool = [], this.queue = [], this.resolveHash = {};\n }\n isImageBitmapSupported() {\n return this._isImageBitmapSupported !== void 0 ? this._isImageBitmapSupported : (this._isImageBitmapSupported = new Promise((t) => {\n const { worker: e } = new Wa();\n e.addEventListener(\"message\", (i) => {\n e.terminate(), Wa.revokeObjectURL(), t(i.data);\n });\n }), this._isImageBitmapSupported);\n }\n loadImageBitmap(t) {\n return this._run(\"loadImageBitmap\", [t]);\n }\n async _initWorkers() {\n this._initialized || (this._initialized = !0);\n }\n getWorker() {\n $o === void 0 && ($o = navigator.hardwareConcurrency || 4);\n let t = this.workerPool.pop();\n return !t && this._createdWorkers < $o && (this._createdWorkers++, t = new lf().worker, t.addEventListener(\"message\", (e) => {\n this.complete(e.data), this.returnWorker(e.target), this.next();\n })), t;\n }\n returnWorker(t) {\n this.workerPool.push(t);\n }\n complete(t) {\n t.error !== void 0 ? this.resolveHash[t.uuid].reject(t.error) : this.resolveHash[t.uuid].resolve(t.data), this.resolveHash[t.uuid] = null;\n }\n async _run(t, e) {\n await this._initWorkers();\n const i = new Promise((s, n) => {\n this.queue.push({ id: t, arguments: e, resolve: s, reject: n });\n });\n return this.next(), i;\n }\n next() {\n if (!this.queue.length)\n return;\n const t = this.getWorker();\n if (!t)\n return;\n const e = this.queue.pop(), i = e.id;\n this.resolveHash[Ec] = { resolve: e.resolve, reject: e.reject }, t.postMessage({\n data: e.arguments,\n uuid: Ec++,\n id: i\n });\n }\n}\nconst Tc = new Px();\nfunction vs(r, t, e) {\n r.resource.internal = !0;\n const i = new Y(r), s = () => {\n delete t.promiseCache[e], Dr.has(e) && Dr.remove(e);\n };\n return i.baseTexture.once(\"destroyed\", () => {\n e in t.promiseCache && (console.warn(\"[Assets] A BaseTexture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the BaseTexture.\"), s());\n }), i.once(\"destroyed\", () => {\n r.destroyed || (console.warn(\"[Assets] A Texture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the Texture.\"), s());\n }), i;\n}\nconst Rx = [\".jpeg\", \".jpg\", \".png\", \".webp\", \".avif\"], Mx = [\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\",\n \"image/avif\"\n];\nasync function Bx(r) {\n const t = await W.ADAPTER.fetch(r);\n if (!t.ok)\n throw new Error(`[loadImageBitmap] Failed to fetch ${r}: ${t.status} ${t.statusText}`);\n const e = await t.blob();\n return await createImageBitmap(e);\n}\nconst Zn = {\n name: \"loadTextures\",\n extension: {\n type: H.LoadParser,\n priority: Ee.High\n },\n config: {\n preferWorkers: !0,\n preferCreateImageBitmap: !0,\n crossOrigin: \"anonymous\"\n },\n test(r) {\n return Li(r, Mx) || Er(r, Rx);\n },\n async load(r, t, e) {\n var a;\n const i = globalThis.createImageBitmap && this.config.preferCreateImageBitmap;\n let s;\n i ? this.config.preferWorkers && await Tc.isImageBitmapSupported() ? s = await Tc.loadImageBitmap(r) : s = await Bx(r) : s = await new Promise((l, h) => {\n const c = new Image();\n c.crossOrigin = this.config.crossOrigin, c.src = r, c.complete ? l(c) : (c.onload = () => l(c), c.onerror = (u) => h(u));\n });\n const n = { ...t.data };\n n.resolution ?? (n.resolution = rr(r)), i && ((a = n.resourceOptions) == null ? void 0 : a.ownsImageBitmap) === void 0 && (n.resourceOptions = { ...n.resourceOptions }, n.resourceOptions.ownsImageBitmap = !0);\n const o = new et(s, n);\n return o.resource.src = r, vs(o, e, r);\n },\n unload(r) {\n r.destroy(!0);\n }\n};\nq.add(Zn);\nconst Dx = \".svg\", Ox = \"image/svg+xml\", Fx = {\n extension: {\n type: H.LoadParser,\n priority: Ee.High\n },\n name: \"loadSVG\",\n test(r) {\n return Li(r, Ox) || Er(r, Dx);\n },\n async testParse(r) {\n return Fa.test(r);\n },\n async parse(r, t, e) {\n var n;\n const i = new Fa(r, (n = t == null ? void 0 : t.data) == null ? void 0 : n.resourceOptions);\n await i.load();\n const s = new et(i, {\n resolution: rr(r),\n ...t == null ? void 0 : t.data\n });\n return s.resource.src = t.src, vs(s, e, t.src);\n },\n async load(r, t) {\n return (await W.ADAPTER.fetch(r)).text();\n },\n unload: Zn.unload\n};\nq.add(Fx);\nconst Lx = [\".mp4\", \".m4v\", \".webm\", \".ogv\"], Nx = [\n \"video/mp4\",\n \"video/webm\",\n \"video/ogg\"\n], Ux = {\n name: \"loadVideo\",\n extension: {\n type: H.LoadParser,\n priority: Ee.High\n },\n config: {\n defaultAutoPlay: !0,\n defaultUpdateFPS: 0,\n defaultLoop: !1,\n defaultMuted: !1,\n defaultPlaysinline: !0\n },\n test(r) {\n return Li(r, Nx) || Er(r, Lx);\n },\n async load(r, t, e) {\n var o;\n let i;\n const s = await (await W.ADAPTER.fetch(r)).blob(), n = URL.createObjectURL(s);\n try {\n const a = {\n autoPlay: this.config.defaultAutoPlay,\n updateFPS: this.config.defaultUpdateFPS,\n loop: this.config.defaultLoop,\n muted: this.config.defaultMuted,\n playsinline: this.config.defaultPlaysinline,\n ...(o = t == null ? void 0 : t.data) == null ? void 0 : o.resourceOptions,\n autoLoad: !0\n }, l = new tf(n, a);\n await l.load();\n const h = new et(l, {\n alphaMode: await V_(),\n resolution: rr(r),\n ...t == null ? void 0 : t.data\n });\n h.resource.src = r, i = vs(h, e, r), i.baseTexture.once(\"destroyed\", () => {\n URL.revokeObjectURL(n);\n });\n } catch (a) {\n throw URL.revokeObjectURL(n), a;\n }\n return i;\n },\n unload(r) {\n r.destroy(!0);\n }\n};\nq.add(Ux);\nclass kx {\n constructor() {\n this._defaultBundleIdentifierOptions = {\n connector: \"-\",\n createBundleAssetId: (t, e) => `${t}${this._bundleIdConnector}${e}`,\n extractAssetIdFromBundle: (t, e) => e.replace(`${t}${this._bundleIdConnector}`, \"\")\n }, this._bundleIdConnector = this._defaultBundleIdentifierOptions.connector, this._createBundleAssetId = this._defaultBundleIdentifierOptions.createBundleAssetId, this._extractAssetIdFromBundle = this._defaultBundleIdentifierOptions.extractAssetIdFromBundle, this._assetMap = {}, this._preferredOrder = [], this._parsers = [], this._resolverHash = {}, this._bundles = {};\n }\n /**\n * Override how the resolver deals with generating bundle ids.\n * must be called before any bundles are added\n * @param bundleIdentifier - the bundle identifier options\n */\n setBundleIdentifier(t) {\n if (this._bundleIdConnector = t.connector ?? this._bundleIdConnector, this._createBundleAssetId = t.createBundleAssetId ?? this._createBundleAssetId, this._extractAssetIdFromBundle = t.extractAssetIdFromBundle ?? this._extractAssetIdFromBundle, this._extractAssetIdFromBundle(\"foo\", this._createBundleAssetId(\"foo\", \"bar\")) !== \"bar\")\n throw new Error(\"[Resolver] GenerateBundleAssetId are not working correctly\");\n }\n /**\n * Let the resolver know which assets you prefer to use when resolving assets.\n * Multiple prefer user defined rules can be added.\n * @example\n * resolver.prefer({\n * // first look for something with the correct format, and then then correct resolution\n * priority: ['format', 'resolution'],\n * params:{\n * format:'webp', // prefer webp images\n * resolution: 2, // prefer a resolution of 2\n * }\n * })\n * resolver.add('foo', ['bar@2x.webp', 'bar@2x.png', 'bar.webp', 'bar.png']);\n * resolver.resolveUrl('foo') // => 'bar@2x.webp'\n * @param preferOrders - the prefer options\n */\n prefer(...t) {\n t.forEach((e) => {\n this._preferredOrder.push(e), e.priority || (e.priority = Object.keys(e.params));\n }), this._resolverHash = {};\n }\n /**\n * Set the base path to prepend to all urls when resolving\n * @example\n * resolver.basePath = 'https://home.com/';\n * resolver.add('foo', 'bar.ong');\n * resolver.resolveUrl('foo', 'bar.png'); // => 'https://home.com/bar.png'\n * @param basePath - the base path to use\n */\n set basePath(t) {\n this._basePath = t;\n }\n get basePath() {\n return this._basePath;\n }\n /**\n * Set the root path for root-relative URLs. By default the `basePath`'s root is used. If no `basePath` is set, then the\n * default value for browsers is `window.location.origin`\n * @example\n * // Application hosted on https://home.com/some-path/index.html\n * resolver.basePath = 'https://home.com/some-path/';\n * resolver.rootPath = 'https://home.com/';\n * resolver.add('foo', '/bar.png');\n * resolver.resolveUrl('foo', '/bar.png'); // => 'https://home.com/bar.png'\n * @param rootPath - the root path to use\n */\n set rootPath(t) {\n this._rootPath = t;\n }\n get rootPath() {\n return this._rootPath;\n }\n /**\n * All the active URL parsers that help the parser to extract information and create\n * an asset object-based on parsing the URL itself.\n *\n * Can be added using the extensions API\n * @example\n * resolver.add('foo', [\n * {\n * resolution: 2,\n * format: 'png',\n * src: 'image@2x.png',\n * },\n * {\n * resolution:1,\n * format:'png',\n * src: 'image.png',\n * },\n * ]);\n *\n * // With a url parser the information such as resolution and file format could extracted from the url itself:\n * extensions.add({\n * extension: ExtensionType.ResolveParser,\n * test: loadTextures.test, // test if url ends in an image\n * parse: (value: string) =>\n * ({\n * resolution: parseFloat(settings.RETINA_PREFIX.exec(value)?.[1] ?? '1'),\n * format: value.split('.').pop(),\n * src: value,\n * }),\n * });\n *\n * // Now resolution and format can be extracted from the url\n * resolver.add('foo', [\n * 'image@2x.png',\n * 'image.png',\n * ]);\n */\n get parsers() {\n return this._parsers;\n }\n /** Used for testing, this resets the resolver to its initial state */\n reset() {\n this.setBundleIdentifier(this._defaultBundleIdentifierOptions), this._assetMap = {}, this._preferredOrder = [], this._resolverHash = {}, this._rootPath = null, this._basePath = null, this._manifest = null, this._bundles = {}, this._defaultSearchParams = null;\n }\n /**\n * Sets the default URL search parameters for the URL resolver. The urls can be specified as a string or an object.\n * @param searchParams - the default url parameters to append when resolving urls\n */\n setDefaultSearchParams(t) {\n if (typeof t == \"string\")\n this._defaultSearchParams = t;\n else {\n const e = t;\n this._defaultSearchParams = Object.keys(e).map((i) => `${encodeURIComponent(i)}=${encodeURIComponent(e[i])}`).join(\"&\");\n }\n }\n /**\n * Returns the aliases for a given asset\n * @param asset - the asset to get the aliases for\n */\n getAlias(t) {\n const { alias: e, name: i, src: s, srcs: n } = t;\n return ve(\n e || i || s || n,\n (o) => typeof o == \"string\" ? o : Array.isArray(o) ? o.map((a) => (a == null ? void 0 : a.src) ?? (a == null ? void 0 : a.srcs) ?? a) : o != null && o.src || o != null && o.srcs ? o.src ?? o.srcs : o,\n !0\n );\n }\n /**\n * Add a manifest to the asset resolver. This is a nice way to add all the asset information in one go.\n * generally a manifest would be built using a tool.\n * @param manifest - the manifest to add to the resolver\n */\n addManifest(t) {\n this._manifest && console.warn(\"[Resolver] Manifest already exists, this will be overwritten\"), this._manifest = t, t.bundles.forEach((e) => {\n this.addBundle(e.name, e.assets);\n });\n }\n /**\n * This adds a bundle of assets in one go so that you can resolve them as a group.\n * For example you could add a bundle for each screen in you pixi app\n * @example\n * resolver.addBundle('animals', {\n * bunny: 'bunny.png',\n * chicken: 'chicken.png',\n * thumper: 'thumper.png',\n * });\n *\n * const resolvedAssets = await resolver.resolveBundle('animals');\n * @param bundleId - The id of the bundle to add\n * @param assets - A record of the asset or assets that will be chosen from when loading via the specified key\n */\n addBundle(t, e) {\n const i = [];\n Array.isArray(e) ? e.forEach((s) => {\n const n = s.src ?? s.srcs, o = s.alias ?? s.name;\n let a;\n if (typeof o == \"string\") {\n const l = this._createBundleAssetId(t, o);\n i.push(l), a = [o, l];\n } else {\n const l = o.map((h) => this._createBundleAssetId(t, h));\n i.push(...l), a = [...o, ...l];\n }\n this.add({\n ...s,\n alias: a,\n src: n\n });\n }) : Object.keys(e).forEach((s) => {\n const n = [s, this._createBundleAssetId(t, s)];\n if (typeof e[s] == \"string\")\n this.add({\n alias: n,\n src: e[s]\n });\n else if (Array.isArray(e[s]))\n this.add({\n alias: n,\n src: e[s]\n });\n else {\n const o = e[s], a = o.src ?? o.srcs;\n this.add({\n ...o,\n alias: n,\n src: Array.isArray(a) ? a : [a]\n });\n }\n i.push(...n);\n }), this._bundles[t] = i;\n }\n add(t, e, i, s, n) {\n const o = [];\n typeof t == \"string\" || Array.isArray(t) && typeof t[0] == \"string\" ? (at(\"7.2.0\", `Assets.add now uses an object instead of individual parameters.\nPlease 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);\n let a;\n a = (l) => {\n this.hasKey(l) && console.warn(`[Resolver] already has key: ${l} overwriting`);\n }, ve(o).forEach((l) => {\n const { src: h, srcs: c } = l;\n let { data: u, format: d, loadParser: f } = l;\n const p = ve(h || c).map((y) => typeof y == \"string\" ? cx(y) : Array.isArray(y) ? y : [y]), m = this.getAlias(l);\n Array.isArray(m) ? m.forEach(a) : a(m);\n const g = [];\n p.forEach((y) => {\n y.forEach((x) => {\n let _ = {};\n if (typeof x != \"object\") {\n _.src = x;\n for (let v = 0; v < this._parsers.length; v++) {\n const w = this._parsers[v];\n if (w.test(x)) {\n _ = w.parse(x);\n break;\n }\n }\n } else\n u = x.data ?? u, d = x.format ?? d, f = x.loadParser ?? f, _ = {\n ..._,\n ...x\n };\n if (!m)\n throw new Error(`[Resolver] alias is undefined for this asset: ${_.src}`);\n _ = this.buildResolvedAsset(_, {\n aliases: m,\n data: u,\n format: d,\n loadParser: f\n }), g.push(_);\n });\n }), m.forEach((y) => {\n this._assetMap[y] = g;\n });\n });\n }\n // TODO: this needs an overload like load did in Assets\n /**\n * If the resolver has had a manifest set via setManifest, this will return the assets urls for\n * a given bundleId or bundleIds.\n * @example\n * // Manifest Example\n * const manifest = {\n * bundles: [\n * {\n * name: 'load-screen',\n * assets: [\n * {\n * alias: 'background',\n * src: 'sunset.png',\n * },\n * {\n * alias: 'bar',\n * src: 'load-bar.{png,webp}',\n * },\n * ],\n * },\n * {\n * name: 'game-screen',\n * assets: [\n * {\n * alias: 'character',\n * src: 'robot.png',\n * },\n * {\n * alias: 'enemy',\n * src: 'bad-guy.png',\n * },\n * ],\n * },\n * ]\n * };\n *\n * resolver.setManifest(manifest);\n * const resolved = resolver.resolveBundle('load-screen');\n * @param bundleIds - The bundle ids to resolve\n * @returns All the bundles assets or a hash of assets for each bundle specified\n */\n resolveBundle(t) {\n const e = Dn(t);\n t = ve(t);\n const i = {};\n return t.forEach((s) => {\n const n = this._bundles[s];\n if (n) {\n const o = this.resolve(n), a = {};\n for (const l in o) {\n const h = o[l];\n a[this._extractAssetIdFromBundle(s, l)] = h;\n }\n i[s] = a;\n }\n }), e ? i[t[0]] : i;\n }\n /**\n * Does exactly what resolve does, but returns just the URL rather than the whole asset object\n * @param key - The key or keys to resolve\n * @returns - The URLs associated with the key(s)\n */\n resolveUrl(t) {\n const e = this.resolve(t);\n if (typeof t != \"string\") {\n const i = {};\n for (const s in e)\n i[s] = e[s].src;\n return i;\n }\n return e.src;\n }\n resolve(t) {\n const e = Dn(t);\n t = ve(t);\n const i = {};\n return t.forEach((s) => {\n if (!this._resolverHash[s])\n if (this._assetMap[s]) {\n let n = this._assetMap[s];\n const o = n[0], a = this._getPreferredOrder(n);\n a == null || a.priority.forEach((l) => {\n a.params[l].forEach((h) => {\n const c = n.filter((u) => u[l] ? u[l] === h : !1);\n c.length && (n = c);\n });\n }), this._resolverHash[s] = n[0] ?? o;\n } else\n this._resolverHash[s] = this.buildResolvedAsset({\n alias: [s],\n src: s\n }, {});\n i[s] = this._resolverHash[s];\n }), e ? i[t[0]] : i;\n }\n /**\n * Checks if an asset with a given key exists in the resolver\n * @param key - The key of the asset\n */\n hasKey(t) {\n return !!this._assetMap[t];\n }\n /**\n * Checks if a bundle with the given key exists in the resolver\n * @param key - The key of the bundle\n */\n hasBundle(t) {\n return !!this._bundles[t];\n }\n /**\n * Internal function for figuring out what prefer criteria an asset should use.\n * @param assets\n */\n _getPreferredOrder(t) {\n for (let e = 0; e < t.length; e++) {\n const i = t[0], s = this._preferredOrder.find((n) => n.params.format.includes(i.format));\n if (s)\n return s;\n }\n return this._preferredOrder[0];\n }\n /**\n * Appends the default url parameters to the url\n * @param url - The url to append the default parameters to\n * @returns - The url with the default parameters appended\n */\n _appendDefaultSearchParams(t) {\n if (!this._defaultSearchParams)\n return t;\n const e = /\\?/.test(t) ? \"&\" : \"?\";\n return `${t}${e}${this._defaultSearchParams}`;\n }\n buildResolvedAsset(t, e) {\n const { aliases: i, data: s, loadParser: n, format: o } = e;\n return (this._basePath || this._rootPath) && (t.src = kt.toAbsolute(t.src, this._basePath, this._rootPath)), t.alias = i ?? t.alias ?? [t.src], t.src = this._appendDefaultSearchParams(t.src), t.data = { ...s || {}, ...t.data }, t.loadParser = n ?? t.loadParser, t.format = o ?? t.format ?? kt.extname(t.src).slice(1), t.srcs = t.src, t.name = t.alias, t;\n }\n}\nclass Gx {\n constructor() {\n this._detections = [], this._initialized = !1, this.resolver = new kx(), this.loader = new dx(), this.cache = Dr, this._backgroundLoader = new hx(this.loader), this._backgroundLoader.active = !0, this.reset();\n }\n /**\n * Best practice is to call this function before any loading commences\n * Initiating is the best time to add any customization to the way things are loaded.\n *\n * you do not need to call this for the Asset class to work, only if you want to set any initial properties\n * @param options - options to initialize the Asset manager with\n */\n async init(t = {}) {\n var n, o;\n if (this._initialized) {\n console.warn(\"[Assets]AssetManager already initialized, did you load before calling this Assets.init()?\");\n return;\n }\n if (this._initialized = !0, t.defaultSearchParams && this.resolver.setDefaultSearchParams(t.defaultSearchParams), t.basePath && (this.resolver.basePath = t.basePath), t.bundleIdentifier && this.resolver.setBundleIdentifier(t.bundleIdentifier), t.manifest) {\n let a = t.manifest;\n typeof a == \"string\" && (a = await this.load(a)), this.resolver.addManifest(a);\n }\n const e = ((n = t.texturePreference) == null ? void 0 : n.resolution) ?? 1, i = typeof e == \"number\" ? [e] : e, s = await this._detectFormats({\n preferredFormats: (o = t.texturePreference) == null ? void 0 : o.format,\n skipDetections: t.skipDetections,\n detections: this._detections\n });\n this.resolver.prefer({\n params: {\n format: s,\n resolution: i\n }\n }), t.preferences && this.setPreferences(t.preferences);\n }\n add(t, e, i, s, n) {\n this.resolver.add(t, e, i, s, n);\n }\n async load(t, e) {\n this._initialized || await this.init();\n const i = Dn(t), s = ve(t).map((a) => {\n if (typeof a != \"string\") {\n const l = this.resolver.getAlias(a);\n return l.some((h) => !this.resolver.hasKey(h)) && this.add(a), Array.isArray(l) ? l[0] : l;\n }\n return this.resolver.hasKey(a) || this.add({ alias: a, src: a }), a;\n }), n = this.resolver.resolve(s), o = await this._mapLoadToResolve(n, e);\n return i ? o[s[0]] : o;\n }\n /**\n * This adds a bundle of assets in one go so that you can load them as a group.\n * For example you could add a bundle for each screen in you pixi app\n * @example\n * import { Assets } from 'pixi.js';\n *\n * Assets.addBundle('animals', {\n * bunny: 'bunny.png',\n * chicken: 'chicken.png',\n * thumper: 'thumper.png',\n * });\n *\n * const assets = await Assets.loadBundle('animals');\n * @param bundleId - the id of the bundle to add\n * @param assets - a record of the asset or assets that will be chosen from when loading via the specified key\n */\n addBundle(t, e) {\n this.resolver.addBundle(t, e);\n }\n /**\n * Bundles are a way to load multiple assets at once.\n * If a manifest has been provided to the init function then you can load a bundle, or bundles.\n * you can also add bundles via `addBundle`\n * @example\n * import { Assets } from 'pixi.js';\n *\n * // Manifest Example\n * const manifest = {\n * bundles: [\n * {\n * name: 'load-screen',\n * assets: [\n * {\n * alias: 'background',\n * src: 'sunset.png',\n * },\n * {\n * alias: 'bar',\n * src: 'load-bar.{png,webp}',\n * },\n * ],\n * },\n * {\n * name: 'game-screen',\n * assets: [\n * {\n * alias: 'character',\n * src: 'robot.png',\n * },\n * {\n * alias: 'enemy',\n * src: 'bad-guy.png',\n * },\n * ],\n * },\n * ]\n * };\n *\n * await Assets.init({ manifest });\n *\n * // Load a bundle...\n * loadScreenAssets = await Assets.loadBundle('load-screen');\n * // Load another bundle...\n * gameScreenAssets = await Assets.loadBundle('game-screen');\n * @param bundleIds - the bundle id or ids to load\n * @param onProgress - Optional function that is called when progress on asset loading is made.\n * The function is passed a single parameter, `progress`, which represents the percentage (0.0 - 1.0)\n * of the assets loaded. Do not use this function to detect when assets are complete and available,\n * instead use the Promise returned by this function.\n * @returns all the bundles assets or a hash of assets for each bundle specified\n */\n async loadBundle(t, e) {\n this._initialized || await this.init();\n let i = !1;\n typeof t == \"string\" && (i = !0, t = [t]);\n const s = this.resolver.resolveBundle(t), n = {}, o = Object.keys(s);\n let a = 0, l = 0;\n const h = () => {\n e == null || e(++a / l);\n }, c = o.map((u) => {\n const d = s[u];\n return l += Object.keys(d).length, this._mapLoadToResolve(d, h).then((f) => {\n n[u] = f;\n });\n });\n return await Promise.all(c), i ? n[t[0]] : n;\n }\n /**\n * Initiate a background load of some assets. It will passively begin to load these assets in the background.\n * So when you actually come to loading them you will get a promise that resolves to the loaded assets immediately\n *\n * An example of this might be that you would background load game assets after your inital load.\n * then when you got to actually load your game screen assets when a player goes to the game - the loading\n * would already have stared or may even be complete, saving you having to show an interim load bar.\n * @example\n * import { Assets } from 'pixi.js';\n *\n * Assets.backgroundLoad('bunny.png');\n *\n * // later on in your app...\n * await Assets.loadBundle('bunny.png'); // Will resolve quicker as loading may have completed!\n * @param urls - the url / urls you want to background load\n */\n async backgroundLoad(t) {\n this._initialized || await this.init(), typeof t == \"string\" && (t = [t]);\n const e = this.resolver.resolve(t);\n this._backgroundLoader.add(Object.values(e));\n }\n /**\n * Initiate a background of a bundle, works exactly like backgroundLoad but for bundles.\n * this can only be used if the loader has been initiated with a manifest\n * @example\n * import { Assets } from 'pixi.js';\n *\n * await Assets.init({\n * manifest: {\n * bundles: [\n * {\n * name: 'load-screen',\n * assets: [...],\n * },\n * ...\n * ],\n * },\n * });\n *\n * Assets.backgroundLoadBundle('load-screen');\n *\n * // Later on in your app...\n * await Assets.loadBundle('load-screen'); // Will resolve quicker as loading may have completed!\n * @param bundleIds - the bundleId / bundleIds you want to background load\n */\n async backgroundLoadBundle(t) {\n this._initialized || await this.init(), typeof t == \"string\" && (t = [t]);\n const e = this.resolver.resolveBundle(t);\n Object.values(e).forEach((i) => {\n this._backgroundLoader.add(Object.values(i));\n });\n }\n /**\n * Only intended for development purposes.\n * This will wipe the resolver and caches.\n * You will need to reinitialize the Asset\n */\n reset() {\n this.resolver.reset(), this.loader.reset(), this.cache.reset(), this._initialized = !1;\n }\n get(t) {\n if (typeof t == \"string\")\n return Dr.get(t);\n const e = {};\n for (let i = 0; i < t.length; i++)\n e[i] = Dr.get(t[i]);\n return e;\n }\n /**\n * helper function to map resolved assets back to loaded assets\n * @param resolveResults - the resolve results from the resolver\n * @param onProgress - the progress callback\n */\n async _mapLoadToResolve(t, e) {\n const i = Object.values(t), s = Object.keys(t);\n this._backgroundLoader.active = !1;\n const n = await this.loader.load(i, e);\n this._backgroundLoader.active = !0;\n const o = {};\n return i.forEach((a, l) => {\n const h = n[a.src], c = [a.src];\n a.alias && c.push(...a.alias), o[s[l]] = h, Dr.set(c, h);\n }), o;\n }\n /**\n * Unload an asset or assets. As the Assets class is responsible for creating the assets via the `load` function\n * this will make sure to destroy any assets and release them from memory.\n * Once unloaded, you will need to load the asset again.\n *\n * Use this to help manage assets if you find that you have a large app and you want to free up memory.\n *\n * - it's up to you as the developer to make sure that textures are not actively being used when you unload them,\n * Pixi won't break but you will end up with missing assets. Not a good look for the user!\n * @example\n * import { Assets } from 'pixi.js';\n *\n * // Load a URL:\n * const myImageTexture = await Assets.load('http://some.url.com/image.png'); // => returns a texture\n *\n * await Assets.unload('http://some.url.com/image.png')\n *\n * // myImageTexture will be destroyed now.\n *\n * // Unload multiple assets:\n * const textures = await Assets.unload(['thumper', 'chicko']);\n * @param urls - the urls to unload\n */\n async unload(t) {\n this._initialized || await this.init();\n const e = ve(t).map((s) => typeof s != \"string\" ? s.src : s), i = this.resolver.resolve(e);\n await this._unloadFromResolved(i);\n }\n /**\n * Bundles are a way to manage multiple assets at once.\n * this will unload all files in a bundle.\n *\n * once a bundle has been unloaded, you need to load it again to have access to the assets.\n * @example\n * import { Assets } from 'pixi.js';\n *\n * Assets.addBundle({\n * 'thumper': 'http://some.url.com/thumper.png',\n * })\n *\n * const assets = await Assets.loadBundle('thumper');\n *\n * // Now to unload...\n *\n * await Assets.unloadBundle('thumper');\n *\n * // All assets in the assets object will now have been destroyed and purged from the cache\n * @param bundleIds - the bundle id or ids to unload\n */\n async unloadBundle(t) {\n this._initialized || await this.init(), t = ve(t);\n const e = this.resolver.resolveBundle(t), i = Object.keys(e).map((s) => this._unloadFromResolved(e[s]));\n await Promise.all(i);\n }\n async _unloadFromResolved(t) {\n const e = Object.values(t);\n e.forEach((i) => {\n Dr.remove(i.src);\n }), await this.loader.unload(e);\n }\n /**\n * Detects the supported formats for the browser, and returns an array of supported formats, respecting\n * the users preferred formats order.\n * @param options - the options to use when detecting formats\n * @param options.preferredFormats - the preferred formats to use\n * @param options.skipDetections - if we should skip the detections altogether\n * @param options.detections - the detections to use\n * @returns - the detected formats\n */\n async _detectFormats(t) {\n let e = [];\n t.preferredFormats && (e = Array.isArray(t.preferredFormats) ? t.preferredFormats : [t.preferredFormats]);\n for (const i of t.detections)\n t.skipDetections || await i.test() ? e = await i.add(e) : t.skipDetections || (e = await i.remove(e));\n return e = e.filter((i, s) => e.indexOf(i) === s), e;\n }\n /** All the detection parsers currently added to the Assets class. */\n get detections() {\n return this._detections;\n }\n /**\n * @deprecated since 7.2.0\n * @see {@link Assets.setPreferences}\n */\n get preferWorkers() {\n return Zn.config.preferWorkers;\n }\n set preferWorkers(t) {\n at(\"7.2.0\", \"Assets.prefersWorkers is deprecated, use Assets.setPreferences({ preferWorkers: true }) instead.\"), this.setPreferences({ preferWorkers: t });\n }\n /**\n * General setter for preferences. This is a helper function to set preferences on all parsers.\n * @param preferences - the preferences to set\n */\n setPreferences(t) {\n this.loader.parsers.forEach((e) => {\n e.config && Object.keys(e.config).filter((i) => i in t).forEach((i) => {\n e.config[i] = t[i];\n });\n });\n }\n}\nconst $s = new Gx();\nq.handleByList(H.LoadParser, $s.loader.parsers).handleByList(H.ResolveParser, $s.resolver.parsers).handleByList(H.CacheParser, $s.cache.parsers).handleByList(H.DetectionParser, $s.detections);\nconst $x = {\n extension: H.CacheParser,\n test: (r) => Array.isArray(r) && r.every((t) => t instanceof Y),\n getCacheableAssets: (r, t) => {\n const e = {};\n return r.forEach((i) => {\n t.forEach((s, n) => {\n e[i + (n === 0 ? \"\" : n + 1)] = s;\n });\n }), e;\n }\n};\nq.add($x);\nasync function hf(r) {\n if (\"Image\" in globalThis)\n return new Promise((t) => {\n const e = new Image();\n e.onload = () => {\n t(!0);\n }, e.onerror = () => {\n t(!1);\n }, e.src = r;\n });\n if (\"createImageBitmap\" in globalThis && \"fetch\" in globalThis) {\n try {\n const t = await (await fetch(r)).blob();\n await createImageBitmap(t);\n } catch {\n return !1;\n }\n return !0;\n }\n return !1;\n}\nconst Hx = {\n extension: {\n type: H.DetectionParser,\n priority: 1\n },\n test: async () => hf(\n // eslint-disable-next-line max-len\n \"data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=\"\n ),\n add: async (r) => [...r, \"avif\"],\n remove: async (r) => r.filter((t) => t !== \"avif\")\n};\nq.add(Hx);\nconst Xx = {\n extension: {\n type: H.DetectionParser,\n priority: 0\n },\n test: async () => hf(\n \"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=\"\n ),\n add: async (r) => [...r, \"webp\"],\n remove: async (r) => r.filter((t) => t !== \"webp\")\n};\nq.add(Xx);\nconst Ac = [\"png\", \"jpg\", \"jpeg\"], Vx = {\n extension: {\n type: H.DetectionParser,\n priority: -1\n },\n test: () => Promise.resolve(!0),\n add: async (r) => [...r, ...Ac],\n remove: async (r) => r.filter((t) => !Ac.includes(t))\n};\nq.add(Vx);\nconst zx = \"WorkerGlobalScope\" in globalThis && globalThis instanceof globalThis.WorkerGlobalScope;\nfunction wl(r) {\n return zx ? !1 : document.createElement(\"video\").canPlayType(r) !== \"\";\n}\nconst Wx = {\n extension: {\n type: H.DetectionParser,\n priority: 0\n },\n test: async () => wl(\"video/webm\"),\n add: async (r) => [...r, \"webm\"],\n remove: async (r) => r.filter((t) => t !== \"webm\")\n};\nq.add(Wx);\nconst jx = {\n extension: {\n type: H.DetectionParser,\n priority: 0\n },\n test: async () => wl(\"video/mp4\"),\n add: async (r) => [...r, \"mp4\", \"m4v\"],\n remove: async (r) => r.filter((t) => t !== \"mp4\" && t !== \"m4v\")\n};\nq.add(jx);\nconst Yx = {\n extension: {\n type: H.DetectionParser,\n priority: 0\n },\n test: async () => wl(\"video/ogg\"),\n add: async (r) => [...r, \"ogv\"],\n remove: async (r) => r.filter((t) => t !== \"ogv\")\n};\nq.add(Yx);\nconst qx = {\n extension: H.ResolveParser,\n test: Zn.test,\n parse: (r) => {\n var t;\n return {\n resolution: parseFloat(((t = W.RETINA_PREFIX.exec(r)) == null ? void 0 : t[1]) ?? \"1\"),\n format: kt.extname(r).slice(1),\n src: r\n };\n }\n};\nq.add(qx);\nvar Xt = /* @__PURE__ */ ((r) => (r[r.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776] = \"COMPRESSED_RGB_S3TC_DXT1_EXT\", r[r.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777] = \"COMPRESSED_RGBA_S3TC_DXT1_EXT\", r[r.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778] = \"COMPRESSED_RGBA_S3TC_DXT3_EXT\", r[r.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779] = \"COMPRESSED_RGBA_S3TC_DXT5_EXT\", r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917] = \"COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT\", r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918] = \"COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT\", r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919] = \"COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT\", r[r.COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916] = \"COMPRESSED_SRGB_S3TC_DXT1_EXT\", r[r.COMPRESSED_R11_EAC = 37488] = \"COMPRESSED_R11_EAC\", r[r.COMPRESSED_SIGNED_R11_EAC = 37489] = \"COMPRESSED_SIGNED_R11_EAC\", r[r.COMPRESSED_RG11_EAC = 37490] = \"COMPRESSED_RG11_EAC\", r[r.COMPRESSED_SIGNED_RG11_EAC = 37491] = \"COMPRESSED_SIGNED_RG11_EAC\", r[r.COMPRESSED_RGB8_ETC2 = 37492] = \"COMPRESSED_RGB8_ETC2\", r[r.COMPRESSED_RGBA8_ETC2_EAC = 37496] = \"COMPRESSED_RGBA8_ETC2_EAC\", r[r.COMPRESSED_SRGB8_ETC2 = 37493] = \"COMPRESSED_SRGB8_ETC2\", r[r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497] = \"COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\", r[r.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494] = \"COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2\", r[r.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495] = \"COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2\", r[r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840] = \"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\", r[r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842] = \"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\", r[r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841] = \"COMPRESSED_RGB_PVRTC_2BPPV1_IMG\", r[r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843] = \"COMPRESSED_RGBA_PVRTC_2BPPV1_IMG\", r[r.COMPRESSED_RGB_ETC1_WEBGL = 36196] = \"COMPRESSED_RGB_ETC1_WEBGL\", r[r.COMPRESSED_RGB_ATC_WEBGL = 35986] = \"COMPRESSED_RGB_ATC_WEBGL\", r[r.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987] = \"COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL\", r[r.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798] = \"COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL\", r[r.COMPRESSED_RGBA_ASTC_4x4_KHR = 37808] = \"COMPRESSED_RGBA_ASTC_4x4_KHR\", r[r.COMPRESSED_RGBA_BPTC_UNORM_EXT = 36492] = \"COMPRESSED_RGBA_BPTC_UNORM_EXT\", r[r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 36493] = \"COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT\", r[r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT = 36494] = \"COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT\", r[r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 36495] = \"COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT\", r))(Xt || {});\nconst On = {\n // WEBGL_compressed_texture_s3tc\n 33776: 0.5,\n 33777: 0.5,\n 33778: 1,\n 33779: 1,\n // WEBGL_compressed_texture_s3tc\n 35916: 0.5,\n 35917: 0.5,\n 35918: 1,\n 35919: 1,\n // WEBGL_compressed_texture_etc\n 37488: 0.5,\n 37489: 0.5,\n 37490: 1,\n 37491: 1,\n 37492: 0.5,\n 37496: 1,\n 37493: 0.5,\n 37497: 1,\n 37494: 0.5,\n // ~~\n 37495: 0.5,\n // ~~\n // WEBGL_compressed_texture_pvrtc\n 35840: 0.5,\n 35842: 0.5,\n 35841: 0.25,\n 35843: 0.25,\n // WEBGL_compressed_texture_etc1\n 36196: 0.5,\n // @see https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_compressed_ATC_texture.txt\n // WEBGL_compressed_texture_atc\n 35986: 0.5,\n 35987: 1,\n 34798: 1,\n // @see https://registry.khronos.org/OpenGL/extensions/KHR/KHR_texture_compression_astc_hdr.txt\n // WEBGL_compressed_texture_astc\n /* eslint-disable-next-line camelcase */\n 37808: 1,\n // @see https://registry.khronos.org/OpenGL/extensions/EXT/EXT_texture_compression_bptc.txt\n // EXT_texture_compression_bptc\n 36492: 1,\n 36493: 1,\n 36494: 1,\n 36495: 1\n};\nlet Pe, ci;\nfunction Sc() {\n ci = {\n bptc: Pe.getExtension(\"EXT_texture_compression_bptc\"),\n astc: Pe.getExtension(\"WEBGL_compressed_texture_astc\"),\n etc: Pe.getExtension(\"WEBGL_compressed_texture_etc\"),\n s3tc: Pe.getExtension(\"WEBGL_compressed_texture_s3tc\"),\n s3tc_sRGB: Pe.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\"),\n /* eslint-disable-line camelcase */\n pvrtc: Pe.getExtension(\"WEBGL_compressed_texture_pvrtc\") || Pe.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\"),\n etc1: Pe.getExtension(\"WEBGL_compressed_texture_etc1\"),\n atc: Pe.getExtension(\"WEBGL_compressed_texture_atc\")\n };\n}\nconst Kx = {\n extension: {\n type: H.DetectionParser,\n priority: 2\n },\n test: async () => {\n const r = W.ADAPTER.createCanvas().getContext(\"webgl\");\n return r ? (Pe = r, !0) : (console.warn(\"WebGL not available for compressed textures.\"), !1);\n },\n add: async (r) => {\n ci || Sc();\n const t = [];\n for (const e in ci)\n ci[e] && t.push(e);\n return [...t, ...r];\n },\n remove: async (r) => (ci || Sc(), r.filter((t) => !(t in ci)))\n};\nq.add(Kx);\nclass Zx extends Wn {\n /**\n * @param source - The buffer/URL of the texture file.\n * @param {PIXI.IBlobResourceOptions} [options]\n * @param {boolean} [options.autoLoad=false] - Whether to fetch the data immediately;\n * you can fetch it later via {@link PIXI.BlobResource#load}.\n * @param {number} [options.width=1] - The width in pixels.\n * @param {number} [options.height=1] - The height in pixels.\n * @param {1|2|4|8} [options.unpackAlignment=4] - The alignment of the pixel rows.\n */\n constructor(t, e = { width: 1, height: 1, autoLoad: !0 }) {\n let i, s;\n typeof t == \"string\" ? (i = t, s = new Uint8Array()) : (i = null, s = t), super(s, e), this.origin = i, this.buffer = s ? new wa(s) : null, this._load = null, this.loaded = !1, this.origin !== null && e.autoLoad !== !1 && this.load(), this.origin === null && this.buffer && (this._load = Promise.resolve(this), this.loaded = !0, this.onBlobLoaded(this.buffer.rawBinaryData));\n }\n onBlobLoaded(t) {\n }\n /** Loads the blob */\n load() {\n return this._load ? this._load : (this._load = fetch(this.origin).then((t) => t.blob()).then((t) => t.arrayBuffer()).then((t) => (this.data = new Uint32Array(t), this.buffer = new wa(t), this.loaded = !0, this.onBlobLoaded(t), this.update(), this)), this._load);\n }\n}\nclass $r extends Zx {\n /**\n * @param source - the buffer/URL holding the compressed texture data\n * @param options\n * @param {PIXI.INTERNAL_FORMATS} options.format - the compression format\n * @param {number} options.width - the image width in pixels.\n * @param {number} options.height - the image height in pixels.\n * @param {number} [options.level=1] - the mipmap levels stored in the compressed texture, including level 0.\n * @param {number} [options.levelBuffers] - the buffers for each mipmap level. `CompressedTextureResource` can allows you\n * to pass `null` for `source`, for cases where each level is stored in non-contiguous memory.\n */\n constructor(t, e) {\n super(t, e), this.format = e.format, this.levels = e.levels || 1, this._width = e.width, this._height = e.height, this._extension = $r._formatToExtension(this.format), (e.levelBuffers || this.buffer) && (this._levelBuffers = e.levelBuffers || $r._createLevelBuffers(\n t instanceof Uint8Array ? t : this.buffer.uint8View,\n this.format,\n this.levels,\n 4,\n 4,\n // PVRTC has 8x4 blocks in 2bpp mode\n this.width,\n this.height\n ));\n }\n /**\n * @override\n * @param renderer - A reference to the current renderer\n * @param _texture - the texture\n * @param _glTexture - texture instance for this webgl context\n */\n upload(t, e, i) {\n const s = t.gl;\n if (!t.context.extensions[this._extension])\n throw new Error(`${this._extension} textures are not supported on the current machine`);\n if (!this._levelBuffers)\n return !1;\n s.pixelStorei(s.UNPACK_ALIGNMENT, 4);\n for (let n = 0, o = this.levels; n < o; n++) {\n const { levelID: a, levelWidth: l, levelHeight: h, levelBuffer: c } = this._levelBuffers[n];\n s.compressedTexImage2D(s.TEXTURE_2D, a, this.format, l, h, 0, c);\n }\n return !0;\n }\n /** @protected */\n onBlobLoaded() {\n this._levelBuffers = $r._createLevelBuffers(\n this.buffer.uint8View,\n this.format,\n this.levels,\n 4,\n 4,\n // PVRTC has 8x4 blocks in 2bpp mode\n this.width,\n this.height\n );\n }\n /**\n * Returns the key (to ContextSystem#extensions) for the WebGL extension supporting the compression format\n * @private\n * @param format - the compression format to get the extension for.\n */\n static _formatToExtension(t) {\n if (t >= 33776 && t <= 33779)\n return \"s3tc\";\n if (t >= 35916 && t <= 35919)\n return \"s3tc_sRGB\";\n if (t >= 37488 && t <= 37497)\n return \"etc\";\n if (t >= 35840 && t <= 35843)\n return \"pvrtc\";\n if (t === 36196)\n return \"etc1\";\n if (t === 35986 || t === 35987 || t === 34798)\n return \"atc\";\n if (t >= 36492 && t <= 36495)\n return \"bptc\";\n if (t === 37808)\n return \"astc\";\n throw new Error(`Invalid (compressed) texture format given: ${t}`);\n }\n /**\n * Pre-creates buffer views for each mipmap level\n * @private\n * @param buffer -\n * @param format - compression formats\n * @param levels - mipmap levels\n * @param blockWidth -\n * @param blockHeight -\n * @param imageWidth - width of the image in pixels\n * @param imageHeight - height of the image in pixels\n */\n static _createLevelBuffers(t, e, i, s, n, o, a) {\n const l = new Array(i);\n let h = t.byteOffset, c = o, u = a, d = c + s - 1 & ~(s - 1), f = u + n - 1 & ~(n - 1), p = d * f * On[e];\n for (let m = 0; m < i; m++)\n l[m] = {\n levelID: m,\n levelWidth: i > 1 ? c : d,\n levelHeight: i > 1 ? u : f,\n levelBuffer: new Uint8Array(t.buffer, h, p)\n }, h += p, c = c >> 1 || 1, u = u >> 1 || 1, d = c + s - 1 & ~(s - 1), f = u + n - 1 & ~(n - 1), p = d * f * On[e];\n return l;\n }\n}\nconst Ho = 4, Hs = 124, Jx = 32, Cc = 20, Qx = 542327876, Xs = {\n SIZE: 1,\n FLAGS: 2,\n HEIGHT: 3,\n WIDTH: 4,\n MIPMAP_COUNT: 7,\n PIXEL_FORMAT: 19\n}, tb = {\n SIZE: 0,\n FLAGS: 1,\n FOURCC: 2,\n RGB_BITCOUNT: 3,\n R_BIT_MASK: 4,\n G_BIT_MASK: 5,\n B_BIT_MASK: 6,\n A_BIT_MASK: 7\n}, Vs = {\n DXGI_FORMAT: 0,\n RESOURCE_DIMENSION: 1,\n MISC_FLAG: 2,\n ARRAY_SIZE: 3,\n MISC_FLAGS2: 4\n}, eb = 1, rb = 2, ib = 4, sb = 64, nb = 512, ob = 131072, ab = 827611204, lb = 861165636, hb = 894720068, cb = 808540228, ub = 4, db = {\n [ab]: Xt.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n [lb]: Xt.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n [hb]: Xt.COMPRESSED_RGBA_S3TC_DXT5_EXT\n}, fb = {\n // WEBGL_compressed_texture_s3tc\n 70: Xt.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n 71: Xt.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n 73: Xt.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n 74: Xt.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n 76: Xt.COMPRESSED_RGBA_S3TC_DXT5_EXT,\n 77: Xt.COMPRESSED_RGBA_S3TC_DXT5_EXT,\n // WEBGL_compressed_texture_s3tc_srgb\n 72: Xt.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,\n 75: Xt.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,\n 78: Xt.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,\n // EXT_texture_compression_bptc\n // BC6H\n 96: Xt.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,\n 95: Xt.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,\n // BC7\n 98: Xt.COMPRESSED_RGBA_BPTC_UNORM_EXT,\n 99: Xt.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT\n};\nfunction pb(r) {\n const t = new Uint32Array(r);\n if (t[0] !== Qx)\n throw new Error(\"Invalid DDS file magic word\");\n const e = new Uint32Array(r, 0, Hs / Uint32Array.BYTES_PER_ELEMENT), i = e[Xs.HEIGHT], s = e[Xs.WIDTH], n = e[Xs.MIPMAP_COUNT], o = new Uint32Array(\n r,\n Xs.PIXEL_FORMAT * Uint32Array.BYTES_PER_ELEMENT,\n Jx / Uint32Array.BYTES_PER_ELEMENT\n ), a = o[eb];\n if (a & ib) {\n const l = o[tb.FOURCC];\n if (l !== cb) {\n const x = db[l], _ = Ho + Hs, v = new Uint8Array(r, _);\n return [new $r(v, {\n format: x,\n width: s,\n height: i,\n levels: n\n // CompressedTextureResource will separate the levelBuffers for us!\n })];\n }\n const h = Ho + Hs, c = new Uint32Array(\n t.buffer,\n h,\n Cc / Uint32Array.BYTES_PER_ELEMENT\n ), u = c[Vs.DXGI_FORMAT], d = c[Vs.RESOURCE_DIMENSION], f = c[Vs.MISC_FLAG], p = c[Vs.ARRAY_SIZE], m = fb[u];\n if (m === void 0)\n throw new Error(`DDSParser cannot parse texture data with DXGI format ${u}`);\n if (f === ub)\n throw new Error(\"DDSParser does not support cubemap textures\");\n if (d === 6)\n throw new Error(\"DDSParser does not supported 3D texture data\");\n const g = new Array(), y = Ho + Hs + Cc;\n if (p === 1)\n g.push(new Uint8Array(r, y));\n else {\n const x = On[m];\n let _ = 0, v = s, w = i;\n for (let C = 0; C < n; C++) {\n const b = Math.max(1, v + 3 & -4), T = Math.max(1, w + 3 & -4), I = b * T * x;\n _ += I, v = v >>> 1, w = w >>> 1;\n }\n let R = y;\n for (let C = 0; C < p; C++)\n g.push(new Uint8Array(r, R, _)), R += _;\n }\n return g.map((x) => new $r(x, {\n format: m,\n width: s,\n height: i,\n levels: n\n }));\n }\n throw a & sb ? new Error(\"DDSParser does not support uncompressed texture data.\") : a & nb ? new Error(\"DDSParser does not supported YUV uncompressed texture data.\") : a & ob ? new Error(\"DDSParser does not support single-channel (lumninance) texture data!\") : a & rb ? new Error(\"DDSParser does not support single-channel (alpha) texture data!\") : new Error(\"DDSParser failed to load a texture file due to an unknown reason!\");\n}\nconst Ic = [171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10], mb = 67305985, pe = {\n FILE_IDENTIFIER: 0,\n ENDIANNESS: 12,\n GL_TYPE: 16,\n GL_TYPE_SIZE: 20,\n GL_FORMAT: 24,\n GL_INTERNAL_FORMAT: 28,\n GL_BASE_INTERNAL_FORMAT: 32,\n PIXEL_WIDTH: 36,\n PIXEL_HEIGHT: 40,\n PIXEL_DEPTH: 44,\n NUMBER_OF_ARRAY_ELEMENTS: 48,\n NUMBER_OF_FACES: 52,\n NUMBER_OF_MIPMAP_LEVELS: 56,\n BYTES_OF_KEY_VALUE_DATA: 60\n}, ja = 64, Pc = {\n [Z.UNSIGNED_BYTE]: 1,\n [Z.UNSIGNED_SHORT]: 2,\n [Z.INT]: 4,\n [Z.UNSIGNED_INT]: 4,\n [Z.FLOAT]: 4,\n [Z.HALF_FLOAT]: 8\n}, gb = {\n [U.RGBA]: 4,\n [U.RGB]: 3,\n [U.RG]: 2,\n [U.RED]: 1,\n [U.LUMINANCE]: 1,\n [U.LUMINANCE_ALPHA]: 2,\n [U.ALPHA]: 1\n}, yb = {\n [Z.UNSIGNED_SHORT_4_4_4_4]: 2,\n [Z.UNSIGNED_SHORT_5_5_5_1]: 2,\n [Z.UNSIGNED_SHORT_5_6_5]: 2\n};\nfunction _b(r, t, e = !1) {\n const i = new DataView(t);\n if (!vb(r, i))\n return null;\n const s = i.getUint32(pe.ENDIANNESS, !0) === mb, n = i.getUint32(pe.GL_TYPE, s), o = i.getUint32(pe.GL_FORMAT, s), a = i.getUint32(pe.GL_INTERNAL_FORMAT, s), l = i.getUint32(pe.PIXEL_WIDTH, s), h = i.getUint32(pe.PIXEL_HEIGHT, s) || 1, c = i.getUint32(pe.PIXEL_DEPTH, s) || 1, u = i.getUint32(pe.NUMBER_OF_ARRAY_ELEMENTS, s) || 1, d = i.getUint32(pe.NUMBER_OF_FACES, s), f = i.getUint32(pe.NUMBER_OF_MIPMAP_LEVELS, s), p = i.getUint32(pe.BYTES_OF_KEY_VALUE_DATA, s);\n if (h === 0 || c !== 1)\n throw new Error(\"Only 2D textures are supported\");\n if (d !== 1)\n throw new Error(\"CubeTextures are not supported by KTXLoader yet!\");\n if (u !== 1)\n throw new Error(\"WebGL does not support array textures\");\n const m = 4, g = 4, y = l + 3 & -4, x = h + 3 & -4, _ = new Array(u);\n let v = l * h;\n n === 0 && (v = y * x);\n let w;\n if (n !== 0 ? Pc[n] ? w = Pc[n] * gb[o] : w = yb[n] : w = On[a], w === void 0)\n throw new Error(\"Unable to resolve the pixel format stored in the *.ktx file!\");\n const R = e ? bb(i, p, s) : null;\n let C = v * w, b = l, T = h, I = y, O = x, M = ja + p;\n for (let E = 0; E < f; E++) {\n const A = i.getUint32(M, s);\n let L = M + 4;\n for (let k = 0; k < u; k++) {\n let G = _[k];\n G || (G = _[k] = new Array(f)), G[E] = {\n levelID: E,\n // don't align mipWidth when texture not compressed! (glType not zero)\n levelWidth: f > 1 || n !== 0 ? b : I,\n levelHeight: f > 1 || n !== 0 ? T : O,\n levelBuffer: new Uint8Array(t, L, C)\n }, L += C;\n }\n M += A + 4, M = M % 4 !== 0 ? M + 4 - M % 4 : M, b = b >> 1 || 1, T = T >> 1 || 1, I = b + m - 1 & ~(m - 1), O = T + g - 1 & ~(g - 1), C = I * O * w;\n }\n return n !== 0 ? {\n uncompressed: _.map((E) => {\n let A = E[0].levelBuffer, L = !1;\n return n === Z.FLOAT ? A = new Float32Array(\n E[0].levelBuffer.buffer,\n E[0].levelBuffer.byteOffset,\n E[0].levelBuffer.byteLength / 4\n ) : n === Z.UNSIGNED_INT ? (L = !0, A = new Uint32Array(\n E[0].levelBuffer.buffer,\n E[0].levelBuffer.byteOffset,\n E[0].levelBuffer.byteLength / 4\n )) : n === Z.INT && (L = !0, A = new Int32Array(\n E[0].levelBuffer.buffer,\n E[0].levelBuffer.byteOffset,\n E[0].levelBuffer.byteLength / 4\n )), {\n resource: new Wn(\n A,\n {\n width: E[0].levelWidth,\n height: E[0].levelHeight\n }\n ),\n type: n,\n format: L ? xb(o) : o\n };\n }),\n kvData: R\n } : {\n compressed: _.map((E) => new $r(null, {\n format: a,\n width: l,\n height: h,\n levels: f,\n levelBuffers: E\n })),\n kvData: R\n };\n}\nfunction vb(r, t) {\n for (let e = 0; e < Ic.length; e++)\n if (t.getUint8(e) !== Ic[e])\n return console.error(`${r} is not a valid *.ktx file!`), !1;\n return !0;\n}\nfunction xb(r) {\n switch (r) {\n case U.RGBA:\n return U.RGBA_INTEGER;\n case U.RGB:\n return U.RGB_INTEGER;\n case U.RG:\n return U.RG_INTEGER;\n case U.RED:\n return U.RED_INTEGER;\n default:\n return r;\n }\n}\nfunction bb(r, t, e) {\n const i = /* @__PURE__ */ new Map();\n let s = 0;\n for (; s < t; ) {\n const n = r.getUint32(ja + s, e), o = ja + s + 4, a = 3 - (n + 3) % 4;\n if (n === 0 || n > t - s) {\n console.error(\"KTXLoader: keyAndValueByteSize out of bounds\");\n break;\n }\n let l = 0;\n for (; l < n && r.getUint8(o + l) !== 0; l++)\n ;\n if (l === -1) {\n console.error(\"KTXLoader: Failed to find null byte terminating kvData key\");\n break;\n }\n const h = new TextDecoder().decode(\n new Uint8Array(r.buffer, o, l)\n ), c = new DataView(\n r.buffer,\n o + l + 1,\n n - l - 1\n );\n i.set(h, c), s += 4 + n + a;\n }\n return i;\n}\nconst wb = {\n extension: {\n type: H.LoadParser,\n priority: Ee.High\n },\n name: \"loadDDS\",\n test(r) {\n return Er(r, \".dds\");\n },\n async load(r, t, e) {\n const i = await (await W.ADAPTER.fetch(r)).arrayBuffer(), s = pb(i).map((n) => {\n const o = new et(n, {\n mipmap: He.OFF,\n alphaMode: te.NO_PREMULTIPLIED_ALPHA,\n resolution: rr(r),\n ...t.data\n });\n return vs(o, e, r);\n });\n return s.length === 1 ? s[0] : s;\n },\n unload(r) {\n Array.isArray(r) ? r.forEach((t) => t.destroy(!0)) : r.destroy(!0);\n }\n};\nq.add(wb);\nconst Eb = {\n extension: {\n type: H.LoadParser,\n priority: Ee.High\n },\n name: \"loadKTX\",\n test(r) {\n return Er(r, \".ktx\");\n },\n async load(r, t, e) {\n const i = await (await W.ADAPTER.fetch(r)).arrayBuffer(), { compressed: s, uncompressed: n, kvData: o } = _b(r, i), a = s ?? n, l = {\n mipmap: He.OFF,\n alphaMode: te.NO_PREMULTIPLIED_ALPHA,\n resolution: rr(r),\n ...t.data\n }, h = a.map((c) => {\n a === n && Object.assign(l, {\n type: c.type,\n format: c.format\n });\n const u = c.resource ?? c, d = new et(u, l);\n return d.ktxKeyValueData = o, vs(d, e, r);\n });\n return h.length === 1 ? h[0] : h;\n },\n unload(r) {\n Array.isArray(r) ? r.forEach((t) => t.destroy(!0)) : r.destroy(!0);\n }\n};\nq.add(Eb);\nconst Tb = [\"s3tc\", \"s3tc_sRGB\", \"etc\", \"etc1\", \"pvrtc\", \"atc\", \"astc\", \"bptc\"], Ab = {\n extension: H.ResolveParser,\n test: (r) => {\n const t = kt.extname(r).slice(1);\n return [\"basis\", \"ktx\", \"dds\"].includes(t);\n },\n parse: (r) => {\n var i, s;\n const t = r.split(\".\"), e = t.pop();\n if ([\"ktx\", \"dds\"].includes(e)) {\n const n = t.pop();\n if (Tb.includes(n))\n return {\n resolution: parseFloat(((i = W.RETINA_PREFIX.exec(r)) == null ? void 0 : i[1]) ?? \"1\"),\n format: n,\n src: r\n };\n }\n return {\n resolution: parseFloat(((s = W.RETINA_PREFIX.exec(r)) == null ? void 0 : s[1]) ?? \"1\"),\n format: e,\n src: r\n };\n }\n};\nq.add(Ab);\nconst zs = new it(), Sb = 4, cf = class Zi {\n /**\n * @param renderer - A reference to the current renderer\n */\n constructor(t) {\n this.renderer = t, this._rendererPremultipliedAlpha = !1;\n }\n contextChange() {\n var e;\n const t = (e = this.renderer) == null ? void 0 : e.gl.getContextAttributes();\n this._rendererPremultipliedAlpha = !!(t && t.alpha && t.premultipliedAlpha);\n }\n /**\n * Will return a HTML Image of the target\n * @param target - A displayObject or renderTexture\n * to convert. If left empty will use the main renderer\n * @param format - Image format, e.g. \"image/jpeg\" or \"image/webp\".\n * @param quality - JPEG or Webp compression from 0 to 1. Default is 0.92.\n * @param frame - The frame the extraction is restricted to.\n * @returns - HTML Image of the target\n */\n async image(t, e, i, s) {\n const n = new Image();\n return n.src = await this.base64(t, e, i, s), n;\n }\n /**\n * Will return a base64 encoded string of this target. It works by calling\n * `Extract.canvas` and then running toDataURL on that.\n * @param target - A displayObject or renderTexture\n * to convert. If left empty will use the main renderer\n * @param format - Image format, e.g. \"image/jpeg\" or \"image/webp\".\n * @param quality - JPEG or Webp compression from 0 to 1. Default is 0.92.\n * @param frame - The frame the extraction is restricted to.\n * @returns - A base64 encoded string of the texture.\n */\n async base64(t, e, i, s) {\n const n = this.canvas(t, s);\n if (n.toBlob !== void 0)\n return new Promise((o, a) => {\n n.toBlob((l) => {\n if (!l) {\n a(new Error(\"ICanvas.toBlob failed!\"));\n return;\n }\n const h = new FileReader();\n h.onload = () => o(h.result), h.onerror = a, h.readAsDataURL(l);\n }, e, i);\n });\n if (n.toDataURL !== void 0)\n return n.toDataURL(e, i);\n if (n.convertToBlob !== void 0) {\n const o = await n.convertToBlob({ type: e, quality: i });\n return new Promise((a, l) => {\n const h = new FileReader();\n h.onload = () => a(h.result), h.onerror = l, h.readAsDataURL(o);\n });\n }\n throw new Error(\"Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented\");\n }\n /**\n * Creates a Canvas element, renders this target to it and then returns it.\n * @param target - A displayObject or renderTexture\n * to convert. If left empty will use the main renderer\n * @param frame - The frame the extraction is restricted to.\n * @returns - A Canvas element with the texture rendered on.\n */\n canvas(t, e) {\n const { pixels: i, width: s, height: n, flipY: o, premultipliedAlpha: a } = this._rawPixels(t, e);\n o && Zi._flipY(i, s, n), a && Zi._unpremultiplyAlpha(i);\n const l = new ov(s, n, 1), h = new ImageData(new Uint8ClampedArray(i.buffer), s, n);\n return l.context.putImageData(h, 0, 0), l.canvas;\n }\n /**\n * Will return a one-dimensional array containing the pixel data of the entire texture in RGBA\n * order, with integer values between 0 and 255 (included).\n * @param target - A displayObject or renderTexture\n * to convert. If left empty will use the main renderer\n * @param frame - The frame the extraction is restricted to.\n * @returns - One-dimensional array containing the pixel data of the entire texture\n */\n pixels(t, e) {\n const { pixels: i, width: s, height: n, flipY: o, premultipliedAlpha: a } = this._rawPixels(t, e);\n return o && Zi._flipY(i, s, n), a && Zi._unpremultiplyAlpha(i), i;\n }\n _rawPixels(t, e) {\n const i = this.renderer;\n if (!i)\n throw new Error(\"The Extract has already been destroyed\");\n let s, n = !1, o = !1, a, l = !1;\n t && (t instanceof Wr ? a = t : (a = i.generateTexture(t, {\n region: e,\n resolution: i.resolution,\n multisample: i.multisample\n }), l = !0, e && (zs.width = e.width, zs.height = e.height, e = zs)));\n const h = i.gl;\n if (a) {\n if (s = a.baseTexture.resolution, e = e ?? a.frame, n = !1, o = a.baseTexture.alphaMode > 0 && a.baseTexture.format === U.RGBA, !l) {\n i.renderTexture.bind(a);\n const f = a.framebuffer.glFramebuffers[i.CONTEXT_UID];\n f.blitFramebuffer && i.framebuffer.bind(f.blitFramebuffer);\n }\n } else\n s = i.resolution, e || (e = zs, e.width = i.width / s, e.height = i.height / s), n = !0, o = this._rendererPremultipliedAlpha, i.renderTexture.bind();\n const c = Math.max(Math.round(e.width * s), 1), u = Math.max(Math.round(e.height * s), 1), d = new Uint8Array(Sb * c * u);\n return h.readPixels(\n Math.round(e.x * s),\n Math.round(e.y * s),\n c,\n u,\n h.RGBA,\n h.UNSIGNED_BYTE,\n d\n ), l && (a == null || a.destroy(!0)), { pixels: d, width: c, height: u, flipY: n, premultipliedAlpha: o };\n }\n /** Destroys the extract. */\n destroy() {\n this.renderer = null;\n }\n static _flipY(t, e, i) {\n const s = e << 2, n = i >> 1, o = new Uint8Array(s);\n for (let a = 0; a < n; a++) {\n const l = a * s, h = (i - a - 1) * s;\n o.set(t.subarray(l, l + s)), t.copyWithin(l, h, h + s), t.set(o, h);\n }\n }\n static _unpremultiplyAlpha(t) {\n t instanceof Uint8ClampedArray && (t = new Uint8Array(t.buffer));\n const e = t.length;\n for (let i = 0; i < e; i += 4) {\n const s = t[i + 3];\n if (s !== 0) {\n const n = 255.001 / s;\n t[i] = t[i] * n + 0.5, t[i + 1] = t[i + 1] * n + 0.5, t[i + 2] = t[i + 2] * n + 0.5;\n }\n }\n }\n};\ncf.extension = {\n name: \"extract\",\n type: H.RendererSystem\n};\nlet Cb = cf;\nq.add(Cb);\nconst Fn = {\n build(r) {\n const t = r.points;\n let e, i, s, n, o, a;\n if (r.type === zt.CIRC) {\n const p = r.shape;\n e = p.x, i = p.y, o = a = p.radius, s = n = 0;\n } else if (r.type === zt.ELIP) {\n const p = r.shape;\n e = p.x, i = p.y, o = p.width, a = p.height, s = n = 0;\n } else {\n const p = r.shape, m = p.width / 2, g = p.height / 2;\n e = p.x + m, i = p.y + g, o = a = Math.max(0, Math.min(p.radius, Math.min(m, g))), s = m - o, n = g - a;\n }\n if (!(o >= 0 && a >= 0 && s >= 0 && n >= 0)) {\n t.length = 0;\n return;\n }\n const l = Math.ceil(2.3 * Math.sqrt(o + a)), h = l * 8 + (s ? 4 : 0) + (n ? 4 : 0);\n if (t.length = h, h === 0)\n return;\n if (l === 0) {\n t.length = 8, t[0] = t[6] = e + s, t[1] = t[3] = i + n, t[2] = t[4] = e - s, t[5] = t[7] = i - n;\n return;\n }\n let c = 0, u = l * 4 + (s ? 2 : 0) + 2, d = u, f = h;\n {\n const p = s + o, m = n, g = e + p, y = e - p, x = i + m;\n if (t[c++] = g, t[c++] = x, t[--u] = x, t[--u] = y, n) {\n const _ = i - m;\n t[d++] = y, t[d++] = _, t[--f] = _, t[--f] = g;\n }\n }\n for (let p = 1; p < l; p++) {\n const m = Math.PI / 2 * (p / l), g = s + Math.cos(m) * o, y = n + Math.sin(m) * a, x = e + g, _ = e - g, v = i + y, w = i - y;\n t[c++] = x, t[c++] = v, t[--u] = v, t[--u] = _, t[d++] = _, t[d++] = w, t[--f] = w, t[--f] = x;\n }\n {\n const p = s, m = n + a, g = e + p, y = e - p, x = i + m, _ = i - m;\n t[c++] = g, t[c++] = x, t[--f] = _, t[--f] = g, s && (t[c++] = y, t[c++] = x, t[--f] = _, t[--f] = y);\n }\n },\n triangulate(r, t) {\n const e = r.points, i = t.points, s = t.indices;\n if (e.length === 0)\n return;\n let n = i.length / 2;\n const o = n;\n let a, l;\n if (r.type !== zt.RREC) {\n const c = r.shape;\n a = c.x, l = c.y;\n } else {\n const c = r.shape;\n a = c.x + c.width / 2, l = c.y + c.height / 2;\n }\n const h = r.matrix;\n i.push(\n r.matrix ? h.a * a + h.c * l + h.tx : a,\n r.matrix ? h.b * a + h.d * l + h.ty : l\n ), n++, i.push(e[0], e[1]);\n for (let c = 2; c < e.length; c += 2)\n i.push(e[c], e[c + 1]), s.push(n++, o, n);\n s.push(o + 1, o, n);\n }\n};\nfunction Rc(r, t = !1) {\n const e = r.length;\n if (e < 6)\n return;\n let i = 0;\n for (let s = 0, n = r[e - 2], o = r[e - 1]; s < e; s += 2) {\n const a = r[s], l = r[s + 1];\n i += (a - n) * (l + o), n = a, o = l;\n }\n if (!t && i > 0 || t && i <= 0) {\n const s = e / 2;\n for (let n = s + s % 2; n < e; n += 2) {\n const o = e - n - 2, a = e - n - 1, l = n, h = n + 1;\n [r[o], r[l]] = [r[l], r[o]], [r[a], r[h]] = [r[h], r[a]];\n }\n }\n}\nconst uf = {\n build(r) {\n r.points = r.shape.points.slice();\n },\n triangulate(r, t) {\n let e = r.points;\n const i = r.holes, s = t.points, n = t.indices;\n if (e.length >= 6) {\n Rc(e, !1);\n const o = [];\n for (let h = 0; h < i.length; h++) {\n const c = i[h];\n Rc(c.points, !0), o.push(e.length / 2), e = e.concat(c.points);\n }\n const a = uy(e, o, 2);\n if (!a)\n return;\n const l = s.length / 2;\n for (let h = 0; h < a.length; h += 3)\n n.push(a[h] + l), n.push(a[h + 1] + l), n.push(a[h + 2] + l);\n for (let h = 0; h < e.length; h++)\n s.push(e[h]);\n }\n }\n}, Ib = {\n build(r) {\n const t = r.shape, e = t.x, i = t.y, s = t.width, n = t.height, o = r.points;\n o.length = 0, s >= 0 && n >= 0 && o.push(\n e,\n i,\n e + s,\n i,\n e + s,\n i + n,\n e,\n i + n\n );\n },\n triangulate(r, t) {\n const e = r.points, i = t.points;\n if (e.length === 0)\n return;\n const s = i.length / 2;\n i.push(\n e[0],\n e[1],\n e[2],\n e[3],\n e[6],\n e[7],\n e[4],\n e[5]\n ), t.indices.push(\n s,\n s + 1,\n s + 2,\n s + 1,\n s + 2,\n s + 3\n );\n }\n}, Pb = {\n build(r) {\n Fn.build(r);\n },\n triangulate(r, t) {\n Fn.triangulate(r, t);\n }\n};\nvar ae = /* @__PURE__ */ ((r) => (r.MITER = \"miter\", r.BEVEL = \"bevel\", r.ROUND = \"round\", r))(ae || {}), yr = /* @__PURE__ */ ((r) => (r.BUTT = \"butt\", r.ROUND = \"round\", r.SQUARE = \"square\", r))(yr || {});\nconst Ri = {\n adaptive: !0,\n maxLength: 10,\n minSegments: 8,\n maxSegments: 2048,\n epsilon: 1e-4,\n _segmentsCount(r, t = 20) {\n if (!this.adaptive || !r || isNaN(r))\n return t;\n let e = Math.ceil(r / this.maxLength);\n return e < this.minSegments ? e = this.minSegments : e > this.maxSegments && (e = this.maxSegments), e;\n }\n};\nclass Mc {\n /**\n * Calculate information of the arc for {@link PIXI.Graphics.arcTo}.\n * @private\n * @param x1 - The x-coordinate of the first control point of the arc\n * @param y1 - The y-coordinate of the first control point of the arc\n * @param x2 - The x-coordinate of the second control point of the arc\n * @param y2 - The y-coordinate of the second control point of the arc\n * @param radius - The radius of the arc\n * @param points - Collection of points to add to\n * @returns - If the arc length is valid, return center of circle, radius and other info otherwise `null`.\n */\n static curveTo(t, e, i, s, n, o) {\n const a = o[o.length - 2], l = o[o.length - 1] - e, h = a - t, c = s - e, u = i - t, d = Math.abs(l * u - h * c);\n if (d < 1e-8 || n === 0)\n return (o[o.length - 2] !== t || o[o.length - 1] !== e) && o.push(t, e), null;\n const f = l * l + h * h, p = c * c + u * u, m = l * c + h * u, g = n * Math.sqrt(f) / d, y = n * Math.sqrt(p) / d, x = g * m / f, _ = y * m / p, v = g * u + y * h, w = g * c + y * l, R = h * (y + x), C = l * (y + x), b = u * (g + _), T = c * (g + _), I = Math.atan2(C - w, R - v), O = Math.atan2(T - w, b - v);\n return {\n cx: v + t,\n cy: w + e,\n radius: n,\n startAngle: I,\n endAngle: O,\n anticlockwise: h * c > u * l\n };\n }\n /**\n * The arc method creates an arc/curve (used to create circles, or parts of circles).\n * @private\n * @param _startX - Start x location of arc\n * @param _startY - Start y location of arc\n * @param cx - The x-coordinate of the center of the circle\n * @param cy - The y-coordinate of the center of the circle\n * @param radius - The radius of the circle\n * @param startAngle - The starting angle, in radians (0 is at the 3 o'clock position\n * of the arc's circle)\n * @param endAngle - The ending angle, in radians\n * @param _anticlockwise - Specifies whether the drawing should be\n * counter-clockwise or clockwise. False is default, and indicates clockwise, while true\n * indicates counter-clockwise.\n * @param points - Collection of points to add to\n */\n static arc(t, e, i, s, n, o, a, l, h) {\n const c = a - o, u = Ri._segmentsCount(\n Math.abs(c) * n,\n Math.ceil(Math.abs(c) / Sn) * 40\n ), d = c / (u * 2), f = d * 2, p = Math.cos(d), m = Math.sin(d), g = u - 1, y = g % 1 / g;\n for (let x = 0; x <= g; ++x) {\n const _ = x + y * x, v = d + o + f * _, w = Math.cos(v), R = -Math.sin(v);\n h.push(\n (p * w + m * R) * n + i,\n (p * -R + m * w) * n + s\n );\n }\n }\n}\nclass Rb {\n constructor() {\n this.reset();\n }\n /**\n * Begin batch part.\n * @param style\n * @param startIndex\n * @param attribStart\n */\n begin(t, e, i) {\n this.reset(), this.style = t, this.start = e, this.attribStart = i;\n }\n /**\n * End batch part.\n * @param endIndex\n * @param endAttrib\n */\n end(t, e) {\n this.attribSize = e - this.attribStart, this.size = t - this.start;\n }\n reset() {\n this.style = null, this.size = 0, this.start = 0, this.attribStart = 0, this.attribSize = 0;\n }\n}\nclass El {\n /**\n * Calculate length of bezier curve.\n * Analytical solution is impossible, since it involves an integral that does not integrate in general.\n * Therefore numerical solution is used.\n * @private\n * @param fromX - Starting point x\n * @param fromY - Starting point y\n * @param cpX - Control point x\n * @param cpY - Control point y\n * @param cpX2 - Second Control point x\n * @param cpY2 - Second Control point y\n * @param toX - Destination point x\n * @param toY - Destination point y\n * @returns - Length of bezier curve\n */\n static curveLength(t, e, i, s, n, o, a, l) {\n let h = 0, c = 0, u = 0, d = 0, f = 0, p = 0, m = 0, g = 0, y = 0, x = 0, _ = 0, v = t, w = e;\n for (let R = 1; R <= 10; ++R)\n c = R / 10, u = c * c, d = u * c, f = 1 - c, p = f * f, m = p * f, g = m * t + 3 * p * c * i + 3 * f * u * n + d * a, y = m * e + 3 * p * c * s + 3 * f * u * o + d * l, x = v - g, _ = w - y, v = g, w = y, h += Math.sqrt(x * x + _ * _);\n return h;\n }\n /**\n * Calculate the points for a bezier curve and then draws it.\n *\n * Ignored from docs since it is not directly exposed.\n * @ignore\n * @param cpX - Control point x\n * @param cpY - Control point y\n * @param cpX2 - Second Control point x\n * @param cpY2 - Second Control point y\n * @param toX - Destination point x\n * @param toY - Destination point y\n * @param points - Path array to push points into\n */\n static curveTo(t, e, i, s, n, o, a) {\n const l = a[a.length - 2], h = a[a.length - 1];\n a.length -= 2;\n const c = Ri._segmentsCount(\n El.curveLength(l, h, t, e, i, s, n, o)\n );\n let u = 0, d = 0, f = 0, p = 0, m = 0;\n a.push(l, h);\n for (let g = 1, y = 0; g <= c; ++g)\n y = g / c, u = 1 - y, d = u * u, f = d * u, p = y * y, m = p * y, a.push(\n f * l + 3 * d * y * t + 3 * u * p * i + m * n,\n f * h + 3 * d * y * e + 3 * u * p * s + m * o\n );\n }\n}\nfunction Bc(r, t, e, i, s, n, o, a) {\n const l = r - e * s, h = t - i * s, c = r + e * n, u = t + i * n;\n let d, f;\n o ? (d = i, f = -e) : (d = -i, f = e);\n const p = l + d, m = h + f, g = c + d, y = u + f;\n return a.push(\n p,\n m,\n g,\n y\n ), 2;\n}\nfunction Ar(r, t, e, i, s, n, o, a) {\n const l = e - r, h = i - t;\n let c = Math.atan2(l, h), u = Math.atan2(s - r, n - t);\n a && c < u ? c += Math.PI * 2 : !a && c > u && (u += Math.PI * 2);\n let d = c;\n const f = u - c, p = Math.abs(f), m = Math.sqrt(l * l + h * h), g = (15 * p * Math.sqrt(m) / Math.PI >> 0) + 1, y = f / g;\n if (d += y, a) {\n o.push(\n r,\n t,\n e,\n i\n );\n for (let x = 1, _ = d; x < g; x++, _ += y)\n o.push(\n r,\n t,\n r + Math.sin(_) * m,\n t + Math.cos(_) * m\n );\n o.push(\n r,\n t,\n s,\n n\n );\n } else {\n o.push(\n e,\n i,\n r,\n t\n );\n for (let x = 1, _ = d; x < g; x++, _ += y)\n o.push(\n r + Math.sin(_) * m,\n t + Math.cos(_) * m,\n r,\n t\n );\n o.push(\n s,\n n,\n r,\n t\n );\n }\n return g * 2;\n}\nfunction Mb(r, t) {\n const e = r.shape;\n let i = r.points || e.points.slice();\n const s = t.closePointEps;\n if (i.length === 0)\n return;\n const n = r.lineStyle, o = new ft(i[0], i[1]), a = new ft(i[i.length - 2], i[i.length - 1]), l = e.type !== zt.POLY || e.closeStroke, h = Math.abs(o.x - a.x) < s && Math.abs(o.y - a.y) < s;\n if (l) {\n i = i.slice(), h && (i.pop(), i.pop(), a.set(i[i.length - 2], i[i.length - 1]));\n const G = (o.x + a.x) * 0.5, $ = (a.y + o.y) * 0.5;\n i.unshift(G, $), i.push(G, $);\n }\n const c = t.points, u = i.length / 2;\n let d = i.length;\n const f = c.length / 2, p = n.width / 2, m = p * p, g = n.miterLimit * n.miterLimit;\n let y = i[0], x = i[1], _ = i[2], v = i[3], w = 0, R = 0, C = -(x - v), b = y - _, T = 0, I = 0, O = Math.sqrt(C * C + b * b);\n C /= O, b /= O, C *= p, b *= p;\n const M = n.alignment, E = (1 - M) * 2, A = M * 2;\n l || (n.cap === yr.ROUND ? d += Ar(\n y - C * (E - A) * 0.5,\n x - b * (E - A) * 0.5,\n y - C * E,\n x - b * E,\n y + C * A,\n x + b * A,\n c,\n !0\n ) + 2 : n.cap === yr.SQUARE && (d += Bc(y, x, C, b, E, A, !0, c))), c.push(\n y - C * E,\n x - b * E,\n y + C * A,\n x + b * A\n );\n for (let G = 1; G < u - 1; ++G) {\n y = i[(G - 1) * 2], x = i[(G - 1) * 2 + 1], _ = i[G * 2], v = i[G * 2 + 1], w = i[(G + 1) * 2], R = i[(G + 1) * 2 + 1], C = -(x - v), b = y - _, O = Math.sqrt(C * C + b * b), C /= O, b /= O, C *= p, b *= p, T = -(v - R), I = _ - w, O = Math.sqrt(T * T + I * I), T /= O, I /= O, T *= p, I *= p;\n const $ = _ - y, X = x - v, D = _ - w, F = R - v, j = $ * D + X * F, nt = X * D - F * $, Q = nt < 0;\n if (Math.abs(nt) < 1e-3 * Math.abs(j)) {\n c.push(\n _ - C * E,\n v - b * E,\n _ + C * A,\n v + b * A\n ), j >= 0 && (n.join === ae.ROUND ? d += Ar(\n _,\n v,\n _ - C * E,\n v - b * E,\n _ - T * E,\n v - I * E,\n c,\n !1\n ) + 4 : d += 2, c.push(\n _ - T * A,\n v - I * A,\n _ + T * E,\n v + I * E\n ));\n continue;\n }\n const V = (-C + y) * (-b + v) - (-C + _) * (-b + x), _t = (-T + w) * (-I + v) - (-T + _) * (-I + R), Et = ($ * _t - D * V) / nt, N = (F * V - X * _t) / nt, B = (Et - _) * (Et - _) + (N - v) * (N - v), vt = _ + (Et - _) * E, dt = v + (N - v) * E, gt = _ - (Et - _) * A, yt = v - (N - v) * A, Te = Math.min($ * $ + X * X, D * D + F * F), Ae = Q ? E : A, Ni = Te + Ae * Ae * m, Of = B <= Ni;\n let xs = n.join;\n if (xs === ae.MITER && B / m > g && (xs = ae.BEVEL), Of)\n switch (xs) {\n case ae.MITER: {\n c.push(\n vt,\n dt,\n gt,\n yt\n );\n break;\n }\n case ae.BEVEL: {\n Q ? c.push(\n vt,\n dt,\n // inner miter point\n _ + C * A,\n v + b * A,\n // first segment's outer vertex\n vt,\n dt,\n // inner miter point\n _ + T * A,\n v + I * A\n ) : c.push(\n _ - C * E,\n v - b * E,\n // first segment's inner vertex\n gt,\n yt,\n // outer miter point\n _ - T * E,\n v - I * E,\n // second segment's outer vertex\n gt,\n yt\n ), d += 2;\n break;\n }\n case ae.ROUND: {\n Q ? (c.push(\n vt,\n dt,\n _ + C * A,\n v + b * A\n ), d += Ar(\n _,\n v,\n _ + C * A,\n v + b * A,\n _ + T * A,\n v + I * A,\n c,\n !0\n ) + 4, c.push(\n vt,\n dt,\n _ + T * A,\n v + I * A\n )) : (c.push(\n _ - C * E,\n v - b * E,\n gt,\n yt\n ), d += Ar(\n _,\n v,\n _ - C * E,\n v - b * E,\n _ - T * E,\n v - I * E,\n c,\n !1\n ) + 4, c.push(\n _ - T * E,\n v - I * E,\n gt,\n yt\n ));\n break;\n }\n }\n else {\n switch (c.push(\n _ - C * E,\n v - b * E,\n // first segment's inner vertex\n _ + C * A,\n v + b * A\n ), xs) {\n case ae.MITER: {\n Q ? c.push(\n gt,\n yt,\n // inner miter point\n gt,\n yt\n ) : c.push(\n vt,\n dt,\n // outer miter point\n vt,\n dt\n ), d += 2;\n break;\n }\n case ae.ROUND: {\n Q ? d += Ar(\n _,\n v,\n _ + C * A,\n v + b * A,\n _ + T * A,\n v + I * A,\n c,\n !0\n ) + 2 : d += Ar(\n _,\n v,\n _ - C * E,\n v - b * E,\n _ - T * E,\n v - I * E,\n c,\n !1\n ) + 2;\n break;\n }\n }\n c.push(\n _ - T * E,\n v - I * E,\n // second segment's inner vertex\n _ + T * A,\n v + I * A\n ), d += 2;\n }\n }\n y = i[(u - 2) * 2], x = i[(u - 2) * 2 + 1], _ = i[(u - 1) * 2], v = i[(u - 1) * 2 + 1], C = -(x - v), b = y - _, O = Math.sqrt(C * C + b * b), C /= O, b /= O, C *= p, b *= p, c.push(\n _ - C * E,\n v - b * E,\n _ + C * A,\n v + b * A\n ), l || (n.cap === yr.ROUND ? d += Ar(\n _ - C * (E - A) * 0.5,\n v - b * (E - A) * 0.5,\n _ - C * E,\n v - b * E,\n _ + C * A,\n v + b * A,\n c,\n !1\n ) + 2 : n.cap === yr.SQUARE && (d += Bc(_, v, C, b, E, A, !1, c)));\n const L = t.indices, k = Ri.epsilon * Ri.epsilon;\n for (let G = f; G < d + f - 2; ++G)\n y = c[G * 2], x = c[G * 2 + 1], _ = c[(G + 1) * 2], v = c[(G + 1) * 2 + 1], w = c[(G + 2) * 2], R = c[(G + 2) * 2 + 1], !(Math.abs(y * (v - R) + _ * (R - x) + w * (x - v)) < k) && L.push(G, G + 1, G + 2);\n}\nfunction Bb(r, t) {\n let e = 0;\n const i = r.shape, s = r.points || i.points, n = i.type !== zt.POLY || i.closeStroke;\n if (s.length === 0)\n return;\n const o = t.points, a = t.indices, l = s.length / 2, h = o.length / 2;\n let c = h;\n for (o.push(s[0], s[1]), e = 1; e < l; e++)\n o.push(s[e * 2], s[e * 2 + 1]), a.push(c, c + 1), c++;\n n && a.push(c, h);\n}\nfunction Dc(r, t) {\n r.lineStyle.native ? Bb(r, t) : Mb(r, t);\n}\nclass Tl {\n /**\n * Calculate length of quadratic curve\n * @see {@link http://www.malczak.linuxpl.com/blog/quadratic-bezier-curve-length/}\n * for the detailed explanation of math behind this.\n * @private\n * @param fromX - x-coordinate of curve start point\n * @param fromY - y-coordinate of curve start point\n * @param cpX - x-coordinate of curve control point\n * @param cpY - y-coordinate of curve control point\n * @param toX - x-coordinate of curve end point\n * @param toY - y-coordinate of curve end point\n * @returns - Length of quadratic curve\n */\n static curveLength(t, e, i, s, n, o) {\n const a = t - 2 * i + n, l = e - 2 * s + o, h = 2 * i - 2 * t, c = 2 * s - 2 * e, u = 4 * (a * a + l * l), d = 4 * (a * h + l * c), f = h * h + c * c, p = 2 * Math.sqrt(u + d + f), m = Math.sqrt(u), g = 2 * u * m, y = 2 * Math.sqrt(f), x = d / m;\n return (g * p + m * d * (p - y) + (4 * f * u - d * d) * Math.log((2 * m + x + p) / (x + y))) / (4 * g);\n }\n /**\n * Calculate the points for a quadratic bezier curve and then draws it.\n * Based on: https://stackoverflow.com/questions/785097/how-do-i-implement-a-bezier-curve-in-c\n * @private\n * @param cpX - Control point x\n * @param cpY - Control point y\n * @param toX - Destination point x\n * @param toY - Destination point y\n * @param points - Points to add segments to.\n */\n static curveTo(t, e, i, s, n) {\n const o = n[n.length - 2], a = n[n.length - 1], l = Ri._segmentsCount(\n Tl.curveLength(o, a, t, e, i, s)\n );\n let h = 0, c = 0;\n for (let u = 1; u <= l; ++u) {\n const d = u / l;\n h = o + (t - o) * d, c = a + (e - a) * d, n.push(\n h + (t + (i - t) * d - h) * d,\n c + (e + (s - e) * d - c) * d\n );\n }\n }\n}\nconst Xo = {\n [zt.POLY]: uf,\n [zt.CIRC]: Fn,\n [zt.ELIP]: Fn,\n [zt.RECT]: Ib,\n [zt.RREC]: Pb\n}, Oc = [], Ws = [];\nclass Ln {\n /**\n * @param {PIXI.Circle|PIXI.Ellipse|PIXI.Polygon|PIXI.Rectangle|PIXI.RoundedRectangle} shape - The shape object to draw.\n * @param fillStyle - the width of the line to draw\n * @param lineStyle - the color of the line to draw\n * @param matrix - Transform matrix\n */\n constructor(t, e = null, i = null, s = null) {\n this.points = [], this.holes = [], this.shape = t, this.lineStyle = i, this.fillStyle = e, this.matrix = s, this.type = t.type;\n }\n /**\n * Creates a new GraphicsData object with the same values as this one.\n * @returns - Cloned GraphicsData object\n */\n clone() {\n return new Ln(\n this.shape,\n this.fillStyle,\n this.lineStyle,\n this.matrix\n );\n }\n /** Destroys the Graphics data. */\n destroy() {\n this.shape = null, this.holes.length = 0, this.holes = null, this.points.length = 0, this.points = null, this.lineStyle = null, this.fillStyle = null;\n }\n}\nconst ri = new ft(), df = class ff extends gd {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor() {\n 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 Mn(), this.boundsDirty = -1;\n }\n /**\n * Get the current bounds of the graphic geometry.\n *\n * Since 6.5.0, bounds of the graphics geometry are calculated based on the vertices of generated geometry.\n * Since shapes or strokes with full transparency (`alpha: 0`) will not generate geometry, they are not considered\n * when calculating bounds for the graphics geometry. See PR [#8343]{@link https://github.com/pixijs/pixijs/pull/8343}\n * and issue [#8623]{@link https://github.com/pixijs/pixijs/pull/8623}.\n * @readonly\n */\n get bounds() {\n return this.updateBatches(), this.boundsDirty !== this.dirty && (this.boundsDirty = this.dirty, this.calculateBounds()), this._bounds;\n }\n /** Call if you changed graphicsData manually. Empties all batch buffers. */\n invalidate() {\n this.boundsDirty = -1, this.dirty++, this.batchDirty++, this.shapeIndex = 0, this.points.length = 0, this.colors.length = 0, this.uvs.length = 0, this.indices.length = 0, this.textureIds.length = 0;\n for (let t = 0; t < this.drawCalls.length; t++)\n this.drawCalls[t].texArray.clear(), Ws.push(this.drawCalls[t]);\n this.drawCalls.length = 0;\n for (let t = 0; t < this.batches.length; t++) {\n const e = this.batches[t];\n e.reset(), Oc.push(e);\n }\n this.batches.length = 0;\n }\n /**\n * Clears the graphics that were drawn to this Graphics object, and resets fill and line style settings.\n * @returns - This GraphicsGeometry object. Good for chaining method calls\n */\n clear() {\n return this.graphicsData.length > 0 && (this.invalidate(), this.clearDirty++, this.graphicsData.length = 0), this;\n }\n /**\n * Draws the given shape to this Graphics object. Can be any of Circle, Rectangle, Ellipse, Line or Polygon.\n * @param {PIXI.Circle|PIXI.Ellipse|PIXI.Polygon|PIXI.Rectangle|PIXI.RoundedRectangle} shape - The shape object to draw.\n * @param fillStyle - Defines style of the fill.\n * @param lineStyle - Defines style of the lines.\n * @param matrix - Transform applied to the points of the shape.\n * @returns - Returns geometry for chaining.\n */\n drawShape(t, e = null, i = null, s = null) {\n const n = new Ln(t, e, i, s);\n return this.graphicsData.push(n), this.dirty++, this;\n }\n /**\n * Draws the given shape to this Graphics object. Can be any of Circle, Rectangle, Ellipse, Line or Polygon.\n * @param {PIXI.Circle|PIXI.Ellipse|PIXI.Polygon|PIXI.Rectangle|PIXI.RoundedRectangle} shape - The shape object to draw.\n * @param matrix - Transform applied to the points of the shape.\n * @returns - Returns geometry for chaining.\n */\n drawHole(t, e = null) {\n if (!this.graphicsData.length)\n return null;\n const i = new Ln(t, null, null, e), s = this.graphicsData[this.graphicsData.length - 1];\n return i.lineStyle = s.lineStyle, s.holes.push(i), this.dirty++, this;\n }\n /** Destroys the GraphicsGeometry object. */\n destroy() {\n super.destroy();\n for (let t = 0; t < this.graphicsData.length; ++t)\n this.graphicsData[t].destroy();\n this.points.length = 0, this.points = null, this.colors.length = 0, this.colors = null, this.uvs.length = 0, this.uvs = null, this.indices.length = 0, this.indices = null, this.indexBuffer.destroy(), this.indexBuffer = null, this.graphicsData.length = 0, this.graphicsData = null, this.drawCalls.length = 0, this.drawCalls = null, this.batches.length = 0, this.batches = null, this._bounds = null;\n }\n /**\n * Check to see if a point is contained within this geometry.\n * @param point - Point to check if it's contained.\n * @returns {boolean} `true` if the point is contained within geometry.\n */\n containsPoint(t) {\n const e = this.graphicsData;\n for (let i = 0; i < e.length; ++i) {\n const s = e[i];\n if (s.fillStyle.visible && s.shape && (s.matrix ? s.matrix.applyInverse(t, ri) : ri.copyFrom(t), s.shape.contains(ri.x, ri.y))) {\n let n = !1;\n if (s.holes) {\n for (let o = 0; o < s.holes.length; o++)\n if (s.holes[o].shape.contains(ri.x, ri.y)) {\n n = !0;\n break;\n }\n }\n if (!n)\n return !0;\n }\n }\n return !1;\n }\n /**\n * Generates intermediate batch data. Either gets converted to drawCalls\n * or used to convert to batch objects directly by the Graphics object.\n */\n updateBatches() {\n if (!this.graphicsData.length) {\n this.batchable = !0;\n return;\n }\n if (!this.validateBatching())\n return;\n this.cacheDirty = this.dirty;\n const t = this.uvs, e = this.graphicsData;\n let i = null, s = null;\n this.batches.length > 0 && (i = this.batches[this.batches.length - 1], s = i.style);\n for (let l = this.shapeIndex; l < e.length; l++) {\n this.shapeIndex++;\n const h = e[l], c = h.fillStyle, u = h.lineStyle;\n Xo[h.type].build(h), h.matrix && this.transformPoints(h.points, h.matrix), (c.visible || u.visible) && this.processHoles(h.holes);\n for (let d = 0; d < 2; d++) {\n const f = d === 0 ? c : u;\n if (!f.visible)\n continue;\n const p = f.texture.baseTexture, m = this.indices.length, g = this.points.length / 2;\n p.wrapMode = _r.REPEAT, d === 0 ? this.processFill(h) : this.processLine(h);\n const y = this.points.length / 2 - g;\n y !== 0 && (i && !this._compareStyles(s, f) && (i.end(m, g), i = null), i || (i = Oc.pop() || new Rb(), i.begin(f, m, g), this.batches.push(i), s = f), this.addUvs(this.points, t, f.texture, g, y, f.matrix));\n }\n }\n const n = this.indices.length, o = this.points.length / 2;\n if (i && i.end(n, o), this.batches.length === 0) {\n this.batchable = !0;\n return;\n }\n const a = o > 65535;\n this.indicesUint16 && this.indices.length === this.indicesUint16.length && a === this.indicesUint16.BYTES_PER_ELEMENT > 2 ? this.indicesUint16.set(this.indices) : this.indicesUint16 = a ? new Uint32Array(this.indices) : new Uint16Array(this.indices), this.batchable = this.isBatchable(), this.batchable ? this.packBatches() : this.buildDrawCalls();\n }\n /**\n * Affinity check\n * @param styleA\n * @param styleB\n */\n _compareStyles(t, e) {\n return !(!t || !e || t.texture.baseTexture !== e.texture.baseTexture || t.color + t.alpha !== e.color + e.alpha || !!t.native != !!e.native);\n }\n /** Test geometry for batching process. */\n validateBatching() {\n if (this.dirty === this.cacheDirty || !this.graphicsData.length)\n return !1;\n for (let t = 0, e = this.graphicsData.length; t < e; t++) {\n const i = this.graphicsData[t], s = i.fillStyle, n = i.lineStyle;\n if (s && !s.texture.baseTexture.valid || n && !n.texture.baseTexture.valid)\n return !1;\n }\n return !0;\n }\n /** Offset the indices so that it works with the batcher. */\n packBatches() {\n this.batchDirty++, this.uvsFloat32 = new Float32Array(this.uvs);\n const t = this.batches;\n for (let e = 0, i = t.length; e < i; e++) {\n const s = t[e];\n for (let n = 0; n < s.size; n++) {\n const o = s.start + n;\n this.indicesUint16[o] = this.indicesUint16[o] - s.attribStart;\n }\n }\n }\n /**\n * Checks to see if this graphics geometry can be batched.\n * Currently it needs to be small enough and not contain any native lines.\n */\n isBatchable() {\n if (this.points.length > 65535 * 2)\n return !1;\n const t = this.batches;\n for (let e = 0; e < t.length; e++)\n if (t[e].style.native)\n return !1;\n return this.points.length < ff.BATCHABLE_SIZE * 2;\n }\n /** Converts intermediate batches data to drawCalls. */\n buildDrawCalls() {\n let t = ++et._globalBatch;\n for (let u = 0; u < this.drawCalls.length; u++)\n this.drawCalls[u].texArray.clear(), Ws.push(this.drawCalls[u]);\n this.drawCalls.length = 0;\n const e = this.colors, i = this.textureIds;\n let s = Ws.pop();\n s || (s = new Aa(), s.texArray = new Pa()), s.texArray.count = 0, s.start = 0, s.size = 0, s.type = Fe.TRIANGLES;\n let n = 0, o = null, a = 0, l = !1, h = Fe.TRIANGLES, c = 0;\n this.drawCalls.push(s);\n for (let u = 0; u < this.batches.length; u++) {\n const d = this.batches[u], f = 8, p = d.style, m = p.texture.baseTexture;\n l !== !!p.native && (l = !!p.native, h = l ? Fe.LINES : Fe.TRIANGLES, o = null, n = f, t++), o !== m && (o = m, m._batchEnabled !== t && (n === f && (t++, n = 0, s.size > 0 && (s = Ws.pop(), s || (s = new Aa(), s.texArray = new Pa()), this.drawCalls.push(s)), s.start = c, s.size = 0, s.texArray.count = 0, s.type = h), m.touched = 1, m._batchEnabled = t, m._batchLocation = n, m.wrapMode = _r.REPEAT, s.texArray.elements[s.texArray.count++] = m, n++)), s.size += d.size, c += d.size, a = m._batchLocation, this.addColors(e, p.color, p.alpha, d.attribSize, d.attribStart), this.addTextureIds(i, a, d.attribSize, d.attribStart);\n }\n et._globalBatch = t, this.packAttributes();\n }\n /** Packs attributes to single buffer. */\n packAttributes() {\n const t = this.points, e = this.uvs, i = this.colors, s = this.textureIds, n = new ArrayBuffer(t.length * 3 * 4), o = new Float32Array(n), a = new Uint32Array(n);\n let l = 0;\n for (let h = 0; h < t.length / 2; h++)\n o[l++] = t[h * 2], o[l++] = t[h * 2 + 1], o[l++] = e[h * 2], o[l++] = e[h * 2 + 1], a[l++] = i[h], o[l++] = s[h];\n this._buffer.update(n), this._indexBuffer.update(this.indicesUint16);\n }\n /**\n * Process fill part of Graphics.\n * @param data\n */\n processFill(t) {\n t.holes.length ? uf.triangulate(t, this) : Xo[t.type].triangulate(t, this);\n }\n /**\n * Process line part of Graphics.\n * @param data\n */\n processLine(t) {\n Dc(t, this);\n for (let e = 0; e < t.holes.length; e++)\n Dc(t.holes[e], this);\n }\n /**\n * Process the holes data.\n * @param holes\n */\n processHoles(t) {\n for (let e = 0; e < t.length; e++) {\n const i = t[e];\n Xo[i.type].build(i), i.matrix && this.transformPoints(i.points, i.matrix);\n }\n }\n /** Update the local bounds of the object. Expensive to use performance-wise. */\n calculateBounds() {\n const t = this._bounds;\n t.clear(), t.addVertexData(this.points, 0, this.points.length), t.pad(this.boundsPadding, this.boundsPadding);\n }\n /**\n * Transform points using matrix.\n * @param points - Points to transform\n * @param matrix - Transform matrix\n */\n transformPoints(t, e) {\n for (let i = 0; i < t.length / 2; i++) {\n const s = t[i * 2], n = t[i * 2 + 1];\n t[i * 2] = e.a * s + e.c * n + e.tx, t[i * 2 + 1] = e.b * s + e.d * n + e.ty;\n }\n }\n /**\n * Add colors.\n * @param colors - List of colors to add to\n * @param color - Color to add\n * @param alpha - Alpha to use\n * @param size - Number of colors to add\n * @param offset\n */\n addColors(t, e, i, s, n = 0) {\n const o = xt.shared.setValue(e).toLittleEndianNumber(), a = xt.shared.setValue(o).toPremultiplied(i);\n t.length = Math.max(t.length, n + s);\n for (let l = 0; l < s; l++)\n t[n + l] = a;\n }\n /**\n * Add texture id that the shader/fragment wants to use.\n * @param textureIds\n * @param id\n * @param size\n * @param offset\n */\n addTextureIds(t, e, i, s = 0) {\n t.length = Math.max(t.length, s + i);\n for (let n = 0; n < i; n++)\n t[s + n] = e;\n }\n /**\n * Generates the UVs for a shape.\n * @param verts - Vertices\n * @param uvs - UVs\n * @param texture - Reference to Texture\n * @param start - Index buffer start index.\n * @param size - The size/length for index buffer.\n * @param matrix - Optional transform for all points.\n */\n addUvs(t, e, i, s, n, o = null) {\n let a = 0;\n const l = e.length, h = i.frame;\n for (; a < n; ) {\n let u = t[(s + a) * 2], d = t[(s + a) * 2 + 1];\n if (o) {\n const f = o.a * u + o.c * d + o.tx;\n d = o.b * u + o.d * d + o.ty, u = f;\n }\n a++, e.push(u / h.width, d / h.height);\n }\n const c = i.baseTexture;\n (h.width < c.width || h.height < c.height) && this.adjustUvs(e, i, l, n);\n }\n /**\n * Modify uvs array according to position of texture region\n * Does not work with rotated or trimmed textures\n * @param uvs - array\n * @param texture - region\n * @param start - starting index for uvs\n * @param size - how many points to adjust\n */\n adjustUvs(t, e, i, s) {\n const n = e.baseTexture, o = 1e-6, a = i + s * 2, l = e.frame, h = l.width / n.width, c = l.height / n.height;\n let u = l.x / l.width, d = l.y / l.height, f = Math.floor(t[i] + o), p = Math.floor(t[i + 1] + o);\n for (let m = i + 2; m < a; m += 2)\n f = Math.min(f, Math.floor(t[m] + o)), p = Math.min(p, Math.floor(t[m + 1] + o));\n u -= f, d -= p;\n for (let m = i; m < a; m += 2)\n t[m] = (t[m] + u) * h, t[m + 1] = (t[m + 1] + d) * c;\n }\n};\ndf.BATCHABLE_SIZE = 100;\nlet Db = df;\nclass Jn {\n constructor() {\n this.color = 16777215, this.alpha = 1, this.texture = Y.WHITE, this.matrix = null, this.visible = !1, this.reset();\n }\n /** Clones the object */\n clone() {\n const t = new Jn();\n return t.color = this.color, t.alpha = this.alpha, t.texture = this.texture, t.matrix = this.matrix, t.visible = this.visible, t;\n }\n /** Reset */\n reset() {\n this.color = 16777215, this.alpha = 1, this.texture = Y.WHITE, this.matrix = null, this.visible = !1;\n }\n /** Destroy and don't use after this. */\n destroy() {\n this.texture = null, this.matrix = null;\n }\n}\nclass Al extends Jn {\n constructor() {\n super(...arguments), this.width = 0, this.alignment = 0.5, this.native = !1, this.cap = yr.BUTT, this.join = ae.MITER, this.miterLimit = 10;\n }\n /** Clones the object. */\n clone() {\n const t = new Al();\n return t.color = this.color, t.alpha = this.alpha, t.texture = this.texture, t.matrix = this.matrix, t.visible = this.visible, t.width = this.width, t.alignment = this.alignment, t.native = this.native, t.cap = this.cap, t.join = this.join, t.miterLimit = this.miterLimit, t;\n }\n /** Reset the line style to default. */\n reset() {\n super.reset(), this.color = 0, this.alignment = 0.5, this.width = 0, this.native = !1, this.cap = yr.BUTT, this.join = ae.MITER, this.miterLimit = 10;\n }\n}\nconst Vo = {}, Ya = class ln extends we {\n /**\n * @param geometry - Geometry to use, if omitted will create a new GraphicsGeometry instance.\n */\n constructor(t = null) {\n super(), this.shader = null, this.pluginName = \"batch\", this.currentPath = null, this.batches = [], this.batchTint = -1, this.batchDirty = -1, this.vertexData = null, this._fillStyle = new Jn(), this._lineStyle = new Al(), this._matrix = null, this._holeMode = !1, this.state = ze.for2d(), this._geometry = t || new Db(), this._geometry.refCount++, this._transformID = -1, this._tintColor = new xt(16777215), this.blendMode = J.NORMAL;\n }\n /**\n * Includes vertex positions, face indices, normals, colors, UVs, and\n * custom attributes within buffers, reducing the cost of passing all\n * this data to the GPU. Can be shared between multiple Mesh or Graphics objects.\n * @readonly\n */\n get geometry() {\n return this._geometry;\n }\n /**\n * Creates a new Graphics object with the same values as this one.\n * Note that only the geometry of the object is cloned, not its transform (position,scale,etc)\n * @returns - A clone of the graphics object\n */\n clone() {\n return this.finishPoly(), new ln(this._geometry);\n }\n /**\n * The blend mode to be applied to the graphic shape. Apply a value of\n * `PIXI.BLEND_MODES.NORMAL` to reset the blend mode. Note that, since each\n * primitive in the GraphicsGeometry list is rendered sequentially, modes\n * such as `PIXI.BLEND_MODES.ADD` and `PIXI.BLEND_MODES.MULTIPLY` will\n * be applied per-primitive.\n * @default PIXI.BLEND_MODES.NORMAL\n */\n set blendMode(t) {\n this.state.blendMode = t;\n }\n get blendMode() {\n return this.state.blendMode;\n }\n /**\n * The tint applied to each graphic shape. This is a hex value. A value of\n * 0xFFFFFF will remove any tint effect.\n * @default 0xFFFFFF\n */\n get tint() {\n return this._tintColor.value;\n }\n set tint(t) {\n this._tintColor.setValue(t);\n }\n /**\n * The current fill style.\n * @readonly\n */\n get fill() {\n return this._fillStyle;\n }\n /**\n * The current line style.\n * @readonly\n */\n get line() {\n return this._lineStyle;\n }\n lineStyle(t = null, e = 0, i, s = 0.5, n = !1) {\n return typeof t == \"number\" && (t = { width: t, color: e, alpha: i, alignment: s, native: n }), this.lineTextureStyle(t);\n }\n /**\n * Like line style but support texture for line fill.\n * @param [options] - Collection of options for setting line style.\n * @param {number} [options.width=0] - width of the line to draw, will update the objects stored style\n * @param {PIXI.Texture} [options.texture=PIXI.Texture.WHITE] - Texture to use\n * @param {PIXI.ColorSource} [options.color=0x0] - color of the line to draw, will update the objects stored style.\n * Default 0xFFFFFF if texture present.\n * @param {number} [options.alpha=1] - alpha of the line to draw, will update the objects stored style\n * @param {PIXI.Matrix} [options.matrix=null] - Texture matrix to transform texture\n * @param {number} [options.alignment=0.5] - alignment of the line to draw, (0 = inner, 0.5 = middle, 1 = outer).\n * WebGL only.\n * @param {boolean} [options.native=false] - If true the lines will be draw using LINES instead of TRIANGLE_STRIP\n * @param {PIXI.LINE_CAP}[options.cap=PIXI.LINE_CAP.BUTT] - line cap style\n * @param {PIXI.LINE_JOIN}[options.join=PIXI.LINE_JOIN.MITER] - line join style\n * @param {number}[options.miterLimit=10] - miter limit ratio\n * @returns {PIXI.Graphics} This Graphics object. Good for chaining method calls\n */\n lineTextureStyle(t) {\n const e = {\n width: 0,\n texture: Y.WHITE,\n color: t != null && t.texture ? 16777215 : 0,\n matrix: null,\n alignment: 0.5,\n native: !1,\n cap: yr.BUTT,\n join: ae.MITER,\n miterLimit: 10\n };\n t = Object.assign(e, t), this.normalizeColor(t), this.currentPath && this.startPoly();\n const i = t.width > 0 && t.alpha > 0;\n return i ? (t.matrix && (t.matrix = t.matrix.clone(), t.matrix.invert()), Object.assign(this._lineStyle, { visible: i }, t)) : this._lineStyle.reset(), this;\n }\n /**\n * Start a polygon object internally.\n * @protected\n */\n startPoly() {\n if (this.currentPath) {\n const t = this.currentPath.points, e = this.currentPath.points.length;\n e > 2 && (this.drawShape(this.currentPath), this.currentPath = new Gr(), this.currentPath.closeStroke = !1, this.currentPath.points.push(t[e - 2], t[e - 1]));\n } else\n this.currentPath = new Gr(), this.currentPath.closeStroke = !1;\n }\n /**\n * Finish the polygon object.\n * @protected\n */\n finishPoly() {\n this.currentPath && (this.currentPath.points.length > 2 ? (this.drawShape(this.currentPath), this.currentPath = null) : this.currentPath.points.length = 0);\n }\n /**\n * Moves the current drawing position to x, y.\n * @param x - the X coordinate to move to\n * @param y - the Y coordinate to move to\n * @returns - This Graphics object. Good for chaining method calls\n */\n moveTo(t, e) {\n return this.startPoly(), this.currentPath.points[0] = t, this.currentPath.points[1] = e, this;\n }\n /**\n * Draws a line using the current line style from the current drawing position to (x, y);\n * The current drawing position is then set to (x, y).\n * @param x - the X coordinate to draw to\n * @param y - the Y coordinate to draw to\n * @returns - This Graphics object. Good for chaining method calls\n */\n lineTo(t, e) {\n this.currentPath || this.moveTo(0, 0);\n const i = this.currentPath.points, s = i[i.length - 2], n = i[i.length - 1];\n return (s !== t || n !== e) && i.push(t, e), this;\n }\n /**\n * Initialize the curve\n * @param x\n * @param y\n */\n _initCurve(t = 0, e = 0) {\n this.currentPath ? this.currentPath.points.length === 0 && (this.currentPath.points = [t, e]) : this.moveTo(t, e);\n }\n /**\n * Calculate the points for a quadratic bezier curve and then draws it.\n * Based on: https://stackoverflow.com/questions/785097/how-do-i-implement-a-bezier-curve-in-c\n * @param cpX - Control point x\n * @param cpY - Control point y\n * @param toX - Destination point x\n * @param toY - Destination point y\n * @returns - This Graphics object. Good for chaining method calls\n */\n quadraticCurveTo(t, e, i, s) {\n this._initCurve();\n const n = this.currentPath.points;\n return n.length === 0 && this.moveTo(0, 0), Tl.curveTo(t, e, i, s, n), this;\n }\n /**\n * Calculate the points for a bezier curve and then draws it.\n * @param cpX - Control point x\n * @param cpY - Control point y\n * @param cpX2 - Second Control point x\n * @param cpY2 - Second Control point y\n * @param toX - Destination point x\n * @param toY - Destination point y\n * @returns This Graphics object. Good for chaining method calls\n */\n bezierCurveTo(t, e, i, s, n, o) {\n return this._initCurve(), El.curveTo(t, e, i, s, n, o, this.currentPath.points), this;\n }\n /**\n * The `arcTo` method creates an arc/curve between two tangents on the canvas.\n * The first tangent is from the start point to the first control point,\n * and the second tangent is from the first control point to the second control point.\n * Note that the second control point is not necessarily the end point of the arc.\n *\n * \"borrowed\" from https://code.google.com/p/fxcanvas/ - thanks google!\n * @param x1 - The x-coordinate of the first control point of the arc\n * @param y1 - The y-coordinate of the first control point of the arc\n * @param x2 - The x-coordinate of the second control point of the arc\n * @param y2 - The y-coordinate of the second control point of the arc\n * @param radius - The radius of the arc\n * @returns - This Graphics object. Good for chaining method calls\n */\n arcTo(t, e, i, s, n) {\n this._initCurve(t, e);\n const o = this.currentPath.points, a = Mc.curveTo(t, e, i, s, n, o);\n if (a) {\n const { cx: l, cy: h, radius: c, startAngle: u, endAngle: d, anticlockwise: f } = a;\n this.arc(l, h, c, u, d, f);\n }\n return this;\n }\n /**\n * The arc method creates an arc/curve (used to create circles, or parts of circles).\n * @param cx - The x-coordinate of the center of the circle\n * @param cy - The y-coordinate of the center of the circle\n * @param radius - The radius of the circle\n * @param startAngle - The starting angle, in radians (0 is at the 3 o'clock position\n * of the arc's circle)\n * @param endAngle - The ending angle, in radians\n * @param anticlockwise - Specifies whether the drawing should be\n * counter-clockwise or clockwise. False is default, and indicates clockwise, while true\n * indicates counter-clockwise.\n * @returns - This Graphics object. Good for chaining method calls\n */\n arc(t, e, i, s, n, o = !1) {\n if (s === n)\n return this;\n if (!o && n <= s ? n += Sn : o && s <= n && (s += Sn), n - s === 0)\n return this;\n const a = t + Math.cos(s) * i, l = e + Math.sin(s) * i, h = this._geometry.closePointEps;\n let c = this.currentPath ? this.currentPath.points : null;\n if (c) {\n const u = Math.abs(c[c.length - 2] - a), d = Math.abs(c[c.length - 1] - l);\n u < h && d < h || c.push(a, l);\n } else\n this.moveTo(a, l), c = this.currentPath.points;\n return Mc.arc(a, l, t, e, i, s, n, o, c), this;\n }\n /**\n * Specifies a simple one-color fill that subsequent calls to other Graphics methods\n * (such as lineTo() or drawCircle()) use when drawing.\n * @param {PIXI.ColorSource} color - the color of the fill\n * @param alpha - the alpha of the fill, will override the color's alpha\n * @returns - This Graphics object. Suitable for chaining method calls\n */\n beginFill(t = 0, e) {\n return this.beginTextureFill({ texture: Y.WHITE, color: t, alpha: e });\n }\n /**\n * Normalize the color input from options for line style or fill\n * @param {PIXI.IFillStyleOptions} options - Fill style object.\n */\n normalizeColor(t) {\n const e = xt.shared.setValue(t.color ?? 0);\n t.color = e.toNumber(), t.alpha ?? (t.alpha = e.alpha);\n }\n /**\n * Begin the texture fill.\n * Note: The wrap mode of the texture is forced to REPEAT on render.\n * @param options - Fill style object.\n * @param {PIXI.Texture} [options.texture=PIXI.Texture.WHITE] - Texture to fill\n * @param {PIXI.ColorSource} [options.color=0xffffff] - Background to fill behind texture\n * @param {number} [options.alpha] - Alpha of fill, overrides the color's alpha\n * @param {PIXI.Matrix} [options.matrix=null] - Transform matrix\n * @returns {PIXI.Graphics} This Graphics object. Good for chaining method calls\n */\n beginTextureFill(t) {\n const e = {\n texture: Y.WHITE,\n color: 16777215,\n matrix: null\n };\n t = Object.assign(e, t), this.normalizeColor(t), this.currentPath && this.startPoly();\n const i = t.alpha > 0;\n return i ? (t.matrix && (t.matrix = t.matrix.clone(), t.matrix.invert()), Object.assign(this._fillStyle, { visible: i }, t)) : this._fillStyle.reset(), this;\n }\n /**\n * Applies a fill to the lines and shapes that were added since the last call to the beginFill() method.\n * @returns - This Graphics object. Good for chaining method calls\n */\n endFill() {\n return this.finishPoly(), this._fillStyle.reset(), this;\n }\n /**\n * Draws a rectangle shape.\n * @param x - The X coord of the top-left of the rectangle\n * @param y - The Y coord of the top-left of the rectangle\n * @param width - The width of the rectangle\n * @param height - The height of the rectangle\n * @returns - This Graphics object. Good for chaining method calls\n */\n drawRect(t, e, i, s) {\n return this.drawShape(new it(t, e, i, s));\n }\n /**\n * Draw a rectangle shape with rounded/beveled corners.\n * @param x - The X coord of the top-left of the rectangle\n * @param y - The Y coord of the top-left of the rectangle\n * @param width - The width of the rectangle\n * @param height - The height of the rectangle\n * @param radius - Radius of the rectangle corners\n * @returns - This Graphics object. Good for chaining method calls\n */\n drawRoundedRect(t, e, i, s, n) {\n return this.drawShape(new qn(t, e, i, s, n));\n }\n /**\n * Draws a circle.\n * @param x - The X coordinate of the center of the circle\n * @param y - The Y coordinate of the center of the circle\n * @param radius - The radius of the circle\n * @returns - This Graphics object. Good for chaining method calls\n */\n drawCircle(t, e, i) {\n return this.drawShape(new jn(t, e, i));\n }\n /**\n * Draws an ellipse.\n * @param x - The X coordinate of the center of the ellipse\n * @param y - The Y coordinate of the center of the ellipse\n * @param width - The half width of the ellipse\n * @param height - The half height of the ellipse\n * @returns - This Graphics object. Good for chaining method calls\n */\n drawEllipse(t, e, i, s) {\n return this.drawShape(new Yn(t, e, i, s));\n }\n /**\n * Draws a polygon using the given path.\n * @param {number[]|PIXI.IPointData[]|PIXI.Polygon} path - The path data used to construct the polygon.\n * @returns - This Graphics object. Good for chaining method calls\n */\n drawPolygon(...t) {\n let e, i = !0;\n const s = t[0];\n s.points ? (i = s.closeStroke, e = s.points) : Array.isArray(t[0]) ? e = t[0] : e = t;\n const n = new Gr(e);\n return n.closeStroke = i, this.drawShape(n), this;\n }\n /**\n * Draw any shape.\n * @param {PIXI.Circle|PIXI.Ellipse|PIXI.Polygon|PIXI.Rectangle|PIXI.RoundedRectangle} shape - Shape to draw\n * @returns - This Graphics object. Good for chaining method calls\n */\n drawShape(t) {\n return this._holeMode ? this._geometry.drawHole(t, this._matrix) : this._geometry.drawShape(\n t,\n this._fillStyle.clone(),\n this._lineStyle.clone(),\n this._matrix\n ), this;\n }\n /**\n * Clears the graphics that were drawn to this Graphics object, and resets fill and line style settings.\n * @returns - This Graphics object. Good for chaining method calls\n */\n clear() {\n return this._geometry.clear(), this._lineStyle.reset(), this._fillStyle.reset(), this._boundsID++, this._matrix = null, this._holeMode = !1, this.currentPath = null, this;\n }\n /**\n * True if graphics consists of one rectangle, and thus, can be drawn like a Sprite and\n * masked with gl.scissor.\n * @returns - True if only 1 rect.\n */\n isFastRect() {\n const t = this._geometry.graphicsData;\n return t.length === 1 && t[0].shape.type === zt.RECT && !t[0].matrix && !t[0].holes.length && !(t[0].lineStyle.visible && t[0].lineStyle.width);\n }\n /**\n * Renders the object using the WebGL renderer\n * @param renderer - The renderer\n */\n _render(t) {\n this.finishPoly();\n const e = this._geometry;\n e.updateBatches(), e.batchable ? (this.batchDirty !== e.batchDirty && this._populateBatches(), this._renderBatched(t)) : (t.batch.flush(), this._renderDirect(t));\n }\n /** Populating batches for rendering. */\n _populateBatches() {\n const t = this._geometry, e = this.blendMode, i = t.batches.length;\n this.batchTint = -1, this._transformID = -1, this.batchDirty = t.batchDirty, this.batches.length = i, this.vertexData = new Float32Array(t.points);\n for (let s = 0; s < i; s++) {\n const n = t.batches[s], o = n.style.color, a = new Float32Array(\n this.vertexData.buffer,\n n.attribStart * 4 * 2,\n n.attribSize * 2\n ), l = new Float32Array(\n t.uvsFloat32.buffer,\n n.attribStart * 4 * 2,\n n.attribSize * 2\n ), h = new Uint16Array(\n t.indicesUint16.buffer,\n n.start * 2,\n n.size\n ), c = {\n vertexData: a,\n blendMode: e,\n indices: h,\n uvs: l,\n _batchRGB: xt.shared.setValue(o).toRgbArray(),\n _tintRGB: o,\n _texture: n.style.texture,\n alpha: n.style.alpha,\n worldAlpha: 1\n };\n this.batches[s] = c;\n }\n }\n /**\n * Renders the batches using the BathedRenderer plugin\n * @param renderer - The renderer\n */\n _renderBatched(t) {\n if (this.batches.length) {\n t.batch.setObjectRenderer(t.plugins[this.pluginName]), this.calculateVertices(), this.calculateTints();\n for (let e = 0, i = this.batches.length; e < i; e++) {\n const s = this.batches[e];\n s.worldAlpha = this.worldAlpha * s.alpha, t.plugins[this.pluginName].render(s);\n }\n }\n }\n /**\n * Renders the graphics direct\n * @param renderer - The renderer\n */\n _renderDirect(t) {\n const e = this._resolveDirectShader(t), i = this._geometry, s = this.worldAlpha, n = e.uniforms, o = i.drawCalls;\n n.translationMatrix = this.transform.worldTransform, xt.shared.setValue(this._tintColor).premultiply(s).toArray(n.tint), t.shader.bind(e), t.geometry.bind(i, e), t.state.set(this.state);\n for (let a = 0, l = o.length; a < l; a++)\n this._renderDrawCallDirect(t, i.drawCalls[a]);\n }\n /**\n * Renders specific DrawCall\n * @param renderer\n * @param drawCall\n */\n _renderDrawCallDirect(t, e) {\n const { texArray: i, type: s, size: n, start: o } = e, a = i.count;\n for (let l = 0; l < a; l++)\n t.texture.bind(i.elements[l], l);\n t.geometry.draw(s, n, o);\n }\n /**\n * Resolves shader for direct rendering\n * @param renderer - The renderer\n */\n _resolveDirectShader(t) {\n let e = this.shader;\n const i = this.pluginName;\n if (!e) {\n if (!Vo[i]) {\n const { maxTextures: s } = t.plugins[i], n = new Int32Array(s);\n for (let l = 0; l < s; l++)\n n[l] = l;\n const o = {\n tint: new Float32Array([1, 1, 1, 1]),\n translationMatrix: new wt(),\n default: be.from({ uSamplers: n }, !0)\n }, a = t.plugins[i]._shader.program;\n Vo[i] = new Ne(a, o);\n }\n e = Vo[i];\n }\n return e;\n }\n /**\n * Retrieves the bounds of the graphic shape as a rectangle object.\n * @see PIXI.GraphicsGeometry#bounds\n */\n _calculateBounds() {\n this.finishPoly();\n const t = this._geometry;\n if (!t.graphicsData.length)\n return;\n const { minX: e, minY: i, maxX: s, maxY: n } = t.bounds;\n this._bounds.addFrame(this.transform, e, i, s, n);\n }\n /**\n * Tests if a point is inside this graphics object\n * @param point - the point to test\n * @returns - the result of the test\n */\n containsPoint(t) {\n return this.worldTransform.applyInverse(t, ln._TEMP_POINT), this._geometry.containsPoint(ln._TEMP_POINT);\n }\n /** Recalculate the tint by applying tint to batches using Graphics tint. */\n calculateTints() {\n if (this.batchTint !== this.tint) {\n this.batchTint = this._tintColor.toNumber();\n for (let t = 0; t < this.batches.length; t++) {\n const e = this.batches[t];\n e._tintRGB = xt.shared.setValue(this._tintColor).multiply(e._batchRGB).toLittleEndianNumber();\n }\n }\n }\n /** If there's a transform update or a change to the shape of the geometry, recalculate the vertices. */\n calculateVertices() {\n const t = this.transform._worldID;\n if (this._transformID === t)\n return;\n this._transformID = t;\n const e = this.transform.worldTransform, i = e.a, s = e.b, n = e.c, o = e.d, a = e.tx, l = e.ty, h = this._geometry.points, c = this.vertexData;\n let u = 0;\n for (let d = 0; d < h.length; d += 2) {\n const f = h[d], p = h[d + 1];\n c[u++] = i * f + n * p + a, c[u++] = o * p + s * f + l;\n }\n }\n /**\n * Closes the current path.\n * @returns - Returns itself.\n */\n closePath() {\n const t = this.currentPath;\n return t && (t.closeStroke = !0, this.finishPoly()), this;\n }\n /**\n * Apply a matrix to the positional data.\n * @param matrix - Matrix to use for transform current shape.\n * @returns - Returns itself.\n */\n setMatrix(t) {\n return this._matrix = t, this;\n }\n /**\n * Begin adding holes to the last draw shape\n * IMPORTANT: holes must be fully inside a shape to work\n * Also weirdness ensues if holes overlap!\n * Ellipses, Circles, Rectangles and Rounded Rectangles cannot be holes or host for holes in CanvasRenderer,\n * please use `moveTo` `lineTo`, `quadraticCurveTo` if you rely on pixi-legacy bundle.\n * @returns - Returns itself.\n */\n beginHole() {\n return this.finishPoly(), this._holeMode = !0, this;\n }\n /**\n * End adding holes to the last draw shape.\n * @returns - Returns itself.\n */\n endHole() {\n return this.finishPoly(), this._holeMode = !1, this;\n }\n /**\n * Destroys the Graphics object.\n * @param options - Options parameter. A boolean will act as if all\n * options have been set to that value\n * @param {boolean} [options.children=false] - if set to true, all the children will have\n * their destroy method called as well. 'options' will be passed on to those calls.\n * @param {boolean} [options.texture=false] - Only used for child Sprites if options.children is set to true\n * Should it destroy the texture of the child sprite\n * @param {boolean} [options.baseTexture=false] - Only used for child Sprites if options.children is set to true\n * Should it destroy the base texture of the child sprite\n */\n destroy(t) {\n this._geometry.refCount--, this._geometry.refCount === 0 && this._geometry.dispose(), this._matrix = null, this.currentPath = null, this._lineStyle.destroy(), this._lineStyle = null, this._fillStyle.destroy(), this._fillStyle = null, this._geometry = null, this.shader = null, this.vertexData = null, this.batches.length = 0, this.batches = null, super.destroy(t);\n }\n};\nYa.curves = Ri, /**\n* Temporary point to use for containsPoint.\n* @private\n*/\nYa._TEMP_POINT = new ft();\nlet fs = Ya;\nclass Ob {\n /**\n * @param uvBuffer - Buffer with normalized uv's\n * @param uvMatrix - Material UV matrix\n */\n constructor(t, e) {\n this.uvBuffer = t, this.uvMatrix = e, this.data = null, this._bufferUpdateId = -1, this._textureUpdateId = -1, this._updateID = 0;\n }\n /**\n * Updates\n * @param forceUpdate - force the update\n */\n update(t) {\n if (!t && this._bufferUpdateId === this.uvBuffer._updateID && this._textureUpdateId === this.uvMatrix._updateID)\n return;\n this._bufferUpdateId = this.uvBuffer._updateID, this._textureUpdateId = this.uvMatrix._updateID;\n const e = this.uvBuffer.data;\n (!this.data || this.data.length !== e.length) && (this.data = new Float32Array(e.length)), this.uvMatrix.multiplyUvs(e, this.data), this._updateID++;\n }\n}\nconst zo = new ft(), Fc = new Gr(), pf = class mf extends we {\n /**\n * @param geometry - The geometry the mesh will use.\n * @param {PIXI.MeshMaterial} shader - The shader the mesh will use.\n * @param state - The state that the WebGL context is required to be in to render the mesh\n * if no state is provided, uses {@link PIXI.State.for2d} to create a 2D state for PixiJS.\n * @param drawMode - The drawMode, can be any of the {@link PIXI.DRAW_MODES} constants.\n */\n constructor(t, e, i, s = Fe.TRIANGLES) {\n super(), this.geometry = t, this.shader = e, this.state = i || ze.for2d(), this.drawMode = s, this.start = 0, this.size = 0, this.uvs = null, this.indices = null, this.vertexData = new Float32Array(1), this.vertexDirty = -1, this._transformID = -1, this._roundPixels = W.ROUND_PIXELS, this.batchUvs = null;\n }\n /**\n * Includes vertex positions, face indices, normals, colors, UVs, and\n * custom attributes within buffers, reducing the cost of passing all\n * this data to the GPU. Can be shared between multiple Mesh objects.\n */\n get geometry() {\n return this._geometry;\n }\n set geometry(t) {\n this._geometry !== t && (this._geometry && (this._geometry.refCount--, this._geometry.refCount === 0 && this._geometry.dispose()), this._geometry = t, this._geometry && this._geometry.refCount++, this.vertexDirty = -1);\n }\n /**\n * To change mesh uv's, change its uvBuffer data and increment its _updateID.\n * @readonly\n */\n get uvBuffer() {\n return this.geometry.buffers[1];\n }\n /**\n * To change mesh vertices, change its uvBuffer data and increment its _updateID.\n * Incrementing _updateID is optional because most of Mesh objects do it anyway.\n * @readonly\n */\n get verticesBuffer() {\n return this.geometry.buffers[0];\n }\n /** Alias for {@link PIXI.Mesh#shader}. */\n set material(t) {\n this.shader = t;\n }\n get material() {\n return this.shader;\n }\n /**\n * The blend mode to be applied to the Mesh. Apply a value of\n * `PIXI.BLEND_MODES.NORMAL` to reset the blend mode.\n * @default PIXI.BLEND_MODES.NORMAL;\n */\n set blendMode(t) {\n this.state.blendMode = t;\n }\n get blendMode() {\n return this.state.blendMode;\n }\n /**\n * If true PixiJS will Math.floor() x/y values when rendering, stopping pixel interpolation.\n * Advantages can include sharper image quality (like text) and faster rendering on canvas.\n * The main disadvantage is movement of objects may appear less smooth.\n * To set the global default, change {@link PIXI.settings.ROUND_PIXELS}\n * @default false\n */\n set roundPixels(t) {\n this._roundPixels !== t && (this._transformID = -1), this._roundPixels = t;\n }\n get roundPixels() {\n return this._roundPixels;\n }\n /**\n * The multiply tint applied to the Mesh. This is a hex value. A value of\n * `0xFFFFFF` will remove any tint effect.\n *\n * Null for non-MeshMaterial shaders\n * @default 0xFFFFFF\n */\n get tint() {\n return \"tint\" in this.shader ? this.shader.tint : null;\n }\n set tint(t) {\n this.shader.tint = t;\n }\n /**\n * The tint color as a RGB integer\n * @ignore\n */\n get tintValue() {\n return this.shader.tintValue;\n }\n /** The texture that the Mesh uses. Null for non-MeshMaterial shaders */\n get texture() {\n return \"texture\" in this.shader ? this.shader.texture : null;\n }\n set texture(t) {\n this.shader.texture = t;\n }\n /**\n * Standard renderer draw.\n * @param renderer - Instance to renderer.\n */\n _render(t) {\n const e = this.geometry.buffers[0].data;\n this.shader.batchable && this.drawMode === Fe.TRIANGLES && e.length < mf.BATCHABLE_SIZE * 2 ? this._renderToBatch(t) : this._renderDefault(t);\n }\n /**\n * Standard non-batching way of rendering.\n * @param renderer - Instance to renderer.\n */\n _renderDefault(t) {\n const e = this.shader;\n e.alpha = this.worldAlpha, e.update && e.update(), t.batch.flush(), e.uniforms.translationMatrix = this.transform.worldTransform.toArray(!0), t.shader.bind(e), t.state.set(this.state), t.geometry.bind(this.geometry, e), t.geometry.draw(this.drawMode, this.size, this.start, this.geometry.instanceCount);\n }\n /**\n * Rendering by using the Batch system.\n * @param renderer - Instance to renderer.\n */\n _renderToBatch(t) {\n const e = this.geometry, i = this.shader;\n i.uvMatrix && (i.uvMatrix.update(), this.calculateUvs()), this.calculateVertices(), this.indices = e.indexBuffer.data, this._tintRGB = i._tintRGB, this._texture = i.texture;\n const s = this.material.pluginName;\n t.batch.setObjectRenderer(t.plugins[s]), t.plugins[s].render(this);\n }\n /** Updates vertexData field based on transform and vertices. */\n calculateVertices() {\n const t = this.geometry.buffers[0], e = t.data, i = t._updateID;\n if (i === this.vertexDirty && this._transformID === this.transform._worldID)\n return;\n this._transformID = this.transform._worldID, this.vertexData.length !== e.length && (this.vertexData = new Float32Array(e.length));\n const s = this.transform.worldTransform, n = s.a, o = s.b, a = s.c, l = s.d, h = s.tx, c = s.ty, u = this.vertexData;\n for (let d = 0; d < u.length / 2; d++) {\n const f = e[d * 2], p = e[d * 2 + 1];\n u[d * 2] = n * f + a * p + h, u[d * 2 + 1] = o * f + l * p + c;\n }\n if (this._roundPixels) {\n const d = W.RESOLUTION;\n for (let f = 0; f < u.length; ++f)\n u[f] = Math.round(u[f] * d) / d;\n }\n this.vertexDirty = i;\n }\n /** Updates uv field based on from geometry uv's or batchUvs. */\n calculateUvs() {\n const t = this.geometry.buffers[1], e = this.shader;\n e.uvMatrix.isSimple ? this.uvs = t.data : (this.batchUvs || (this.batchUvs = new Ob(t, e.uvMatrix)), this.batchUvs.update(), this.uvs = this.batchUvs.data);\n }\n /**\n * Updates the bounds of the mesh as a rectangle. The bounds calculation takes the worldTransform into account.\n * there must be a aVertexPosition attribute present in the geometry for bounds to be calculated correctly.\n */\n _calculateBounds() {\n this.calculateVertices(), this._bounds.addVertexData(this.vertexData, 0, this.vertexData.length);\n }\n /**\n * Tests if a point is inside this mesh. Works only for PIXI.DRAW_MODES.TRIANGLES.\n * @param point - The point to test.\n * @returns - The result of the test.\n */\n containsPoint(t) {\n if (!this.getBounds().contains(t.x, t.y))\n return !1;\n this.worldTransform.applyInverse(t, zo);\n const e = this.geometry.getBuffer(\"aVertexPosition\").data, i = Fc.points, s = this.geometry.getIndex().data, n = s.length, o = this.drawMode === 4 ? 3 : 1;\n for (let a = 0; a + 2 < n; a += o) {\n const l = s[a] * 2, h = s[a + 1] * 2, c = s[a + 2] * 2;\n if (i[0] = e[l], i[1] = e[l + 1], i[2] = e[h], i[3] = e[h + 1], i[4] = e[c], i[5] = e[c + 1], Fc.contains(zo.x, zo.y))\n return !0;\n }\n return !1;\n }\n destroy(t) {\n super.destroy(t), this._cachedTexture && (this._cachedTexture.destroy(), this._cachedTexture = null), this.geometry = null, this.shader = null, this.state = null, this.uvs = null, this.indices = null, this.vertexData = null;\n }\n};\npf.BATCHABLE_SIZE = 100;\nlet Lc = pf;\nclass Fb extends vr {\n /**\n * @param {Float32Array|number[]} [vertices] - Positional data on geometry.\n * @param {Float32Array|number[]} [uvs] - Texture UVs.\n * @param {Uint16Array|number[]} [index] - IndexBuffer\n */\n constructor(t, e, i) {\n super();\n const s = new Mt(t), n = new Mt(e, !0), o = new Mt(i, !0, !0);\n this.addAttribute(\"aVertexPosition\", s, 2, !1, Z.FLOAT).addAttribute(\"aTextureCoord\", n, 2, !1, Z.FLOAT).addIndex(o), this._updateId = -1;\n }\n /**\n * If the vertex position is updated.\n * @readonly\n * @private\n */\n get vertexDirtyId() {\n return this.buffers[0]._updateID;\n }\n}\nvar Lb = `varying vec2 vTextureCoord;\nuniform vec4 uColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;\n}\n`, Nb = `attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTextureMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\n}\n`;\nclass Nc extends Ne {\n /**\n * @param uSampler - Texture that material uses to render.\n * @param options - Additional options\n * @param {number} [options.alpha=1] - Default alpha.\n * @param {PIXI.ColorSource} [options.tint=0xFFFFFF] - Default tint.\n * @param {string} [options.pluginName='batch'] - Renderer plugin for batching.\n * @param {PIXI.Program} [options.program=0xFFFFFF] - Custom program.\n * @param {object} [options.uniforms] - Custom uniforms.\n */\n constructor(t, e) {\n const i = {\n uSampler: t,\n alpha: 1,\n uTextureMatrix: wt.IDENTITY,\n uColor: new Float32Array([1, 1, 1, 1])\n };\n e = Object.assign({\n tint: 16777215,\n alpha: 1,\n pluginName: \"batch\"\n }, e), e.uniforms && Object.assign(i, e.uniforms), super(e.program || Ze.from(Nb, Lb), i), this._colorDirty = !1, this.uvMatrix = new Rd(t), this.batchable = e.program === void 0, this.pluginName = e.pluginName, this._tintColor = new xt(e.tint), this._tintRGB = this._tintColor.toLittleEndianNumber(), this._colorDirty = !0, this.alpha = e.alpha;\n }\n /** Reference to the texture being rendered. */\n get texture() {\n return this.uniforms.uSampler;\n }\n set texture(t) {\n this.uniforms.uSampler !== t && (!this.uniforms.uSampler.baseTexture.alphaMode != !t.baseTexture.alphaMode && (this._colorDirty = !0), this.uniforms.uSampler = t, this.uvMatrix.texture = t);\n }\n /**\n * This gets automatically set by the object using this.\n * @default 1\n */\n set alpha(t) {\n t !== this._alpha && (this._alpha = t, this._colorDirty = !0);\n }\n get alpha() {\n return this._alpha;\n }\n /**\n * Multiply tint for the material.\n * @default 0xFFFFFF\n */\n set tint(t) {\n t !== this.tint && (this._tintColor.setValue(t), this._tintRGB = this._tintColor.toLittleEndianNumber(), this._colorDirty = !0);\n }\n get tint() {\n return this._tintColor.value;\n }\n /**\n * Get the internal number from tint color\n * @ignore\n */\n get tintValue() {\n return this._tintColor.toNumber();\n }\n /** Gets called automatically by the Mesh. Intended to be overridden for custom {@link PIXI.MeshMaterial} objects. */\n update() {\n if (this._colorDirty) {\n this._colorDirty = !1;\n const t = this.texture.baseTexture.alphaMode;\n xt.shared.setValue(this._tintColor).premultiply(this._alpha, t).toArray(this.uniforms.uColor);\n }\n this.uvMatrix.update() && (this.uniforms.uTextureMatrix = this.uvMatrix.mapCoord);\n }\n}\nclass Uc {\n /**\n * @param {object} properties - The properties to upload.\n * @param {boolean[]} dynamicPropertyFlags - Flags for which properties are dynamic.\n * @param {number} size - The size of the batch.\n */\n constructor(t, e, i) {\n this.geometry = new vr(), this.indexBuffer = null, this.size = i, this.dynamicProperties = [], this.staticProperties = [];\n for (let s = 0; s < t.length; ++s) {\n let n = t[s];\n n = {\n attributeName: n.attributeName,\n size: n.size,\n uploadFunction: n.uploadFunction,\n type: n.type || Z.FLOAT,\n offset: n.offset\n }, e[s] ? this.dynamicProperties.push(n) : this.staticProperties.push(n);\n }\n this.staticStride = 0, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.dynamicStride = 0, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this._updateID = 0, this.initBuffers();\n }\n /** Sets up the renderer context and necessary buffers. */\n initBuffers() {\n const t = this.geometry;\n let e = 0;\n this.indexBuffer = new Mt(sv(this.size), !0, !0), t.addIndex(this.indexBuffer), this.dynamicStride = 0;\n for (let o = 0; o < this.dynamicProperties.length; ++o) {\n const a = this.dynamicProperties[o];\n a.offset = e, e += a.size, this.dynamicStride += a.size;\n }\n const i = new ArrayBuffer(this.size * this.dynamicStride * 4 * 4);\n this.dynamicData = new Float32Array(i), this.dynamicDataUint32 = new Uint32Array(i), this.dynamicBuffer = new Mt(this.dynamicData, !1, !1);\n let s = 0;\n this.staticStride = 0;\n for (let o = 0; o < this.staticProperties.length; ++o) {\n const a = this.staticProperties[o];\n a.offset = s, s += a.size, this.staticStride += a.size;\n }\n const n = new ArrayBuffer(this.size * this.staticStride * 4 * 4);\n this.staticData = new Float32Array(n), this.staticDataUint32 = new Uint32Array(n), this.staticBuffer = new Mt(this.staticData, !0, !1);\n for (let o = 0; o < this.dynamicProperties.length; ++o) {\n const a = this.dynamicProperties[o];\n t.addAttribute(\n a.attributeName,\n this.dynamicBuffer,\n 0,\n a.type === Z.UNSIGNED_BYTE,\n a.type,\n this.dynamicStride * 4,\n a.offset * 4\n );\n }\n for (let o = 0; o < this.staticProperties.length; ++o) {\n const a = this.staticProperties[o];\n t.addAttribute(\n a.attributeName,\n this.staticBuffer,\n 0,\n a.type === Z.UNSIGNED_BYTE,\n a.type,\n this.staticStride * 4,\n a.offset * 4\n );\n }\n }\n /**\n * Uploads the dynamic properties.\n * @param children - The children to upload.\n * @param startIndex - The index to start at.\n * @param amount - The number to upload.\n */\n uploadDynamic(t, e, i) {\n for (let s = 0; s < this.dynamicProperties.length; s++) {\n const n = this.dynamicProperties[s];\n n.uploadFunction(\n t,\n e,\n i,\n n.type === Z.UNSIGNED_BYTE ? this.dynamicDataUint32 : this.dynamicData,\n this.dynamicStride,\n n.offset\n );\n }\n this.dynamicBuffer._updateID++;\n }\n /**\n * Uploads the static properties.\n * @param children - The children to upload.\n * @param startIndex - The index to start at.\n * @param amount - The number to upload.\n */\n uploadStatic(t, e, i) {\n for (let s = 0; s < this.staticProperties.length; s++) {\n const n = this.staticProperties[s];\n n.uploadFunction(\n t,\n e,\n i,\n n.type === Z.UNSIGNED_BYTE ? this.staticDataUint32 : this.staticData,\n this.staticStride,\n n.offset\n );\n }\n this.staticBuffer._updateID++;\n }\n /** Destroys the ParticleBuffer. */\n destroy() {\n this.indexBuffer = null, this.dynamicProperties = null, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this.staticProperties = null, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.geometry.destroy();\n }\n}\nvar Ub = `varying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n vec4 color = texture2D(uSampler, vTextureCoord) * vColor;\n gl_FragColor = color;\n}`, kb = `attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nattribute vec2 aPositionCoord;\nattribute float aRotation;\n\nuniform mat3 translationMatrix;\nuniform vec4 uColor;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nvoid main(void){\n float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);\n float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);\n\n vec2 v = vec2(x, y);\n v = v + aPositionCoord;\n\n gl_Position = vec4((translationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vColor = aColor * uColor;\n}\n`;\nclass gf extends Kn {\n /**\n * @param renderer - The renderer this sprite batch works for.\n */\n constructor(t) {\n super(t), this.shader = null, this.properties = null, this.tempMatrix = new wt(), this.properties = [\n // verticesData\n {\n attributeName: \"aVertexPosition\",\n size: 2,\n uploadFunction: this.uploadVertices,\n offset: 0\n },\n // positionData\n {\n attributeName: \"aPositionCoord\",\n size: 2,\n uploadFunction: this.uploadPosition,\n offset: 0\n },\n // rotationData\n {\n attributeName: \"aRotation\",\n size: 1,\n uploadFunction: this.uploadRotation,\n offset: 0\n },\n // uvsData\n {\n attributeName: \"aTextureCoord\",\n size: 2,\n uploadFunction: this.uploadUvs,\n offset: 0\n },\n // tintData\n {\n attributeName: \"aColor\",\n size: 1,\n type: Z.UNSIGNED_BYTE,\n uploadFunction: this.uploadTint,\n offset: 0\n }\n ], this.shader = Ne.from(kb, Ub, {}), this.state = ze.for2d();\n }\n /**\n * Renders the particle container object.\n * @param container - The container to render using this ParticleRenderer.\n */\n render(t) {\n const e = t.children, i = t._maxSize, s = t._batchSize, n = this.renderer;\n let o = e.length;\n if (o === 0)\n return;\n o > i && !t.autoResize && (o = i);\n let a = t._buffers;\n a || (a = t._buffers = this.generateBuffers(t));\n const l = e[0]._texture.baseTexture, h = l.alphaMode > 0;\n this.state.blendMode = fd(t.blendMode, h), n.state.set(this.state);\n const c = n.gl, u = t.worldTransform.copyTo(this.tempMatrix);\n u.prepend(n.globalUniforms.uniforms.projectionMatrix), this.shader.uniforms.translationMatrix = u.toArray(!0), this.shader.uniforms.uColor = xt.shared.setValue(t.tintRgb).premultiply(t.worldAlpha, h).toArray(this.shader.uniforms.uColor), this.shader.uniforms.uSampler = l, this.renderer.shader.bind(this.shader);\n let d = !1;\n for (let f = 0, p = 0; f < o; f += s, p += 1) {\n let m = o - f;\n m > s && (m = s), p >= a.length && a.push(this._generateOneMoreBuffer(t));\n const g = a[p];\n g.uploadDynamic(e, f, m);\n const y = t._bufferUpdateIDs[p] || 0;\n d = d || g._updateID < y, d && (g._updateID = t._updateID, g.uploadStatic(e, f, m)), n.geometry.bind(g.geometry), c.drawElements(c.TRIANGLES, m * 6, c.UNSIGNED_SHORT, 0);\n }\n }\n /**\n * Creates one particle buffer for each child in the container we want to render and updates internal properties.\n * @param container - The container to render using this ParticleRenderer\n * @returns - The buffers\n */\n generateBuffers(t) {\n const e = [], i = t._maxSize, s = t._batchSize, n = t._properties;\n for (let o = 0; o < i; o += s)\n e.push(new Uc(this.properties, n, s));\n return e;\n }\n /**\n * Creates one more particle buffer, because container has autoResize feature.\n * @param container - The container to render using this ParticleRenderer\n * @returns - The generated buffer\n */\n _generateOneMoreBuffer(t) {\n const e = t._batchSize, i = t._properties;\n return new Uc(this.properties, i, e);\n }\n /**\n * Uploads the vertices.\n * @param children - the array of sprites to render\n * @param startIndex - the index to start from in the children array\n * @param amount - the amount of children that will have their vertices uploaded\n * @param array - The vertices to upload.\n * @param stride - Stride to use for iteration.\n * @param offset - Offset to start at.\n */\n uploadVertices(t, e, i, s, n, o) {\n let a = 0, l = 0, h = 0, c = 0;\n for (let u = 0; u < i; ++u) {\n const d = t[e + u], f = d._texture, p = d.scale.x, m = d.scale.y, g = f.trim, y = f.orig;\n g ? (l = g.x - d.anchor.x * y.width, a = l + g.width, c = g.y - d.anchor.y * y.height, h = c + g.height) : (a = y.width * (1 - d.anchor.x), l = y.width * -d.anchor.x, h = y.height * (1 - d.anchor.y), c = y.height * -d.anchor.y), s[o] = l * p, s[o + 1] = c * m, s[o + n] = a * p, s[o + n + 1] = c * m, s[o + n * 2] = a * p, s[o + n * 2 + 1] = h * m, s[o + n * 3] = l * p, s[o + n * 3 + 1] = h * m, o += n * 4;\n }\n }\n /**\n * Uploads the position.\n * @param children - the array of sprites to render\n * @param startIndex - the index to start from in the children array\n * @param amount - the amount of children that will have their positions uploaded\n * @param array - The vertices to upload.\n * @param stride - Stride to use for iteration.\n * @param offset - Offset to start at.\n */\n uploadPosition(t, e, i, s, n, o) {\n for (let a = 0; a < i; a++) {\n const l = t[e + a].position;\n s[o] = l.x, s[o + 1] = l.y, s[o + n] = l.x, s[o + n + 1] = l.y, s[o + n * 2] = l.x, s[o + n * 2 + 1] = l.y, s[o + n * 3] = l.x, s[o + n * 3 + 1] = l.y, o += n * 4;\n }\n }\n /**\n * Uploads the rotation.\n * @param children - the array of sprites to render\n * @param startIndex - the index to start from in the children array\n * @param amount - the amount of children that will have their rotation uploaded\n * @param array - The vertices to upload.\n * @param stride - Stride to use for iteration.\n * @param offset - Offset to start at.\n */\n uploadRotation(t, e, i, s, n, o) {\n for (let a = 0; a < i; a++) {\n const l = t[e + a].rotation;\n s[o] = l, s[o + n] = l, s[o + n * 2] = l, s[o + n * 3] = l, o += n * 4;\n }\n }\n /**\n * Uploads the UVs.\n * @param children - the array of sprites to render\n * @param startIndex - the index to start from in the children array\n * @param amount - the amount of children that will have their rotation uploaded\n * @param array - The vertices to upload.\n * @param stride - Stride to use for iteration.\n * @param offset - Offset to start at.\n */\n uploadUvs(t, e, i, s, n, o) {\n for (let a = 0; a < i; ++a) {\n const l = t[e + a]._texture._uvs;\n l ? (s[o] = l.x0, s[o + 1] = l.y0, s[o + n] = l.x1, s[o + n + 1] = l.y1, s[o + n * 2] = l.x2, s[o + n * 2 + 1] = l.y2, s[o + n * 3] = l.x3, s[o + n * 3 + 1] = l.y3, o += n * 4) : (s[o] = 0, s[o + 1] = 0, s[o + n] = 0, s[o + n + 1] = 0, s[o + n * 2] = 0, s[o + n * 2 + 1] = 0, s[o + n * 3] = 0, s[o + n * 3 + 1] = 0, o += n * 4);\n }\n }\n /**\n * Uploads the tint.\n * @param children - the array of sprites to render\n * @param startIndex - the index to start from in the children array\n * @param amount - the amount of children that will have their rotation uploaded\n * @param array - The vertices to upload.\n * @param stride - Stride to use for iteration.\n * @param offset - Offset to start at.\n */\n uploadTint(t, e, i, s, n, o) {\n for (let a = 0; a < i; ++a) {\n const l = t[e + a], h = xt.shared.setValue(l._tintRGB).toPremultiplied(l.alpha, l.texture.baseTexture.alphaMode > 0);\n s[o] = h, s[o + n] = h, s[o + n * 2] = h, s[o + n * 3] = h, o += n * 4;\n }\n }\n /** Destroys the ParticleRenderer. */\n destroy() {\n super.destroy(), this.shader && (this.shader.destroy(), this.shader = null), this.tempMatrix = null;\n }\n}\ngf.extension = {\n name: \"particle\",\n type: H.RendererPlugin\n};\nq.add(gf);\nvar Qn = /* @__PURE__ */ ((r) => (r[r.LINEAR_VERTICAL = 0] = \"LINEAR_VERTICAL\", r[r.LINEAR_HORIZONTAL = 1] = \"LINEAR_HORIZONTAL\", r))(Qn || {});\nconst js = {\n // TextMetrics requires getImageData readback for measuring fonts.\n willReadFrequently: !0\n}, Re = class K {\n /**\n * Checking that we can use modern canvas 2D API.\n *\n * Note: This is an unstable API, Chrome < 94 use `textLetterSpacing`, later versions use `letterSpacing`.\n * @see PIXI.TextMetrics.experimentalLetterSpacing\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/letterSpacing\n * @see https://developer.chrome.com/origintrials/#/view_trial/3585991203293757441\n */\n static get experimentalLetterSpacingSupported() {\n let t = K._experimentalLetterSpacingSupported;\n if (t !== void 0) {\n const e = W.ADAPTER.getCanvasRenderingContext2D().prototype;\n t = K._experimentalLetterSpacingSupported = \"letterSpacing\" in e || \"textLetterSpacing\" in e;\n }\n return t;\n }\n /**\n * @param text - the text that was measured\n * @param style - the style that was measured\n * @param width - the measured width of the text\n * @param height - the measured height of the text\n * @param lines - an array of the lines of text broken by new lines and wrapping if specified in style\n * @param lineWidths - an array of the line widths for each line matched to `lines`\n * @param lineHeight - the measured line height for this style\n * @param maxLineWidth - the maximum line width for all measured lines\n * @param {PIXI.IFontMetrics} fontProperties - the font properties object from TextMetrics.measureFont\n */\n constructor(t, e, i, s, n, o, a, l, h) {\n this.text = t, this.style = e, this.width = i, this.height = s, this.lines = n, this.lineWidths = o, this.lineHeight = a, this.maxLineWidth = l, this.fontProperties = h;\n }\n /**\n * Measures the supplied string of text and returns a Rectangle.\n * @param text - The text to measure.\n * @param style - The text style to use for measuring\n * @param wordWrap - Override for if word-wrap should be applied to the text.\n * @param canvas - optional specification of the canvas to use for measuring.\n * @returns Measured width and height of the text.\n */\n static measureText(t, e, i, s = K._canvas) {\n i = i ?? e.wordWrap;\n const n = e.toFontString(), o = K.measureFont(n);\n o.fontSize === 0 && (o.fontSize = e.fontSize, o.ascent = e.fontSize);\n const a = s.getContext(\"2d\", js);\n a.font = n;\n const l = (i ? K.wordWrap(t, e, s) : t).split(/(?:\\r\\n|\\r|\\n)/), h = new Array(l.length);\n let c = 0;\n for (let p = 0; p < l.length; p++) {\n const m = K._measureText(l[p], e.letterSpacing, a);\n h[p] = m, c = Math.max(c, m);\n }\n let u = c + e.strokeThickness;\n e.dropShadow && (u += e.dropShadowDistance);\n const d = e.lineHeight || o.fontSize + e.strokeThickness;\n let f = Math.max(d, o.fontSize + e.strokeThickness * 2) + e.leading + (l.length - 1) * (d + e.leading);\n return e.dropShadow && (f += e.dropShadowDistance), new K(\n t,\n e,\n u,\n f,\n l,\n h,\n d + e.leading,\n c,\n o\n );\n }\n static _measureText(t, e, i) {\n let s = !1;\n K.experimentalLetterSpacingSupported && (K.experimentalLetterSpacing ? (i.letterSpacing = `${e}px`, i.textLetterSpacing = `${e}px`, s = !0) : (i.letterSpacing = \"0px\", i.textLetterSpacing = \"0px\"));\n let n = i.measureText(t).width;\n return n > 0 && (s ? n -= e : n += (K.graphemeSegmenter(t).length - 1) * e), n;\n }\n /**\n * Applies newlines to a string to have it optimally fit into the horizontal\n * bounds set by the Text object's wordWrapWidth property.\n * @param text - String to apply word wrapping to\n * @param style - the style to use when wrapping\n * @param canvas - optional specification of the canvas to use for measuring.\n * @returns New string with new lines applied where required\n */\n static wordWrap(t, e, i = K._canvas) {\n const s = i.getContext(\"2d\", js);\n let n = 0, o = \"\", a = \"\";\n const l = /* @__PURE__ */ Object.create(null), { letterSpacing: h, whiteSpace: c } = e, u = K.collapseSpaces(c), d = K.collapseNewlines(c);\n let f = !u;\n const p = e.wordWrapWidth + h, m = K.tokenize(t);\n for (let g = 0; g < m.length; g++) {\n let y = m[g];\n if (K.isNewline(y)) {\n if (!d) {\n a += K.addLine(o), f = !u, o = \"\", n = 0;\n continue;\n }\n y = \" \";\n }\n if (u) {\n const _ = K.isBreakingSpace(y), v = K.isBreakingSpace(o[o.length - 1]);\n if (_ && v)\n continue;\n }\n const x = K.getFromCache(y, h, l, s);\n if (x > p)\n if (o !== \"\" && (a += K.addLine(o), o = \"\", n = 0), K.canBreakWords(y, e.breakWords)) {\n const _ = K.wordWrapSplit(y);\n for (let v = 0; v < _.length; v++) {\n let w = _[v], R = w, C = 1;\n for (; _[v + C]; ) {\n const T = _[v + C];\n if (!K.canBreakChars(R, T, y, v, e.breakWords))\n w += T;\n else\n break;\n R = T, C++;\n }\n v += C - 1;\n const b = K.getFromCache(w, h, l, s);\n b + n > p && (a += K.addLine(o), f = !1, o = \"\", n = 0), o += w, n += b;\n }\n } else {\n o.length > 0 && (a += K.addLine(o), o = \"\", n = 0);\n const _ = g === m.length - 1;\n a += K.addLine(y, !_), f = !1, o = \"\", n = 0;\n }\n else\n x + n > p && (f = !1, a += K.addLine(o), o = \"\", n = 0), (o.length > 0 || !K.isBreakingSpace(y) || f) && (o += y, n += x);\n }\n return a += K.addLine(o, !1), a;\n }\n /**\n * Convienience function for logging each line added during the wordWrap method.\n * @param line - The line of text to add\n * @param newLine - Add new line character to end\n * @returns A formatted line\n */\n static addLine(t, e = !0) {\n return t = K.trimRight(t), t = e ? `${t}\n` : t, t;\n }\n /**\n * Gets & sets the widths of calculated characters in a cache object\n * @param key - The key\n * @param letterSpacing - The letter spacing\n * @param cache - The cache\n * @param context - The canvas context\n * @returns The from cache.\n */\n static getFromCache(t, e, i, s) {\n let n = i[t];\n return typeof n != \"number\" && (n = K._measureText(t, e, s) + e, i[t] = n), n;\n }\n /**\n * Determines whether we should collapse breaking spaces.\n * @param whiteSpace - The TextStyle property whiteSpace\n * @returns Should collapse\n */\n static collapseSpaces(t) {\n return t === \"normal\" || t === \"pre-line\";\n }\n /**\n * Determines whether we should collapse newLine chars.\n * @param whiteSpace - The white space\n * @returns should collapse\n */\n static collapseNewlines(t) {\n return t === \"normal\";\n }\n /**\n * Trims breaking whitespaces from string.\n * @param text - The text\n * @returns Trimmed string\n */\n static trimRight(t) {\n if (typeof t != \"string\")\n return \"\";\n for (let e = t.length - 1; e >= 0; e--) {\n const i = t[e];\n if (!K.isBreakingSpace(i))\n break;\n t = t.slice(0, -1);\n }\n return t;\n }\n /**\n * Determines if char is a newline.\n * @param char - The character\n * @returns True if newline, False otherwise.\n */\n static isNewline(t) {\n return typeof t != \"string\" ? !1 : K._newlines.includes(t.charCodeAt(0));\n }\n /**\n * Determines if char is a breaking whitespace.\n *\n * It allows one to determine whether char should be a breaking whitespace\n * For example certain characters in CJK langs or numbers.\n * It must return a boolean.\n * @param char - The character\n * @param [_nextChar] - The next character\n * @returns True if whitespace, False otherwise.\n */\n static isBreakingSpace(t, e) {\n return typeof t != \"string\" ? !1 : K._breakingSpaces.includes(t.charCodeAt(0));\n }\n /**\n * Splits a string into words, breaking-spaces and newLine characters\n * @param text - The text\n * @returns A tokenized array\n */\n static tokenize(t) {\n const e = [];\n let i = \"\";\n if (typeof t != \"string\")\n return e;\n for (let s = 0; s < t.length; s++) {\n const n = t[s], o = t[s + 1];\n if (K.isBreakingSpace(n, o) || K.isNewline(n)) {\n i !== \"\" && (e.push(i), i = \"\"), e.push(n);\n continue;\n }\n i += n;\n }\n return i !== \"\" && e.push(i), e;\n }\n /**\n * Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior.\n *\n * It allows one to customise which words should break\n * Examples are if the token is CJK or numbers.\n * It must return a boolean.\n * @param _token - The token\n * @param breakWords - The style attr break words\n * @returns Whether to break word or not\n */\n static canBreakWords(t, e) {\n return e;\n }\n /**\n * Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior.\n *\n * It allows one to determine whether a pair of characters\n * should be broken by newlines\n * For example certain characters in CJK langs or numbers.\n * It must return a boolean.\n * @param _char - The character\n * @param _nextChar - The next character\n * @param _token - The token/word the characters are from\n * @param _index - The index in the token of the char\n * @param _breakWords - The style attr break words\n * @returns whether to break word or not\n */\n static canBreakChars(t, e, i, s, n) {\n return !0;\n }\n /**\n * Overridable helper method used internally by TextMetrics, exposed to allow customizing the class's behavior.\n *\n * It is called when a token (usually a word) has to be split into separate pieces\n * in order to determine the point to break a word.\n * It must return an array of characters.\n * @param token - The token to split\n * @returns The characters of the token\n * @see TextMetrics.graphemeSegmenter\n */\n static wordWrapSplit(t) {\n return K.graphemeSegmenter(t);\n }\n /**\n * Calculates the ascent, descent and fontSize of a given font-style\n * @param font - String representing the style of the font\n * @returns Font properties object\n */\n static measureFont(t) {\n if (K._fonts[t])\n return K._fonts[t];\n const e = {\n ascent: 0,\n descent: 0,\n fontSize: 0\n }, i = K._canvas, s = K._context;\n s.font = t;\n const n = K.METRICS_STRING + K.BASELINE_SYMBOL, o = Math.ceil(s.measureText(n).width);\n let a = Math.ceil(s.measureText(K.BASELINE_SYMBOL).width);\n const l = Math.ceil(K.HEIGHT_MULTIPLIER * a);\n if (a = a * K.BASELINE_MULTIPLIER | 0, o === 0 || l === 0)\n return K._fonts[t] = e, e;\n i.width = o, i.height = l, s.fillStyle = \"#f00\", s.fillRect(0, 0, o, l), s.font = t, s.textBaseline = \"alphabetic\", s.fillStyle = \"#000\", s.fillText(n, 0, a);\n const h = s.getImageData(0, 0, o, l).data, c = h.length, u = o * 4;\n let d = 0, f = 0, p = !1;\n for (d = 0; d < a; ++d) {\n for (let m = 0; m < u; m += 4)\n if (h[f + m] !== 255) {\n p = !0;\n break;\n }\n if (!p)\n f += u;\n else\n break;\n }\n for (e.ascent = a - d, f = c - u, p = !1, d = l; d > a; --d) {\n for (let m = 0; m < u; m += 4)\n if (h[f + m] !== 255) {\n p = !0;\n break;\n }\n if (!p)\n f -= u;\n else\n break;\n }\n return e.descent = d - a, e.fontSize = e.ascent + e.descent, K._fonts[t] = e, e;\n }\n /**\n * Clear font metrics in metrics cache.\n * @param {string} [font] - font name. If font name not set then clear cache for all fonts.\n */\n static clearMetrics(t = \"\") {\n t ? delete K._fonts[t] : K._fonts = {};\n }\n /**\n * Cached canvas element for measuring text\n * TODO: this should be private, but isn't because of backward compat, will fix later.\n * @ignore\n */\n static get _canvas() {\n var t;\n if (!K.__canvas) {\n let e;\n try {\n const i = new OffscreenCanvas(0, 0);\n if ((t = i.getContext(\"2d\", js)) != null && t.measureText)\n return K.__canvas = i, i;\n e = W.ADAPTER.createCanvas();\n } catch {\n e = W.ADAPTER.createCanvas();\n }\n e.width = e.height = 10, K.__canvas = e;\n }\n return K.__canvas;\n }\n /**\n * TODO: this should be private, but isn't because of backward compat, will fix later.\n * @ignore\n */\n static get _context() {\n return K.__context || (K.__context = K._canvas.getContext(\"2d\", js)), K.__context;\n }\n};\nRe.METRICS_STRING = \"|ÉqÅ\", /** Baseline symbol for calculate font metrics. */\nRe.BASELINE_SYMBOL = \"M\", /** Baseline multiplier for calculate font metrics. */\nRe.BASELINE_MULTIPLIER = 1.4, /** Height multiplier for setting height of canvas to calculate font metrics. */\nRe.HEIGHT_MULTIPLIER = 2, /**\n* A Unicode \"character\", or \"grapheme cluster\", can be composed of multiple Unicode code points,\n* such as letters with diacritical marks (e.g. `'\\u0065\\u0301'`, letter e with acute)\n* or emojis with modifiers (e.g. `'\\uD83E\\uDDD1\\u200D\\uD83D\\uDCBB'`, technologist).\n* The new `Intl.Segmenter` API in ES2022 can split the string into grapheme clusters correctly. If it is not available,\n* PixiJS will fallback to use the iterator of String, which can only spilt the string into code points.\n* If you want to get full functionality in environments that don't support `Intl.Segmenter` (such as Firefox),\n* you can use other libraries such as [grapheme-splitter]{@link https://www.npmjs.com/package/grapheme-splitter}\n* or [graphemer]{@link https://www.npmjs.com/package/graphemer} to create a polyfill. Since these libraries can be\n* relatively large in size to handle various Unicode grapheme clusters properly, PixiJS won't use them directly.\n*/\nRe.graphemeSegmenter = (() => {\n if (typeof (Intl == null ? void 0 : Intl.Segmenter) == \"function\") {\n const r = new Intl.Segmenter();\n return (t) => [...r.segment(t)].map((e) => e.segment);\n }\n return (r) => [...r];\n})(), /**\n* New rendering behavior for letter-spacing which uses Chrome's new native API. This will\n* lead to more accurate letter-spacing results because it does not try to manually draw\n* each character. However, this Chrome API is experimental and may not serve all cases yet.\n* @see PIXI.TextMetrics.experimentalLetterSpacingSupported\n*/\nRe.experimentalLetterSpacing = !1, /** Cache of {@see PIXI.TextMetrics.FontMetrics} objects. */\nRe._fonts = {}, /** Cache of new line chars. */\nRe._newlines = [\n 10,\n // line feed\n 13\n // carriage return\n], /** Cache of breaking spaces. */\nRe._breakingSpaces = [\n 9,\n // character tabulation\n 32,\n // space\n 8192,\n // en quad\n 8193,\n // em quad\n 8194,\n // en space\n 8195,\n // em space\n 8196,\n // three-per-em space\n 8197,\n // four-per-em space\n 8198,\n // six-per-em space\n 8200,\n // punctuation space\n 8201,\n // thin space\n 8202,\n // hair space\n 8287,\n // medium mathematical space\n 12288\n // ideographic space\n];\nlet ur = Re;\nconst Gb = [\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\"\n], yf = class Ji {\n /**\n * @param style - TextStyle properties to be set on the text. See {@link PIXI.TextStyle.defaultStyle}\n * for the default values.\n */\n constructor(t) {\n this.styleID = 0, this.reset(), jo(this, t, t);\n }\n /**\n * Creates a new TextStyle object with the same values as this one.\n * Note that the only the properties of the object are cloned.\n *\n * @return New cloned TextStyle object\n */\n clone() {\n const t = {};\n return jo(t, this, Ji.defaultStyle), new Ji(t);\n }\n /** Resets all properties to the defaults specified in TextStyle.prototype._default */\n reset() {\n jo(this, Ji.defaultStyle, Ji.defaultStyle);\n }\n /**\n * Alignment for multiline text, does not affect single line text.\n *\n * @member {'left'|'center'|'right'|'justify'}\n */\n get align() {\n return this._align;\n }\n set align(t) {\n this._align !== t && (this._align = t, this.styleID++);\n }\n /** Indicates if lines can be wrapped within words, it needs wordWrap to be set to true. */\n get breakWords() {\n return this._breakWords;\n }\n set breakWords(t) {\n this._breakWords !== t && (this._breakWords = t, this.styleID++);\n }\n /** Set a drop shadow for the text. */\n get dropShadow() {\n return this._dropShadow;\n }\n set dropShadow(t) {\n this._dropShadow !== t && (this._dropShadow = t, this.styleID++);\n }\n /** Set alpha for the drop shadow. */\n get dropShadowAlpha() {\n return this._dropShadowAlpha;\n }\n set dropShadowAlpha(t) {\n this._dropShadowAlpha !== t && (this._dropShadowAlpha = t, this.styleID++);\n }\n /** Set a angle of the drop shadow. */\n get dropShadowAngle() {\n return this._dropShadowAngle;\n }\n set dropShadowAngle(t) {\n this._dropShadowAngle !== t && (this._dropShadowAngle = t, this.styleID++);\n }\n /** Set a shadow blur radius. */\n get dropShadowBlur() {\n return this._dropShadowBlur;\n }\n set dropShadowBlur(t) {\n this._dropShadowBlur !== t && (this._dropShadowBlur = t, this.styleID++);\n }\n /** A fill style to be used on the dropshadow e.g., 'red', '#00FF00'. */\n get dropShadowColor() {\n return this._dropShadowColor;\n }\n set dropShadowColor(t) {\n const e = Wo(t);\n this._dropShadowColor !== e && (this._dropShadowColor = e, this.styleID++);\n }\n /** Set a distance of the drop shadow. */\n get dropShadowDistance() {\n return this._dropShadowDistance;\n }\n set dropShadowDistance(t) {\n this._dropShadowDistance !== t && (this._dropShadowDistance = t, this.styleID++);\n }\n /**\n * A canvas fillstyle that will be used on the text e.g., 'red', '#00FF00'.\n *\n * Can be an array to create a gradient e.g., `['#000000','#FFFFFF']`\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle|MDN}\n *\n * @member {string|string[]|number|number[]|CanvasGradient|CanvasPattern}\n */\n get fill() {\n return this._fill;\n }\n set fill(t) {\n const e = Wo(t);\n this._fill !== e && (this._fill = e, this.styleID++);\n }\n /**\n * If fill is an array of colours to create a gradient, this can change the type/direction of the gradient.\n *\n * @type {PIXI.TEXT_GRADIENT}\n */\n get fillGradientType() {\n return this._fillGradientType;\n }\n set fillGradientType(t) {\n this._fillGradientType !== t && (this._fillGradientType = t, this.styleID++);\n }\n /**\n * If fill is an array of colours to create a gradient, this array can set the stop points\n * (numbers between 0 and 1) for the color, overriding the default behaviour of evenly spacing them.\n */\n get fillGradientStops() {\n return this._fillGradientStops;\n }\n set fillGradientStops(t) {\n $b(this._fillGradientStops, t) || (this._fillGradientStops = t, this.styleID++);\n }\n /**\n * The font family, can be a single font name, or a list of names where the first\n * is the preferred font.\n */\n get fontFamily() {\n return this._fontFamily;\n }\n set fontFamily(t) {\n this.fontFamily !== t && (this._fontFamily = t, this.styleID++);\n }\n /**\n * The font size\n * (as a number it converts to px, but as a string, equivalents are '26px','20pt','160%' or '1.6em')\n */\n get fontSize() {\n return this._fontSize;\n }\n set fontSize(t) {\n this._fontSize !== t && (this._fontSize = t, this.styleID++);\n }\n /**\n * The font style.\n *\n * @member {'normal'|'italic'|'oblique'}\n */\n get fontStyle() {\n return this._fontStyle;\n }\n set fontStyle(t) {\n this._fontStyle !== t && (this._fontStyle = t, this.styleID++);\n }\n /**\n * The font variant.\n *\n * @member {'normal'|'small-caps'}\n */\n get fontVariant() {\n return this._fontVariant;\n }\n set fontVariant(t) {\n this._fontVariant !== t && (this._fontVariant = t, this.styleID++);\n }\n /**\n * The font weight.\n *\n * @member {'normal'|'bold'|'bolder'|'lighter'|'100'|'200'|'300'|'400'|'500'|'600'|'700'|'800'|'900'}\n */\n get fontWeight() {\n return this._fontWeight;\n }\n set fontWeight(t) {\n this._fontWeight !== t && (this._fontWeight = t, this.styleID++);\n }\n /** The amount of spacing between letters, default is 0. */\n get letterSpacing() {\n return this._letterSpacing;\n }\n set letterSpacing(t) {\n this._letterSpacing !== t && (this._letterSpacing = t, this.styleID++);\n }\n /** The line height, a number that represents the vertical space that a letter uses. */\n get lineHeight() {\n return this._lineHeight;\n }\n set lineHeight(t) {\n this._lineHeight !== t && (this._lineHeight = t, this.styleID++);\n }\n /** The space between lines. */\n get leading() {\n return this._leading;\n }\n set leading(t) {\n this._leading !== t && (this._leading = t, this.styleID++);\n }\n /**\n * The lineJoin property sets the type of corner created, it can resolve spiked text issues.\n * Default is 'miter' (creates a sharp corner).\n *\n * @member {'miter'|'round'|'bevel'}\n */\n get lineJoin() {\n return this._lineJoin;\n }\n set lineJoin(t) {\n this._lineJoin !== t && (this._lineJoin = t, this.styleID++);\n }\n /**\n * The miter limit to use when using the 'miter' lineJoin mode.\n *\n * This can reduce or increase the spikiness of rendered text.\n */\n get miterLimit() {\n return this._miterLimit;\n }\n set miterLimit(t) {\n this._miterLimit !== t && (this._miterLimit = t, this.styleID++);\n }\n /**\n * Occasionally some fonts are cropped. Adding some padding will prevent this from happening\n * by adding padding to all sides of the text.\n */\n get padding() {\n return this._padding;\n }\n set padding(t) {\n this._padding !== t && (this._padding = t, this.styleID++);\n }\n /**\n * A canvas fillstyle that will be used on the text stroke, e.g., 'blue', '#FCFF00'\n */\n get stroke() {\n return this._stroke;\n }\n set stroke(t) {\n const e = Wo(t);\n this._stroke !== e && (this._stroke = e, this.styleID++);\n }\n /**\n * A number that represents the thickness of the stroke.\n *\n * @default 0\n */\n get strokeThickness() {\n return this._strokeThickness;\n }\n set strokeThickness(t) {\n this._strokeThickness !== t && (this._strokeThickness = t, this.styleID++);\n }\n /**\n * The baseline of the text that is rendered.\n *\n * @member {'alphabetic'|'top'|'hanging'|'middle'|'ideographic'|'bottom'}\n */\n get textBaseline() {\n return this._textBaseline;\n }\n set textBaseline(t) {\n this._textBaseline !== t && (this._textBaseline = t, this.styleID++);\n }\n /** Trim transparent borders. */\n get trim() {\n return this._trim;\n }\n set trim(t) {\n this._trim !== t && (this._trim = t, this.styleID++);\n }\n /**\n * How newlines and spaces should be handled.\n * Default is 'pre' (preserve, preserve).\n *\n * value | New lines | Spaces\n * --- | --- | ---\n * 'normal' | Collapse | Collapse\n * 'pre' | Preserve | Preserve\n * 'pre-line' | Preserve | Collapse\n *\n * @member {'normal'|'pre'|'pre-line'}\n */\n get whiteSpace() {\n return this._whiteSpace;\n }\n set whiteSpace(t) {\n this._whiteSpace !== t && (this._whiteSpace = t, this.styleID++);\n }\n /** Indicates if word wrap should be used. */\n get wordWrap() {\n return this._wordWrap;\n }\n set wordWrap(t) {\n this._wordWrap !== t && (this._wordWrap = t, this.styleID++);\n }\n /** The width at which text will wrap, it needs wordWrap to be set to true. */\n get wordWrapWidth() {\n return this._wordWrapWidth;\n }\n set wordWrapWidth(t) {\n this._wordWrapWidth !== t && (this._wordWrapWidth = t, this.styleID++);\n }\n /**\n * Generates a font style string to use for `TextMetrics.measureFont()`.\n *\n * @return Font style string, for passing to `TextMetrics.measureFont()`\n */\n toFontString() {\n const t = typeof this.fontSize == \"number\" ? `${this.fontSize}px` : this.fontSize;\n let e = this.fontFamily;\n Array.isArray(this.fontFamily) || (e = this.fontFamily.split(\",\"));\n for (let i = e.length - 1; i >= 0; i--) {\n let s = e[i].trim();\n !/([\\\"\\'])[^\\'\\\"]+\\1/.test(s) && !Gb.includes(s) && (s = `\"${s}\"`), e[i] = s;\n }\n return `${this.fontStyle} ${this.fontVariant} ${this.fontWeight} ${t} ${e.join(\",\")}`;\n }\n};\nyf.defaultStyle = {\n /**\n * See {@link PIXI.TextStyle.align}\n * @type {'left'|'center'|'right'|'justify'}\n */\n align: \"left\",\n /** See {@link PIXI.TextStyle.breakWords} */\n breakWords: !1,\n /** See {@link PIXI.TextStyle.dropShadow} */\n dropShadow: !1,\n /** See {@link PIXI.TextStyle.dropShadowAlpha} */\n dropShadowAlpha: 1,\n /**\n * See {@link PIXI.TextStyle.dropShadowAngle}\n * @type {number}\n * @default Math.PI / 6\n */\n dropShadowAngle: Math.PI / 6,\n /** See {@link PIXI.TextStyle.dropShadowBlur} */\n dropShadowBlur: 0,\n /**\n * See {@link PIXI.TextStyle.dropShadowColor}\n * @type {string|number}\n */\n dropShadowColor: \"black\",\n /** See {@link PIXI.TextStyle.dropShadowDistance} */\n dropShadowDistance: 5,\n /**\n * See {@link PIXI.TextStyle.fill}\n * @type {string|string[]|number|number[]|CanvasGradient|CanvasPattern}\n */\n fill: \"black\",\n /**\n * See {@link PIXI.TextStyle.fillGradientType}\n * @type {PIXI.TEXT_GRADIENT}\n * @default PIXI.TEXT_GRADIENT.LINEAR_VERTICAL\n */\n fillGradientType: Qn.LINEAR_VERTICAL,\n /**\n * See {@link PIXI.TextStyle.fillGradientStops}\n * @type {number[]}\n * @default []\n */\n fillGradientStops: [],\n /**\n * See {@link PIXI.TextStyle.fontFamily}\n * @type {string|string[]}\n */\n fontFamily: \"Arial\",\n /**\n * See {@link PIXI.TextStyle.fontSize}\n * @type {number|string} \n */\n fontSize: 26,\n /**\n * See {@link PIXI.TextStyle.fontStyle}\n * @type {'normal'|'italic'|'oblique'}\n */\n fontStyle: \"normal\",\n /**\n * See {@link PIXI.TextStyle.fontVariant}\n * @type {'normal'|'small-caps'}\n */\n fontVariant: \"normal\",\n /**\n * See {@link PIXI.TextStyle.fontWeight}\n * @type {'normal'|'bold'|'bolder'|'lighter'|'100'|'200'|'300'|'400'|'500'|'600'|'700'|'800'|'900'}\n */\n fontWeight: \"normal\",\n /** See {@link PIXI.TextStyle.leading} */\n leading: 0,\n /** See {@link PIXI.TextStyle.letterSpacing} */\n letterSpacing: 0,\n /** See {@link PIXI.TextStyle.lineHeight} */\n lineHeight: 0,\n /**\n * See {@link PIXI.TextStyle.lineJoin}\n * @type {'miter'|'round'|'bevel'}\n */\n lineJoin: \"miter\",\n /** See {@link PIXI.TextStyle.miterLimit} */\n miterLimit: 10,\n /** See {@link PIXI.TextStyle.padding} */\n padding: 0,\n /**\n * See {@link PIXI.TextStyle.stroke}\n * @type {string|number}\n */\n stroke: \"black\",\n /** See {@link PIXI.TextStyle.strokeThickness} */\n strokeThickness: 0,\n /**\n * See {@link PIXI.TextStyle.textBaseline} \n * @type {'alphabetic'|'top'|'hanging'|'middle'|'ideographic'|'bottom'}\n */\n textBaseline: \"alphabetic\",\n /** See {@link PIXI.TextStyle.trim} */\n trim: !1,\n /**\n * See {@link PIXI.TextStyle.whiteSpace}\n * @type {'normal'|'pre'|'pre-line'}\n */\n whiteSpace: \"pre\",\n /** See {@link PIXI.TextStyle.wordWrap} */\n wordWrap: !1,\n /** See {@link PIXI.TextStyle.wordWrapWidth} */\n wordWrapWidth: 100\n};\nlet xr = yf;\nfunction Wo(r) {\n const t = xt.shared, e = (i) => {\n const s = t.setValue(i);\n return s.alpha === 1 ? s.toHex() : s.toRgbaString();\n };\n return Array.isArray(r) ? r.map(e) : e(r);\n}\nfunction $b(r, t) {\n if (!Array.isArray(r) || !Array.isArray(t) || r.length !== t.length)\n return !1;\n for (let e = 0; e < r.length; ++e)\n if (r[e] !== t[e])\n return !1;\n return !0;\n}\nfunction jo(r, t, e) {\n for (const i in e)\n Array.isArray(t[i]) ? r[i] = t[i].slice() : r[i] = t[i];\n}\nconst Hb = {\n texture: !0,\n children: !1,\n baseTexture: !0\n}, _f = class qa extends Fi {\n /**\n * @param text - The string that you would like the text to display\n * @param style - The style parameters\n * @param canvas - The canvas element for drawing text\n */\n constructor(t, e, i) {\n let s = !1;\n i || (i = W.ADAPTER.createCanvas(), s = !0), i.width = 3, i.height = 3;\n const n = Y.from(i);\n n.orig = new it(), n.trim = new it(), super(n), this._ownCanvas = s, this.canvas = i, this.context = i.getContext(\"2d\", {\n // required for trimming to work without warnings\n willReadFrequently: !0\n }), this._resolution = qa.defaultResolution ?? W.RESOLUTION, this._autoResolution = qa.defaultAutoResolution, this._text = null, this._style = null, this._styleListener = null, this._font = \"\", this.text = t, this.style = e, this.localStyleID = -1;\n }\n /**\n * @see PIXI.TextMetrics.experimentalLetterSpacing\n * @deprecated since 7.1.0\n */\n static get experimentalLetterSpacing() {\n return ur.experimentalLetterSpacing;\n }\n static set experimentalLetterSpacing(t) {\n at(\n \"7.1.0\",\n \"Text.experimentalLetterSpacing is deprecated, use TextMetrics.experimentalLetterSpacing\"\n ), ur.experimentalLetterSpacing = t;\n }\n /**\n * Renders text to its canvas, and updates its texture.\n *\n * By default this is used internally to ensure the texture is correct before rendering,\n * but it can be used called externally, for example from this class to 'pre-generate' the texture from a piece of text,\n * and then shared across multiple Sprites.\n * @param respectDirty - Whether to abort updating the text if the Text isn't dirty and the function is called.\n */\n updateText(t) {\n const e = this._style;\n if (this.localStyleID !== e.styleID && (this.dirty = !0, this.localStyleID = e.styleID), !this.dirty && t)\n return;\n this._font = this._style.toFontString();\n const i = this.context, s = ur.measureText(this._text || \" \", this._style, this._style.wordWrap, this.canvas), n = s.width, o = s.height, a = s.lines, l = s.lineHeight, h = s.lineWidths, c = s.maxLineWidth, u = s.fontProperties;\n this.canvas.width = Math.ceil(Math.ceil(Math.max(1, n) + e.padding * 2) * this._resolution), this.canvas.height = Math.ceil(Math.ceil(Math.max(1, o) + e.padding * 2) * this._resolution), i.scale(this._resolution, this._resolution), i.clearRect(0, 0, this.canvas.width, this.canvas.height), i.font = this._font, i.lineWidth = e.strokeThickness, i.textBaseline = e.textBaseline, i.lineJoin = e.lineJoin, i.miterLimit = e.miterLimit;\n let d, f;\n const p = e.dropShadow ? 2 : 1;\n for (let m = 0; m < p; ++m) {\n const g = e.dropShadow && m === 0, y = g ? Math.ceil(Math.max(1, o) + e.padding * 2) : 0, x = y * this._resolution;\n if (g) {\n i.fillStyle = \"black\", i.strokeStyle = \"black\";\n const v = e.dropShadowColor, w = e.dropShadowBlur * this._resolution, R = e.dropShadowDistance * this._resolution;\n i.shadowColor = xt.shared.setValue(v).setAlpha(e.dropShadowAlpha).toRgbaString(), i.shadowBlur = w, i.shadowOffsetX = Math.cos(e.dropShadowAngle) * R, i.shadowOffsetY = Math.sin(e.dropShadowAngle) * R + x;\n } else\n i.fillStyle = this._generateFillStyle(e, a, s), i.strokeStyle = e.stroke, i.shadowColor = \"black\", i.shadowBlur = 0, i.shadowOffsetX = 0, i.shadowOffsetY = 0;\n let _ = (l - u.fontSize) / 2;\n l - u.fontSize < 0 && (_ = 0);\n for (let v = 0; v < a.length; v++)\n d = e.strokeThickness / 2, f = e.strokeThickness / 2 + v * l + u.ascent + _, e.align === \"right\" ? d += c - h[v] : e.align === \"center\" && (d += (c - h[v]) / 2), e.stroke && e.strokeThickness && this.drawLetterSpacing(\n a[v],\n d + e.padding,\n f + e.padding - y,\n !0\n ), e.fill && this.drawLetterSpacing(\n a[v],\n d + e.padding,\n f + e.padding - y\n );\n }\n this.updateTexture();\n }\n /**\n * Render the text with letter-spacing.\n * @param text - The text to draw\n * @param x - Horizontal position to draw the text\n * @param y - Vertical position to draw the text\n * @param isStroke - Is this drawing for the outside stroke of the\n * text? If not, it's for the inside fill\n */\n drawLetterSpacing(t, e, i, s = !1) {\n const n = this._style.letterSpacing;\n let o = !1;\n if (ur.experimentalLetterSpacingSupported && (ur.experimentalLetterSpacing ? (this.context.letterSpacing = `${n}px`, this.context.textLetterSpacing = `${n}px`, o = !0) : (this.context.letterSpacing = \"0px\", this.context.textLetterSpacing = \"0px\")), n === 0 || o) {\n s ? this.context.strokeText(t, e, i) : this.context.fillText(t, e, i);\n return;\n }\n let a = e;\n const l = ur.graphemeSegmenter(t);\n let h = this.context.measureText(t).width, c = 0;\n for (let u = 0; u < l.length; ++u) {\n const d = l[u];\n s ? this.context.strokeText(d, a, i) : this.context.fillText(d, a, i);\n let f = \"\";\n for (let p = u + 1; p < l.length; ++p)\n f += l[p];\n c = this.context.measureText(f).width, a += h - c + n, h = c;\n }\n }\n /** Updates texture size based on canvas size. */\n updateTexture() {\n const t = this.canvas;\n if (this._style.trim) {\n const o = lv(t);\n o.data && (t.width = o.width, t.height = o.height, this.context.putImageData(o.data, 0, 0));\n }\n const e = this._texture, i = this._style, s = i.trim ? 0 : i.padding, n = e.baseTexture;\n e.trim.width = e._frame.width = t.width / this._resolution, e.trim.height = e._frame.height = t.height / this._resolution, e.trim.x = -s, e.trim.y = -s, e.orig.width = e._frame.width - s * 2, e.orig.height = e._frame.height - s * 2, this._onTextureUpdate(), n.setRealSize(t.width, t.height, this._resolution), e.updateUvs(), this.dirty = !1;\n }\n /**\n * Renders the object using the WebGL renderer\n * @param renderer - The renderer\n */\n _render(t) {\n this._autoResolution && this._resolution !== t.resolution && (this._resolution = t.resolution, this.dirty = !0), this.updateText(!0), super._render(t);\n }\n /** Updates the transform on all children of this container for rendering. */\n updateTransform() {\n this.updateText(!0), super.updateTransform();\n }\n getBounds(t, e) {\n return this.updateText(!0), this._textureID === -1 && (t = !1), super.getBounds(t, e);\n }\n /**\n * Gets the local bounds of the text object.\n * @param rect - The output rectangle.\n * @returns The bounds.\n */\n getLocalBounds(t) {\n return this.updateText(!0), super.getLocalBounds.call(this, t);\n }\n /** Calculates the bounds of the Text as a rectangle. The bounds calculation takes the worldTransform into account. */\n _calculateBounds() {\n this.calculateVertices(), this._bounds.addQuad(this.vertexData);\n }\n /**\n * Generates the fill style. Can automatically generate a gradient based on the fill style being an array\n * @param style - The style.\n * @param lines - The lines of text.\n * @param metrics\n * @returns The fill style\n */\n _generateFillStyle(t, e, i) {\n const s = t.fill;\n if (Array.isArray(s)) {\n if (s.length === 1)\n return s[0];\n } else\n return s;\n let n;\n const o = t.dropShadow ? t.dropShadowDistance : 0, a = t.padding || 0, l = this.canvas.width / this._resolution - o - a * 2, h = this.canvas.height / this._resolution - o - a * 2, c = s.slice(), u = t.fillGradientStops.slice();\n if (!u.length) {\n const d = c.length + 1;\n for (let f = 1; f < d; ++f)\n u.push(f / d);\n }\n if (c.unshift(s[0]), u.unshift(0), c.push(s[s.length - 1]), u.push(1), t.fillGradientType === Qn.LINEAR_VERTICAL) {\n n = this.context.createLinearGradient(l / 2, a, l / 2, h + a);\n const d = i.fontProperties.fontSize + t.strokeThickness;\n for (let f = 0; f < e.length; f++) {\n const p = i.lineHeight * (f - 1) + d, m = i.lineHeight * f;\n let g = m;\n f > 0 && p > m && (g = (m + p) / 2);\n const y = m + d, x = i.lineHeight * (f + 1);\n let _ = y;\n f + 1 < e.length && x < y && (_ = (y + x) / 2);\n const v = (_ - g) / h;\n for (let w = 0; w < c.length; w++) {\n let R = 0;\n typeof u[w] == \"number\" ? R = u[w] : R = w / c.length;\n let C = Math.min(1, Math.max(\n 0,\n g / h + R * v\n ));\n C = Number(C.toFixed(5)), n.addColorStop(C, c[w]);\n }\n }\n } else {\n n = this.context.createLinearGradient(a, h / 2, l + a, h / 2);\n const d = c.length + 1;\n let f = 1;\n for (let p = 0; p < c.length; p++) {\n let m;\n typeof u[p] == \"number\" ? m = u[p] : m = f / d, n.addColorStop(m, c[p]), f++;\n }\n }\n return n;\n }\n /**\n * Destroys this text object.\n *\n * Note* Unlike a Sprite, a Text object will automatically destroy its baseTexture and texture as\n * the majority of the time the texture will not be shared with any other Sprites.\n * @param options - Options parameter. A boolean will act as if all options\n * have been set to that value\n * @param {boolean} [options.children=false] - if set to true, all the children will have their\n * destroy method called as well. 'options' will be passed on to those calls.\n * @param {boolean} [options.texture=true] - Should it destroy the current texture of the sprite as well\n * @param {boolean} [options.baseTexture=true] - Should it destroy the base texture of the sprite as well\n */\n destroy(t) {\n typeof t == \"boolean\" && (t = { children: t }), t = Object.assign({}, Hb, t), super.destroy(t), this._ownCanvas && (this.canvas.height = this.canvas.width = 0), this.context = null, this.canvas = null, this._style = null;\n }\n /** The width of the Text, setting this will actually modify the scale to achieve the value set. */\n get width() {\n return this.updateText(!0), Math.abs(this.scale.x) * this._texture.orig.width;\n }\n set width(t) {\n this.updateText(!0);\n const e = gr(this.scale.x) || 1;\n this.scale.x = e * t / this._texture.orig.width, this._width = t;\n }\n /** The height of the Text, setting this will actually modify the scale to achieve the value set. */\n get height() {\n return this.updateText(!0), Math.abs(this.scale.y) * this._texture.orig.height;\n }\n set height(t) {\n this.updateText(!0);\n const e = gr(this.scale.y) || 1;\n this.scale.y = e * t / this._texture.orig.height, this._height = t;\n }\n /**\n * Set the style of the text.\n *\n * Set up an event listener to listen for changes on the style object and mark the text as dirty.\n *\n * If setting the `style` can also be partial {@link PIXI.ITextStyle}.\n */\n get style() {\n return this._style;\n }\n set style(t) {\n t = t || {}, t instanceof xr ? this._style = t : this._style = new xr(t), this.localStyleID = -1, this.dirty = !0;\n }\n /** Set the copy for the text object. To split a line you can use '\\n'. */\n get text() {\n return this._text;\n }\n set text(t) {\n t = String(t ?? \"\"), this._text !== t && (this._text = t, this.dirty = !0);\n }\n /**\n * The resolution / device pixel ratio of the canvas.\n *\n * This is set to automatically match the renderer resolution by default, but can be overridden by setting manually.\n * @default 1\n */\n get resolution() {\n return this._resolution;\n }\n set resolution(t) {\n this._autoResolution = !1, this._resolution !== t && (this._resolution = t, this.dirty = !0);\n }\n};\n_f.defaultAutoResolution = !0;\nlet vf = _f;\nclass Xb {\n /**\n * @param maxItemsPerFrame - The maximum number of items that can be prepared each frame.\n */\n constructor(t) {\n this.maxItemsPerFrame = t, this.itemsLeft = 0;\n }\n /** Resets any counting properties to start fresh on a new frame. */\n beginFrame() {\n this.itemsLeft = this.maxItemsPerFrame;\n }\n /**\n * Checks to see if another item can be uploaded. This should only be called once per item.\n * @returns If the item is allowed to be uploaded.\n */\n allowedToUpload() {\n return this.itemsLeft-- > 0;\n }\n}\nfunction Vb(r, t) {\n var i;\n let e = !1;\n if ((i = r == null ? void 0 : r._textures) != null && i.length) {\n for (let s = 0; s < r._textures.length; s++)\n if (r._textures[s] instanceof Y) {\n const n = r._textures[s].baseTexture;\n t.includes(n) || (t.push(n), e = !0);\n }\n }\n return e;\n}\nfunction zb(r, t) {\n if (r.baseTexture instanceof et) {\n const e = r.baseTexture;\n return t.includes(e) || t.push(e), !0;\n }\n return !1;\n}\nfunction Wb(r, t) {\n if (r._texture && r._texture instanceof Y) {\n const e = r._texture.baseTexture;\n return t.includes(e) || t.push(e), !0;\n }\n return !1;\n}\nfunction jb(r, t) {\n return t instanceof vf ? (t.updateText(!0), !0) : !1;\n}\nfunction Yb(r, t) {\n if (t instanceof xr) {\n const e = t.toFontString();\n return ur.measureFont(e), !0;\n }\n return !1;\n}\nfunction qb(r, t) {\n if (r instanceof vf) {\n t.includes(r.style) || t.push(r.style), t.includes(r) || t.push(r);\n const e = r._texture.baseTexture;\n return t.includes(e) || t.push(e), !0;\n }\n return !1;\n}\nfunction Kb(r, t) {\n return r instanceof xr ? (t.includes(r) || t.push(r), !0) : !1;\n}\nconst xf = class bf {\n /**\n * @param {PIXI.IRenderer} renderer - A reference to the current renderer\n */\n constructor(t) {\n this.limiter = new Xb(bf.uploadsPerFrame), this.renderer = t, this.uploadHookHelper = null, this.queue = [], this.addHooks = [], this.uploadHooks = [], this.completes = [], this.ticking = !1, this.delayedTick = () => {\n this.queue && this.prepareItems();\n }, this.registerFindHook(qb), this.registerFindHook(Kb), this.registerFindHook(Vb), this.registerFindHook(zb), this.registerFindHook(Wb), this.registerUploadHook(jb), this.registerUploadHook(Yb);\n }\n /**\n * Upload all the textures and graphics to the GPU.\n * @method PIXI.BasePrepare#upload\n * @param {PIXI.DisplayObject|PIXI.Container|PIXI.BaseTexture|PIXI.Texture|PIXI.Graphics|PIXI.Text} [item] -\n * Container or display object to search for items to upload or the items to upload themselves,\n * or optionally ommitted, if items have been added using {@link PIXI.BasePrepare#add `prepare.add`}.\n */\n upload(t) {\n return new Promise((e) => {\n t && this.add(t), this.queue.length ? (this.completes.push(e), this.ticking || (this.ticking = !0, se.system.addOnce(this.tick, this, Vr.UTILITY))) : e();\n });\n }\n /**\n * Handle tick update\n * @private\n */\n tick() {\n setTimeout(this.delayedTick, 0);\n }\n /**\n * Actually prepare items. This is handled outside of the tick because it will take a while\n * and we do NOT want to block the current animation frame from rendering.\n * @private\n */\n prepareItems() {\n for (this.limiter.beginFrame(); this.queue.length && this.limiter.allowedToUpload(); ) {\n const t = this.queue[0];\n let e = !1;\n if (t && !t._destroyed) {\n for (let i = 0, s = this.uploadHooks.length; i < s; i++)\n if (this.uploadHooks[i](this.uploadHookHelper, t)) {\n this.queue.shift(), e = !0;\n break;\n }\n }\n e || this.queue.shift();\n }\n if (this.queue.length)\n se.system.addOnce(this.tick, this, Vr.UTILITY);\n else {\n this.ticking = !1;\n const t = this.completes.slice(0);\n this.completes.length = 0;\n for (let e = 0, i = t.length; e < i; e++)\n t[e]();\n }\n }\n /**\n * Adds hooks for finding items.\n * @param {Function} addHook - Function call that takes two parameters: `item:*, queue:Array`\n * function must return `true` if it was able to add item to the queue.\n * @returns Instance of plugin for chaining.\n */\n registerFindHook(t) {\n return t && this.addHooks.push(t), this;\n }\n /**\n * Adds hooks for uploading items.\n * @param {Function} uploadHook - Function call that takes two parameters: `prepare:CanvasPrepare, item:*` and\n * function must return `true` if it was able to handle upload of item.\n * @returns Instance of plugin for chaining.\n */\n registerUploadHook(t) {\n return t && this.uploadHooks.push(t), this;\n }\n /**\n * Manually add an item to the uploading queue.\n * @param {PIXI.DisplayObject|PIXI.Container|PIXI.BaseTexture|PIXI.Texture|PIXI.Graphics|PIXI.Text|*} item - Object to\n * add to the queue\n * @returns Instance of plugin for chaining.\n */\n add(t) {\n for (let e = 0, i = this.addHooks.length; e < i && !this.addHooks[e](t, this.queue); e++)\n ;\n if (t instanceof we)\n for (let e = t.children.length - 1; e >= 0; e--)\n this.add(t.children[e]);\n return this;\n }\n /** Destroys the plugin, don't use after this. */\n destroy() {\n this.ticking && se.system.remove(this.tick, this), this.ticking = !1, this.addHooks = null, this.uploadHooks = null, this.renderer = null, this.completes = null, this.queue = null, this.limiter = null, this.uploadHookHelper = null;\n }\n};\nxf.uploadsPerFrame = 4;\nlet Ka = xf;\nObject.defineProperties(W, {\n /**\n * Default number of uploads per frame using prepare plugin.\n * @static\n * @memberof PIXI.settings\n * @name UPLOADS_PER_FRAME\n * @deprecated since 7.1.0\n * @see PIXI.BasePrepare.uploadsPerFrame\n * @type {number}\n */\n UPLOADS_PER_FRAME: {\n get() {\n return Ka.uploadsPerFrame;\n },\n set(r) {\n at(\"7.1.0\", \"settings.UPLOADS_PER_FRAME is deprecated, use prepare.BasePrepare.uploadsPerFrame\"), Ka.uploadsPerFrame = r;\n }\n }\n});\nfunction wf(r, t) {\n return t instanceof et ? (t._glTextures[r.CONTEXT_UID] || r.texture.bind(t), !0) : !1;\n}\nfunction Zb(r, t) {\n if (!(t instanceof fs))\n return !1;\n const { geometry: e } = t;\n t.finishPoly(), e.updateBatches();\n const { batches: i } = e;\n for (let s = 0; s < i.length; s++) {\n const { texture: n } = i[s].style;\n n && wf(r, n.baseTexture);\n }\n return e.batchable || r.geometry.bind(e, t._resolveDirectShader(r)), !0;\n}\nfunction Jb(r, t) {\n return r instanceof fs ? (t.push(r), !0) : !1;\n}\nclass Ef extends Ka {\n /**\n * @param {PIXI.Renderer} renderer - A reference to the current renderer\n */\n constructor(t) {\n super(t), this.uploadHookHelper = this.renderer, this.registerFindHook(Jb), this.registerUploadHook(wf), this.registerUploadHook(Zb);\n }\n}\nEf.extension = {\n name: \"prepare\",\n type: H.RendererSystem\n};\nq.add(Ef);\nvar Qb = `#version 300 es\n#define SHADER_NAME Tiling-Sprite-100\n\nprecision lowp float;\n\nin vec2 vTextureCoord;\n\nout vec4 fragmentColor;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n vec2 coord = vTextureCoord + ceil(uClampOffset - vTextureCoord);\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n vec2 unclamped = coord;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n vec4 texSample = texture(uSampler, coord, unclamped == coord ? 0.0f : -32.0f);// lod-bias very negative to force lod 0\n\n fragmentColor = texSample * uColor;\n}\n`, tw = `#version 300 es\n#define SHADER_NAME Tiling-Sprite-300\n\nprecision lowp float;\n\nin vec2 aVertexPosition;\nin vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nout vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n`, ew = `#version 100\n#ifdef GL_EXT_shader_texture_lod\n #extension GL_EXT_shader_texture_lod : enable\n#endif\n#define SHADER_NAME Tiling-Sprite-100\n\nprecision lowp float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n vec2 coord = vTextureCoord + ceil(uClampOffset - vTextureCoord);\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n vec2 unclamped = coord;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n #ifdef GL_EXT_shader_texture_lod\n vec4 texSample = unclamped == coord\n ? texture2D(uSampler, coord) \n : texture2DLodEXT(uSampler, coord, 0);\n #else\n vec4 texSample = texture2D(uSampler, coord);\n #endif\n\n gl_FragColor = texSample * uColor;\n}\n`, kc = `#version 100\n#define SHADER_NAME Tiling-Sprite-100\n\nprecision lowp float;\n\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n`, rw = `#version 100\n#define SHADER_NAME Tiling-Sprite-Simple-100\n\nprecision lowp float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n vec4 texSample = texture2D(uSampler, vTextureCoord);\n gl_FragColor = texSample * uColor;\n}\n`;\nconst Ys = new wt();\nclass Tf extends Kn {\n /**\n * constructor for renderer\n * @param {PIXI.Renderer} renderer - The renderer this tiling awesomeness works for.\n */\n constructor(t) {\n super(t), t.runners.contextChange.add(this), this.quad = new Sd(), this.state = ze.for2d();\n }\n /** Creates shaders when context is initialized. */\n contextChange() {\n const t = this.renderer, e = { globals: t.globalUniforms };\n this.simpleShader = Ne.from(kc, rw, e), this.shader = t.context.webGLVersion > 1 ? Ne.from(tw, Qb, e) : Ne.from(kc, ew, e);\n }\n /**\n * @param {PIXI.TilingSprite} ts - tilingSprite to be rendered\n */\n render(t) {\n const e = this.renderer, i = this.quad;\n let s = i.vertices;\n s[0] = s[6] = t._width * -t.anchor.x, s[1] = s[3] = t._height * -t.anchor.y, s[2] = s[4] = t._width * (1 - t.anchor.x), s[5] = s[7] = t._height * (1 - t.anchor.y);\n const n = t.uvRespectAnchor ? t.anchor.x : 0, o = t.uvRespectAnchor ? t.anchor.y : 0;\n s = i.uvs, s[0] = s[6] = -n, s[1] = s[3] = -o, s[2] = s[4] = 1 - n, s[5] = s[7] = 1 - o, i.invalidate();\n const a = t._texture, l = a.baseTexture, h = l.alphaMode > 0, c = t.tileTransform.localTransform, u = t.uvMatrix;\n let d = l.isPowerOfTwo && a.frame.width === l.width && a.frame.height === l.height;\n d && (l._glTextures[e.CONTEXT_UID] ? d = l.wrapMode !== _r.CLAMP : l.wrapMode === _r.CLAMP && (l.wrapMode = _r.REPEAT));\n const f = d ? this.simpleShader : this.shader, p = a.width, m = a.height, g = t._width, y = t._height;\n Ys.set(\n c.a * p / g,\n c.b * p / y,\n c.c * m / g,\n c.d * m / y,\n c.tx / g,\n c.ty / y\n ), Ys.invert(), d ? Ys.prepend(u.mapCoord) : (f.uniforms.uMapCoord = u.mapCoord.toArray(!0), f.uniforms.uClampFrame = u.uClampFrame, f.uniforms.uClampOffset = u.uClampOffset), f.uniforms.uTransform = Ys.toArray(!0), f.uniforms.uColor = xt.shared.setValue(t.tint).premultiply(t.worldAlpha, h).toArray(f.uniforms.uColor), f.uniforms.translationMatrix = t.transform.worldTransform.toArray(!0), f.uniforms.uSampler = a, e.shader.bind(f), e.geometry.bind(i), this.state.blendMode = fd(t.blendMode, h), e.state.set(this.state), e.geometry.draw(this.renderer.gl.TRIANGLES, 6, 0);\n }\n}\nTf.extension = {\n name: \"tilingSprite\",\n type: H.RendererPlugin\n};\nq.add(Tf);\nconst Af = class Qi {\n /** @ignore */\n constructor(t, e, i) {\n this.linkedSheets = [], (t instanceof et || t instanceof Y) && (t = { texture: t, data: e, resolutionFilename: i });\n const { texture: s, data: n, resolutionFilename: o = null, cachePrefix: a = \"\" } = t;\n this.cachePrefix = a, this._texture = s instanceof Y ? s : null, this.baseTexture = s instanceof et ? s : this._texture.baseTexture, this.textures = {}, this.animations = {}, this.data = n;\n const l = this.baseTexture.resource;\n this.resolution = this._updateResolution(o || (l ? l.url : null)), this._frames = this.data.frames, this._frameKeys = Object.keys(this._frames), this._batchIndex = 0, this._callback = null;\n }\n /**\n * Generate the resolution from the filename or fallback\n * to the meta.scale field of the JSON data.\n * @param resolutionFilename - The filename to use for resolving\n * the default resolution.\n * @returns Resolution to use for spritesheet.\n */\n _updateResolution(t = null) {\n const { scale: e } = this.data.meta;\n let i = rr(t, null);\n return i === null && (i = typeof e == \"number\" ? e : parseFloat(e ?? \"1\")), i !== 1 && this.baseTexture.setResolution(i), i;\n }\n /**\n * Parser spritesheet from loaded data. This is done asynchronously\n * to prevent creating too many Texture within a single process.\n * @method PIXI.Spritesheet#parse\n */\n parse() {\n return new Promise((t) => {\n this._callback = t, this._batchIndex = 0, this._frameKeys.length <= Qi.BATCH_SIZE ? (this._processFrames(0), this._processAnimations(), this._parseComplete()) : this._nextBatch();\n });\n }\n /**\n * Process a batch of frames\n * @param initialFrameIndex - The index of frame to start.\n */\n _processFrames(t) {\n let e = t;\n const i = Qi.BATCH_SIZE;\n for (; e - t < i && e < this._frameKeys.length; ) {\n const s = this._frameKeys[e], n = this._frames[s], o = n.frame;\n if (o) {\n let a = null, l = null;\n const h = n.trimmed !== !1 && n.sourceSize ? n.sourceSize : n.frame, c = new it(\n 0,\n 0,\n Math.floor(h.w) / this.resolution,\n Math.floor(h.h) / this.resolution\n );\n n.rotated ? a = new it(\n Math.floor(o.x) / this.resolution,\n Math.floor(o.y) / this.resolution,\n Math.floor(o.h) / this.resolution,\n Math.floor(o.w) / this.resolution\n ) : a = new it(\n Math.floor(o.x) / this.resolution,\n Math.floor(o.y) / this.resolution,\n Math.floor(o.w) / this.resolution,\n Math.floor(o.h) / this.resolution\n ), n.trimmed !== !1 && n.spriteSourceSize && (l = new it(\n Math.floor(n.spriteSourceSize.x) / this.resolution,\n Math.floor(n.spriteSourceSize.y) / this.resolution,\n Math.floor(o.w) / this.resolution,\n Math.floor(o.h) / this.resolution\n )), this.textures[s] = new Y(\n this.baseTexture,\n a,\n c,\n l,\n n.rotated ? 2 : 0,\n n.anchor,\n n.borders\n ), Y.addToCache(this.textures[s], this.cachePrefix + s.toString());\n }\n e++;\n }\n }\n /** Parse animations config. */\n _processAnimations() {\n const t = this.data.animations || {};\n for (const e in t) {\n this.animations[e] = [];\n for (let i = 0; i < t[e].length; i++) {\n const s = t[e][i];\n this.animations[e].push(this.textures[s]);\n }\n }\n }\n /** The parse has completed. */\n _parseComplete() {\n const t = this._callback;\n this._callback = null, this._batchIndex = 0, t.call(this, this.textures);\n }\n /** Begin the next batch of textures. */\n _nextBatch() {\n this._processFrames(this._batchIndex * Qi.BATCH_SIZE), this._batchIndex++, setTimeout(() => {\n this._batchIndex * Qi.BATCH_SIZE < this._frameKeys.length ? this._nextBatch() : (this._processAnimations(), this._parseComplete());\n }, 0);\n }\n /**\n * Destroy Spritesheet and don't use after this.\n * @param {boolean} [destroyBase=false] - Whether to destroy the base texture as well\n */\n destroy(t = !1) {\n var e;\n for (const i in this.textures)\n this.textures[i].destroy();\n this._frames = null, this._frameKeys = null, this.data = null, this.textures = null, t && ((e = this._texture) == null || e.destroy(), this.baseTexture.destroy()), this._texture = null, this.baseTexture = null, this.linkedSheets = [];\n }\n};\nAf.BATCH_SIZE = 1e3;\nlet Gc = Af;\nconst iw = [\n \"jpg\",\n \"png\",\n \"jpeg\",\n \"avif\",\n \"webp\",\n \"s3tc\",\n \"s3tc_sRGB\",\n \"etc\",\n \"etc1\",\n \"pvrtc\",\n \"atc\",\n \"astc\",\n \"bptc\"\n];\nfunction Sf(r, t, e) {\n const i = {};\n if (r.forEach((s) => {\n i[s] = t;\n }), Object.keys(t.textures).forEach((s) => {\n i[`${t.cachePrefix}${s}`] = t.textures[s];\n }), !e) {\n const s = kt.dirname(r[0]);\n t.linkedSheets.forEach((n, o) => {\n Object.assign(i, Sf(\n [`${s}/${t.data.meta.related_multi_packs[o]}`],\n n,\n !0\n ));\n });\n }\n return i;\n}\nconst sw = {\n extension: H.Asset,\n /** Handle the caching of the related Spritesheet Textures */\n cache: {\n test: (r) => r instanceof Gc,\n getCacheableAssets: (r, t) => Sf(r, t, !1)\n },\n /** Resolve the the resolution of the asset. */\n resolver: {\n test: (r) => {\n const t = r.split(\"?\")[0].split(\".\"), e = t.pop(), i = t.pop();\n return e === \"json\" && iw.includes(i);\n },\n parse: (r) => {\n var e;\n const t = r.split(\".\");\n return {\n resolution: parseFloat(((e = W.RETINA_PREFIX.exec(r)) == null ? void 0 : e[1]) ?? \"1\"),\n format: t[t.length - 2],\n src: r\n };\n }\n },\n /**\n * Loader plugin that parses sprite sheets!\n * once the JSON has been loaded this checks to see if the JSON is spritesheet data.\n * If it is, we load the spritesheets image and parse the data into PIXI.Spritesheet\n * All textures in the sprite sheet are then added to the cache\n * @ignore\n */\n loader: {\n name: \"spritesheetLoader\",\n extension: {\n type: H.LoadParser,\n priority: Ee.Normal\n },\n async testParse(r, t) {\n return kt.extname(t.src).toLowerCase() === \".json\" && !!r.frames;\n },\n async parse(r, t, e) {\n var c, u;\n const {\n texture: i,\n // if user need to use preloaded texture\n imageFilename: s,\n // if user need to use custom filename (not from jsonFile.meta.image)\n cachePrefix: n\n // if user need to use custom cache prefix\n } = (t == null ? void 0 : t.data) ?? {};\n let o = kt.dirname(t.src);\n o && o.lastIndexOf(\"/\") !== o.length - 1 && (o += \"/\");\n let a;\n if (i && i.baseTexture)\n a = i;\n else {\n const d = za(o + (s ?? r.meta.image), t.src);\n a = (await e.load([d]))[d];\n }\n const l = new Gc({\n texture: a.baseTexture,\n data: r,\n resolutionFilename: t.src,\n cachePrefix: n\n });\n await l.parse();\n const h = (c = r == null ? void 0 : r.meta) == null ? void 0 : c.related_multi_packs;\n if (Array.isArray(h)) {\n const d = [];\n for (const p of h) {\n if (typeof p != \"string\")\n continue;\n let m = o + p;\n (u = t.data) != null && u.ignoreMultiPack || (m = za(m, t.src), d.push(e.load({\n src: m,\n data: {\n ignoreMultiPack: !0\n }\n })));\n }\n const f = await Promise.all(d);\n l.linkedSheets = f, f.forEach((p) => {\n p.linkedSheets = [l].concat(l.linkedSheets.filter((m) => m !== p));\n });\n }\n return l;\n },\n unload(r) {\n r.destroy(!0);\n }\n }\n};\nq.add(sw);\nclass Nn {\n constructor() {\n this.info = [], this.common = [], this.page = [], this.char = [], this.kerning = [], this.distanceField = [];\n }\n}\nclass hn {\n /**\n * Check if resource refers to txt font data.\n * @param data\n * @returns - True if resource could be treated as font data, false otherwise.\n */\n static test(t) {\n return typeof t == \"string\" && t.startsWith(\"info face=\");\n }\n /**\n * Convert text font data to a javascript object.\n * @param txt - Raw string data to be converted\n * @returns - Parsed font data\n */\n static parse(t) {\n const e = t.match(/^[a-z]+\\s+.+$/gm), i = {\n info: [],\n common: [],\n page: [],\n char: [],\n chars: [],\n kerning: [],\n kernings: [],\n distanceField: []\n };\n for (const n in e) {\n const o = e[n].match(/^[a-z]+/gm)[0], a = e[n].match(/[a-zA-Z]+=([^\\s\"']+|\"([^\"]*)\")/gm), l = {};\n for (const h in a) {\n const c = a[h].split(\"=\"), u = c[0], d = c[1].replace(/\"/gm, \"\"), f = parseFloat(d), p = isNaN(f) ? d : f;\n l[u] = p;\n }\n i[o].push(l);\n }\n const s = new Nn();\n return i.info.forEach((n) => s.info.push({\n face: n.face,\n size: parseInt(n.size, 10)\n })), i.common.forEach((n) => s.common.push({\n lineHeight: parseInt(n.lineHeight, 10)\n })), i.page.forEach((n) => s.page.push({\n id: parseInt(n.id, 10),\n file: n.file\n })), i.char.forEach((n) => s.char.push({\n id: parseInt(n.id, 10),\n page: parseInt(n.page, 10),\n x: parseInt(n.x, 10),\n y: parseInt(n.y, 10),\n width: parseInt(n.width, 10),\n height: parseInt(n.height, 10),\n xoffset: parseInt(n.xoffset, 10),\n yoffset: parseInt(n.yoffset, 10),\n xadvance: parseInt(n.xadvance, 10)\n })), i.kerning.forEach((n) => s.kerning.push({\n first: parseInt(n.first, 10),\n second: parseInt(n.second, 10),\n amount: parseInt(n.amount, 10)\n })), i.distanceField.forEach((n) => s.distanceField.push({\n distanceRange: parseInt(n.distanceRange, 10),\n fieldType: n.fieldType\n })), s;\n }\n}\nclass Za {\n /**\n * Check if resource refers to xml font data.\n * @param data\n * @returns - True if resource could be treated as font data, false otherwise.\n */\n static test(t) {\n const e = t;\n return typeof t != \"string\" && \"getElementsByTagName\" in t && e.getElementsByTagName(\"page\").length && e.getElementsByTagName(\"info\")[0].getAttribute(\"face\") !== null;\n }\n /**\n * Convert the XML into BitmapFontData that we can use.\n * @param xml\n * @returns - Data to use for BitmapFont\n */\n static parse(t) {\n const e = new Nn(), i = t.getElementsByTagName(\"info\"), s = t.getElementsByTagName(\"common\"), n = t.getElementsByTagName(\"page\"), o = t.getElementsByTagName(\"char\"), a = t.getElementsByTagName(\"kerning\"), l = t.getElementsByTagName(\"distanceField\");\n for (let h = 0; h < i.length; h++)\n e.info.push({\n face: i[h].getAttribute(\"face\"),\n size: parseInt(i[h].getAttribute(\"size\"), 10)\n });\n for (let h = 0; h < s.length; h++)\n e.common.push({\n lineHeight: parseInt(s[h].getAttribute(\"lineHeight\"), 10)\n });\n for (let h = 0; h < n.length; h++)\n e.page.push({\n id: parseInt(n[h].getAttribute(\"id\"), 10) || 0,\n file: n[h].getAttribute(\"file\")\n });\n for (let h = 0; h < o.length; h++) {\n const c = o[h];\n e.char.push({\n id: parseInt(c.getAttribute(\"id\"), 10),\n page: parseInt(c.getAttribute(\"page\"), 10) || 0,\n x: parseInt(c.getAttribute(\"x\"), 10),\n y: parseInt(c.getAttribute(\"y\"), 10),\n width: parseInt(c.getAttribute(\"width\"), 10),\n height: parseInt(c.getAttribute(\"height\"), 10),\n xoffset: parseInt(c.getAttribute(\"xoffset\"), 10),\n yoffset: parseInt(c.getAttribute(\"yoffset\"), 10),\n xadvance: parseInt(c.getAttribute(\"xadvance\"), 10)\n });\n }\n for (let h = 0; h < a.length; h++)\n e.kerning.push({\n first: parseInt(a[h].getAttribute(\"first\"), 10),\n second: parseInt(a[h].getAttribute(\"second\"), 10),\n amount: parseInt(a[h].getAttribute(\"amount\"), 10)\n });\n for (let h = 0; h < l.length; h++)\n e.distanceField.push({\n fieldType: l[h].getAttribute(\"fieldType\"),\n distanceRange: parseInt(l[h].getAttribute(\"distanceRange\"), 10)\n });\n return e;\n }\n}\nclass Ja {\n /**\n * Check if resource refers to text xml font data.\n * @param data\n * @returns - True if resource could be treated as font data, false otherwise.\n */\n static test(t) {\n return typeof t == \"string\" && t.includes(\"<font>\") ? Za.test(W.ADAPTER.parseXML(t)) : !1;\n }\n /**\n * Convert the text XML into BitmapFontData that we can use.\n * @param xmlTxt\n * @returns - Data to use for BitmapFont\n */\n static parse(t) {\n return Za.parse(W.ADAPTER.parseXML(t));\n }\n}\nconst Yo = [\n hn,\n Za,\n Ja\n];\nfunction nw(r) {\n for (let t = 0; t < Yo.length; t++)\n if (Yo[t].test(r))\n return Yo[t];\n return null;\n}\nfunction ow(r, t, e, i, s, n) {\n const o = e.fill;\n if (Array.isArray(o)) {\n if (o.length === 1)\n return o[0];\n } else\n return o;\n let a;\n const l = e.dropShadow ? e.dropShadowDistance : 0, h = e.padding || 0, c = r.width / i - l - h * 2, u = r.height / i - l - h * 2, d = o.slice(), f = e.fillGradientStops.slice();\n if (!f.length) {\n const p = d.length + 1;\n for (let m = 1; m < p; ++m)\n f.push(m / p);\n }\n if (d.unshift(o[0]), f.unshift(0), d.push(o[o.length - 1]), f.push(1), e.fillGradientType === Qn.LINEAR_VERTICAL) {\n a = t.createLinearGradient(c / 2, h, c / 2, u + h);\n let p = 0;\n const m = (n.fontProperties.fontSize + e.strokeThickness) / u;\n for (let g = 0; g < s.length; g++) {\n const y = n.lineHeight * g;\n for (let x = 0; x < d.length; x++) {\n let _ = 0;\n typeof f[x] == \"number\" ? _ = f[x] : _ = x / d.length;\n const v = y / u + _ * m;\n let w = Math.max(p, v);\n w = Math.min(w, 1), a.addColorStop(w, d[x]), p = w;\n }\n }\n } else {\n a = t.createLinearGradient(h, u / 2, c + h, u / 2);\n const p = d.length + 1;\n let m = 1;\n for (let g = 0; g < d.length; g++) {\n let y;\n typeof f[g] == \"number\" ? y = f[g] : y = m / p, a.addColorStop(y, d[g]), m++;\n }\n }\n return a;\n}\nfunction aw(r, t, e, i, s, n, o) {\n const a = e.text, l = e.fontProperties;\n t.translate(i, s), t.scale(n, n);\n const h = o.strokeThickness / 2, c = -(o.strokeThickness / 2);\n if (t.font = o.toFontString(), t.lineWidth = o.strokeThickness, t.textBaseline = o.textBaseline, t.lineJoin = o.lineJoin, t.miterLimit = o.miterLimit, t.fillStyle = ow(r, t, o, n, [a], e), t.strokeStyle = o.stroke, o.dropShadow) {\n const u = o.dropShadowColor, d = o.dropShadowBlur * n, f = o.dropShadowDistance * n;\n t.shadowColor = xt.shared.setValue(u).setAlpha(o.dropShadowAlpha).toRgbaString(), t.shadowBlur = d, t.shadowOffsetX = Math.cos(o.dropShadowAngle) * f, t.shadowOffsetY = Math.sin(o.dropShadowAngle) * f;\n } else\n t.shadowColor = \"black\", t.shadowBlur = 0, t.shadowOffsetX = 0, t.shadowOffsetY = 0;\n o.stroke && o.strokeThickness && t.strokeText(a, h, c + e.lineHeight - l.descent), o.fill && t.fillText(a, h, c + e.lineHeight - l.descent), t.setTransform(1, 0, 0, 1, 0, 0), t.fillStyle = \"rgba(0, 0, 0, 0)\";\n}\nfunction cn(r) {\n return r.codePointAt ? r.codePointAt(0) : r.charCodeAt(0);\n}\nfunction Cf(r) {\n return Array.from ? Array.from(r) : r.split(\"\");\n}\nfunction lw(r) {\n typeof r == \"string\" && (r = [r]);\n const t = [];\n for (let e = 0, i = r.length; e < i; e++) {\n const s = r[e];\n if (Array.isArray(s)) {\n if (s.length !== 2)\n throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);\n const n = s[0].charCodeAt(0), o = s[1].charCodeAt(0);\n if (o < n)\n throw new Error(\"[BitmapFont]: Invalid character range.\");\n for (let a = n, l = o; a <= l; a++)\n t.push(String.fromCharCode(a));\n } else\n t.push(...Cf(s));\n }\n if (t.length === 0)\n throw new Error(\"[BitmapFont]: Empty set when resolving characters.\");\n return t;\n}\nconst lr = class Me {\n /**\n * @param data\n * @param textures\n * @param ownsTextures - Setting to `true` will destroy page textures\n * when the font is uninstalled.\n */\n constructor(t, e, i) {\n var c;\n const [s] = t.info, [n] = t.common, [o] = t.page, [a] = t.distanceField, l = rr(o.file), h = {};\n this._ownsTextures = i, this.font = s.face, this.size = s.size, this.lineHeight = n.lineHeight / l, this.chars = {}, this.pageTextures = h;\n for (let u = 0; u < t.page.length; u++) {\n const { id: d, file: f } = t.page[u];\n h[d] = e instanceof Array ? e[u] : e[f], a != null && a.fieldType && a.fieldType !== \"none\" && (h[d].baseTexture.alphaMode = te.NO_PREMULTIPLIED_ALPHA, h[d].baseTexture.mipmap = He.OFF);\n }\n for (let u = 0; u < t.char.length; u++) {\n const { id: d, page: f } = t.char[u];\n let { x: p, y: m, width: g, height: y, xoffset: x, yoffset: _, xadvance: v } = t.char[u];\n p /= l, m /= l, g /= l, y /= l, x /= l, _ /= l, v /= l;\n const w = new it(\n p + h[f].frame.x / l,\n m + h[f].frame.y / l,\n g,\n y\n );\n this.chars[d] = {\n xOffset: x,\n yOffset: _,\n xAdvance: v,\n kerning: {},\n texture: new Y(\n h[f].baseTexture,\n w\n ),\n page: f\n };\n }\n for (let u = 0; u < t.kerning.length; u++) {\n let { first: d, second: f, amount: p } = t.kerning[u];\n d /= l, f /= l, p /= l, this.chars[f] && (this.chars[f].kerning[d] = p);\n }\n this.distanceFieldRange = a == null ? void 0 : a.distanceRange, this.distanceFieldType = ((c = a == null ? void 0 : a.fieldType) == null ? void 0 : c.toLowerCase()) ?? \"none\";\n }\n /** Remove references to created glyph textures. */\n destroy() {\n for (const t in this.chars)\n this.chars[t].texture.destroy(), this.chars[t].texture = null;\n for (const t in this.pageTextures)\n this._ownsTextures && this.pageTextures[t].destroy(!0), this.pageTextures[t] = null;\n this.chars = null, this.pageTextures = null;\n }\n /**\n * Register a new bitmap font.\n * @param data - The\n * characters map that could be provided as xml or raw string.\n * @param textures - List of textures for each page.\n * @param ownsTextures - Set to `true` to destroy page textures\n * when the font is uninstalled. By default fonts created with\n * `BitmapFont.from` or from the `BitmapFontLoader` are `true`.\n * @returns {PIXI.BitmapFont} Result font object with font, size, lineHeight\n * and char fields.\n */\n static install(t, e, i) {\n let s;\n if (t instanceof Nn)\n s = t;\n else {\n const o = nw(t);\n if (!o)\n throw new Error(\"Unrecognized data format for font.\");\n s = o.parse(t);\n }\n e instanceof Y && (e = [e]);\n const n = new Me(s, e, i);\n return Me.available[n.font] = n, n;\n }\n /**\n * Remove bitmap font by name.\n * @param name - Name of the font to uninstall.\n */\n static uninstall(t) {\n const e = Me.available[t];\n if (!e)\n throw new Error(`No font found named '${t}'`);\n e.destroy(), delete Me.available[t];\n }\n /**\n * Generates a bitmap-font for the given style and character set. This does not support\n * kernings yet. With `style` properties, only the following non-layout properties are used:\n *\n * - {@link PIXI.TextStyle#dropShadow|dropShadow}\n * - {@link PIXI.TextStyle#dropShadowDistance|dropShadowDistance}\n * - {@link PIXI.TextStyle#dropShadowColor|dropShadowColor}\n * - {@link PIXI.TextStyle#dropShadowBlur|dropShadowBlur}\n * - {@link PIXI.TextStyle#dropShadowAngle|dropShadowAngle}\n * - {@link PIXI.TextStyle#fill|fill}\n * - {@link PIXI.TextStyle#fillGradientStops|fillGradientStops}\n * - {@link PIXI.TextStyle#fillGradientType|fillGradientType}\n * - {@link PIXI.TextStyle#fontFamily|fontFamily}\n * - {@link PIXI.TextStyle#fontSize|fontSize}\n * - {@link PIXI.TextStyle#fontVariant|fontVariant}\n * - {@link PIXI.TextStyle#fontWeight|fontWeight}\n * - {@link PIXI.TextStyle#lineJoin|lineJoin}\n * - {@link PIXI.TextStyle#miterLimit|miterLimit}\n * - {@link PIXI.TextStyle#stroke|stroke}\n * - {@link PIXI.TextStyle#strokeThickness|strokeThickness}\n * - {@link PIXI.TextStyle#textBaseline|textBaseline}\n * @param name - The name of the custom font to use with BitmapText.\n * @param textStyle - Style options to render with BitmapFont.\n * @param options - Setup options for font or name of the font.\n * @returns Font generated by style options.\n * @example\n * import { BitmapFont, BitmapText } from 'pixi.js';\n *\n * BitmapFont.from('TitleFont', {\n * fontFamily: 'Arial',\n * fontSize: 12,\n * strokeThickness: 2,\n * fill: 'purple',\n * });\n *\n * const title = new BitmapText('This is the title', { fontName: 'TitleFont' });\n */\n static from(t, e, i) {\n if (!t)\n throw new Error(\"[BitmapFont] Property `name` is required.\");\n const {\n chars: s,\n padding: n,\n resolution: o,\n textureWidth: a,\n textureHeight: l,\n ...h\n } = Object.assign({}, Me.defaultOptions, i), c = lw(s), u = e instanceof xr ? e : new xr(e), d = a, f = new Nn();\n f.info[0] = {\n face: u.fontFamily,\n size: u.fontSize\n }, f.common[0] = {\n lineHeight: u.fontSize\n };\n let p = 0, m = 0, g, y, x, _ = 0;\n const v = [];\n for (let R = 0; R < c.length; R++) {\n g || (g = W.ADAPTER.createCanvas(), g.width = a, g.height = l, y = g.getContext(\"2d\"), x = new et(g, { resolution: o, ...h }), v.push(new Y(x)), f.page.push({\n id: v.length - 1,\n file: \"\"\n }));\n const C = c[R], b = ur.measureText(C, u, !1, g), T = b.width, I = Math.ceil(b.height), O = Math.ceil((u.fontStyle === \"italic\" ? 2 : 1) * T);\n if (m >= l - I * o) {\n if (m === 0)\n throw new Error(`[BitmapFont] textureHeight ${l}px is too small (fontFamily: '${u.fontFamily}', fontSize: ${u.fontSize}px, char: '${C}')`);\n --R, g = null, y = null, x = null, m = 0, p = 0, _ = 0;\n continue;\n }\n if (_ = Math.max(I + b.fontProperties.descent, _), O * o + p >= d) {\n if (p === 0)\n throw new Error(`[BitmapFont] textureWidth ${a}px is too small (fontFamily: '${u.fontFamily}', fontSize: ${u.fontSize}px, char: '${C}')`);\n --R, m += _ * o, m = Math.ceil(m), p = 0, _ = 0;\n continue;\n }\n aw(g, y, b, p, m, o, u);\n const M = cn(b.text);\n f.char.push({\n id: M,\n page: v.length - 1,\n x: p / o,\n y: m / o,\n width: O,\n height: I,\n xoffset: 0,\n yoffset: 0,\n xadvance: T - (u.dropShadow ? u.dropShadowDistance : 0) - (u.stroke ? u.strokeThickness : 0)\n }), p += (O + 2 * n) * o, p = Math.ceil(p);\n }\n if (!(i != null && i.skipKerning))\n for (let R = 0, C = c.length; R < C; R++) {\n const b = c[R];\n for (let T = 0; T < C; T++) {\n const I = c[T], O = y.measureText(b).width, M = y.measureText(I).width, E = y.measureText(b + I).width - (O + M);\n E && f.kerning.push({\n first: cn(b),\n second: cn(I),\n amount: E\n });\n }\n }\n const w = new Me(f, v, !0);\n return Me.available[t] !== void 0 && Me.uninstall(t), Me.available[t] = w, w;\n }\n};\nlr.ALPHA = [[\"a\", \"z\"], [\"A\", \"Z\"], \" \"], /**\n* This character set includes all decimal digits (from 0 to 9).\n* @type {string[][]}\n* @example\n* BitmapFont.from('ExampleFont', style, { chars: BitmapFont.NUMERIC })\n*/\nlr.NUMERIC = [[\"0\", \"9\"]], /**\n* This character set is the union of `BitmapFont.ALPHA` and `BitmapFont.NUMERIC`.\n* @type {string[][]}\n*/\nlr.ALPHANUMERIC = [[\"a\", \"z\"], [\"A\", \"Z\"], [\"0\", \"9\"], \" \"], /**\n* This character set consists of all the ASCII table.\n* @member {string[][]}\n* @see http://www.asciitable.com/\n*/\nlr.ASCII = [[\" \", \"~\"]], /**\n* Collection of default options when using `BitmapFont.from`.\n* @property {number} [resolution=1] -\n* @property {number} [textureWidth=512] -\n* @property {number} [textureHeight=512] -\n* @property {number} [padding=4] -\n* @property {string|string[]|string[][]} chars = PIXI.BitmapFont.ALPHANUMERIC\n*/\nlr.defaultOptions = {\n resolution: 1,\n textureWidth: 512,\n textureHeight: 512,\n padding: 4,\n chars: lr.ALPHANUMERIC\n}, /** Collection of available/installed fonts. */\nlr.available = {};\nlet hr = lr;\nvar hw = `// Pixi texture info\\r\nvarying vec2 vTextureCoord;\\r\nuniform sampler2D uSampler;\\r\n\\r\n// Tint\\r\nuniform vec4 uColor;\\r\n\\r\n// on 2D applications fwidth is screenScale / glyphAtlasScale * distanceFieldRange\\r\nuniform float uFWidth;\\r\n\\r\nvoid main(void) {\\r\n\\r\n // To stack MSDF and SDF we need a non-pre-multiplied-alpha texture.\\r\n vec4 texColor = texture2D(uSampler, vTextureCoord);\\r\n\\r\n // MSDF\\r\n float median = texColor.r + texColor.g + texColor.b -\\r\n min(texColor.r, min(texColor.g, texColor.b)) -\\r\n max(texColor.r, max(texColor.g, texColor.b));\\r\n // SDF\\r\n median = min(median, texColor.a);\\r\n\\r\n float screenPxDistance = uFWidth * (median - 0.5);\\r\n float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);\\r\n if (median < 0.01) {\\r\n alpha = 0.0;\\r\n } else if (median > 0.99) {\\r\n alpha = 1.0;\\r\n }\\r\n\\r\n // Gamma correction for coverage-like alpha\\r\n float luma = dot(uColor.rgb, vec3(0.299, 0.587, 0.114));\\r\n float gamma = mix(1.0, 1.0 / 2.2, luma);\\r\n float coverage = pow(uColor.a * alpha, gamma); \\r\n\\r\n // NPM Textures, NPM outputs\\r\n gl_FragColor = vec4(uColor.rgb, coverage);\\r\n}\\r\n`, cw = `// Mesh material default fragment\\r\nattribute vec2 aVertexPosition;\\r\nattribute vec2 aTextureCoord;\\r\n\\r\nuniform mat3 projectionMatrix;\\r\nuniform mat3 translationMatrix;\\r\nuniform mat3 uTextureMatrix;\\r\n\\r\nvarying vec2 vTextureCoord;\\r\n\\r\nvoid main(void)\\r\n{\\r\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\\r\n\\r\n vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\\r\n}\\r\n`;\nconst $c = [], Hc = [], Xc = [], uw = class If extends we {\n /**\n * @param text - A string that you would like the text to display.\n * @param style - The style parameters.\n * @param {string} style.fontName - The installed BitmapFont name.\n * @param {number} [style.fontSize] - The size of the font in pixels, e.g. 24. If undefined,\n *. this will default to the BitmapFont size.\n * @param {string} [style.align='left'] - Alignment for multiline text ('left', 'center', 'right' or 'justify'),\n * does not affect single line text.\n * @param {PIXI.ColorSource} [style.tint=0xFFFFFF] - The tint color.\n * @param {number} [style.letterSpacing=0] - The amount of spacing between letters.\n * @param {number} [style.maxWidth=0] - The max width of the text before line wrapping.\n */\n constructor(t, e = {}) {\n super();\n const { align: i, tint: s, maxWidth: n, letterSpacing: o, fontName: a, fontSize: l } = Object.assign(\n {},\n If.styleDefaults,\n e\n );\n if (!hr.available[a])\n throw new Error(`Missing BitmapFont \"${a}\"`);\n this._activePagesMeshData = [], this._textWidth = 0, this._textHeight = 0, this._align = i, this._tintColor = new xt(s), this._font = void 0, this._fontName = a, this._fontSize = l, this.text = t, this._maxWidth = n, this._maxLineHeight = 0, this._letterSpacing = o, this._anchor = new Ke(() => {\n this.dirty = !0;\n }, this, 0, 0), this._roundPixels = W.ROUND_PIXELS, this.dirty = !0, this._resolution = W.RESOLUTION, this._autoResolution = !0, this._textureCache = {};\n }\n /** Renders text and updates it when needed. This should only be called if the BitmapFont is regenerated. */\n updateText() {\n var O;\n const t = hr.available[this._fontName], e = this.fontSize, i = e / t.size, s = new ft(), n = [], o = [], a = [], l = this._text.replace(/(?:\\r\\n|\\r)/g, `\n`) || \" \", h = Cf(l), c = this._maxWidth * t.size / e, u = t.distanceFieldType === \"none\" ? $c : Hc;\n let d = null, f = 0, p = 0, m = 0, g = -1, y = 0, x = 0, _ = 0, v = 0;\n for (let M = 0; M < h.length; M++) {\n const E = h[M], A = cn(E);\n if (/(?:\\s)/.test(E) && (g = M, y = f, v++), E === \"\\r\" || E === `\n`) {\n o.push(f), a.push(-1), p = Math.max(p, f), ++m, ++x, s.x = 0, s.y += t.lineHeight, d = null, v = 0;\n continue;\n }\n const L = t.chars[A];\n if (!L)\n continue;\n d && L.kerning[d] && (s.x += L.kerning[d]);\n const k = Xc.pop() || {\n texture: Y.EMPTY,\n line: 0,\n charCode: 0,\n prevSpaces: 0,\n position: new ft()\n };\n k.texture = L.texture, k.line = m, k.charCode = A, k.position.x = Math.round(s.x + L.xOffset + this._letterSpacing / 2), k.position.y = Math.round(s.y + L.yOffset), k.prevSpaces = v, n.push(k), f = k.position.x + Math.max(L.xAdvance - L.xOffset, L.texture.orig.width), s.x += L.xAdvance + this._letterSpacing, _ = Math.max(_, L.yOffset + L.texture.height), d = A, g !== -1 && c > 0 && s.x > c && (++x, xi(n, 1 + g - x, 1 + M - g), M = g, g = -1, o.push(y), a.push(n.length > 0 ? n[n.length - 1].prevSpaces : 0), p = Math.max(p, y), m++, s.x = 0, s.y += t.lineHeight, d = null, v = 0);\n }\n const w = h[h.length - 1];\n w !== \"\\r\" && w !== `\n` && (/(?:\\s)/.test(w) && (f = y), o.push(f), p = Math.max(p, f), a.push(-1));\n const R = [];\n for (let M = 0; M <= m; M++) {\n let E = 0;\n this._align === \"right\" ? E = p - o[M] : this._align === \"center\" ? E = (p - o[M]) / 2 : this._align === \"justify\" && (E = a[M] < 0 ? 0 : (p - o[M]) / a[M]), R.push(E);\n }\n const C = n.length, b = {}, T = [], I = this._activePagesMeshData;\n u.push(...I);\n for (let M = 0; M < C; M++) {\n const E = n[M].texture, A = E.baseTexture.uid;\n if (!b[A]) {\n let L = u.pop();\n if (!L) {\n const G = new Fb();\n let $, X;\n t.distanceFieldType === \"none\" ? ($ = new Nc(Y.EMPTY), X = J.NORMAL) : ($ = new Nc(\n Y.EMPTY,\n { program: Ze.from(cw, hw), uniforms: { uFWidth: 0 } }\n ), X = J.NORMAL_NPM);\n const D = new Lc(G, $);\n D.blendMode = X, L = {\n index: 0,\n indexCount: 0,\n vertexCount: 0,\n uvsCount: 0,\n total: 0,\n mesh: D,\n vertices: null,\n uvs: null,\n indices: null\n };\n }\n L.index = 0, L.indexCount = 0, L.vertexCount = 0, L.uvsCount = 0, L.total = 0;\n const { _textureCache: k } = this;\n k[A] = k[A] || new Y(E.baseTexture), L.mesh.texture = k[A], L.mesh.tint = this._tintColor.value, T.push(L), b[A] = L;\n }\n b[A].total++;\n }\n for (let M = 0; M < I.length; M++)\n T.includes(I[M]) || this.removeChild(I[M].mesh);\n for (let M = 0; M < T.length; M++)\n T[M].mesh.parent !== this && this.addChild(T[M].mesh);\n this._activePagesMeshData = T;\n for (const M in b) {\n const E = b[M], A = E.total;\n if (!(((O = E.indices) == null ? void 0 : O.length) > 6 * A) || E.vertices.length < Lc.BATCHABLE_SIZE * 2)\n E.vertices = new Float32Array(4 * 2 * A), E.uvs = new Float32Array(4 * 2 * A), E.indices = new Uint16Array(6 * A);\n else {\n const L = E.total, k = E.vertices;\n for (let G = L * 4 * 2; G < k.length; G++)\n k[G] = 0;\n }\n E.mesh.size = 6 * A;\n }\n for (let M = 0; M < C; M++) {\n const E = n[M];\n let A = E.position.x + R[E.line] * (this._align === \"justify\" ? E.prevSpaces : 1);\n this._roundPixels && (A = Math.round(A));\n const L = A * i, k = E.position.y * i, G = E.texture, $ = b[G.baseTexture.uid], X = G.frame, D = G._uvs, F = $.index++;\n $.indices[F * 6 + 0] = 0 + F * 4, $.indices[F * 6 + 1] = 1 + F * 4, $.indices[F * 6 + 2] = 2 + F * 4, $.indices[F * 6 + 3] = 0 + F * 4, $.indices[F * 6 + 4] = 2 + F * 4, $.indices[F * 6 + 5] = 3 + F * 4, $.vertices[F * 8 + 0] = L, $.vertices[F * 8 + 1] = k, $.vertices[F * 8 + 2] = L + X.width * i, $.vertices[F * 8 + 3] = k, $.vertices[F * 8 + 4] = L + X.width * i, $.vertices[F * 8 + 5] = k + X.height * i, $.vertices[F * 8 + 6] = L, $.vertices[F * 8 + 7] = k + X.height * i, $.uvs[F * 8 + 0] = D.x0, $.uvs[F * 8 + 1] = D.y0, $.uvs[F * 8 + 2] = D.x1, $.uvs[F * 8 + 3] = D.y1, $.uvs[F * 8 + 4] = D.x2, $.uvs[F * 8 + 5] = D.y2, $.uvs[F * 8 + 6] = D.x3, $.uvs[F * 8 + 7] = D.y3;\n }\n this._textWidth = p * i, this._textHeight = (s.y + t.lineHeight) * i;\n for (const M in b) {\n const E = b[M];\n if (this.anchor.x !== 0 || this.anchor.y !== 0) {\n let G = 0;\n const $ = this._textWidth * this.anchor.x, X = this._textHeight * this.anchor.y;\n for (let D = 0; D < E.total; D++)\n E.vertices[G++] -= $, E.vertices[G++] -= X, E.vertices[G++] -= $, E.vertices[G++] -= X, E.vertices[G++] -= $, E.vertices[G++] -= X, E.vertices[G++] -= $, E.vertices[G++] -= X;\n }\n this._maxLineHeight = _ * i;\n const A = E.mesh.geometry.getBuffer(\"aVertexPosition\"), L = E.mesh.geometry.getBuffer(\"aTextureCoord\"), k = E.mesh.geometry.getIndex();\n A.data = E.vertices, L.data = E.uvs, k.data = E.indices, A.update(), L.update(), k.update();\n }\n for (let M = 0; M < n.length; M++)\n Xc.push(n[M]);\n this._font = t, this.dirty = !1;\n }\n updateTransform() {\n this.validate(), this.containerUpdateTransform();\n }\n _render(t) {\n this._autoResolution && this._resolution !== t.resolution && (this._resolution = t.resolution, this.dirty = !0);\n const { distanceFieldRange: e, distanceFieldType: i, size: s } = hr.available[this._fontName];\n if (i !== \"none\") {\n const { a: n, b: o, c: a, d: l } = this.worldTransform, h = Math.sqrt(n * n + o * o), c = Math.sqrt(a * a + l * l), u = (Math.abs(h) + Math.abs(c)) / 2, d = this.fontSize / s, f = t._view.resolution;\n for (const p of this._activePagesMeshData)\n p.mesh.shader.uniforms.uFWidth = u * e * d * f;\n }\n super._render(t);\n }\n /**\n * Validates text before calling parent's getLocalBounds\n * @returns - The rectangular bounding area\n */\n getLocalBounds() {\n return this.validate(), super.getLocalBounds();\n }\n /**\n * Updates text when needed\n * @private\n */\n validate() {\n const t = hr.available[this._fontName];\n if (!t)\n throw new Error(`Missing BitmapFont \"${this._fontName}\"`);\n this._font !== t && (this.dirty = !0), this.dirty && this.updateText();\n }\n /**\n * The tint of the BitmapText object.\n * @default 0xffffff\n */\n get tint() {\n return this._tintColor.value;\n }\n set tint(t) {\n if (this.tint !== t) {\n this._tintColor.setValue(t);\n for (let e = 0; e < this._activePagesMeshData.length; e++)\n this._activePagesMeshData[e].mesh.tint = t;\n }\n }\n /**\n * The alignment of the BitmapText object.\n * @member {string}\n * @default 'left'\n */\n get align() {\n return this._align;\n }\n set align(t) {\n this._align !== t && (this._align = t, this.dirty = !0);\n }\n /** The name of the BitmapFont. */\n get fontName() {\n return this._fontName;\n }\n set fontName(t) {\n if (!hr.available[t])\n throw new Error(`Missing BitmapFont \"${t}\"`);\n this._fontName !== t && (this._fontName = t, this.dirty = !0);\n }\n /** The size of the font to display. */\n get fontSize() {\n return this._fontSize ?? hr.available[this._fontName].size;\n }\n set fontSize(t) {\n this._fontSize !== t && (this._fontSize = t, this.dirty = !0);\n }\n /**\n * The anchor sets the origin point of the text.\n *\n * The default is `(0,0)`, this means the text's origin is the top left.\n *\n * Setting the anchor to `(0.5,0.5)` means the text's origin is centered.\n *\n * Setting the anchor to `(1,1)` would mean the text's origin point will be the bottom right corner.\n */\n get anchor() {\n return this._anchor;\n }\n set anchor(t) {\n typeof t == \"number\" ? this._anchor.set(t) : this._anchor.copyFrom(t);\n }\n /** The text of the BitmapText object. */\n get text() {\n return this._text;\n }\n set text(t) {\n t = String(t ?? \"\"), this._text !== t && (this._text = t, this.dirty = !0);\n }\n /**\n * The max width of this bitmap text in pixels. If the text provided is longer than the\n * value provided, line breaks will be automatically inserted in the last whitespace.\n * Disable by setting the value to 0.\n */\n get maxWidth() {\n return this._maxWidth;\n }\n set maxWidth(t) {\n this._maxWidth !== t && (this._maxWidth = t, this.dirty = !0);\n }\n /**\n * The max line height. This is useful when trying to use the total height of the Text,\n * i.e. when trying to vertically align.\n * @readonly\n */\n get maxLineHeight() {\n return this.validate(), this._maxLineHeight;\n }\n /**\n * The width of the overall text, different from fontSize,\n * which is defined in the style object.\n * @readonly\n */\n get textWidth() {\n return this.validate(), this._textWidth;\n }\n /** Additional space between characters. */\n get letterSpacing() {\n return this._letterSpacing;\n }\n set letterSpacing(t) {\n this._letterSpacing !== t && (this._letterSpacing = t, this.dirty = !0);\n }\n /**\n * If true PixiJS will Math.floor() x/y values when rendering, stopping pixel interpolation.\n * Advantages can include sharper image quality (like text) and faster rendering on canvas.\n * The main disadvantage is movement of objects may appear less smooth.\n * To set the global default, change {@link PIXI.settings.ROUND_PIXELS}\n * @default PIXI.settings.ROUND_PIXELS\n */\n get roundPixels() {\n return this._roundPixels;\n }\n set roundPixels(t) {\n t !== this._roundPixels && (this._roundPixels = t, this.dirty = !0);\n }\n /**\n * The height of the overall text, different from fontSize,\n * which is defined in the style object.\n * @readonly\n */\n get textHeight() {\n return this.validate(), this._textHeight;\n }\n /**\n * The resolution / device pixel ratio of the canvas.\n *\n * This is set to automatically match the renderer resolution by default, but can be overridden by setting manually.\n * @default 1\n */\n get resolution() {\n return this._resolution;\n }\n set resolution(t) {\n this._autoResolution = !1, this._resolution !== t && (this._resolution = t, this.dirty = !0);\n }\n destroy(t) {\n const { _textureCache: e } = this, i = hr.available[this._fontName].distanceFieldType === \"none\" ? $c : Hc;\n i.push(...this._activePagesMeshData);\n for (const s of this._activePagesMeshData)\n this.removeChild(s.mesh);\n this._activePagesMeshData = [], i.filter((s) => e[s.mesh.texture.baseTexture.uid]).forEach((s) => {\n s.mesh.texture = Y.EMPTY;\n });\n for (const s in e)\n e[s].destroy(), delete e[s];\n this._font = null, this._tintColor = null, this._textureCache = null, super.destroy(t);\n }\n};\nuw.styleDefaults = {\n align: \"left\",\n tint: 16777215,\n maxWidth: 0,\n letterSpacing: 0\n};\nconst dw = [\".xml\", \".fnt\"], fw = {\n extension: {\n type: H.LoadParser,\n priority: Ee.Normal\n },\n name: \"loadBitmapFont\",\n test(r) {\n return dw.includes(kt.extname(r).toLowerCase());\n },\n async testParse(r) {\n return hn.test(r) || Ja.test(r);\n },\n async parse(r, t, e) {\n const i = hn.test(r) ? hn.parse(r) : Ja.parse(r), { src: s } = t, { page: n } = i, o = [];\n for (let h = 0; h < n.length; ++h) {\n const c = n[h].file;\n let u = kt.join(kt.dirname(s), c);\n u = za(u, s), o.push(u);\n }\n const a = await e.load(o), l = o.map((h) => a[h]);\n return hr.install(i, l, !0);\n },\n async load(r, t) {\n return (await W.ADAPTER.fetch(r)).text();\n },\n unload(r) {\n r.destroy();\n }\n};\nq.add(fw);\nconst Qa = class ui extends xr {\n constructor() {\n super(...arguments), this._fonts = [], this._overrides = [], this._stylesheet = \"\", this.fontsDirty = !1;\n }\n /**\n * Convert a TextStyle to HTMLTextStyle\n * @param originalStyle\n * @example\n * import {TextStyle } from 'pixi.js';\n * import {HTMLTextStyle} from '@pixi/text-html';\n * const style = new TextStyle();\n * const htmlStyle = HTMLTextStyle.from(style);\n */\n static from(t) {\n return new ui(\n Object.keys(ui.defaultOptions).reduce((e, i) => ({ ...e, [i]: t[i] }), {})\n );\n }\n /** Clear the current font */\n cleanFonts() {\n this._fonts.length > 0 && (this._fonts.forEach((t) => {\n URL.revokeObjectURL(t.src), t.refs--, t.refs === 0 && (t.fontFace && document.fonts.delete(t.fontFace), delete ui.availableFonts[t.originalUrl]);\n }), this.fontFamily = \"Arial\", this._fonts.length = 0, this.styleID++, this.fontsDirty = !0);\n }\n /**\n * Because of how HTMLText renders, fonts need to be imported\n * @param url\n * @param options\n */\n loadFont(t, e = {}) {\n const { availableFonts: i } = ui;\n if (i[t]) {\n const s = i[t];\n return this._fonts.push(s), s.refs++, this.styleID++, this.fontsDirty = !0, Promise.resolve();\n }\n return W.ADAPTER.fetch(t).then((s) => s.blob()).then(async (s) => new Promise((n, o) => {\n const a = URL.createObjectURL(s), l = new FileReader();\n l.onload = () => n([a, l.result]), l.onerror = o, l.readAsDataURL(s);\n })).then(async ([s, n]) => {\n const o = Object.assign({\n family: kt.basename(t, kt.extname(t)),\n weight: \"normal\",\n style: \"normal\",\n display: \"auto\",\n src: s,\n dataSrc: n,\n refs: 1,\n originalUrl: t,\n fontFace: null\n }, e);\n i[t] = o, this._fonts.push(o), this.styleID++;\n const a = new FontFace(o.family, `url(${o.src})`, {\n weight: o.weight,\n style: o.style,\n display: o.display\n });\n o.fontFace = a, await a.load(), document.fonts.add(a), await document.fonts.ready, this.styleID++, this.fontsDirty = !0;\n });\n }\n /**\n * Add a style override, this can be any CSS property\n * it will override any built-in style. This is the\n * property and the value as a string (e.g., `color: red`).\n * This will override any other internal style.\n * @param {string} value - CSS style(s) to add.\n * @example\n * style.addOverride('background-color: red');\n */\n addOverride(...t) {\n const e = t.filter((i) => !this._overrides.includes(i));\n e.length > 0 && (this._overrides.push(...e), this.styleID++);\n }\n /**\n * Remove any overrides that match the value.\n * @param {string} value - CSS style to remove.\n * @example\n * style.removeOverride('background-color: red');\n */\n removeOverride(...t) {\n const e = t.filter((i) => this._overrides.includes(i));\n e.length > 0 && (this._overrides = this._overrides.filter((i) => !e.includes(i)), this.styleID++);\n }\n /**\n * Internally converts all of the style properties into CSS equivalents.\n * @param scale\n * @returns The CSS style string, for setting `style` property of root HTMLElement.\n */\n toCSS(t) {\n return [\n `transform: scale(${t})`,\n \"transform-origin: top left\",\n \"display: inline-block\",\n `color: ${this.normalizeColor(this.fill)}`,\n `font-size: ${this.fontSize}px`,\n `font-family: ${this.fontFamily}`,\n `font-weight: ${this.fontWeight}`,\n `font-style: ${this.fontStyle}`,\n `font-variant: ${this.fontVariant}`,\n `letter-spacing: ${this.letterSpacing}px`,\n `text-align: ${this.align}`,\n `padding: ${this.padding}px`,\n `white-space: ${this.whiteSpace}`,\n ...this.lineHeight ? [`line-height: ${this.lineHeight}px`] : [],\n ...this.wordWrap ? [\n `word-wrap: ${this.breakWords ? \"break-all\" : \"break-word\"}`,\n `max-width: ${this.wordWrapWidth}px`\n ] : [],\n ...this.strokeThickness ? [\n `-webkit-text-stroke-width: ${this.strokeThickness}px`,\n `-webkit-text-stroke-color: ${this.normalizeColor(this.stroke)}`,\n `text-stroke-width: ${this.strokeThickness}px`,\n `text-stroke-color: ${this.normalizeColor(this.stroke)}`,\n \"paint-order: stroke\"\n ] : [],\n ...this.dropShadow ? [this.dropShadowToCSS()] : [],\n ...this._overrides\n ].join(\";\");\n }\n /** Get the font CSS styles from the loaded font, If available. */\n toGlobalCSS() {\n return this._fonts.reduce((t, e) => `${t}\n @font-face {\n font-family: \"${e.family}\";\n src: url('${e.dataSrc}');\n font-weight: ${e.weight};\n font-style: ${e.style};\n font-display: ${e.display};\n }`, this._stylesheet);\n }\n /** Internal stylesheet contents, useful for creating rules for rendering */\n get stylesheet() {\n return this._stylesheet;\n }\n set stylesheet(t) {\n this._stylesheet !== t && (this._stylesheet = t, this.styleID++);\n }\n /**\n * Convert numerical colors into hex-strings\n * @param color\n */\n normalizeColor(t) {\n return Array.isArray(t) && (t = rv(t)), typeof t == \"number\" ? ev(t) : t;\n }\n /** Convert the internal drop-shadow settings to CSS text-shadow */\n dropShadowToCSS() {\n let t = this.normalizeColor(this.dropShadowColor);\n const e = this.dropShadowAlpha, i = Math.round(Math.cos(this.dropShadowAngle) * this.dropShadowDistance), s = Math.round(Math.sin(this.dropShadowAngle) * this.dropShadowDistance);\n t.startsWith(\"#\") && e < 1 && (t += (e * 255 | 0).toString(16).padStart(2, \"0\"));\n const n = `${i}px ${s}px`;\n return this.dropShadowBlur > 0 ? `text-shadow: ${n} ${this.dropShadowBlur}px ${t}` : `text-shadow: ${n} ${t}`;\n }\n /** Resets all properties to the defaults specified in TextStyle.prototype._default */\n reset() {\n Object.assign(this, ui.defaultOptions);\n }\n /**\n * Called after the image is loaded but before drawing to the canvas.\n * Mostly used to handle Safari's font loading bug.\n * @ignore\n */\n onBeforeDraw() {\n const { fontsDirty: t } = this;\n return this.fontsDirty = !1, this.isSafari && this._fonts.length > 0 && t ? new Promise((e) => setTimeout(e, 100)) : Promise.resolve();\n }\n /**\n * Proving that Safari is the new IE\n * @ignore\n */\n get isSafari() {\n const { userAgent: t } = W.ADAPTER.getNavigator();\n return /^((?!chrome|android).)*safari/i.test(t);\n }\n set fillGradientStops(t) {\n console.warn(\"[HTMLTextStyle] fillGradientStops is not supported by HTMLText\");\n }\n get fillGradientStops() {\n return super.fillGradientStops;\n }\n set fillGradientType(t) {\n console.warn(\"[HTMLTextStyle] fillGradientType is not supported by HTMLText\");\n }\n get fillGradientType() {\n return super.fillGradientType;\n }\n set miterLimit(t) {\n console.warn(\"[HTMLTextStyle] miterLimit is not supported by HTMLText\");\n }\n get miterLimit() {\n return super.miterLimit;\n }\n set trim(t) {\n console.warn(\"[HTMLTextStyle] trim is not supported by HTMLText\");\n }\n get trim() {\n return super.trim;\n }\n set textBaseline(t) {\n console.warn(\"[HTMLTextStyle] textBaseline is not supported by HTMLText\");\n }\n get textBaseline() {\n return super.textBaseline;\n }\n set leading(t) {\n console.warn(\"[HTMLTextStyle] leading is not supported by HTMLText\");\n }\n get leading() {\n return super.leading;\n }\n set lineJoin(t) {\n console.warn(\"[HTMLTextStyle] lineJoin is not supported by HTMLText\");\n }\n get lineJoin() {\n return super.lineJoin;\n }\n};\nQa.availableFonts = {}, /**\n* List of default options, these are largely the same as TextStyle,\n* with the exception of whiteSpace, which is set to 'normal' by default.\n*/\nQa.defaultOptions = {\n /** Align */\n align: \"left\",\n /** Break words */\n breakWords: !1,\n /** Drop shadow */\n dropShadow: !1,\n /** Drop shadow alpha */\n dropShadowAlpha: 1,\n /**\n * Drop shadow angle\n * @type {number}\n * @default Math.PI / 6\n */\n dropShadowAngle: Math.PI / 6,\n /** Drop shadow blur */\n dropShadowBlur: 0,\n /** Drop shadow color */\n dropShadowColor: \"black\",\n /** Drop shadow distance */\n dropShadowDistance: 5,\n /** Fill */\n fill: \"black\",\n /** Font family */\n fontFamily: \"Arial\",\n /** Font size */\n fontSize: 26,\n /** Font style */\n fontStyle: \"normal\",\n /** Font variant */\n fontVariant: \"normal\",\n /** Font weight */\n fontWeight: \"normal\",\n /** Letter spacing */\n letterSpacing: 0,\n /** Line height */\n lineHeight: 0,\n /** Padding */\n padding: 0,\n /** Stroke */\n stroke: \"black\",\n /** Stroke thickness */\n strokeThickness: 0,\n /** White space */\n whiteSpace: \"normal\",\n /** Word wrap */\n wordWrap: !1,\n /** Word wrap width */\n wordWrapWidth: 100\n};\nlet qo = Qa;\nconst qs = class di extends Fi {\n /**\n * @param {string} [text] - Text contents\n * @param {PIXI.HTMLTextStyle|PIXI.TextStyle|PIXI.ITextStyle} [style] - Style setting to use.\n * Strongly recommend using an HTMLTextStyle object. Providing a PIXI.TextStyle\n * will convert the TextStyle to an HTMLTextStyle and will no longer be linked.\n */\n constructor(t = \"\", e = {}) {\n super(Y.EMPTY), this._text = null, this._style = null, this._autoResolution = !0, this.localStyleID = -1, this.dirty = !1, this._updateID = 0, this.ownsStyle = !1;\n const i = new Image(), s = Y.from(i, {\n scaleMode: W.SCALE_MODE,\n resourceOptions: {\n autoLoad: !1\n }\n });\n s.orig = new it(), s.trim = new it(), this.texture = s;\n const n = \"http://www.w3.org/2000/svg\", o = \"http://www.w3.org/1999/xhtml\", a = document.createElementNS(n, \"svg\"), l = document.createElementNS(n, \"foreignObject\"), h = document.createElementNS(o, \"div\"), c = document.createElementNS(o, \"style\");\n l.setAttribute(\"width\", \"10000\"), l.setAttribute(\"height\", \"10000\"), l.style.overflow = \"hidden\", a.appendChild(l), this.maxWidth = di.defaultMaxWidth, this.maxHeight = di.defaultMaxHeight, this._domElement = h, this._styleElement = c, this._svgRoot = a, this._foreignObject = l, this._foreignObject.appendChild(c), this._foreignObject.appendChild(h), this._image = i, this._loadImage = new Image(), this._autoResolution = di.defaultAutoResolution, this._resolution = di.defaultResolution ?? W.RESOLUTION, this.text = t, this.style = e;\n }\n /**\n * Calculate the size of the output text without actually drawing it.\n * This includes the `padding` in the `style` object.\n * This can be used as a fast-pass to do things like text-fitting.\n * @param {object} [overrides] - Overrides for the text, style, and resolution.\n * @param {string} [overrides.text] - The text to measure, if not specified, the current text is used.\n * @param {PIXI.HTMLTextStyle} [overrides.style] - The style to measure, if not specified, the current style is used.\n * @param {number} [overrides.resolution] - The resolution to measure, if not specified, the current resolution is used.\n * @returns {PIXI.ISize} Width and height of the measured text.\n */\n measureText(t) {\n var c, u;\n const { text: e, style: i, resolution: s } = Object.assign({\n text: this._text,\n style: this._style,\n resolution: this._resolution\n }, t);\n Object.assign(this._domElement, {\n innerHTML: e,\n style: i.toCSS(s)\n }), this._styleElement.textContent = i.toGlobalCSS(), document.body.appendChild(this._svgRoot);\n const n = this._domElement.getBoundingClientRect();\n this._svgRoot.remove();\n const { width: o, height: a } = n;\n (o > this.maxWidth || a > this.maxHeight) && console.warn(\"[HTMLText] Large expanse of text, increase HTMLText.maxWidth or HTMLText.maxHeight property.\");\n const l = Math.min(this.maxWidth, Math.ceil(o)), h = Math.min(this.maxHeight, Math.ceil(a));\n return this._svgRoot.setAttribute(\"width\", l.toString()), this._svgRoot.setAttribute(\"height\", h.toString()), e !== this._text && (this._domElement.innerHTML = this._text), i !== this._style && (Object.assign(this._domElement, { style: (c = this._style) == null ? void 0 : c.toCSS(s) }), this._styleElement.textContent = (u = this._style) == null ? void 0 : u.toGlobalCSS()), {\n width: l + i.padding * 2,\n height: h + i.padding * 2\n };\n }\n /**\n * Manually refresh the text.\n * @public\n * @param {boolean} respectDirty - Whether to abort updating the\n * text if the Text isn't dirty and the function is called.\n */\n async updateText(t = !0) {\n const { style: e, _image: i, _loadImage: s } = this;\n if (this.localStyleID !== e.styleID && (this.dirty = !0, this.localStyleID = e.styleID), !this.dirty && t)\n return;\n const { width: n, height: o } = this.measureText();\n i.width = s.width = Math.ceil(Math.max(1, n)), i.height = s.height = Math.ceil(Math.max(1, o)), this._updateID++;\n const a = this._updateID;\n await new Promise((l) => {\n s.onload = async () => {\n if (a < this._updateID) {\n l();\n return;\n }\n await e.onBeforeDraw(), i.src = s.src, s.onload = null, s.src = \"\", this.updateTexture(), l();\n };\n const h = new XMLSerializer().serializeToString(this._svgRoot);\n s.src = `data:image/svg+xml;charset=utf8,${encodeURIComponent(h)}`;\n });\n }\n /** The raw image element that is rendered under-the-hood. */\n get source() {\n return this._image;\n }\n /**\n * Update the texture resource.\n * @private\n */\n updateTexture() {\n const { style: t, texture: e, _image: i, resolution: s } = this, { padding: n } = t, { baseTexture: o } = e;\n e.trim.width = e._frame.width = i.width / s, e.trim.height = e._frame.height = i.height / s, e.trim.x = -n, e.trim.y = -n, e.orig.width = e._frame.width - n * 2, e.orig.height = e._frame.height - n * 2, this._onTextureUpdate(), o.setRealSize(i.width, i.height, s), this.dirty = !1;\n }\n /**\n * Renders the object using the WebGL renderer\n * @param {PIXI.Renderer} renderer - The renderer\n * @private\n */\n _render(t) {\n this._autoResolution && this._resolution !== t.resolution && (this._resolution = t.resolution, this.dirty = !0), this.updateText(!0), super._render(t);\n }\n /**\n * Renders the object using the Canvas Renderer.\n * @private\n * @param {PIXI.CanvasRenderer} renderer - The renderer\n */\n _renderCanvas(t) {\n this._autoResolution && this._resolution !== t.resolution && (this._resolution = t.resolution, this.dirty = !0), this.updateText(!0), super._renderCanvas(t);\n }\n /**\n * Get the local bounds.\n * @param {PIXI.Rectangle} rect - Input rectangle.\n * @returns {PIXI.Rectangle} Local bounds\n */\n getLocalBounds(t) {\n return this.updateText(!0), super.getLocalBounds(t);\n }\n _calculateBounds() {\n this.updateText(!0), this.calculateVertices(), this._bounds.addQuad(this.vertexData);\n }\n /**\n * Handle dirty style changes\n * @private\n */\n _onStyleChange() {\n this.dirty = !0;\n }\n /**\n * Destroy this Text object. Don't use after calling.\n * @param {boolean|object} options - Same as Sprite destroy options.\n */\n destroy(t) {\n var i, s, n, o, a;\n typeof t == \"boolean\" && (t = { children: t }), t = Object.assign({}, di.defaultDestroyOptions, t), super.destroy(t);\n const e = null;\n this.ownsStyle && ((i = this._style) == null || i.cleanFonts()), this._style = e, (s = this._svgRoot) == null || s.remove(), this._svgRoot = e, (n = this._domElement) == null || n.remove(), this._domElement = e, (o = this._foreignObject) == null || o.remove(), this._foreignObject = e, (a = this._styleElement) == null || a.remove(), this._styleElement = e, this._loadImage.src = \"\", this._loadImage.onload = null, this._loadImage = e, this._image.src = \"\", this._image = e;\n }\n /**\n * Get the width in pixels.\n * @member {number}\n */\n get width() {\n return this.updateText(!0), Math.abs(this.scale.x) * this._image.width / this.resolution;\n }\n set width(t) {\n this.updateText(!0);\n const e = gr(this.scale.x) || 1;\n this.scale.x = e * t / this._image.width / this.resolution, this._width = t;\n }\n /**\n * Get the height in pixels.\n * @member {number}\n */\n get height() {\n return this.updateText(!0), Math.abs(this.scale.y) * this._image.height / this.resolution;\n }\n set height(t) {\n this.updateText(!0);\n const e = gr(this.scale.y) || 1;\n this.scale.y = e * t / this._image.height / this.resolution, this._height = t;\n }\n /** The base style to render with text. */\n get style() {\n return this._style;\n }\n set style(t) {\n this._style !== t && (t = t || {}, t instanceof qo ? (this.ownsStyle = !1, this._style = t) : t instanceof xr ? (console.warn(\"[HTMLText] Cloning TextStyle, if this is not what you want, use HTMLTextStyle\"), this.ownsStyle = !0, this._style = qo.from(t)) : (this.ownsStyle = !0, this._style = new qo(t)), this.localStyleID = -1, this.dirty = !0);\n }\n /**\n * Contents of text. This can be HTML text and include tags.\n * @example\n * const text = new HTMLText('This is a <em>styled</em> text!');\n * @member {string}\n */\n get text() {\n return this._text;\n }\n set text(t) {\n t = String(t === \"\" || t === null || t === void 0 ? \" \" : t), t = this.sanitiseText(t), this._text !== t && (this._text = t, this.dirty = !0);\n }\n /**\n * The resolution / device pixel ratio of the canvas.\n * This is set to automatically match the renderer resolution by default, but can be overridden by setting manually.\n * @member {number}\n * @default 1\n */\n get resolution() {\n return this._resolution;\n }\n set resolution(t) {\n this._autoResolution = !1, this._resolution !== t && (this._resolution = t, this.dirty = !0);\n }\n /**\n * Sanitise text - replace `<br>` with `<br/>`, ` ` with ` `\n * @param text\n * @see https://www.sitepoint.com/community/t/xhtml-1-0-transitional-xml-parsing-error-entity-nbsp-not-defined/3392/3\n */\n sanitiseText(t) {\n return t.replace(/<br>/gi, \"<br/>\").replace(/<hr>/gi, \"<hr/>\").replace(/ /gi, \" \");\n }\n};\nqs.defaultDestroyOptions = {\n texture: !0,\n children: !1,\n baseTexture: !0\n}, /** Default maxWidth, set at construction */\nqs.defaultMaxWidth = 2024, /** Default maxHeight, set at construction */\nqs.defaultMaxHeight = 2024, /** Default autoResolution for all HTMLText objects */\nqs.defaultAutoResolution = !0;\nconst pw = 1733608, mw = 0.25;\nlet fr = !1, Un;\nconst tl = (r) => {\n const t = {\n tint: r != null && r.fill ? new xt(r.fill).toNumber() : pw,\n alpha: (r == null ? void 0 : r.fillOpacity) === void 0 ? mw : Math.min(r.fillOpacity, 1)\n }, e = {\n tint: (r == null ? void 0 : r.stroke) && new xt(r.stroke).toNumber(),\n alpha: (r == null ? void 0 : r.strokeOpacity) === void 0 ? r != null && r.stroke ? 1 : 0 : Math.min(r.strokeOpacity, 1),\n lineWidth: r != null && r.stroke ? (r == null ? void 0 : r.strokeWidth) || 1 : 0\n };\n return { fillStyle: t, strokeStyle: e };\n}, Sl = (r) => (t, e, i) => {\n const { fillStyle: s, strokeStyle: n } = tl(i), o = new fs();\n o.beginFill(16777215), r(e, o), o.endFill(), o.tint = s.tint, o.alpha = s.alpha, t.addChild(o);\n const a = new fs(), l = n.lineWidth === 1 ? 1 : n.lineWidth / Un;\n return a.lineStyle(l, 16777215, 1, 0.5, n.lineWidth === 1), r(e, a), a.tint = n.tint || 16777215, a.alpha = n.alpha, t.addChild(a), { fill: o, stroke: a, strokeWidth: n.lineWidth };\n}, gw = Sl((r, t) => {\n const { cx: e, cy: i, rx: s, ry: n } = r.geometry;\n t.drawEllipse(e, i, s, n);\n}), yw = Sl((r, t) => {\n const e = r.geometry.points.reduce((i, s) => [...i, ...s], []);\n t.drawPolygon(e);\n}), _w = Sl((r, t) => {\n const { x: e, y: i, w: s, h: n } = r.geometry;\n t.drawRect(e, i, s, n);\n}), Pf = (r) => {\n const t = r.viewport.getContainerSize().x;\n return r.viewport.getZoom(!0) * t / r.world.getContentFactor();\n}, vw = (r, t, e, i) => () => {\n const s = r.viewport.viewportToImageRectangle(r.viewport.getBounds(!0)), n = Pf(r);\n n !== Un && !fr && (fr = !0, e.forEach(({ stroke: u, strokeWidth: d }) => {\n const { lineStyle: f } = u.geometry.graphicsData[0];\n d > 1 ? (fr = !1, f.width = d / n, u.geometry.invalidate()) : d === 1 && !f.native && (f.width = 1, f.native = !0, u.geometry.invalidate());\n })), Un = n;\n const o = Math.PI * r.viewport.getRotation() / 180, a = -s.x * n, l = -s.y * n;\n let h, c;\n o > 0 && o <= Math.PI / 2 ? (h = s.height * n, c = 0) : o > Math.PI / 2 && o <= Math.PI ? (h = s.width * n, c = s.height * n) : o > Math.PI && o <= Math.PI * 1.5 ? (h = 0, c = s.width * n) : (h = 0, c = 0), t.position.x = h + a * Math.cos(o) - l * Math.sin(o), t.position.y = c + a * Math.sin(o) + l * Math.cos(o), t.scale.set(n, n), t.rotation = o, i.render(t);\n}, xw = (r, t) => {\n const e = new fs(), i = jd({\n width: t.width,\n height: t.height,\n backgroundAlpha: 0,\n view: t,\n antialias: !0,\n resolution: 2\n }), s = /* @__PURE__ */ new Map();\n let n = /* @__PURE__ */ new Set(), o;\n Un = Pf(r);\n const a = (m) => {\n fr = !1;\n const { selector: g } = m.target, y = typeof o == \"function\" ? o(m) : o;\n let x;\n g.type === bt.RECTANGLE ? x = _w(e, g, y) : g.type === bt.POLYGON ? x = yw(e, g, y) : g.type === bt.ELLIPSE ? x = gw(e, g, y) : console.warn(`Unsupported shape type: ${g.type}`), x && s.set(m.id, { annotation: m, ...x });\n }, l = (m) => {\n const g = s.get(m.id);\n g && (s.delete(m.id), g.fill.destroy(), g.stroke.destroy());\n }, h = (m, g) => {\n fr = !1;\n const y = s.get(m.id);\n y && (s.delete(m.id), y.fill.destroy(), y.stroke.destroy(), a(g));\n }, c = (m, g) => {\n i.resize(m, g), i.render(e);\n }, u = (m) => {\n fr = !1;\n const { children: g } = e;\n s.forEach(({ fill: y, stroke: x, annotation: _ }) => {\n const v = m ? n.has(_.id) || m(_) : !0;\n v && !g.includes(y) ? (e.addChild(y), e.addChild(x)) : !v && g.includes(y) && (e.removeChild(y), e.removeChild(x));\n }), i.render(e);\n }, d = (m) => {\n const { selected: g } = m;\n n = new Set(g.map((y) => y.id));\n }, f = (m) => {\n if (typeof m == \"function\")\n s.forEach(({ annotation: g, fill: y, stroke: x, strokeWidth: _ }, v) => {\n _ > 1 && (fr = !1);\n const { fillStyle: w, strokeStyle: R } = tl(m(g));\n y.tint = w.tint, y.alpha = w.alpha, x.tint = R.tint || 16777215, x.alpha = R.alpha, s.set(g.id, { annotation: g, fill: y, stroke: x, strokeWidth: _ });\n });\n else {\n const { fillStyle: g, strokeStyle: y } = tl(m);\n y.lineWidth > 1 && (fr = !1), s.forEach(({ annotation: x, fill: _, stroke: v, strokeWidth: w }, R) => {\n _.tint = g.tint, _.alpha = g.alpha, v.tint = y.tint || 16777215, v.alpha = y.alpha, s.set(x.id, { annotation: x, fill: _, stroke: v, strokeWidth: w });\n });\n }\n o = m, i.render(e);\n };\n return {\n addAnnotation: a,\n destroy: () => i.destroy(),\n redraw: vw(r, e, s, i),\n removeAnnotation: l,\n resize: c,\n setFilter: u,\n setSelected: d,\n setStyle: f,\n updateAnnotation: h\n };\n};\nfunction bw(r, t, e) {\n let i, s, { filter: n } = t, { state: o } = t, { style: a } = t, { viewer: l } = t;\n const { store: h, hover: c, selection: u, viewport: d } = o;\n ea(r, c, (w) => e(10, i = w)), ea(r, u, (w) => e(7, s = w));\n const f = Xn();\n let p, m;\n const g = (w) => {\n const R = new un.Point(w.x, w.y), { x: C, y: b } = l.viewport.pointFromPixel(R);\n return l.viewport.viewportToImageCoordinates(C, b);\n }, y = (w) => {\n const { x: R, y: C } = w.position;\n m = { x: R, y: C };\n }, x = (w) => (R) => {\n const { x: C, y: b } = g(new un.Point(R.offsetX, R.offsetY)), T = h.getAt(C, b);\n T && (!n || n(T)) ? (w.classList.add(\"hover\"), i !== T.id && c.set(T.id)) : (w.classList.remove(\"hover\"), i && c.set(void 0));\n }, _ = (w) => {\n const R = w.originalEvent, { x: C, y: b } = w.position, T = C - m.x, I = b - m.y;\n if (Math.sqrt(T * T + I * I) < 5) {\n const { x: M, y: E } = g(w.position), A = h.getAt(M, E);\n A ? f(\"click\", { originalEvent: R, annotation: A }) : f(\"click\", { originalEvent: R });\n }\n m = void 0;\n };\n let v;\n return Hn(() => {\n var O;\n const { offsetWidth: w, offsetHeight: R } = l.canvas, C = document.createElement(\"canvas\");\n C.width = w, C.height = R, C.className = \"a9s-gl-canvas\", (O = l.element.querySelector(\".openseadragon-canvas\")) == null || O.appendChild(C), e(6, p = xw(l, C));\n const b = x(C);\n C.addEventListener(\"pointermove\", b), new ResizeObserver((M) => {\n try {\n const { width: E, height: A } = M[0].contentRect;\n C.width = E, C.height = A, p.resize(E, A);\n } catch {\n console.warn(\"WebGL canvas already disposed\");\n }\n }).observe(C);\n const I = () => {\n const M = l.viewport.getBounds();\n v = l.viewport.viewportToImageRectangle(M);\n const { x: E, y: A, width: L, height: k } = v, G = h.getIntersecting(E, A, L, k);\n d.set(G.map(($) => $.id));\n };\n return l.addHandler(\"canvas-press\", y), l.addHandler(\"canvas-release\", _), l.addHandler(\"update-viewport\", p.redraw), l.addHandler(\"animation-finish\", I), () => {\n var M;\n C.removeEventListener(\"pointermove\", b), l.removeHandler(\"canvas-press\", y), l.removeHandler(\"canvas-release\", _), l.removeHandler(\"update-viewport\", p.redraw), l.removeHandler(\"animation-finish\", I), p.destroy(), (M = C.parentNode) == null || M.removeChild(C);\n };\n }), h.observe((w) => {\n const { created: R, updated: C, deleted: b } = w.changes;\n if ((R || []).forEach((T) => p.addAnnotation(T)), (C || []).forEach(({ oldValue: T, newValue: I }) => p.updateAnnotation(T, I)), (b || []).forEach((T) => p.removeAnnotation(T)), v) {\n const { x: T, y: I, width: O, height: M } = v, E = h.getIntersecting(T, I, O, M);\n d.set(E.map((A) => A.id));\n } else\n d.set(h.all().map((T) => T.id));\n p.redraw();\n }), r.$$set = (w) => {\n \"filter\" in w && e(2, n = w.filter), \"state\" in w && e(3, o = w.state), \"style\" in w && e(4, a = w.style), \"viewer\" in w && e(5, l = w.viewer);\n }, r.$$.update = () => {\n r.$$.dirty & /*stage, filter*/\n 68 && (p == null || p.setFilter(n)), r.$$.dirty & /*stage, $selection*/\n 192 && (p == null || p.setSelected(s)), r.$$.dirty & /*stage, style*/\n 80 && (p == null || p.setStyle(a));\n }, [c, u, n, o, a, l, p, s];\n}\nclass ww extends oe {\n constructor(t) {\n super(), ne(this, t, bw, null, Qt, { filter: 2, state: 3, style: 4, viewer: 5 });\n }\n}\nlet Ks;\nconst Ew = new Uint8Array(16);\nfunction Tw() {\n if (!Ks && (Ks = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !Ks))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return Ks(Ew);\n}\nconst Ht = [];\nfor (let r = 0; r < 256; ++r)\n Ht.push((r + 256).toString(16).slice(1));\nfunction Aw(r, t = 0) {\n return Ht[r[t + 0]] + Ht[r[t + 1]] + Ht[r[t + 2]] + Ht[r[t + 3]] + \"-\" + Ht[r[t + 4]] + Ht[r[t + 5]] + \"-\" + Ht[r[t + 6]] + Ht[r[t + 7]] + \"-\" + Ht[r[t + 8]] + Ht[r[t + 9]] + \"-\" + Ht[r[t + 10]] + Ht[r[t + 11]] + Ht[r[t + 12]] + Ht[r[t + 13]] + Ht[r[t + 14]] + Ht[r[t + 15]];\n}\nconst Sw = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Vc = {\n randomUUID: Sw\n};\nfunction Cw(r, t, e) {\n if (Vc.randomUUID && !t && !r)\n return Vc.randomUUID();\n r = r || {};\n const i = r.random || (r.rng || Tw)();\n if (i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, t) {\n e = e || 0;\n for (let s = 0; s < 16; ++s)\n t[e + s] = i[s];\n return t;\n }\n return Aw(i);\n}\nvar Mi = /* @__PURE__ */ ((r) => (r.ELLIPSE = \"ELLIPSE\", r.POLYGON = \"POLYGON\", r.RECTANGLE = \"RECTANGLE\", r))(Mi || {});\nconst Cl = (r, t) => t, Iw = (r) => {\n let t = 1 / 0, e = 1 / 0, i = -1 / 0, s = -1 / 0;\n return r.forEach(([n, o]) => {\n t = Math.min(t, n), e = Math.min(e, o), i = Math.max(i, n), s = Math.max(s, o);\n }), { minX: t, minY: e, maxX: i, maxY: s };\n}, Pw = {\n area: (r) => Math.PI * r.geometry.rx * r.geometry.ry,\n intersects: (r, t, e) => {\n const { cx: i, cy: s, rx: n, ry: o } = r.geometry, a = 0, l = Math.cos(a), h = Math.sin(a), c = t - i, u = e - s, d = l * c + h * u, f = h * c - l * u;\n return d * d / (n * n) + f * f / (o * o) <= 1;\n }\n};\nCl(Mi.ELLIPSE, Pw);\nconst Rw = {\n area: (r) => {\n const { points: t } = r.geometry;\n let e = 0, i = t.length - 1;\n for (let s = 0; s < t.length; s++)\n e += (t[i][0] + t[s][0]) * (t[i][1] - t[s][1]), i = s;\n return Math.abs(0.5 * e);\n },\n intersects: (r, t, e) => {\n const { points: i } = r.geometry;\n let s = !1;\n for (let n = 0, o = i.length - 1; n < i.length; o = n++) {\n const a = i[n][0], l = i[n][1], h = i[o][0], c = i[o][1];\n l > e != c > e && t < (h - a) * (e - l) / (c - l) + a && (s = !s);\n }\n return s;\n }\n};\nCl(Mi.POLYGON, Rw);\nconst Mw = {\n area: (r) => r.geometry.w * r.geometry.h,\n intersects: (r, t, e) => t >= r.geometry.x && t <= r.geometry.x + r.geometry.w && e >= r.geometry.y && e <= r.geometry.y + r.geometry.h\n};\nCl(Mi.RECTANGLE, Mw);\nfunction zc(r, t, e) {\n const i = r.slice();\n return i[10] = t[e], i[12] = e, i;\n}\nfunction Wc(r) {\n let t, e;\n return t = new ts({\n props: {\n x: (\n /*point*/\n r[10][0]\n ),\n y: (\n /*point*/\n r[10][1]\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), t.$on(\"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](`HANDLE-${/*idx*/\n r[12]}`)\n ) && r[9](`HANDLE-${/*idx*/\n r[12]}`).apply(this, arguments);\n }), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, s) {\n r = i;\n const n = {};\n s & /*geom*/\n 16 && (n.x = /*point*/\n r[10][0]), s & /*geom*/\n 16 && (n.y = /*point*/\n r[10][1]), s & /*viewportScale*/\n 8 && (n.scale = /*viewportScale*/\n r[3]), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nfunction Bw(r) {\n let t, e, i, s, n, o, a, l, h, c, u, d = Si(\n /*geom*/\n r[4].points\n ), f = [];\n for (let m = 0; m < d.length; m += 1)\n f[m] = Wc(zc(r, d, m));\n const p = (m) => ut(f[m], 1, 1, () => {\n f[m] = null;\n });\n return {\n c() {\n t = Tt(\"polygon\"), s = _e(), n = Tt(\"polygon\"), a = _e();\n for (let m = 0; m < f.length; m += 1)\n f[m].c();\n l = br(), P(t, \"class\", \"a9s-outer\"), P(t, \"style\", e = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0), P(t, \"points\", i = /*geom*/\n r[4].points.map(jc).join(\" \")), P(n, \"class\", \"a9s-inner a9s-shape-handle\"), P(\n n,\n \"style\",\n /*computedStyle*/\n r[1]\n ), P(n, \"points\", o = /*geom*/\n r[4].points.map(Yc).join(\" \"));\n },\n m(m, g) {\n ct(m, t, g), ct(m, s, g), ct(m, n, g), ct(m, a, g);\n for (let y = 0; y < f.length; y += 1)\n f[y] && f[y].m(m, g);\n ct(m, l, g), h = !0, c || (u = [\n Vt(t, \"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"SHAPE\")\n ) && r[9](\"SHAPE\").apply(this, arguments);\n }),\n Vt(n, \"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"SHAPE\")\n ) && r[9](\"SHAPE\").apply(this, arguments);\n })\n ], c = !0);\n },\n p(m, g) {\n if (r = m, (!h || g & /*computedStyle*/\n 2 && e !== (e = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0)) && P(t, \"style\", e), (!h || g & /*geom*/\n 16 && i !== (i = /*geom*/\n r[4].points.map(jc).join(\" \"))) && P(t, \"points\", i), (!h || g & /*computedStyle*/\n 2) && P(\n n,\n \"style\",\n /*computedStyle*/\n r[1]\n ), (!h || g & /*geom*/\n 16 && o !== (o = /*geom*/\n r[4].points.map(Yc).join(\" \"))) && P(n, \"points\", o), g & /*geom, viewportScale, grab*/\n 536) {\n d = Si(\n /*geom*/\n r[4].points\n );\n let y;\n for (y = 0; y < d.length; y += 1) {\n const x = zc(r, d, y);\n f[y] ? (f[y].p(x, g), st(f[y], 1)) : (f[y] = Wc(x), f[y].c(), st(f[y], 1), f[y].m(l.parentNode, l));\n }\n for (nr(), y = d.length; y < f.length; y += 1)\n p(y);\n or();\n }\n },\n i(m) {\n if (!h) {\n for (let g = 0; g < d.length; g += 1)\n st(f[g]);\n h = !0;\n }\n },\n o(m) {\n f = f.filter(Boolean);\n for (let g = 0; g < f.length; g += 1)\n ut(f[g]);\n h = !1;\n },\n d(m) {\n m && (ht(t), ht(s), ht(n), ht(a), ht(l)), al(f, m), c = !1, sr(u);\n }\n };\n}\nfunction Dw(r) {\n let t, e;\n return t = new Rf({\n props: {\n shape: (\n /*shape*/\n r[0]\n ),\n transform: (\n /*transform*/\n r[2]\n ),\n editor: (\n /*editor*/\n r[5]\n ),\n $$slots: {\n default: [\n Bw,\n ({ grab: i }) => ({ 9: i }),\n ({ grab: i }) => i ? 512 : 0\n ]\n },\n $$scope: { ctx: r }\n }\n }), t.$on(\n \"change\",\n /*change_handler*/\n r[6]\n ), t.$on(\n \"grab\",\n /*grab_handler*/\n r[7]\n ), t.$on(\n \"release\",\n /*release_handler*/\n r[8]\n ), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, [s]) {\n const n = {};\n s & /*shape*/\n 1 && (n.shape = /*shape*/\n i[0]), s & /*transform*/\n 4 && (n.transform = /*transform*/\n i[2]), s & /*$$scope, geom, viewportScale, grab, computedStyle*/\n 8730 && (n.$$scope = { dirty: s, ctx: i }), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nconst jc = (r) => r.join(\",\"), Yc = (r) => r.join(\",\");\nfunction Ow(r, t, e) {\n let i, { shape: s } = t, { computedStyle: n } = t, { transform: o } = t, { viewportScale: a = 1 } = t;\n const l = (d, f, p) => {\n let m;\n const g = d.geometry;\n f === \"SHAPE\" ? m = g.points.map(([x, _]) => [x + p[0], _ + p[1]]) : m = g.points.map(([x, _], v) => f === `HANDLE-${v}` ? [x + p[0], _ + p[1]] : [x, _]);\n const y = Iw(m);\n return { ...d, geometry: { points: m, bounds: y } };\n };\n function h(d) {\n tr.call(this, r, d);\n }\n function c(d) {\n tr.call(this, r, d);\n }\n function u(d) {\n tr.call(this, r, d);\n }\n return r.$$set = (d) => {\n \"shape\" in d && e(0, s = d.shape), \"computedStyle\" in d && e(1, n = d.computedStyle), \"transform\" in d && e(2, o = d.transform), \"viewportScale\" in d && e(3, a = d.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*shape*/\n 1 && e(4, i = s.geometry);\n }, [\n s,\n n,\n o,\n a,\n i,\n l,\n h,\n c,\n u\n ];\n}\nclass Fw extends oe {\n constructor(t) {\n super(), ne(this, t, Ow, Dw, Qt, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 3\n });\n }\n}\nconst Lw = \"ontouchstart\" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\nfunction Nw(r) {\n let t, e, i, s, n, o;\n return {\n c() {\n t = Tt(\"rect\"), P(t, \"class\", e = gn(`a9s-handle ${/*$$props*/\n r[8].class || \"\"}`.trim()) + \" svelte-1sgkh33\"), P(t, \"x\", i = /*x*/\n r[0] - /*handleSize*/\n r[5] / 2), P(t, \"y\", s = /*y*/\n r[1] - /*handleSize*/\n r[5] / 2), P(\n t,\n \"width\",\n /*handleSize*/\n r[5]\n ), P(\n t,\n \"height\",\n /*handleSize*/\n r[5]\n );\n },\n m(a, l) {\n ct(a, t, l), n || (o = Vt(\n t,\n \"pointerdown\",\n /*pointerdown_handler_2*/\n r[11]\n ), n = !0);\n },\n p(a, l) {\n l & /*$$props*/\n 256 && e !== (e = gn(`a9s-handle ${/*$$props*/\n a[8].class || \"\"}`.trim()) + \" svelte-1sgkh33\") && P(t, \"class\", e), l & /*x, handleSize*/\n 33 && i !== (i = /*x*/\n a[0] - /*handleSize*/\n a[5] / 2) && P(t, \"x\", i), l & /*y, handleSize*/\n 34 && s !== (s = /*y*/\n a[1] - /*handleSize*/\n a[5] / 2) && P(t, \"y\", s), l & /*handleSize*/\n 32 && P(\n t,\n \"width\",\n /*handleSize*/\n a[5]\n ), l & /*handleSize*/\n 32 && P(\n t,\n \"height\",\n /*handleSize*/\n a[5]\n );\n },\n d(a) {\n a && ht(t), n = !1, o();\n }\n };\n}\nfunction Uw(r) {\n let t, e, i, s, n, o, a, l, h;\n return {\n c() {\n t = Tt(\"g\"), e = Tt(\"circle\"), s = Tt(\"rect\"), P(\n e,\n \"cx\",\n /*x*/\n r[0]\n ), P(\n e,\n \"cy\",\n /*y*/\n r[1]\n ), P(e, \"r\", i = /*radius*/\n r[3] / /*scale*/\n r[2]), P(e, \"class\", \"a9s-touch-halo svelte-1sgkh33\"), yn(\n e,\n \"touched\",\n /*touched*/\n r[4]\n ), P(s, \"class\", n = gn(`a9s-handle ${/*$$props*/\n r[8].class || \"\"}`.trim()) + \" svelte-1sgkh33\"), P(s, \"x\", o = /*x*/\n r[0] - /*handleSize*/\n r[5] / 2), P(s, \"y\", a = /*y*/\n r[1] - /*handleSize*/\n r[5] / 2), P(\n s,\n \"width\",\n /*handleSize*/\n r[5]\n ), P(\n s,\n \"height\",\n /*handleSize*/\n r[5]\n ), P(t, \"class\", \"a9s-touch-handle\");\n },\n m(c, u) {\n ct(c, t, u), Qe(t, e), Qe(t, s), l || (h = [\n Vt(\n e,\n \"pointerdown\",\n /*pointerdown_handler*/\n r[10]\n ),\n Vt(\n e,\n \"pointerdown\",\n /*onPointerDown*/\n r[6]\n ),\n Vt(\n e,\n \"pointerup\",\n /*onPointerUp*/\n r[7]\n ),\n Vt(\n s,\n \"pointerdown\",\n /*pointerdown_handler_1*/\n r[9]\n ),\n Vt(\n s,\n \"pointerdown\",\n /*onPointerDown*/\n r[6]\n ),\n Vt(\n s,\n \"pointerup\",\n /*onPointerUp*/\n r[7]\n )\n ], l = !0);\n },\n p(c, u) {\n u & /*x*/\n 1 && P(\n e,\n \"cx\",\n /*x*/\n c[0]\n ), u & /*y*/\n 2 && P(\n e,\n \"cy\",\n /*y*/\n c[1]\n ), u & /*radius, scale*/\n 12 && i !== (i = /*radius*/\n c[3] / /*scale*/\n c[2]) && P(e, \"r\", i), u & /*touched*/\n 16 && yn(\n e,\n \"touched\",\n /*touched*/\n c[4]\n ), u & /*$$props*/\n 256 && n !== (n = gn(`a9s-handle ${/*$$props*/\n c[8].class || \"\"}`.trim()) + \" svelte-1sgkh33\") && P(s, \"class\", n), u & /*x, handleSize*/\n 33 && o !== (o = /*x*/\n c[0] - /*handleSize*/\n c[5] / 2) && P(s, \"x\", o), u & /*y, handleSize*/\n 34 && a !== (a = /*y*/\n c[1] - /*handleSize*/\n c[5] / 2) && P(s, \"y\", a), u & /*handleSize*/\n 32 && P(\n s,\n \"width\",\n /*handleSize*/\n c[5]\n ), u & /*handleSize*/\n 32 && P(\n s,\n \"height\",\n /*handleSize*/\n c[5]\n );\n },\n d(c) {\n c && ht(t), l = !1, sr(h);\n }\n };\n}\nfunction kw(r) {\n let t;\n function e(n, o) {\n return Lw ? Uw : Nw;\n }\n let s = e()(r);\n return {\n c() {\n s.c(), t = br();\n },\n m(n, o) {\n s.m(n, o), ct(n, t, o);\n },\n p(n, [o]) {\n s.p(n, o);\n },\n i: $e,\n o: $e,\n d(n) {\n n && ht(t), s.d(n);\n }\n };\n}\nfunction Gw(r, t, e) {\n let i, { x: s } = t, { y: n } = t, { scale: o } = t, { radius: a = 30 } = t, l = !1;\n const h = (p) => {\n p.pointerType === \"touch\" && e(4, l = !0);\n }, c = () => e(4, l = !1);\n function u(p) {\n tr.call(this, r, p);\n }\n function d(p) {\n tr.call(this, r, p);\n }\n function f(p) {\n tr.call(this, r, p);\n }\n return r.$$set = (p) => {\n e(8, t = ta(ta({}, t), nh(p))), \"x\" in p && e(0, s = p.x), \"y\" in p && e(1, n = p.y), \"scale\" in p && e(2, o = p.scale), \"radius\" in p && e(3, a = p.radius);\n }, r.$$.update = () => {\n r.$$.dirty & /*scale*/\n 4 && e(5, i = 10 / o);\n }, t = nh(t), [\n s,\n n,\n o,\n a,\n l,\n i,\n h,\n c,\n t,\n u,\n d,\n f\n ];\n}\nclass ts extends oe {\n constructor(t) {\n super(), ne(this, t, Gw, kw, Qt, { x: 0, y: 1, scale: 2, radius: 3 });\n }\n}\nfunction $w(r) {\n let t, e, i, s, n, o, a, l, h, c, u, d, f, p, m, g, y, x, _, v, w, R, C, b, T, I, O, M, E, A, L, k, G, $, X, D, F, j, nt, Q, V, _t, Et;\n return $ = new ts({\n props: {\n class: \"a9s-corner-handle-topleft\",\n x: (\n /*geom*/\n r[4].x\n ),\n y: (\n /*geom*/\n r[4].y\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), $.$on(\"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"TOP_LEFT\")\n ) && r[9](\"TOP_LEFT\").apply(this, arguments);\n }), D = new ts({\n props: {\n class: \"a9s-corner-handle-topright\",\n x: (\n /*geom*/\n r[4].x + /*geom*/\n r[4].w\n ),\n y: (\n /*geom*/\n r[4].y\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), D.$on(\"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"TOP_RIGHT\")\n ) && r[9](\"TOP_RIGHT\").apply(this, arguments);\n }), j = new ts({\n props: {\n class: \"a9s-corner-handle-bottomright\",\n x: (\n /*geom*/\n r[4].x + /*geom*/\n r[4].w\n ),\n y: (\n /*geom*/\n r[4].y + /*geom*/\n r[4].h\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), j.$on(\"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"BOTTOM_RIGHT\")\n ) && r[9](\"BOTTOM_RIGHT\").apply(this, arguments);\n }), Q = new ts({\n props: {\n class: \"a9s-corner-handle-bottomleft\",\n x: (\n /*geom*/\n r[4].x\n ),\n y: (\n /*geom*/\n r[4].y + /*geom*/\n r[4].h\n ),\n scale: (\n /*viewportScale*/\n r[3]\n )\n }\n }), Q.$on(\"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"BOTTOM_LEFT\")\n ) && r[9](\"BOTTOM_LEFT\").apply(this, arguments);\n }), {\n c() {\n t = Tt(\"rect\"), a = _e(), l = Tt(\"rect\"), f = _e(), p = Tt(\"rect\"), x = _e(), _ = Tt(\"rect\"), C = _e(), b = Tt(\"rect\"), M = _e(), E = Tt(\"rect\"), G = _e(), Zt($.$$.fragment), X = _e(), Zt(D.$$.fragment), F = _e(), Zt(j.$$.fragment), nt = _e(), Zt(Q.$$.fragment), P(t, \"class\", \"a9s-outer\"), P(t, \"style\", e = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0), P(t, \"x\", i = /*geom*/\n r[4].x), P(t, \"y\", s = /*geom*/\n r[4].y), P(t, \"width\", n = /*geom*/\n r[4].w), P(t, \"height\", o = /*geom*/\n r[4].h), P(l, \"class\", \"a9s-inner a9s-shape-handle\"), P(\n l,\n \"style\",\n /*computedStyle*/\n r[1]\n ), P(l, \"x\", h = /*geom*/\n r[4].x), P(l, \"y\", c = /*geom*/\n r[4].y), P(l, \"width\", u = /*geom*/\n r[4].w), P(l, \"height\", d = /*geom*/\n r[4].h), P(p, \"class\", \"a9s-edge-handle a9s-edge-handle-top\"), P(p, \"x\", m = /*geom*/\n r[4].x), P(p, \"y\", g = /*geom*/\n r[4].y), P(p, \"height\", 1), P(p, \"width\", y = /*geom*/\n r[4].w), P(_, \"class\", \"a9s-edge-handle a9s-edge-handle-right\"), P(_, \"x\", v = /*geom*/\n r[4].x + /*geom*/\n r[4].w), P(_, \"y\", w = /*geom*/\n r[4].y), P(_, \"height\", R = /*geom*/\n r[4].h), P(_, \"width\", 1), P(b, \"class\", \"a9s-edge-handle a9s-edge-handle-bottom\"), P(b, \"x\", T = /*geom*/\n r[4].x), P(b, \"y\", I = /*geom*/\n r[4].y + /*geom*/\n r[4].h), P(b, \"height\", 1), P(b, \"width\", O = /*geom*/\n r[4].w), P(E, \"class\", \"a9s-edge-handle a9s-edge-handle-left\"), P(E, \"x\", A = /*geom*/\n r[4].x), P(E, \"y\", L = /*geom*/\n r[4].y), P(E, \"height\", k = /*geom*/\n r[4].h), P(E, \"width\", 1);\n },\n m(N, B) {\n ct(N, t, B), ct(N, a, B), ct(N, l, B), ct(N, f, B), ct(N, p, B), ct(N, x, B), ct(N, _, B), ct(N, C, B), ct(N, b, B), ct(N, M, B), ct(N, E, B), ct(N, G, B), jt($, N, B), ct(N, X, B), jt(D, N, B), ct(N, F, B), jt(j, N, B), ct(N, nt, B), jt(Q, N, B), V = !0, _t || (Et = [\n Vt(t, \"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"SHAPE\")\n ) && r[9](\"SHAPE\").apply(this, arguments);\n }),\n Vt(l, \"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"SHAPE\")\n ) && r[9](\"SHAPE\").apply(this, arguments);\n }),\n Vt(p, \"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"TOP\")\n ) && r[9](\"TOP\").apply(this, arguments);\n }),\n Vt(_, \"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"RIGHT\")\n ) && r[9](\"RIGHT\").apply(this, arguments);\n }),\n Vt(b, \"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"BOTTOM\")\n ) && r[9](\"BOTTOM\").apply(this, arguments);\n }),\n Vt(E, \"pointerdown\", function() {\n Wt(\n /*grab*/\n r[9](\"LEFT\")\n ) && r[9](\"LEFT\").apply(this, arguments);\n })\n ], _t = !0);\n },\n p(N, B) {\n r = N, (!V || B & /*computedStyle*/\n 2 && e !== (e = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0)) && P(t, \"style\", e), (!V || B & /*geom*/\n 16 && i !== (i = /*geom*/\n r[4].x)) && P(t, \"x\", i), (!V || B & /*geom*/\n 16 && s !== (s = /*geom*/\n r[4].y)) && P(t, \"y\", s), (!V || B & /*geom*/\n 16 && n !== (n = /*geom*/\n r[4].w)) && P(t, \"width\", n), (!V || B & /*geom*/\n 16 && o !== (o = /*geom*/\n r[4].h)) && P(t, \"height\", o), (!V || B & /*computedStyle*/\n 2) && P(\n l,\n \"style\",\n /*computedStyle*/\n r[1]\n ), (!V || B & /*geom*/\n 16 && h !== (h = /*geom*/\n r[4].x)) && P(l, \"x\", h), (!V || B & /*geom*/\n 16 && c !== (c = /*geom*/\n r[4].y)) && P(l, \"y\", c), (!V || B & /*geom*/\n 16 && u !== (u = /*geom*/\n r[4].w)) && P(l, \"width\", u), (!V || B & /*geom*/\n 16 && d !== (d = /*geom*/\n r[4].h)) && P(l, \"height\", d), (!V || B & /*geom*/\n 16 && m !== (m = /*geom*/\n r[4].x)) && P(p, \"x\", m), (!V || B & /*geom*/\n 16 && g !== (g = /*geom*/\n r[4].y)) && P(p, \"y\", g), (!V || B & /*geom*/\n 16 && y !== (y = /*geom*/\n r[4].w)) && P(p, \"width\", y), (!V || B & /*geom*/\n 16 && v !== (v = /*geom*/\n r[4].x + /*geom*/\n r[4].w)) && P(_, \"x\", v), (!V || B & /*geom*/\n 16 && w !== (w = /*geom*/\n r[4].y)) && P(_, \"y\", w), (!V || B & /*geom*/\n 16 && R !== (R = /*geom*/\n r[4].h)) && P(_, \"height\", R), (!V || B & /*geom*/\n 16 && T !== (T = /*geom*/\n r[4].x)) && P(b, \"x\", T), (!V || B & /*geom*/\n 16 && I !== (I = /*geom*/\n r[4].y + /*geom*/\n r[4].h)) && P(b, \"y\", I), (!V || B & /*geom*/\n 16 && O !== (O = /*geom*/\n r[4].w)) && P(b, \"width\", O), (!V || B & /*geom*/\n 16 && A !== (A = /*geom*/\n r[4].x)) && P(E, \"x\", A), (!V || B & /*geom*/\n 16 && L !== (L = /*geom*/\n r[4].y)) && P(E, \"y\", L), (!V || B & /*geom*/\n 16 && k !== (k = /*geom*/\n r[4].h)) && P(E, \"height\", k);\n const vt = {};\n B & /*geom*/\n 16 && (vt.x = /*geom*/\n r[4].x), B & /*geom*/\n 16 && (vt.y = /*geom*/\n r[4].y), B & /*viewportScale*/\n 8 && (vt.scale = /*viewportScale*/\n r[3]), $.$set(vt);\n const dt = {};\n B & /*geom*/\n 16 && (dt.x = /*geom*/\n r[4].x + /*geom*/\n r[4].w), B & /*geom*/\n 16 && (dt.y = /*geom*/\n r[4].y), B & /*viewportScale*/\n 8 && (dt.scale = /*viewportScale*/\n r[3]), D.$set(dt);\n const gt = {};\n B & /*geom*/\n 16 && (gt.x = /*geom*/\n r[4].x + /*geom*/\n r[4].w), B & /*geom*/\n 16 && (gt.y = /*geom*/\n r[4].y + /*geom*/\n r[4].h), B & /*viewportScale*/\n 8 && (gt.scale = /*viewportScale*/\n r[3]), j.$set(gt);\n const yt = {};\n B & /*geom*/\n 16 && (yt.x = /*geom*/\n r[4].x), B & /*geom*/\n 16 && (yt.y = /*geom*/\n r[4].y + /*geom*/\n r[4].h), B & /*viewportScale*/\n 8 && (yt.scale = /*viewportScale*/\n r[3]), Q.$set(yt);\n },\n i(N) {\n V || (st($.$$.fragment, N), st(D.$$.fragment, N), st(j.$$.fragment, N), st(Q.$$.fragment, N), V = !0);\n },\n o(N) {\n ut($.$$.fragment, N), ut(D.$$.fragment, N), ut(j.$$.fragment, N), ut(Q.$$.fragment, N), V = !1;\n },\n d(N) {\n N && (ht(t), ht(a), ht(l), ht(f), ht(p), ht(x), ht(_), ht(C), ht(b), ht(M), ht(E), ht(G), ht(X), ht(F), ht(nt)), Yt($, N), Yt(D, N), Yt(j, N), Yt(Q, N), _t = !1, sr(Et);\n }\n };\n}\nfunction Hw(r) {\n let t, e;\n return t = new Rf({\n props: {\n shape: (\n /*shape*/\n r[0]\n ),\n transform: (\n /*transform*/\n r[2]\n ),\n editor: (\n /*editor*/\n r[5]\n ),\n $$slots: {\n default: [\n $w,\n ({ grab: i }) => ({ 9: i }),\n ({ grab: i }) => i ? 512 : 0\n ]\n },\n $$scope: { ctx: r }\n }\n }), t.$on(\n \"grab\",\n /*grab_handler*/\n r[6]\n ), t.$on(\n \"change\",\n /*change_handler*/\n r[7]\n ), t.$on(\n \"release\",\n /*release_handler*/\n r[8]\n ), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, [s]) {\n const n = {};\n s & /*shape*/\n 1 && (n.shape = /*shape*/\n i[0]), s & /*transform*/\n 4 && (n.transform = /*transform*/\n i[2]), s & /*$$scope, geom, viewportScale, grab, computedStyle*/\n 1562 && (n.$$scope = { dirty: s, ctx: i }), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nfunction Xw(r, t, e) {\n let i, { shape: s } = t, { computedStyle: n } = t, { transform: o } = t, { viewportScale: a = 1 } = t;\n const l = (d, f, p) => {\n const m = d.geometry.bounds;\n let [g, y] = [m.minX, m.minY], [x, _] = [m.maxX, m.maxY];\n const [v, w] = p;\n if (f === \"SHAPE\")\n g += v, x += v, y += w, _ += w;\n else {\n switch (f) {\n case \"TOP\":\n case \"TOP_LEFT\":\n case \"TOP_RIGHT\": {\n y += w;\n break;\n }\n case \"BOTTOM\":\n case \"BOTTOM_LEFT\":\n case \"BOTTOM_RIGHT\": {\n _ += w;\n break;\n }\n }\n switch (f) {\n case \"LEFT\":\n case \"TOP_LEFT\":\n case \"BOTTOM_LEFT\": {\n g += v;\n break;\n }\n case \"RIGHT\":\n case \"TOP_RIGHT\":\n case \"BOTTOM_RIGHT\": {\n x += v;\n break;\n }\n }\n }\n const R = Math.min(g, x), C = Math.min(y, _), b = Math.abs(x - g), T = Math.abs(_ - y);\n return {\n ...d,\n geometry: {\n x: R,\n y: C,\n w: b,\n h: T,\n bounds: {\n minX: R,\n minY: C,\n maxX: R + b,\n maxY: C + T\n }\n }\n };\n };\n function h(d) {\n tr.call(this, r, d);\n }\n function c(d) {\n tr.call(this, r, d);\n }\n function u(d) {\n tr.call(this, r, d);\n }\n return r.$$set = (d) => {\n \"shape\" in d && e(0, s = d.shape), \"computedStyle\" in d && e(1, n = d.computedStyle), \"transform\" in d && e(2, o = d.transform), \"viewportScale\" in d && e(3, a = d.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*shape*/\n 1 && e(4, i = s.geometry);\n }, [\n s,\n n,\n o,\n a,\n i,\n l,\n h,\n c,\n u\n ];\n}\nclass Vw extends oe {\n constructor(t) {\n super(), ne(this, t, Xw, Hw, Qt, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 3\n });\n }\n}\nMi.RECTANGLE, Mi.POLYGON;\nconst zw = (r) => ({}), qc = (r) => ({ grab: (\n /*onGrab*/\n r[0]\n) });\nfunction Ww(r) {\n let t, e, i, s;\n const n = (\n /*#slots*/\n r[7].default\n ), o = Mu(\n n,\n r,\n /*$$scope*/\n r[6],\n qc\n );\n return {\n c() {\n t = Tt(\"g\"), o && o.c(), P(t, \"class\", \"a9s-annotation selected\");\n },\n m(a, l) {\n ct(a, t, l), o && o.m(t, null), e = !0, i || (s = [\n Vt(\n t,\n \"pointerup\",\n /*onRelease*/\n r[2]\n ),\n Vt(\n t,\n \"pointermove\",\n /*onPointerMove*/\n r[1]\n )\n ], i = !0);\n },\n p(a, [l]) {\n o && o.p && (!e || l & /*$$scope*/\n 64) && Ou(\n o,\n n,\n a,\n /*$$scope*/\n a[6],\n e ? Du(\n n,\n /*$$scope*/\n a[6],\n l,\n zw\n ) : Fu(\n /*$$scope*/\n a[6]\n ),\n qc\n );\n },\n i(a) {\n e || (st(o, a), e = !0);\n },\n o(a) {\n ut(o, a), e = !1;\n },\n d(a) {\n a && ht(t), o && o.d(a), i = !1, sr(s);\n }\n };\n}\nfunction jw(r, t, e) {\n let { $$slots: i = {}, $$scope: s } = t;\n const n = Xn();\n let { shape: o } = t, { editor: a } = t, { transform: l } = t, h, c, u;\n const d = (m) => (g) => {\n h = m, c = l.elementToImage(g.offsetX, g.offsetY), u = o, g.target.setPointerCapture(g.pointerId), n(\"grab\", g);\n }, f = (m) => {\n if (h) {\n const [g, y] = l.elementToImage(m.offsetX, m.offsetY), x = [g - c[0], y - c[1]];\n e(3, o = a(u, h, x)), n(\"change\", o);\n }\n }, p = (m) => {\n m.target.releasePointerCapture(m.pointerId), h = void 0, u = o, n(\"release\", m);\n };\n return r.$$set = (m) => {\n \"shape\" in m && e(3, o = m.shape), \"editor\" in m && e(4, a = m.editor), \"transform\" in m && e(5, l = m.transform), \"$$scope\" in m && e(6, s = m.$$scope);\n }, [d, f, p, o, a, l, s, i];\n}\nclass Rf extends oe {\n constructor(t) {\n super(), ne(this, t, jw, Ww, Qt, { shape: 3, editor: 4, transform: 5 });\n }\n}\nconst Yw = (r, t) => {\n const e = typeof t == \"function\" ? t(r) : t;\n if (e) {\n const { fill: i, fillOpacity: s } = e;\n let n = \"\";\n return i && (n += `fill:${i};stroke:${i};`), n += `fill-opacity:${s || \"0.25\"};`, n;\n }\n};\nfunction qw(r, t, e) {\n let i;\n const s = Xn();\n let { annotation: n } = t, { editor: o } = t, { style: a } = t, { target: l } = t, { transform: h } = t, { viewportScale: c } = t, u;\n return Hn(() => (e(6, u = new o({\n target: l,\n props: {\n shape: n.target.selector,\n computedStyle: i,\n transform: h,\n viewportScale: c\n }\n })), u.$on(\"change\", (d) => {\n u.$$set({ shape: d.detail }), s(\"change\", d.detail);\n }), u.$on(\"grab\", (d) => s(\"grab\", d.detail)), u.$on(\"release\", (d) => s(\"release\", d.detail)), () => {\n u.$destroy();\n })), r.$$set = (d) => {\n \"annotation\" in d && e(0, n = d.annotation), \"editor\" in d && e(1, o = d.editor), \"style\" in d && e(2, a = d.style), \"target\" in d && e(3, l = d.target), \"transform\" in d && e(4, h = d.transform), \"viewportScale\" in d && e(5, c = d.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*annotation, style*/\n 5 && (i = Yw(n, a)), r.$$.dirty & /*annotation, editorComponent*/\n 65 && n && (u == null || u.$set({ shape: n.target.selector })), r.$$.dirty & /*editorComponent, transform*/\n 80 && u && u.$set({ transform: h }), r.$$.dirty & /*editorComponent, viewportScale*/\n 96 && u && u.$set({ viewportScale: c });\n }, [n, o, a, l, h, c, u];\n}\nclass Kw extends oe {\n constructor(t) {\n super(), ne(this, t, qw, null, Qt, {\n annotation: 0,\n editor: 1,\n style: 2,\n target: 3,\n transform: 4,\n viewportScale: 5\n });\n }\n}\nnavigator.userAgent.indexOf(\"Mac OS X\");\nconst Zw = (r) => ({\n transform: r & /*layerTransform*/\n 2,\n scale: r & /*scale*/\n 1\n}), Kc = (r) => ({\n transform: (\n /*layerTransform*/\n r[1]\n ),\n scale: (\n /*scale*/\n r[0]\n )\n});\nfunction Jw(r) {\n let t;\n const e = (\n /*#slots*/\n r[4].default\n ), i = Mu(\n e,\n r,\n /*$$scope*/\n r[3],\n Kc\n );\n return {\n c() {\n i && i.c();\n },\n m(s, n) {\n i && i.m(s, n), t = !0;\n },\n p(s, [n]) {\n i && i.p && (!t || n & /*$$scope, layerTransform, scale*/\n 11) && Ou(\n i,\n e,\n s,\n /*$$scope*/\n s[3],\n t ? Du(\n e,\n /*$$scope*/\n s[3],\n n,\n Zw\n ) : Fu(\n /*$$scope*/\n s[3]\n ),\n Kc\n );\n },\n i(s) {\n t || (st(i, s), t = !0);\n },\n o(s) {\n ut(i, s), t = !1;\n },\n d(s) {\n i && i.d(s);\n }\n };\n}\nfunction Qw(r, t, e) {\n let { $$slots: i = {}, $$scope: s } = t, { viewer: n } = t, o = 1, a;\n const l = () => {\n const h = n.viewport.getContainerSize().x, c = n.viewport.getZoom(!0), u = n.viewport.getFlip(), d = n.viewport.pixelFromPoint(new un.Point(0, 0), !0);\n u && (d.x = h - d.x);\n const f = c * h / n.world.getContentFactor(), p = u ? -f : f, m = n.viewport.getRotation();\n e(1, a = `translate(${d.x}, ${d.y}) scale(${p}, ${f}) rotate(${m})`), e(0, o = c * h / n.world.getContentFactor());\n };\n return Hn(() => (n.addHandler(\"update-viewport\", l), () => {\n n.removeHandler(\"update-viewport\", l);\n })), r.$$set = (h) => {\n \"viewer\" in h && e(2, n = h.viewer), \"$$scope\" in h && e(3, s = h.$$scope);\n }, [o, a, n, s, i];\n}\nclass Mf extends oe {\n constructor(t) {\n super(), ne(this, t, Qw, Jw, Qt, { viewer: 2 });\n }\n}\nfunction tE(r, t, e) {\n const i = Xn();\n let { drawingMode: s } = t, { target: n } = t, { tool: o } = t, { transform: a } = t, { viewer: l } = t, { viewportScale: h } = t, c;\n return Hn(() => {\n const u = n.closest(\"svg\"), d = [], f = (p, m, g) => {\n if (u == null || u.addEventListener(p, m, g), d.push(() => u == null ? void 0 : u.removeEventListener(p, m, g)), p === \"pointerup\" || p === \"dblclick\") {\n const y = (_) => {\n const { originalEvent: v } = _;\n m(v);\n }, x = p === \"pointerup\" ? \"canvas-click\" : \"canvas-double-click\";\n l.addHandler(x, y), d.push(() => l.removeHandler(x, y));\n } else if (p === \"pointermove\") {\n const y = (x) => {\n const { originalEvent: _ } = x;\n m(_);\n };\n l.addHandler(\"canvas-drag\", y), d.push(() => l.removeHandler(\"canvas-drag\", y));\n }\n };\n return e(6, c = new o({\n target: n,\n props: {\n addEventListener: f,\n drawingMode: s,\n transform: a,\n viewportScale: h\n }\n })), c.$on(\"create\", (p) => i(\"create\", p.detail)), () => {\n d.forEach((p) => p()), c.$destroy();\n };\n }), r.$$set = (u) => {\n \"drawingMode\" in u && e(0, s = u.drawingMode), \"target\" in u && e(1, n = u.target), \"tool\" in u && e(2, o = u.tool), \"transform\" in u && e(3, a = u.transform), \"viewer\" in u && e(4, l = u.viewer), \"viewportScale\" in u && e(5, h = u.viewportScale);\n }, r.$$.update = () => {\n r.$$.dirty & /*toolComponent, transform*/\n 72 && c && c.$set({ transform: a }), r.$$.dirty & /*toolComponent, viewportScale*/\n 96 && c && c.$set({ viewportScale: h });\n }, [s, n, o, a, l, h, c];\n}\nclass eE extends oe {\n constructor(t) {\n super(), ne(this, t, tE, null, Qt, {\n drawingMode: 0,\n target: 1,\n tool: 2,\n transform: 3,\n viewer: 4,\n viewportScale: 5\n });\n }\n}\nfunction Zc(r, t, e) {\n const i = r.slice();\n return i[29] = t[e], i;\n}\nfunction rE(r) {\n let t = (\n /*toolName*/\n r[2]\n ), e, i, s = Jc(r);\n return {\n c() {\n s.c(), e = br();\n },\n m(n, o) {\n s.m(n, o), ct(n, e, o), i = !0;\n },\n p(n, o) {\n o[0] & /*toolName*/\n 4 && Qt(t, t = /*toolName*/\n n[2]) ? (nr(), ut(s, 1, 1, $e), or(), s = Jc(n), s.c(), st(s, 1), s.m(e.parentNode, e)) : s.p(n, o);\n },\n i(n) {\n i || (st(s), i = !0);\n },\n o(n) {\n ut(s), i = !1;\n },\n d(n) {\n n && ht(e), s.d(n);\n }\n };\n}\nfunction iE(r) {\n let t, e, i = Si(\n /*editableAnnotations*/\n r[6]\n ), s = [];\n for (let o = 0; o < i.length; o += 1)\n s[o] = tu(Zc(r, i, o));\n const n = (o) => ut(s[o], 1, 1, () => {\n s[o] = null;\n });\n return {\n c() {\n for (let o = 0; o < s.length; o += 1)\n s[o].c();\n t = br();\n },\n m(o, a) {\n for (let l = 0; l < s.length; l += 1)\n s[l] && s[l].m(o, a);\n ct(o, t, a), e = !0;\n },\n p(o, a) {\n if (a[0] & /*editableAnnotations, drawingEl, getEditor, style, toolTransform, scale, onGrab, onChangeSelected, onRelease*/\n 268459618) {\n i = Si(\n /*editableAnnotations*/\n o[6]\n );\n let l;\n for (l = 0; l < i.length; l += 1) {\n const h = Zc(o, i, l);\n s[l] ? (s[l].p(h, a), st(s[l], 1)) : (s[l] = tu(h), s[l].c(), st(s[l], 1), s[l].m(t.parentNode, t));\n }\n for (nr(), l = i.length; l < s.length; l += 1)\n n(l);\n or();\n }\n },\n i(o) {\n if (!e) {\n for (let a = 0; a < i.length; a += 1)\n st(s[a]);\n e = !0;\n }\n },\n o(o) {\n s = s.filter(Boolean);\n for (let a = 0; a < s.length; a += 1)\n ut(s[a]);\n e = !1;\n },\n d(o) {\n o && ht(t), al(s, o);\n }\n };\n}\nfunction Jc(r) {\n let t, e;\n return t = new eE({\n props: {\n target: (\n /*drawingEl*/\n r[5]\n ),\n tool: (\n /*tool*/\n r[7]\n ),\n drawingMode: (\n /*drawingMode*/\n r[4]\n ),\n transform: { elementToImage: (\n /*toolTransform*/\n r[9]\n ) },\n viewer: (\n /*viewer*/\n r[3]\n ),\n viewportScale: (\n /*scale*/\n r[28]\n )\n }\n }), t.$on(\n \"create\",\n /*onSelectionCreated*/\n r[13]\n ), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s[0] & /*drawingEl*/\n 32 && (n.target = /*drawingEl*/\n i[5]), s[0] & /*tool*/\n 128 && (n.tool = /*tool*/\n i[7]), s[0] & /*drawingMode*/\n 16 && (n.drawingMode = /*drawingMode*/\n i[4]), s[0] & /*viewer*/\n 8 && (n.viewer = /*viewer*/\n i[3]), s[0] & /*scale*/\n 268435456 && (n.viewportScale = /*scale*/\n i[28]), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nfunction Qc(r) {\n let t, e;\n return t = new Kw({\n props: {\n target: (\n /*drawingEl*/\n r[5]\n ),\n editor: (\n /*getEditor*/\n r[14](\n /*editable*/\n r[29].target.selector\n )\n ),\n annotation: (\n /*editable*/\n r[29]\n ),\n style: (\n /*style*/\n r[1]\n ),\n transform: { elementToImage: (\n /*toolTransform*/\n r[9]\n ) },\n viewportScale: (\n /*scale*/\n r[28]\n )\n }\n }), t.$on(\n \"grab\",\n /*onGrab*/\n r[10]\n ), t.$on(\"change\", function() {\n Wt(\n /*onChangeSelected*/\n r[12](\n /*editable*/\n r[29]\n )\n ) && r[12](\n /*editable*/\n r[29]\n ).apply(this, arguments);\n }), t.$on(\n \"release\",\n /*onRelease*/\n r[11]\n ), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, s) {\n r = i;\n const n = {};\n s[0] & /*drawingEl*/\n 32 && (n.target = /*drawingEl*/\n r[5]), s[0] & /*editableAnnotations*/\n 64 && (n.editor = /*getEditor*/\n r[14](\n /*editable*/\n r[29].target.selector\n )), s[0] & /*editableAnnotations*/\n 64 && (n.annotation = /*editable*/\n r[29]), s[0] & /*style*/\n 2 && (n.style = /*style*/\n r[1]), s[0] & /*scale*/\n 268435456 && (n.viewportScale = /*scale*/\n r[28]), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nfunction tu(r) {\n let t = (\n /*editable*/\n r[29].id\n ), e, i, s = Qc(r);\n return {\n c() {\n s.c(), e = br();\n },\n m(n, o) {\n s.m(n, o), ct(n, e, o), i = !0;\n },\n p(n, o) {\n o[0] & /*editableAnnotations*/\n 64 && Qt(t, t = /*editable*/\n n[29].id) ? (nr(), ut(s, 1, 1, $e), or(), s = Qc(n), s.c(), st(s, 1), s.m(e.parentNode, e)) : s.p(n, o);\n },\n i(n) {\n i || (st(s), i = !0);\n },\n o(n) {\n ut(s), i = !1;\n },\n d(n) {\n n && ht(e), s.d(n);\n }\n };\n}\nfunction sE(r) {\n let t, e, i, s, n, o;\n const a = [iE, rE], l = [];\n function h(c, u) {\n return (\n /*drawingEl*/\n c[5] && /*editableAnnotations*/\n c[6] ? 0 : (\n /*drawingEl*/\n c[5] && /*tool*/\n c[7] && /*drawingEnabled*/\n c[0] ? 1 : -1\n )\n );\n }\n return ~(i = h(r)) && (s = l[i] = a[i](r)), {\n c() {\n t = Tt(\"svg\"), e = Tt(\"g\"), s && s.c(), P(e, \"transform\", n = /*transform*/\n r[27]), P(e, \"class\", \"svelte-190cqdf\"), P(t, \"class\", \"a9s-annotationlayer a9s-osd-drawinglayer svelte-190cqdf\"), yn(\n t,\n \"drawing\",\n /*drawingEnabled*/\n r[0]\n );\n },\n m(c, u) {\n ct(c, t, u), Qe(t, e), ~i && l[i].m(e, null), r[21](e), o = !0;\n },\n p(c, u) {\n let d = i;\n i = h(c), i === d ? ~i && l[i].p(c, u) : (s && (nr(), ut(l[d], 1, 1, () => {\n l[d] = null;\n }), or()), ~i ? (s = l[i], s ? s.p(c, u) : (s = l[i] = a[i](c), s.c()), st(s, 1), s.m(e, null)) : s = null), (!o || u[0] & /*transform*/\n 134217728 && n !== (n = /*transform*/\n c[27])) && P(e, \"transform\", n), (!o || u[0] & /*drawingEnabled*/\n 1) && yn(\n t,\n \"drawing\",\n /*drawingEnabled*/\n c[0]\n );\n },\n i(c) {\n o || (st(s), o = !0);\n },\n o(c) {\n ut(s), o = !1;\n },\n d(c) {\n c && ht(t), ~i && l[i].d(), r[21](null);\n }\n };\n}\nfunction nE(r) {\n let t, e;\n return t = new Mf({\n props: {\n viewer: (\n /*viewer*/\n r[3]\n ),\n $$slots: {\n default: [\n sE,\n ({ transform: i, scale: s }) => ({ 27: i, 28: s }),\n ({ transform: i, scale: s }) => [(i ? 134217728 : 0) | (s ? 268435456 : 0)]\n ]\n },\n $$scope: { ctx: r }\n }\n }), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s[0] & /*viewer*/\n 8 && (n.viewer = /*viewer*/\n i[3]), s[0] & /*drawingEnabled, transform, drawingEl, editableAnnotations, style, scale, toolName, tool, drawingMode, viewer*/\n 402653439 | s[1] & /*$$scope*/\n 2 && (n.$$scope = { dirty: s, ctx: i }), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nfunction oE(r, t, e) {\n let i, s, n, o, { drawingEnabled: a } = t, { filter: l } = t, { preferredDrawingMode: h } = t, { state: c } = t, { style: u = void 0 } = t, { toolName: d = Gn()[0] } = t, { user: f } = t, { viewer: p } = t, m;\n const { store: g, selection: y, hover: x } = c;\n ea(r, y, (A) => e(20, o = A));\n let _, v, w;\n const R = (A) => {\n g.unobserve(_);\n const L = A.filter(({ editable: k }) => k).map(({ id: k }) => k);\n L.length > 0 ? (e(6, v = L.map((k) => g.getAnnotation(k))), _ = (k) => {\n const { updated: G } = k.changes;\n e(6, v = (G || []).map(($) => $.newValue));\n }, g.observe(_, { annotations: L })) : e(6, v = void 0);\n }, C = (A, L) => {\n const { x: k, y: G } = p.viewport.viewerElementToImageCoordinates(new un.Point(A, L));\n return [k, G];\n }, b = (A) => {\n p.setMouseNavEnabled(!1), w = A.timeStamp;\n }, T = (A) => {\n if (p.setMouseNavEnabled(!0), performance.now() - (w || 0) < 300) {\n const { offsetX: k, offsetY: G } = A.detail, [$, X] = C(k, G), D = g.getAt($, X);\n D && (!l || l(D)) && !v.find((j) => j.id === D.id) && (x.set(D.id), y.setSelected(D.id));\n }\n }, I = (A) => (L) => {\n var X;\n const { target: k } = A, G = 10 * 60 * 1e3, $ = ((X = k.creator) == null ? void 0 : X.id) !== f.id || !k.created || (/* @__PURE__ */ new Date()).getTime() - k.created.getTime() > G;\n g.updateTarget({\n ...k,\n selector: L.detail,\n created: $ ? k.created : /* @__PURE__ */ new Date(),\n updated: $ ? /* @__PURE__ */ new Date() : void 0,\n updatedBy: $ ? f : void 0\n });\n }, O = (A) => {\n const L = Cw(), k = {\n id: L,\n bodies: [],\n target: {\n annotation: L,\n selector: A.detail,\n creator: f,\n created: /* @__PURE__ */ new Date()\n }\n };\n g.addAnnotation(k), y.setSelected(k.id), p.setMouseNavEnabled(!0);\n }, M = (A) => xu(A);\n function E(A) {\n _n[A ? \"unshift\" : \"push\"](() => {\n m = A, e(5, m);\n });\n }\n return r.$$set = (A) => {\n \"drawingEnabled\" in A && e(0, a = A.drawingEnabled), \"filter\" in A && e(15, l = A.filter), \"preferredDrawingMode\" in A && e(16, h = A.preferredDrawingMode), \"state\" in A && e(17, c = A.state), \"style\" in A && e(1, u = A.style), \"toolName\" in A && e(2, d = A.toolName), \"user\" in A && e(18, f = A.user), \"viewer\" in A && e(3, p = A.viewer);\n }, r.$$.update = () => {\n r.$$.dirty[0] & /*toolName*/\n 4 && e(7, { tool: i, opts: s } = $n(d) || { tool: void 0, opts: void 0 }, i, (e(19, s), e(2, d))), r.$$.dirty[0] & /*opts, preferredDrawingMode*/\n 589824 && e(4, n = (s == null ? void 0 : s.drawingMode) || h), r.$$.dirty[0] & /*drawingEnabled, drawingMode, viewer*/\n 25 && (a && n === \"drag\" ? p.setMouseNavEnabled(!1) : p.setMouseNavEnabled(!0)), r.$$.dirty[0] & /*drawingEnabled*/\n 1 && a && y.clear(), r.$$.dirty[0] & /*$selection, drawingMode, drawingEnabled, viewer*/\n 1048601 && o.selected.length === 0 && n === \"drag\" && a && p.setMouseNavEnabled(!1), r.$$.dirty[0] & /*$selection*/\n 1048576 && R(o.selected);\n }, [\n a,\n u,\n d,\n p,\n n,\n m,\n v,\n i,\n y,\n C,\n b,\n T,\n I,\n O,\n M,\n l,\n h,\n c,\n f,\n s,\n o,\n E\n ];\n}\nclass aE extends oe {\n constructor(t) {\n super(), ne(\n this,\n t,\n oE,\n nE,\n Qt,\n {\n drawingEnabled: 0,\n filter: 15,\n preferredDrawingMode: 16,\n state: 17,\n style: 1,\n toolName: 2,\n user: 18,\n viewer: 3\n },\n null,\n [-1, -1]\n );\n }\n}\nfunction lE(r) {\n let t, e, i, s, n, o, a, l = (\n /*user*/\n r[2].appearance.label + \"\"\n ), h, c, u, d;\n return {\n c() {\n t = Tt(\"g\"), e = Tt(\"rect\"), a = Tt(\"text\"), h = ll(l), P(e, \"class\", \"a9s-presence-label-bg svelte-1rehw2p\"), P(\n e,\n \"x\",\n /*x*/\n r[0]\n ), P(e, \"y\", i = /*y*/\n r[1] - 18 / /*scale*/\n r[3]), P(e, \"height\", s = 18 / /*scale*/\n r[3]), P(e, \"fill\", n = /*user*/\n r[2].appearance.color), P(e, \"stroke\", o = /*user*/\n r[2].appearance.color), P(a, \"font-size\", c = 12 / /*scale*/\n r[3]), P(a, \"x\", u = /*x*/\n r[0] + Math.round(5 / /*scale*/\n r[3])), P(a, \"y\", d = /*y*/\n r[1] - 5 / /*scale*/\n r[3]), P(a, \"class\", \"svelte-1rehw2p\"), P(t, \"class\", \"a9s-presence-label\");\n },\n m(f, p) {\n ct(f, t, p), Qe(t, e), Qe(t, a), Qe(a, h), r[6](t);\n },\n p(f, [p]) {\n p & /*x*/\n 1 && P(\n e,\n \"x\",\n /*x*/\n f[0]\n ), p & /*y, scale*/\n 10 && i !== (i = /*y*/\n f[1] - 18 / /*scale*/\n f[3]) && P(e, \"y\", i), p & /*scale*/\n 8 && s !== (s = 18 / /*scale*/\n f[3]) && P(e, \"height\", s), p & /*user*/\n 4 && n !== (n = /*user*/\n f[2].appearance.color) && P(e, \"fill\", n), p & /*user*/\n 4 && o !== (o = /*user*/\n f[2].appearance.color) && P(e, \"stroke\", o), p & /*user*/\n 4 && l !== (l = /*user*/\n f[2].appearance.label + \"\") && Fg(h, l), p & /*scale*/\n 8 && c !== (c = 12 / /*scale*/\n f[3]) && P(a, \"font-size\", c), p & /*x, scale*/\n 9 && u !== (u = /*x*/\n f[0] + Math.round(5 / /*scale*/\n f[3])) && P(a, \"x\", u), p & /*y, scale*/\n 10 && d !== (d = /*y*/\n f[1] - 5 / /*scale*/\n f[3]) && P(a, \"y\", d);\n },\n i: $e,\n o: $e,\n d(f) {\n f && ht(t), r[6](null);\n }\n };\n}\nfunction hE(r, t, e) {\n let { x: i } = t, { y: s } = t, { user: n } = t, { scale: o } = t, { hAlign: a = null } = t, l;\n const h = (u) => {\n const d = l.querySelector(\"text\"), f = l.querySelector(\"rect\"), p = d.getBBox().width + 10 / u;\n a === \"CENTER\" && l.setAttribute(\"style\", `transform: translateX(-${p / 2}px)`), f.setAttribute(\"width\", `${p}`);\n };\n function c(u) {\n _n[u ? \"unshift\" : \"push\"](() => {\n l = u, e(4, l);\n });\n }\n return r.$$set = (u) => {\n \"x\" in u && e(0, i = u.x), \"y\" in u && e(1, s = u.y), \"user\" in u && e(2, n = u.user), \"scale\" in u && e(3, o = u.scale), \"hAlign\" in u && e(5, a = u.hAlign);\n }, r.$$.update = () => {\n r.$$.dirty & /*g, scale*/\n 24 && l && h(o);\n }, [i, s, n, o, l, a, c];\n}\nclass Bf extends oe {\n constructor(t) {\n super(), ne(this, t, hE, lE, Qt, { x: 0, y: 1, user: 2, scale: 3, hAlign: 5 });\n }\n}\nfunction cE(r) {\n let t, e, i, s, n, o;\n return e = new Bf({\n props: {\n scale: (\n /*scale*/\n r[1]\n ),\n user: (\n /*user*/\n r[0]\n ),\n x: (\n /*origin*/\n r[3][0]\n ),\n y: (\n /*origin*/\n r[3][1]\n ),\n hAlign: \"CENTER\"\n }\n }), {\n c() {\n t = Tt(\"g\"), Zt(e.$$.fragment), i = Tt(\"polygon\"), P(i, \"class\", \"a9s-presence-shape a9s-presence-polygon svelte-fgq4n0\"), P(i, \"stroke\", s = /*user*/\n r[0].appearance.color), P(i, \"fill\", \"transparent\"), P(i, \"points\", n = /*geom*/\n r[2].points.map(eu).join(\" \")), P(t, \"class\", \"a9s-presence-overlay\");\n },\n m(a, l) {\n ct(a, t, l), jt(e, t, null), Qe(t, i), o = !0;\n },\n p(a, [l]) {\n const h = {};\n l & /*scale*/\n 2 && (h.scale = /*scale*/\n a[1]), l & /*user*/\n 1 && (h.user = /*user*/\n a[0]), l & /*origin*/\n 8 && (h.x = /*origin*/\n a[3][0]), l & /*origin*/\n 8 && (h.y = /*origin*/\n a[3][1]), e.$set(h), (!o || l & /*user*/\n 1 && s !== (s = /*user*/\n a[0].appearance.color)) && P(i, \"stroke\", s), (!o || l & /*geom*/\n 4 && n !== (n = /*geom*/\n a[2].points.map(eu).join(\" \"))) && P(i, \"points\", n);\n },\n i(a) {\n o || (st(e.$$.fragment, a), o = !0);\n },\n o(a) {\n ut(e.$$.fragment, a), o = !1;\n },\n d(a) {\n a && ht(t), Yt(e);\n }\n };\n}\nconst eu = (r) => r.join(\",\");\nfunction uE(r, t, e) {\n let i, s, { annotation: n } = t, { user: o } = t, { scale: a } = t;\n const l = (h) => {\n let [c, ...u] = h.points;\n return u.forEach(([d, f]) => {\n f < c[1] && (c = [d, f]);\n }), c;\n };\n return r.$$set = (h) => {\n \"annotation\" in h && e(4, n = h.annotation), \"user\" in h && e(0, o = h.user), \"scale\" in h && e(1, a = h.scale);\n }, r.$$.update = () => {\n r.$$.dirty & /*annotation*/\n 16 && e(2, i = n.target.selector.geometry), r.$$.dirty & /*geom*/\n 4 && e(3, s = l(i));\n }, [o, a, i, s, n];\n}\nclass dE extends oe {\n constructor(t) {\n super(), ne(this, t, uE, cE, Qt, { annotation: 4, user: 0, scale: 1 });\n }\n}\nfunction fE(r) {\n let t, e, i, s, n, o, a, l, h;\n return e = new Bf({\n props: {\n scale: (\n /*scale*/\n r[1]\n ),\n user: (\n /*user*/\n r[0]\n ),\n x: (\n /*geom*/\n r[2].x\n ),\n y: (\n /*geom*/\n r[2].y\n )\n }\n }), {\n c() {\n t = Tt(\"g\"), Zt(e.$$.fragment), i = Tt(\"rect\"), P(i, \"class\", \"a9s-presence-shape a9s-presence-rectangle svelte-gze948\"), P(i, \"stroke\", s = /*user*/\n r[0].appearance.color), P(i, \"fill\", \"transparent\"), P(i, \"x\", n = /*geom*/\n r[2].x), P(i, \"y\", o = /*geom*/\n r[2].y), P(i, \"width\", a = /*geom*/\n r[2].w), P(i, \"height\", l = /*geom*/\n r[2].h), P(t, \"class\", \"a9s-presence-overlay\");\n },\n m(c, u) {\n ct(c, t, u), jt(e, t, null), Qe(t, i), h = !0;\n },\n p(c, [u]) {\n const d = {};\n u & /*scale*/\n 2 && (d.scale = /*scale*/\n c[1]), u & /*user*/\n 1 && (d.user = /*user*/\n c[0]), u & /*geom*/\n 4 && (d.x = /*geom*/\n c[2].x), u & /*geom*/\n 4 && (d.y = /*geom*/\n c[2].y), e.$set(d), (!h || u & /*user*/\n 1 && s !== (s = /*user*/\n c[0].appearance.color)) && P(i, \"stroke\", s), (!h || u & /*geom*/\n 4 && n !== (n = /*geom*/\n c[2].x)) && P(i, \"x\", n), (!h || u & /*geom*/\n 4 && o !== (o = /*geom*/\n c[2].y)) && P(i, \"y\", o), (!h || u & /*geom*/\n 4 && a !== (a = /*geom*/\n c[2].w)) && P(i, \"width\", a), (!h || u & /*geom*/\n 4 && l !== (l = /*geom*/\n c[2].h)) && P(i, \"height\", l);\n },\n i(c) {\n h || (st(e.$$.fragment, c), h = !0);\n },\n o(c) {\n ut(e.$$.fragment, c), h = !1;\n },\n d(c) {\n c && ht(t), Yt(e);\n }\n };\n}\nfunction pE(r, t, e) {\n let i, { annotation: s } = t, { user: n } = t, { scale: o } = t;\n return r.$$set = (a) => {\n \"annotation\" in a && e(3, s = a.annotation), \"user\" in a && e(0, n = a.user), \"scale\" in a && e(1, o = a.scale);\n }, r.$$.update = () => {\n r.$$.dirty & /*annotation*/\n 8 && e(2, i = s.target.selector.geometry);\n }, [n, o, i, s];\n}\nclass mE extends oe {\n constructor(t) {\n super(), ne(this, t, pE, fE, Qt, { annotation: 3, user: 0, scale: 1 });\n }\n}\nconst { Boolean: gE } = Dg;\nfunction ru(r, t, e) {\n const i = r.slice();\n return i[8] = t[e], i;\n}\nfunction iu(r) {\n let t, e;\n return t = new Mf({\n props: {\n viewer: (\n /*viewer*/\n r[0]\n ),\n $$slots: {\n default: [\n vE,\n ({ transform: i, scale: s }) => ({ 6: i, 7: s }),\n ({ transform: i, scale: s }) => (i ? 64 : 0) | (s ? 128 : 0)\n ]\n },\n $$scope: { ctx: r }\n }\n }), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s & /*viewer*/\n 1 && (n.viewer = /*viewer*/\n i[0]), s & /*$$scope, transform, trackedAnnotations, scale*/\n 2244 && (n.$$scope = { dirty: s, ctx: i }), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nfunction su(r) {\n let t, e, i = Si(\n /*trackedAnnotations*/\n r[2]\n ), s = [];\n for (let o = 0; o < i.length; o += 1)\n s[o] = nu(ru(r, i, o));\n const n = (o) => ut(s[o], 1, 1, () => {\n s[o] = null;\n });\n return {\n c() {\n for (let o = 0; o < s.length; o += 1)\n s[o].c();\n t = br();\n },\n m(o, a) {\n for (let l = 0; l < s.length; l += 1)\n s[l] && s[l].m(o, a);\n ct(o, t, a), e = !0;\n },\n p(o, a) {\n if (a & /*trackedAnnotations, scale*/\n 132) {\n i = Si(\n /*trackedAnnotations*/\n o[2]\n );\n let l;\n for (l = 0; l < i.length; l += 1) {\n const h = ru(o, i, l);\n s[l] ? (s[l].p(h, a), st(s[l], 1)) : (s[l] = nu(h), s[l].c(), st(s[l], 1), s[l].m(t.parentNode, t));\n }\n for (nr(), l = i.length; l < s.length; l += 1)\n n(l);\n or();\n }\n },\n i(o) {\n if (!e) {\n for (let a = 0; a < i.length; a += 1)\n st(s[a]);\n e = !0;\n }\n },\n o(o) {\n s = s.filter(gE);\n for (let a = 0; a < s.length; a += 1)\n ut(s[a]);\n e = !1;\n },\n d(o) {\n o && ht(t), al(s, o);\n }\n };\n}\nfunction yE(r) {\n let t, e;\n return t = new dE({\n props: {\n annotation: (\n /*tracked*/\n r[8].annotation\n ),\n user: (\n /*tracked*/\n r[8].selectedBy\n ),\n scale: (\n /*scale*/\n r[7]\n )\n }\n }), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s & /*trackedAnnotations*/\n 4 && (n.annotation = /*tracked*/\n i[8].annotation), s & /*trackedAnnotations*/\n 4 && (n.user = /*tracked*/\n i[8].selectedBy), s & /*scale*/\n 128 && (n.scale = /*scale*/\n i[7]), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nfunction _E(r) {\n let t, e;\n return t = new mE({\n props: {\n annotation: (\n /*tracked*/\n r[8].annotation\n ),\n user: (\n /*tracked*/\n r[8].selectedBy\n ),\n scale: (\n /*scale*/\n r[7]\n )\n }\n }), {\n c() {\n Zt(t.$$.fragment);\n },\n m(i, s) {\n jt(t, i, s), e = !0;\n },\n p(i, s) {\n const n = {};\n s & /*trackedAnnotations*/\n 4 && (n.annotation = /*tracked*/\n i[8].annotation), s & /*trackedAnnotations*/\n 4 && (n.user = /*tracked*/\n i[8].selectedBy), s & /*scale*/\n 128 && (n.scale = /*scale*/\n i[7]), t.$set(n);\n },\n i(i) {\n e || (st(t.$$.fragment, i), e = !0);\n },\n o(i) {\n ut(t.$$.fragment, i), e = !1;\n },\n d(i) {\n Yt(t, i);\n }\n };\n}\nfunction nu(r) {\n let t, e, i, s;\n const n = [_E, yE], o = [];\n function a(l, h) {\n return (\n /*tracked*/\n l[8].annotation.target.selector.type === bt.RECTANGLE ? 0 : (\n /*tracked*/\n l[8].annotation.target.selector.type === bt.POLYGON ? 1 : -1\n )\n );\n }\n return ~(t = a(r)) && (e = o[t] = n[t](r)), {\n c() {\n e && e.c(), i = br();\n },\n m(l, h) {\n ~t && o[t].m(l, h), ct(l, i, h), s = !0;\n },\n p(l, h) {\n let c = t;\n t = a(l), t === c ? ~t && o[t].p(l, h) : (e && (nr(), ut(o[c], 1, 1, () => {\n o[c] = null;\n }), or()), ~t ? (e = o[t], e ? e.p(l, h) : (e = o[t] = n[t](l), e.c()), st(e, 1), e.m(i.parentNode, i)) : e = null);\n },\n i(l) {\n s || (st(e), s = !0);\n },\n o(l) {\n ut(e), s = !1;\n },\n d(l) {\n l && ht(i), ~t && o[t].d(l);\n }\n };\n}\nfunction vE(r) {\n let t, e, i, s, n = (\n /*trackedAnnotations*/\n r[2].length > 0 && su(r)\n );\n return {\n c() {\n t = Tt(\"svg\"), e = Tt(\"g\"), n && n.c(), P(e, \"transform\", i = /*transform*/\n r[6]), P(t, \"class\", \"a9s-osd-presencelayer svelte-1krwc4m\");\n },\n m(o, a) {\n ct(o, t, a), Qe(t, e), n && n.m(e, null), s = !0;\n },\n p(o, a) {\n /*trackedAnnotations*/\n o[2].length > 0 ? n ? (n.p(o, a), a & /*trackedAnnotations*/\n 4 && st(n, 1)) : (n = su(o), n.c(), st(n, 1), n.m(e, null)) : n && (nr(), ut(n, 1, 1, () => {\n n = null;\n }), or()), (!s || a & /*transform*/\n 64 && i !== (i = /*transform*/\n o[6])) && P(e, \"transform\", i);\n },\n i(o) {\n s || (st(n), s = !0);\n },\n o(o) {\n ut(n), s = !1;\n },\n d(o) {\n o && ht(t), n && n.d();\n }\n };\n}\nfunction xE(r) {\n let t = !!/*provider*/\n r[1], e, i, s = t && iu(r);\n return {\n c() {\n s && s.c(), e = br();\n },\n m(n, o) {\n s && s.m(n, o), ct(n, e, o), i = !0;\n },\n p(n, [o]) {\n o & /*provider*/\n 2 && (t = !!/*provider*/\n n[1]), t ? s ? (s.p(n, o), o & /*provider*/\n 2 && st(s, 1)) : (s = iu(n), s.c(), st(s, 1), s.m(e.parentNode, e)) : s && (nr(), ut(s, 1, 1, () => {\n s = null;\n }), or());\n },\n i(n) {\n i || (st(s), i = !0);\n },\n o(n) {\n ut(s), i = !1;\n },\n d(n) {\n n && ht(e), s && s.d(n);\n }\n };\n}\nfunction bE(r, t, e) {\n let { store: i } = t, { viewer: s } = t, { provider: n } = t, o = [], a;\n const l = (h, c) => {\n e(2, o = [\n ...o.filter(({ selectedBy: u }) => u.presenceKey !== h.presenceKey),\n ...(c || []).map((u) => ({\n // Warning - could be undefined!\n annotation: i.getAnnotation(u),\n selectedBy: h\n }))\n ].filter(({ annotation: u }) => (u || console.warn(\"Selection event on unknown annotation\"), !!u))), a && i.unobserve(a), a = (u) => {\n const { deleted: d, updated: f } = u.changes, p = new Set((d || []).map((g) => g.id)), m = o.filter(({ annotation: g }) => !p.has(g.id)).map((g) => {\n const y = (f || []).find((x) => x.oldValue.id === g.annotation.id);\n return y ? {\n selectedBy: g.selectedBy,\n annotation: y.newValue\n } : g;\n });\n e(2, o = m);\n }, i.observe(a, {\n annotations: o.map((u) => u.annotation.id)\n });\n };\n return Ng(() => {\n a && i.unobserve(a);\n }), r.$$set = (h) => {\n \"store\" in h && e(3, i = h.store), \"viewer\" in h && e(0, s = h.viewer), \"provider\" in h && e(1, n = h.provider);\n }, r.$$.update = () => {\n r.$$.dirty & /*provider*/\n 2 && n && n.on(\"selectionChange\", l);\n }, [s, n, o, i];\n}\nclass wE extends oe {\n constructor(t) {\n super(), ne(this, t, bE, xE, Qt, { store: 3, viewer: 0, provider: 1 });\n }\n}\nconst ou = (r, t) => {\n t === \"auto\" ? r.addHandler(\"open\", (e) => {\n const i = r.world.getItemCount();\n r.world.getItemAt(i - 1).addOnceHandler(\"fully-loaded-change\", (n) => {\n const { fullyLoaded: o } = n;\n if (o) {\n const a = r.canvas.querySelector(\"canvas\"), l = Cu(a);\n r.element.setAttribute(\"data-theme\", l);\n }\n });\n }) : r.element.setAttribute(\"data-theme\", t);\n}, Df = (r, t, e) => (i, s = {}) => {\n const n = typeof i == \"string\" ? i : i.id, o = t.getAnnotation(n);\n if (!o)\n return;\n const a = r.container.getBoundingClientRect(), { padding: l } = s;\n let [h, c, u, d] = l ? Array.isArray(l) ? l : [l, l, l, l] : [0, 0, 0, 0];\n h = h / a.height, c = c / a.width, u = u / a.height, d = d / a.width;\n const { minX: f, minY: p, maxX: m, maxY: g } = o.target.selector.geometry.bounds, y = m - f, x = g - p, _ = f - d * y, v = p - h * x, w = y + (c + d) * y, R = x + (h + u) * x, C = r.viewport.imageToViewportRectangle(_, v, w, R);\n r.viewport[e](C, s.immediately);\n}, EE = (r, t) => Df(r, t, \"fitBounds\"), TE = (r, t) => Df(r, t, \"fitBoundsWithConstraints\"), IE = (r, t = {}) => {\n const e = Iu(t, {\n drawingEnabled: !1,\n drawingMode: _u ? \"drag\" : \"click\",\n pointerSelectAction: el.EDIT,\n theme: \"light\"\n }), i = Su(e), { hover: s, selection: n, store: o } = i, a = Zf(o), l = Jf(\n i,\n a,\n e.adapter,\n e.autoSave\n );\n let h = op(), c = e.drawingEnabled, u = e.drawingMode;\n const d = Pu(a, r.element), f = new ww({\n target: r.element,\n props: {\n state: i,\n viewer: r,\n style: e.style,\n filter: void 0\n }\n }), p = new wE({\n target: r.element.querySelector(\".openseadragon-canvas\"),\n props: {\n provider: void 0,\n store: o,\n viewer: r\n }\n }), m = new aE({\n target: r.element.querySelector(\".openseadragon-canvas\"),\n props: {\n drawingEnabled: !!c,\n filter: void 0,\n preferredDrawingMode: u,\n state: i,\n style: e.style,\n user: h,\n viewer: r\n }\n });\n f.$on(\"click\", (A) => {\n const { originalEvent: L, annotation: k } = A.detail;\n k && !(u === \"click\" && c) ? n.clickSelect(k.id, L) : n.isEmpty() || n.clear();\n }), r.element.addEventListener(\"pointerdown\", (A) => {\n if (s.current) {\n const L = o.getAnnotation(s.current);\n l.emit(\"clickAnnotation\", L, A);\n }\n }), ou(r, e.theme);\n const g = tp(i, a, e.adapter), y = () => {\n f.$destroy(), p.$destroy(), m.$destroy(), d.destroy(), a.destroy();\n }, x = EE(r, o), _ = TE(r, o), v = () => h, w = (A, L, k) => Eu(A, L, k), R = (A, L) => bu(A, L), C = (A) => {\n if (!$n(A))\n throw `No drawing tool named ${A}`;\n m.$set({ toolName: A });\n }, b = (A) => {\n c = A, m.$set({ drawingEnabled: c });\n }, T = (A) => {\n f.$set({ filter: A }), m.$set({ filter: A });\n }, I = (A) => {\n f.$set({ style: A }), m.$set({ style: A });\n }, O = (A) => (\n // @ts-ignore\n p.$set({ provider: A })\n ), M = (A) => ou(r, A), E = (A) => {\n h = A, m.$set({ user: A });\n };\n return {\n ...g,\n destroy: y,\n fitBounds: x,\n fitBoundsWithConstraints: _,\n getUser: v,\n listDrawingTools: Gn,\n on: l.on,\n off: l.off,\n registerDrawingTool: w,\n registerShapeEditor: R,\n setDrawingEnabled: b,\n setDrawingTool: C,\n setFilter: T,\n setPresenceProvider: O,\n setStyle: I,\n setTheme: M,\n setUser: E,\n state: i,\n viewer: r\n };\n}, PE = lp, RE = el, ME = Hf, BE = Rg, DE = bt, OE = ym;\nexport {\n RE as PointerSelectAction,\n DE as ShapeType,\n OE as W3CImageFormat,\n ME as createBody,\n BE as createImageAnnotator,\n IE as createOSDAnnotator,\n PE as defaultColorProvider\n};\n//# sourceMappingURL=annotorious-openseadragon.es.js.map\n"],"names":["Ff","Lf","r","to","Il","Lr","i","el","Gt","Xf","Vf","zf","s","Wf","jf","pr","Yf","l","h","f","p","qf","Kf","Zf","g","Jf","y","w","C","R","Qf","tp","ep","rp","ip","sp","np","op","hp","cp","Rl","Ct","Ko","au","Ml","Xe","Nt","Kt","up","dp","hu","fp","pp","mp","Dl","dn","Ue","rt","tt","rl","mt","cu","ye","Ve","Ft","S","yp","fn","_p","as","es","uu","ps","Bi","Je","ii","pn","mi","Ol","vp","Zo","xp","du","Jo","eo","jr","bp","wp","Zs","Or","ke","Ge","ot","pt","Ai","le","re","ie","Ep","ue","de","Tp","bt","il","sl","Qo","Ap","mn","Sp","Cp","Ip","$t","Nl","Nr","ro","$p","Yr","nl","Hp","io","Xp","Vp","zp","Wp","jp","Yp","qp","gu","Pt","Kp","Jp","Qp","T","I","O","M","A","sm","lm","dm","Ul","kl","Vi","xm","Gl","$l","bm","wu","wm","Em","so","_u","Cm","Im","Pm","Rm","Mm","L","k","$","X","F","j","nt","Q","V","_t","Et","N","B","dt","gt","yt","Bm","Dm","Om","vu","xu","bu","Fm","Hl","Lm","Nm","Xl","Hm","Xm","Vm","no","Vl","zl","zm","Wm","jm","Ym","qm","ol","Gn","$n","Eu","vg","Au","xg","Ui","bg","Ts","lo","si","wg","Kr","eh","ao","Ag","Wi","zi","Sg","Eg","Tg","Es","Cg","Su","Pg","Cu","Iu","ih","Pu","$e","ta","Ru","sh","sr","Wt","Qt","Mg","Bg","ea","Mu","Bu","Du","Ou","Fu","Dg","Qe","ct","ht","al","Tt","ll","br","P","Og","Fg","yn","Lg","ls","rs","hl","Hn","Ng","Xn","ni","_n","gi","oh","Ug","ra","kg","Lu","ia","ho","Zr","Gg","$g","Js","Fr","nr","or","st","ut","Si","Zt","jt","Yt","Hg","ne","oe","Xg","zr","Nu","sa","J","Fe","U","yi","Z","z","Ye","_r","He","te","De","cl","he","Ot","Bt","Le","Vg","W","co","ah","lh","hh","uo","ch","Jr","As","We","uh","dh","fh","ph","mh","gh","yh","zg","_h","Wg","qe","Qs","Uu","jg","ku","c","u","d","m","x","_","v","Yg","ms","ul","Vn","Gu","Qg","hs","aa","vh","zn","us","Hr","St","sy","Kg","qg","Zg","Jg","fi","na","$u","cs","ay","Hu","oy","ty","ey","ry","iy","ny","ly","hy","Cs","Ss","oa","cy","uy","vn","Te","Ae","Ni","fy","py","my","gy","Xu","gs","yy","_y","t","e","n","o","xh","vy","xy","fo","by","wy","Ey","Ty","Ay","Sy","bh","Cy","Iy","Py","a","Ry","dl","My","By","Dy","Oy","lt","Fy","Ly","Ny","Uy","Ci","_i","ky","Vu","po","Ur","mo","Gy","Qr","$y","Lt","oi","Hy","kr","Xy","Vy","wh","ys","xn","zy","Wy","Eh","bn","jy","Yy","qy","Ky","Zy","Di","zu","go","Th","fl","Jy","tn","Wu","Ah","Qy","ti","Sh","t0","la","ju","e0","r0","Ch","i0","Ih","Ph","s0","n0","o0","Yu","qu","a0","l0","h0","c0","u0","pl","yo","ml","_o","p0","ca","Ii","ua","Uh","Qu","rd","Oi","Wh","at","fe","Gi","$_","H_","X_","kt","To","V_","Ao","z_","W_","je","Ut","ce","hd","jh","So","j_","Ms","cd","ud","Yh","qh","Kh","os","Y_","q_","K_","Z_","_a","Zh","J_","Co","Io","Jh","va","Ce","Qh","Q_","tv","ai","rn","xt","ev","rv","iv","dd","fd","sv","pd","Tn","tc","ec","xi","gr","nv","Xr","xa","rc","ic","Ie","ar","ov","sc","nc","av","lv","hv","rr","H","ba","oc","q","wa","cv","uv","dv","Po","Ro","Mo","Bo","Do","Oo","ze","Ea","md","xe","ds","Wn","fv","Ta","li","et","Aa","pv","Mt","An","mv","gv","ac","yv","_v","vr","gd","Sn","vv","xv","zt","ft","Bs","it","jn","Yn","Gr","qn","wt","Sr","Cr","Ir","Pr","Sa","yd","Ds","bv","At","Ke","Ca","vl","wv","Ev","lc","Fo","_d","bi","Tv","Av","Sv","vd","ei","Cv","Os","Iv","hc","Pv","Rv","xd","Fs","cc","bd","uc","$i","Mv","Bv","Ls","Ia","hi","Ze","Dv","be","Ne","Ov","Pa","Fv","Lv","Kn","Nv","Uv","ji","me","Rr","kv","Gv","Ra","Yi","Jt","Cn","wd","dc","In","Ma","Ed","ir","Td","xl","fc","Ns","Y","Wr","Ad","$v","Sd","Hv","Us","Lo","Cd","Xv","Vv","Id","No","Pd","pc","Rd","zv","Wv","jv","Yv","Md","Bd","mc","gc","Dd","sn","qv","Od","Fd","Ld","Kv","yc","Nd","Tr","Hi","Ud","Zv","Jv","Qv","t1","e1","r1","kd","i1","s1","n1","o1","ks","Gd","Pn","a1","l1","h1","c1","u1","d1","f1","$d","Ba","p1","m1","qi","nn","Mr","Uo","g1","y1","Hd","Xd","Rn","Vr","ko","Vd","ee","se","zd","Wd","jd","_1","v1","x1","Yd","qd","b1","Kd","Zd","on","Da","bl","Jd","w1","E1","Qd","Ki","T1","pi","Oa","an","Fa","A1","La","Na","tf","Mn","It","S1","C1","I1","ef","Ua","we","Xi","P1","Fi","rf","R1","M1","B1","D1","O1","F1","L1","N1","ka","U1","k1","Ga","G1","$1","H1","X1","V1","z1","W1","j1","_c","Y1","dr","_s","Bn","ge","wi","q1","K1","Go","Z1","J1","Q1","$a","Ha","Xa","vc","tx","ex","rx","Gs","ix","sx","xc","bc","nx","ox","ax","sf","nf","Va","lx","of","wc","hx","Li","Er","ve","za","af","cx","Dn","ux","Dr","dx","Ee","fx","px","mx","gx","yx","_x","vx","xx","bx","wx","Ex","Tx","Ax","Sx","Cx","Ei","Wa","Ix","Ti","lf","Ec","$o","Px","Tc","vs","Rx","Mx","Bx","Zn","Dx","Ox","Fx","Lx","Nx","Ux","kx","Gx","$s","$x","hf","Hx","Xx","Ac","Vx","zx","wl","Wx","jx","Yx","qx","Xt","On","Pe","ci","Sc","Kx","Zx","$r","Ho","Hs","Jx","Cc","Qx","Xs","tb","Vs","eb","rb","ib","sb","nb","ob","ab","lb","hb","cb","ub","db","fb","pb","Ic","mb","pe","ja","Pc","gb","yb","_b","vb","bb","xb","wb","Eb","Tb","Ab","zs","Sb","cf","Zi","Cb","Fn","Rc","uf","Ib","Pb","ae","yr","Ri","Mc","Rb","El","Bc","Ar","Mb","Of","xs","Bb","Dc","Tl","Xo","Oc","Ws","Ln","ri","df","ff","Db","Jn","Al","Vo","Ya","ln","fs","Ob","zo","Fc","pf","mf","Lc","Fb","Lb","Nb","Nc","Uc","Ub","kb","gf","Qn","js","Re","K","ur","Gb","yf","Ji","jo","Wo","$b","xr","Hb","_f","qa","vf","Xb","Vb","zb","Wb","jb","Yb","qb","Kb","xf","bf","Ka","wf","Zb","Jb","Ef","Qb","tw","ew","kc","rw","Ys","Tf","Af","Qi","Gc","iw","Sf","sw","Nn","hn","Za","Ja","Yo","nw","ow","aw","cn","Cf","lw","lr","Me","hr","hw","cw","$c","Hc","Xc","uw","If","b","dw","fw","Qa","ui","qo","qs","di","pw","mw","fr","Un","tl","Sl","gw","yw","_w","Pf","vw","xw","bw","un","E","G","ww","Ks","Ew","Tw","Ht","Aw","Sw","Vc","Cw","Mi","Cl","Pw","Rw","Mw","Yw","qw","Kw","Zw","Kc","Jw","Qw","Mf","tE","eE","Zc","rE","Jc","iE","tu","Qc","sE","nE","oE","D","aE","lE","hE","Bf","cE","eu","uE","dE","fE","pE","mE","gE","ru","iu","vE","su","nu","yE","_E","xE","bE","wE","ou","Df","EE","TE","IE"],"mappings":";AAAA,IAAIA,KAAK,OAAO,gBACZC,KAAK,CAACC,GAAG,GAAG,MAAM,KAAKA,IAAIF,GAAGE,GAAG,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAO,EAAC,CAAE,IAAIA,EAAE,CAAC,IAAI,GAC3GC,KAAK,CAACD,GAAG,GAAG,OAAOD,GAAGC,GAAG,OAAO,KAAK,WAAW,IAAI,KAAK,GAAG,CAAC,GAAG,IAEhEE,KAAK,OAAO,UAAU;AAC1B,SAASC,GAAGH,GAAG,GAAG;AAChB,MAAI,GAAGI;AACP,MAAIJ,MAAM;AACR,WAAO;AACT,MAAIA,KAAK,MAAM,IAAIA,EAAE,iBAAiB,EAAE,aAAa;AACnD,QAAI,MAAM;AACR,aAAOA,EAAE,QAAO,MAAO,EAAE,QAAO;AAClC,QAAI,MAAM;AACR,aAAOA,EAAE,SAAQ,MAAO,EAAE,SAAQ;AACpC,QAAI,MAAM,OAAO;AACf,WAAKI,IAAIJ,EAAE,YAAY,EAAE;AACvB,eAAOI,OAAOD,GAAGH,EAAEI,CAAC,GAAG,EAAEA,CAAC,CAAC;AACzB;AACJ,aAAOA,MAAM;AAAA,IACd;AACD,QAAI,CAAC,KAAK,OAAOJ,KAAK,UAAU;AAC9B,MAAAI,IAAI;AACJ,WAAK,KAAKJ;AACR,YAAIE,GAAG,KAAKF,GAAG,CAAC,KAAK,EAAEI,KAAK,CAACF,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,MAAM,CAACC,GAAGH,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE,iBAAO;AACX,aAAO,OAAO,KAAK,CAAC,EAAE,WAAWI;AAAA,IAClC;AAAA,EACF;AACD,SAAOJ,MAAMA,KAAK,MAAM;AAC1B;AACA,IAAIK,KAAsB,kBAACL,OAAOA,EAAE,OAAO,QAAQA,EAAE,SAAS,UAAUA,EAAE,OAAO,QAAQA,IAAIK,MAAM,CAAA,CAAE;AAQrG,MAAMC,KAAK,CAAA;AACX,SAASN,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,EAAAM,GAAG,MAAMN,IAAI,KAAK,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAI9B,OAAO,SAAS,OAAO,OAAO,cAAc,OAAO,WAAW,KAAK,MAAM;AAgB/E,MAMDO,KAAK,CAACP,GAAG,MAAM;AACjB,QAAM,IAAI,IAAI,IAAIA,EAAE,OAAO,IAAI,CAACI,MAAMA,EAAE,EAAE,CAAC;AAC3C,SAAO,EAAE,OAAO,OAAO,CAACA,MAAM,CAAC,EAAE,IAAIA,EAAE,EAAE,CAAC;AAC5C,GAAGI,KAAK,CAACR,GAAG,MAAM;AAChB,QAAM,IAAI,IAAI,IAAI,EAAE,OAAO,IAAI,CAACI,MAAMA,EAAE,EAAE,CAAC;AAC3C,SAAOJ,EAAE,OAAO,OAAO,CAACI,MAAM,CAAC,EAAE,IAAIA,EAAE,EAAE,CAAC;AAC5C,GAAGK,KAAK,CAACT,GAAG,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM;AACpC,QAAMI,IAAIJ,EAAE,OAAO,KAAK,CAACU,MAAMA,EAAE,OAAO,EAAE,EAAE;AAC5C,SAAO,EAAE,SAAS,GAAG,SAASN,KAAK,CAACD,GAAGC,GAAG,CAAC,IAAIA,IAAI,OAAM;AAC3D,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,EAAC,MAAO,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,SAASA,EAAC,OAAQ,EAAE,SAAS,GAAG,SAASA,EAAG,EAAC,GAAGO,KAAK,CAACX,GAAG,MAAM,CAACG,GAAGH,EAAE,QAAQ,EAAE,MAAM,GAAGY,KAAK,CAACZ,GAAG,MAAM;AACzJ,QAAM,IAAIO,GAAGP,GAAG,CAAC,GAAGI,IAAII,GAAGR,GAAG,CAAC,GAAGU,IAAID,GAAGT,GAAG,CAAC;AAC7C,SAAO;AAAA,IACL,UAAUA;AAAA,IACV,UAAU;AAAA,IACV,eAAe,EAAE,SAAS,IAAI,IAAI;AAAA,IAClC,eAAeI,EAAE,SAAS,IAAIA,IAAI;AAAA,IAClC,eAAeM,EAAE,SAAS,IAAIA,IAAI;AAAA,IAClC,eAAeC,GAAGX,GAAG,CAAC,IAAI,EAAE,WAAWA,EAAE,QAAQ,WAAW,EAAE,OAAM,IAAK;AAAA,EAC7E;AACA;AACA,IAAIa,KAAsB,kBAACb,OAAOA,EAAE,QAAQ,SAASA,EAAE,SAAS,UAAUA,IAAIa,MAAM,CAAE,CAAA;AACtF,MAAMC,KAAK,CAACd,GAAG,MAAM;AACnB,QAAM,IAAI,IAAI,KAAKA,EAAE,WAAW,CAAA,GAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAGI,IAAI,IAAI,KAAKJ,EAAE,WAAW,CAAA,GAAI,IAAI,CAAC,EAAE,UAAU,EAAC,MAAO,EAAE,EAAE,CAAC,GAAGU,IAAI,IAAI,KAAK,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,WAAW,IAAI,IAAI,CAAC,EAAE,UAAU,EAAG,MAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,WAAW,CAAE,GAAE,OAAO,CAAC,EAAE,UAAU,EAAC,MAAO,EAAE,IAAI,EAAE,EAAE,KAAKN,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,EAAG,MAAK,EAAE,EAAE,CAAC,GAAGW,IAAI;AAAA,IAChZ,IAAIf,EAAE,WAAW,CAAE,GAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,KAAK,CAAC,EAAE,UAAU,EAAC,MAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,CAAC;AAAA,IACzI,GAAG,EAAE,WAAW,CAAE;AAAA,EACnB,GAAEgB,IAAI;AAAA,IACL,IAAIhB,EAAE,WAAW,CAAA,GAAI,OAAO,CAAC,MAAM,CAACU,EAAE,IAAI,EAAE,EAAE,CAAC;AAAA,IAC/C,IAAI,EAAE,WAAW,CAAA,GAAI,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;AAAA,EAChD,GAAE,IAAI;AAAA,IACL,IAAIV,EAAE,WAAW,CAAA,GAAI,OAAO,CAAC,EAAE,UAAU,EAAC,MAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM;AACxE,YAAM,EAAE,UAAU,GAAG,UAAUiB,EAAC,IAAK;AACrC,UAAI,EAAE,IAAIA,EAAE,EAAE,GAAG;AACf,cAAMC,IAAI,EAAE,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,OAAOD,EAAE,EAAE,EAAE;AACxD,eAAOL,GAAG,GAAGM,CAAC;AAAA,MACf;AACC,eAAO;AAAA,IACf,CAAK;AAAA,IACD,IAAI,EAAE,WAAW,CAAA,GAAI,OAAO,CAAC,EAAE,UAAU,EAAC,MAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;AAAA,EACjE;AACE,SAAO,EAAE,SAASH,GAAG,SAASC,GAAG,SAAS;AAC5C;AACA,IAAIG,KAAK,OAAO;AAAA,EACd,KAAKnB,MAAM,GAAG;AACZ,aAAS,IAAI,GAAGI,IAAI,KAAK,OAAOJ,CAAC,KAAK,CAAA,GAAIU,IAAIN,EAAE,QAAQ,IAAIM,GAAG;AAC7D,MAAAN,EAAE,CAAC,EAAE,GAAG,CAAC;AAAA,EACZ;AAAA,EACD,QAAQ,CAAE;AAAA,EACV,GAAGJ,GAAG,GAAG;AACP,QAAI;AACJ,aAAS,IAAI,KAAK,QAAQA,CAAC,MAAM,EAAEA,CAAC,IAAI,CAAE,IAAG,KAAK,CAAC,GAAG,MAAM;AAC1D,UAAII;AACJ,WAAK,OAAOJ,CAAC,KAAKI,IAAI,KAAK,OAAOJ,CAAC,MAAM,OAAO,SAASI,EAAE,OAAO,CAACM,MAAM,MAAMA,CAAC;AAAA,IACtF;AAAA,EACG;AACH;AACA,MAAMU,KAAK,KAAKC,KAAK,CAACrB,MAAM;AAC1B,QAAM,IAAImB,MAAM,IAAI,CAAA;AACpB,MAAIf,IAAI,IAAIM,IAAI,IAAI,IAAI;AACxB,QAAM,IAAI,CAACO,MAAM;AACf,QAAI,CAACP,GAAG;AACN,YAAM,EAAE,SAASQ,EAAG,IAAGD,GAAG,IAAI,YAAY;AAC1C,UAAI,IAAI,IAAIG;AACV,UAAE,OAAOhB,IAAI,CAAC,GAAG,EAAE,KAAKc,CAAC,GAAGd,IAAI,EAAE,SAAS;AAAA,WACxC;AACH,cAAMkB,IAAI,EAAE,SAAS;AACrB,UAAEA,CAAC,IAAIR,GAAG,EAAEQ,CAAC,GAAGJ,CAAC;AAAA,MAClB;AACD,UAAI;AAAA,IACL;AACD,IAAAR,IAAI;AAAA,EACR;AACE,EAAAV,EAAE,QAAQ,GAAG,EAAE,QAAQa,GAAG,MAAK,CAAE;AACjC,QAAM,IAAI,CAACI,MAAMA,KAAKA,EAAE,SAAS,KAAKjB,EAAE,qBAAqBiB,CAAC,GAAGF,IAAI,CAACE,MAAMA,KAAKA,EAAE,SAAS,KAAKjB,EAAE,kBAAkBiB,GAAG,EAAE,GAAGD,IAAI,CAACC,MAAMA,KAAKA,EAAE,SAAS,KAAKjB,EAAE,qBAAqBiB,EAAE,IAAI,CAAC,EAAE,UAAUC,EAAG,MAAKA,CAAC,CAAC,GAAG,IAAI,CAACD,MAAMA,KAAKA,EAAE,SAAS,KAAKjB,EAAE,qBAAqBiB,EAAE,IAAI,CAAC,EAAE,UAAUC,EAAC,MAAOA,CAAC,CAAC,GAAG,IAAI,CAACD,MAAMA,KAAKA,EAAE,SAAS,KAAKjB,EAAE,kBAAkBiB,GAAG,EAAE,GAAG,IAAI,CAACA,MAAMA,KAAKA,EAAE,SAAS,KAAKjB,EAAE,qBAAqBiB,CAAC;AAC/Z,SAAO;AAAA,IACL,SAAS,MAAM,EAAE,SAAS,IAAIb;AAAA,IAC9B,SAAS,MAAMA,IAAI;AAAA,IACnB,SAAS,MAAMJ,EAAE,UAAU,CAAC;AAAA,IAC5B,IAAI,CAACiB,GAAGC,MAAM,EAAE,GAAGD,GAAGC,CAAC;AAAA,IACvB,MAAM,MAAM;AACV,UAAI,EAAE,SAAS,IAAId,GAAG;AACpB,QAAAM,IAAI;AACJ,cAAM,EAAE,SAASO,GAAG,SAASC,GAAG,SAAS,MAAM,EAAEd,IAAI,CAAC;AACtD,QAAAW,EAAEE,CAAC,GAAG,EAAEC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,QAAQ,EAAEd,IAAI,CAAC,CAAC,GAAGA,KAAK;AAAA,MAClD;AAAA,IACF;AAAA,IACD,MAAM,MAAM;AACV,UAAIA,IAAI,IAAI;AACV,QAAAM,IAAI;AACJ,cAAM,EAAE,SAASO,GAAG,SAASC,GAAG,SAAS,EAAG,IAAG,EAAEd,CAAC;AAClD,UAAEa,CAAC,GAAGD,EAAEE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,QAAQ,EAAEd,CAAC,CAAC,GAAGA,KAAK;AAAA,MAC9C;AAAA,IACF;AAAA,EACL;AACA,GAAGmB,KAAK,CAACvB,GAAG,GAAG,GAAGI,MAAM;AACtB,QAAM,EAAE,OAAOM,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,EAAC,IAAKV,GAAGe,IAAoB,oBAAI,IAAG;AACxF,MAAIC,IAAI,CAAA,GAAI,GAAG;AACf,QAAM,IAAI,CAACQ,GAAG,MAAM;AAClB,IAAAT,EAAE,IAAIS,CAAC,IAAIT,EAAE,IAAIS,CAAC,EAAE,KAAK,CAAC,IAAIT,EAAE,IAAIS,GAAG,CAAC,CAAC,CAAC;AAAA,EAC9C,GAAKP,IAAI,CAACO,GAAG,MAAM;AACf,UAAM,IAAIT,EAAE,IAAIS,CAAC;AACjB,SAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC;AAAA,EAClD,GAAEN,IAAI,CAACM,GAAG,GAAG,MAAM;AAClB,IAAAT,EAAE,IAAIS,CAAC,KAAK,WAAW,MAAM;AAC3B,MAAAT,EAAE,IAAIS,CAAC,EAAE,QAAQ,CAAC,MAAM;AACtB,YAAI,GAAG;AACL,gBAAMC,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAACC,MAAM,EAAE,UAAUA,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,GAAGC,IAAI,IAAI,aAAa,eAAe,IAAI,EAAE,UAAU,CAAC,IAAI;AACrI,YAAEF,GAAGE,CAAC;AAAA,QACP;AACC,YAAE,GAAG,CAAC;AAAA,MAChB,CAAO;AAAA,IACF,GAAE,CAAC;AAAA,EACL,GAAE,IAAI,MAAM;AACX,UAAM,EAAE,UAAUH,EAAG,IAAG,GAAG,KAAKA,KAAK,CAAE,GAAE,IAAI,CAAC,EAAE,IAAI,EAAG,MAAKd,EAAE,cAAc,CAAC,CAAC;AAC9E,MAAE,QAAQ,CAAC,MAAM;AACf,YAAM,IAAIM,EAAE,KAAK,CAACS,MAAMA,EAAE,OAAO,EAAE,EAAE;AACrC,OAAC,CAAC,KAAK,CAACtB,GAAG,GAAG,CAAC,MAAMe,EAAE,oBAAoB,GAAG,CAAC;AAAA,IACrD,CAAK,GAAGF,IAAIA,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAIS,EAAC,MAAOA,MAAM,EAAE,EAAE,KAAK,CAAC;AAAA,EAC/D;AACE,IAAE,UAAU,CAAC,EAAE,UAAUD,EAAC,MAAO;AAC/B,QAAI,EAAER,EAAE,WAAW,KAAKQ,EAAE,WAAW,IAAI;AACvC,UAAIR,EAAE,WAAW,KAAKQ,EAAE,SAAS;AAC/B,QAAAR,IAAIQ,EAAE,IAAI,CAAC,EAAE,IAAI,EAAG,MAAKd,EAAE,cAAc,CAAC,CAAC;AAAA,eACpCM,EAAE,SAAS,KAAKQ,EAAE,WAAW;AACpC,QAAAR,EAAE,QAAQ,CAAC,MAAM;AACf,gBAAM,IAAIN,EAAE,cAAc,EAAE,EAAE;AAC9B,eAAK,CAACP,GAAG,GAAG,CAAC,KAAKe,EAAE,oBAAoB,GAAG,CAAC;AAAA,QACtD,CAAS,GAAGF,IAAI;WACL;AACH,cAAM,IAAI,IAAI,IAAIA,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,IAAIQ,EAAE,IAAI,CAAC,EAAE,IAAI,EAAC,MAAO,CAAC,CAAC;AAC1E,QAAAR,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM;AAC3C,gBAAMS,IAAIf,EAAE,cAAc,EAAE,EAAE;AAC9B,UAAAe,KAAK,CAACtB,GAAGsB,GAAG,CAAC,KAAKP,EAAE,oBAAoBO,GAAG,CAAC;AAAA,QAC7C,CAAA,GAAGT,IAAI;AAAA;AAAA,UAEN,GAAGA,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;AAAA;AAAA,UAE9B,GAAGQ,EAAE,OAAO,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAG,MAAKd,EAAE,cAAc,CAAC,CAAC;AAAA,QACrF;AAAA,MACO;AACD,MAAAQ,EAAE,oBAAoBF,CAAC;AAAA,IACxB;AAAA,EACF,CAAA,GAAG,EAAE,UAAU,CAACQ,MAAM;AACrB,KAAC,KAAKA,IAAIN,EAAE,wBAAwBR,EAAE,cAAcc,CAAC,CAAC,IAAI,KAAK,CAACA,IAAIN,EAAE,wBAAwBR,EAAE,cAAc,CAAC,CAAC,IAAI,KAAKc,MAAMN,EAAE,wBAAwBR,EAAE,cAAc,CAAC,CAAC,GAAGQ,EAAE,wBAAwBR,EAAE,cAAcc,CAAC,CAAC,IAAI,IAAIA;AAAA,EACtO,CAAG,GAAG,KAAK,QAAQ,EAAE,UAAU,CAACA,MAAMN,EAAE,qBAAqBM,EAAE,IAAI,CAAC,MAAMd,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,GAAGA,EAAE,QAAQ,CAACc,MAAM;AAC9G,IAAApB,MAAM,KAAK,aAAa,CAAC,GAAG,IAAI,WAAW,GAAG,GAAG;AACjD,UAAM,EAAE,SAAS,GAAG,SAAS,EAAG,IAAGoB,EAAE;AACrC,KAAC,KAAK,CAAA,GAAI,QAAQ,CAAC,MAAMN,EAAE,oBAAoB,CAAC,CAAC,IAAI,KAAK,CAAA,GAAI,QAAQ,CAAC,MAAMA,EAAE,oBAAoB,CAAC,CAAC,IAAIM,EAAE,QAAQ,WAAW,CAAA,GAAI,OAAO,CAAC,MAAM;AAAA,MAC9I,GAAG,EAAE,iBAAiB,CAAE;AAAA,MACxB,GAAG,EAAE,iBAAiB,CAAE;AAAA,MACxB,GAAG,EAAE,iBAAiB,CAAE;AAAA,IAC9B,EAAM,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAUC,QAAQ;AACtD,YAAME,IAAIX,EAAE,KAAK,CAACU,MAAMA,EAAE,OAAO,EAAE,EAAE,KAAK;AAC1C,MAAAV,IAAIA,EAAE,IAAI,CAACU,MAAMA,EAAE,OAAO,EAAE,KAAKD,IAAIC,CAAC,GAAGR,EAAE,oBAAoBO,GAAGE,CAAC;AAAA,IACzE,CAAK;AAAA,EACL,GAAK,EAAE,QAAQd,GAAG,MAAK,CAAE,GAAGH,EAAE,QAAQ,CAACc,MAAM;AACzC,QAAIR,GAAG;AACL,YAAM,IAAI,IAAI,IAAIA,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,KAAKQ,EAAE,QAAQ,WAAW,CAAE,GAAE,OAAO,CAAC,EAAE,UAAU,EAAC,MAAO,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,EAAG,MAAK,CAAC;AACxI,QAAE,SAAS,MAAMR,IAAIA,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAACW,MAAMA,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC;AAAA,IACpE;AAAA,EACF,GAAE,EAAE,QAAQd,GAAG,OAAQ,CAAA;AACxB,QAAMS,IAAI,CAACE,MAAM,CAAC,MAAM;AACtB,UAAM,EAAE,SAAS,EAAG,IAAG;AACvB,IAAAA,KAAK,KAAK,CAAE,GAAE,QAAQ,CAAC,MAAMN,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,KAAK,CAAA,GAAI,QAAQ,CAAC,MAAMA,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,CAAC;AAAA,EACxJ;AACE,SAAO,EAAE,GAAG,QAAQI,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQA,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,KAAKL,GAAG,MAAMC;AAC1E,GAAGU,KAAK,CAAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAGI,MAAM;AACvC,QAAM,EAAE,QAAQM,GAAG,OAAO,EAAC,IAAKV,EAAE,MAAMI,CAAC;AACzC,SAAO,IAAI;AAAA,IACT,QAAQ,EAAE;AAAA,IACV,QAAQ,CAAC,GAAG,EAAE,QAAQA,CAAC;AAAA,EACxB,IAAGM,IAAI;AAAA,IACN,QAAQ,CAAC,GAAG,EAAE,QAAQA,CAAC;AAAA,IACvB,QAAQ,EAAE;AAAA,EACd,IAAM;AAAA,IACF,GAAG;AAAA,EACP;AACA,GAAG,EAAE,QAAQ,IAAI,QAAQ,CAAE,EAAA,CAAE,GAAGmB,KAAK,CAAC7B,GAAG,GAAG,MAAM;AAChD,QAAM,EAAE,OAAOI,GAAG,WAAWM,EAAC,IAAKV,GAAG,IAAI,CAACsB,MAAM;AAC/C,QAAI,GAAG;AACL,YAAM,EAAE,QAAQE,GAAG,OAAO,EAAC,IAAK,EAAE,MAAMF,CAAC;AACzC,MAAAE,IAAIpB,EAAE,cAAcoB,GAAGX,GAAG,MAAM,IAAI,QAAQ,MAAM,CAAC;AAAA,IACpD;AACC,MAAAT,EAAE,cAAckB,GAAGT,GAAG,MAAM;AAAA,EAC/B,GAAE,IAAI,MAAMH,EAAE,SAAS,IAAI,MAAMN,EAAE,MAAK,GAAIW,IAAI,CAACO,MAAM;AACtD,UAAME,IAAIpB,EAAE,cAAckB,CAAC;AAC3B,WAAO,KAAKE,IAAI,EAAE,UAAUA,CAAC,IAAIA;AAAA,EAClC,GAAER,IAAI,MAAM,IAAIZ,EAAE,IAAG,EAAG,IAAI,EAAE,SAAS,IAAIA,EAAE,IAAK,GAAE,IAAI,MAAM;AAC7D,QAAIkB;AACJ,UAAME,OAAOF,IAAIZ,EAAE,aAAa,OAAO,SAASY,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAA,GAAI,IAAI,CAAC,MAAMlB,EAAE,cAAc,CAAC,CAAC,EAAE,OAAO,OAAO;AACxH,WAAO,IAAIoB,EAAE,IAAI,EAAE,SAAS,IAAIA;AAAA,EACjC,GAAE,IAAI,CAACF,GAAGE,IAAI,OAAO,MAAMF,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,KAAM,CAAA,EAAE,KAAK,CAAC,OAAOL,EAAE,GAAGO,CAAC,GAAG,EAAE,GAAG,IAAI,CAACF,MAAM;AACzF,QAAI,OAAOA,KAAK,UAAU;AACxB,YAAME,IAAIpB,EAAE,cAAckB,CAAC;AAC3B,UAAIlB,EAAE,iBAAiBkB,CAAC,GAAGE;AACzB,eAAO,IAAI,EAAE,UAAUA,CAAC,IAAIA;AAAA,IACpC,OAAW;AACL,YAAMA,IAAI,IAAI,EAAE,MAAMF,CAAC,EAAE,SAASA;AAClC,UAAIE;AACF,eAAOpB,EAAE,iBAAiBoB,CAAC,GAAGF;AAAA,IACjC;AAAA,EACF,GAAEL,IAAI,CAACK,GAAGE,IAAI,OAAO;AACpB,QAAI,GAAG;AACL,YAAM,EAAE,QAAQ,GAAG,QAAQ,EAAG,IAAGI,GAAG,CAAC,EAAEN,CAAC;AACxC,QAAE,SAAS,KAAK,QAAQ,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC,GAAGlB,EAAE,kBAAkB,GAAGoB,GAAGX,GAAG,MAAM;AAAA,IAClH;AACC,MAAAT,EAAE,kBAAkBkB,GAAGE,GAAGX,GAAG,MAAM;AAAA,EACzC,GAAKK,IAAI,CAACI,MAAM;AACZ,IAAAA,IAAIZ,EAAE,YAAYY,CAAC,IAAIZ,EAAE;EAC7B,GAAK,IAAI,CAACY,MAAM;AACZ,QAAI,GAAG;AACL,YAAME,IAAI,EAAE,MAAMF,CAAC,EAAE,QAAQ,IAAI,EAAE,UAAUlB,EAAE,cAAcoB,EAAE,EAAE,CAAC;AAClE,aAAOpB,EAAE,iBAAiBoB,CAAC,GAAG;AAAA,IACpC,OAAW;AACL,YAAMA,IAAIpB,EAAE,cAAckB,EAAE,EAAE;AAC9B,aAAOlB,EAAE,iBAAiBkB,CAAC,GAAGE;AAAA,IAC/B;AAAA,EACL;AACE,SAAO;AAAA,IACL,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,SAAS,EAAE;AAAA,IACX,SAAS,EAAE;AAAA,IACX,kBAAkB;AAAA,IAClB,mBAAmBT;AAAA,IACnB,gBAAgBC;AAAA,IAChB,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,MAAM,EAAE;AAAA,IACR,kBAAkB;AAAA,IAClB,gBAAgBC;AAAA,IAChB,aAAaC;AAAA,IACb,MAAM,EAAE;AAAA,IACR,kBAAkB;AAAA,EACtB;AACA,GAAGY,KAAK;AACR,IAAIC,KAAK,CAAC/B,MAAM,OAAO,gBAAgB,IAAI,WAAWA,CAAC,CAAC,GAAGgC,KAAK,CAAChC,GAAG,GAAG,MAAM;AAC3E,MAAII,KAAK,KAAK,KAAK,IAAIJ,EAAE,SAAS,CAAC,IAAI,KAAK,OAAO,GAAGU,IAAI,CAAC,EAAE,MAAMN,IAAI,IAAIJ,EAAE;AAC7E,SAAO,CAAC,IAAI,MAAM;AAChB,QAAI,IAAI;AACR,eAAW;AACT,UAAI,IAAI,EAAEU,CAAC,GAAGK,IAAIL;AAClB,aAAOK;AACL,YAAI,KAAKf,EAAE,EAAEe,CAAC,IAAIX,CAAC,KAAK,IAAI,EAAE,WAAW;AACvC,iBAAO;AAAA,IACZ;AAAA,EACL;AACA,GAAG6B,KAAK,CAACjC,GAAG,IAAI,OAAOgC,GAAGhC,GAAG,GAAG+B,EAAE,GAAGG,KAAK,CAAClC,IAAI,OAAO;AACpD,MAAI,IAAI,IAAI,IAAI,OAAO,gBAAgB,IAAI,WAAWA,CAAC,CAAC;AACxD,SAAOA;AACL,SAAK8B,GAAG,EAAE9B,CAAC,IAAI,EAAE;AACnB,SAAO;AACT;AACK,MAACmC,KAAK,OAAO,EAAE,SAAS,IAAI,IAAIF,GAAG,mEAAmE,EAAE,EAAG,EAAA;AA0BhHC;AACA,IAAIE,KAAK,OAAO,gBAAgBC,KAAK,CAACrC,GAAG,GAAG,MAAM,KAAKA,IAAIoC,GAAGpC,GAAG,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAO,EAAG,CAAA,IAAIA,EAAE,CAAC,IAAI,GAAGsC,KAAK,CAACtC,GAAG,GAAG,OAAOqC,GAAGrC,GAAG,OAAO,KAAK,WAAW,IAAI,KAAK,GAAG,CAAC,GAAG;AAC9M,SAASuC,KAAK;AACd;AACA,SAASC,GAAGxC,GAAG,GAAG;AAChB,aAAW,KAAK;AACd,IAAAA,EAAE,CAAC,IAAI,EAAE,CAAC;AACZ;AAAA;AAAA,IAEEA;AAAA;AAEJ;AACA,SAASyC,GAAGzC,GAAG;AACb,SAAOA,EAAC;AACV;AACA,SAAS0C,KAAK;AACZ,SAAuB,uBAAO,OAAO,IAAI;AAC3C;AACA,SAASC,GAAG3C,GAAG;AACb,EAAAA,EAAE,QAAQyC,EAAE;AACd;AACA,SAASG,GAAG5C,GAAG;AACb,SAAO,OAAOA,KAAK;AACrB;AACA,SAAS6C,GAAG7C,GAAG,GAAG;AAChB,SAAOA,KAAKA,IAAI,KAAK,IAAIA,MAAM,KAAKA,KAAK,OAAOA,KAAK,YAAY,OAAOA,KAAK;AAC/E;AACA,SAAS8C,GAAG9C,GAAG;AACb,SAAO,OAAO,KAAKA,CAAC,EAAE,WAAW;AACnC;AAaA,SAAS+C,GAAG/C,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIJ,GAAG;AACL,UAAMU,IAAIsC,GAAGhD,GAAG,GAAG,GAAGI,CAAC;AACvB,WAAOJ,EAAE,CAAC,EAAEU,CAAC;AAAA,EACd;AACH;AACA,SAASsC,GAAGhD,GAAG,GAAG,GAAGI,GAAG;AACtB,SAAOJ,EAAE,CAAC,KAAKI,IAAIoC,GAAG,EAAE,IAAI,MAAK,GAAIxC,EAAE,CAAC,EAAEI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;AACvD;AACA,SAAS6C,GAAGjD,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIJ,EAAE,CAAC,KAAKI,GAAG;AACb,UAAMM,IAAIV,EAAE,CAAC,EAAEI,EAAE,CAAC,CAAC;AACnB,QAAI,EAAE,UAAU;AACd,aAAOM;AACT,QAAI,OAAOA,KAAK,UAAU;AACxB,YAAM,IAAI,CAAA,GAAI,IAAI,KAAK,IAAI,EAAE,MAAM,QAAQA,EAAE,MAAM;AACnD,eAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAIA,EAAE,CAAC;AACzB,aAAO;AAAA,IACR;AACD,WAAO,EAAE,QAAQA;AAAA,EAClB;AACD,SAAO,EAAE;AACX;AACA,SAASwC,GAAGlD,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG;AAC5B,MAAIA,GAAG;AACL,UAAM,IAAIsC,GAAG,GAAG,GAAG5C,GAAG,CAAC;AACvB,IAAAJ,EAAE,EAAE,GAAGU,CAAC;AAAA,EACT;AACH;AACA,SAASyC,GAAGnD,GAAG;AACb,MAAIA,EAAE,IAAI,SAAS,IAAI;AACrB,UAAM,IAAI,CAAA,GAAI,IAAIA,EAAE,IAAI,SAAS;AACjC,aAASI,IAAI,GAAGA,IAAI,GAAGA;AACrB,QAAEA,CAAC,IAAI;AACT,WAAO;AAAA,EACR;AACD,SAAO;AACT;AACA,SAASgD,GAAGpD,GAAG;AACb,QAAM,IAAI,CAAA;AACV,aAAW,KAAKA;AACd,MAAE,CAAC,MAAM,QAAQ,EAAE,CAAC,IAAIA,EAAE,CAAC;AAC7B,SAAO;AACT;AACA,SAASqD,GAAGrD,GAAG;AACb,SAAOA,KAAK;AACd;AAKA,SAASsD,GAAGtD,GAAG,GAAG;AAChB,EAAAA,EAAE,YAAY,CAAC;AACjB;AACA,SAASuD,GAAGvD,GAAG,GAAG,GAAG;AACnB,EAAAA,EAAE,aAAa,GAAG,KAAK,IAAI;AAC7B;AACA,SAASwD,GAAGxD,GAAG;AACb,EAAAA,EAAE,cAAcA,EAAE,WAAW,YAAYA,CAAC;AAC5C;AACA,SAASyD,GAAGzD,GAAG,GAAG;AAChB,WAAS,IAAI,GAAG,IAAIA,EAAE,QAAQ,KAAK;AACjC,IAAAA,EAAE,CAAC,KAAKA,EAAE,CAAC,EAAE,EAAE,CAAC;AACpB;AACA,SAAS0D,GAAG1D,GAAG;AACb,SAAO,SAAS,gBAAgB,8BAA8BA,CAAC;AACjE;AACA,SAAS2D,GAAG3D,GAAG;AACb,SAAO,SAAS,eAAeA,CAAC;AAClC;AACA,SAAS4D,KAAK;AACZ,SAAOD,GAAG,GAAG;AACf;AACA,SAASE,KAAK;AACZ,SAAOF,GAAG,EAAE;AACd;AACA,SAASG,GAAG9D,GAAG,GAAG,GAAGI,GAAG;AACtB,SAAOJ,EAAE,iBAAiB,GAAG,GAAGI,CAAC,GAAG,MAAMJ,EAAE,oBAAoB,GAAG,GAAGI,CAAC;AACzE;AACA,SAAS2D,EAAE/D,GAAG,GAAG,GAAG;AAClB,OAAK,OAAOA,EAAE,gBAAgB,CAAC,IAAIA,EAAE,aAAa,CAAC,MAAM,KAAKA,EAAE,aAAa,GAAG,CAAC;AACnF;AACA,SAASgE,GAAGhE,GAAG;AACb,SAAO,MAAM,KAAKA,EAAE,UAAU;AAChC;AACA,SAASiE,GAAGjE,GAAG,GAAG,GAAG;AACnB,EAAAA,EAAE,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC;AAC3B;AACA,SAASkE,GAAGlE,GAAG,GAAG,EAAE,SAAS,IAAI,IAAI,YAAYI,IAAI,GAAE,IAAK,CAAA,GAAI;AAC9D,SAAO,IAAI,YAAYJ,GAAG,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAYI,EAAC,CAAE;AACpE;AACA,IAAI+D;AACJ,SAASC,GAAGpE,GAAG;AACb,EAAAmE,KAAKnE;AACP;AACA,SAASqE,KAAK;AACZ,MAAI,CAACF;AACH,UAAM,IAAI,MAAM,kDAAkD;AACpE,SAAOA;AACT;AACA,SAASG,GAAGtE,GAAG;AACb,EAAAqE,GAAI,EAAC,GAAG,SAAS,KAAKrE,CAAC;AACzB;AACA,SAASuE,KAAK;AACZ,QAAMvE,IAAIqE;AACV,SAAO,CAAC,GAAG,GAAG,EAAE,YAAYjE,IAAI,GAAI,IAAG,OAAO;AAC5C,UAAMM,IAAIV,EAAE,GAAG,UAAU,CAAC;AAC1B,QAAIU,GAAG;AACL,YAAM,IAAIwD;AAAA;AAAA,QAER;AAAA,QACA;AAAA,QACA,EAAE,YAAY9D,EAAG;AAAA,MACzB;AACM,aAAOM,EAAE,MAAK,EAAG,QAAQ,CAAC,MAAM;AAC9B,UAAE,KAAKV,GAAG,CAAC;AAAA,MACnB,CAAO,GAAG,CAAC,EAAE;AAAA,IACR;AACD,WAAO;AAAA,EACX;AACA;AACA,SAASwE,GAAGxE,GAAG,GAAG;AAChB,QAAM,IAAIA,EAAE,GAAG,UAAU,EAAE,IAAI;AAC/B,OAAK,EAAE,MAAO,EAAC,QAAQ,CAACI,MAAMA,EAAE,KAAK,MAAM,CAAC,CAAC;AAC/C;AACA,MAAMqE,KAAK,CAAA,GAAIC,KAAK;AACpB,IAAIC,KAAK,CAAA;AACT,MAAMC,KAAK,CAAA,GAAIC,KAAqB,wBAAQ,QAAO;AACnD,IAAIC,KAAK;AACT,SAASC,KAAK;AACZ,EAAAD,OAAOA,KAAK,IAAID,GAAG,KAAKG,EAAE;AAC5B;AACA,SAASC,GAAGjF,GAAG;AACb,EAAA2E,GAAG,KAAK3E,CAAC;AACX;AACA,MAAMkF,KAAqB,oBAAI;AAC/B,IAAIC,KAAK;AACT,SAASH,KAAK;AACZ,MAAIG,OAAO;AACT;AACF,QAAMnF,IAAImE;AACV,KAAG;AACD,QAAI;AACF,aAAOgB,KAAKV,GAAG,UAAU;AACvB,cAAM,IAAIA,GAAGU,EAAE;AACf,QAAAA,MAAMf,GAAG,CAAC,GAAGgB,GAAG,EAAE,EAAE;AAAA,MACrB;AAAA,IACF,SAAQ,GAAG;AACV,YAAMX,GAAG,SAAS,GAAGU,KAAK,GAAG;AAAA,IAC9B;AACD,SAAKf,GAAG,IAAI,GAAGK,GAAG,SAAS,GAAGU,KAAK,GAAGT,GAAG;AACvC,MAAAA,GAAG,IAAG;AACR,aAAS,IAAI,GAAG,IAAIC,GAAG,QAAQ,KAAK,GAAG;AACrC,YAAM,IAAIA,GAAG,CAAC;AACd,MAAAO,GAAG,IAAI,CAAC,MAAMA,GAAG,IAAI,CAAC,GAAG,EAAC;AAAA,IAC3B;AACD,IAAAP,GAAG,SAAS;AAAA,EAChB,SAAWF,GAAG;AACZ,SAAOG,GAAG;AACR,IAAAA,GAAG,IAAG;AACR,EAAAE,KAAK,IAAII,GAAG,MAAK,GAAId,GAAGpE,CAAC;AAC3B;AACA,SAASoF,GAAGpF,GAAG;AACb,MAAIA,EAAE,aAAa,MAAM;AACvB,IAAAA,EAAE,OAAQ,GAAE2C,GAAG3C,EAAE,aAAa;AAC9B,UAAM,IAAIA,EAAE;AACZ,IAAAA,EAAE,QAAQ,CAAC,EAAE,GAAGA,EAAE,YAAYA,EAAE,SAAS,EAAEA,EAAE,KAAK,CAAC,GAAGA,EAAE,aAAa,QAAQiF,EAAE;AAAA,EAChF;AACH;AACA,SAASI,GAAGrF,GAAG;AACb,QAAM,IAAI,CAAA,GAAI,IAAI;AAClB,EAAA2E,GAAG,QAAQ,CAACvE,MAAMJ,EAAE,QAAQI,CAAC,MAAM,KAAK,EAAE,KAAKA,CAAC,IAAI,EAAE,KAAKA,CAAC,CAAC,GAAG,EAAE,QAAQ,CAACA,MAAMA,EAAC,CAAE,GAAGuE,KAAK;AAC9F;AACA,MAAMW,KAAqB,oBAAI;AAC/B,IAAIC;AACJ,SAASC,KAAK;AACZ,EAAAD,KAAK;AAAA,IACH,GAAG;AAAA,IACH,GAAG,CAAE;AAAA,IACL,GAAGA;AAAA;AAAA,EAEP;AACA;AACA,SAASE,KAAK;AACZ,EAAAF,GAAG,KAAK5C,GAAG4C,GAAG,CAAC,GAAGA,KAAKA,GAAG;AAC5B;AACA,SAASG,GAAG1F,GAAG,GAAG;AAChB,EAAAA,KAAKA,EAAE,MAAMsF,GAAG,OAAOtF,CAAC,GAAGA,EAAE,EAAE,CAAC;AAClC;AACA,SAAS2F,GAAG3F,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIJ,KAAKA,EAAE,GAAG;AACZ,QAAIsF,GAAG,IAAItF,CAAC;AACV;AACF,IAAAsF,GAAG,IAAItF,CAAC,GAAGuF,GAAG,EAAE,KAAK,MAAM;AACzB,MAAAD,GAAG,OAAOtF,CAAC,GAAGI,MAAM,KAAKJ,EAAE,EAAE,CAAC,GAAGI,EAAG;AAAA,IACrC,CAAA,GAAGJ,EAAE,EAAE,CAAC;AAAA,EACV;AACC,IAAAI,KAAKA,EAAC;AACV;AACA,SAASwF,GAAG5F,GAAG;AACb,UAAQA,KAAK,OAAO,SAASA,EAAE,YAAY,SAASA,IAAI,MAAM,KAAKA,CAAC;AACtE;AACA,SAAS6F,GAAG7F,GAAG;AACb,EAAAA,KAAKA,EAAE;AACT;AACA,SAAS8F,GAAG9F,GAAG,GAAG,GAAG;AACnB,QAAM,EAAE,UAAUI,GAAG,cAAcM,EAAG,IAAGV,EAAE;AAC3C,EAAAI,KAAKA,EAAE,EAAE,GAAG,CAAC,GAAG6E,GAAG,MAAM;AACvB,UAAM,IAAIjF,EAAE,GAAG,SAAS,IAAIyC,EAAE,EAAE,OAAOG,EAAE;AACzC,IAAA5C,EAAE,GAAG,aAAaA,EAAE,GAAG,WAAW,KAAK,GAAG,CAAC,IAAI2C,GAAG,CAAC,GAAG3C,EAAE,GAAG,WAAW;EACvE,CAAA,GAAGU,EAAE,QAAQuE,EAAE;AAClB;AACA,SAASc,GAAG/F,GAAG,GAAG;AAChB,QAAM,IAAIA,EAAE;AACZ,IAAE,aAAa,SAASqF,GAAG,EAAE,YAAY,GAAG1C,GAAG,EAAE,UAAU,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,MAAM,EAAE,MAAM,CAAE;AAC3I;AACA,SAASqD,GAAGhG,GAAG,GAAG;AAChB,EAAAA,EAAE,GAAG,MAAM,CAAC,MAAM,OAAOyE,GAAG,KAAKzE,CAAC,GAAG+E,GAAI,GAAE/E,EAAE,GAAG,MAAM,KAAK,CAAC,IAAIA,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;AACrG;AACA,SAASiG,GAAGjG,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG,IAAI,MAAM,IAAI,CAAC,EAAE,GAAG;AAChD,QAAMK,IAAIoD;AACV,EAAAC,GAAGpE,CAAC;AACJ,QAAMgB,IAAIhB,EAAE,KAAK;AAAA,IACf,UAAU;AAAA,IACV,KAAK,CAAE;AAAA;AAAA,IAEP,OAAO;AAAA,IACP,QAAQuC;AAAA,IACR,WAAW7B;AAAA,IACX,OAAOgC,GAAI;AAAA;AAAA,IAEX,UAAU,CAAE;AAAA,IACZ,YAAY,CAAE;AAAA,IACd,eAAe,CAAE;AAAA,IACjB,eAAe,CAAE;AAAA,IACjB,cAAc,CAAE;AAAA,IAChB,SAAS,IAAI,IAAI,EAAE,YAAY3B,IAAIA,EAAE,GAAG,UAAU,CAAA,EAAG;AAAA;AAAA,IAErD,WAAW2B,GAAI;AAAA,IACf,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,MAAM,EAAE,UAAU3B,EAAE,GAAG;AAAA,EAC3B;AACE,OAAK,EAAEC,EAAE,IAAI;AACb,MAAI,IAAI;AACR,MAAIA,EAAE,MAAM,IAAI,EAAEhB,GAAG,EAAE,SAAS,CAAE,GAAE,CAAC,GAAG,MAAMiB,MAAM;AAClD,UAAMC,IAAID,EAAE,SAASA,EAAE,CAAC,IAAI;AAC5B,WAAOD,EAAE,OAAON,EAAEM,EAAE,IAAI,CAAC,GAAGA,EAAE,IAAI,CAAC,IAAIE,CAAC,MAAM,CAACF,EAAE,cAAcA,EAAE,MAAM,CAAC,KAAKA,EAAE,MAAM,CAAC,EAAEE,CAAC,GAAG,KAAK8E,GAAGhG,GAAG,CAAC,IAAI;AAAA,EAChH,CAAG,IAAI,CAAA,GAAIgB,EAAE,OAAQ,GAAE,IAAI,IAAI2B,GAAG3B,EAAE,aAAa,GAAGA,EAAE,WAAWZ,IAAIA,EAAEY,EAAE,GAAG,IAAI,IAAI,EAAE,QAAQ;AAC1F,QAAI,EAAE,SAAS;AACb,YAAM,IAAIgD,GAAG,EAAE,MAAM;AACrB,MAAAhD,EAAE,YAAYA,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQwC,EAAE;AAAA,IAC5C;AACC,MAAAxC,EAAE,YAAYA,EAAE,SAAS,EAAC;AAC5B,MAAE,SAAS0E,GAAG1F,EAAE,GAAG,QAAQ,GAAG8F,GAAG9F,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAGgF,GAAE;AAAA,EAC5D;AACD,EAAAZ,GAAGrD,CAAC;AACN;AACA,MAAMmF,GAAG;AAAA,EACP,cAAc;AACZ,IAAA5D,GAAG,MAAM,IAAI,GAAGA,GAAG,MAAM,OAAO;AAAA,EACjC;AAAA;AAAA,EAED,WAAW;AACT,IAAAyD,GAAG,MAAM,CAAC,GAAG,KAAK,WAAWxD;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,GAAG,GAAG;AACR,QAAI,CAACK,GAAG,CAAC;AACP,aAAOL;AACT,UAAMnC,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAE;AAC5D,WAAOA,EAAE,KAAK,CAAC,GAAG,MAAM;AACtB,YAAMM,IAAIN,EAAE,QAAQ,CAAC;AACrB,MAAAM,MAAM,MAAMN,EAAE,OAAOM,GAAG,CAAC;AAAA,IAC/B;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,SAAK,SAAS,CAACoC,GAAG,CAAC,MAAM,KAAK,GAAG,aAAa,IAAI,KAAK,MAAM,CAAC,GAAG,KAAK,GAAG,aAAa;AAAA,EACvF;AACH;AACA,MAAMqD,KAAK;AACX,OAAO,SAAS,QAAQ,OAAO,aAAa,OAAO,WAAW,EAAE,GAAmB,oBAAI,IAAK,EAAA,IAAK,EAAE,IAAIA,EAAE;AACzG,IAAIC,KAAsB,kBAACpG,OAAOA,EAAE,UAAU,WAAWA,EAAE,UAAU,WAAWA,EAAE,YAAY,aAAaA,IAAIoG,MAAM,CAAA,CAAE;AACvH,MAAMC,KAAK,CAAE,GAAEC,KAAK,CAACtG,GAAG,MAAMqG,GAAGrG,CAAC,IAAI,GAAGuG,KAAK,CAACvG,MAAMqG,GAAGrG,EAAE,IAAI,EAAE,KAAKA,CAAC,GAAGwG,KAAK,CAACxG,GAAG,GAAG,MAAMqG,GAAGrG,EAAE,IAAI,EAAE,WAAWA,GAAG,GAAG,CAAC,GAAGyG,KAAK,CAACzG,MAAM;AACrI,MAAI,IAAI,OAAO,IAAI,OAAOI,IAAI,QAAQM,IAAI;AAC1C,SAAOV,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM;AAC3B,QAAI,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,GAAGI,IAAI,KAAK,IAAIA,GAAG,CAAC,GAAGM,IAAI,KAAK,IAAIA,GAAG,CAAC;AAAA,EACjF,CAAG,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAMN,GAAG,MAAMM;AACzC,GAAGgG,KAAK;AAAA,EACN,MAAM,CAAC1G,MAAM,KAAK,KAAKA,EAAE,SAAS,KAAKA,EAAE,SAAS;AAAA,EAClD,YAAY,CAACA,GAAG,GAAG,MAAM;AACvB,UAAM,EAAE,IAAII,GAAG,IAAIM,GAAG,IAAI,GAAG,IAAI,EAAC,IAAKV,EAAE,UAAU,IAAI,GAAGe,IAAI,KAAK,IAAI,CAAC,GAAGC,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,IAAIZ,GAAG,IAAI,IAAIM,GAAG,IAAIK,IAAI,IAAIC,IAAI,GAAGC,IAAID,IAAI,IAAID,IAAI;AACrJ,WAAO,IAAI,KAAK,IAAI,KAAKE,IAAIA,KAAK,IAAI,MAAM;AAAA,EAC7C;AACH;AACAqF,GAAGF,GAAG,SAASM,EAAE;AACjB,MAAMC,KAAK;AAAA,EACT,MAAM,CAAC3G,MAAM;AACX,UAAM,EAAE,QAAQ,MAAMA,EAAE;AACxB,QAAI,IAAI,GAAGI,IAAI,EAAE,SAAS;AAC1B,aAASM,IAAI,GAAGA,IAAI,EAAE,QAAQA;AAC5B,YAAM,EAAEN,CAAC,EAAE,CAAC,IAAI,EAAEM,CAAC,EAAE,CAAC,MAAM,EAAEN,CAAC,EAAE,CAAC,IAAI,EAAEM,CAAC,EAAE,CAAC,IAAIN,IAAIM;AACtD,WAAO,KAAK,IAAI,MAAM,CAAC;AAAA,EACxB;AAAA,EACD,YAAY,CAACV,GAAG,GAAG,MAAM;AACvB,UAAM,EAAE,QAAQI,MAAMJ,EAAE;AACxB,QAAIU,IAAI;AACR,aAAS,IAAI,GAAG,IAAIN,EAAE,SAAS,GAAG,IAAIA,EAAE,QAAQ,IAAI,KAAK;AACvD,YAAM,IAAIA,EAAE,CAAC,EAAE,CAAC,GAAGW,IAAIX,EAAE,CAAC,EAAE,CAAC,GAAGY,IAAIZ,EAAE,CAAC,EAAE,CAAC,GAAG,IAAIA,EAAE,CAAC,EAAE,CAAC;AACvD,MAAAW,IAAI,KAAK,IAAI,KAAK,KAAKC,IAAI,MAAM,IAAID,MAAM,IAAIA,KAAK,MAAML,IAAI,CAACA;AAAA,IAChE;AACD,WAAOA;AAAA,EACR;AACH;AACA4F,GAAGF,GAAG,SAASO,EAAE;AACjB,MAAMC,KAAK;AAAA,EACT,MAAM,CAAC5G,MAAMA,EAAE,SAAS,IAAIA,EAAE,SAAS;AAAA,EACvC,YAAY,CAACA,GAAG,GAAG,MAAM,KAAKA,EAAE,SAAS,KAAK,KAAKA,EAAE,SAAS,IAAIA,EAAE,SAAS,KAAK,KAAKA,EAAE,SAAS,KAAK,KAAKA,EAAE,SAAS,IAAIA,EAAE,SAAS;AACxI;AACAsG,GAAGF,GAAG,WAAWQ,EAAE;AAgGnB,MAAMC,KAAK,CAAA;AACX,SAAS7G,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,EAAA6G,GAAG,MAAM7G,IAAI,KAAK,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAI9B,OAAO,SAAS,OAAO,OAAO,cAAc,OAAO,WAAW,KAAK,MAAM;AAgBpF,IAAI8G,KAAK,OAAO,UAAU;AAC1B,SAASC,GAAG/G,GAAG,GAAG;AAChB,MAAI,GAAGI;AACP,MAAIJ,MAAM;AACR,WAAO;AACT,MAAIA,KAAK,MAAM,IAAIA,EAAE,iBAAiB,EAAE,aAAa;AACnD,QAAI,MAAM;AACR,aAAOA,EAAE,QAAO,MAAO,EAAE,QAAO;AAClC,QAAI,MAAM;AACR,aAAOA,EAAE,SAAQ,MAAO,EAAE,SAAQ;AACpC,QAAI,MAAM,OAAO;AACf,WAAKI,IAAIJ,EAAE,YAAY,EAAE;AACvB,eAAOI,OAAO2G,GAAG/G,EAAEI,CAAC,GAAG,EAAEA,CAAC,CAAC;AACzB;AACJ,aAAOA,MAAM;AAAA,IACd;AACD,QAAI,CAAC,KAAK,OAAOJ,KAAK,UAAU;AAC9B,MAAAI,IAAI;AACJ,WAAK,KAAKJ;AACR,YAAI8G,GAAG,KAAK9G,GAAG,CAAC,KAAK,EAAEI,KAAK,CAAC0G,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,MAAM,CAACC,GAAG/G,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE,iBAAO;AACX,aAAO,OAAO,KAAK,CAAC,EAAE,WAAWI;AAAA,IAClC;AAAA,EACF;AACD,SAAOJ,MAAMA,KAAK,MAAM;AAC1B;AACA,SAASgH,KAAK;AACd;AACA,SAASC,GAAGjH,GAAG,GAAG;AAChB,SAAOA,KAAKA,IAAI,KAAK,IAAIA,MAAM,KAAKA,KAAK,OAAOA,KAAK,YAAY,OAAOA,KAAK;AAC/E;AACA,MAAMkH,KAAK,CAAA;AACX,SAASC,GAAGnH,GAAG,IAAIgH,IAAI;AACrB,MAAI;AACJ,QAAM5G,IAAoB,oBAAI;AAC9B,WAASM,EAAE,GAAG;AACZ,QAAIuG,GAAGjH,GAAG,CAAC,MAAMA,IAAI,GAAG,IAAI;AAC1B,YAAMe,IAAI,CAACmG,GAAG;AACd,iBAAWlG,KAAKZ;AACd,QAAAY,EAAE,CAAC,KAAKkG,GAAG,KAAKlG,GAAGhB,CAAC;AACtB,UAAIe,GAAG;AACL,iBAASC,IAAI,GAAGA,IAAIkG,GAAG,QAAQlG,KAAK;AAClC,UAAAkG,GAAGlG,CAAC,EAAE,CAAC,EAAEkG,GAAGlG,IAAI,CAAC,CAAC;AACpB,QAAAkG,GAAG,SAAS;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACD,WAAS,EAAE,GAAG;AACZ,IAAAxG,EAAE,EAAEV,CAAC,CAAC;AAAA,EACP;AACD,WAAS,EAAE,GAAGe,IAAIiG,IAAI;AACpB,UAAMhG,IAAI,CAAC,GAAGD,CAAC;AACf,WAAOX,EAAE,IAAIY,CAAC,GAAGZ,EAAE,SAAS,MAAM,IAAI,EAAEM,GAAG,CAAC,KAAKsG,KAAK,EAAEhH,CAAC,GAAG,MAAM;AAChE,MAAAI,EAAE,OAAOY,CAAC,GAAGZ,EAAE,SAAS,KAAK,MAAM,EAAC,GAAI,IAAI;AAAA,IAClD;AAAA,EACG;AACD,SAAO,EAAE,KAAKM,GAAG,QAAQ,GAAG,WAAW;AACzC;AACA,MAAM0G,KAAK,CAACpH,MAAM;AAChB,QAAM,EAAE,WAAW,GAAG,KAAK,EAAC,IAAKmH;AACjC,MAAI/G;AACJ,SAAO,EAAE,CAACM,MAAMN,IAAIM,CAAC,GAAGV,EAAE,QAAQ,CAAC,EAAE,SAASU,EAAC,MAAO;AACpD,QAAIN,GAAG;AACL,OAACM,EAAE,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,OAAON,CAAC,KAAK,EAAE,MAAM;AACrD,YAAM,KAAKM,EAAE,WAAW,CAAE,GAAE,KAAK,CAAC,EAAE,UAAU,EAAG,MAAK,EAAE,OAAON,CAAC;AAChE,WAAK,EAAE,EAAE,SAAS,EAAE;AAAA,IACrB;AAAA,EACL,CAAG,GAAG;AAAA,IACF,IAAI,UAAU;AACZ,aAAOA;AAAA,IACR;AAAA,IACD,WAAW;AAAA,IACX,KAAK;AAAA,EACT;AACA,GAEMiH,KAAK,EAAE,UAAU,GAAI,GAAEC,KAAK,CAACtH,GAAG,IAAI,WAAW;AACnD,QAAM,EAAE,WAAW,GAAG,KAAKI,MAAM+G,GAAGE,EAAE;AACtC,MAAI3G,IAAI2G;AACR,IAAE,CAAC,MAAM3G,IAAI,CAAC;AACd,QAAM,IAAI,MAAMN,EAAEiH,EAAE,GAAG,IAAI,MAAM;AAC/B,QAAI;AACJ,aAAS,IAAI3G,EAAE,aAAa,OAAO,SAAS,EAAE,YAAY;AAAA,EAC9D,GAAK,IAAI,CAAC,MAAM;AACZ,QAAIA,EAAE,SAAS,WAAW;AACxB,aAAO;AACT,UAAM,IAAI,OAAO,KAAK,WAAW,IAAI,EAAE;AACvC,WAAOA,EAAE,SAAS,KAAK,CAACO,MAAMA,EAAE,OAAO,CAAC;AAAA,EAC5C,GAAKF,IAAI,CAAC,GAAG,MAAM;AACf,UAAME,IAAIjB,EAAE,cAAc,CAAC;AAC3B,QAAIiB,GAAG;AACL,YAAMC,IAAIqG,GAAGtG,GAAG,CAAC;AACjB,MAAAb,EAAEc,MAAM,SAAS,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,UAAU,GAAE,CAAE,GAAG,cAAc,EAAC,IAAKA,MAAM,WAAW,EAAE,UAAU,CAAC,EAAE,IAAI,EAAG,CAAA,GAAG,cAAc,EAAG,IAAG,EAAE,UAAU,CAAA,GAAI,cAAc,EAAG,CAAA;AAAA,IAC5K;AACC,cAAQ,KAAK,wBAAwB,CAAC;AAAA,EACzC,GAAEF,IAAI,CAAC,GAAG,IAAI,OAAO;AACpB,UAAMC,IAAI,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,GAAGC,IAAID,EAAE,IAAI,CAAC,MAAMjB,EAAE,cAAc,CAAC,CAAC,EAAE,OAAO,OAAO;AACzF,IAAAI,EAAE,EAAE,UAAUc,EAAE,IAAI,CAAC,EAAE,IAAI,EAAG,OAAM,EAAE,IAAI,GAAG,UAAU,EAAG,EAAC,EAAG,CAAA,GAAGA,EAAE,WAAWD,EAAE,UAAU,QAAQ,KAAK,qBAAqB,CAAC;AAAA,EACjI,GAAK,IAAI,CAAC,MAAM;AACZ,QAAIP,EAAE,SAAS,WAAW;AACxB,aAAO;AACT,UAAM,EAAE,UAAU,EAAG,IAAGA;AACxB,MAAE,OAAO,CAAC,EAAE,IAAIO,EAAG,MAAK,EAAE,SAASA,CAAC,CAAC,EAAE,SAAS,KAAKb,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,IAAIa,QAAQ,CAAC,EAAE,SAASA,CAAC,CAAC,EAAG,CAAA;AAAA,EAChH;AACE,SAAOjB,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAC,MAAO,GAAG,EAAE,WAAW,CAAA,GAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG;AAAA,IAC3E,OAAO;AAAA,IACP,aAAae;AAAA,IACb,IAAI,WAAW;AACb,aAAOL,IAAI,CAAC,GAAGA,EAAE,QAAQ,IAAI;AAAA,IAC9B;AAAA,IACD,IAAI,eAAe;AACjB,aAAOA,IAAIA,EAAE,eAAe;AAAA,IAC7B;AAAA,IACD,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,aAAaM;AAAA,IACb,WAAW;AAAA,EACf;AACA,GAAGuG,KAAK,CAACvH,GAAG,MAAM,OAAO,KAAK,aAAa,EAAEA,CAAC,KAAK,SAAS,KAAK,QAAQwH,KAAK,CAAA;AAC9E,SAASxH,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,EAAAwH,GAAG,MAAMxH,IAAI,KAAK,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AACzC,OAAO,SAAS,OAAO,OAAO,cAAc,OAAO,WAAW,KAAK,MAAM;AACzE,MAAMyH,KAAK,CAACzH,GAAG,MAAM;AACnB,QAAM,IAAI,IAAI,IAAIA,EAAE,OAAO,IAAI,CAACI,MAAMA,EAAE,EAAE,CAAC;AAC3C,SAAO,EAAE,OAAO,OAAO,CAACA,MAAM,CAAC,EAAE,IAAIA,EAAE,EAAE,CAAC;AAC5C,GAAGsH,KAAK,CAAC1H,GAAG,MAAM;AAChB,QAAM,IAAI,IAAI,IAAI,EAAE,OAAO,IAAI,CAACI,MAAMA,EAAE,EAAE,CAAC;AAC3C,SAAOJ,EAAE,OAAO,OAAO,CAACI,MAAM,CAAC,EAAE,IAAIA,EAAE,EAAE,CAAC;AAC5C,GAAGuH,KAAK,CAAC3H,GAAG,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM;AACpC,QAAMI,IAAIJ,EAAE,OAAO,KAAK,CAACU,MAAMA,EAAE,OAAO,EAAE,EAAE;AAC5C,SAAO,EAAE,SAAS,GAAG,SAASN,KAAK,CAAC2G,GAAG3G,GAAG,CAAC,IAAIA,IAAI,OAAM;AAC3D,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,EAAC,MAAO,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,SAASA,EAAG,OAAM,EAAE,SAAS,GAAG,SAASA,EAAC,EAAG,GAAGwH,KAAK,CAAC5H,GAAG,MAAM,CAAC+G,GAAG/G,EAAE,QAAQ,EAAE,MAAM,GAAG6H,KAAK,CAAC7H,GAAG,MAAM;AACzJ,QAAM,IAAIyH,GAAGzH,GAAG,CAAC,GAAGI,IAAIsH,GAAG1H,GAAG,CAAC,GAAGU,IAAIiH,GAAG3H,GAAG,CAAC;AAC7C,SAAO;AAAA,IACL,UAAUA;AAAA,IACV,UAAU;AAAA,IACV,eAAe,EAAE,SAAS,IAAI,IAAI;AAAA,IAClC,eAAeI,EAAE,SAAS,IAAIA,IAAI;AAAA,IAClC,eAAeM,EAAE,SAAS,IAAIA,IAAI;AAAA,IAClC,eAAekH,GAAG5H,GAAG,CAAC,IAAI,EAAE,WAAWA,EAAE,QAAQ,WAAW,EAAE,OAAM,IAAK;AAAA,EAC7E;AACA;AACA,IAAI8H,KAAsB,kBAAC9H,OAAOA,EAAE,QAAQ,SAASA,EAAE,SAAS,UAAUA,IAAI8H,MAAM,CAAE,CAAA;AACjF,MAACC,KAAK,CAAC/H,GAAG,MAAM;AACnB,MAAI,GAAGI;AACP,QAAM,EAAE,SAASM,GAAG,QAAQ,EAAC,IAAK;AAClC,MAAI,EAAE,CAACV,EAAE,QAAQ,UAAUA,EAAE,QAAQ,WAAW;AAC9C,WAAO;AACT,MAAIA,EAAE,QAAQ,QAAQ;AACpB,UAAM,EAAE,QAAQ,EAAG,IAAGA,EAAE,SAAS,IAAI,CAACe,MAAMA,KAAKA,EAAE,SAAS;AAC5D,QAAI,EAAE,EAAEL,EAAE,OAAO,KAAK,EAAEA,EAAE,OAAO,IAAI;AACnC,YAAMK,KAAK,IAAIL,EAAE,YAAY,OAAO,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,aAAa,KAAK,EAAE,EAAE,aAAa,KAAK,EAAE,EAAE,aAAa,CAAC,GAAGM,KAAKZ,IAAIM,EAAE,YAAY,OAAO,SAASN,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa;AAChM,UAAI,MAAM,eAAeW,KAAK,CAACC,KAAK,MAAM,iBAAiBA,KAAK,CAACD;AAC/D,eAAO;AAAA,IACV;AAAA,EACF;AACD,MAAIf,EAAE,QAAQ,aAAa;AACzB,UAAM,IAAoB,oBAAI,IAAI;AAAA,MAChC,IAAIU,EAAE,WAAW,CAAE,GAAE,IAAI,CAAC,MAAM,EAAE,EAAE;AAAA,MACpC,IAAIA,EAAE,WAAW,CAAE,GAAE,IAAI,CAAC,MAAM,EAAE,EAAE;AAAA,MACpC,IAAIA,EAAE,WAAW,CAAA,GAAI,IAAI,CAAC,EAAE,UAAU,EAAC,MAAO,EAAE,EAAE;AAAA,IACxD,CAAK;AACD,WAAO,CAAC,EAAE,MAAM,QAAQV,EAAE,QAAQ,WAAW,IAAIA,EAAE,QAAQ,cAAc,CAACA,EAAE,QAAQ,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAAA,EACvH;AACC,WAAO;AACX,GAmBGgI,KAAK,CAAChI,MAAMA,EAAE,OAAO,QAAQiI,KAAK,MAAM;AACzC,QAAMjI,IAAoB,oBAAI,IAAK,GAAE,IAAoB,oBAAI,IAAK,GAAE,IAAI,CAAA,GAAII,IAAI,CAAC,GAAG8H,IAAI,CAAA,MAAO,EAAE,KAAK,EAAE,UAAU,GAAG,SAASA,EAAG,CAAA,GAAGxH,IAAI,CAAC,MAAM;AAC7I,UAAMwH,IAAI,EAAE,UAAU,CAACC,MAAMA,EAAE,YAAY,CAAC;AAC5C,IAAAD,IAAI,MAAM,EAAE,OAAOA,GAAG,CAAC;AAAA,EAC3B,GAAK,IAAI,CAAC,GAAGA,MAAM;AACf,UAAMC,IAAI;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,SAASD,EAAE,WAAW,CAAE;AAAA,QACxB,SAASA,EAAE,WAAW,CAAE;AAAA,QACxB,SAASA,EAAE,WAAW,CAAE;AAAA,MACzB;AAAA,MACD,OAAO,CAAC,GAAGlI,EAAE,QAAQ;AAAA,IAC3B;AACI,MAAE,QAAQ,CAACoI,MAAM;AACf,MAAAL,GAAGK,GAAGD,CAAC,KAAKC,EAAE,SAASD,CAAC;AAAA,IAC9B,CAAK;AAAA,EACF,GAAE,IAAI,CAAC,GAAGD,IAAIJ,GAAG,UAAU;AAC1B,QAAI9H,EAAE,IAAI,EAAE,EAAE;AACZ,YAAM,MAAM,yBAAyB,EAAE,EAAE,mBAAmB;AAC9D,IAAAA,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,QAAQ,CAACmI,MAAM,EAAE,IAAIA,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAED,GAAG,EAAE,SAAS,CAAC,CAAC,EAAG,CAAA;AAAA,EACrF,GAAK,IAAI,CAAC,GAAGA,MAAM;AACf,UAAMC,IAAI,OAAO,KAAK,WAAWD,IAAI,GAAGE,IAAI,OAAO,KAAK,WAAW,IAAI,EAAE,IAAIC,IAAIrI,EAAE,IAAIoI,CAAC;AACxF,QAAIC,GAAG;AACL,YAAM,IAAIR,GAAGQ,GAAGF,CAAC;AACjB,aAAOC,MAAMD,EAAE,KAAKnI,EAAE,IAAIoI,GAAGD,CAAC,KAAKnI,EAAE,OAAOoI,CAAC,GAAGpI,EAAE,IAAImI,EAAE,IAAIA,CAAC,IAAIE,EAAE,OAAO,QAAQ,CAACC,MAAM,EAAE,OAAOA,EAAE,EAAE,CAAC,GAAGH,EAAE,OAAO,QAAQ,CAACG,MAAM,EAAE,IAAIA,EAAE,IAAIH,EAAE,EAAE,CAAC,GAAG;AAAA,IACvJ;AACC,cAAQ,KAAK,4BAA4BC,CAAC,mBAAmB;AAAA,EACnE,GAAKrH,IAAI,CAAC,GAAGmH,IAAIJ,GAAG,OAAOK,IAAIL,GAAG,UAAU;AACxC,UAAMM,IAAIJ,GAAGE,CAAC,IAAIC,IAAID,GAAGG,IAAI,EAAE,GAAGH,CAAC;AACnC,IAAAG,KAAK,EAAED,GAAG,EAAE,SAAS,CAACC,CAAC,EAAC,CAAE;AAAA,EAC3B,GAAErH,IAAI,CAAC,GAAGkH,IAAIJ,GAAG,UAAU;AAC1B,UAAMK,IAAI,EAAE,OAAO,CAACC,GAAGC,MAAM;AAC3B,YAAM,IAAI,EAAEA,CAAC;AACb,aAAO,IAAI,CAAC,GAAGD,GAAG,CAAC,IAAIA;AAAA,IACxB,GAAE,CAAE,CAAA;AACL,IAAAD,EAAE,SAAS,KAAK,EAAED,GAAG,EAAE,SAASC,EAAC,CAAE;AAAA,EACpC,GAAE,IAAI,CAAC,GAAGD,IAAIJ,GAAG,UAAU;AAC1B,UAAMK,IAAInI,EAAE,IAAI,EAAE,UAAU;AAC5B,QAAImI,GAAG;AACL,YAAMC,IAAI;AAAA,QACR,GAAGD;AAAA,QACH,QAAQ,CAAC,GAAGA,EAAE,QAAQ,CAAC;AAAA,MAC/B;AACM,MAAAnI,EAAE,IAAImI,EAAE,IAAIC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAIA,EAAE,EAAE,GAAG,EAAEF,GAAG,EAAE,SAAS,CAAC;AAAA,QAClD,UAAUC;AAAA,QACV,UAAUC;AAAA,QACV,eAAe,CAAC,CAAC;AAAA,MAClB,CAAA,EAAG,CAAA;AAAA,IACL;AACC,cAAQ,KAAK,8CAA8C,EAAE,UAAU,EAAE;AAAA,EAC5E,GAAE,IAAI,MAAM,CAAC,GAAGpI,EAAE,OAAM,CAAE,GAAG,IAAI,CAAC,IAAI8H,GAAG,UAAU;AAClD,UAAMI,IAAI,CAAC,GAAGlI,EAAE,OAAQ,CAAA;AACxB,IAAAA,EAAE,MAAK,GAAI,EAAE,MAAO,GAAE,EAAE,GAAG,EAAE,SAASkI,EAAC,CAAE;AAAA,EAC7C,GAAKjH,IAAI,CAAC,GAAGiH,IAAI,IAAIC,IAAIL,GAAG,UAAU;AAClC,QAAII,GAAG;AACL,YAAME,IAAI,CAAC,GAAGpI,EAAE,OAAQ,CAAA;AACxB,MAAAA,EAAE,MAAO,GAAE,EAAE,MAAO,GAAE,EAAE,QAAQ,CAACqI,MAAM;AACrC,QAAArI,EAAE,IAAIqI,EAAE,IAAIA,CAAC,GAAGA,EAAE,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAIA,EAAE,EAAE,CAAC;AAAA,MACjE,CAAO,GAAG,EAAEF,GAAG,EAAE,SAAS,GAAG,SAASC,EAAC,CAAE;AAAA,IACzC,OAAW;AACL,YAAMA,IAAI,EAAE,OAAO,CAACC,GAAG,MAAM;AAC3B,cAAMC,IAAItI,EAAE,IAAI,EAAE,EAAE;AACpB,eAAOsI,IAAI,CAAC,GAAGD,GAAGC,CAAC,IAAID;AAAA,MACxB,GAAE,CAAE,CAAA;AACL,UAAID,EAAE,SAAS;AACb,cAAM,MAAM,0DAA0DA,EAAE,IAAI,CAACC,MAAMA,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;AACvG,QAAE,QAAQ,CAACA,MAAM;AACf,QAAArI,EAAE,IAAIqI,EAAE,IAAIA,CAAC,GAAGA,EAAE,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAIA,EAAE,EAAE,CAAC;AAAA,MACjE,CAAO,GAAG,EAAEF,GAAG,EAAE,SAAS,EAAG,CAAA;AAAA,IACxB;AAAA,EACL,GAAKjH,IAAI,CAAC,MAAM;AACZ,UAAMgH,IAAI,OAAO,KAAK,WAAW,IAAI,EAAE,IAAIC,IAAInI,EAAE,IAAIkI,CAAC;AACtD,QAAIC;AACF,aAAOnI,EAAE,OAAOkI,CAAC,GAAGC,EAAE,OAAO,QAAQ,CAACC,MAAM,EAAE,OAAOA,EAAE,EAAE,CAAC,GAAGD;AAC/D,YAAQ,KAAK,yCAAyCD,CAAC,EAAE;AAAA,EAC1D,GAAE,IAAI,CAAC,GAAGA,IAAIJ,GAAG,UAAU;AAC1B,UAAMK,IAAIjH,EAAE,CAAC;AACb,IAAAiH,KAAK,EAAED,GAAG,EAAE,SAAS,CAACC,CAAC,EAAC,CAAE;AAAA,EAC3B,GAAE7G,IAAI,CAAC,GAAG4G,IAAIJ,GAAG,UAAU;AAC1B,UAAMK,IAAI,EAAE,OAAO,CAACC,GAAGC,MAAM;AAC3B,YAAM,IAAInH,EAAEmH,CAAC;AACb,aAAO,IAAI,CAAC,GAAGD,GAAG,CAAC,IAAIA;AAAA,IACxB,GAAE,CAAE,CAAA;AACL,IAAAD,EAAE,SAAS,KAAK,EAAED,GAAG,EAAE,SAASC,EAAC,CAAE;AAAA,EACpC,GAAE3G,IAAI,CAAC,GAAG0G,IAAIJ,GAAG,UAAU;AAC1B,UAAMK,IAAInI,EAAE,IAAI,EAAE,UAAU;AAC5B,QAAImI,GAAG;AACL,YAAMC,IAAID,EAAE,OAAO,KAAK,CAACE,MAAMA,EAAE,OAAO,EAAE,EAAE;AAC5C,UAAID,GAAG;AACL,UAAE,OAAOA,EAAE,EAAE;AACb,cAAMC,IAAI;AAAA,UACR,GAAGF;AAAA,UACH,QAAQA,EAAE,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;AAAA,QACtD;AACQ,QAAAnI,EAAE,IAAImI,EAAE,IAAIE,CAAC,GAAG,EAAEH,GAAG,EAAE,SAAS,CAAC;AAAA,UAC/B,UAAUC;AAAA,UACV,UAAUE;AAAA,UACV,eAAe,CAACD,CAAC;AAAA,QAClB,CAAA,EAAG,CAAA;AAAA,MACL;AACC,gBAAQ,KAAK,kCAAkC,EAAE,EAAE,oBAAoB,EAAE,UAAU,EAAE;AAAA,IACxF;AACC,cAAQ,KAAK,kDAAkD,EAAE,UAAU,EAAE;AAAA,EACnF,GAAK,IAAI,CAAC,MAAM;AACZ,UAAMF,IAAIlI,EAAE,IAAI,CAAC;AACjB,WAAOkI,IAAI,EAAE,GAAGA,EAAG,IAAG;AAAA,EAC1B,GAAK,IAAI,CAAC,MAAM;AACZ,UAAMA,IAAI,EAAE,IAAI,CAAC;AACjB,QAAIA,GAAG;AACL,YAAMC,IAAI,EAAED,CAAC,EAAE,OAAO,KAAK,CAACE,MAAMA,EAAE,OAAO,CAAC;AAC5C,UAAID;AACF,eAAOA;AACT,cAAQ,MAAM,+BAA+B,CAAC,kCAAkC;AAAA,IACjF;AACC,cAAQ,KAAK,qCAAqC,CAAC,EAAE;AAAA,EAC3D,GAAK,IAAI,CAAC,GAAGD,MAAM;AACf,QAAI,EAAE,eAAeA,EAAE;AACrB,YAAM;AACR,UAAMC,IAAInI,EAAE,IAAI,EAAE,UAAU;AAC5B,QAAImI,GAAG;AACL,YAAMC,IAAID,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAGE,IAAI;AAAA,QACjD,GAAGF;AAAA,QACH,QAAQA,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,OAAOC,EAAE,KAAKF,IAAI,CAAC;AAAA,MACzD;AACM,aAAOlI,EAAE,IAAImI,EAAE,IAAIE,CAAC,GAAGD,EAAE,OAAOF,EAAE,OAAO,EAAE,OAAOE,EAAE,EAAE,GAAG,EAAE,IAAIF,EAAE,IAAIG,EAAE,EAAE,IAAI;AAAA,QAC3E,UAAUF;AAAA,QACV,UAAUE;AAAA,QACV,eAAe,CAAC,EAAE,SAASD,GAAG,SAASF,EAAC,CAAE;AAAA,MAClD;AAAA,IACK;AACC,cAAQ,KAAK,6CAA6C,EAAE,UAAU,EAAE;AAAA,EAC9E,GAAKzG,IAAI,CAAC,GAAGyG,GAAGC,IAAIL,GAAG,UAAU;AAC7B,UAAMM,IAAI,EAAE,GAAGF,CAAC;AAChB,IAAAE,KAAK,EAAED,GAAG,EAAE,SAAS,CAACC,CAAC,EAAC,CAAE;AAAA,EAC3B,GAAEzG,IAAI,CAAC,GAAGuG,IAAIJ,GAAG,UAAU;AAC1B,UAAMK,IAAI,EAAE,IAAI,CAACC,MAAM,EAAE,EAAE,IAAIA,EAAE,IAAI,YAAYA,EAAE,WAAY,GAAEA,CAAC,CAAC,EAAE,OAAO,OAAO;AACnF,MAAEF,GAAG,EAAE,SAASC,EAAG,CAAA;AAAA,EACvB,GAAKzG,IAAI,CAAC,MAAM;AACZ,UAAMwG,IAAIlI,EAAE,IAAI,EAAE,UAAU;AAC5B,QAAIkI,GAAG;AACL,YAAMC,IAAI;AAAA,QACR,GAAGD;AAAA,QACH,QAAQ;AAAA,UACN,GAAGA,EAAE;AAAA,UACL,GAAG;AAAA,QACJ;AAAA,MACT;AACM,aAAOlI,EAAE,IAAIkI,EAAE,IAAIC,CAAC,GAAG;AAAA,QACrB,UAAUD;AAAA,QACV,UAAUC;AAAA,QACV,eAAe;AAAA,UACb,WAAWD,EAAE;AAAA,UACb,WAAW;AAAA,QACZ;AAAA,MACT;AAAA,IACK;AACC,cAAQ,KAAK,mDAAmD,EAAE,UAAU,EAAE;AAAA,EACpF;AACE,SAAO;AAAA,IACL,eAAe;AAAA,IACf,SAAS;AAAA,IACT,KAAK;AAAA,IACL,mBAAmBjH;AAAA,IACnB,sBAAsBK;AAAA,IACtB,sBAAsBN;AAAA,IACtB,kBAAkBW;AAAA,IAClB,mBAAmB,CAAC,GAAGuG,IAAIJ,GAAG,UAAU;AACtC,YAAMK,IAAI,EAAE,IAAI,CAACC,MAAM1G,EAAE0G,CAAC,CAAC,EAAE,OAAO,OAAO;AAC3C,MAAAD,EAAE,SAAS,KAAK,EAAED,GAAG,EAAE,SAASC,EAAC,CAAE;AAAA,IACpC;AAAA,IACD,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,YAAY3G;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,SAASpB;AAAA,IACT,WAAWM;AAAA,IACX,kBAAkBK;AAAA,IAClB,YAAYU;AAAA,IACZ,cAAc,CAAC,GAAGyG,IAAIJ,GAAG,UAAU;AACjC,YAAMK,IAAIzG,EAAE,CAAC;AACb,MAAAyG,KAAK,EAAED,GAAG,EAAE,SAAS,CAACC,CAAC,EAAC,CAAE;AAAA,IAC3B;AAAA,EACL;AACA,GA2DGI,KAAK,MAAM;AACZ,QAAM,EAAE,WAAWvI,GAAG,KAAK,MAAMmH,GAAG,CAAA,CAAE;AACtC,SAAO;AAAA,IACL,WAAWnH;AAAA,IACX,KAAK;AAAA,EACT;AACA,GA6IGwI,KAAK;AACL,IAWkCC,KAAK,CAACzI,IAAI,OAAO;AACpD,MAAI,IAAI,IAAI,IAAI,OAAO,gBAAgB,IAAI,WAAWA,CAAC,CAAC;AACxD,SAAOA;AACL,SAAKwI,GAAG,EAAExI,CAAC,IAAI,EAAE;AACnB,SAAO;AACT;AA0BAyI;AAoDA,SAASC,GAAG1I,GAAG,GAAG,GAAG;AACnB,QAAMI,IAAIJ,EAAE;AACZ,SAAOI,EAAE,EAAE,IAAI,EAAE,CAAC,GAAGA,EAAE,EAAE,IAAI,GAAGA;AAClC;AACA,SAASuI,GAAG3I,GAAG;AACb,MAAI,GAAG;AACP,SAAO,IAAI,IAAI4I,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEE5I,EAAE,EAAE,EAAE,CAAC;AAAA;AAAA,MAET;AAAA;AAAA,QAEEA,EAAE,EAAE,EAAE,CAAC;AAAA;AAAA,MAET;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,IAEN;AAAA,EACF,CAAA,GAAG,EAAE,IAAI,eAAe,WAAW;AAClC,IAAA4C;AAAA;AAAA,MAEE5C,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,EAAE,CAAC,EAAE;AAAA,IACb,KAASA,EAAE,CAAC,EAAE;AAAA,IACVA,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,MAAM,SAAS;AAAA,EAClC,CAAG,GAAG;AAAA,IACF,IAAI;AACF,MAAA6F,GAAG,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAEzF,GAAGM,GAAG;AACN,MAAAoF,GAAG,GAAG1F,GAAGM,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAEN,GAAGM,GAAG;AACN,MAAAV,IAAII;AACJ,YAAM,IAAI,CAAA;AACV,MAAAM;AAAA,MACA,OAAO,EAAE;AAAA,MACTV,EAAE,EAAE,EAAE,CAAC,IAAIU;AAAA,MACX,OAAO,EAAE;AAAA,MACTV,EAAE,EAAE,EAAE,CAAC,IAAIU;AAAA,MACX,MAAM,EAAE;AAAA,MACRV,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;AAAA,IAChB;AAAA,IACD,EAAEI,GAAG;AACH,YAAMsF,GAAG,EAAE,GAAG,UAAUtF,CAAC,GAAG,IAAI;AAAA,IACjC;AAAA,IACD,EAAEA,GAAG;AACH,MAAAuF,GAAG,EAAE,GAAG,UAAUvF,CAAC,GAAG,IAAI;AAAA,IAC3B;AAAA,IACD,EAAEA,GAAG;AACH,MAAA2F,GAAG,GAAG3F,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,SAASyI,GAAG7I,GAAG;AACb,MAAI,GAAG,GAAGI,GAAGM,GAAG,GAAG,GAAG,GAAGK,GAAGC,GAAG,GAAG,GAAG,IAAI4E;AAAA;AAAA,IAEvC5F,EAAE,CAAC,EAAE;AAAA,EACT,GAAKiB,IAAI,CAAA;AACP,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,IAAAA,EAAE,CAAC,IAAI0H,GAAGD,GAAG1I,GAAG,GAAG,CAAC,CAAC;AACvB,QAAMkB,IAAI,CAAC,MAAMyE,GAAG1E,EAAE,CAAC,GAAG,GAAG,GAAG,MAAM;AACpC,IAAAA,EAAE,CAAC,IAAI;AAAA,EACX,CAAG;AACD,SAAO;AAAA,IACL,IAAI;AACF,UAAIyC,GAAG,SAAS,GAAGhD,IAAIkD,GAAE,GAAI,IAAIF,GAAG,SAAS,GAAG,IAAIE,GAAE;AACtD,eAAS,IAAI,GAAG,IAAI3C,EAAE,QAAQ,KAAK;AACjC,QAAAA,EAAE,CAAC,EAAE;AACP,MAAAF,IAAI8C,GAAE,GAAIE,EAAE,GAAG,SAAS,WAAW,GAAGA,EAAE,GAAG,SAAS;AAAA,MACpD/D,EAAE,CAAC,IAAI,kBAAkB,MAAM,GAAG+D,EAAE,GAAG,UAAU3D;AAAA,MACjDJ,EAAE,CAAC,EAAE,OAAO,IAAI8I,EAAE,EAAE,KAAK,GAAG,CAAC,GAAG/E,EAAE,GAAG,SAAS,4BAA4B,GAAGA;AAAA,QAC3E;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D,EAAE,GAAG,UAAU;AAAA,MAClB/D,EAAE,CAAC,EAAE,OAAO,IAAI+I,EAAE,EAAE,KAAK,GAAG,CAAC;AAAA,IAC9B;AAAA,IACD,EAAE,GAAGzH,GAAG;AACN,MAAAiC,GAAG,GAAG,GAAGjC,CAAC,GAAGiC,GAAG,GAAG7C,GAAGY,CAAC,GAAGiC,GAAG,GAAG,GAAGjC,CAAC,GAAGiC,GAAG,GAAG,GAAGjC,CAAC;AACjD,eAASE,IAAI,GAAGA,IAAIP,EAAE,QAAQO,KAAK;AACjC,QAAAP,EAAEO,CAAC,KAAKP,EAAEO,CAAC,EAAE,EAAE,GAAGF,CAAC;AACrB,MAAAiC,GAAG,GAAGxC,GAAGO,CAAC,GAAGN,IAAI,IAAI,MAAM,IAAI;AAAA,QAC7B8C,GAAG,GAAG,eAAe,WAAW;AAC9B,UAAAlB;AAAA;AAAA,YAEE5C,EAAE,CAAC,EAAE,OAAO;AAAA,UACxB,KAAeA,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,SAAS;AAAA,QAClD,CAAS;AAAA,QACD8D,GAAG,GAAG,eAAe,WAAW;AAC9B,UAAAlB;AAAA;AAAA,YAEE5C,EAAE,CAAC,EAAE,OAAO;AAAA,UACxB,KAAeA,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,SAAS;AAAA,QAClD,CAAS;AAAA,MACT,GAAS,IAAI;AAAA,IACR;AAAA,IACD,EAAE,GAAGsB,GAAG;AACN,UAAItB,IAAI,IAAI,CAACgB,KAAKM;AAAA,MAClB,KAAK,OAAO;AAAA,MACZtB,EAAE,CAAC,IAAI,kBAAkB,YAAY+D,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC/C,KAAKM;AAAA,MAC9D,MAAMlB,OAAOA;AAAA,MACbJ,EAAE,CAAC,EAAE,OAAO,IAAI8I,EAAE,EAAE,KAAK,GAAG,OAAO/E,EAAE,GAAG,UAAU3D,CAAC,IAAI,CAACY,KAAKM;AAAA,MAC7D,MAAMyC;AAAA,QACJ;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,IAAU,CAACgB,KAAKM;AAAA,MACV,MAAM,OAAO;AAAA,MACbtB,EAAE,CAAC,EAAE,OAAO,IAAI+I,EAAE,EAAE,KAAK,GAAG,OAAOhF,EAAE,GAAG,UAAU,CAAC,GAAGzC;AAAA,MACtD,KAAK;AACH,YAAIsE;AAAA;AAAA,UAEF5F,EAAE,CAAC,EAAE;AAAA,QACf;AACQ,YAAIwB;AACJ,aAAKA,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK,GAAG;AAChC,gBAAM,IAAIkH,GAAG1I,GAAG,GAAGwB,CAAC;AACpB,UAAAP,EAAEO,CAAC,KAAKP,EAAEO,CAAC,EAAE,EAAE,GAAGF,CAAC,GAAGoE,GAAGzE,EAAEO,CAAC,GAAG,CAAC,MAAMP,EAAEO,CAAC,IAAImH,GAAG,CAAC,GAAG1H,EAAEO,CAAC,EAAE,EAAG,GAAEkE,GAAGzE,EAAEO,CAAC,GAAG,CAAC,GAAGP,EAAEO,CAAC,EAAE,EAAET,EAAE,YAAYA,CAAC;AAAA,QAClG;AACD,aAAKyE,GAAE,GAAIhE,IAAI,EAAE,QAAQA,IAAIP,EAAE,QAAQO,KAAK;AAC1C,UAAAN,EAAEM,CAAC;AACL,QAAAiE;MACD;AAAA,IACF;AAAA,IACD,EAAE,GAAG;AACH,UAAI,CAACzE,GAAG;AACN,iBAASM,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,UAAAoE,GAAGzE,EAAEK,CAAC,CAAC;AACT,QAAAN,IAAI;AAAA,MACL;AAAA,IACF;AAAA,IACD,EAAE,GAAG;AACH,MAAAC,IAAIA,EAAE,OAAO,OAAO;AACpB,eAASK,IAAI,GAAGA,IAAIL,EAAE,QAAQK,KAAK;AACjC,QAAAqE,GAAG1E,EAAEK,CAAC,CAAC;AACT,MAAAN,IAAI;AAAA,IACL;AAAA,IACD,EAAE,GAAG;AACH,YAAMwC,GAAG,CAAC,GAAGA,GAAG9C,CAAC,GAAG8C,GAAG,CAAC,GAAGA,GAAG,CAAC,GAAGA,GAAGzC,CAAC,IAAI0C,GAAGxC,GAAG,CAAC,GAAG,IAAI,IAAI0B,GAAG,CAAC;AAAA,IACjE;AAAA,EACL;AACA;AACA,SAASqG,GAAGhJ,GAAG;AACb,MAAI,GAAG;AACP,SAAO,IAAI,IAAIiJ,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEEjJ,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL,SAAS;AAAA,QACP,SAAS;AAAA,UACP6I;AAAA,UACA,CAAC,EAAE,MAAMzI,EAAC,OAAQ,EAAE,GAAGA,EAAC;AAAA,UACxB,CAAC,EAAE,MAAMA,EAAG,MAAKA,IAAI,MAAM;AAAA,QAC5B;AAAA,MACF;AAAA,MACD,SAAS,EAAE,KAAKJ,EAAG;AAAA,IACpB;AAAA,EACL,CAAG,GAAG,EAAE;AAAA,IACJ;AAAA;AAAA,IAEAA,EAAE,CAAC;AAAA,EACJ,GAAE,EAAE;AAAA,IACH;AAAA;AAAA,IAEAA,EAAE,CAAC;AAAA,EACJ,GAAE,EAAE;AAAA,IACH;AAAA;AAAA,IAEAA,EAAE,CAAC;AAAA,EACP,GAAK;AAAA,IACD,IAAI;AACF,MAAA6F,GAAG,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAEzF,GAAGM,GAAG;AACN,MAAAoF,GAAG,GAAG1F,GAAGM,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAEN,GAAG,CAACM,CAAC,GAAG;AACR,YAAM,IAAI,CAAA;AACV,MAAAA;AAAA,MACA,MAAM,EAAE;AAAA,MACRN,EAAE,CAAC,IAAIM;AAAA,MACP,MAAM,EAAE;AAAA,MACRN,EAAE,CAAC,IAAIM;AAAA,MACP,SAAS,EAAE,UAAU,EAAE,OAAOA,GAAG,KAAKN,EAAG,IAAG,EAAE,KAAK,CAAC;AAAA,IACrD;AAAA,IACD,EAAEA,GAAG;AACH,YAAMsF,GAAG,EAAE,GAAG,UAAUtF,CAAC,GAAG,IAAI;AAAA,IACjC;AAAA,IACD,EAAEA,GAAG;AACH,MAAAuF,GAAG,EAAE,GAAG,UAAUvF,CAAC,GAAG,IAAI;AAAA,IAC3B;AAAA,IACD,EAAEA,GAAG;AACH,MAAA2F,GAAG,GAAG3F,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,MAAM0I,KAAK,CAAC9I,MAAMA,EAAE,KAAK,GAAG,GAAG+I,KAAK,CAAC/I,MAAMA,EAAE,KAAK,GAAG;AACrD,SAASkJ,GAAGlJ,GAAG,GAAG,GAAG;AACnB,MAAII,GAAG,EAAE,OAAOM,EAAC,IAAK,GAAG,EAAE,eAAe,MAAM,GAAG,EAAE,WAAW,EAAG,IAAG,GAAG,EAAE,eAAe,IAAI,EAAG,IAAG;AACpG,QAAMK,IAAI,CAAC,GAAGE,GAAGC,MAAM;AACrB,QAAI;AACJ,UAAMI,IAAI,EAAE;AACZ,IAAAL,MAAM,UAAU,IAAIK,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAIJ,EAAE,CAAC,GAAG,IAAIA,EAAE,CAAC,CAAC,CAAC,IAAI,IAAII,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,MAAML,MAAM,UAAU,CAAC,KAAK,CAAC,IAAIC,EAAE,CAAC,GAAG,IAAIA,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxJ,UAAMM,IAAIiF,GAAG,CAAC;AACd,WAAO,EAAE,GAAG,GAAG,UAAU,EAAE,QAAQ,GAAG,QAAQjF,EAAC;EACnD;AACE,WAASR,EAAE,GAAG;AACZ,IAAAwD,GAAG,KAAK,MAAMxE,GAAG,CAAC;AAAA,EACnB;AACD,WAAS,EAAE,GAAG;AACZ,IAAAwE,GAAG,KAAK,MAAMxE,GAAG,CAAC;AAAA,EACnB;AACD,WAAS,EAAE,GAAG;AACZ,IAAAwE,GAAG,KAAK,MAAMxE,GAAG,CAAC;AAAA,EACnB;AACD,SAAOA,EAAE,QAAQ,CAAC,MAAM;AACtB,eAAW,KAAK,EAAE,GAAGU,IAAI,EAAE,KAAK,GAAG,mBAAmB,KAAK,EAAE,GAAG,IAAI,EAAE,aAAa,GAAG,eAAe,KAAK,EAAE,GAAG,IAAI,EAAE,SAAS,GAAG,mBAAmB,KAAK,EAAE,GAAG,IAAI,EAAE,aAAa;AAAA,EACrL,GAAKV,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,KAAK,EAAE,GAAGI,IAAIM,EAAE,QAAQ;AAAA,EAC5B,GAAK;AAAA,IACDA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAN;AAAA,IACAW;AAAA,IACAC;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AACA,MAAMmI,WAAWjD,GAAG;AAAA,EAClB,YAAY,GAAG;AACb,UAAK,GAAID,GAAG,MAAM,GAAGiD,IAAIF,IAAInG,IAAI;AAAA,MAC/B,OAAO;AAAA,MACP,eAAe;AAAA,MACf,WAAW;AAAA,MACX,eAAe;AAAA,IACrB,CAAK;AAAA,EACF;AACH;AACK,MAACuG,KAAK,CAACpJ,GAAG,MAAM;AACnB,QAAM,IAAI,KAAK,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,CAAC,GAAGI,IAAI,KAAK,IAAI,EAAE,CAAC,IAAIJ,EAAE,CAAC,CAAC;AACzD,SAAO,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,IAAII,GAAG,CAAC,CAAC;AAClD,GAkDGiJ,KAAK,kBAAkB,UAAU,UAAU,iBAAiB,KAAK,UAAU,mBAAmB;AACjG,SAASC,GAAGtJ,GAAG;AACb,MAAI,GAAG,GAAGI,GAAGM,GAAG,GAAG;AACnB,SAAO;AAAA,IACL,IAAI;AACF,UAAIgD,GAAG,MAAM,GAAGK,EAAE,GAAG,SAAS,IAAIV,GAAG;AAAA,MACrCrD,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,iBAAiB,GAAG+D,EAAE,GAAG,KAAK3D;AAAA,MAC3DJ,EAAE,CAAC;AAAA,MACHA,EAAE,CAAC,IAAI,CAAC,GAAG+D,EAAE,GAAG,KAAKrD;AAAA,MACrBV,EAAE,CAAC;AAAA,MACHA,EAAE,CAAC,IAAI,CAAC,GAAG+D;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE,GAAGe,GAAG;AACN,MAAAwC,GAAG,GAAG,GAAGxC,CAAC,GAAG,MAAM,IAAI+C;AAAA,QACrB;AAAA,QACA;AAAA;AAAA,QAEA9D,EAAE,EAAE;AAAA,MACZ,GAAS,IAAI;AAAA,IACR;AAAA,IACD,EAAE,GAAGe,GAAG;AACN,MAAAA;AAAA,MACA,OAAO,OAAO,IAAIsC,GAAG;AAAA,MACrB,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAI,CAAE,IAAI,sBAAsBU,EAAE,GAAG,SAAS,CAAC,GAAGhD;AAAA,MACrE,MAAMX,OAAOA;AAAA,MACb,EAAE,CAAC;AAAA,MACH,EAAE,CAAC,IAAI,MAAM2D,EAAE,GAAG,KAAK3D,CAAC,GAAGW;AAAA,MAC3B,MAAML,OAAOA;AAAA,MACb,EAAE,CAAC;AAAA,MACH,EAAE,CAAC,IAAI,MAAMqD,EAAE,GAAG,KAAKrD,CAAC,GAAGK;AAAA,MAC3B,MAAMgD;AAAA,QACJ;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAAShD;AAAA,MACH,MAAMgD;AAAA,QACJ;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE,GAAG;AACH,WAAKP,GAAG,CAAC,GAAG,IAAI,IAAI;IACrB;AAAA,EACL;AACA;AACA,SAAS+F,GAAGvJ,GAAG;AACb,MAAI,GAAG,GAAGI,GAAGM,GAAG,GAAG,GAAG,GAAGK,GAAGC;AAC5B,SAAO;AAAA,IACL,IAAI;AACF,UAAI0C,GAAG,GAAG,GAAG,IAAIA,GAAG,QAAQ,GAAGhD,IAAIgD,GAAG,MAAM,GAAGK;AAAA,QAC7C;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D,EAAE,GAAG,KAAK3D;AAAA,MACbJ,EAAE,CAAC;AAAA,MACHA,EAAE,CAAC,CAAC,GAAG+D,EAAE,GAAG,SAAS,+BAA+B,GAAGE;AAAA,QACrD;AAAA,QACA;AAAA;AAAA,QAEAjE,EAAE,CAAC;AAAA,MACX,GAAS+D,EAAErD,GAAG,SAAS,IAAI2C,GAAG;AAAA,MACxBrD,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,iBAAiB,GAAG+D,EAAErD,GAAG,KAAK;AAAA,MAC3DV,EAAE,CAAC;AAAA,MACHA,EAAE,CAAC,IAAI,CAAC,GAAG+D,EAAErD,GAAG,KAAK;AAAA,MACrBV,EAAE,CAAC;AAAA,MACHA,EAAE,CAAC,IAAI,CAAC,GAAG+D;AAAA,QACTrD;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACDrD;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACJ,GAAE+D,EAAE,GAAG,SAAS,kBAAkB;AAAA,IACpC;AAAA,IACD,EAAE,GAAG,GAAG;AACN,MAAAR,GAAG,GAAG,GAAG,CAAC,GAAGD,GAAG,GAAG,CAAC,GAAGA,GAAG,GAAG5C,CAAC,GAAGK,MAAMC,IAAI;AAAA,QACzC8C;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA9D,EAAE,EAAE;AAAA,QACL;AAAA,QACD8D;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA9D,EAAE,CAAC;AAAA,QACJ;AAAA,QACD8D;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA9D,EAAE,CAAC;AAAA,QACJ;AAAA,QACD8D;AAAA,UACEpD;AAAA,UACA;AAAA;AAAA,UAEAV,EAAE,CAAC;AAAA,QACJ;AAAA,QACD8D;AAAA,UACEpD;AAAA,UACA;AAAA;AAAA,UAEAV,EAAE,CAAC;AAAA,QACJ;AAAA,QACD8D;AAAA,UACEpD;AAAA,UACA;AAAA;AAAA,UAEAV,EAAE,CAAC;AAAA,QACJ;AAAA,MACT,GAASe,IAAI;AAAA,IACR;AAAA,IACD,EAAE,GAAG,GAAG;AACN;AAAA,MACA,KAAKgD;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAAS;AAAA,MACH,KAAKA;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAAS;AAAA,MACH,MAAM3D,OAAOA;AAAA,MACb,EAAE,CAAC;AAAA,MACH,EAAE,CAAC,MAAM2D,EAAE,GAAG,KAAK3D,CAAC,GAAG;AAAA,MACvB,MAAM6D;AAAA,QACJ;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAAS;AAAA,MACH,OAAO,OAAO,IAAIZ,GAAG;AAAA,MACrB,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAI,CAAE,IAAI,sBAAsBU,EAAErD,GAAG,SAAS,CAAC,GAAG;AAAA,MACrE,MAAM,OAAO;AAAA,MACb,EAAE,CAAC;AAAA,MACH,EAAE,CAAC,IAAI,MAAMqD,EAAErD,GAAG,KAAK,CAAC,GAAG;AAAA,MAC3B,MAAM,OAAO;AAAA,MACb,EAAE,CAAC;AAAA,MACH,EAAE,CAAC,IAAI,MAAMqD,EAAErD,GAAG,KAAK,CAAC,GAAG;AAAA,MAC3B,MAAMqD;AAAA,QACJrD;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAAS;AAAA,MACH,MAAMqD;AAAA,QACJrD;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE,GAAG;AACH,WAAK8C,GAAG,CAAC,GAAGzC,IAAI,IAAI4B,GAAG3B,CAAC;AAAA,IACzB;AAAA,EACL;AACA;AACA,SAASwI,GAAGxJ,GAAG;AACb,MAAI;AACJ,WAAS,EAAEU,GAAG,GAAG;AACf,WAAO2I,KAAKE,KAAKD;AAAA,EAClB;AACD,MAAIlJ,IAAI,IAAIJ,CAAC;AACb,SAAO;AAAA,IACL,IAAI;AACF,MAAAI,EAAE,EAAC,GAAI,IAAIyD,GAAE;AAAA,IACd;AAAA,IACD,EAAEnD,GAAG,GAAG;AACN,MAAAN,EAAE,EAAEM,GAAG,CAAC,GAAG6C,GAAG7C,GAAG,GAAG,CAAC;AAAA,IACtB;AAAA,IACD,EAAEA,GAAG,CAAC,CAAC,GAAG;AACR,MAAAN,EAAE,EAAEM,GAAG,CAAC;AAAA,IACT;AAAA,IACD,GAAG6B;AAAA,IACH,GAAGA;AAAA,IACH,EAAE7B,GAAG;AACH,MAAAA,KAAK8C,GAAG,CAAC,GAAGpD,EAAE,EAAEM,CAAC;AAAA,IAClB;AAAA,EACL;AACA;AACA,SAAS+I,GAAGzJ,GAAG,GAAG,GAAG;AACnB,MAAII,GAAG,EAAE,GAAGM,EAAG,IAAG,GAAG,EAAE,GAAG,EAAG,IAAG,GAAG,EAAE,OAAO,EAAG,IAAG,GAAG,EAAE,QAAQ,IAAI,GAAE,IAAK,GAAGK,IAAI;AACjF,QAAMC,IAAI,CAACE,MAAM;AACf,IAAAA,EAAE,gBAAgB,WAAW,EAAE,GAAGH,IAAI,EAAE;AAAA,EAC5C,GAAK,IAAI,MAAM,EAAE,GAAGA,IAAI,EAAE;AACxB,WAAS,EAAEG,GAAG;AACZ,IAAAsD,GAAG,KAAK,MAAMxE,GAAGkB,CAAC;AAAA,EACnB;AACD,WAAS,EAAEA,GAAG;AACZ,IAAAsD,GAAG,KAAK,MAAMxE,GAAGkB,CAAC;AAAA,EACnB;AACD,WAASD,EAAEC,GAAG;AACZ,IAAAsD,GAAG,KAAK,MAAMxE,GAAGkB,CAAC;AAAA,EACnB;AACD,SAAOlB,EAAE,QAAQ,CAACkB,MAAM;AACtB,MAAE,GAAG,IAAIsB,GAAGA,GAAG,IAAI,CAAC,GAAGY,GAAGlC,CAAC,CAAC,CAAC,GAAG,OAAOA,KAAK,EAAE,GAAGR,IAAIQ,EAAE,CAAC,GAAG,OAAOA,KAAK,EAAE,GAAG,IAAIA,EAAE,CAAC,GAAG,WAAWA,KAAK,EAAE,GAAG,IAAIA,EAAE,KAAK,GAAG,YAAYA,KAAK,EAAE,GAAG,IAAIA,EAAE,MAAM;AAAA,EAC/J,GAAKlB,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,KAAK,EAAE,GAAGI,IAAI,KAAK,CAAC;AAAA,EACxB,GAAK,IAAIgD,GAAG,CAAC,GAAG;AAAA,IACZ1C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAK;AAAA,IACAX;AAAA,IACAY;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAC;AAAA,EACJ;AACA;AACA,MAAM2H,WAAW1C,GAAG;AAAA,EAClB,YAAY,GAAG;AACb,UAAK,GAAID,GAAG,MAAM,GAAGwD,IAAID,IAAI3G,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,EAAC,CAAE;AAAA,EACrE;AACH;AACA,SAAS6G,GAAG1J,GAAG;AACb,MAAI,GAAG,GAAGI,GAAGM,GAAG,GAAG,GAAG,GAAGK,GAAGC,GAAG,GAAG,GAAG,GAAGC,GAAGC,GAAG,GAAGI,GAAGE,GAAG,GAAG,GAAG,GAAGC,GAAGE,GAAGD,GAAG,GAAGwG,GAAGC,GAAGC,GAAGC,GAAG,GAAGC,GAAGqB,GAAGC,GAAG,GAAGC,GAAGC,IAAG,GAAGC,GAAGC,GAAGC,IAAIC,IAAGC,GAAGC,IAAIC;AACpI,SAAOR,IAAI,IAAIjB,GAAG;AAAA,IAChB,OAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA;AAAA,QAEE5I,EAAE,CAAC,EAAE;AAAA;AAAA,MAEP;AAAA;AAAA,QAEEA,EAAE,CAAC,EAAE;AAAA;AAAA,MAEP;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,IAEN;AAAA,EACF,CAAA,GAAG6J,EAAE,IAAI,eAAe,WAAW;AAClC,IAAAjH;AAAA;AAAA,MAEE5C,EAAE,CAAC,EAAE,UAAU;AAAA,IACrB,KAASA,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,MAAM,SAAS;AAAA,EAC/C,CAAG,GAAG,IAAI,IAAI4I,GAAG;AAAA,IACb,OAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA;AAAA,QAEE5I,EAAE,CAAC,EAAE;AAAA,QACLA,EAAE,CAAC,EAAE;AAAA;AAAA,MAEP;AAAA;AAAA,QAEEA,EAAE,CAAC,EAAE;AAAA;AAAA,MAEP;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,IAEN;AAAA,EACF,CAAA,GAAG,EAAE,IAAI,eAAe,WAAW;AAClC,IAAA4C;AAAA;AAAA,MAEE5C,EAAE,CAAC,EAAE,WAAW;AAAA,IACtB,KAASA,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,MAAM,SAAS;AAAA,EAChD,CAAG,GAAGgK,IAAI,IAAIpB,GAAG;AAAA,IACb,OAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA;AAAA,QAEE5I,EAAE,CAAC,EAAE;AAAA,QACLA,EAAE,CAAC,EAAE;AAAA;AAAA,MAEP;AAAA;AAAA,QAEEA,EAAE,CAAC,EAAE;AAAA,QACLA,EAAE,CAAC,EAAE;AAAA;AAAA,MAEP;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,IAEN;AAAA,EACF,CAAA,GAAGgK,EAAE,IAAI,eAAe,WAAW;AAClC,IAAApH;AAAA;AAAA,MAEE5C,EAAE,CAAC,EAAE,cAAc;AAAA,IACzB,KAASA,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,MAAM,SAAS;AAAA,EACnD,CAAG,GAAGkK,KAAI,IAAItB,GAAG;AAAA,IACb,OAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA;AAAA,QAEE5I,EAAE,CAAC,EAAE;AAAA;AAAA,MAEP;AAAA;AAAA,QAEEA,EAAE,CAAC,EAAE;AAAA,QACLA,EAAE,CAAC,EAAE;AAAA;AAAA,MAEP;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,IAEN;AAAA,EACF,CAAA,GAAGkK,GAAE,IAAI,eAAe,WAAW;AAClC,IAAAtH;AAAA;AAAA,MAEE5C,EAAE,CAAC,EAAE,aAAa;AAAA,IACxB,KAASA,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,MAAM,SAAS;AAAA,EAClD,CAAG,GAAG;AAAA,IACF,IAAI;AACF,UAAI0D,GAAG,MAAM,GAAG,IAAIE,GAAI,GAAE7C,IAAI2C,GAAG,MAAM,GAAGzC,IAAI2C,GAAI,GAAE1C,IAAIwC,GAAG,MAAM,GAAG,IAAIE,GAAE,GAAI,IAAIF,GAAG,MAAM,GAAGhC,IAAIkC,GAAI,GAAE,IAAIF,GAAG,MAAM,GAAG2E,IAAIzE,GAAI,GAAE,IAAIF,GAAG,MAAM,GAAG,IAAIE,GAAE,GAAIiC,GAAGgE,EAAE,GAAG,QAAQ,GAAGC,KAAIlG,GAAI,GAAEiC,GAAG,EAAE,GAAG,QAAQ,GAAGkE,IAAInG,GAAE,GAAIiC,GAAGmE,EAAE,GAAG,QAAQ,GAAGC,KAAKrG,GAAE,GAAIiC,GAAGqE,GAAE,GAAG,QAAQ,GAAGnG,EAAE,GAAG,SAAS,WAAW,GAAGA,EAAE,GAAG,SAAS;AAAA,MACjT/D,EAAE,CAAC,IAAI,kBAAkB,MAAM,GAAG+D,EAAE,GAAG,KAAK3D;AAAA,MAC5CJ,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,KAAKrD;AAAA,MACnBV,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,SAAS;AAAA,MACvB/D,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,UAAU;AAAA,MACxB/D,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAEhD,GAAG,SAAS,4BAA4B,GAAGgD;AAAA,QACpDhD;AAAA,QACA;AAAA;AAAA,QAEAf,EAAE,CAAC;AAAA,MACX,GAAS+D,EAAEhD,GAAG,KAAKC;AAAA,MACbhB,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAEhD,GAAG,KAAK;AAAA,MACnBf,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAEhD,GAAG,SAAS;AAAA,MACvBf,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAEhD,GAAG,UAAU;AAAA,MACxBf,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE7C,GAAG,SAAS,qCAAqC,GAAG6C,EAAE7C,GAAG,KAAK;AAAA,MACzElB,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE7C,GAAG,KAAKI;AAAA,MACnBtB,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE7C,GAAG,UAAU,CAAC,GAAG6C,EAAE7C,GAAG,SAASM;AAAA,MAC1CxB,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,SAAS,uCAAuC,GAAGA,EAAE,GAAG,KAAK;AAAA,MAC3E/D,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,KAAKtC;AAAA,MACnBzB,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,UAAUpC;AAAA,MACxB3B,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,SAAS,CAAC,GAAGA,EAAE,GAAG,SAAS,wCAAwC,GAAGA,EAAE,GAAG,KAAKmE;AAAA,MAC9FlI,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,KAAKoE;AAAA,MACnBnI,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,UAAU,CAAC,GAAGA,EAAE,GAAG,SAASqE;AAAA,MAC1CpI,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,SAAS,sCAAsC,GAAGA,EAAE,GAAG,KAAKuE;AAAA,MAC1EtI,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,KAAK4F;AAAA,MACnB3J,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,UAAU6F;AAAA,MACxB5J,EAAE,CAAC,EAAE,CAAC,GAAG+D,EAAE,GAAG,SAAS,CAAC;AAAA,IACzB;AAAA,IACD,EAAEuG,GAAGC,GAAG;AACN,MAAAhH,GAAG+G,GAAG,GAAGC,CAAC,GAAGhH,GAAG+G,GAAG,GAAGC,CAAC,GAAGhH,GAAG+G,GAAGvJ,GAAGwJ,CAAC,GAAGhH,GAAG+G,GAAGrJ,GAAGsJ,CAAC,GAAGhH,GAAG+G,GAAGpJ,GAAGqJ,CAAC,GAAGhH,GAAG+G,GAAG,GAAGC,CAAC,GAAGhH,GAAG+G,GAAG,GAAGC,CAAC,GAAGhH,GAAG+G,GAAG5I,GAAG6I,CAAC,GAAGhH,GAAG+G,GAAG,GAAGC,CAAC,GAAGhH,GAAG+G,GAAGjC,GAAGkC,CAAC,GAAGhH,GAAG+G,GAAG,GAAGC,CAAC,GAAGhH,GAAG+G,GAAG,GAAGC,CAAC,GAAGzE,GAAG+D,GAAGS,GAAGC,CAAC,GAAGhH,GAAG+G,GAAGR,IAAGS,CAAC,GAAGzE,GAAG,GAAGwE,GAAGC,CAAC,GAAGhH,GAAG+G,GAAGP,GAAGQ,CAAC,GAAGzE,GAAGkE,GAAGM,GAAGC,CAAC,GAAGhH,GAAG+G,GAAGL,IAAIM,CAAC,GAAGzE,GAAGoE,IAAGI,GAAGC,CAAC,GAAGJ,IAAI,IAAIC,OAAOC,KAAK;AAAA,QAC1QvG,GAAG,GAAG,eAAe,WAAW;AAC9B,UAAAlB;AAAA;AAAA,YAEE5C,EAAE,CAAC,EAAE,OAAO;AAAA,UACxB,KAAeA,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,SAAS;AAAA,QAClD,CAAS;AAAA,QACD8D,GAAG/C,GAAG,eAAe,WAAW;AAC9B,UAAA6B;AAAA;AAAA,YAEE5C,EAAE,CAAC,EAAE,OAAO;AAAA,UACxB,KAAeA,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,SAAS;AAAA,QAClD,CAAS;AAAA,QACD8D,GAAG5C,GAAG,eAAe,WAAW;AAC9B,UAAA0B;AAAA;AAAA,YAEE5C,EAAE,CAAC,EAAE,KAAK;AAAA,UACtB,KAAeA,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,MAAM,SAAS;AAAA,QAChD,CAAS;AAAA,QACD8D,GAAG,GAAG,eAAe,WAAW;AAC9B,UAAAlB;AAAA;AAAA,YAEE5C,EAAE,CAAC,EAAE,OAAO;AAAA,UACxB,KAAeA,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,SAAS;AAAA,QAClD,CAAS;AAAA,QACD8D,GAAG,GAAG,eAAe,WAAW;AAC9B,UAAAlB;AAAA;AAAA,YAEE5C,EAAE,CAAC,EAAE,QAAQ;AAAA,UACzB,KAAeA,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,MAAM,SAAS;AAAA,QACnD,CAAS;AAAA,QACD8D,GAAG,GAAG,eAAe,WAAW;AAC9B,UAAAlB;AAAA;AAAA,YAEE5C,EAAE,CAAC,EAAE,MAAM;AAAA,UACvB,KAAeA,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,MAAM,SAAS;AAAA,QACjD,CAAS;AAAA,MACT,GAASoK,KAAK;AAAA,IACT;AAAA,IACD,EAAEE,GAAGC,GAAG;AACN,MAAAvK,IAAIsK,IAAI,CAACH,KAAKI;AAAA,MACd,KAAK,OAAO;AAAA,MACZvK,EAAE,CAAC,IAAI,kBAAkB,YAAY+D,EAAE,GAAG,SAAS,CAAC,IAAI,CAACoG,KAAKI;AAAA,MAC9D,MAAMnK,OAAOA;AAAA,MACbJ,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,KAAK3D,CAAC,IAAI,CAAC+J,KAAKI;AAAA,MACjC,MAAM7J,OAAOA;AAAA,MACbV,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,KAAKrD,CAAC,IAAI,CAACyJ,KAAKI;AAAA,MACjC,MAAM,OAAO;AAAA,MACbvK,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,SAAS,CAAC,IAAI,CAACoG,KAAKI;AAAA,MACrC,MAAM,OAAO;AAAA,MACbvK,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,UAAU,CAAC,IAAI,CAACoG,KAAKI;AAAA,MACtC,MAAMxG;AAAA,QACJhD;AAAA,QACA;AAAA;AAAA,QAEAf,EAAE,CAAC;AAAA,MACX,IAAU,CAACmK,KAAKI;AAAA,MACV,MAAMvJ,OAAOA;AAAA,MACbhB,EAAE,CAAC,EAAE,OAAO+D,EAAEhD,GAAG,KAAKC,CAAC,IAAI,CAACmJ,KAAKI;AAAA,MACjC,MAAM,OAAO;AAAA,MACbvK,EAAE,CAAC,EAAE,OAAO+D,EAAEhD,GAAG,KAAK,CAAC,IAAI,CAACoJ,KAAKI;AAAA,MACjC,MAAM,OAAO;AAAA,MACbvK,EAAE,CAAC,EAAE,OAAO+D,EAAEhD,GAAG,SAAS,CAAC,IAAI,CAACoJ,KAAKI;AAAA,MACrC,MAAM,OAAO;AAAA,MACbvK,EAAE,CAAC,EAAE,OAAO+D,EAAEhD,GAAG,UAAU,CAAC,IAAI,CAACoJ,KAAKI;AAAA,MACtC,MAAM,OAAO;AAAA,MACbvK,EAAE,CAAC,EAAE,OAAO+D,EAAE7C,GAAG,KAAK,CAAC,IAAI,CAACiJ,KAAKI;AAAA,MACjC,MAAMjJ,OAAOA;AAAA,MACbtB,EAAE,CAAC,EAAE,OAAO+D,EAAE7C,GAAG,KAAKI,CAAC,IAAI,CAAC6I,KAAKI;AAAA,MACjC,MAAM/I,OAAOA;AAAA,MACbxB,EAAE,CAAC,EAAE,OAAO+D,EAAE7C,GAAG,SAASM,CAAC,IAAI,CAAC2I,KAAKI;AAAA,MACrC,MAAM,OAAO;AAAA,MACbvK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,KAAK,CAAC,IAAI,CAACoG,KAAKI;AAAA,MACjC,MAAM9I,OAAOA;AAAA,MACbzB,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,KAAKtC,CAAC,IAAI,CAAC0I,KAAKI;AAAA,MACjC,MAAM5I,OAAOA;AAAA,MACb3B,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,UAAUpC,CAAC,IAAI,CAACwI,KAAKI;AAAA,MACtC,MAAMrC,OAAOA;AAAA,MACblI,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,KAAKmE,CAAC,IAAI,CAACiC,KAAKI;AAAA,MACjC,MAAMpC,OAAOA;AAAA,MACbnI,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,KAAKoE,CAAC,IAAI,CAACgC,KAAKI;AAAA,MACjC,MAAMnC,OAAOA;AAAA,MACbpI,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,SAASqE,CAAC,IAAI,CAAC+B,KAAKI;AAAA,MACrC,MAAMjC,OAAOA;AAAA,MACbtI,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,KAAKuE,CAAC,IAAI,CAAC6B,KAAKI;AAAA,MACjC,MAAMZ,OAAOA;AAAA,MACb3J,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,KAAK4F,CAAC,IAAI,CAACQ,KAAKI;AAAA,MACjC,MAAMX,OAAOA;AAAA,MACb5J,EAAE,CAAC,EAAE,OAAO+D,EAAE,GAAG,UAAU6F,CAAC;AAC5B,YAAM,KAAK,CAAA;AACX,MAAAW;AAAA,MACA,OAAO,GAAG;AAAA,MACVvK,EAAE,CAAC,EAAE,IAAIuK;AAAA,MACT,OAAO,GAAG;AAAA,MACVvK,EAAE,CAAC,EAAE,IAAIuK;AAAA,MACT,MAAM,GAAG;AAAA,MACTvK,EAAE,CAAC,IAAI6J,EAAE,KAAK,EAAE;AAChB,YAAMW,KAAK,CAAA;AACX,MAAAD;AAAA,MACA,OAAOC,GAAG;AAAA,MACVxK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,IAAIuK;AAAA,MACT,OAAOC,GAAG;AAAA,MACVxK,EAAE,CAAC,EAAE,IAAIuK;AAAA,MACT,MAAMC,GAAG;AAAA,MACTxK,EAAE,CAAC,IAAI,EAAE,KAAKwK,EAAE;AAChB,YAAMC,KAAK,CAAA;AACX,MAAAF;AAAA,MACA,OAAOE,GAAG;AAAA,MACVzK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,IAAIuK;AAAA,MACT,OAAOE,GAAG;AAAA,MACVzK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,IAAIuK;AAAA,MACT,MAAME,GAAG;AAAA,MACTzK,EAAE,CAAC,IAAIgK,EAAE,KAAKS,EAAE;AAChB,YAAMC,KAAK,CAAA;AACX,MAAAH;AAAA,MACA,OAAOG,GAAG;AAAA,MACV1K,EAAE,CAAC,EAAE,IAAIuK;AAAA,MACT,OAAOG,GAAG;AAAA,MACV1K,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,IAAIuK;AAAA,MACT,MAAMG,GAAG;AAAA,MACT1K,EAAE,CAAC,IAAIkK,GAAE,KAAKQ,EAAE;AAAA,IACjB;AAAA,IACD,EAAEJ,GAAG;AACH,MAAAH,MAAMzE,GAAGmE,EAAE,GAAG,UAAUS,CAAC,GAAG5E,GAAG,EAAE,GAAG,UAAU4E,CAAC,GAAG5E,GAAGsE,EAAE,GAAG,UAAUM,CAAC,GAAG5E,GAAGwE,GAAE,GAAG,UAAUI,CAAC,GAAGH,IAAI;AAAA,IACnG;AAAA,IACD,EAAEG,GAAG;AACH,MAAA3E,GAAGkE,EAAE,GAAG,UAAUS,CAAC,GAAG3E,GAAG,EAAE,GAAG,UAAU2E,CAAC,GAAG3E,GAAGqE,EAAE,GAAG,UAAUM,CAAC,GAAG3E,GAAGuE,GAAE,GAAG,UAAUI,CAAC,GAAGH,IAAI;AAAA,IAC7F;AAAA,IACD,EAAEG,GAAG;AACH,MAAAA,MAAM9G,GAAG,CAAC,GAAGA,GAAG,CAAC,GAAGA,GAAGzC,CAAC,GAAGyC,GAAGvC,CAAC,GAAGuC,GAAGtC,CAAC,GAAGsC,GAAG,CAAC,GAAGA,GAAG,CAAC,GAAGA,GAAG9B,CAAC,GAAG8B,GAAG,CAAC,GAAGA,GAAG6E,CAAC,GAAG7E,GAAG,CAAC,GAAGA,GAAG,CAAC,GAAGA,GAAGsG,EAAC,GAAGtG,GAAGuG,CAAC,GAAGvG,GAAGyG,EAAE,IAAIlE,GAAG8D,GAAGS,CAAC,GAAGvE,GAAG,GAAGuE,CAAC,GAAGvE,GAAGiE,GAAGM,CAAC,GAAGvE,GAAGmE,IAAGI,CAAC,GAAGF,KAAK,IAAIzH,GAAG0H,EAAE;AAAA,IACxK;AAAA,EACL;AACA;AACA,SAASM,GAAG3K,GAAG;AACb,MAAI,GAAG;AACP,SAAO,IAAI,IAAIiJ,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEEjJ,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL,SAAS;AAAA,QACP,SAAS;AAAA,UACP0J;AAAA,UACA,CAAC,EAAE,MAAMtJ,EAAC,OAAQ,EAAE,GAAGA,EAAC;AAAA,UACxB,CAAC,EAAE,MAAMA,EAAG,MAAKA,IAAI,MAAM;AAAA,QAC5B;AAAA,MACF;AAAA,MACD,SAAS,EAAE,KAAKJ,EAAG;AAAA,IACpB;AAAA,EACL,CAAG,GAAG,EAAE;AAAA,IACJ;AAAA;AAAA,IAEAA,EAAE,CAAC;AAAA,EACJ,GAAE,EAAE;AAAA,IACH;AAAA;AAAA,IAEAA,EAAE,CAAC;AAAA,EACJ,GAAE,EAAE;AAAA,IACH;AAAA;AAAA,IAEAA,EAAE,CAAC;AAAA,EACP,GAAK;AAAA,IACD,IAAI;AACF,MAAA6F,GAAG,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAEzF,GAAGM,GAAG;AACN,MAAAoF,GAAG,GAAG1F,GAAGM,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAEN,GAAG,CAACM,CAAC,GAAG;AACR,YAAM,IAAI,CAAA;AACV,MAAAA;AAAA,MACA,MAAM,EAAE;AAAA,MACRN,EAAE,CAAC,IAAIM;AAAA,MACP,MAAM,EAAE;AAAA,MACRN,EAAE,CAAC,IAAIM;AAAA,MACP,SAAS,EAAE,UAAU,EAAE,OAAOA,GAAG,KAAKN,EAAG,IAAG,EAAE,KAAK,CAAC;AAAA,IACrD;AAAA,IACD,EAAEA,GAAG;AACH,YAAMsF,GAAG,EAAE,GAAG,UAAUtF,CAAC,GAAG,IAAI;AAAA,IACjC;AAAA,IACD,EAAEA,GAAG;AACH,MAAAuF,GAAG,EAAE,GAAG,UAAUvF,CAAC,GAAG,IAAI;AAAA,IAC3B;AAAA,IACD,EAAEA,GAAG;AACH,MAAA2F,GAAG,GAAG3F,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,SAASwK,GAAG5K,GAAG,GAAG,GAAG;AACnB,MAAII,GAAG,EAAE,OAAOM,EAAC,IAAK,GAAG,EAAE,eAAe,MAAM,GAAG,EAAE,WAAW,EAAG,IAAG,GAAG,EAAE,eAAe,IAAI,EAAG,IAAG;AACpG,QAAMK,IAAI,CAAC,GAAGE,GAAGC,MAAM;AACrB,UAAM,IAAI,EAAE,SAAS;AACrB,QAAI,CAACI,GAAGE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI;AACvD,UAAM,CAAC,GAAGC,CAAC,IAAIP;AACf,QAAID,MAAM;AACR,MAAAK,KAAK,GAAG,KAAK,GAAGE,KAAKC,GAAG,KAAKA;AAAA,SAC1B;AACH,cAAQR,GAAC;AAAA,QACP,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,aAAa;AAChB,UAAAO,KAAKC;AACL;AAAA,QACD;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,gBAAgB;AACnB,eAAKA;AACL;AAAA,QACD;AAAA,MACF;AACD,cAAQR,GAAC;AAAA,QACP,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,eAAe;AAClB,UAAAK,KAAK;AACL;AAAA,QACD;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,gBAAgB;AACnB,eAAK;AACL;AAAA,QACD;AAAA,MACF;AAAA,IACF;AACD,UAAMK,IAAI,KAAK,IAAIL,GAAG,CAAC,GAAGI,IAAI,KAAK,IAAIF,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,IAAIF,CAAC,GAAG4G,IAAI,KAAK,IAAI,IAAI1G,CAAC;AACrF,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU;AAAA,QACR,GAAGG;AAAA,QACH,GAAGD;AAAA,QACH,GAAG;AAAA,QACH,GAAGwG;AAAA,QACH,QAAQ;AAAA,UACN,MAAMvG;AAAA,UACN,MAAMD;AAAA,UACN,MAAMC,IAAI;AAAA,UACV,MAAMD,IAAIwG;AAAA,QACX;AAAA,MACF;AAAA,IACP;AAAA,EACA;AACE,WAASlH,EAAE,GAAG;AACZ,IAAAwD,GAAG,KAAK,MAAMxE,GAAG,CAAC;AAAA,EACnB;AACD,WAAS,EAAE,GAAG;AACZ,IAAAwE,GAAG,KAAK,MAAMxE,GAAG,CAAC;AAAA,EACnB;AACD,WAAS,EAAE,GAAG;AACZ,IAAAwE,GAAG,KAAK,MAAMxE,GAAG,CAAC;AAAA,EACnB;AACD,SAAOA,EAAE,QAAQ,CAAC,MAAM;AACtB,eAAW,KAAK,EAAE,GAAGU,IAAI,EAAE,KAAK,GAAG,mBAAmB,KAAK,EAAE,GAAG,IAAI,EAAE,aAAa,GAAG,eAAe,KAAK,EAAE,GAAG,IAAI,EAAE,SAAS,GAAG,mBAAmB,KAAK,EAAE,GAAG,IAAI,EAAE,aAAa;AAAA,EACrL,GAAKV,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,KAAK,EAAE,GAAGI,IAAIM,EAAE,QAAQ;AAAA,EAC5B,GAAK;AAAA,IACDA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAN;AAAA,IACAW;AAAA,IACAC;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AACA,MAAM6J,WAAW3E,GAAG;AAAA,EAClB,YAAY,GAAG;AACb,UAAK,GAAID,GAAG,MAAM,GAAG2E,IAAID,IAAI9H,IAAI;AAAA,MAC/B,OAAO;AAAA,MACP,eAAe;AAAA,MACf,WAAW;AAAA,MACX,eAAe;AAAA,IACrB,CAAK;AAAA,EACF;AACH;AACA,MAAMiI,KAAqB,oBAAI,IAAI;AAAA,EACjC,CAAC1E,GAAG,WAAWyE,EAAE;AAAA,EACjB,CAACzE,GAAG,SAAS+C,EAAE;AACjB,CAAC,GAAG4B,KAAK,CAAC/K,MAAM8K,GAAG,IAAI9K,EAAE,IAAI,GAAGgL,KAAK,CAAChL,GAAG,MAAM8K,GAAG,IAAI9K,GAAG,CAAC,GAAGiL,KAAK,CAACjL,OAAO,CAAA,IAAKkL,KAAK,CAAClL,OAAO,EAAE;AAAA;AAAA,EAE5FA,EAAE,CAAC;AAAA,EACJ;AACD,SAASmL,GAAGnL,GAAG;AACb,MAAI,GAAG,GAAGI,GAAGM;AACb,QAAM;AAAA;AAAA,IAEJV,EAAE,CAAC,EAAE;AAAA,KACJ,IAAI+C;AAAA,IACL;AAAA,IACA/C;AAAA;AAAA,IAEAA,EAAE,CAAC;AAAA,IACHkL;AAAA,EACJ;AACE,SAAO;AAAA,IACL,IAAI;AACF,UAAIxH,GAAG,GAAG,GAAG,KAAK,EAAE,EAAG,GAAEK,EAAE,GAAG,SAAS,yBAAyB;AAAA,IACjE;AAAA,IACD,EAAE,GAAGhD,GAAG;AACN,MAAAwC,GAAG,GAAG,GAAGxC,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,IAAIX,MAAMM,IAAI;AAAA,QAChDoD;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA9D,EAAE,CAAC;AAAA,QACJ;AAAA,QACD8D;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA9D,EAAE,CAAC;AAAA,QACJ;AAAA,MACT,GAASI,IAAI;AAAA,IACR;AAAA,IACD,EAAE,GAAG,CAACW,CAAC,GAAG;AACR,WAAK,EAAE,MAAM,CAAC,KAAKA;AAAA,MACnB,OAAOmC;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,QACH,IAAID;AAAA,UACF;AAAA;AAAA,UAEA,EAAE,CAAC;AAAA,UACHlC;AAAA,UACAkK;AAAA,QACV,IAAY9H;AAAA;AAAA,UAEF,EAAE,CAAC;AAAA,QACJ;AAAA,QACD+H;AAAA,MACR;AAAA,IACK;AAAA,IACD,EAAE,GAAG;AACH,YAAMxF,GAAG,GAAG,CAAC,GAAG,IAAI;AAAA,IACrB;AAAA,IACD,EAAE,GAAG;AACH,MAAAC,GAAG,GAAG,CAAC,GAAG,IAAI;AAAA,IACf;AAAA,IACD,EAAE,GAAG;AACH,WAAKnC,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,GAAGpD,IAAI,IAAIuC,GAAGjC,CAAC;AAAA,IACtC;AAAA,EACL;AACA;AACA,SAAS0K,GAAGpL,GAAG,GAAG,GAAG;AACnB,MAAI,EAAE,SAASI,IAAI,CAAA,GAAI,SAASM,EAAG,IAAG;AACtC,QAAM,IAAI6D;AACV,MAAI,EAAE,OAAO,EAAC,IAAK,GAAG,EAAE,QAAQ,EAAG,IAAG,GAAG,EAAE,WAAWxD,EAAG,IAAG,GAAGC,GAAG,GAAG;AACrE,QAAM,IAAI,CAAC,MAAM,CAACM,MAAM;AACtB,IAAAN,IAAI,GAAG,IAAID,EAAE,eAAeO,EAAE,SAASA,EAAE,OAAO,GAAG,IAAI,GAAGA,EAAE,OAAO,kBAAkBA,EAAE,SAAS,GAAG,EAAE,QAAQA,CAAC;AAAA,EAClH,GAAKL,IAAI,CAAC,MAAM;AACZ,QAAID,GAAG;AACL,YAAM,CAACM,GAAGE,CAAC,IAAIT,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAACO,IAAI,EAAE,CAAC,GAAGE,IAAI,EAAE,CAAC,CAAC;AAC9E,QAAE,GAAG,IAAI,EAAE,GAAGR,GAAG,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC;AAAA,IACpC;AAAA,EACL,GAAKE,IAAI,CAAC,MAAM;AACZ,MAAE,OAAO,sBAAsB,EAAE,SAAS,GAAGF,IAAI,QAAQ,IAAI,GAAG,EAAE,WAAW,CAAC;AAAA,EAClF;AACE,SAAOhB,EAAE,QAAQ,CAAC,MAAM;AACtB,eAAW,KAAK,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,YAAY,KAAK,EAAE,GAAG,IAAI,EAAE,MAAM,GAAG,eAAe,KAAK,EAAE,GAAGe,IAAI,EAAE,SAAS,GAAG,aAAa,KAAK,EAAE,GAAGL,IAAI,EAAE,OAAO;AAAA,EAC3J,GAAK,CAAC,GAAGO,GAAGC,GAAG,GAAG,GAAGH,GAAGL,GAAGN,CAAC;AAC5B;AACA,MAAM6I,WAAW/C,GAAG;AAAA,EAClB,YAAY,GAAG;AACb,UAAK,GAAID,GAAG,MAAM,GAAGmF,IAAID,IAAItI,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,EAAC,CAAE;AAAA,EACvE;AACH;AAoFA,SAASwI,GAAGrL,GAAG;AACb,MAAI,GAAG;AACP,SAAO;AAAA,IACL,IAAI;AACF,UAAI0D,GAAG,MAAM,GAAG,IAAIA,GAAG,MAAM,GAAGK,EAAE,GAAG,SAAS,WAAW,GAAGA;AAAA,QAC1D;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACJ,GAAE+D,EAAE,GAAG,SAAS,WAAW,GAAGA;AAAA,QAC7B;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAEI,GAAGM,GAAG;AACN,MAAA6C,GAAGnD,GAAG,GAAGM,CAAC,GAAG6C,GAAGnD,GAAG,GAAGM,CAAC;AAAA,IACxB;AAAA,IACD,EAAEN,GAAGM,GAAG;AACN,MAAAA;AAAA,MACA,KAAKqD;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA3D,EAAE,CAAC;AAAA,MACX,GAASM;AAAA,MACH,KAAKqD;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA3D,EAAE,CAAC;AAAA,MACX,GAASM;AAAA,MACH,KAAKqD;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA3D,EAAE,CAAC;AAAA,MACX,GAASM;AAAA,MACH,MAAMqD;AAAA,QACJ;AAAA,QACA;AAAA;AAAA,QAEA3D,EAAE,CAAC;AAAA,MACX,GAASM;AAAA,MACH,KAAKqD;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA3D,EAAE,CAAC;AAAA,MACX,GAASM;AAAA,MACH,KAAKqD;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA3D,EAAE,CAAC;AAAA,MACX,GAASM;AAAA,MACH,KAAKqD;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA3D,EAAE,CAAC;AAAA,MACX,GAASM;AAAA,MACH,MAAMqD;AAAA,QACJ;AAAA,QACA;AAAA;AAAA,QAEA3D,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAEA,GAAG;AACH,MAAAA,MAAMoD,GAAG,CAAC,GAAGA,GAAG,CAAC;AAAA,IAClB;AAAA,EACL;AACA;AACA,SAAS8H,GAAGtL,GAAG;AACb,MAAI,GAAG;AAAA;AAAA,IAELA,EAAE,CAAC,KAAKqL,GAAGrL,CAAC;AAAA;AAEd,SAAO;AAAA,IACL,IAAI;AACF,UAAI0D,GAAG,GAAG,GAAG,KAAK,EAAE,EAAG,GAAEK,EAAE,GAAG,SAAS,+BAA+B;AAAA,IACvE;AAAA,IACD,EAAE3D,GAAGM,GAAG;AACN,MAAA6C,GAAGnD,GAAG,GAAGM,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI;AAAA,IAC9B;AAAA,IACD,EAAEN,GAAG,CAACM,CAAC,GAAG;AACR,MAAAN,EAAE,CAAC,IAAI,IAAI,EAAE,EAAEA,GAAGM,CAAC,KAAK,IAAI2K,GAAGjL,CAAC,GAAG,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,IAAI,KAAK,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI;AAAA,IAC7E;AAAA,IACD,GAAGmC;AAAA,IACH,GAAGA;AAAA,IACH,EAAEnC,GAAG;AACH,MAAAA,KAAKoD,GAAG,CAAC,GAAG,KAAK,EAAE;IACpB;AAAA,EACL;AACA;AACA,SAAS+H,GAAGvL,GAAG,GAAG,GAAG;AACnB,QAAMI,IAAImE;AACV,MAAI,EAAE,kBAAkB7D,MAAM,GAAG,EAAE,aAAa,MAAM,GAAG,EAAE,WAAW,MAAM,GAAG,GAAGK,GAAGC,GAAG,GAAG,GAAG,GAAGC;AACjG,QAAMC,IAAI,CAAC,MAAM;AACf,UAAM,IAAI;AACV,QAAI,YAAY,OAAO,MAAM,WAAW,EAAE,GAAGH,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,GAAGC,IAAID,GAAG,EAAE,GAAG,IAAIA,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAIA,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAGE,IAAI,CAAC;AAAA,EAC5J,GAAK,IAAI,CAAC,MAAM;AACZ,UAAM,IAAI;AACV,IAAAF,MAAMC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,GAAG,IAAI,KAAK,IAAIA,EAAE,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,IAAIC,EAAE,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,IAAIC,EAAE,CAAC,IAAID,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAGE,IAAI,KAAK,IAAID,EAAE,CAAC,IAAID,EAAE,CAAC,CAAC,CAAC;AAAA,EACrL,GAAKO,IAAI,CAAC,MAAM;AACZ,UAAM,IAAI,GAAG,IAAI,YAAY,IAAK,IAAG;AACrC,QAAI,MAAM,SAAS;AACjB,UAAI,IAAI;AACN;AACF,QAAE,gBAAiB,GAAEP,IAAIS,EAAG,KAAI,EAAE,GAAGT,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,GAAGC,IAAID,GAAG,EAAE,GAAG,IAAIA,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAIA,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAGE,IAAI,CAAC;AAAA,IACjJ;AACC,MAAAF,MAAM,IAAI,OAAO,IAAIE,IAAI,OAAO,EAAE,mBAAmBO,EAAG,MAAK,EAAE,GAAGT,IAAI,MAAM,GAAGC,IAAI;AAAA,EACtF,GAAEQ,IAAI,MAAM;AACX,QAAI,IAAIP,IAAI,IAAI;AACd,YAAM,IAAI;AAAA,QACR,MAAMmF,GAAG;AAAA,QACT,UAAU;AAAA,UACR,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM,IAAI;AAAA,YACV,MAAM,IAAInF;AAAA,UACX;AAAA,UACD,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAGA;AAAA,QACJ;AAAA,MACT;AACM,MAAAb,EAAE,UAAU,CAAC;AAAA,IACd;AACD,MAAE,GAAGW,IAAI,MAAM,GAAGC,IAAI;AAAA,EAC1B;AACE,SAAOsD,GAAG,MAAM;AACd,IAAA5D,EAAE,eAAeQ,CAAC,GAAGR,EAAE,eAAe,CAAC,GAAGA,EAAE,aAAaY,GAAG,EAAE;AAAA,EAC/D,CAAA,GAAGtB,EAAE,QAAQ,CAAC,MAAM;AACnB,0BAAsB,KAAK,EAAE,GAAGU,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,KAAK,EAAE,GAAG,IAAI,EAAE,WAAW,GAAG,eAAe,KAAK,EAAE,GAAG,IAAI,EAAE,SAAS;AAAA,EACpJ,GAAK,CAACK,GAAG,GAAG,GAAG,GAAGE,GAAGP,GAAG,GAAG,CAAC;AAC5B;AACA,MAAM8K,WAAWtF,GAAG;AAAA,EAClB,YAAY,GAAG;AACb,UAAK,GAAID,GAAG,MAAM,GAAGsF,IAAID,IAAIzI,IAAI;AAAA,MAC/B,kBAAkB;AAAA,MAClB,aAAa;AAAA,MACb,WAAW;AAAA,IACjB,CAAK;AAAA,EACF;AACH;AACA,SAAS4I,GAAGzL,GAAG;AACb,QAAM,IAAIA,EAAE,MAAK,GAAI;AAAA;AAAA,KAElB,EAAE,CAAC;AAAA;AAAA,MAEF,EAAE,CAAC;AAAA,QACD;AAAA,MACF;AAAA,MACA,EAAE,CAAC;AAAA;AAAA,MAEH,EAAE,CAAC;AAAA,IACT,GAAO,IAAI,CAACI,MAAMA,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG;AAAA;AAErC,SAAO,EAAE,EAAE,IAAI,GAAG;AACpB;AACA,SAASsL,GAAG1L,GAAG;AACb,MAAI,GAAG,GAAGI,GAAGM,GAAG,GAAG;AAAA;AAAA,IAEjBV,EAAE,CAAC,KAAK2L,GAAG3L,CAAC;AAAA;AAEd,SAAO;AAAA,IACL,IAAI;AACF,UAAI0D,GAAG,SAAS,GAAGtD,IAAIsD,GAAG,SAAS,GAAG,KAAK,EAAE,EAAC,GAAI,IAAIG,GAAE,GAAIE,EAAE,GAAG,SAAS,WAAW,GAAGA,EAAE,GAAG,UAAU;AAAA,MACvG/D,EAAE,EAAE,CAAC,GAAG+D,EAAE3D,GAAG,SAAS,WAAW,GAAG2D,EAAE3D,GAAG,UAAUM;AAAA,MACnDV,EAAE,EAAE,CAAC;AAAA,IACN;AAAA,IACD,EAAE,GAAGe,GAAG;AACN,MAAAwC,GAAG,GAAG,GAAGxC,CAAC,GAAGwC,GAAG,GAAGnD,GAAGW,CAAC,GAAG,KAAK,EAAE,EAAE,GAAGA,CAAC,GAAGwC,GAAG,GAAG,GAAGxC,CAAC;AAAA,IACrD;AAAA,IACD,EAAE,GAAGA,GAAG;AACN,MAAAA;AAAA,MACA,KAAK,OAAO;AAAA,MACZ,EAAE,EAAE,MAAMgD,EAAE,GAAG,UAAU,CAAC,GAAGhD;AAAA,MAC7B,KAAKL,OAAOA;AAAA,MACZ,EAAE,EAAE,MAAMqD,EAAE3D,GAAG,UAAUM,CAAC;AAAA,MAC1B,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,GAAGK,CAAC,KAAK,IAAI4K,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI;AAAA,IACrF;AAAA,IACD,EAAE,GAAG;AACH,YAAMnI,GAAG,CAAC,GAAGA,GAAGpD,CAAC,GAAGoD,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;AAAA,IACvC;AAAA,EACL;AACA;AACA,SAASmI,GAAG3L,GAAG;AACb,MAAI,GAAG,GAAGI;AACV,SAAO;AAAA,IACL,IAAI;AACF,UAAIsD,GAAG,MAAM,GAAGK,EAAE,GAAG,SAAS,mBAAmB,GAAGA,EAAE,GAAG,KAAK;AAAA,MAC9D/D,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAA,MACTA,EAAE,CAAC,IAAI,CAAC,GAAG+D,EAAE,GAAG,KAAK3D;AAAA,MACrBJ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAA,MACTA,EAAE,CAAC,IAAI,CAAC,GAAG+D;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX,GAAS+D;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA/D,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAEU,GAAG,GAAG;AACN,MAAA6C,GAAG7C,GAAG,GAAG,CAAC;AAAA,IACX;AAAA,IACD,EAAEA,GAAG,GAAG;AACN;AAAA,MACA,KAAK,OAAO;AAAA,MACZA,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAA,MACTA,EAAE,CAAC,IAAI,MAAMqD,EAAE,GAAG,KAAK,CAAC,GAAG;AAAA,MAC3B,KAAK3D,OAAOA;AAAA,MACZM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAA,MACTA,EAAE,CAAC,IAAI,MAAMqD,EAAE,GAAG,KAAK3D,CAAC,GAAG;AAAA,MAC3B,KAAK2D;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEArD,EAAE,CAAC;AAAA,MACX,GAAS;AAAA,MACH,KAAKqD;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEArD,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAEA,GAAG;AACH,MAAAA,KAAK8C,GAAG,CAAC;AAAA,IACV;AAAA,EACL;AACA;AACA,SAASoI,GAAG5L,GAAG;AACb,MAAI,GAAG;AAAA;AAAA,IAELA,EAAE,CAAC,KAAK0L,GAAGD,GAAGzL,CAAC,CAAC;AAAA;AAElB,SAAO;AAAA,IACL,IAAI;AACF,UAAI0D,GAAG,GAAG,GAAG,KAAK,EAAE,EAAG,GAAEK,EAAE,GAAG,SAAS,+BAA+B;AAAA,IACvE;AAAA,IACD,EAAE3D,GAAGM,GAAG;AACN,MAAA6C,GAAGnD,GAAG,GAAGM,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI;AAAA,IAC9B;AAAA,IACD,EAAEN,GAAG,CAACM,CAAC,GAAG;AACR,MAAAN,EAAE,CAAC,IAAI,IAAI,EAAE,EAAEqL,GAAGrL,CAAC,GAAGM,CAAC,KAAK,IAAIgL,GAAGD,GAAGrL,CAAC,CAAC,GAAG,EAAE,EAAC,GAAI,EAAE,EAAE,GAAG,IAAI,KAAK,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI;AAAA,IACrF;AAAA,IACD,GAAGmC;AAAA,IACH,GAAGA;AAAA,IACH,EAAEnC,GAAG;AACH,MAAAA,KAAKoD,GAAG,CAAC,GAAG,KAAK,EAAE;IACpB;AAAA,EACL;AACA;AACA,MAAMqI,KAAK,IAAIC,KAAK;AACpB,SAASC,GAAG/L,GAAG,GAAG,GAAG;AACnB,MAAII;AACJ,QAAMM,IAAI6D;AACV,MAAI,EAAE,kBAAkB,EAAG,IAAG,GAAG,EAAE,aAAa,EAAC,IAAK,GAAG,EAAE,WAAW,EAAC,IAAK,GAAG,EAAE,eAAexD,IAAI,EAAG,IAAG,GAAGC,GAAG,IAAI,CAAA,GAAI,GAAG,GAAGC,IAAI;AAClI,QAAMC,IAAI,CAAC,MAAM;AACf,UAAM,IAAI,GAAG,EAAE,WAAWO,GAAG,SAASE,GAAG,SAASD,EAAG,IAAG;AACxD,QAAIV,IAAI,EAAE,WAAWS,GAAG,SAASE,GAAG,SAASD,EAAC,GAAI,MAAM,UAAU,EAAE,WAAW,GAAG;AAChF,YAAM,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO;AAC/C,QAAE,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAAA,IACtB;AAAA,EACL,GAAK,IAAI,CAAC,MAAM;AACZ,UAAM,IAAI;AACV,QAAI,KAAK,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG;AACtC,UAAI,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG;AAClE,cAAMD,IAAI2H,GAAG,GAAG,EAAE,CAAC,CAAC,IAAIrI;AACxB,UAAE,GAAGE,IAAIQ,IAAIoK,EAAE;AAAA,MAChB;AACD,QAAE,gBAAgB,YAAY,IAAI;AAAA,QAChC,MAAM;AACJ,UAAArK;QACD;AAAA,QACDsK;AAAA,MACR;AAAA,IACK;AAAA,EACL,GAAKxK,IAAI,CAAC,MAAM;AACZ,UAAM,IAAI;AACV,QAAI,KAAK,aAAa,CAAC,GAAG,MAAM,SAAS;AACvC,YAAMG,IAAI,EAAE,YAAYT,EAAE,WAAWW,IAAIyH,GAAG,CAACpI,EAAE,SAASA,EAAE,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC;AAC1F,UAAIS,IAAI,OAAOE,IAAI;AACjB;AACF,UAAIV;AACF;eACO,EAAE,WAAW,GAAG;AACvB,cAAMS,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO;AAC/C,UAAE,KAAKA,CAAC,GAAG,EAAE,GAAG,IAAIA,CAAC;AAAA,MACtB;AACC,UAAE,KAAK,CAAC;AAAA,IAChB,OAAW;AACL,UAAI,EAAE,WAAW,KAAK0H,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG;AACtC,UAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM;AAC7B;AAAA,MACD;AACD,QAAE,yBAA0B,GAAEnI,IAAI,EAAG,IAAG,EAAE,KAAK,CAAC;AAAA,IACjD;AAAA,EACF,GAAEO,IAAI,MAAM;AACX,QAAI,CAAC;AACH;AACF,UAAM,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI;AAAA,MACvB,MAAM4E,GAAG;AAAA,MACT,UAAU,EAAE,QAAQK,GAAG,CAAC,GAAG,QAAQ,EAAG;AAAA,IAC5C;AACI,IAAAF,GAAG,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,GAAG7F,EAAE,UAAU,CAAC;AAAA,EAC5D,GAAE,IAAI,MAAM;AACX,UAAM,IAAI;AAAA,MACR,MAAM0F,GAAG;AAAA,MACT,UAAU;AAAA,QACR,QAAQK,GAAG,CAAC;AAAA,QACZ,QAAQ,CAAC,GAAG,CAAC;AAAA,MACd;AAAA,IACP;AACI,MAAE,GAAG,IAAI,CAAE,CAAA,GAAG,EAAE,GAAG,IAAI,MAAM,GAAG/F,EAAE,UAAU,CAAC;AAAA,EACjD;AACE,SAAO4D,GAAG,MAAM;AACd,MAAE,eAAepD,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,aAAaI,GAAG,EAAE,GAAG,EAAE,YAAYE,GAAG,EAAE;AAAA,EACzF,CAAA,GAAGxB,EAAE,QAAQ,CAAC,MAAM;AACnB,0BAAsB,KAAK,EAAE,GAAG,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,KAAK,EAAE,GAAG,IAAI,EAAE,WAAW,GAAG,eAAe,KAAK,EAAE,GAAG,IAAI,EAAE,SAAS,GAAG,mBAAmB,KAAK,EAAE,GAAGe,IAAI,EAAE,aAAa;AAAA,EACvM,GAAKf,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,OAAO,EAAE,GAAGI,IAAI,KAAKW,CAAC;AAAA,EAC1B,GAAK;AAAA,IACD;AAAA,IACA;AAAA,IACAE;AAAA,IACAb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAW;AAAA,EACJ;AACA;AACA,MAAMiL,WAAW9F,GAAG;AAAA,EAClB,YAAY,GAAG;AACb,UAAK,GAAID,GAAG,MAAM,GAAG8F,IAAIH,IAAI/I,IAAI;AAAA,MAC/B,kBAAkB;AAAA,MAClB,aAAa;AAAA,MACb,WAAW;AAAA,MACX,eAAe;AAAA,IACrB,CAAK;AAAA,EACF;AACH;AACA,MAAMoJ,KAAqB,oBAAI,IAAI;AAAA,EACjC,CAAC,aAAa,EAAE,MAAMT,IAAI;AAAA,EAC1B,CAAC,WAAW,EAAE,MAAMQ,IAAI;AAC1B,CAAC,GAAGE,KAAK,MAAM,CAAC,GAAGD,GAAG,KAAI,CAAE,GAAGE,KAAK,CAACnM,MAAMiM,GAAG,IAAIjM,CAAC,GAAGoM,KAAK,CAACpM,GAAG,GAAG,MAAMiM,GAAG,IAAIjM,GAAG,EAAE,MAAM,GAAG,MAAM,EAAG,CAAA;AAiiCtG,SAASqM,GAAGrM,GAAG,GAAG,GAAGI,GAAGM,GAAG;AACzB,EAAA4L,GAAGtM,GAAG,GAAG,KAAK,GAAGI,KAAKJ,EAAE,SAAS,GAAGU,KAAK6L,EAAE;AAC7C;AACA,SAASD,GAAGtM,GAAG,GAAG,GAAGI,GAAGM,GAAG;AACzB,SAAON,IAAI,KAAK;AACd,QAAIA,IAAI,IAAI,KAAK;AACf,UAAI,IAAIA,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,GAAGW,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,GAAGC,IAAI,MAAM,KAAK,KAAK,IAAID,KAAK,IAAIA,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,IAAIA,IAAI,IAAIC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAIZ,GAAG,KAAK,MAAM,KAAK,IAAI,KAAKW,IAAI,IAAIC,CAAC,CAAC;AAC1P,MAAAsL,GAAGtM,GAAG,GAAG,GAAG,GAAGU,CAAC;AAAA,IACjB;AACD,QAAI,IAAIV,EAAE,CAAC,GAAGiB,IAAI,GAAGC,IAAId;AACzB,SAAKoM,GAAGxM,GAAG,GAAG,CAAC,GAAGU,EAAEV,EAAEI,CAAC,GAAG,CAAC,IAAI,KAAKoM,GAAGxM,GAAG,GAAGI,CAAC,GAAGa,IAAIC,KAAK;AACxD,WAAKsL,GAAGxM,GAAGiB,GAAGC,CAAC,GAAGD,KAAKC,KAAKR,EAAEV,EAAEiB,CAAC,GAAG,CAAC,IAAI;AACvC,QAAAA;AACF,aAAOP,EAAEV,EAAEkB,CAAC,GAAG,CAAC,IAAI;AAClB,QAAAA;AAAA,IACH;AACD,IAAAR,EAAEV,EAAE,CAAC,GAAG,CAAC,MAAM,IAAIwM,GAAGxM,GAAG,GAAGkB,CAAC,KAAKA,KAAKsL,GAAGxM,GAAGkB,GAAGd,CAAC,IAAIc,KAAK,MAAM,IAAIA,IAAI,IAAI,KAAKA,MAAMd,IAAIc,IAAI;AAAA,EAChG;AACH;AACA,SAASsL,GAAGxM,GAAG,GAAG,GAAG;AACnB,MAAII,IAAIJ,EAAE,CAAC;AACX,EAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAII;AACtB;AACA,SAASmM,GAAGvM,GAAG,GAAG;AAChB,SAAOA,IAAI,IAAI,KAAKA,IAAI,IAAI,IAAI;AAClC;AACA,MAAMyM,GAAG;AAAA,EACP,YAAY,IAAI,GAAG;AACjB,SAAK,cAAc,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,cAAc,KAAK,IAAI,GAAG,KAAK,KAAK,KAAK,cAAc,GAAG,CAAC,GAAG,KAAK;EAC5G;AAAA,EACD,MAAM;AACJ,WAAO,KAAK,KAAK,KAAK,MAAM,CAAE,CAAA;AAAA,EAC/B;AAAA,EACD,OAAO,GAAG;AACR,QAAI,IAAI,KAAK;AACb,UAAMrM,IAAI,CAAA;AACV,QAAI,CAACsM,GAAG,GAAG,CAAC;AACV,aAAOtM;AACT,UAAMM,IAAI,KAAK,QAAQ,IAAI,CAAA;AAC3B,WAAO,KAAK;AACV,eAAS,IAAI,GAAG,IAAI,EAAE,SAAS,QAAQ,KAAK;AAC1C,cAAM,IAAI,EAAE,SAAS,CAAC,GAAGK,IAAI,EAAE,OAAOL,EAAE,CAAC,IAAI;AAC7C,QAAAgM,GAAG,GAAG3L,CAAC,MAAM,EAAE,OAAOX,EAAE,KAAK,CAAC,IAAIuM,GAAG,GAAG5L,CAAC,IAAI,KAAK,KAAK,GAAGX,CAAC,IAAI,EAAE,KAAK,CAAC;AAAA,MACxE;AACD,UAAI,EAAE;IACP;AACD,WAAOA;AAAA,EACR;AAAA,EACD,SAAS,GAAG;AACV,QAAI,IAAI,KAAK;AACb,QAAI,CAACsM,GAAG,GAAG,CAAC;AACV,aAAO;AACT,UAAMtM,IAAI,CAAA;AACV,WAAO,KAAK;AACV,eAASM,IAAI,GAAGA,IAAI,EAAE,SAAS,QAAQA,KAAK;AAC1C,cAAM,IAAI,EAAE,SAASA,CAAC,GAAG,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI;AACvD,YAAIgM,GAAG,GAAG,CAAC,GAAG;AACZ,cAAI,EAAE,QAAQC,GAAG,GAAG,CAAC;AACnB,mBAAO;AACT,UAAAvM,EAAE,KAAK,CAAC;AAAA,QACT;AAAA,MACF;AACD,UAAIA,EAAE;IACP;AACD,WAAO;AAAA,EACR;AAAA,EACD,KAAK,GAAG;AACN,QAAI,EAAE,KAAK,EAAE;AACX,aAAO;AACT,QAAI,EAAE,SAAS,KAAK,aAAa;AAC/B,eAASA,IAAI,GAAGA,IAAI,EAAE,QAAQA;AAC5B,aAAK,OAAO,EAAEA,CAAC,CAAC;AAClB,aAAO;AAAA,IACR;AACD,QAAI,IAAI,KAAK,OAAO,EAAE,MAAK,GAAI,GAAG,EAAE,SAAS,GAAG,CAAC;AACjD,QAAI,CAAC,KAAK,KAAK,SAAS;AACtB,WAAK,OAAO;AAAA,aACL,KAAK,KAAK,WAAW,EAAE;AAC9B,WAAK,WAAW,KAAK,MAAM,CAAC;AAAA,SACzB;AACH,UAAI,KAAK,KAAK,SAAS,EAAE,QAAQ;AAC/B,cAAMA,IAAI,KAAK;AACf,aAAK,OAAO,GAAG,IAAIA;AAAA,MACpB;AACD,WAAK,QAAQ,GAAG,KAAK,KAAK,SAAS,EAAE,SAAS,GAAG,EAAE;AAAA,IACpD;AACD,WAAO;AAAA,EACR;AAAA,EACD,OAAO,GAAG;AACR,WAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC,GAAG;AAAA,EACpD;AAAA,EACD,QAAQ;AACN,WAAO,KAAK,OAAOwM,GAAG,CAAE,CAAA,GAAG;AAAA,EAC5B;AAAA,EACD,OAAO,GAAG,GAAG;AACX,QAAI,CAAC;AACH,aAAO;AACT,QAAIxM,IAAI,KAAK;AACb,UAAMM,IAAI,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA,GAAI,IAAI;AACtC,QAAI,GAAGK,GAAGC;AACV,WAAOZ,KAAK,EAAE,UAAU;AACtB,UAAIA,MAAMA,IAAI,EAAE,IAAK,GAAEW,IAAI,EAAE,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,IAAK,GAAEC,IAAI,KAAKZ,EAAE,MAAM;AACxE,cAAM,IAAIyM,GAAG,GAAGzM,EAAE,UAAU,CAAC;AAC7B,YAAI,MAAM;AACR,iBAAOA,EAAE,SAAS,OAAO,GAAG,CAAC,GAAG,EAAE,KAAKA,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG;AAAA,MACjE;AACD,OAACY,KAAK,CAACZ,EAAE,QAAQuM,GAAGvM,GAAGM,CAAC,KAAK,EAAE,KAAKN,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,GAAGW,IAAIX,GAAGA,IAAIA,EAAE,SAAS,CAAC,KAAKW,KAAK,KAAKX,IAAIW,EAAE,SAAS,CAAC,GAAGC,IAAI,MAAMZ,IAAI;AAAA,IAClI;AACD,WAAO;AAAA,EACR;AAAA,EACD,OAAO,GAAG;AACR,WAAO;AAAA,EACR;AAAA,EACD,YAAY,GAAG,GAAG;AAChB,WAAO,EAAE,OAAO,EAAE;AAAA,EACnB;AAAA,EACD,YAAY,GAAG,GAAG;AAChB,WAAO,EAAE,OAAO,EAAE;AAAA,EACnB;AAAA,EACD,SAAS;AACP,WAAO,KAAK;AAAA,EACb;AAAA,EACD,SAAS,GAAG;AACV,WAAO,KAAK,OAAO,GAAG;AAAA,EACvB;AAAA,EACD,KAAK,GAAG,GAAG;AACT,UAAMA,IAAI,CAAA;AACV,WAAO;AACL,QAAE,OAAO,EAAE,KAAK,GAAG,EAAE,QAAQ,IAAIA,EAAE,KAAK,GAAG,EAAE,QAAQ,GAAG,IAAIA,EAAE;AAChE,WAAO;AAAA,EACR;AAAA,EACD,OAAO,GAAG,GAAGA,GAAGM,GAAG;AACjB,UAAM,IAAIN,IAAI,IAAI;AAClB,QAAI,IAAI,KAAK,aAAa;AAC1B,QAAI,KAAK;AACP,aAAO,IAAIwM,GAAG,EAAE,MAAM,GAAGxM,IAAI,CAAC,CAAC,GAAG0M,GAAG,GAAG,KAAK,MAAM,GAAG;AACxD,IAAApM,MAAMA,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,GAAGA,IAAI,CAAC,CAAC,IAAI,IAAIkM,GAAG,CAAE,CAAA,GAAG,EAAE,OAAO,IAAI,EAAE,SAASlM;AAC5H,UAAMK,IAAI,KAAK,KAAK,IAAI,CAAC,GAAGC,IAAID,IAAI,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC;AAC1D,IAAAgM,GAAG,GAAG,GAAG3M,GAAGY,GAAG,KAAK,WAAW;AAC/B,aAAS,IAAI,GAAG,KAAKZ,GAAG,KAAKY,GAAG;AAC9B,YAAM,IAAI,KAAK,IAAI,IAAIA,IAAI,GAAGZ,CAAC;AAC/B,MAAA2M,GAAG,GAAG,GAAG,GAAGhM,GAAG,KAAK,WAAW;AAC/B,eAAS,IAAI,GAAG,KAAK,GAAG,KAAKA,GAAG;AAC9B,cAAME,IAAI,KAAK,IAAI,IAAIF,IAAI,GAAG,CAAC;AAC/B,UAAE,SAAS,KAAK,KAAK,OAAO,GAAG,GAAGE,GAAGP,IAAI,CAAC,CAAC;AAAA,MAC5C;AAAA,IACF;AACD,WAAOoM,GAAG,GAAG,KAAK,MAAM,GAAG;AAAA,EAC5B;AAAA,EACD,eAAe,GAAG,GAAG1M,GAAGM,GAAG;AACzB,WAAOA,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQA,EAAE,SAAS,MAAMN,MAAM;AACnD,UAAI,IAAI,OAAO,IAAI,OAAO;AAC1B,eAASW,IAAI,GAAGA,IAAI,EAAE,SAAS,QAAQA,KAAK;AAC1C,cAAMC,IAAI,EAAE,SAASD,CAAC,GAAG,IAAIiM,GAAGhM,CAAC,GAAG,IAAIiM,GAAG,GAAGjM,CAAC,IAAI;AACnD,YAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAIA,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,GAAG,IAAIA;AAAA,MAC7E;AACD,UAAI,KAAK,EAAE,SAAS,CAAC;AAAA,IACtB;AACD,WAAO;AAAA,EACR;AAAA,EACD,QAAQ,GAAG,GAAGZ,GAAG;AACf,UAAMM,IAAIN,IAAI,IAAI,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA,GAAI,IAAI,KAAK,eAAeM,GAAG,KAAK,MAAM,GAAG,CAAC;AACpF,SAAK,EAAE,SAAS,KAAK,CAAC,GAAGwM,GAAG,GAAGxM,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,EAAE,SAAS,SAAS,KAAK;AACvE,WAAK,OAAO,GAAG,CAAC,GAAG;AACrB,SAAK,oBAAoBA,GAAG,GAAG,CAAC;AAAA,EACjC;AAAA;AAAA,EAED,OAAO,GAAG,GAAG;AACX,UAAMN,IAAI,EAAE,CAAC,GAAGM,IAAIN,EAAE,SAAS,QAAQ,IAAI,KAAK;AAChD,SAAK,iBAAiBA,GAAG,GAAGM,CAAC;AAC7B,UAAM,IAAI,KAAK,kBAAkBN,GAAG,GAAGM,CAAC,GAAG,IAAIkM,GAAGxM,EAAE,SAAS,OAAO,GAAGA,EAAE,SAAS,SAAS,CAAC,CAAC;AAC7F,MAAE,SAASA,EAAE,QAAQ,EAAE,OAAOA,EAAE,MAAM0M,GAAG1M,GAAG,KAAK,MAAM,GAAG0M,GAAG,GAAG,KAAK,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,IAAI,KAAK,WAAW1M,GAAG,CAAC;AAAA,EACnI;AAAA,EACD,WAAW,GAAG,GAAG;AACf,SAAK,OAAOwM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,SAAS,EAAE,SAAS,GAAG,KAAK,KAAK,OAAO,IAAIE,GAAG,KAAK,MAAM,KAAK,MAAM;AAAA,EACxG;AAAA,EACD,kBAAkB,GAAG,GAAG1M,GAAG;AACzB,QAAIM,GAAG,IAAI,OAAO,IAAI;AACtB,aAAS,IAAI,GAAG,KAAKN,IAAI,GAAG,KAAK;AAC/B,YAAMW,IAAIoM,GAAG,GAAG,GAAG,GAAG,KAAK,MAAM,GAAGnM,IAAImM,GAAG,GAAG,GAAG/M,GAAG,KAAK,MAAM,GAAG,IAAIgN,GAAGrM,GAAGC,CAAC,GAAG,IAAIgM,GAAGjM,CAAC,IAAIiM,GAAGhM,CAAC;AAChG,UAAI,KAAK,IAAI,GAAGN,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,GAAGA,IAAI;AAAA,IAC7E;AACD,WAAOA,KAAKN,IAAI;AAAA,EACjB;AAAA;AAAA,EAED,iBAAiB,GAAG,GAAGA,GAAG;AACxB,UAAMM,IAAI,EAAE,OAAO,KAAK,cAAc2M,IAAI,IAAI,EAAE,OAAO,KAAK,cAAcC,IAAI,IAAI,KAAK,eAAe,GAAG,GAAGlN,GAAGM,CAAC,GAAG,IAAI,KAAK,eAAe,GAAG,GAAGN,GAAG,CAAC;AACrJ,QAAI,KAAK,EAAE,SAAS,KAAKM,CAAC;AAAA,EAC3B;AAAA;AAAA,EAED,eAAe,GAAG,GAAGN,GAAGM,GAAG;AACzB,MAAE,SAAS,KAAKA,CAAC;AACjB,UAAM,IAAI,KAAK,QAAQ,IAAIyM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAIA,GAAG,GAAG/M,IAAI,GAAGA,GAAG,CAAC;AAChE,QAAIW,IAAIwM,GAAG,CAAC,IAAIA,GAAG,CAAC;AACpB,aAASvM,IAAI,GAAGA,IAAIZ,IAAI,GAAGY,KAAK;AAC9B,YAAM,IAAI,EAAE,SAASA,CAAC;AACtB,MAAAkM,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAGnM,KAAKwM,GAAG,CAAC;AAAA,IACpC;AACD,aAASvM,IAAIZ,IAAI,IAAI,GAAGY,KAAK,GAAGA,KAAK;AACnC,YAAM,IAAI,EAAE,SAASA,CAAC;AACtB,MAAAkM,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAGnM,KAAKwM,GAAG,CAAC;AAAA,IACpC;AACD,WAAOxM;AAAA,EACR;AAAA,EACD,oBAAoB,GAAG,GAAGX,GAAG;AAC3B,aAASM,IAAIN,GAAGM,KAAK,GAAGA;AACtB,MAAAwM,GAAG,EAAExM,CAAC,GAAG,CAAC;AAAA,EACb;AAAA,EACD,UAAU,GAAG;AACX,aAAS,IAAI,EAAE,SAAS,GAAGN,GAAG,KAAK,GAAG;AACpC,QAAE,CAAC,EAAE,SAAS,WAAW,IAAI,IAAI,KAAKA,IAAI,EAAE,IAAI,CAAC,EAAE,UAAUA,EAAE,OAAOA,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,MAAK,IAAK0M,GAAG,EAAE,CAAC,GAAG,KAAK,MAAM;AAAA,EACnI;AACH;AACA,SAASD,GAAG7M,GAAG,GAAG,GAAG;AACnB,MAAI,CAAC;AACH,WAAO,EAAE,QAAQA,CAAC;AACpB,WAASI,IAAI,GAAGA,IAAI,EAAE,QAAQA;AAC5B,QAAI,EAAEJ,GAAG,EAAEI,CAAC,CAAC;AACX,aAAOA;AACX,SAAO;AACT;AACA,SAAS0M,GAAG9M,GAAG,GAAG;AAChB,EAAAmN,GAAGnN,GAAG,GAAGA,EAAE,SAAS,QAAQ,GAAGA,CAAC;AAClC;AACA,SAASmN,GAAGnN,GAAG,GAAG,GAAGI,GAAGM,GAAG;AACzB,EAAAA,MAAMA,IAAIkM,GAAG,IAAI,IAAIlM,EAAE,OAAO,OAAOA,EAAE,OAAO,OAAOA,EAAE,OAAO,QAAQA,EAAE,OAAO;AAC/E,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAM,IAAIV,EAAE,SAAS,CAAC;AACtB,IAAAkN,GAAGxM,GAAGV,EAAE,OAAOI,EAAE,CAAC,IAAI,CAAC;AAAA,EACxB;AACD,SAAOM;AACT;AACA,SAASwM,GAAGlN,GAAG,GAAG;AAChB,SAAOA,EAAE,OAAO,KAAK,IAAIA,EAAE,MAAM,EAAE,IAAI,GAAGA,EAAE,OAAO,KAAK,IAAIA,EAAE,MAAM,EAAE,IAAI,GAAGA,EAAE,OAAO,KAAK,IAAIA,EAAE,MAAM,EAAE,IAAI,GAAGA,EAAE,OAAO,KAAK,IAAIA,EAAE,MAAM,EAAE,IAAI,GAAGA;AACrJ;AACA,SAASqN,GAAGrN,GAAG,GAAG;AAChB,SAAOA,EAAE,OAAO,EAAE;AACpB;AACA,SAASsN,GAAGtN,GAAG,GAAG;AAChB,SAAOA,EAAE,OAAO,EAAE;AACpB;AACA,SAASgN,GAAGhN,GAAG;AACb,UAAQA,EAAE,OAAOA,EAAE,SAASA,EAAE,OAAOA,EAAE;AACzC;AACA,SAASuN,GAAGvN,GAAG;AACb,SAAOA,EAAE,OAAOA,EAAE,QAAQA,EAAE,OAAOA,EAAE;AACvC;AACA,SAASiN,GAAGjN,GAAG,GAAG;AAChB,UAAQ,KAAK,IAAI,EAAE,MAAMA,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,MAAMA,EAAE,IAAI,MAAM,KAAK,IAAI,EAAE,MAAMA,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,MAAMA,EAAE,IAAI;AACpH;AACA,SAASoN,GAAGpN,GAAG,GAAG;AAChB,QAAM,IAAI,KAAK,IAAIA,EAAE,MAAM,EAAE,IAAI,GAAGI,IAAI,KAAK,IAAIJ,EAAE,MAAM,EAAE,IAAI,GAAGU,IAAI,KAAK,IAAIV,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,IAAIA,EAAE,MAAM,EAAE,IAAI;AAC3H,SAAO,KAAK,IAAI,GAAGU,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,IAAIN,CAAC;AAC/C;AACA,SAASuM,GAAG3M,GAAG,GAAG;AAChB,SAAOA,EAAE,QAAQ,EAAE,QAAQA,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQA,EAAE,QAAQ,EAAE,QAAQA,EAAE;AACjF;AACA,SAAS0M,GAAG1M,GAAG,GAAG;AAChB,SAAO,EAAE,QAAQA,EAAE,QAAQ,EAAE,QAAQA,EAAE,QAAQ,EAAE,QAAQA,EAAE,QAAQ,EAAE,QAAQA,EAAE;AACjF;AACA,SAAS4M,GAAG5M,GAAG;AACb,SAAO;AAAA,IACL,UAAUA;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACV;AACA;AACA,SAAS+M,GAAG/M,GAAG,GAAG,GAAGI,GAAGM,GAAG;AACzB,QAAM,IAAI,CAAC,GAAG,CAAC;AACf,SAAO,EAAE,UAAU;AACjB,QAAI,IAAI,EAAE,OAAO,IAAI,EAAE,IAAK,GAAE,IAAI,KAAKN;AACrC;AACF,UAAM,IAAI,IAAI,KAAK,MAAM,IAAI,KAAKA,IAAI,CAAC,IAAIA;AAC3C,IAAAiM,GAAGrM,GAAG,GAAG,GAAG,GAAGU,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,CAAC;AAAA,EACrC;AACH;AACK,MAAC8M,KAAK,MAAM;AACf,QAAMxN,IAAI,IAAIyM,GAAI,GAAE,IAAoB,oBAAI,IAAK,GAAE,IAAI,MAAM,CAAC,GAAG,EAAE,OAAM,CAAE,GAAGrM,IAAI,MAAM;AACtF,IAAAJ,EAAE,MAAK,GAAI,EAAE,MAAK;AAAA,EACtB,GAAKU,IAAI,CAAC,MAAM;AACZ,UAAM,EAAE,MAAM,GAAG,MAAMK,GAAG,MAAMC,GAAG,MAAM,EAAC,IAAK,EAAE,SAAS,SAAS,QAAQ,IAAI,EAAE,MAAM,GAAG,MAAMD,GAAG,MAAMC,GAAG,MAAM,GAAG,QAAQ,EAAC;AAC9H,IAAAhB,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC;AAAA,EACtC,GAAK,IAAI,CAAC,MAAM;AACZ,UAAM,IAAI,EAAE,IAAI,EAAE,UAAU;AAC5B,SAAKA,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU;AAAA,EAC3C;AACE,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAOI;AAAA,IACP,OAAO,CAAC,GAAG,MAAM;AACf,YAAMW,IAAIf,EAAE,OAAO;AAAA,QACjB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,MACd,CAAO,EAAE,IAAI,CAACgB,MAAMA,EAAE,MAAM,EAAE,OAAO,CAACA,MAAMA,EAAE,SAAS,SAASoF,GAAG,aAAaI,GAAGxF,EAAE,UAAU,GAAG,CAAC,CAAC;AAC9F,UAAID,EAAE,SAAS;AACb,eAAOA,EAAE,KAAK,CAACC,GAAG,MAAMuF,GAAGvF,EAAE,QAAQ,IAAIuF,GAAG,EAAE,QAAQ,CAAC,GAAGxF,EAAE,CAAC;AAAA,IAChE;AAAA,IACD,iBAAiB,CAAC,GAAG,GAAGA,GAAGC,MAAMhB,EAAE,OAAO;AAAA,MACxC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM,IAAIe;AAAA,MACV,MAAM,IAAIC;AAAA,IACX,CAAA,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;AAAA,IACtB,QAAQN;AAAA,IACR,QAAQ;AAAA,IACR,KAAK,CAAC,GAAG,IAAI,OAAO;AAClB,WAAKN,EAAC;AACN,YAAMW,IAAI,EAAE,IAAI,CAACC,MAAM;AACrB,cAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAMC,EAAC,IAAKD,EAAE,SAAS,SAAS;AACnE,eAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAMC,GAAG,QAAQD,EAAC;AAAA,MAC9D,CAAO;AACD,MAAAD,EAAE,QAAQ,CAACC,MAAM,EAAE,IAAIA,EAAE,OAAO,YAAYA,CAAC,CAAC,GAAGhB,EAAE,KAAKe,CAAC;AAAA,IAC1D;AAAA,IACD,MAAM,MAAMf,EAAE,IAAG,EAAG;AAAA,IACpB,QAAQ,CAAC,GAAG,MAAM;AAChB,QAAE,CAAC,GAAGU,EAAE,CAAC;AAAA,IACV;AAAA,EACL;AACA,GAAG+M,KAAK,CAACzN,MAAM;AACb,QAAM,IAAIiI,MAAM,IAAIuF,GAAI,GAAEpN,IAAIkH,GAAG,GAAGtH,EAAE,mBAAmB,GAAGU,IAAI0G,GAAG,CAAC,GAAG,IAAImB;AAC3E,SAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAC,MAAO;AACnC,MAAE,KAAK,EAAE,WAAW,CAAA,GAAI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,WAAW,CAAA,GAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,IAAI,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAUxH,EAAC,MAAO,EAAE,OAAO,EAAE,QAAQA,EAAE,MAAM,CAAC;AAAA,EACrM,CAAG,GAAG;AAAA,IACF,OAAO;AAAA,MACL,GAAG;AAAA,MACH,OAAO,CAAC,GAAG,MAAM;AACf,cAAMA,IAAI,EAAE,MAAM,GAAG,CAAC;AACtB,eAAOA,IAAI,EAAE,cAAcA,EAAE,UAAU,IAAI;AAAA,MAC5C;AAAA,MACD,iBAAiB,CAAC,GAAG,GAAGA,GAAGC,MAAM,EAAE,gBAAgB,GAAG,GAAGD,GAAGC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC;AAAA,IACxG;AAAA,IACD,WAAWZ;AAAA,IACX,OAAOM;AAAA,IACP,UAAU;AAAA,EACd;AACA,GAMGgN,KAAK,CAAC1N,MAAM;AACb,MAAI,GAAG;AACP,MAAIA,EAAE,aAAa;AACjB,QAAIA,GAAG,IAAI,EAAE,WAAW,MAAM,EAAE,oBAAoB,GAAE,CAAE;AAAA,OACrD;AACH,UAAMU,IAAIV;AACV,QAAI,SAAS,cAAc,QAAQ,GAAG,EAAE,QAAQU,EAAE,OAAO,EAAE,SAASA,EAAE,QAAQ,IAAI,EAAE,WAAW,MAAM,EAAE,oBAAoB,GAAE,CAAE,GAAG,EAAE,UAAUA,GAAG,GAAG,GAAGA,EAAE,OAAOA,EAAE,MAAM;AAAA,EACzK;AACD,MAAIN,IAAI;AACR,WAASM,IAAI,GAAGA,IAAI,IAAIA;AACtB,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,YAAM,IAAI,KAAK,MAAM,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,KAAK,MAAMA,IAAI,EAAE,SAAS,EAAE,GAAGK,IAAI,EAAE,aAAa,GAAG,GAAG,GAAG,CAAC,EAAE,MAAMC,KAAK,QAAQD,EAAE,CAAC,IAAI,QAAQA,EAAE,CAAC,IAAI,QAAQA,EAAE,CAAC,KAAK;AACnK,MAAAX,KAAKY;AAAA,IACN;AACH,SAAOZ,IAAI;AACb,GAAGuN,KAAK,CAAC3N,MAAM;AACb,QAAM,IAAI0N,GAAG1N,CAAC,GAAG,IAAI,IAAI,MAAM,SAAS;AACxC,SAAO,QAAQ,IAAI,mCAAmC,EAAE,QAAQ,CAAC,CAAC,aAAa,CAAC,SAAS,GAAG;AAC9F,GAA6E4N,KAAK,CAAC5N,GAAG,OAAO;AAAA,EAC3F,GAAGA;AAAA,EACH,gBAAgBA,EAAE,mBAAmB,SAAS,EAAE,iBAAiBA,EAAE;AAAA,EACnE,aAAaA,EAAE,eAAe,EAAE;AAAA,EAChC,qBAAqBA,EAAE,uBAAuB,EAAE;AAAA,EAChD,OAAOA,EAAE,SAAS,EAAE;AACtB,IAAI6N,KAAK,UAAU,UAAU,QAAQ,UAAU,MAAM,IAAIC,KAAK,CAAC9N,GAAG,MAAM;AACtE,QAAM,IAAI,KAAK,UAAUI,IAAI,CAAC,MAAM;AAClC,UAAM,IAAI;AACV,MAAE,QAAQ,OAAO,EAAE,UAAUJ,EAAE,KAAI,IAAK,EAAE,QAAQ,OAAO,EAAE,WAAWA,EAAE;EAC5E,GAAKU,IAAI,CAAC,MAAM;AACZ,UAAM,IAAI;AACV,MAAE,QAAQ,OAAO,EAAE,YAAY,EAAE,WAAWV,EAAE,KAAM,IAAGA,EAAE,KAAM;AAAA,EAChE,GAAE,IAAI,MAAM;AACX,IAAA6N,KAAK,EAAE,oBAAoB,WAAWnN,CAAC,IAAI,EAAE,oBAAoB,WAAWN,CAAC;AAAA,EACjF;AACE,SAAOyN,KAAK,EAAE,iBAAiB,WAAWnN,CAAC,IAAI,EAAE,iBAAiB,WAAWN,CAAC,GAAG;AAAA,IAC/E,SAAS;AAAA,EACb;AACA;AA8DA,SAAS2N,KAAK;AACd;AACA,SAASC,GAAGhO,GAAG,GAAG;AAChB,aAAW,KAAK;AACd,IAAAA,EAAE,CAAC,IAAI,EAAE,CAAC;AACZ;AAAA;AAAA,IAEEA;AAAA;AAEJ;AACA,SAASiO,GAAGjO,GAAG;AACb,SAAOA,EAAC;AACV;AACA,SAASkO,KAAK;AACZ,SAAuB,uBAAO,OAAO,IAAI;AAC3C;AACA,SAASC,GAAGnO,GAAG;AACb,EAAAA,EAAE,QAAQiO,EAAE;AACd;AACA,SAASG,GAAGpO,GAAG;AACb,SAAO,OAAOA,KAAK;AACrB;AACA,SAASqO,GAAGrO,GAAG,GAAG;AAChB,SAAOA,KAAKA,IAAI,KAAK,IAAIA,MAAM,KAAKA,KAAK,OAAOA,KAAK,YAAY,OAAOA,KAAK;AAC/E;AACA,SAASsO,GAAGtO,GAAG;AACb,SAAO,OAAO,KAAKA,CAAC,EAAE,WAAW;AACnC;AACA,SAASuO,GAAGvO,MAAM,GAAG;AACnB,MAAIA,KAAK,MAAM;AACb,eAAWI,KAAK;AACd,MAAAA,EAAE,MAAM;AACV,WAAO2N;AAAA,EACR;AACD,QAAM,IAAI/N,EAAE,UAAU,GAAG,CAAC;AAC1B,SAAO,EAAE,cAAc,MAAM,EAAE,YAAW,IAAK;AACjD;AACA,SAASwO,GAAGxO,GAAG,GAAG,GAAG;AACnB,EAAAA,EAAE,GAAG,WAAW,KAAKuO,GAAG,GAAG,CAAC,CAAC;AAC/B;AACA,SAASE,GAAGzO,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIJ,GAAG;AACL,UAAMU,IAAIgO,GAAG1O,GAAG,GAAG,GAAGI,CAAC;AACvB,WAAOJ,EAAE,CAAC,EAAEU,CAAC;AAAA,EACd;AACH;AACA,SAASgO,GAAG1O,GAAG,GAAG,GAAGI,GAAG;AACtB,SAAOJ,EAAE,CAAC,KAAKI,IAAI4N,GAAG,EAAE,IAAI,MAAK,GAAIhO,EAAE,CAAC,EAAEI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;AACvD;AACA,SAASuO,GAAG3O,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIJ,EAAE,CAAC,KAAKI,GAAG;AACb,UAAMM,IAAIV,EAAE,CAAC,EAAEI,EAAE,CAAC,CAAC;AACnB,QAAI,EAAE,UAAU;AACd,aAAOM;AACT,QAAI,OAAOA,KAAK,UAAU;AACxB,YAAM,IAAI,CAAA,GAAI,IAAI,KAAK,IAAI,EAAE,MAAM,QAAQA,EAAE,MAAM;AACnD,eAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAIA,EAAE,CAAC;AACzB,aAAO;AAAA,IACR;AACD,WAAO,EAAE,QAAQA;AAAA,EAClB;AACD,SAAO,EAAE;AACX;AACA,SAASkO,GAAG5O,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG;AAC5B,MAAIA,GAAG;AACL,UAAM,IAAIgO,GAAG,GAAG,GAAGtO,GAAG,CAAC;AACvB,IAAAJ,EAAE,EAAE,GAAGU,CAAC;AAAA,EACT;AACH;AACA,SAASmO,GAAG7O,GAAG;AACb,MAAIA,EAAE,IAAI,SAAS,IAAI;AACrB,UAAM,IAAI,CAAA,GAAI,IAAIA,EAAE,IAAI,SAAS;AACjC,aAASI,IAAI,GAAGA,IAAI,GAAGA;AACrB,QAAEA,CAAC,IAAI;AACT,WAAO;AAAA,EACR;AACD,SAAO;AACT;AAUA,MAAM0O,KAAK,OAAO,SAAS,MAAM,SAAS,OAAO,aAAa,MAAM;AAAA;AAAA,EAElE;AAAA;AAEF,SAASC,GAAG/O,GAAG,GAAG;AAChB,EAAAA,EAAE,YAAY,CAAC;AACjB;AACA,SAASgP,GAAGhP,GAAG,GAAG,GAAG;AACnB,EAAAA,EAAE,aAAa,GAAG,KAAK,IAAI;AAC7B;AACA,SAASiP,GAAGjP,GAAG;AACb,EAAAA,EAAE,cAAcA,EAAE,WAAW,YAAYA,CAAC;AAC5C;AACA,SAASkP,GAAGlP,GAAG,GAAG;AAChB,WAAS,IAAI,GAAG,IAAIA,EAAE,QAAQ,KAAK;AACjC,IAAAA,EAAE,CAAC,KAAKA,EAAE,CAAC,EAAE,EAAE,CAAC;AACpB;AACA,SAASmP,GAAGnP,GAAG;AACb,SAAO,SAAS,gBAAgB,8BAA8BA,CAAC;AACjE;AACA,SAASoP,GAAGpP,GAAG;AACb,SAAO,SAAS,eAAeA,CAAC;AAClC;AAIA,SAASqP,KAAK;AACZ,SAAOD,GAAG,EAAE;AACd;AAIA,SAASE,EAAEtP,GAAG,GAAG,GAAG;AAClB,OAAK,OAAOA,EAAE,gBAAgB,CAAC,IAAIA,EAAE,aAAa,CAAC,MAAM,KAAKA,EAAE,aAAa,GAAG,CAAC;AACnF;AACA,SAASuP,GAAGvP,GAAG;AACb,SAAO,MAAM,KAAKA,EAAE,UAAU;AAChC;AACA,SAASwP,GAAGxP,GAAG,GAAG;AAChB,MAAI,KAAK,GAAGA,EAAE,SAAS,MAAMA,EAAE;AAAA,EAC/B;AACF;AACA,SAASyP,GAAGzP,GAAG,GAAG,GAAG;AACnB,EAAAA,EAAE,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC;AAC3B;AACA,SAAS0P,GAAG1P,GAAG,GAAG,EAAE,SAAS,IAAI,IAAI,YAAYI,IAAI,GAAE,IAAK,CAAA,GAAI;AAC9D,SAAO,IAAI,YAAYJ,GAAG,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAYI,EAAC,CAAE;AACpE;AACA,IAAIuP;AACJ,SAASC,GAAG5P,GAAG;AACb,EAAA2P,KAAK3P;AACP;AACA,SAAS6P,KAAK;AACZ,MAAI,CAACF;AACH,UAAM,IAAI,MAAM,kDAAkD;AACpE,SAAOA;AACT;AACA,SAASG,GAAG9P,GAAG;AACb,EAAA6P,GAAI,EAAC,GAAG,SAAS,KAAK7P,CAAC;AACzB;AACA,SAAS+P,GAAG/P,GAAG;AACb,EAAA6P,GAAI,EAAC,GAAG,WAAW,KAAK7P,CAAC;AAC3B;AACA,SAASgQ,KAAK;AACZ,QAAMhQ,IAAI6P;AACV,SAAO,CAAC,GAAG,GAAG,EAAE,YAAYzP,IAAI,GAAI,IAAG,OAAO;AAC5C,UAAMM,IAAIV,EAAE,GAAG,UAAU,CAAC;AAC1B,QAAIU,GAAG;AACL,YAAM,IAAIgP;AAAA;AAAA,QAER;AAAA,QACA;AAAA,QACA,EAAE,YAAYtP,EAAG;AAAA,MACzB;AACM,aAAOM,EAAE,MAAK,EAAG,QAAQ,CAAC,MAAM;AAC9B,UAAE,KAAKV,GAAG,CAAC;AAAA,MACnB,CAAO,GAAG,CAAC,EAAE;AAAA,IACR;AACD,WAAO;AAAA,EACX;AACA;AAKA,MAAMiQ,KAAK,CAAA,GAAIC,KAAK;AACpB,IAAIC,KAAK,CAAA;AACT,MAAMC,KAAK,CAAA,GAAIC,KAAqB,wBAAQ,QAAO;AACnD,IAAIC,KAAK;AACT,SAASC,KAAK;AACZ,EAAAD,OAAOA,KAAK,IAAID,GAAG,KAAKG,EAAE;AAC5B;AACA,SAASC,GAAGzQ,GAAG;AACb,EAAAmQ,GAAG,KAAKnQ,CAAC;AACX;AACA,MAAM0Q,KAAqB,oBAAI;AAC/B,IAAIC,KAAK;AACT,SAASH,KAAK;AACZ,MAAIG,OAAO;AACT;AACF,QAAM3Q,IAAI2P;AACV,KAAG;AACD,QAAI;AACF,aAAOgB,KAAKV,GAAG,UAAU;AACvB,cAAM,IAAIA,GAAGU,EAAE;AACf,QAAAA,MAAMf,GAAG,CAAC,GAAGgB,GAAG,EAAE,EAAE;AAAA,MACrB;AAAA,IACF,SAAQ,GAAG;AACV,YAAMX,GAAG,SAAS,GAAGU,KAAK,GAAG;AAAA,IAC9B;AACD,SAAKf,GAAG,IAAI,GAAGK,GAAG,SAAS,GAAGU,KAAK,GAAGT,GAAG;AACvC,MAAAA,GAAG,IAAG;AACR,aAAS,IAAI,GAAG,IAAIC,GAAG,QAAQ,KAAK,GAAG;AACrC,YAAM,IAAIA,GAAG,CAAC;AACd,MAAAO,GAAG,IAAI,CAAC,MAAMA,GAAG,IAAI,CAAC,GAAG,EAAC;AAAA,IAC3B;AACD,IAAAP,GAAG,SAAS;AAAA,EAChB,SAAWF,GAAG;AACZ,SAAOG,GAAG;AACR,IAAAA,GAAG,IAAG;AACR,EAAAE,KAAK,IAAII,GAAG,MAAK,GAAId,GAAG5P,CAAC;AAC3B;AACA,SAAS4Q,GAAG5Q,GAAG;AACb,MAAIA,EAAE,aAAa,MAAM;AACvB,IAAAA,EAAE,OAAQ,GAAEmO,GAAGnO,EAAE,aAAa;AAC9B,UAAM,IAAIA,EAAE;AACZ,IAAAA,EAAE,QAAQ,CAAC,EAAE,GAAGA,EAAE,YAAYA,EAAE,SAAS,EAAEA,EAAE,KAAK,CAAC,GAAGA,EAAE,aAAa,QAAQyQ,EAAE;AAAA,EAChF;AACH;AACA,SAASI,GAAG7Q,GAAG;AACb,QAAM,IAAI,CAAA,GAAI,IAAI;AAClB,EAAAmQ,GAAG,QAAQ,CAAC/P,MAAMJ,EAAE,QAAQI,CAAC,MAAM,KAAK,EAAE,KAAKA,CAAC,IAAI,EAAE,KAAKA,CAAC,CAAC,GAAG,EAAE,QAAQ,CAACA,MAAMA,EAAC,CAAE,GAAG+P,KAAK;AAC9F;AACA,MAAMW,KAAqB,oBAAI;AAC/B,IAAIC;AACJ,SAASC,KAAK;AACZ,EAAAD,KAAK;AAAA,IACH,GAAG;AAAA,IACH,GAAG,CAAE;AAAA,IACL,GAAGA;AAAA;AAAA,EAEP;AACA;AACA,SAASE,KAAK;AACZ,EAAAF,GAAG,KAAK5C,GAAG4C,GAAG,CAAC,GAAGA,KAAKA,GAAG;AAC5B;AACA,SAASG,GAAGlR,GAAG,GAAG;AAChB,EAAAA,KAAKA,EAAE,MAAM8Q,GAAG,OAAO9Q,CAAC,GAAGA,EAAE,EAAE,CAAC;AAClC;AACA,SAASmR,GAAGnR,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIJ,KAAKA,EAAE,GAAG;AACZ,QAAI8Q,GAAG,IAAI9Q,CAAC;AACV;AACF,IAAA8Q,GAAG,IAAI9Q,CAAC,GAAG+Q,GAAG,EAAE,KAAK,MAAM;AACzB,MAAAD,GAAG,OAAO9Q,CAAC,GAAGI,MAAM,KAAKJ,EAAE,EAAE,CAAC,GAAGI,EAAG;AAAA,IACrC,CAAA,GAAGJ,EAAE,EAAE,CAAC;AAAA,EACV;AACC,IAAAI,KAAKA,EAAC;AACV;AACA,SAASgR,GAAGpR,GAAG;AACb,UAAQA,KAAK,OAAO,SAASA,EAAE,YAAY,SAASA,IAAI,MAAM,KAAKA,CAAC;AACtE;AACA,SAASqR,GAAGrR,GAAG;AACb,EAAAA,KAAKA,EAAE;AACT;AACA,SAASsR,GAAGtR,GAAG,GAAG,GAAG;AACnB,QAAM,EAAE,UAAUI,GAAG,cAAcM,EAAG,IAAGV,EAAE;AAC3C,EAAAI,KAAKA,EAAE,EAAE,GAAG,CAAC,GAAGqQ,GAAG,MAAM;AACvB,UAAM,IAAIzQ,EAAE,GAAG,SAAS,IAAIiO,EAAE,EAAE,OAAOG,EAAE;AACzC,IAAApO,EAAE,GAAG,aAAaA,EAAE,GAAG,WAAW,KAAK,GAAG,CAAC,IAAImO,GAAG,CAAC,GAAGnO,EAAE,GAAG,WAAW;EACvE,CAAA,GAAGU,EAAE,QAAQ+P,EAAE;AAClB;AACA,SAASc,GAAGvR,GAAG,GAAG;AAChB,QAAM,IAAIA,EAAE;AACZ,IAAE,aAAa,SAAS6Q,GAAG,EAAE,YAAY,GAAG1C,GAAG,EAAE,UAAU,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,MAAM,EAAE,MAAM,CAAE;AAC3I;AACA,SAASqD,GAAGxR,GAAG,GAAG;AAChB,EAAAA,EAAE,GAAG,MAAM,CAAC,MAAM,OAAOiQ,GAAG,KAAKjQ,CAAC,GAAGuQ,GAAI,GAAEvQ,EAAE,GAAG,MAAM,KAAK,CAAC,IAAIA,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;AACrG;AACA,SAASyR,GAAGzR,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG,IAAI,MAAM,IAAI,CAAC,EAAE,GAAG;AAChD,QAAMK,IAAI4O;AACV,EAAAC,GAAG5P,CAAC;AACJ,QAAMgB,IAAIhB,EAAE,KAAK;AAAA,IACf,UAAU;AAAA,IACV,KAAK,CAAE;AAAA;AAAA,IAEP,OAAO;AAAA,IACP,QAAQ+N;AAAA,IACR,WAAWrN;AAAA,IACX,OAAOwN,GAAI;AAAA;AAAA,IAEX,UAAU,CAAE;AAAA,IACZ,YAAY,CAAE;AAAA,IACd,eAAe,CAAE;AAAA,IACjB,eAAe,CAAE;AAAA,IACjB,cAAc,CAAE;AAAA,IAChB,SAAS,IAAI,IAAI,EAAE,YAAYnN,IAAIA,EAAE,GAAG,UAAU,CAAA,EAAG;AAAA;AAAA,IAErD,WAAWmN,GAAI;AAAA,IACf,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,MAAM,EAAE,UAAUnN,EAAE,GAAG;AAAA,EAC3B;AACE,OAAK,EAAEC,EAAE,IAAI;AACb,MAAI,IAAI;AACR,MAAIA,EAAE,MAAM,IAAI,EAAEhB,GAAG,EAAE,SAAS,CAAE,GAAE,CAAC,GAAG,MAAMiB,MAAM;AAClD,UAAMC,IAAID,EAAE,SAASA,EAAE,CAAC,IAAI;AAC5B,WAAOD,EAAE,OAAON,EAAEM,EAAE,IAAI,CAAC,GAAGA,EAAE,IAAI,CAAC,IAAIE,CAAC,MAAM,CAACF,EAAE,cAAcA,EAAE,MAAM,CAAC,KAAKA,EAAE,MAAM,CAAC,EAAEE,CAAC,GAAG,KAAKsQ,GAAGxR,GAAG,CAAC,IAAI;AAAA,EAChH,CAAG,IAAI,CAAA,GAAIgB,EAAE,OAAQ,GAAE,IAAI,IAAImN,GAAGnN,EAAE,aAAa,GAAGA,EAAE,WAAWZ,IAAIA,EAAEY,EAAE,GAAG,IAAI,IAAI,EAAE,QAAQ;AAC1F,QAAI,EAAE,SAAS;AACb,YAAM,IAAIuO,GAAG,EAAE,MAAM;AACrB,MAAAvO,EAAE,YAAYA,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQiO,EAAE;AAAA,IAC5C;AACC,MAAAjO,EAAE,YAAYA,EAAE,SAAS,EAAC;AAC5B,MAAE,SAASkQ,GAAGlR,EAAE,GAAG,QAAQ,GAAGsR,GAAGtR,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAGwQ,GAAE;AAAA,EAC5D;AACD,EAAAZ,GAAG7O,CAAC;AACN;AACA,MAAM2Q,GAAG;AAAA,EACP,cAAc;AAQZ,IAAAzR,GAAG,MAAM,IAAI,GAQbA,GAAG,MAAM,OAAO;AAAA,EACjB;AAAA;AAAA,EAED,WAAW;AACT,IAAAsR,GAAG,MAAM,CAAC,GAAG,KAAK,WAAWxD;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,GAAG,GAAG;AACR,QAAI,CAACK,GAAG,CAAC;AACP,aAAOL;AACT,UAAM3N,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAE;AAC5D,WAAOA,EAAE,KAAK,CAAC,GAAG,MAAM;AACtB,YAAMM,IAAIN,EAAE,QAAQ,CAAC;AACrB,MAAAM,MAAM,MAAMN,EAAE,OAAOM,GAAG,CAAC;AAAA,IAC/B;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,SAAK,SAAS,CAAC4N,GAAG,CAAC,MAAM,KAAK,GAAG,aAAa,IAAI,KAAK,MAAM,CAAC,GAAG,KAAK,GAAG,aAAa;AAAA,EACvF;AACH;AACA,MAAMqD,KAAK;AACX,OAAO,SAAS,QAAQ,OAAO,aAAa,OAAO,WAAW,EAAE,GAAmB,oBAAI,IAAK,EAAA,IAAK,EAAE,IAAIA,EAAE;AACzG,IAAIC,KAAsB,kBAAC5R,OAAOA,EAAEA,EAAE,eAAe,CAAC,IAAI,gBAAgBA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,IAAI4R,MAAM,CAAA,CAAE,GAAGC,KAAsB,kBAAC7R,OAAOA,EAAEA,EAAE,UAAU,CAAC,IAAI,WAAWA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,IAAI6R,MAAM,EAAE,GAAGC,KAAsB,kBAAC9R,OAAOA,EAAEA,EAAE,QAAQ,KAAK,IAAI,SAASA,EAAEA,EAAE,QAAQ,GAAG,IAAI,SAASA,EAAEA,EAAE,UAAU,IAAI,IAAI,WAAWA,IAAI8R,MAAM,CAAA,CAAE,GAAGC,IAAqB,kBAAC/R,OAAOA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,EAAEA,EAAE,MAAM,CAAC,IAAI,OAAOA,EAAEA,EAAE,WAAW,CAAC,IAAI,YAAYA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,EAAEA,EAAE,UAAU,CAAC,IAAI,WAAWA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,EAAEA,EAAE,UAAU,CAAC,IAAI,WAAWA,EAAEA,EAAE,cAAc,CAAC,IAAI,eAAeA,EAAEA,EAAE,aAAa,CAAC,IAAI,cAAcA,EAAEA,EAAE,aAAa,CAAC,IAAI,cAAcA,EAAEA,EAAE,aAAa,EAAE,IAAI,cAAcA,EAAEA,EAAE,aAAa,EAAE,IAAI,cAAcA,EAAEA,EAAE,YAAY,EAAE,IAAI,aAAaA,EAAEA,EAAE,MAAM,EAAE,IAAI,OAAOA,EAAEA,EAAE,aAAa,EAAE,IAAI,cAAcA,EAAEA,EAAE,QAAQ,EAAE,IAAI,SAASA,EAAEA,EAAE,aAAa,EAAE,IAAI,cAAcA,EAAEA,EAAE,aAAa,EAAE,IAAI,cAAcA,EAAEA,EAAE,UAAU,EAAE,IAAI,WAAWA,EAAEA,EAAE,aAAa,EAAE,IAAI,cAAcA,EAAEA,EAAE,OAAO,EAAE,IAAI,QAAQA,EAAEA,EAAE,WAAW,CAAC,IAAI,YAAYA,EAAEA,EAAE,SAAS,EAAE,IAAI,UAAUA,EAAEA,EAAE,UAAU,EAAE,IAAI,WAAWA,EAAEA,EAAE,WAAW,EAAE,IAAI,YAAYA,EAAEA,EAAE,WAAW,EAAE,IAAI,YAAYA,EAAEA,EAAE,SAAS,EAAE,IAAI,UAAUA,EAAEA,EAAE,UAAU,EAAE,IAAI,WAAWA,EAAEA,EAAE,WAAW,EAAE,IAAI,YAAYA,EAAEA,EAAE,QAAQ,EAAE,IAAI,SAASA,EAAEA,EAAE,WAAW,EAAE,IAAI,YAAYA,EAAEA,EAAE,MAAM,EAAE,IAAI,OAAOA,IAAI+R,KAAK,CAAE,CAAA,GAAGC,KAAsB,kBAAChS,OAAOA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,EAAEA,EAAE,YAAY,CAAC,IAAI,aAAaA,EAAEA,EAAE,aAAa,CAAC,IAAI,cAAcA,EAAEA,EAAE,YAAY,CAAC,IAAI,aAAaA,EAAEA,EAAE,iBAAiB,CAAC,IAAI,kBAAkBA,EAAEA,EAAE,eAAe,CAAC,IAAI,gBAAgBA,IAAIgS,MAAM,CAAA,CAAE,GAAGC,IAAqB,kBAACjS,OAAOA,EAAEA,EAAE,OAAO,IAAI,IAAI,QAAQA,EAAEA,EAAE,MAAM,IAAI,IAAI,OAAOA,EAAEA,EAAE,KAAK,KAAK,IAAI,MAAMA,EAAEA,EAAE,MAAM,IAAI,IAAI,OAAOA,EAAEA,EAAE,eAAe,KAAK,IAAI,gBAAgBA,EAAEA,EAAE,cAAc,KAAK,IAAI,eAAeA,EAAEA,EAAE,aAAa,KAAK,IAAI,cAAcA,EAAEA,EAAE,cAAc,KAAK,IAAI,eAAeA,EAAEA,EAAE,QAAQ,IAAI,IAAI,SAASA,EAAEA,EAAE,YAAY,IAAI,IAAI,aAAaA,EAAEA,EAAE,kBAAkB,IAAI,IAAI,mBAAmBA,EAAEA,EAAE,kBAAkB,IAAI,IAAI,mBAAmBA,EAAEA,EAAE,gBAAgB,KAAK,IAAI,iBAAiBA,IAAIiS,KAAK,CAAE,CAAA,GAAGC,KAAsB,kBAAClS,OAAOA,EAAEA,EAAE,aAAa,IAAI,IAAI,cAAcA,EAAEA,EAAE,mBAAmB,KAAK,IAAI,oBAAoBA,EAAEA,EAAE,mBAAmB,KAAK,IAAI,oBAAoBA,EAAEA,EAAE,8BAA8B,KAAK,IAAI,+BAA+BA,EAAEA,EAAE,8BAA8B,KAAK,IAAI,+BAA+BA,EAAEA,EAAE,8BAA8B,KAAK,IAAI,+BAA+BA,EAAEA,EAAE,8BAA8B,KAAK,IAAI,+BAA+BA,EAAEA,EAAE,8BAA8B,KAAK,IAAI,+BAA+BA,EAAEA,EAAE,8BAA8B,KAAK,IAAI,+BAA+BA,IAAIkS,MAAM,CAAE,CAAA,GAAGC,IAAqB,kBAACnS,OAAOA,EAAEA,EAAE,gBAAgB,IAAI,IAAI,iBAAiBA,EAAEA,EAAE,iBAAiB,IAAI,IAAI,kBAAkBA,EAAEA,EAAE,uBAAuB,KAAK,IAAI,wBAAwBA,EAAEA,EAAE,yBAAyB,KAAK,IAAI,0BAA0BA,EAAEA,EAAE,yBAAyB,KAAK,IAAI,0BAA0BA,EAAEA,EAAE,eAAe,IAAI,IAAI,gBAAgBA,EAAEA,EAAE,+BAA+B,KAAK,IAAI,gCAAgCA,EAAEA,EAAE,8BAA8B,KAAK,IAAI,+BAA+BA,EAAEA,EAAE,oBAAoB,KAAK,IAAI,qBAAqBA,EAAEA,EAAE,2BAA2B,KAAK,IAAI,4BAA4BA,EAAEA,EAAE,OAAO,IAAI,IAAI,QAAQA,EAAEA,EAAE,QAAQ,IAAI,IAAI,SAASA,EAAEA,EAAE,MAAM,IAAI,IAAI,OAAOA,EAAEA,EAAE,QAAQ,IAAI,IAAI,SAASA,EAAEA,EAAE,iCAAiC,KAAK,IAAI,kCAAkCA,EAAEA,EAAE,aAAa,KAAK,IAAI,cAAcA,IAAImS,KAAK,CAAE,CAAA,GAAGC,IAAqB,kBAACpS,OAAOA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,EAAEA,EAAE,MAAM,CAAC,IAAI,OAAOA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,IAAIoS,KAAK,CAAE,CAAA,GAAGC,KAAsB,kBAACrS,OAAOA,EAAEA,EAAE,UAAU,CAAC,IAAI,WAAWA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,IAAIqS,MAAM,EAAE,GAAGC,KAAsB,kBAACtS,OAAOA,EAAEA,EAAE,QAAQ,KAAK,IAAI,SAASA,EAAEA,EAAE,SAAS,KAAK,IAAI,UAAUA,EAAEA,EAAE,kBAAkB,KAAK,IAAI,mBAAmBA,IAAIsS,MAAM,CAAE,CAAA,GAAGC,KAAsB,kBAACvS,OAAOA,EAAEA,EAAE,MAAM,CAAC,IAAI,OAAOA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,KAAK,CAAC,IAAI,MAAMA,EAAEA,EAAE,YAAY,CAAC,IAAI,aAAaA,IAAIuS,MAAM,CAAE,CAAA,GAAGC,KAAsB,kBAACxS,OAAOA,EAAEA,EAAE,MAAM,CAAC,IAAI,OAAOA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,EAAEA,EAAE,MAAM,CAAC,IAAI,OAAOA,EAAEA,EAAE,yBAAyB,CAAC,IAAI,0BAA0BA,EAAEA,EAAE,wBAAwB,CAAC,IAAI,yBAAyBA,EAAEA,EAAE,sBAAsB,CAAC,IAAI,uBAAuBA,IAAIwS,MAAM,CAAA,CAAE,GAAGC,KAAsB,kBAACzS,OAAOA,EAAEA,EAAE,KAAK,CAAC,IAAI,MAAMA,EAAEA,EAAE,MAAM,CAAC,IAAI,OAAOA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,IAAIyS,MAAM,EAAE,GAAGC,KAAsB,kBAAC1S,OAAOA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,IAAI0S,MAAM,CAAA,CAAE,GAAGC,KAAsB,kBAAC3S,OAAOA,EAAE,MAAM,QAAQA,EAAE,SAAS,WAAWA,EAAE,OAAO,SAASA,IAAI2S,MAAM,CAAE,CAAA,GAAGC,KAAsB,kBAAC5S,OAAOA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,UAAU,CAAC,IAAI,WAAWA,EAAEA,EAAE,UAAU,CAAC,IAAI,WAAWA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,IAAI4S,MAAM,CAAA,CAAE,GAAGC,KAAsB,kBAAC7S,OAAOA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,MAAM,CAAC,IAAI,OAAOA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,IAAI6S,MAAM,CAAE,CAAA,GAAGC,KAAsB,kBAAC9S,OAAOA,EAAEA,EAAE,uBAAuB,KAAK,IAAI,wBAAwBA,EAAEA,EAAE,eAAe,KAAK,IAAI,gBAAgBA,EAAEA,EAAE,iBAAiB,KAAK,IAAI,kBAAkBA,IAAI8S,MAAM,CAAE,CAAA;AACv2K,MAAMC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,cAAc,CAAC/S,GAAG,MAAM;AACtB,UAAM,IAAI,SAAS,cAAc,QAAQ;AACzC,WAAO,EAAE,QAAQA,GAAG,EAAE,SAAS,GAAG;AAAA,EACnC;AAAA,EACD,6BAA6B,MAAM;AAAA,EACnC,0BAA0B,MAAM;AAAA,EAChC,cAAc,MAAM;AAAA,EACpB,YAAY,MAAM,SAAS,WAAW,OAAO,SAAS;AAAA,EACtD,gBAAgB,MAAM,SAAS;AAAA,EAC/B,OAAO,CAACA,GAAG,MAAM,MAAMA,GAAG,CAAC;AAAA,EAC3B,UAAU,CAACA,MAAM,IAAI,UAAW,EAAC,gBAAgBA,GAAG,UAAU;AAChE,GAAGgT,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaL,SAASD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAST,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASZ,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUrB,cAAc;AAChB;AACA,IAAIE,KAAK,WAAWC,KAAK,SAASC,KAAK,SAASC,KAAK,+BAA+BC,KAAK,4BAA4BC,KAAK,YAAYC,KAAK,sCAAsCC,KAAK,SAASC,KAAK,kBAAkBC,KAAK,yBAAyBC,KAAK,eAAeC,KAAK,SAASC,KAAK,eAAeC,KAAK,iCAAiCC,KAAK,0BAA0BC,KAAK,SAAShU,GAAG;AAC9X,SAAO,OAAOA,IAAI,OAAOA,EAAE,aAAa,cAAc,OAAOA,EAAE,kBAAkB,YAAYA,EAAE,iBAAiB,KAAK,OAAO,WAAW;AACzI;AACA,SAASiU,GAAGjU,GAAG;AACb,SAAO,SAAS,GAAG;AACjB,WAAO,EAAE,KAAKA,CAAC;AAAA,EACnB;AACA;AACA,SAASkU,GAAGlU,GAAG;AACb,MAAI,IAAI;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,IACV,gBAAgB;AAAA,EACpB;AACE,GAACA,KAAK,OAAO,YAAY,MAAM,IAAI;AAAA,IACjC,WAAW,UAAU;AAAA,IACrB,UAAU,UAAU;AAAA,IACpB,gBAAgB,UAAU,kBAAkB;AAAA,EAChD,IAAM,OAAOA,KAAK,WAAW,EAAE,YAAYA,IAAIA,KAAKA,EAAE,cAAc,IAAI;AAAA,IACpE,WAAWA,EAAE;AAAA,IACb,UAAUA,EAAE;AAAA,IACZ,gBAAgBA,EAAE,kBAAkB;AAAA,EACxC;AACE,MAAI,IAAI,EAAE,WAAWI,IAAI,EAAE,MAAM,OAAO;AACxC,SAAOA,EAAE,CAAC,IAAI,QAAQ,IAAIA,EAAE,CAAC,IAAIA,IAAI,EAAE,MAAM,SAAS,GAAG,OAAOA,EAAE,CAAC,IAAI,QAAQ,IAAIA,EAAE,CAAC;AACtF,MAAIM,IAAIuT,GAAG,CAAC,GAAG,IAAI;AAAA,IACjB,OAAO;AAAA,MACL,OAAOvT,EAAEuS,EAAE,KAAK,CAACvS,EAAE+S,EAAE;AAAA,MACrB,MAAM/S,EAAEwS,EAAE;AAAA,MACV,QAAQ,CAACxS,EAAEuS,EAAE,MAAMvS,EAAEyS,EAAE,KAAKa,GAAG,CAAC,MAAM,CAACtT,EAAE+S,EAAE;AAAA,MAC3C,WAAW/S,EAAE0S,EAAE;AAAA,MACf,SAAS1S,EAAEuS,EAAE,KAAKvS,EAAEwS,EAAE,KAAKxS,EAAEyS,EAAE,KAAKzS,EAAE0S,EAAE,KAAKY,GAAG,CAAC,MAAM,CAACtT,EAAE+S,EAAE;AAAA,IAC7D;AAAA,IACD,QAAQ;AAAA,MACN,OAAO/S,EAAE6S,EAAE;AAAA,MACX,QAAQ,CAAC7S,EAAE6S,EAAE,KAAK7S,EAAE8S,EAAE;AAAA,MACtB,QAAQ9S,EAAE6S,EAAE,KAAK7S,EAAE8S,EAAE;AAAA,IACtB;AAAA,IACD,SAAS;AAAA,MACP,OAAO,CAAC9S,EAAE+S,EAAE,KAAK/S,EAAE6S,EAAE,KAAK,CAAC7S,EAAE+S,EAAE,KAAK/S,EAAE2S,EAAE;AAAA,MACxC,QAAQ,CAAC3S,EAAE+S,EAAE,KAAK,CAAC/S,EAAE6S,EAAE,KAAK,CAAC7S,EAAE2S,EAAE,MAAM3S,EAAE8S,EAAE,KAAK9S,EAAE4S,EAAE;AAAA,MACpD,QAAQ,CAAC5S,EAAE+S,EAAE,MAAM/S,EAAE6S,EAAE,KAAK7S,EAAE8S,EAAE,KAAK9S,EAAE2S,EAAE,KAAK3S,EAAE4S,EAAE,MAAM5S,EAAE,aAAa;AAAA,IACxE;AAAA,IACD,SAAS;AAAA,MACP,OAAOA,EAAE+S,EAAE;AAAA,MACX,QAAQ/S,EAAEgT,EAAE;AAAA,MACZ,QAAQhT,EAAE+S,EAAE,KAAK/S,EAAEgT,EAAE;AAAA,IACtB;AAAA,IACD,OAAO;AAAA,MACL,YAAYhT,EAAEiT,EAAE;AAAA,MAChB,cAAcjT,EAAEkT,EAAE;AAAA,MAClB,OAAOlT,EAAEmT,EAAE;AAAA,MACX,SAASnT,EAAEqT,EAAE;AAAA,MACb,QAAQrT,EAAEoT,EAAE;AAAA,MACZ,QAAQpT,EAAEiT,EAAE,KAAKjT,EAAEkT,EAAE,KAAKlT,EAAEmT,EAAE,KAAKnT,EAAEqT,EAAE,KAAKrT,EAAEoT,EAAE;AAAA,IACjD;AAAA,IACD,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EACZ;AACE,SAAO,EAAE,MAAM,EAAE,MAAM,UAAU,EAAE,QAAQ,UAAU,EAAE,QAAQ,UAAU,EAAE,MAAM,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,EAAE,QAAQ,SAAS,EAAE,QAAQ,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,EAAE,QAAQ,UAAU,EAAE,QAAQ,QAAQ;AAC7N;AACA,MAAMK,KAAKD,GAAG,WAAWA,IAAIE,KAAKD,GAAG,WAAW,SAAS;AACzDnB,EAAE,gBAAgB;AAClBA,EAAE,mCAAmC;AACrC,IAAIqB,KAAK,OAAO,aAAa,MAAM,aAAa,OAAO,SAAS,MAAM,SAAS,OAAO,SAAS,MAAM,SAAS,OAAO,OAAO,MAAM,OAAO;AACzI,SAASC,GAAGtU,GAAG;AACb,SAAOA,KAAKA,EAAE,cAAc,OAAO,UAAU,eAAe,KAAKA,GAAG,SAAS,IAAIA,EAAE,UAAUA;AAC/F;AACA,SAASuU,GAAGvU,GAAG;AACb,MAAIA,EAAE;AACJ,WAAOA;AACT,MAAI,IAAIA,EAAE;AACV,MAAI,OAAO,KAAK,YAAY;AAC1B,QAAI,IAAI,SAASI,IAAI;AACnB,aAAO,gBAAgBA,IAAI,QAAQ,UAAU,GAAG,WAAW,KAAK,WAAW,IAAI,EAAE,MAAM,MAAM,SAAS;AAAA,IAC5G;AACI,MAAE,YAAY,EAAE;AAAA,EACjB;AACC,QAAI,CAAA;AACN,SAAO,OAAO,eAAe,GAAG,cAAc,EAAE,OAAO,GAAI,CAAA,GAAG,OAAO,KAAKJ,CAAC,EAAE,QAAQ,SAASI,GAAG;AAC/F,QAAIM,IAAI,OAAO,yBAAyBV,GAAGI,CAAC;AAC5C,WAAO,eAAe,GAAGA,GAAGM,EAAE,MAAMA,IAAI;AAAA,MACtC,YAAY;AAAA,MACZ,KAAK,WAAW;AACd,eAAOV,EAAEI,CAAC;AAAA,MACX;AAAA,IACP,CAAK;AAAA,EACF,CAAA,GAAG;AACN;AACA,IAAIoU,KAAK,EAAE,SAAS,CAAA;CACnB,SAASxU,GAAG;AACX,MAAI,IAAI,OAAO,UAAU,gBAAgB,IAAI;AAC7C,WAASI,IAAI;AAAA,EACZ;AACD,SAAO,WAAWA,EAAE,YAA4B,uBAAO,OAAO,IAAI,GAAG,IAAIA,EAAG,EAAC,cAAc,IAAI;AAC/F,WAASM,EAAEK,GAAGC,GAAG,GAAG;AAClB,SAAK,KAAKD,GAAG,KAAK,UAAUC,GAAG,KAAK,OAAO,KAAK;AAAA,EACjD;AACD,WAAS,EAAED,GAAGC,GAAG,GAAG,GAAG,GAAG;AACxB,QAAI,OAAO,KAAK;AACd,YAAM,IAAI,UAAU,iCAAiC;AACvD,QAAIC,IAAI,IAAIP,EAAE,GAAG,KAAKK,GAAG,CAAC,GAAGG,IAAI,IAAI,IAAIF,IAAIA;AAC7C,WAAOD,EAAE,QAAQG,CAAC,IAAIH,EAAE,QAAQG,CAAC,EAAE,KAAKH,EAAE,QAAQG,CAAC,IAAI,CAACH,EAAE,QAAQG,CAAC,GAAGD,CAAC,IAAIF,EAAE,QAAQG,CAAC,EAAE,KAAKD,CAAC,KAAKF,EAAE,QAAQG,CAAC,IAAID,GAAGF,EAAE,iBAAiBA;AAAA,EACzI;AACD,WAAS,EAAEA,GAAGC,GAAG;AACf,MAAED,EAAE,iBAAiB,IAAIA,EAAE,UAAU,IAAIX,EAAC,IAAK,OAAOW,EAAE,QAAQC,CAAC;AAAA,EAClE;AACD,WAAS,IAAI;AACX,SAAK,UAAU,IAAIZ,EAAG,GAAE,KAAK,eAAe;AAAA,EAC7C;AACD,IAAE,UAAU,aAAa,WAAW;AAClC,QAAI,IAAI,CAAA,GAAIqU,GAAGC;AACf,QAAI,KAAK,iBAAiB;AACxB,aAAO;AACT,SAAKA,KAAKD,IAAI,KAAK;AACjB,QAAE,KAAKA,GAAGC,CAAC,KAAK,EAAE,KAAK,IAAIA,EAAE,MAAM,CAAC,IAAIA,CAAC;AAC3C,WAAO,OAAO,wBAAwB,EAAE,OAAO,OAAO,sBAAsBD,CAAC,CAAC,IAAI;AAAA,EACnF,GAAE,EAAE,UAAU,YAAY,SAAS,GAAG;AACrC,QAAIA,IAAI,IAAI,IAAI,IAAI,GAAGC,IAAI,KAAK,QAAQD,CAAC;AACzC,QAAI,CAACC;AACH,aAAO;AACT,QAAIA,EAAE;AACJ,aAAO,CAACA,EAAE,EAAE;AACd,aAASC,IAAI,GAAG1T,IAAIyT,EAAE,QAAQ,IAAI,IAAI,MAAMzT,CAAC,GAAG0T,IAAI1T,GAAG0T;AACrD,QAAEA,CAAC,IAAID,EAAEC,CAAC,EAAE;AACd,WAAO;AAAA,EACR,GAAE,EAAE,UAAU,gBAAgB,SAAS,GAAG;AACzC,QAAIF,IAAI,IAAI,IAAI,IAAI,GAAGC,IAAI,KAAK,QAAQD,CAAC;AACzC,WAAOC,IAAIA,EAAE,KAAK,IAAIA,EAAE,SAAS;AAAA,EACrC,GAAK,EAAE,UAAU,OAAO,SAAS,GAAGD,GAAGC,GAAGC,GAAG1T,GAAG,GAAG;AAC/C,QAAI2T,IAAI,IAAI,IAAI,IAAI;AACpB,QAAI,CAAC,KAAK,QAAQA,CAAC;AACjB,aAAO;AACT,QAAItT,IAAI,KAAK,QAAQsT,CAAC,GAAG,IAAI,UAAU,QAAQC,GAAGC;AAClD,QAAIxT,EAAE,IAAI;AACR,cAAQA,EAAE,QAAQ,KAAK,eAAe,GAAGA,EAAE,IAAI,QAAQ,EAAE,GAAG,GAAC;AAAA,QAC3D,KAAK;AACH,iBAAOA,EAAE,GAAG,KAAKA,EAAE,OAAO,GAAG;AAAA,QAC/B,KAAK;AACH,iBAAOA,EAAE,GAAG,KAAKA,EAAE,SAASmT,CAAC,GAAG;AAAA,QAClC,KAAK;AACH,iBAAOnT,EAAE,GAAG,KAAKA,EAAE,SAASmT,GAAGC,CAAC,GAAG;AAAA,QACrC,KAAK;AACH,iBAAOpT,EAAE,GAAG,KAAKA,EAAE,SAASmT,GAAGC,GAAGC,CAAC,GAAG;AAAA,QACxC,KAAK;AACH,iBAAOrT,EAAE,GAAG,KAAKA,EAAE,SAASmT,GAAGC,GAAGC,GAAG1T,CAAC,GAAG;AAAA,QAC3C,KAAK;AACH,iBAAOK,EAAE,GAAG,KAAKA,EAAE,SAASmT,GAAGC,GAAGC,GAAG1T,GAAG,CAAC,GAAG;AAAA,MAC/C;AACD,WAAK6T,IAAI,GAAGD,IAAI,IAAI,MAAM,IAAI,CAAC,GAAGC,IAAI,GAAGA;AACvC,QAAAD,EAAEC,IAAI,CAAC,IAAI,UAAUA,CAAC;AACxB,MAAAxT,EAAE,GAAG,MAAMA,EAAE,SAASuT,CAAC;AAAA,IAC7B,OAAW;AACL,UAAIE,IAAIzT,EAAE,QAAQG;AAClB,WAAKqT,IAAI,GAAGA,IAAIC,GAAGD;AACjB,gBAAQxT,EAAEwT,CAAC,EAAE,QAAQ,KAAK,eAAe,GAAGxT,EAAEwT,CAAC,EAAE,IAAI,QAAQ,EAAE,GAAG,GAAC;AAAA,UACjE,KAAK;AACH,YAAAxT,EAAEwT,CAAC,EAAE,GAAG,KAAKxT,EAAEwT,CAAC,EAAE,OAAO;AACzB;AAAA,UACF,KAAK;AACH,YAAAxT,EAAEwT,CAAC,EAAE,GAAG,KAAKxT,EAAEwT,CAAC,EAAE,SAASL,CAAC;AAC5B;AAAA,UACF,KAAK;AACH,YAAAnT,EAAEwT,CAAC,EAAE,GAAG,KAAKxT,EAAEwT,CAAC,EAAE,SAASL,GAAGC,CAAC;AAC/B;AAAA,UACF,KAAK;AACH,YAAApT,EAAEwT,CAAC,EAAE,GAAG,KAAKxT,EAAEwT,CAAC,EAAE,SAASL,GAAGC,GAAGC,CAAC;AAClC;AAAA,UACF;AACE,gBAAI,CAACE;AACH,mBAAKpT,IAAI,GAAGoT,IAAI,IAAI,MAAM,IAAI,CAAC,GAAGpT,IAAI,GAAGA;AACvC,gBAAAoT,EAAEpT,IAAI,CAAC,IAAI,UAAUA,CAAC;AAC1B,YAAAH,EAAEwT,CAAC,EAAE,GAAG,MAAMxT,EAAEwT,CAAC,EAAE,SAASD,CAAC;AAAA,QAChC;AAAA,IACJ;AACD,WAAO;AAAA,EACX,GAAK,EAAE,UAAU,KAAK,SAAS,GAAGJ,GAAGC,GAAG;AACpC,WAAO,EAAE,MAAM,GAAGD,GAAGC,GAAG,EAAE;AAAA,EAC9B,GAAK,EAAE,UAAU,OAAO,SAAS,GAAGD,GAAGC,GAAG;AACtC,WAAO,EAAE,MAAM,GAAGD,GAAGC,GAAG,EAAE;AAAA,EAC9B,GAAK,EAAE,UAAU,iBAAiB,SAAS,GAAGD,GAAGC,GAAGC,GAAG;AACnD,QAAI1T,IAAI,IAAI,IAAI,IAAI;AACpB,QAAI,CAAC,KAAK,QAAQA,CAAC;AACjB,aAAO;AACT,QAAI,CAACwT;AACH,aAAO,EAAE,MAAMxT,CAAC,GAAG;AACrB,QAAI,IAAI,KAAK,QAAQA,CAAC;AACtB,QAAI,EAAE;AACJ,QAAE,OAAOwT,MAAM,CAACE,KAAK,EAAE,UAAU,CAACD,KAAK,EAAE,YAAYA,MAAM,EAAE,MAAMzT,CAAC;AAAA,SACjE;AACH,eAAS2T,IAAI,GAAGtT,IAAI,CAAE,GAAE,IAAI,EAAE,QAAQsT,IAAI,GAAGA;AAC3C,SAAC,EAAEA,CAAC,EAAE,OAAOH,KAAKE,KAAK,CAAC,EAAEC,CAAC,EAAE,QAAQF,KAAK,EAAEE,CAAC,EAAE,YAAYF,MAAMpT,EAAE,KAAK,EAAEsT,CAAC,CAAC;AAC9E,MAAAtT,EAAE,SAAS,KAAK,QAAQL,CAAC,IAAIK,EAAE,WAAW,IAAIA,EAAE,CAAC,IAAIA,IAAI,EAAE,MAAML,CAAC;AAAA,IACnE;AACD,WAAO;AAAA,EACR,GAAE,EAAE,UAAU,qBAAqB,SAAS,GAAG;AAC9C,QAAIwT;AACJ,WAAO,KAAKA,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,QAAQA,CAAC,KAAK,EAAE,MAAMA,CAAC,MAAM,KAAK,UAAU,IAAIrU,KAAK,KAAK,eAAe,IAAI;AAAA,EACrH,GAAK,EAAE,UAAU,MAAM,EAAE,UAAU,gBAAgB,EAAE,UAAU,cAAc,EAAE,UAAU,IAAI,EAAE,WAAW,GAAG,EAAE,eAAe,GAAGJ,EAAE,UAAU;AAC7I,GAAGwU,EAAE;AACL,IAAIQ,KAAKR,GAAG;AACZ,MAAMS,KAAqB,gBAAAX,GAAGU,EAAE;AAChC,IAAIE,KAAK,EAAE,SAAS,CAAA;AACpBA,GAAG,UAAUC;AACbD,GAAG,QAAQ,UAAUC;AACrB,SAASA,GAAGnV,GAAG,GAAG,GAAG;AACnB,MAAI,KAAK;AACT,MAAII,IAAI,KAAK,EAAE,QAAQM,IAAIN,IAAI,EAAE,CAAC,IAAI,IAAIJ,EAAE,QAAQ,IAAIoV,GAAGpV,GAAG,GAAGU,GAAG,GAAG,EAAE,GAAG,IAAI;AAChF,MAAI,CAAC,KAAK,EAAE,SAAS,EAAE;AACrB,WAAO;AACT,MAAI,GAAGK,GAAGC,GAAG,GAAG,GAAG,GAAGC;AACtB,MAAIb,MAAM,IAAIiV,GAAGrV,GAAG,GAAG,GAAG,CAAC,IAAIA,EAAE,SAAS,KAAK,GAAG;AAChD,QAAIgB,IAAIhB,EAAE,CAAC,GAAGe,IAAI,IAAIf,EAAE,CAAC;AACzB,aAASkB,IAAI,GAAGA,IAAIR,GAAGQ,KAAK;AAC1B,UAAIlB,EAAEkB,CAAC,GAAG,IAAIlB,EAAEkB,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,IAAI,IAAIH,MAAMA,IAAI,IAAI,IAAIC,MAAMA,IAAI,IAAI,IAAI,MAAM,IAAI;AAC9F,IAAAC,IAAI,KAAK,IAAID,IAAI,GAAG,IAAID,CAAC,GAAGE,IAAIA,MAAM,IAAI,QAAQA,IAAI;AAAA,EACvD;AACD,SAAOqU,GAAG,GAAG,GAAG,GAAG,GAAGvU,GAAGE,GAAG,CAAC,GAAG;AAClC;AACA,SAASmU,GAAGpV,GAAG,GAAG,GAAGI,GAAGM,GAAG;AACzB,MAAI,GAAG;AACP,MAAIA,MAAM6U,GAAGvV,GAAG,GAAG,GAAGI,CAAC,IAAI;AACzB,SAAK,IAAI,GAAG,IAAI,GAAG,KAAKA;AACtB,UAAIoV,GAAG,GAAGxV,EAAE,CAAC,GAAGA,EAAE,IAAI,CAAC,GAAG,CAAC;AAAA;AAE7B,SAAK,IAAI,IAAII,GAAG,KAAK,GAAG,KAAKA;AAC3B,UAAIoV,GAAG,GAAGxV,EAAE,CAAC,GAAGA,EAAE,IAAI,CAAC,GAAG,CAAC;AAC/B,SAAO,KAAKyV,GAAG,GAAG,EAAE,IAAI,MAAMC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO;AACpD;AACA,SAASC,GAAG3V,GAAG,GAAG;AAChB,MAAI,CAACA;AACH,WAAOA;AACT,QAAM,IAAIA;AACV,MAAI,IAAIA,GAAGI;AACX;AACE,QAAIA,IAAI,IAAI,CAAC,EAAE,YAAYqV,GAAG,GAAG,EAAE,IAAI,KAAKG,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,MAAM,IAAI;AACxE,UAAIF,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,MAAM,MAAM,EAAE;AACjC;AACF,MAAAtV,IAAI;AAAA,IACL;AACC,UAAI,EAAE;AAAA,SACHA,KAAK,MAAM;AAClB,SAAO;AACT;AACA,SAASkV,GAAGtV,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG,GAAG;AAC/B,MAAIV,GAAG;AACL,KAAC,KAAK,KAAK6V,GAAG7V,GAAGI,GAAGM,GAAG,CAAC;AACxB,aAAS,IAAIV,GAAGe,GAAGC,GAAGhB,EAAE,SAASA,EAAE,QAAQ;AACzC,UAAIe,IAAIf,EAAE,MAAMgB,IAAIhB,EAAE,MAAM,IAAI8V,GAAG9V,GAAGI,GAAGM,GAAG,CAAC,IAAIqV,GAAG/V,CAAC,GAAG;AACtD,UAAE,KAAKe,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,KAAKf,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,KAAKgB,EAAE,IAAI,IAAI,CAAC,GAAG0U,GAAG1V,CAAC,GAAGA,IAAIgB,EAAE,MAAM,IAAIA,EAAE;AACxF;AAAA,MACD;AACD,UAAIhB,IAAIgB,GAAGhB,MAAM,GAAG;AAClB,YAAI,MAAM,KAAKA,IAAIgW,GAAGL,GAAG3V,CAAC,GAAG,GAAG,CAAC,GAAGsV,GAAGtV,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG,CAAC,KAAK,MAAM,KAAKuV,GAAGjW,GAAG,GAAG,GAAGI,GAAGM,GAAG,CAAC,IAAI4U,GAAGK,GAAG3V,CAAC,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG,CAAC;AAC3H;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACH;AACA,SAASqV,GAAG/V,GAAG;AACb,MAAI,IAAIA,EAAE,MAAM,IAAIA,GAAGI,IAAIJ,EAAE;AAC7B,MAAI4V,GAAG,GAAG,GAAGxV,CAAC,KAAK;AACjB,WAAO;AACT,WAASM,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAIN,EAAE,GAAG,IAAI,EAAE,GAAGW,IAAI,EAAE,GAAGC,IAAIZ,EAAE,GAAG,IAAIM,IAAI,IAAIA,IAAI,IAAIA,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAIK,IAAI,IAAIC,IAAI,IAAIA,IAAID,IAAIC,IAAID,IAAIC,GAAG,IAAIN,IAAI,IAAIA,IAAI,IAAIA,IAAI,IAAI,IAAI,IAAI,IAAI,GAAGO,IAAI,IAAIF,IAAI,IAAIC,IAAI,IAAIA,IAAID,IAAIC,IAAID,IAAIC,GAAGE,IAAId,EAAE,MAAMc,MAAM,KAAK;AAChQ,QAAIA,EAAE,KAAK,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAKD,KAAKiV,GAAGxV,GAAG,GAAG,GAAGK,GAAG,GAAGC,GAAGE,EAAE,GAAGA,EAAE,CAAC,KAAK0U,GAAG1U,EAAE,MAAMA,GAAGA,EAAE,IAAI,KAAK;AAC7G,aAAO;AACT,IAAAA,IAAIA,EAAE;AAAA,EACP;AACD,SAAO;AACT;AACA,SAAS4U,GAAG9V,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIM,IAAIV,EAAE,MAAM,IAAIA,GAAG,IAAIA,EAAE;AAC7B,MAAI4V,GAAGlV,GAAG,GAAG,CAAC,KAAK;AACjB,WAAO;AACT,WAAS,IAAIA,EAAE,GAAGK,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAG,IAAIN,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAGO,IAAI,IAAIF,IAAI,IAAIC,IAAI,IAAIA,IAAID,IAAIC,IAAID,IAAIC,GAAGE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAIH,IAAI,IAAIC,IAAI,IAAIA,IAAID,IAAIC,IAAID,IAAIC,GAAGM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAGE,IAAI2U,GAAGlV,GAAGC,GAAG,GAAG,GAAGd,CAAC,GAAG,IAAI+V,GAAG,GAAG7U,GAAG,GAAG,GAAGlB,CAAC,GAAG,IAAIJ,EAAE,OAAO,IAAIA,EAAE,OAAO,KAAK,EAAE,KAAKwB,KAAK,KAAK,EAAE,KAAK,KAAK;AACnV,QAAI,EAAE,KAAKP,KAAK,EAAE,KAAK,KAAK,EAAE,KAAKC,KAAK,EAAE,KAAKI,KAAK,MAAMZ,KAAK,MAAM,KAAKwV,GAAG,GAAG,GAAGnV,GAAG,GAAGC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK4U,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,KAAK,MAAM,IAAI,EAAE,OAAO,EAAE,KAAK3U,KAAK,EAAE,KAAK,KAAK,EAAE,KAAKC,KAAK,EAAE,KAAKI,KAAK,MAAMZ,KAAK,MAAM,KAAKwV,GAAG,GAAG,GAAGnV,GAAG,GAAGC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK4U,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,KAAK;AACvR,aAAO;AACT,QAAI,EAAE;AAAA,EACP;AACD,SAAO,KAAK,EAAE,KAAKpU,KAAK;AACtB,QAAI,EAAE,KAAKP,KAAK,EAAE,KAAK,KAAK,EAAE,KAAKC,KAAK,EAAE,KAAKI,KAAK,MAAMZ,KAAK,MAAM,KAAKwV,GAAG,GAAG,GAAGnV,GAAG,GAAGC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK4U,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,KAAK;AACnI,aAAO;AACT,QAAI,EAAE;AAAA,EACP;AACD,SAAO,KAAK,EAAE,KAAK,KAAK;AACtB,QAAI,EAAE,KAAK3U,KAAK,EAAE,KAAK,KAAK,EAAE,KAAKC,KAAK,EAAE,KAAKI,KAAK,MAAMZ,KAAK,MAAM,KAAKwV,GAAG,GAAG,GAAGnV,GAAG,GAAGC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK4U,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,KAAK;AACnI,aAAO;AACT,QAAI,EAAE;AAAA,EACP;AACD,SAAO;AACT;AACA,SAASI,GAAGhW,GAAG,GAAG,GAAG;AACnB,MAAII,IAAIJ;AACR,KAAG;AACD,QAAIU,IAAIN,EAAE,MAAM,IAAIA,EAAE,KAAK;AAC3B,KAACqV,GAAG/U,GAAG,CAAC,KAAK0V,GAAG1V,GAAGN,GAAGA,EAAE,MAAM,CAAC,KAAKiW,GAAG3V,GAAG,CAAC,KAAK2V,GAAG,GAAG3V,CAAC,MAAM,EAAE,KAAKA,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,KAAKN,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,GAAGsV,GAAGtV,CAAC,GAAGsV,GAAGtV,EAAE,IAAI,GAAGA,IAAIJ,IAAI,IAAII,IAAIA,EAAE;AAAA,EACrK,SAAWA,MAAMJ;AACf,SAAO2V,GAAGvV,CAAC;AACb;AACA,SAAS6V,GAAGjW,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG;AAC5B,MAAI,IAAIV;AACR,KAAG;AACD,aAAS,IAAI,EAAE,KAAK,MAAM,MAAM,EAAE,QAAQ;AACxC,UAAI,EAAE,MAAM,EAAE,KAAKsW,GAAG,GAAG,CAAC,GAAG;AAC3B,YAAIvV,IAAIwV,GAAG,GAAG,CAAC;AACf,YAAIZ,GAAG,GAAG,EAAE,IAAI,GAAG5U,IAAI4U,GAAG5U,GAAGA,EAAE,IAAI,GAAGuU,GAAG,GAAG,GAAG,GAAGlV,GAAGM,GAAG,GAAG,CAAC,GAAG4U,GAAGvU,GAAG,GAAG,GAAGX,GAAGM,GAAG,GAAG,CAAC;AACrF;AAAA,MACD;AACD,UAAI,EAAE;AAAA,IACP;AACD,QAAI,EAAE;AAAA,EACV,SAAW,MAAMV;AACjB;AACA,SAASqV,GAAGrV,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIM,IAAI,CAAA,GAAI,GAAG,GAAG,GAAGK,GAAGC;AACxB,OAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,IAAI,GAAG;AAC/B,QAAI,EAAE,CAAC,IAAIZ,GAAGW,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,IAAIX,IAAIJ,EAAE,QAAQgB,IAAIoU,GAAGpV,GAAG,GAAGe,GAAGX,GAAG,EAAE,GAAGY,MAAMA,EAAE,SAASA,EAAE,UAAU,KAAKN,EAAE,KAAK8V,GAAGxV,CAAC,CAAC;AAC/H,OAAKN,EAAE,KAAK+V,EAAE,GAAG,IAAI,GAAG,IAAI/V,EAAE,QAAQ;AACpC,QAAIgW,GAAGhW,EAAE,CAAC,GAAG,CAAC;AAChB,SAAO;AACT;AACA,SAAS+V,GAAGzW,GAAG,GAAG;AAChB,SAAOA,EAAE,IAAI,EAAE;AACjB;AACA,SAAS0W,GAAG1W,GAAG,GAAG;AAChB,MAAI,IAAI2W,GAAG3W,GAAG,CAAC;AACf,MAAI,CAAC;AACH,WAAO;AACT,MAAII,IAAImW,GAAG,GAAGvW,CAAC;AACf,SAAO2V,GAAGvV,GAAGA,EAAE,IAAI,GAAGuV,GAAG,GAAG,EAAE,IAAI;AACpC;AACA,SAASgB,GAAG3W,GAAG,GAAG;AAChB,MAAI,IAAI,GAAGI,IAAIJ,EAAE,GAAGU,IAAIV,EAAE,GAAG,IAAI,QAAQ;AACzC,KAAG;AACD,QAAIU,KAAK,EAAE,KAAKA,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,GAAG;AACjD,UAAI,IAAI,EAAE,KAAKA,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;AAC3D,UAAI,KAAKN,KAAK,IAAI,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,MAAMA;AACpE,eAAO;AAAA,IACV;AACD,QAAI,EAAE;AAAA,EACV,SAAW,MAAM;AACf,MAAI,CAAC;AACH,WAAO;AACT,MAAIW,IAAI,GAAGC,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,OAAO;AACxC,MAAI;AACJ;AACE,IAAAZ,KAAK,EAAE,KAAK,EAAE,KAAKY,KAAKZ,MAAM,EAAE,KAAK8V,GAAGxV,IAAI,IAAIN,IAAI,GAAGM,GAAGM,GAAG,GAAGN,IAAI,IAAI,IAAIN,GAAGM,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,IAAI,KAAK,IAAIA,IAAI,EAAE,CAAC,KAAKN,IAAI,EAAE,IAAIiW,GAAG,GAAGrW,CAAC,MAAM,IAAI,KAAK,MAAM,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK4W,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAAA,SACjO,MAAM7V;AACb,SAAO;AACT;AACA,SAAS6V,GAAG5W,GAAG,GAAG;AAChB,SAAO4V,GAAG5V,EAAE,MAAMA,GAAG,EAAE,IAAI,IAAI,KAAK4V,GAAG,EAAE,MAAM5V,GAAGA,EAAE,IAAI,IAAI;AAC9D;AACA,SAAS6V,GAAG7V,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIM,IAAIV;AACR;AACE,IAAAU,EAAE,MAAM,MAAMA,EAAE,IAAIyV,GAAGzV,EAAE,GAAGA,EAAE,GAAG,GAAG,GAAGN,CAAC,IAAIM,EAAE,QAAQA,EAAE,MAAMA,EAAE,QAAQA,EAAE,MAAMA,IAAIA,EAAE;AAAA,SACjFA,MAAMV;AACb,EAAAU,EAAE,MAAM,QAAQ,MAAMA,EAAE,QAAQ,MAAMmW,GAAGnW,CAAC;AAC5C;AACA,SAASmW,GAAG7W,GAAG;AACb,MAAI,GAAG,GAAGI,GAAGM,GAAG,GAAG,GAAG,GAAGK,GAAGC,IAAI;AAChC,KAAG;AACD,SAAK,IAAIhB,GAAGA,IAAI,MAAM,IAAI,MAAM,IAAI,GAAG,KAAK;AAC1C,WAAK,KAAKI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIY,MAAM,KAAKZ,IAAIA,EAAE,OAAO,CAAC,CAACA,IAAI;AAC/D;AACF,WAAKW,IAAIC,GAAG,IAAI,KAAKD,IAAI,KAAKX;AAC5B,cAAM,MAAMW,MAAM,KAAK,CAACX,KAAK,EAAE,KAAKA,EAAE,MAAMM,IAAI,GAAG,IAAI,EAAE,OAAO,QAAQA,IAAIN,GAAGA,IAAIA,EAAE,OAAOW,MAAM,IAAI,EAAE,QAAQL,IAAIV,IAAIU,GAAGA,EAAE,QAAQ,GAAG,IAAIA;AAC9I,UAAIN;AAAA,IACL;AACD,MAAE,QAAQ,MAAMY,KAAK;AAAA,EACzB,SAAW,IAAI;AACb,SAAOhB;AACT;AACA,SAASmW,GAAGnW,GAAG,GAAG,GAAGI,GAAGM,GAAG;AACzB,SAAOV,KAAKA,IAAI,KAAKU,IAAI,GAAG,KAAK,IAAIN,KAAKM,IAAI,GAAGV,KAAKA,IAAIA,KAAK,KAAK,UAAUA,KAAKA,IAAIA,KAAK,KAAK,WAAWA,KAAKA,IAAIA,KAAK,KAAK,WAAWA,KAAKA,IAAIA,KAAK,KAAK,YAAY,KAAK,IAAI,KAAK,KAAK,UAAU,KAAK,IAAI,KAAK,KAAK,WAAW,KAAK,IAAI,KAAK,KAAK,WAAW,KAAK,IAAI,KAAK,KAAK,YAAYA,IAAI,KAAK;AAC5S;AACA,SAASwW,GAAGxW,GAAG;AACb,MAAI,IAAIA,GAAG,IAAIA;AACf;AACE,KAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI,IAAI,EAAE;AAAA,SACrD,MAAMA;AACb,SAAO;AACT;AACA,SAASkW,GAAGlW,GAAG,GAAG,GAAGI,GAAGM,GAAG,GAAG,GAAG,GAAG;AAClC,UAAQA,IAAI,MAAM,IAAI,OAAOV,IAAI,MAAM,IAAI,OAAOA,IAAI,MAAMI,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,IAAI,OAAOM,IAAI,MAAMN,IAAI;AACjI;AACA,SAASkW,GAAGtW,GAAG,GAAG;AAChB,SAAOA,EAAE,KAAK,MAAM,EAAE,KAAKA,EAAE,KAAK,MAAM,EAAE,KAAK,CAAC8W,GAAG9W,GAAG,CAAC;AAAA,GACtDqW,GAAGrW,GAAG,CAAC,KAAKqW,GAAG,GAAGrW,CAAC,KAAK+W,GAAG/W,GAAG,CAAC;AAAA,GAC/B4V,GAAG5V,EAAE,MAAMA,GAAG,EAAE,IAAI,KAAK4V,GAAG5V,GAAG,EAAE,MAAM,CAAC;AAAA,EACzCyV,GAAGzV,GAAG,CAAC,KAAK4V,GAAG5V,EAAE,MAAMA,GAAGA,EAAE,IAAI,IAAI,KAAK4V,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI;AACnE;AACA,SAASA,GAAG5V,GAAG,GAAG,GAAG;AACnB,UAAQ,EAAE,IAAIA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAIA,EAAE,MAAM,EAAE,IAAI,EAAE;AAC5D;AACA,SAASyV,GAAGzV,GAAG,GAAG;AAChB,SAAOA,EAAE,MAAM,EAAE,KAAKA,EAAE,MAAM,EAAE;AAClC;AACA,SAASoW,GAAGpW,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIM,IAAIsW,GAAGpB,GAAG5V,GAAG,GAAG,CAAC,CAAC,GAAG,IAAIgX,GAAGpB,GAAG5V,GAAG,GAAGI,CAAC,CAAC,GAAG,IAAI4W,GAAGpB,GAAG,GAAGxV,GAAGJ,CAAC,CAAC,GAAG,IAAIgX,GAAGpB,GAAG,GAAGxV,GAAG,CAAC,CAAC;AACrF,SAAO,CAAC,EAAEM,MAAM,KAAK,MAAM,KAAKA,MAAM,KAAKuW,GAAGjX,GAAG,GAAG,CAAC,KAAK,MAAM,KAAKiX,GAAGjX,GAAGI,GAAG,CAAC,KAAK,MAAM,KAAK6W,GAAG,GAAGjX,GAAGI,CAAC,KAAK,MAAM,KAAK6W,GAAG,GAAG,GAAG7W,CAAC;AACrI;AACA,SAAS6W,GAAGjX,GAAG,GAAG,GAAG;AACnB,SAAO,EAAE,KAAK,KAAK,IAAIA,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAIA,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAIA,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAIA,EAAE,GAAG,EAAE,CAAC;AACxH;AACA,SAASgX,GAAGhX,GAAG;AACb,SAAOA,IAAI,IAAI,IAAIA,IAAI,IAAI,KAAK;AAClC;AACA,SAAS8W,GAAG9W,GAAG,GAAG;AAChB,MAAI,IAAIA;AACR,KAAG;AACD,QAAI,EAAE,MAAMA,EAAE,KAAK,EAAE,KAAK,MAAMA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,KAAKoW,GAAG,GAAG,EAAE,MAAMpW,GAAG,CAAC;AAC1F,aAAO;AACT,QAAI,EAAE;AAAA,EACV,SAAW,MAAMA;AACf,SAAO;AACT;AACA,SAASqW,GAAGrW,GAAG,GAAG;AAChB,SAAO4V,GAAG5V,EAAE,MAAMA,GAAGA,EAAE,IAAI,IAAI,IAAI4V,GAAG5V,GAAG,GAAGA,EAAE,IAAI,KAAK,KAAK4V,GAAG5V,GAAGA,EAAE,MAAM,CAAC,KAAK,IAAI4V,GAAG5V,GAAG,GAAGA,EAAE,IAAI,IAAI,KAAK4V,GAAG5V,GAAGA,EAAE,MAAM,CAAC,IAAI;AACjI;AACA,SAAS+W,GAAG/W,GAAG,GAAG;AAChB,MAAI,IAAIA,GAAGI,IAAI,IAAIM,KAAKV,EAAE,IAAI,EAAE,KAAK,GAAG,KAAKA,EAAE,IAAI,EAAE,KAAK;AAC1D;AACE,MAAE,IAAI,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,MAAM,EAAE,KAAKU,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,MAAMN,IAAI,CAACA,IAAI,IAAI,EAAE;AAAA,SACvH,MAAMJ;AACb,SAAOI;AACT;AACA,SAASmW,GAAGvW,GAAG,GAAG;AAChB,MAAI,IAAI,IAAIkX,GAAGlX,EAAE,GAAGA,EAAE,GAAGA,EAAE,CAAC,GAAGI,IAAI,IAAI8W,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAGxW,IAAIV,EAAE,MAAM,IAAI,EAAE;AAC5E,SAAOA,EAAE,OAAO,GAAG,EAAE,OAAOA,GAAG,EAAE,OAAOU,GAAGA,EAAE,OAAO,GAAGN,EAAE,OAAO,GAAG,EAAE,OAAOA,GAAG,EAAE,OAAOA,GAAGA,EAAE,OAAO,GAAGA;AACzG;AACA,SAASoV,GAAGxV,GAAG,GAAG,GAAGI,GAAG;AACtB,MAAIM,IAAI,IAAIwW,GAAGlX,GAAG,GAAG,CAAC;AACtB,SAAOI,KAAKM,EAAE,OAAON,EAAE,MAAMM,EAAE,OAAON,GAAGA,EAAE,KAAK,OAAOM,GAAGN,EAAE,OAAOM,MAAMA,EAAE,OAAOA,GAAGA,EAAE,OAAOA,IAAIA;AACpG;AACA,SAASgV,GAAG1V,GAAG;AACb,EAAAA,EAAE,KAAK,OAAOA,EAAE,MAAMA,EAAE,KAAK,OAAOA,EAAE,MAAMA,EAAE,UAAUA,EAAE,MAAM,QAAQA,EAAE,QAAQA,EAAE,UAAUA,EAAE,MAAM,QAAQA,EAAE;AAClH;AACA,SAASkX,GAAGlX,GAAG,GAAG,GAAG;AACnB,OAAK,IAAIA,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO,MAAM,KAAK,OAAO,MAAM,KAAK,IAAI,GAAG,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,KAAK,UAAU;AAC3I;AACAmV,GAAG,YAAY,SAASnV,GAAG,GAAG,GAAGI,GAAG;AAClC,MAAIM,IAAI,KAAK,EAAE,QAAQ,IAAIA,IAAI,EAAE,CAAC,IAAI,IAAIV,EAAE,QAAQ,IAAI,KAAK,IAAIuV,GAAGvV,GAAG,GAAG,GAAG,CAAC,CAAC;AAC/E,MAAIU;AACF,aAAS,IAAI,GAAGK,IAAI,EAAE,QAAQ,IAAIA,GAAG,KAAK;AACxC,UAAIC,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,IAAID,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,IAAIf,EAAE;AACnD,WAAK,KAAK,IAAIuV,GAAGvV,GAAGgB,GAAG,GAAG,CAAC,CAAC;AAAA,IAC7B;AACH,MAAI,IAAI;AACR,OAAK,IAAI,GAAG,IAAIZ,EAAE,QAAQ,KAAK,GAAG;AAChC,QAAI,IAAIA,EAAE,CAAC,IAAI,GAAGa,IAAIb,EAAE,IAAI,CAAC,IAAI,GAAGc,IAAId,EAAE,IAAI,CAAC,IAAI;AACnD,SAAK,KAAK;AAAA,OACPJ,EAAE,CAAC,IAAIA,EAAEkB,CAAC,MAAMlB,EAAEiB,IAAI,CAAC,IAAIjB,EAAE,IAAI,CAAC,MAAMA,EAAE,CAAC,IAAIA,EAAEiB,CAAC,MAAMjB,EAAEkB,IAAI,CAAC,IAAIlB,EAAE,IAAI,CAAC;AAAA,IACjF;AAAA,EACG;AACD,SAAO,MAAM,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC;AACtD;AACA,SAASuV,GAAGvV,GAAG,GAAG,GAAGI,GAAG;AACtB,WAASM,IAAI,GAAG,IAAI,GAAG,IAAI,IAAIN,GAAG,IAAI,GAAG,KAAKA;AAC5C,IAAAM,MAAMV,EAAE,CAAC,IAAIA,EAAE,CAAC,MAAMA,EAAE,IAAI,CAAC,IAAIA,EAAE,IAAI,CAAC,IAAI,IAAI;AAClD,SAAOU;AACT;AACAyU,GAAG,UAAU,SAASnV,GAAG;AACvB,WAAS,IAAIA,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,IAAI,EAAE,UAAU,CAAE,GAAE,OAAO,IAAI,YAAY,EAAC,GAAII,IAAI,GAAGM,IAAI,GAAGA,IAAIV,EAAE,QAAQU,KAAK;AAC5G,aAAS,IAAI,GAAG,IAAIV,EAAEU,CAAC,EAAE,QAAQ;AAC/B,eAAS,IAAI,GAAG,IAAI,GAAG;AACrB,UAAE,SAAS,KAAKV,EAAEU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,IAAAA,IAAI,MAAMN,KAAKJ,EAAEU,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAKN,CAAC;AAAA,EAC/C;AACD,SAAO;AACT;AACA,IAAI+W,KAAKjC,GAAG;AACZ,MAAMkC,KAAqB,gBAAA9C,GAAG6C,EAAE;AAChC,IAAIE,KAAK,EAAE,SAAS,CAAA;AACpB;AACAA,GAAG;AAAA,CACF,SAASrX,GAAG,GAAG;AACd,GAAC,SAAS,GAAG;AACX,QAAII,IAAI,KAAK,CAAC,EAAE,YAAY,GAAGM,IAAIV,KAAK,CAACA,EAAE,YAAYA,GAAG,IAAI,OAAOqU,MAAM,YAAYA;AACvF,KAAC,EAAE,WAAW,KAAK,EAAE,WAAW,KAAK,EAAE,SAAS,OAAO,IAAI;AAC3D,QAAI,GAAG,IAAI,YAAYtT,IAAI,IAAIC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,IAAI,IAAIC,IAAI,KAAK,IAAI,KAAKI,IAAI,SAASE,IAAI,gBAAgB,IAAI,6BAA6B,IAAI;AAAA,MAC7J,UAAU;AAAA,MACV,aAAa;AAAA,MACb,iBAAiB;AAAA,IAClB,GAAE,IAAIT,IAAIC,GAAGS,IAAI,KAAK,OAAOE,IAAI,OAAO,cAAcD;AACvD,aAAS,EAAE,GAAG;AACZ,YAAM,IAAI,WAAW,EAAE,CAAC,CAAC;AAAA,IAC1B;AACD,aAASwG,EAAE,GAAG6B,GAAG;AACf,eAASC,IAAI,EAAE,QAAQC,KAAK,CAAE,GAAED;AAC9B,QAAAC,GAAGD,CAAC,IAAID,EAAE,EAAEC,CAAC,CAAC;AAChB,aAAOC;AAAA,IACR;AACD,aAAS9B,EAAE,GAAG4B,GAAG;AACf,UAAIC,IAAI,EAAE,MAAM,GAAG,GAAGC,KAAK;AAC3B,MAAAD,EAAE,SAAS,MAAMC,KAAKD,EAAE,CAAC,IAAI,KAAK,IAAIA,EAAE,CAAC,IAAI,IAAI,EAAE,QAAQ,GAAG,GAAG;AACjE,UAAIE,KAAI,EAAE,MAAM,GAAG,GAAGC,IAAIjC,EAAEgC,IAAGH,CAAC,EAAE,KAAK,GAAG;AAC1C,aAAOE,KAAKE;AAAA,IACb;AACD,aAAS/B,EAAE,GAAG;AACZ,eAAS2B,IAAI,IAAIC,IAAI,GAAGC,KAAK,EAAE,QAAQC,IAAGC,GAAGH,IAAIC;AAC/C,QAAAC,KAAI,EAAE,WAAWF,GAAG,GAAGE,MAAK,SAASA,MAAK,SAASF,IAAIC,MAAME,IAAI,EAAE,WAAWH,GAAG,IAAIG,IAAI,UAAU,QAAQJ,EAAE,OAAOG,KAAI,SAAS,OAAOC,IAAI,QAAQ,KAAK,KAAKJ,EAAE,KAAKG,EAAC,GAAGF,QAAQD,EAAE,KAAKG,EAAC;AAC3L,aAAOH;AAAA,IACR;AACD,aAAS1B,EAAE,GAAG;AACZ,aAAOH,EAAE,GAAG,SAAS6B,GAAG;AACtB,YAAIC,IAAI;AACR,eAAOD,IAAI,UAAUA,KAAK,OAAOC,KAAKrI,EAAEoI,MAAM,KAAK,OAAO,KAAK,GAAGA,IAAI,QAAQA,IAAI,OAAOC,KAAKrI,EAAEoI,CAAC,GAAGC;AAAA,MAC5G,CAAO,EAAE,KAAK,EAAE;AAAA,IACX;AACD,aAAS,EAAE,GAAG;AACZ,aAAO,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,KAAKjJ;AAAA,IAC7E;AACD,aAASuH,EAAE,GAAGyB,GAAG;AACf,aAAO,IAAI,KAAK,MAAM,IAAI,QAAQA,KAAK,MAAM;AAAA,IAC9C;AACD,aAASJ,EAAE,GAAGI,GAAGC,GAAG;AAClB,UAAIC,KAAK;AACT,WAAK,IAAID,IAAIvI,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,KAAKA,EAAE,IAAIsI,CAAC,GAAG,IAAI,IAAI,KAAK,GAAGE,MAAMlJ;AACnE,YAAIU,EAAE,IAAI,CAAC;AACb,aAAOA,EAAEwI,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE;AAAA,IACpC;AACD,aAASL,EAAE,GAAG;AACZ,UAAIG,IAAI,IAAIC,IAAI,EAAE,QAAQC,IAAIC,KAAI,GAAGC,IAAIjJ,GAAGkJ,KAAKnJ,GAAGoJ,IAAIC,GAAGC,GAAG,IAAIC,IAAIC,IAAIC,IAAI4M,IAAIC;AAClF,WAAKlN,KAAK,EAAE,YAAY,CAAC,GAAGA,KAAK,MAAMA,KAAK,IAAIC,IAAI,GAAGA,IAAID,IAAI,EAAEC;AAC/D,UAAE,WAAWA,CAAC,KAAK,OAAO,EAAE,WAAW,GAAGP,EAAE,KAAK,EAAE,WAAWO,CAAC,CAAC;AAClE,WAAKC,IAAIF,KAAK,IAAIA,KAAK,IAAI,GAAGE,IAAIP,KAAK;AACrC,aAAK,KAAKE,IAAGM,KAAK,GAAGC,KAAK1J,GAAGwJ,KAAKP,KAAK,EAAE,eAAe,GAAGU,KAAK,EAAE,EAAE,WAAWH,GAAG,CAAC,IAAIG,MAAM3J,KAAK2J,KAAKjJ,GAAG,IAAIyI,MAAKM,EAAE,MAAM,EAAE,UAAU,GAAGN,MAAKQ,KAAKF,IAAI8M,KAAK7M,MAAML,KAAKpJ,IAAIyJ,MAAML,KAAK,IAAI,IAAIK,KAAKL,IAAI,EAAEM,KAAK4M,KAAK7M,MAAM1J;AACxN,UAAAwW,KAAKxW,IAAIuW,IAAI9M,KAAK/I,EAAE,IAAI8V,EAAE,KAAK,EAAE,UAAU,GAAG/M,MAAM+M;AACtD,QAAAtN,KAAKF,EAAE,SAAS,GAAGK,KAAKT,EAAEO,KAAI,IAAID,IAAI,MAAM,CAAC,GAAGxI,EAAEyI,KAAID,EAAE,IAAI,IAAIE,KAAK,EAAE,UAAU,GAAGA,KAAK1I,EAAEyI,KAAID,EAAE,GAAGC,MAAKD,IAAIF,EAAE,OAAOG,MAAK,GAAGC,CAAC;AAAA,MAChI;AACD,aAAO9B,EAAE0B,CAAC;AAAA,IACX;AACD,aAAS,EAAE,GAAG;AACZ,UAAIA,GAAGC,GAAGC,IAAIC,IAAGC,GAAGC,IAAIC,IAAIC,GAAGC,GAAG,IAAIC,IAAIC,KAAK,CAAA,GAAIC,IAAI4M,IAAIC,IAAIC;AAC/D,WAAK,IAAIpP,EAAE,CAAC,GAAGsC,KAAK,EAAE,QAAQX,IAAI7I,GAAG8I,IAAI,GAAGG,IAAIlJ,GAAGmJ,KAAK,GAAGA,KAAKM,IAAI,EAAEN;AACpE,QAAAI,KAAK,EAAEJ,EAAE,GAAGI,KAAK,OAAOC,GAAG,KAAK9I,EAAE6I,EAAE,CAAC;AACvC,WAAKP,KAAKC,KAAIO,GAAG,QAAQP,MAAKO,GAAG,KAAK,CAAC,GAAGR,KAAKS,MAAM;AACnD,aAAKL,KAAK,GAAGD,KAAK,GAAGA,KAAKM,IAAI,EAAEN;AAC9B,UAAAI,KAAK,EAAEJ,EAAE,GAAGI,MAAMT,KAAKS,KAAKH,OAAOA,KAAKG;AAC1C,aAAK8M,KAAKrN,KAAK,GAAGI,KAAKN,IAAItI,GAAG,IAAIuI,KAAKsN,EAAE,KAAK,EAAE,UAAU,GAAGtN,MAAMK,KAAKN,KAAKuN,IAAIvN,IAAIM,IAAID,KAAK,GAAGA,KAAKM,IAAI,EAAEN;AAC1G,cAAII,KAAK,EAAEJ,EAAE,GAAGI,KAAKT,KAAK,EAAEC,IAAI,KAAK,EAAE,UAAU,GAAGQ,MAAMT,GAAG;AAC3D,iBAAKO,IAAIN,GAAGO,IAAIxJ,GAAG,KAAKwJ,KAAKJ,IAAInJ,IAAIuJ,KAAKJ,IAAI,IAAI,IAAII,IAAIJ,GAAG,EAAEG,IAAI,KAAKC,KAAKxJ;AAC3E,cAAAyW,KAAKlN,IAAI,IAAIiN,KAAKxW,IAAI,IAAI0J,GAAG;AAAA,gBAC3B9I,EAAE2G,EAAE,KAAKkP,KAAKD,IAAI,CAAC,CAAC;AAAA,cACrB,GAAEjN,IAAI7I,EAAE+V,KAAKD,EAAE;AAClB,YAAA9M,GAAG,KAAK9I,EAAE2G,EAAEgC,GAAG,CAAC,CAAC,CAAC,GAAGH,IAAIR,EAAEK,GAAGsN,IAAIrN,MAAMC,EAAC,GAAGF,IAAI,GAAG,EAAEC;AAAA,UACtD;AACH,UAAED,GAAG,EAAED;AAAA,MACR;AACD,aAAOU,GAAG,KAAK,EAAE;AAAA,IAClB;AACD,aAASZ,EAAE,GAAG;AACZ,aAAO1B,EAAE,GAAG,SAAS4B,GAAG;AACtB,eAAOzI,EAAE,KAAKyI,CAAC,IAAIH,EAAEG,EAAE,MAAM,CAAC,EAAE,YAAa,CAAA,IAAIA;AAAA,MACzD,CAAO;AAAA,IACF;AACD,aAASD,GAAE,GAAG;AACZ,aAAO3B,EAAE,GAAG,SAAS4B,GAAG;AACtB,eAAOvI,EAAE,KAAKuI,CAAC,IAAI,SAAS,EAAEA,CAAC,IAAIA;AAAA,MAC3C,CAAO;AAAA,IACF;AACD,QAAI,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQT,MAAM;AAAA,QACJ,QAAQ3B;AAAA,QACR,QAAQC;AAAA,MACT;AAAA,MACD,QAAQuB;AAAA,MACR,QAAQ;AAAA,MACR,SAASE;AAAA,MACT,WAAWD;AAAA,IACZ,GAAEzJ,KAAKM;AACN,UAAIV,EAAE,WAAWI;AACf,QAAAM,EAAE,UAAU;AAAA;AAEZ,aAAKgB,KAAK;AACR,YAAE,eAAeA,CAAC,MAAMtB,EAAEsB,CAAC,IAAI,EAAEA,CAAC;AAAA;AAEtC,QAAE,WAAW;AAAA,EAChB,GAAE2S,EAAE;AACP,GAAGgD,IAAIA,GAAG,OAAO;AACRA,GAAG;IAASI,KAAK,OAAOC,KAAK,WAAWC,KAAK,YAAYC,KAAK,gBAAgBC,KAAK,aAAaC,KAAK,WAAWC,KAAK,UAAUC,KAAK,WAAW;AACtJ,MAAI,OAAO,UAAU,cAAc,OAAO,OAAO,yBAAyB;AACxE,WAAO;AACT,MAAI,OAAO,OAAO,YAAY;AAC5B,WAAO;AACT,MAAIC,IAAI,IAAIC,IAAI,OAAO,MAAM,GAAG9X,IAAI,OAAO8X,CAAC;AAC5C,MAAI,OAAOA,KAAK,YAAY,OAAO,UAAU,SAAS,KAAKA,CAAC,MAAM,qBAAqB,OAAO,UAAU,SAAS,KAAK9X,CAAC,MAAM;AAC3H,WAAO;AACT,MAAI,IAAI;AACR,EAAA6X,EAAEC,CAAC,IAAI;AACP,OAAKA,KAAKD;AACR,WAAO;AACT,MAAI,OAAO,OAAO,QAAQ,cAAc,OAAO,KAAKA,CAAC,EAAE,WAAW,KAAK,OAAO,OAAO,uBAAuB,cAAc,OAAO,oBAAoBA,CAAC,EAAE,WAAW;AACjK,WAAO;AACT,MAAIE,IAAI,OAAO,sBAAsBF,CAAC;AACtC,MAAIE,EAAE,WAAW,KAAKA,EAAE,CAAC,MAAMD,KAAK,CAAC,OAAO,UAAU,qBAAqB,KAAKD,GAAGC,CAAC;AAClF,WAAO;AACT,MAAI,OAAO,OAAO,4BAA4B,YAAY;AACxD,QAAIE,IAAI,OAAO,yBAAyBH,GAAGC,CAAC;AAC5C,QAAIE,EAAE,UAAU,KAAKA,EAAE,eAAe;AACpC,aAAO;AAAA,EACV;AACD,SAAO;AACT,GAAGC,KAAK,OAAO,SAAS,OAAO,QAAQC,KAAKN,IAAIO,KAAK,WAAW;AAC9D,SAAO,OAAOF,MAAM,cAAc,OAAO,UAAU,cAAc,OAAOA,GAAG,KAAK,KAAK,YAAY,OAAO,OAAO,KAAK,KAAK,WAAW,KAAKC;AAC3I,GAAGE,KAAK;AAAA,EACN,WAAW;AAAA,EACX,KAAK,CAAE;AACT,GAAGC,KAAK,QAAQC,KAAK,WAAW;AAC9B,SAAO,EAAE,WAAWF,GAAE,EAAG,QAAQA,GAAG,OAAO,EAAEA,cAAcC;AAC7D,GAAGE,KAAK,mDAAmDC,KAAK,OAAO,UAAU,UAAUC,KAAK,KAAK,KAAKC,KAAK,qBAAqBC,KAAK,SAASd,GAAGC,GAAG;AACtJ,WAAS9X,IAAI,CAAE,GAAE,IAAI,GAAG,IAAI6X,EAAE,QAAQ,KAAK;AACzC,IAAA7X,EAAE,CAAC,IAAI6X,EAAE,CAAC;AACZ,WAASE,IAAI,GAAGA,IAAID,EAAE,QAAQC,KAAK;AACjC,IAAA/X,EAAE+X,IAAIF,EAAE,MAAM,IAAIC,EAAEC,CAAC;AACvB,SAAO/X;AACT,GAAG4Y,KAAK,SAASf,GAAGC,GAAG;AACrB,WAAS9X,IAAI,CAAE,GAAE,IAAI8X,KAAK,GAAGC,IAAI,GAAG,IAAIF,EAAE,QAAQ,KAAK,GAAGE,KAAK;AAC7D,IAAA/X,EAAE+X,CAAC,IAAIF,EAAE,CAAC;AACZ,SAAO7X;AACT,GAAG6Y,KAAK,SAASjZ,GAAG,GAAG;AACrB,WAAS,IAAI,IAAII,IAAI,GAAGA,IAAIJ,EAAE,QAAQI,KAAK;AACzC,SAAKJ,EAAEI,CAAC,GAAGA,IAAI,IAAIJ,EAAE,WAAW,KAAK;AACvC,SAAO;AACT,GAAGkZ,KAAK,SAASjB,GAAG;AAClB,MAAIC,IAAI;AACR,MAAI,OAAOA,KAAK,cAAcU,GAAG,MAAMV,CAAC,MAAMY;AAC5C,UAAM,IAAI,UAAUH,KAAKT,CAAC;AAC5B,WAAS9X,IAAI4Y,GAAG,WAAW,CAAC,GAAG,GAAGb,IAAI,WAAW;AAC/C,QAAI,gBAAgB,GAAG;AACrB,UAAI1D,IAAIyD,EAAE;AAAA,QACR;AAAA,QACAa,GAAG3Y,GAAG,SAAS;AAAA,MACvB;AACM,aAAO,OAAOqU,CAAC,MAAMA,IAAIA,IAAI;AAAA,IAC9B;AACD,WAAOyD,EAAE;AAAA,MACPD;AAAA,MACAc,GAAG3Y,GAAG,SAAS;AAAA,IACrB;AAAA,EACA,GAAKgY,IAAIS,GAAG,GAAGX,EAAE,SAAS9X,EAAE,MAAM,GAAG+Y,IAAI,CAAE,GAAEpY,IAAI,GAAGA,IAAIqX,GAAGrX;AACvD,IAAAoY,EAAEpY,CAAC,IAAI,MAAMA;AACf,MAAI,IAAI,SAAS,UAAU,sBAAsBkY,GAAGE,GAAG,GAAG,IAAI,2CAA2C,EAAEhB,CAAC,GAAGD,EAAE,WAAW;AAC1H,QAAI,IAAI,WAAW;AAAA,IACvB;AACI,MAAE,YAAYA,EAAE,WAAW,EAAE,YAAY,IAAI,EAAG,GAAE,EAAE,YAAY;AAAA,EACjE;AACD,SAAO;AACT,GAAGkB,KAAKF,IAAIG,KAAK,SAAS,UAAU,QAAQD,IAAIE,KAAK,SAAS,UAAU,MAAMC,KAAK,OAAO,UAAU,gBAAgBC,KAAKH,IAAII,KAAKD,GAAG,KAAKF,IAAIC,EAAE,GAAGG,IAAIC,KAAKlC,IAAImC,KAAKlC,IAAImC,KAAKlC,IAAImC,KAAKlC,IAAImC,KAAKlC,IAAImC,KAAKlC,IAAImC,KAAKlC,IAAImC,KAAK,UAAUC,KAAK,SAASna,GAAG;AACpP,MAAI;AACF,WAAOka,GAAG,2BAA2Bla,IAAI,gBAAgB,EAAC;AAAA,EAC9D,QAAU;AAAA,EACP;AACH,GAAGoa,KAAK,OAAO;AACf,IAAIA;AACF,MAAI;AACF,IAAAA,GAAG,CAAA,GAAI,EAAE;AAAA,EACb,QAAU;AACN,IAAAA,KAAK;AAAA,EACN;AACH,IAAIC,KAAK,WAAW;AAClB,QAAM,IAAIL,GAAE;AACd,GAAGM,KAAKF,KAAK,WAAW;AACtB,MAAI;AACF,WAAO,UAAU,QAAQC;AAAA,EAC7B,QAAU;AACN,QAAI;AACF,aAAOD,GAAG,WAAW,QAAQ,EAAE;AAAA,IACrC,QAAY;AACN,aAAOC;AAAA,IACR;AAAA,EACF;AACH,EAAC,IAAKA,IAAIE,KAAKhC,GAAE,GAAIiC,KAAK9B,MAAM+B,KAAK,OAAO,mBAAmBD,KAAK,SAASxa,GAAG;AAC9E,SAAOA,EAAE;AACX,IAAI,OAAO0a,KAAK,CAAA,GAAIC,KAAK,OAAO,aAAa,OAAO,CAACF,KAAKf,KAAKe,GAAG,UAAU,GAAGG,KAAK;AAAA,EAClF,WAAW;AAAA,EACX,oBAAoB,OAAO,iBAAiB,MAAMlB,KAAK;AAAA,EACvD,WAAW;AAAA,EACX,iBAAiB,OAAO,cAAc,MAAMA,KAAK;AAAA,EACjD,4BAA4Ba,MAAME,KAAKA,GAAG,CAAE,EAAC,OAAO,QAAQ,EAAG,CAAA,IAAIf;AAAA,EACnE,oCAAoCA;AAAA,EACpC,mBAAmBgB;AAAA,EACnB,oBAAoBA;AAAA,EACpB,4BAA4BA;AAAA,EAC5B,4BAA4BA;AAAA,EAC5B,aAAa,OAAO,UAAU,MAAMhB,KAAK;AAAA,EACzC,YAAY,OAAO,SAAS,MAAMA,KAAK;AAAA,EACvC,mBAAmB,OAAO,gBAAgB,MAAMA,KAAK;AAAA,EACrD,oBAAoB,OAAO,iBAAiB,MAAMA,KAAK;AAAA,EACvD,aAAa;AAAA,EACb,cAAc,OAAO,WAAW,MAAMA,KAAK;AAAA,EAC3C,UAAU;AAAA,EACV,eAAe;AAAA,EACf,wBAAwB;AAAA,EACxB,eAAe;AAAA,EACf,wBAAwB;AAAA,EACxB,WAAWC;AAAA,EACX,UAAU;AAAA;AAAA,EAEV,eAAeC;AAAA,EACf,kBAAkB,OAAO,eAAe,MAAMF,KAAK;AAAA,EACnD,kBAAkB,OAAO,eAAe,MAAMA,KAAK;AAAA,EACnD,0BAA0B,OAAO,uBAAuB,MAAMA,KAAK;AAAA,EACnE,cAAcQ;AAAA,EACd,uBAAuBQ;AAAA,EACvB,eAAe,OAAO,YAAY,MAAMhB,KAAK;AAAA,EAC7C,gBAAgB,OAAO,aAAa,MAAMA,KAAK;AAAA,EAC/C,gBAAgB,OAAO,aAAa,MAAMA,KAAK;AAAA,EAC/C,cAAc;AAAA,EACd,WAAW;AAAA,EACX,uBAAuBa,MAAME,KAAKA,GAAGA,GAAG,GAAG,OAAO,QAAQ,GAAG,CAAC,IAAIf;AAAA,EAClE,UAAU,OAAO,QAAQ,WAAW,OAAOA;AAAA,EAC3C,SAAS,OAAO,MAAM,MAAMA,KAAK;AAAA,EACjC,0BAA0B,OAAO,MAAM,OAAO,CAACa,MAAM,CAACE,KAAKf,KAAKe,IAAoB,oBAAI,IAAG,GAAI,OAAO,QAAQ,EAAC,CAAE;AAAA,EACjH,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,aAAa,OAAO,UAAU,MAAMf,KAAK;AAAA,EACzC,WAAW,OAAO,QAAQ,MAAMA,KAAK;AAAA,EACrC,gBAAgBG;AAAA,EAChB,oBAAoBC;AAAA,EACpB,aAAa,OAAO,UAAU,MAAMJ,KAAK;AAAA,EACzC,YAAY;AAAA,EACZ,SAAS,OAAO,MAAM,MAAMA,KAAK;AAAA,EACjC,0BAA0B,OAAO,MAAM,OAAO,CAACa,MAAM,CAACE,KAAKf,KAAKe,IAAoB,oBAAI,IAAG,GAAI,OAAO,QAAQ,EAAC,CAAE;AAAA,EACjH,uBAAuB,OAAO,oBAAoB,MAAMf,KAAK;AAAA,EAC7D,YAAY;AAAA,EACZ,6BAA6Ba,MAAME,KAAKA,GAAG,GAAG,OAAO,QAAQ,EAAG,CAAA,IAAIf;AAAA,EACpE,YAAYa,KAAK,SAASb;AAAA,EAC1B,iBAAiBK;AAAA,EACjB,oBAAoBO;AAAA,EACpB,gBAAgBK;AAAA,EAChB,eAAeX;AAAA,EACf,gBAAgB,OAAO,aAAa,MAAMN,KAAK;AAAA,EAC/C,uBAAuB,OAAO,oBAAoB,MAAMA,KAAK;AAAA,EAC7D,iBAAiB,OAAO,cAAc,MAAMA,KAAK;AAAA,EACjD,iBAAiB,OAAO,cAAc,MAAMA,KAAK;AAAA,EACjD,cAAcO;AAAA,EACd,aAAa,OAAO,UAAU,MAAMP,KAAK;AAAA,EACzC,aAAa,OAAO,UAAU,MAAMA,KAAK;AAAA,EACzC,aAAa,OAAO,UAAU,MAAMA,KAAK;AAC3C;AACA,IAAIe;AACF,MAAI;AACF,SAAK;AAAA,EACN,SAAQza,GAAG;AACV,QAAI6a,KAAKJ,GAAGA,GAAGza,CAAC,CAAC;AACjB,IAAA4a,GAAG,mBAAmB,IAAIC;AAAA,EAC3B;AACH,IAAIC,KAAK,SAAS9a,EAAE,GAAG;AACrB,MAAI;AACJ,MAAI,MAAM;AACR,QAAIma,GAAG,sBAAsB;AAAA,WACtB,MAAM;AACb,QAAIA,GAAG,iBAAiB;AAAA,WACjB,MAAM;AACb,QAAIA,GAAG,uBAAuB;AAAA,WACvB,MAAM,oBAAoB;AACjC,QAAI/Z,IAAIJ,EAAE,0BAA0B;AACpC,IAAAI,MAAM,IAAIA,EAAE;AAAA,EAChB,WAAa,MAAM,4BAA4B;AAC3C,QAAIM,IAAIV,EAAE,kBAAkB;AAC5B,IAAAU,KAAK+Z,OAAO,IAAIA,GAAG/Z,EAAE,SAAS;AAAA,EAC/B;AACD,SAAOka,GAAG,CAAC,IAAI,GAAG;AACpB,GAAGG,KAAK;AAAA,EACN,WAAW;AAAA,EACX,0BAA0B,CAAC,eAAe,WAAW;AAAA,EACrD,oBAAoB,CAAC,SAAS,WAAW;AAAA,EACzC,wBAAwB,CAAC,SAAS,aAAa,SAAS;AAAA,EACxD,wBAAwB,CAAC,SAAS,aAAa,SAAS;AAAA,EACxD,qBAAqB,CAAC,SAAS,aAAa,MAAM;AAAA,EAClD,uBAAuB,CAAC,SAAS,aAAa,QAAQ;AAAA,EACtD,4BAA4B,CAAC,iBAAiB,WAAW;AAAA,EACzD,oBAAoB,CAAC,0BAA0B,WAAW;AAAA,EAC1D,6BAA6B,CAAC,0BAA0B,aAAa,WAAW;AAAA,EAChF,sBAAsB,CAAC,WAAW,WAAW;AAAA,EAC7C,uBAAuB,CAAC,YAAY,WAAW;AAAA,EAC/C,mBAAmB,CAAC,QAAQ,WAAW;AAAA,EACvC,oBAAoB,CAAC,SAAS,WAAW;AAAA,EACzC,wBAAwB,CAAC,aAAa,WAAW;AAAA,EACjD,2BAA2B,CAAC,gBAAgB,WAAW;AAAA,EACvD,2BAA2B,CAAC,gBAAgB,WAAW;AAAA,EACvD,uBAAuB,CAAC,YAAY,WAAW;AAAA,EAC/C,eAAe,CAAC,qBAAqB,WAAW;AAAA,EAChD,wBAAwB,CAAC,qBAAqB,aAAa,WAAW;AAAA,EACtE,wBAAwB,CAAC,aAAa,WAAW;AAAA,EACjD,yBAAyB,CAAC,cAAc,WAAW;AAAA,EACnD,yBAAyB,CAAC,cAAc,WAAW;AAAA,EACnD,eAAe,CAAC,QAAQ,OAAO;AAAA,EAC/B,mBAAmB,CAAC,QAAQ,WAAW;AAAA,EACvC,kBAAkB,CAAC,OAAO,WAAW;AAAA,EACrC,qBAAqB,CAAC,UAAU,WAAW;AAAA,EAC3C,qBAAqB,CAAC,UAAU,WAAW;AAAA,EAC3C,uBAAuB,CAAC,UAAU,aAAa,UAAU;AAAA,EACzD,sBAAsB,CAAC,UAAU,aAAa,SAAS;AAAA,EACvD,sBAAsB,CAAC,WAAW,WAAW;AAAA,EAC7C,uBAAuB,CAAC,WAAW,aAAa,MAAM;AAAA,EACtD,iBAAiB,CAAC,WAAW,KAAK;AAAA,EAClC,oBAAoB,CAAC,WAAW,QAAQ;AAAA,EACxC,qBAAqB,CAAC,WAAW,SAAS;AAAA,EAC1C,yBAAyB,CAAC,cAAc,WAAW;AAAA,EACnD,6BAA6B,CAAC,kBAAkB,WAAW;AAAA,EAC3D,qBAAqB,CAAC,UAAU,WAAW;AAAA,EAC3C,kBAAkB,CAAC,OAAO,WAAW;AAAA,EACrC,gCAAgC,CAAC,qBAAqB,WAAW;AAAA,EACjE,qBAAqB,CAAC,UAAU,WAAW;AAAA,EAC3C,qBAAqB,CAAC,UAAU,WAAW;AAAA,EAC3C,0BAA0B,CAAC,eAAe,WAAW;AAAA,EACrD,yBAAyB,CAAC,cAAc,WAAW;AAAA,EACnD,wBAAwB,CAAC,aAAa,WAAW;AAAA,EACjD,yBAAyB,CAAC,cAAc,WAAW;AAAA,EACnD,gCAAgC,CAAC,qBAAqB,WAAW;AAAA,EACjE,0BAA0B,CAAC,eAAe,WAAW;AAAA,EACrD,0BAA0B,CAAC,eAAe,WAAW;AAAA,EACrD,uBAAuB,CAAC,YAAY,WAAW;AAAA,EAC/C,sBAAsB,CAAC,WAAW,WAAW;AAAA,EAC7C,sBAAsB,CAAC,WAAW,WAAW;AAC/C,GAAGC,KAAK3B,IAAI4B,KAAKxB,IAAIyB,KAAKF,GAAG,KAAK,SAAS,MAAM,MAAM,UAAU,MAAM,GAAGG,KAAKH,GAAG,KAAK,SAAS,OAAO,MAAM,UAAU,MAAM,GAAGI,KAAKJ,GAAG,KAAK,SAAS,MAAM,OAAO,UAAU,OAAO,GAAGK,KAAKL,GAAG,KAAK,SAAS,MAAM,OAAO,UAAU,KAAK,GAAGM,KAAKN,GAAG,KAAK,SAAS,MAAM,OAAO,UAAU,IAAI,GAAGO,KAAK,sGAAsGC,KAAK,YAAYC,KAAK,SAASxD,GAAG;AAC3a,MAAIC,IAAImD,GAAGpD,GAAG,GAAG,CAAC,GAAG7X,IAAIib,GAAGpD,GAAG,EAAE;AACjC,MAAIC,MAAM,OAAO9X,MAAM;AACrB,UAAM,IAAI2Z,GAAG,gDAAgD;AAC/D,MAAI3Z,MAAM,OAAO8X,MAAM;AACrB,UAAM,IAAI6B,GAAG,gDAAgD;AAC/D,MAAI,IAAI,CAAA;AACR,SAAOqB,GAAGnD,GAAGsD,IAAI,SAASpD,GAAGC,GAAGe,GAAGpY,GAAG;AACpC,MAAE,EAAE,MAAM,IAAIoY,IAAIiC,GAAGra,GAAGya,IAAI,IAAI,IAAIpD,KAAKD;AAAA,EAC1C,CAAA,GAAG;AACN,GAAGuD,KAAK,SAASzD,GAAGC,GAAG;AACrB,MAAI9X,IAAI6X,GAAG;AACX,MAAIgD,GAAGF,IAAI3a,CAAC,MAAM,IAAI2a,GAAG3a,CAAC,GAAGA,IAAI,MAAM,EAAE,CAAC,IAAI,MAAM6a,GAAGL,IAAIxa,CAAC,GAAG;AAC7D,QAAI+X,IAAIyC,GAAGxa,CAAC;AACZ,QAAI+X,MAAMuC,OAAOvC,IAAI2C,GAAG1a,CAAC,IAAI,OAAO+X,IAAI,OAAO,CAACD;AAC9C,YAAM,IAAI8B,GAAG,eAAe/B,IAAI,sDAAsD;AACxF,WAAO;AAAA,MACL,OAAO;AAAA,MACP,MAAM7X;AAAA,MACN,OAAO+X;AAAA,IACb;AAAA,EACG;AACD,QAAM,IAAI4B,GAAG,eAAe9B,IAAI,kBAAkB;AACpD,GAAG0D,KAAK,SAAS1D,GAAGC,GAAG;AACrB,MAAI,OAAOD,KAAK,YAAYA,EAAE,WAAW;AACvC,UAAM,IAAI+B,GAAG,2CAA2C;AAC1D,MAAI,UAAU,SAAS,KAAK,OAAO9B,KAAK;AACtC,UAAM,IAAI8B,GAAG,2CAA2C;AAC1D,MAAIsB,GAAG,eAAerD,CAAC,MAAM;AAC3B,UAAM,IAAI8B,GAAG,oFAAoF;AACnG,MAAI3Z,IAAIqb,GAAGxD,CAAC,GAAG,IAAI7X,EAAE,SAAS,IAAIA,EAAE,CAAC,IAAI,IAAI+X,IAAIuD,GAAG,MAAM,IAAI,KAAKxD,CAAC,GAAGE,IAAID,EAAE,MAAMgB,IAAIhB,EAAE,OAAOpX,IAAI,IAAI,IAAIoX,EAAE;AAC9G,QAAM,IAAI,EAAE,CAAC,GAAGgD,GAAG/a,GAAG8a,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,WAASzG,IAAI,GAAGC,IAAI,IAAID,IAAIrU,EAAE,QAAQqU,KAAK,GAAG;AAC5C,QAAIE,IAAIvU,EAAEqU,CAAC,GAAGxT,IAAIoa,GAAG1G,GAAG,GAAG,CAAC,GAAG,IAAI0G,GAAG1G,GAAG,EAAE;AAC3C,SAAK1T,MAAM,OAAOA,MAAM,OAAOA,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,QAAQA,MAAM;AACxF,YAAM,IAAI8Y,GAAG,sDAAsD;AACrE,SAAKpF,MAAM,iBAAiB,CAACD,OAAO3T,IAAI,KAAK,KAAK,MAAM4T,GAAGyD,IAAI,MAAM,IAAI,KAAK6C,GAAGL,IAAIxC,CAAC;AACpF,MAAAe,IAAIyB,GAAGxC,CAAC;AAAA,aACDe,KAAK,MAAM;AAClB,UAAI,EAAExE,KAAKwE,IAAI;AACb,YAAI,CAACjB;AACH,gBAAM,IAAI8B,GAAG,wBAAwB/B,IAAI,6CAA6C;AACxF;AAAA,MACD;AACD,UAAImC,MAAM3F,IAAI,KAAKrU,EAAE,QAAQ;AAC3B,YAAIwU,IAAIwF,GAAGjB,GAAGxE,CAAC;AACf,QAAAD,IAAI,CAAC,CAACE,GAAGF,KAAK,SAASE,KAAK,EAAE,mBAAmBA,EAAE,OAAOuE,IAAIvE,EAAE,MAAMuE,IAAIA,EAAExE,CAAC;AAAA,MAC9E;AACC,QAAAD,IAAIuG,GAAG9B,GAAGxE,CAAC,GAAGwE,IAAIA,EAAExE,CAAC;AACvB,MAAAD,KAAK,CAAC3T,MAAM6Z,GAAGxC,CAAC,IAAIe;AAAA,IACrB;AAAA,EACF;AACD,SAAOA;AACT,GAAGyC,KAAK,EAAE,SAAS,CAAE,EAAA,GAAIC,IAAIC;AAC7B,SAASC,KAAK;AACZ,MAAID;AACF,WAAOD;AACT,EAAAC,KAAK;AACL,MAAI9b,IAAI2b,IAAI,IAAI3b,EAAE,2BAA2B,EAAE,KAAK;AACpD,MAAI;AACF,QAAI;AACF,QAAE,CAAE,GAAE,KAAK,EAAE,OAAO,EAAG,CAAA;AAAA,IAC7B,QAAY;AACN,UAAI;AAAA,IACL;AACH,SAAO6b,KAAK,GAAGA;AACjB;AACA,IAAIG,KAAKL,IAAIM,KAAKD,GAAG,qCAAqC,EAAE;AAC5D,IAAIC;AACF,MAAI;AACF,IAAAA,GAAG,CAAA,GAAI,QAAQ;AAAA,EACnB,QAAU;AACN,IAAAA,KAAK;AAAA,EACN;AACH,IAAIC,KAAKD,IAAIE,KAAKJ,GAAE,GAAIK,KAAKvE,IAAIwE,KAAKvE,IAAIwE,KAAKJ,IAAIK,KAAK,SAAStE,GAAGC,GAAG9X,GAAG;AACxE,MAAI,CAAC6X,KAAK,OAAOA,KAAK,YAAY,OAAOA,KAAK;AAC5C,UAAM,IAAIoE,GAAG,wCAAwC;AACvD,MAAI,OAAOnE,KAAK,YAAY,OAAOA,KAAK;AACtC,UAAM,IAAImE,GAAG,0CAA0C;AACzD,MAAI,UAAU,SAAS,KAAK,OAAO,UAAU,CAAC,KAAK,aAAa,UAAU,CAAC,MAAM;AAC/E,UAAM,IAAIA,GAAG,yDAAyD;AACxE,MAAI,UAAU,SAAS,KAAK,OAAO,UAAU,CAAC,KAAK,aAAa,UAAU,CAAC,MAAM;AAC/E,UAAM,IAAIA,GAAG,uDAAuD;AACtE,MAAI,UAAU,SAAS,KAAK,OAAO,UAAU,CAAC,KAAK,aAAa,UAAU,CAAC,MAAM;AAC/E,UAAM,IAAIA,GAAG,2DAA2D;AAC1E,MAAI,UAAU,SAAS,KAAK,OAAO,UAAU,CAAC,KAAK;AACjD,UAAM,IAAIA,GAAG,yCAAyC;AACxD,MAAI,IAAI,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI,MAAMlE,IAAI,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI,MAAMC,IAAI,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI,MAAMe,IAAI,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI,IAAIpY,IAAI,CAAC,CAACub,MAAMA,GAAGrE,GAAGC,CAAC;AACrN,MAAIiE;AACF,IAAAA,GAAGlE,GAAGC,GAAG;AAAA,MACP,cAAcE,MAAM,QAAQrX,IAAIA,EAAE,eAAe,CAACqX;AAAA,MAClD,YAAY,MAAM,QAAQrX,IAAIA,EAAE,aAAa,CAAC;AAAA,MAC9C,OAAOX;AAAA,MACP,UAAU+X,MAAM,QAAQpX,IAAIA,EAAE,WAAW,CAACoX;AAAA,IAChD,CAAK;AAAA,WACMgB,KAAK,CAAC,KAAK,CAAChB,KAAK,CAACC;AACzB,IAAAH,EAAEC,CAAC,IAAI9X;AAAA;AAEP,UAAM,IAAIgc,GAAG,6GAA6G;AAC9H,GAAGI,KAAKT,MAAMU,KAAK,WAAW;AAC5B,SAAO,CAAC,CAACD;AACX;AACAC,GAAG,0BAA0B,WAAW;AACtC,MAAI,CAACD;AACH,WAAO;AACT,MAAI;AACF,WAAOA,GAAG,CAAE,GAAE,UAAU,EAAE,OAAO,EAAG,CAAA,EAAE,WAAW;AAAA,EACrD,QAAU;AACN,WAAO;AAAA,EACR;AACH;AACA,IAAIE,KAAKD,IAAIE,KAAKhB,IAAIiB,KAAKL,IAAIM,KAAKH,GAAE,GAAII,KAAKZ,IAAIa,KAAKjF,IAAIkF,KAAKL,GAAG,cAAc,GAAGM,KAAK,SAAShF,GAAGC,GAAG;AACvG,MAAI,OAAOD,KAAK;AACd,UAAM,IAAI8E,GAAG,wBAAwB;AACvC,MAAI,OAAO7E,KAAK,YAAYA,IAAI,KAAKA,IAAI,cAAc8E,GAAG9E,CAAC,MAAMA;AAC/D,UAAM,IAAI6E,GAAG,4CAA4C;AAC3D,MAAI3c,IAAI,UAAU,SAAS,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI+X,IAAI;AAC5D,MAAI,YAAYF,KAAK6E,IAAI;AACvB,QAAI1E,IAAI0E,GAAG7E,GAAG,QAAQ;AACtB,IAAAG,KAAK,CAACA,EAAE,iBAAiB,IAAI,KAAKA,KAAK,CAACA,EAAE,aAAaD,IAAI;AAAA,EAC5D;AACD,UAAQ,KAAKA,KAAK,CAAC/X,OAAOyc,KAAKD;AAAA;AAAA,IAE7B3E;AAAA,IACA;AAAA,IACAC;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM0E;AAAA;AAAA,IAEF3E;AAAA,IACA;AAAA,IACAC;AAAA,EACD,IAAGD;AACN;AAAA,CACC,SAASjY,GAAG;AACX,MAAI,IAAIqZ,IAAI,IAAIsC,IAAIvb,IAAI6c,IAAIvc,IAAIoX,IAAI,IAAI,EAAE,4BAA4B,GAAG,IAAI,EAAE,2BAA2B,GAAG,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG/W,IAAIgb,GAAE,GAAI/a,IAAI,EAAE,YAAY;AACvL,EAAAhB,EAAE,UAAU,SAAS2U,GAAG;AACtB,QAAI,OAAOA,KAAK;AACd,YAAM,IAAIjU,EAAE,wBAAwB;AACtC,QAAIO,IAAI,EAAE,GAAG,GAAG,SAAS;AACzB,WAAOb;AAAA,MACLa;AAAA,MACA,IAAID,EAAE,GAAG2T,EAAE,UAAU,UAAU,SAAS,EAAE;AAAA,MAC1C;AAAA,IACN;AAAA,EACA;AACE,MAAI,IAAI,WAAW;AACjB,WAAO,EAAE,GAAG,GAAG,SAAS;AAAA,EAC5B;AACE,EAAA5T,IAAIA,EAAEf,EAAE,SAAS,SAAS,EAAE,OAAO,EAAC,CAAE,IAAIA,EAAE,QAAQ,QAAQ;AAC9D,GAAG4b,EAAE;AACL,IAAIsB,KAAKtB,GAAG,SAASuB,KAAKxB,IAAIyB,KAAKF,IAAIG,KAAKD,GAAGD,GAAG,0BAA0B,CAAC,GAAGG,KAAK,SAASrF,GAAGC,GAAG;AAClG,MAAI9X,IAAI+c,GAAGlF,GAAG,CAAC,CAACC,CAAC;AACjB,SAAO,OAAO9X,KAAK,cAAcid,GAAGpF,GAAG,aAAa,IAAI,KAAKmF,GAAGhd,CAAC,IAAIA;AACvE;AACA,MAAMmd,KAAK,CAAE,GAAEC,KAAqB,uBAAO,OAAuB,uBAAO,eAAe;AAAA,EACtF,WAAW;AAAA,EACX,SAASD;AACX,GAAG,OAAO,aAAa,EAAE,OAAO,UAAU,CAAC,GAAGE,KAAqB,gBAAAlJ,GAAGiJ,EAAE;AACrE,IAACE,KAAK,OAAO,OAAO,cAAc,IAAI,WAAWC,KAAK,OAAO,4BAA4BD,KAAK,OAAO,yBAAyB,IAAI,WAAW,MAAM,IAAI;AAAWA,MAAMC,MAAM,OAAOA,GAAG,OAAO,cAAaA,GAAG;IAA8CC,KAAK,OAAO,OAAO,cAAc,IAAI,WAAWC,KAAK,OAAO,4BAA4BD,KAAK,OAAO,yBAAyB,IAAI,WAAW,MAAM,IAAI;AAAWA,MAAMC,MAAM,OAAOA,GAAG,OAAO,cAAaA,GAAG;AAAW,IAAmOC,KAAK,OAAO,WAAW,cAAc,QAAQ;AAAgBA,MAAK,QAAQ,UAAU;AAAuf,IAAAC,KAAK,OAAO,UAAU,cAAc,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU,WAAW,MAAMC,KAAK,OAAO,UAAU,cAAc,OAAO,OAAO,YAAY,UAgB56CC,KAAKR,IAAIS,KAAKD,GAAG;AAAaE,GAAGD,EAAE;AA8IvC,SAASC,GAAGne,GAAG;AACb,MAAIge;AACF,WAAOhe,KAAK,OAAOA,KAAK,YAAYA,aAAa;AACnD,MAAI,OAAOA,KAAK;AACd,WAAO;AACT,MAAI,CAACA,KAAK,OAAOA,KAAK,YAAY,CAAC+d;AACjC,WAAO;AACT,MAAI;AACF,WAAOA,GAAG,KAAK/d,CAAC,GAAG;AAAA,EACvB,QAAU;AAAA,EACP;AACD,SAAO;AACT;AAqLG,IAACoe,KAAKzC,IAAI0C,KAAKf;AAA2Bc,GAAG,aAAa,EAAE;AAAQA,GAAG,SAAS,EAAE;AAAQC,GAAG,yBAAyB,EAAE;AAAQA,GAAG,yBAAyB,EAAE;AAAQA,GAAG,yBAAyB,EAAE;AAAQA,GAAG,qBAAqB,EAAE;AAAQA,GAAG,qBAAqB,EAAE;AAAQA,GAAG,qBAAqB,EAAE;AAAA,CAkElO,WAAW;AACpF,WAASre,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE;AACjC,IAAAA,EAAE,KAAK,QAAQ,IAAI,KAAK,MAAM,MAAM,EAAE,SAAS,EAAE,GAAG,YAAa,CAAA;AACnE,SAAOA;AACT;AAinBA,MAAMse,KAAK,CAAA;AACX,SAASC,GAAGve,GAAG,GAAG,IAAI,GAAG;AACvB,MAAIse,GAAG,CAAC;AACN;AACF,MAAIle,IAAI,IAAI,MAAO,EAAC;AACpB,SAAOA,IAAI,MAAM,QAAQ,KAAK,gCAAgC,GAAG,CAAC;AAAA,oBAChDJ,CAAC,EAAE,KAAKI,IAAIA,EAAE,MAAM;AAAA,CACvC,EAAE,OAAO,CAAC,EAAE,KAAK;AAAA,CACjB,GAAG,QAAQ,kBAAkB,QAAQ;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG,CAAC;AAAA,oBACYJ,CAAC;AAAA,EAClB,GAAE,QAAQ,KAAKI,CAAC,GAAG,QAAQ,eAAe,QAAQ,KAAK,gCAAgC,GAAG,CAAC;AAAA,oBAC1EJ,CAAC,EAAE,GAAG,QAAQ,KAAKI,CAAC,KAAKke,GAAG,CAAC,IAAI;AACrD;AACA,SAASE,GAAGxe,GAAG;AACb,MAAI,OAAOA,KAAK;AACd,UAAM,IAAI,UAAU,mCAAmC,KAAK,UAAUA,CAAC,CAAC,EAAE;AAC9E;AACA,SAASye,GAAGze,GAAG;AACb,SAAOA,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACrC;AACA,SAAS0e,GAAG1e,GAAG;AACb,SAAOA,EAAE,QAAQ,uBAAuB,MAAM;AAChD;AACA,SAAS2e,GAAG3e,GAAG,GAAG,GAAG;AACnB,SAAOA,EAAE,QAAQ,IAAI,OAAO0e,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AAC5C;AACA,SAASE,GAAG5e,GAAG,GAAG;AAChB,MAAI,IAAI,IAAII,IAAI,GAAGM,IAAI,IAAI,IAAI,GAAG,IAAI;AACtC,WAAS,IAAI,GAAG,KAAKV,EAAE,QAAQ,EAAE,GAAG;AAClC,QAAI,IAAIA,EAAE;AACR,UAAIA,EAAE,WAAW,CAAC;AAAA,SACf;AACH,UAAI,MAAM;AACR;AACF,UAAI;AAAA,IACL;AACD,QAAI,MAAM,IAAI;AACZ,UAAI,EAAEU,MAAM,IAAI,KAAK,MAAM;AACzB,YAAIA,MAAM,IAAI,KAAK,MAAM,GAAG;AAC1B,cAAI,EAAE,SAAS,KAAKN,MAAM,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM;AACjG,gBAAI,EAAE,SAAS,GAAG;AAChB,oBAAMW,IAAI,EAAE,YAAY,GAAG;AAC3B,kBAAIA,MAAM,EAAE,SAAS,GAAG;AACtB,gBAAAA,MAAM,MAAM,IAAI,IAAIX,IAAI,MAAM,IAAI,EAAE,MAAM,GAAGW,CAAC,GAAGX,IAAI,EAAE,SAAS,IAAI,EAAE,YAAY,GAAG,IAAIM,IAAI,GAAG,IAAI;AACpG;AAAA,cACD;AAAA,YACf,WAAuB,EAAE,WAAW,KAAK,EAAE,WAAW,GAAG;AAC3C,kBAAI,IAAIN,IAAI,GAAGM,IAAI,GAAG,IAAI;AAC1B;AAAA,YACD;AAAA;AAEH,gBAAM,EAAE,SAAS,IAAI,KAAK,QAAQ,IAAI,MAAMN,IAAI;AAAA,QACjD;AACC,YAAE,SAAS,IAAI,KAAK,IAAIJ,EAAE,MAAMU,IAAI,GAAG,CAAC,CAAC,KAAK,IAAIV,EAAE,MAAMU,IAAI,GAAG,CAAC,GAAGN,IAAI,IAAIM,IAAI;AACrF,MAAAA,IAAI,GAAG,IAAI;AAAA,IACZ;AACC,YAAM,MAAM,MAAM,KAAK,EAAE,IAAI,IAAI;AAAA,EACpC;AACD,SAAO;AACT;AACA,MAAMme,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,EAKT,QAAQ7e,GAAG;AACT,WAAO2e,GAAG3e,GAAG,MAAM,GAAG;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,MAAMA,GAAG;AACP,WAAO,WAAW,KAAK,KAAK,QAAQA,CAAC,CAAC;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,UAAUA,GAAG;AACX,WAAO,yIAAyI,KAAKA,CAAC;AAAA,EACvJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,UAAUA,GAAG;AACX,WAAOA,EAAE,WAAW,OAAO;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,YAAYA,GAAG;AACb,WAAO,WAAW,KAAK,KAAK,QAAQA,CAAC,CAAC;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,YAAYA,GAAG;AACb,IAAAwe,GAAGxe,CAAC,GAAGA,IAAI,KAAK,QAAQA,CAAC;AACzB,UAAM,IAAI,eAAe,KAAKA,CAAC;AAC/B,QAAI;AACF,aAAO,EAAE,CAAC;AACZ,UAAM,IAAI,kBAAkB,KAAKA,CAAC;AAClC,WAAO,IAAI,EAAE,CAAC,IAAI;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,WAAWA,GAAG,GAAG,GAAG;AAClB,QAAIwe,GAAGxe,CAAC,GAAG,KAAK,UAAUA,CAAC,KAAK,KAAK,UAAUA,CAAC;AAC9C,aAAOA;AACT,UAAMI,IAAIqe,GAAG,KAAK,QAAQ,KAAKzL,EAAE,QAAQ,YAAY,CAAC,GAAGtS,IAAI+d,GAAG,KAAK,QAAQ,KAAK,KAAK,SAASre,CAAC,CAAC,CAAC;AACnG,WAAOJ,IAAI,KAAK,QAAQA,CAAC,GAAGA,EAAE,WAAW,GAAG,IAAI6e,GAAG,KAAKne,GAAGV,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,WAAWA,CAAC,IAAIA,IAAI,KAAK,KAAKI,GAAGJ,CAAC;AAAA,EACjH;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,UAAUA,GAAG;AACX,QAAIwe,GAAGxe,CAAC,GAAGA,EAAE,WAAW;AACtB,aAAO;AACT,QAAI,KAAK,UAAUA,CAAC,KAAK,KAAK,UAAUA,CAAC;AACvC,aAAOA;AACT,IAAAA,IAAI,KAAK,QAAQA,CAAC;AAClB,QAAI,IAAI;AACR,UAAM,IAAIA,EAAE,WAAW,GAAG;AAC1B,SAAK,YAAYA,CAAC,MAAM,IAAI,KAAK,SAASA,CAAC,GAAGA,IAAIA,EAAE,MAAM,EAAE,MAAM;AAClE,UAAMI,IAAIJ,EAAE,SAAS,GAAG;AACxB,WAAOA,IAAI4e,GAAG5e,GAAG,EAAE,GAAGA,EAAE,SAAS,KAAKI,MAAMJ,KAAK,MAAM,IAAI,IAAIA,CAAC,KAAK,IAAIA;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,WAAWA,GAAG;AACZ,WAAOwe,GAAGxe,CAAC,GAAGA,IAAI,KAAK,QAAQA,CAAC,GAAG,KAAK,YAAYA,CAAC,IAAI,KAAKA,EAAE,WAAW,GAAG;AAAA,EAC/E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQA,GAAG;AACT,QAAIA,EAAE,WAAW;AACf,aAAO;AACT,QAAI;AACJ,aAAS,IAAI,GAAG,IAAIA,EAAE,QAAQ,EAAE,GAAG;AACjC,YAAMI,IAAIJ,EAAE,CAAC;AACb,UAAIwe,GAAGpe,CAAC,GAAGA,EAAE,SAAS;AACpB,YAAI,MAAM;AACR,cAAIA;AAAA,aACD;AACH,gBAAMM,IAAIV,EAAE,IAAI,CAAC,KAAK;AACtB,eAAK,eAAe,SAAS,KAAK,QAAQU,CAAC,EAAE,aAAa,IAAI,KAAK,OAAON,CAAC,KAAK,KAAK,IAAIA,CAAC;AAAA,QAC3F;AAAA,IACJ;AACD,WAAO,MAAM,SAAS,MAAM,KAAK,UAAU,CAAC;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQJ,GAAG;AACT,QAAIwe,GAAGxe,CAAC,GAAGA,EAAE,WAAW;AACtB,aAAO;AACT,IAAAA,IAAI,KAAK,QAAQA,CAAC;AAClB,QAAI,IAAIA,EAAE,WAAW,CAAC;AACtB,UAAM,IAAI,MAAM;AAChB,QAAII,IAAI,IAAIM,IAAI;AAChB,UAAM,IAAI,KAAK,YAAYV,CAAC,GAAG,IAAIA;AACnC,IAAAA,IAAIA,EAAE,MAAM,EAAE,MAAM;AACpB,aAAS,IAAIA,EAAE,SAAS,GAAG,KAAK,GAAG,EAAE;AACnC,UAAI,IAAIA,EAAE,WAAW,CAAC,GAAG,MAAM;AAC7B,YAAI,CAACU,GAAG;AACN,UAAAN,IAAI;AACJ;AAAA,QACD;AAAA;AAED,QAAAM,IAAI;AACR,WAAON,MAAM,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,IAAIJ,IAAI,IAAI,KAAKI,MAAM,IAAI,OAAO,IAAIJ,EAAE,MAAM,GAAGI,CAAC;AAAA,EAC/F;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAASJ,GAAG;AACV,IAAAwe,GAAGxe,CAAC,GAAGA,IAAI,KAAK,QAAQA,CAAC;AACzB,QAAI,IAAI;AACR,QAAIA,EAAE,WAAW,GAAG,IAAI,IAAI,MAAM,IAAI,KAAK,YAAYA,CAAC,GAAG,KAAK,MAAMA,CAAC,GAAG;AACxE,YAAM,IAAIA,EAAE,QAAQ,KAAK,EAAE,MAAM;AACjC,YAAM,KAAK,IAAIA,EAAE,MAAM,GAAG,CAAC,IAAI,IAAIA,GAAG,EAAE,SAAS,GAAG,MAAM,KAAK;AAAA,IAChE;AACD,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAASA,GAAG,GAAG;AACb,IAAAwe,GAAGxe,CAAC,GAAG,KAAKwe,GAAG,CAAC,GAAGxe,IAAIye,GAAG,KAAK,QAAQze,CAAC,CAAC;AACzC,QAAI,IAAI,GAAGI,IAAI,IAAIM,IAAI,IAAI;AAC3B,QAAI,MAAM,UAAU,EAAE,SAAS,KAAK,EAAE,UAAUV,EAAE,QAAQ;AACxD,UAAI,EAAE,WAAWA,EAAE,UAAU,MAAMA;AACjC,eAAO;AACT,UAAI,IAAI,EAAE,SAAS,GAAG,IAAI;AAC1B,WAAK,IAAIA,EAAE,SAAS,GAAG,KAAK,GAAG,EAAE,GAAG;AAClC,cAAMe,IAAIf,EAAE,WAAW,CAAC;AACxB,YAAIe,MAAM;AACR,cAAI,CAACL,GAAG;AACN,gBAAI,IAAI;AACR;AAAA,UACD;AAAA;AAED,gBAAM,OAAOA,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,MAAMK,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,OAAOX,IAAI,MAAM,IAAI,IAAIA,IAAI;AAAA,MAC5G;AACD,aAAO,MAAMA,IAAIA,IAAI,IAAIA,MAAM,OAAOA,IAAIJ,EAAE,SAASA,EAAE,MAAM,GAAGI,CAAC;AAAA,IAClE;AACD,SAAK,IAAIJ,EAAE,SAAS,GAAG,KAAK,GAAG,EAAE;AAC/B,UAAIA,EAAE,WAAW,CAAC,MAAM;AACtB,YAAI,CAACU,GAAG;AACN,cAAI,IAAI;AACR;AAAA,QACD;AAAA;AAED,QAAAN,MAAM,OAAOM,IAAI,IAAIN,IAAI,IAAI;AACjC,WAAOA,MAAM,KAAK,KAAKJ,EAAE,MAAM,GAAGI,CAAC;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQJ,GAAG;AACT,IAAAwe,GAAGxe,CAAC,GAAGA,IAAIye,GAAG,KAAK,QAAQze,CAAC,CAAC;AAC7B,QAAI,IAAI,IAAI,IAAI,GAAGI,IAAI,IAAIM,IAAI,IAAI,IAAI;AACvC,aAAS,IAAIV,EAAE,SAAS,GAAG,KAAK,GAAG,EAAE,GAAG;AACtC,YAAM,IAAIA,EAAE,WAAW,CAAC;AACxB,UAAI,MAAM,IAAI;AACZ,YAAI,CAACU,GAAG;AACN,cAAI,IAAI;AACR;AAAA,QACD;AACD;AAAA,MACD;AACD,MAAAN,MAAM,OAAOM,IAAI,IAAIN,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,MAAM,MAAM,IAAI,KAAK,MAAM,OAAO,IAAI;AAAA,IACtG;AACD,WAAO,MAAM,MAAMA,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,MAAMA,IAAI,KAAK,MAAM,IAAI,IAAI,KAAKJ,EAAE,MAAM,GAAGI,CAAC;AAAA,EACpG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,MAAMJ,GAAG;AACP,IAAAwe,GAAGxe,CAAC;AACJ,UAAM,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,GAAE;AAC1D,QAAIA,EAAE,WAAW;AACf,aAAO;AACT,IAAAA,IAAIye,GAAG,KAAK,QAAQze,CAAC,CAAC;AACtB,QAAI,IAAIA,EAAE,WAAW,CAAC;AACtB,UAAMI,IAAI,KAAK,WAAWJ,CAAC;AAC3B,QAAIU;AACJ,MAAE,OAAO,KAAK,SAASV,CAAC,GAAGI,KAAK,KAAK,YAAYJ,CAAC,IAAIU,IAAI,IAAIA,IAAI;AAClE,QAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAIK,IAAI,IAAIC,IAAIhB,EAAE,SAAS,GAAG,IAAI;AACzD,WAAOgB,KAAKN,GAAG,EAAEM,GAAG;AAClB,UAAI,IAAIhB,EAAE,WAAWgB,CAAC,GAAG,MAAM,IAAI;AACjC,YAAI,CAACD,GAAG;AACN,cAAIC,IAAI;AACR;AAAA,QACD;AACD;AAAA,MACD;AACD,YAAM,OAAOD,IAAI,IAAI,IAAIC,IAAI,IAAI,MAAM,KAAK,MAAM,KAAK,IAAIA,IAAI,MAAM,MAAM,IAAI,KAAK,MAAM,OAAO,IAAI;AAAA,IACtG;AACD,WAAO,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,IAAI,MAAM,OAAO,MAAM,KAAKZ,IAAI,EAAE,OAAO,EAAE,OAAOJ,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,OAAOA,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,KAAKI,KAAK,EAAE,OAAOJ,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,OAAOA,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,OAAOA,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,OAAOA,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAMA,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQA,CAAC,GAAG;AAAA,EAC1V;AAAA,EACD,KAAK;AAAA,EACL,WAAW;AAAA,EACX,gBAAgB,CAAC,OAAO;AAC1B;AACA,IAAI8e;AACJ,eAAeC,KAAK;AAClB,SAAOD,OAAOA,MAAM,YAAY;AAC9B,QAAI3G;AACJ,UAAMnY,IAAI,SAAS,cAAc,QAAQ,EAAE,WAAW,OAAO;AAC7D,QAAI,CAACA;AACH,aAAOwS,GAAG;AACZ,UAAMyF,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM;AACjC,YAAM,IAAI,SAAS,cAAc,OAAO;AACxC,QAAE,eAAe,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,MAAM,EAAE,IAAI,GAAG,EAAE,WAAW,IAAI,EAAE,cAAc,aAAa,EAAE,UAAU,QAAQ,EAAE,MAAM,2sBAA2sB,EAAE,KAAI;AAAA,IACz1B,CAAK;AACD,QAAI,CAACA;AACH,aAAOzF,GAAG;AACZ,UAAM0F,IAAIlY,EAAE;AACZ,IAAAA,EAAE,YAAYA,EAAE,YAAYkY,CAAC;AAC7B,UAAM9X,IAAIJ,EAAE;AACZ,IAAAA,EAAE,gBAAgBA,EAAE,aAAaI,CAAC,GAAGJ,EAAE;AAAA,MACrCA,EAAE;AAAA,MACFA,EAAE;AAAA,MACFA,EAAE;AAAA,MACFkY;AAAA,MACA;AAAA,IACD,GAAElY,EAAE,YAAYA,EAAE,gCAAgC,EAAE,GAAGA,EAAE,YAAYA,EAAE,oCAAoCA,EAAE,IAAI,GAAGA,EAAE,WAAWA,EAAE,YAAY,GAAGA,EAAE,MAAMA,EAAE,MAAMA,EAAE,eAAeiY,CAAC;AACrL,UAAMvX,IAAI,IAAI,WAAW,CAAC;AAC1B,WAAOV,EAAE,WAAW,GAAG,GAAG,GAAG,GAAGA,EAAE,MAAMA,EAAE,eAAeU,CAAC,GAAGV,EAAE,kBAAkBI,CAAC,GAAGJ,EAAE,cAAckY,CAAC,IAAIC,IAAInY,EAAE,aAAa,oBAAoB,MAAM,QAAQmY,EAAE,YAAa,GAAEzX,EAAE,CAAC,KAAKA,EAAE,CAAC,IAAI8R,GAAG,MAAMA,GAAG;AAAA,EAC/M,GAAM,IAAGsM;AACT;AACA,IAAIE;AACJ,SAASC,KAAK;AACZ,SAAO,OAAOD,KAAK,QAAQA,KAAK,WAAW;AACzC,QAAI/G;AACJ,UAAMjY,IAAI;AAAA,MACR,SAAS;AAAA,MACT,8BAA8BgT,EAAE;AAAA,IACtC;AACI,QAAI;AACF,UAAI,CAACA,EAAE,QAAQ,yBAA0B;AACvC,eAAO;AACT,YAAM,IAAIA,EAAE,QAAQ,aAAY;AAChC,UAAI5S,IAAI,EAAE,WAAW,SAASJ,CAAC,KAAK,EAAE,WAAW,sBAAsBA,CAAC;AACxE,YAAMU,IAAI,CAAC,GAAGuX,IAAI7X,KAAK,OAAO,SAASA,EAAE,qBAAsB,MAAK,QAAQ6X,EAAE;AAC9E,UAAI7X,GAAG;AACL,cAAM,IAAIA,EAAE,aAAa,oBAAoB;AAC7C,aAAK,EAAE;MACR;AACD,aAAOA,IAAI,MAAMM;AAAA,IACvB,QAAY;AACN,aAAO;AAAA,IACR;AAAA,EACL,EAAK,IAAGse;AACR;AACA,IAAIE,KAAK,EAAE,MAAM,KAAK,MAAM,KAAK,KAAK,OAAO,IAAI,KAAK,IAAK,GAAEC,KAAK,SAASnf,GAAG;AAC5E,SAAO,OAAOA,KAAK,WAAWA,EAAE,SAAS,IAAI,OAAOA,KAAK;AAC3D,GAAGof,KAAK,SAASpf,GAAG,GAAG,GAAG;AACxB,SAAO,MAAM,WAAW,IAAI,IAAI,MAAM,WAAW,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAIA,CAAC,IAAI,IAAI;AACjG,GAAGqf,KAAK,SAASrf,GAAG,GAAG,GAAG;AACxB,SAAO,MAAM,WAAW,IAAI,IAAI,MAAM,WAAW,IAAI,IAAIA,IAAI,IAAI,IAAIA,IAAI,IAAIA,IAAI;AACnF,GAAGsf,KAAK,SAAStf,GAAG;AAClB,UAAQA,IAAI,SAASA,CAAC,IAAIA,IAAI,MAAM,KAAK,IAAIA,IAAIA,IAAI;AACvD,GAAGuf,KAAK,SAASvf,GAAG;AAClB,SAAO,EAAE,GAAGqf,GAAGrf,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGqf,GAAGrf,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGqf,GAAGrf,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGqf,GAAGrf,EAAE,CAAC,EAAC;AACjF,GAAGwf,KAAK,SAASxf,GAAG;AAClB,SAAO,EAAE,GAAGof,GAAGpf,EAAE,CAAC,GAAG,GAAGof,GAAGpf,EAAE,CAAC,GAAG,GAAGof,GAAGpf,EAAE,CAAC,GAAG,GAAGof,GAAGpf,EAAE,GAAG,CAAC;AAC3D,GAAGyf,KAAK,uBAAuBC,KAAK,SAAS1f,GAAG;AAC9C,MAAI,IAAIA,EAAE,SAAS,EAAE;AACrB,SAAO,EAAE,SAAS,IAAI,MAAM,IAAI;AAClC,GAAG2f,KAAK,SAAS3f,GAAG;AAClB,MAAI,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAGI,IAAIJ,EAAE,GAAGU,IAAIV,EAAE,GAAG,IAAI,KAAK,IAAI,GAAG,GAAGI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,GAAGA,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,IAAIA,KAAK,IAAI,MAAM,IAAI,KAAKA,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI;AACxK,SAAO,EAAE,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,KAAK,GAAGM;AACrF,GAAGkf,KAAK,SAAS5f,GAAG;AAClB,MAAI,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAGI,IAAIJ,EAAE,GAAGU,IAAIV,EAAE;AACrC,MAAI,IAAI,MAAM,GAAG,KAAK,KAAKI,KAAK;AAChC,MAAI,IAAI,KAAK,MAAM,CAAC,GAAG,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,IAAI,KAAK,IAAIW,IAAIX,KAAK,KAAK,IAAI,IAAI,KAAK,IAAIY,IAAI,IAAI;AAC1G,SAAO,EAAE,GAAG,MAAM,CAACZ,GAAG,GAAG,GAAG,GAAGW,GAAGX,CAAC,EAAEY,CAAC,GAAG,GAAG,MAAM,CAACD,GAAGX,GAAGA,GAAG,GAAG,GAAG,CAAC,EAAEY,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAGD,GAAGX,GAAGA,GAAG,CAAC,EAAEY,CAAC,GAAG,GAAGN;AAC9G,GAAGmf,KAAK,SAAS7f,GAAG;AAClB,SAAO,EAAE,GAAGsf,GAAGtf,EAAE,CAAC,GAAG,GAAGqf,GAAGrf,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGqf,GAAGrf,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGqf,GAAGrf,EAAE,CAAC,EAAC;AACzE,GAAG8f,KAAK,SAAS9f,GAAG;AAClB,SAAO,EAAE,GAAGof,GAAGpf,EAAE,CAAC,GAAG,GAAGof,GAAGpf,EAAE,CAAC,GAAG,GAAGof,GAAGpf,EAAE,CAAC,GAAG,GAAGof,GAAGpf,EAAE,GAAG,CAAC;AAC3D,GAAG+f,KAAK,SAAS/f,GAAG;AAClB,SAAO4f,IAAI,KAAK,IAAI5f,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,OAAOI,IAAI,EAAE,KAAK,KAAKA,IAAI,MAAMA,KAAK,OAAO,IAAI,IAAI,KAAKA,IAAI,KAAK,MAAM,GAAG,GAAGA,IAAI,GAAG,GAAG,EAAE,EAAC;AACpI,MAAI,GAAG,GAAGA;AACZ,GAAG4f,KAAK,SAAShgB,GAAG;AAClB,SAAO,EAAE,IAAI,IAAI2f,GAAG3f,CAAC,GAAG,GAAG,IAAIU,KAAK,OAAO,IAAI,EAAE,OAAON,IAAI,EAAE,KAAK,OAAO,KAAKM,IAAI,MAAM,IAAIN,IAAI,OAAOM,KAAK,MAAMA,IAAI,MAAMA,KAAK,MAAM,GAAG,GAAGA,IAAI,GAAG,GAAG,EAAE;AAC1J,MAAI,GAAG,GAAGN,GAAGM;AACf,GAAGuf,KAAK,0IAA0IC,KAAK,mIAAmIC,KAAK,gIAAgIC,KAAK,yHAAyHC,KAAK,EAAE,QAAQ,CAAC,CAAC,SAASrgB,GAAG;AACxjB,MAAI,IAAIyf,GAAG,KAAKzf,CAAC;AACjB,SAAO,KAAKA,IAAI,EAAE,CAAC,GAAG,UAAU,IAAI,EAAE,GAAG,SAASA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,SAASA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,SAASA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAG,EAAE,GAAG,GAAGA,EAAE,WAAW,IAAIof,GAAG,SAASpf,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,MAAMA,EAAE,WAAW,KAAKA,EAAE,WAAW,IAAI,EAAE,GAAG,SAASA,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,SAASA,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,SAASA,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,GAAGA,EAAE,WAAW,IAAIof,GAAG,SAASpf,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,MAAM,OAAO;AAC1Z,GAAG,KAAK,GAAG,CAAC,SAASA,GAAG;AACtB,MAAI,IAAImgB,GAAG,KAAKngB,CAAC,KAAKogB,GAAG,KAAKpgB,CAAC;AAC/B,SAAO,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,OAAOuf,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,GAAE,CAAE,IAAI;AACtP,GAAG,KAAK,GAAG,CAAC,SAASvf,GAAG;AACtB,MAAI,IAAIigB,GAAG,KAAKjgB,CAAC,KAAKkgB,GAAG,KAAKlgB,CAAC;AAC/B,MAAI,CAAC;AACH,WAAO;AACT,MAAI,GAAGI,GAAGM,IAAImf,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,GAAGzf,IAAI,EAAE,CAAC,GAAGA,MAAM,WAAWA,IAAI,QAAQ,OAAO,CAAC,KAAK8e,GAAG9e,CAAC,KAAK,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,GAAI,CAAA;AAC/L,SAAO2f,GAAGrf,CAAC;AACb,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,SAASV,GAAG;AAChC,MAAI,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAGI,IAAIJ,EAAE,GAAGU,IAAIV,EAAE,GAAG,IAAIU,MAAM,SAAS,IAAIA;AAC/D,SAAOye,GAAG,CAAC,KAAKA,GAAG,CAAC,KAAKA,GAAG/e,CAAC,IAAImf,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,OAAOnf,CAAC,GAAG,GAAG,OAAO,CAAC,EAAG,CAAA,IAAI;AACpG,GAAG,KAAK,GAAG,CAAC,SAASJ,GAAG;AACtB,MAAI,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAGI,IAAIJ,EAAE,GAAGU,IAAIV,EAAE,GAAG,IAAIU,MAAM,SAAS,IAAIA;AAC/D,MAAI,CAACye,GAAG,CAAC,KAAK,CAACA,GAAG,CAAC,KAAK,CAACA,GAAG/e,CAAC;AAC3B,WAAO;AACT,MAAI,IAAIyf,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,OAAOzf,CAAC,GAAG,GAAG,OAAO,CAAC,EAAC,CAAE;AACrE,SAAO2f,GAAG,CAAC;AACb,GAAG,KAAK,GAAG,CAAC,SAAS/f,GAAG;AACtB,MAAI,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAGI,IAAIJ,EAAE,GAAGU,IAAIV,EAAE,GAAG,IAAIU,MAAM,SAAS,IAAIA;AAC/D,MAAI,CAACye,GAAG,CAAC,KAAK,CAACA,GAAG,CAAC,KAAK,CAACA,GAAG/e,CAAC;AAC3B,WAAO;AACT,MAAI,IAAI,SAAS,GAAG;AAClB,WAAO,EAAE,GAAGkf,GAAG,EAAE,CAAC,GAAG,GAAGD,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGA,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGA,GAAG,EAAE,CAAC,EAAC;AAAA,EAC3E,EAAI,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,OAAOjf,CAAC,GAAG,GAAG,OAAO,CAAC,EAAC,CAAE;AAC5D,SAAOwf,GAAG,CAAC;AACb,GAAG,KAAK,CAAC,EAAG,GAAEU,KAAK,SAAStgB,GAAG,GAAG;AAChC,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,QAAII,IAAI,EAAE,CAAC,EAAE,CAAC,EAAEJ,CAAC;AACjB,QAAII;AACF,aAAO,CAACA,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAAA,EACrB;AACD,SAAO,CAAC,MAAM,MAAM;AACtB,GAAGmgB,KAAK,SAASvgB,GAAG;AAClB,SAAO,OAAOA,KAAK,WAAWsgB,GAAGtgB,EAAE,KAAI,GAAIqgB,GAAG,MAAM,IAAI,OAAOrgB,KAAK,YAAYA,MAAM,OAAOsgB,GAAGtgB,GAAGqgB,GAAG,MAAM,IAAI,CAAC,MAAM,MAAM;AAC/H,GAAGG,KAAK,SAASxgB,GAAG,GAAG;AACrB,MAAI,IAAIggB,GAAGhgB,CAAC;AACZ,SAAO,EAAE,GAAG,EAAE,GAAG,GAAGqf,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE;AAC9D,GAAGoB,KAAK,SAASzgB,GAAG;AAClB,UAAQ,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,KAAK,MAAM;AACrD,GAAG0gB,KAAK,SAAS1gB,GAAG,GAAG;AACrB,MAAI,IAAIggB,GAAGhgB,CAAC;AACZ,SAAO,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAGqf,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAC9D,GAAGsB,KAAK,WAAW;AACjB,WAAS3gB,EAAE,GAAG;AACZ,SAAK,SAASugB,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,OAAO,KAAK,UAAU,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;EAC3E;AACD,SAAOvgB,EAAE,UAAU,UAAU,WAAW;AACtC,WAAO,KAAK,WAAW;AAAA,EAC3B,GAAKA,EAAE,UAAU,aAAa,WAAW;AACrC,WAAOof,GAAGqB,GAAG,KAAK,IAAI,GAAG,CAAC;AAAA,EAC9B,GAAKzgB,EAAE,UAAU,SAAS,WAAW;AACjC,WAAOygB,GAAG,KAAK,IAAI,IAAI;AAAA,EAC3B,GAAKzgB,EAAE,UAAU,UAAU,WAAW;AAClC,WAAOygB,GAAG,KAAK,IAAI,KAAK;AAAA,EAC5B,GAAKzgB,EAAE,UAAU,QAAQ,WAAW;AAChC,WAAO,IAAIwf,GAAG,KAAK,IAAI,GAAG,IAAI,EAAE,GAAGpf,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,KAAK,IAAIgf,GAAGN,GAAG,MAAM,CAAC,CAAC,IAAI,IAAI,MAAMM,GAAG,CAAC,IAAIA,GAAGtf,CAAC,IAAIsf,GAAGhf,CAAC,IAAI;AAC7H,QAAI,GAAG,GAAGN,GAAGM,GAAG,GAAG;AAAA,EACvB,GAAKV,EAAE,UAAU,QAAQ,WAAW;AAChC,WAAOwf,GAAG,KAAK,IAAI;AAAA,EACvB,GAAKxf,EAAE,UAAU,cAAc,WAAW;AACtC,WAAO,IAAIwf,GAAG,KAAK,IAAI,GAAG,IAAI,EAAE,GAAGpf,IAAI,EAAE,GAAGM,IAAI,EAAE,IAAI,IAAI,EAAE,KAAK,IAAI,UAAU,IAAI,OAAON,IAAI,OAAOM,IAAI,OAAO,IAAI,MAAM,SAAS,IAAI,OAAON,IAAI,OAAOM,IAAI;AAC7J,QAAI,GAAG,GAAGN,GAAGM,GAAG;AAAA,EACpB,GAAKV,EAAE,UAAU,QAAQ,WAAW;AAChC,WAAO8f,GAAGE,GAAG,KAAK,IAAI,CAAC;AAAA,EAC3B,GAAKhgB,EAAE,UAAU,cAAc,WAAW;AACtC,WAAO,IAAI8f,GAAGE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG5f,IAAI,EAAE,GAAGM,IAAI,EAAE,IAAI,IAAI,EAAE,KAAK,IAAI,UAAU,IAAI,OAAON,IAAI,QAAQM,IAAI,QAAQ,IAAI,MAAM,SAAS,IAAI,OAAON,IAAI,QAAQM,IAAI;AACpK,QAAI,GAAG,GAAGN,GAAGM,GAAG;AAAA,EACpB,GAAKV,EAAE,UAAU,QAAQ,WAAW;AAChC,WAAO,IAAI2f,GAAG,KAAK,IAAI,GAAG,EAAE,GAAGP,GAAG,EAAE,CAAC,GAAG,GAAGA,GAAG,EAAE,CAAC,GAAG,GAAGA,GAAG,EAAE,CAAC,GAAG,GAAGA,GAAG,EAAE,GAAG,CAAC,EAAC;AAC7E,QAAI;AAAA,EACR,GAAKpf,EAAE,UAAU,SAAS,WAAW;AACjC,WAAO4gB,GAAG,EAAE,GAAG,OAAO,IAAI,KAAK,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,GAAG,EAAE,EAAC,CAAE;AAC5E,QAAI;AAAA,EACL,GAAE5gB,EAAE,UAAU,WAAW,SAAS,GAAG;AACpC,WAAO,MAAM,WAAW,IAAI,MAAM4gB,GAAGJ,GAAG,KAAK,MAAM,CAAC,CAAC;AAAA,EACtD,GAAExgB,EAAE,UAAU,aAAa,SAAS,GAAG;AACtC,WAAO,MAAM,WAAW,IAAI,MAAM4gB,GAAGJ,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC;AAAA,EAC1D,GAAKxgB,EAAE,UAAU,YAAY,WAAW;AACpC,WAAO4gB,GAAGJ,GAAG,KAAK,MAAM,EAAE,CAAC;AAAA,EAC5B,GAAExgB,EAAE,UAAU,UAAU,SAAS,GAAG;AACnC,WAAO,MAAM,WAAW,IAAI,MAAM4gB,GAAGF,GAAG,KAAK,MAAM,CAAC,CAAC;AAAA,EACtD,GAAE1gB,EAAE,UAAU,SAAS,SAAS,GAAG;AAClC,WAAO,MAAM,WAAW,IAAI,MAAM4gB,GAAGF,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC;AAAA,EACvD,GAAE1gB,EAAE,UAAU,SAAS,SAAS,GAAG;AAClC,WAAO,MAAM,WAAW,IAAI,KAAK,KAAK,IAAI,KAAK,IAAK,IAAG,CAAC;AAAA,EACzD,GAAEA,EAAE,UAAU,QAAQ,SAAS,GAAG;AACjC,WAAO,OAAO,KAAK,WAAW4gB,GAAG,EAAE,IAAI,IAAI,KAAK,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAG,CAAA,IAAIxB,GAAG,KAAK,KAAK,GAAG,CAAC;AACpG,QAAI;AAAA,EACL,GAAEpf,EAAE,UAAU,MAAM,SAAS,GAAG;AAC/B,QAAI,IAAIggB,GAAG,KAAK,IAAI;AACpB,WAAO,OAAO,KAAK,WAAWY,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAG,CAAA,IAAIxB,GAAG,EAAE,CAAC;AAAA,EAC5E,GAAEpf,EAAE,UAAU,UAAU,SAAS,GAAG;AACnC,WAAO,KAAK,MAAO,MAAK4gB,GAAG,CAAC,EAAE;EAC/B,GAAE5gB;AACL,KAAK4gB,KAAK,SAAS5gB,GAAG;AACpB,SAAOA,aAAa2gB,KAAK3gB,IAAI,IAAI2gB,GAAG3gB,CAAC;AACvC,GAAG6gB,KAAK,CAAA,GAAIC,KAAK,SAAS9gB,GAAG;AAC3B,EAAAA,EAAE,QAAQ,SAAS,GAAG;AACpB,IAAA6gB,GAAG,QAAQ,CAAC,IAAI,MAAM,EAAEF,IAAIN,EAAE,GAAGQ,GAAG,KAAK,CAAC;AAAA,EAC9C,CAAG;AACH;AACA,SAASE,GAAG/gB,GAAG,GAAG;AAChB,MAAI,IAAI,EAAE,OAAO,WAAW,QAAQ,WAAW,MAAM,WAAW,WAAW,WAAW,YAAY,WAAW,WAAW,WAAW,OAAO,WAAW,cAAc,WAAW,MAAM,WAAW,OAAO,WAAW,YAAY,WAAW,YAAY,WAAW,MAAM,WAAW,gBAAgB,WAAW,OAAO,WAAW,MAAM,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,gBAAgB,WAAW,WAAW,WAAW,YAAY,WAAW,OAAO,WAAW,SAAS,WAAW,MAAM,WAAW,UAAU,WAAW,UAAU,WAAW,eAAe,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,aAAa,WAAW,SAAS,WAAW,YAAY,WAAW,YAAY,WAAW,eAAe,WAAW,MAAM,WAAW,eAAe,WAAW,eAAe,WAAW,UAAU,WAAW,aAAa,WAAW,OAAO,WAAW,WAAW,WAAW,aAAa,WAAW,YAAY,WAAW,YAAY,WAAW,SAAS,WAAW,OAAO,WAAW,YAAY,WAAW,MAAM,WAAW,UAAU,WAAW,SAAS,WAAW,YAAY,WAAW,aAAa,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,WAAW,SAAS,WAAW,OAAO,WAAW,QAAQ,WAAW,YAAY,WAAW,YAAY,WAAW,eAAe,WAAW,WAAW,WAAW,OAAO,WAAW,aAAa,WAAW,aAAa,WAAW,eAAe,WAAW,OAAO,WAAW,kBAAkB,WAAW,cAAc,WAAW,MAAM,WAAW,OAAO,WAAW,gBAAgB,WAAW,WAAW,WAAW,mBAAmB,WAAW,cAAc,WAAW,WAAW,WAAW,cAAc,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,gBAAgB,WAAW,gBAAgB,WAAW,aAAa,WAAW,MAAM,WAAW,iBAAiB,WAAW,YAAY,WAAW,eAAe,WAAW,SAAS,WAAW,eAAe,WAAW,iBAAiB,WAAW,cAAc,WAAW,eAAe,WAAW,gBAAgB,WAAW,iBAAiB,WAAW,SAAS,WAAW,KAAK,WAAW,QAAQ,WAAW,cAAc,WAAW,QAAQ,WAAW,MAAM,WAAW,SAAS,WAAW,aAAa,WAAW,WAAW,WAAW,KAAK,WAAW,QAAQ,WAAW,WAAW,WAAW,eAAe,WAAW,MAAM,WAAW,eAAe,WAAW,QAAQ,WAAW,MAAM,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,cAAc,WAAW,gBAAgB,WAAW,aAAa,WAAW,UAAU,WAAW,UAAU,WAAW,QAAQ,WAAW,QAAQ,WAAW,QAAQ,WAAW,UAAU,WAAW,YAAY,WAAW,QAAQ,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,aAAa,WAAW,QAAQ,WAAW,aAAa,WAAW,YAAY,WAAW,WAAW,WAAW,YAAY,WAAW,sBAAsB,WAAW,MAAM,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,SAAS,WAAW,WAAW,WAAW,OAAO,UAAW,GAAEI,IAAI;AAC9rG,WAASM,KAAK;AACZ,IAAAN,EAAE,EAAEM,CAAC,CAAC,IAAIA;AACZ,MAAI,IAAI,CAAA;AACR,EAAAV,EAAE,UAAU,SAAS,SAAS,GAAG;AAC/B,QAAI,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAC3D,aAAO;AACT,QAAI,GAAGe,GAAGC,IAAIZ,EAAE,KAAK,MAAK,CAAE;AAC5B,QAAIY;AACF,aAAOA;AACT,QAAI,KAAK,QAAQ,EAAE,SAAS;AAC1B,UAAI,IAAI,KAAK,MAAO,GAAE,IAAI,OAAO,IAAI;AACrC,UAAI,CAAC,EAAE;AACL,iBAASC,KAAK;AACZ,YAAEA,CAAC,IAAI,IAAIjB,EAAE,EAAEiB,CAAC,CAAC,EAAE;AACvB,eAASC,KAAK,GAAG;AACf,YAAI,KAAK,IAAI,GAAGH,IAAI,EAAEG,CAAC,GAAG,KAAK,IAAI,EAAE,IAAIH,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,IAAIA,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,IAAIA,EAAE,GAAG,CAAC;AACjG,YAAI,MAAM,IAAI,GAAG,IAAIG;AAAA,MACtB;AACD,aAAO;AAAA,IACR;AAAA,EACF,GAAE,EAAE,OAAO,KAAK,CAAC,SAAS,GAAG;AAC5B,QAAI,IAAI,EAAE,YAAW,GAAIH,IAAI,MAAM,gBAAgB,UAAU,EAAE,CAAC;AAChE,WAAOA,IAAI,IAAIf,EAAEe,CAAC,EAAE,MAAO,IAAG;AAAA,EAClC,GAAK,MAAM,CAAC;AACZ;AACA+f,GAAG,CAACC,EAAE,CAAC;AACP,MAAMC,KAAK,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA,EAIlB,YAAY,IAAI,UAAU;AACxB,SAAK,SAAS,MAAM,KAAK,cAAc,IAAI,aAAa,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,GAAG,KAAK,OAAO,UAAU,KAAK,QAAQ;AAAA,EAC1H;AAAA;AAAA,EAED,IAAI,MAAM;AACR,WAAO,KAAK,YAAY,CAAC;AAAA,EAC1B;AAAA;AAAA,EAED,IAAI,QAAQ;AACV,WAAO,KAAK,YAAY,CAAC;AAAA,EAC1B;AAAA;AAAA,EAED,IAAI,OAAO;AACT,WAAO,KAAK,YAAY,CAAC;AAAA,EAC1B;AAAA;AAAA,EAED,IAAI,QAAQ;AACV,WAAO,KAAK,YAAY,CAAC;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS,GAAG;AACV,WAAO,KAAK,QAAQ,GAAG;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBD,IAAI,MAAM,GAAG;AACX,QAAI,aAAaA;AACf,WAAK,SAAS,KAAK,YAAY,EAAE,MAAM,GAAG,KAAK,OAAO,EAAE,MAAM,KAAK,YAAY,IAAI,EAAE,WAAW;AAAA,SAC7F;AACH,UAAI,MAAM;AACR,cAAM,IAAI,MAAM,qCAAqC;AACvD,OAAC,KAAK,WAAW,QAAQ,CAAC,KAAK,cAAc,KAAK,QAAQ,CAAC,OAAO,KAAK,UAAU,CAAC,GAAG,KAAK,SAAS,KAAK,YAAY,CAAC;AAAA,IACtH;AAAA,EACF;AAAA,EACD,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY,GAAG;AACb,WAAO,OAAO,KAAK,YAAY,OAAO,KAAK,YAAY,aAAa,UAAU,MAAM,OAAO,IAAI,MAAM,QAAQ,CAAC,KAAK,YAAY,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,KAAK,YAAY,MAAM,OAAO,EAAE,GAAG,EAAC,IAAK;AAAA,EACzM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,cAAc,GAAG,GAAG;AAClB,UAAM7gB,IAAI,OAAO;AACjB,QAAIA,MAAM,OAAO;AACf,aAAO;AACT,QAAIA,MAAM,YAAYA,MAAM,YAAY,aAAa;AACnD,aAAO,MAAM;AACf,QAAI,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,KAAK,YAAY,OAAO,CAAC,KAAK,YAAY,OAAO,CAAC;AACvF,aAAO,EAAE,WAAW,EAAE,SAAS,KAAK,EAAE,MAAM,CAACM,GAAG,MAAMA,MAAM,EAAE,CAAC,CAAC;AAClE,QAAI,MAAM,QAAQ,MAAM,MAAM;AAC5B,YAAMA,IAAI,OAAO,KAAK,CAAC,GAAG,IAAI,OAAO,KAAK,CAAC;AAC3C,aAAOA,EAAE,WAAW,EAAE,SAAS,KAAKA,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AAAA,IACjE;AACD,WAAO,MAAM;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS;AACP,UAAM,CAAC,GAAG,GAAGN,GAAGM,CAAC,IAAI,KAAK;AAC1B,WAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGN,GAAG,GAAGM;EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQ;AACN,UAAM,CAAC,GAAG,GAAGN,CAAC,IAAI,KAAK;AACvB,WAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGA;EACzB;AAAA;AAAA,EAED,eAAe;AACb,UAAM,CAAC,GAAG,GAAGA,CAAC,IAAI,KAAK;AACvB,WAAO,QAAQ,CAAC,IAAI,CAAC,IAAIA,CAAC,IAAI,KAAK,KAAK;AAAA,EACzC;AAAA,EACD,gBAAgB,GAAG;AACjB,UAAM,CAAC,GAAGA,GAAGM,CAAC,IAAI,KAAK;AACvB,WAAO,IAAI,KAAK,CAAE,GAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,MAAMN,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,MAAMM,IAAI,GAAG,GAAG;AAAA,EACzG;AAAA,EACD,WAAW,GAAG;AACZ,QAAI,KAAK;AACT,UAAM,CAAC,GAAGN,GAAGM,CAAC,IAAI,KAAK;AACvB,WAAO,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAIN,GAAG,EAAE,CAAC,IAAIM,GAAG;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,WAAW;AACT,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,uBAAuB;AACrB,UAAM,IAAI,KAAK;AACf,YAAQ,KAAK,OAAO,IAAI,WAAW,IAAI,QAAQ;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS,GAAG;AACV,UAAM,CAAC,GAAGN,GAAGM,GAAG,CAAC,IAAIugB,GAAG,KAAK,SAAS,CAAC,EAAE;AACzC,WAAO,KAAK,YAAY,CAAC,KAAK,GAAG,KAAK,YAAY,CAAC,KAAK7gB,GAAG,KAAK,YAAY,CAAC,KAAKM,GAAG,KAAK,YAAY,CAAC,KAAK,GAAG,KAAK,WAAY,GAAE,KAAK,SAAS,MAAM;AAAA,EACvJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,YAAY,GAAG,IAAI,IAAI;AACrB,WAAO,MAAM,KAAK,YAAY,CAAC,KAAK,GAAG,KAAK,YAAY,CAAC,KAAK,GAAG,KAAK,YAAY,CAAC,KAAK,IAAI,KAAK,YAAY,CAAC,IAAI,GAAG,KAAK,WAAY,GAAE,KAAK,SAAS,MAAM;AAAA,EAC7J;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,gBAAgB,GAAG,IAAI,IAAI;AACzB,QAAI,MAAM;AACR,cAAQ,OAAO,MAAM,KAAK;AAC5B,QAAI,MAAM;AACR,aAAO,IAAI,IAAI,KAAK;AACtB,QAAIN,IAAI,KAAK,QAAQ,KAAK,KAAKM,IAAI,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,OAAO;AACzE,WAAO,MAAMN,IAAIA,IAAI,IAAI,MAAM,GAAGM,IAAIA,IAAI,IAAI,MAAM,GAAG,IAAI,IAAI,IAAI,MAAM,KAAK,IAAI,OAAO,OAAON,KAAK,OAAOM,KAAK,KAAK;AAAA,EACvH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQ;AACN,UAAM,IAAI,KAAK,KAAK,SAAS,EAAE;AAC/B,WAAO,IAAI,SAAS,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS;AACP,UAAM,IAAI,KAAK,MAAM,KAAK,YAAY,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE;AAC3D,WAAO,KAAK,UAAU,KAAK,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS,GAAG;AACV,WAAO,KAAK,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,MAAM,GAAG;AACP,UAAM,CAAC,GAAGN,GAAGM,CAAC,IAAI,KAAK;AACvB,WAAO,KAAK,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,YAAY,CAAC,IAAI,KAAK,MAAMN,IAAI,CAAC,IAAI,GAAG,KAAK,YAAY,CAAC,IAAI,KAAK,MAAMM,IAAI,CAAC,IAAI,GAAG,KAAK,WAAY,GAAE,KAAK,SAAS,MAAM;AAAA,EACtL;AAAA,EACD,QAAQ,GAAG;AACT,QAAI,KAAK;AACT,UAAM,CAAC,GAAGN,GAAGM,GAAG,CAAC,IAAI,KAAK;AAC1B,WAAO,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAIN,GAAG,EAAE,CAAC,IAAIM,GAAG,EAAE,CAAC,IAAI,GAAG;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,UAAU,GAAG;AACX,QAAI,GAAGN,GAAGM,GAAG;AACb,SAAK,OAAO,KAAK,YAAY,aAAa,WAAW,KAAK,KAAK,KAAK,UAAU;AAC5E,YAAM,IAAI;AACV,WAAK,KAAK,KAAK,OAAO,KAAKN,KAAK,KAAK,IAAI,OAAO,KAAKM,KAAK,IAAI,OAAO,KAAK,IAAI;AAAA,IAC/E,YAAW,MAAM,QAAQ,CAAC,KAAK,aAAa,iBAAiB,EAAE,UAAU,KAAK,EAAE,UAAU;AACzF,UAAI,KAAK,OAAO,CAAC,GAAG,CAAC,GAAGN,GAAGM,GAAG,IAAI,CAAC,IAAI;AAAA,cAC/B,aAAa,cAAc,aAAa,sBAAsB,EAAE,UAAU,KAAK,EAAE,UAAU;AACnG,UAAI,KAAK,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,GAAGN,GAAGM,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,KAAKN,KAAK,KAAKM,KAAK,KAAK,KAAK;AAAA,aAChF,OAAO,KAAK,YAAY,OAAO,KAAK,UAAU;AACrD,UAAI,OAAO,KAAK,UAAU;AACxB,cAAM,IAAIugB,GAAG,YAAY,KAAK,CAAC;AAC/B,cAAM,IAAI,IAAI,EAAE,CAAC,CAAC;AAAA,MACnB;AACD,YAAM,IAAIL,GAAG,CAAC;AACd,QAAE,QAAS,MAAK,EAAE,GAAG,GAAG,GAAGxgB,GAAG,GAAGM,GAAG,GAAG,MAAM,EAAE,MAAM,KAAK,KAAKN,KAAK,KAAKM,KAAK;AAAA,IAC/E;AACD,QAAI,MAAM;AACR,WAAK,YAAY,CAAC,IAAI,GAAG,KAAK,YAAY,CAAC,IAAIN,GAAG,KAAK,YAAY,CAAC,IAAIM,GAAG,KAAK,YAAY,CAAC,IAAI,GAAG,KAAK;;AAEzG,YAAM,IAAI,MAAM,2BAA2B,CAAC,EAAE;AAAA,EACjD;AAAA;AAAA,EAED,aAAa;AACX,SAAK,OAAO,KAAK,WAAW;AAC5B,UAAM,CAAC,GAAG,GAAGN,CAAC,IAAI,KAAK;AACvB,SAAK,QAAQ,IAAI,OAAO,OAAO,IAAI,OAAO,MAAMA,IAAI,MAAM;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,OAAO,GAAG,IAAI,GAAGA,IAAI,GAAG;AACtB,WAAO,OAAO,KAAK,WAAW,KAAK,IAAI,KAAK,IAAI,GAAG,CAAC,GAAGA,CAAC,KAAK,EAAE,QAAQ,CAACM,GAAG,MAAM;AAC/E,QAAE,CAAC,IAAI,KAAK,IAAI,KAAK,IAAIA,GAAG,CAAC,GAAGN,CAAC;AAAA,IACvC,CAAK,GAAG;AAAA,EACL;AACH;AACA4gB,GAAG,SAAS,IAAIA,GAAI;AAAA;AAAA;AAAA;AAAA;AAKpBA,GAAG,OAAO,IAAIA,GAAI;AAClBA,GAAG,cAAc;AACjB,IAAIE,KAAKF;AACT,SAASG,GAAGnhB,GAAG;AACb,SAAOue,GAAG,SAAS,yDAAyD,GAAG2C,GAAG,OAAO,SAASlhB,CAAC,EAAE;AACvG;AACA,SAASohB,GAAGphB,GAAG;AACb,SAAOue,GAAG,SAAS,yDAAyD,GAAG2C,GAAG,OAAO,SAASlhB,CAAC,EAAE;AACvG;AACA,SAASqhB,KAAK;AACZ,QAAMrhB,IAAI,CAAA,GAAI,IAAI;AAClB,WAASI,IAAI,GAAGA,IAAI,IAAIA;AACtB,IAAAJ,EAAEI,CAAC,IAAIA,GAAG,EAAEA,CAAC,IAAIA;AACnB,EAAAJ,EAAE+R,EAAE,UAAU,IAAIA,EAAE,QAAQ/R,EAAE+R,EAAE,OAAO,IAAIA,EAAE,KAAK/R,EAAE+R,EAAE,UAAU,IAAIA,EAAE,QAAQ,EAAEA,EAAE,MAAM,IAAIA,EAAE,YAAY,EAAEA,EAAE,GAAG,IAAIA,EAAE,SAAS,EAAEA,EAAE,MAAM,IAAIA,EAAE;AAChJ,QAAM,IAAI,CAAA;AACV,SAAO,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK/R,CAAC,GAAG;AAC/B;AACA,MAAMshB,KAAKD,GAAE;AACb,SAASE,GAAGvhB,GAAG,GAAG;AAChB,SAAOshB,GAAG,IAAI,IAAI,CAAC,EAAEthB,CAAC;AACxB;AACA,SAASwhB,GAAGxhB,GAAG,IAAI,MAAM;AACvB,QAAM,IAAIA,IAAI;AACd,MAAI,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,EAAE,WAAW;AAC5C,UAAM,IAAI,MAAM,uCAAuC,EAAE,MAAM,iBAAiB,CAAC,EAAE;AACrF,WAASI,IAAI,GAAGM,IAAI,GAAGN,IAAI,GAAGA,KAAK,GAAGM,KAAK;AACzC,MAAEN,IAAI,CAAC,IAAIM,IAAI,GAAG,EAAEN,IAAI,CAAC,IAAIM,IAAI,GAAG,EAAEN,IAAI,CAAC,IAAIM,IAAI,GAAG,EAAEN,IAAI,CAAC,IAAIM,IAAI,GAAG,EAAEN,IAAI,CAAC,IAAIM,IAAI,GAAG,EAAEN,IAAI,CAAC,IAAIM,IAAI;AAC3G,SAAO;AACT;AACA,SAAS+gB,GAAGzhB,GAAG;AACb,MAAIA,EAAE,sBAAsB;AAC1B,WAAOA,aAAa,eAAe,iBAAiBA,aAAa,cAAc,gBAAgB;AACjG,MAAIA,EAAE,sBAAsB;AAC1B,QAAIA,aAAa;AACf,aAAO;AAAA,aACAA,EAAE,sBAAsB,KAAKA,aAAa;AACnD,WAAO;AACT,SAAO;AACT;AACA,SAAS0hB,GAAG1hB,GAAG;AACb,SAAOA,KAAKA,MAAM,IAAI,IAAI,GAAG,EAAEA,GAAGA,KAAKA,MAAM,GAAGA,KAAKA,MAAM,GAAGA,KAAKA,MAAM,GAAGA,KAAKA,MAAM,GAAGA,KAAKA,MAAM,IAAIA,IAAI;AAC/G;AACA,SAAS2hB,GAAG3hB,GAAG;AACb,SAAO,EAAEA,IAAIA,IAAI,MAAM,CAAC,CAACA;AAC3B;AACA,SAAS4hB,GAAG5hB,GAAG;AACb,MAAI,KAAKA,IAAI,QAAQ,IAAI,MAAM;AAC/B,EAAAA,OAAO;AACP,MAAI,KAAKA,IAAI,MAAM,IAAI,MAAM;AAC7B,SAAOA,OAAO,GAAG,KAAK,GAAG,KAAKA,IAAI,KAAK,IAAI,MAAM,GAAGA,OAAO,GAAG,KAAK,GAAG,KAAKA,IAAI,IAAI,IAAI,MAAM,GAAGA,OAAO,GAAG,KAAK,GAAG,IAAIA,KAAK;AAC7H;AACA,SAAS6hB,GAAG7hB,GAAG,GAAG,GAAG;AACnB,QAAMI,IAAIJ,EAAE;AACZ,MAAIU;AACJ,MAAI,KAAKN,KAAK,MAAM;AAClB;AACF,MAAI,IAAI,IAAIA,IAAIA,IAAI,IAAI;AACxB,QAAM,IAAIA,IAAI;AACd,OAAKM,IAAI,GAAGA,IAAI,GAAG,EAAEA;AACnB,IAAAV,EAAEU,CAAC,IAAIV,EAAEU,IAAI,CAAC;AAChB,EAAAV,EAAE,SAAS;AACb;AACA,SAAS8hB,GAAG9hB,GAAG;AACb,SAAOA,MAAM,IAAI,IAAIA,IAAI,IAAI,KAAK;AACpC;AACA,IAAI+hB,KAAK;AACT,SAASC,KAAK;AACZ,SAAO,EAAED;AACX;AACA,MAAME,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOf,YAAYjiB,GAAG,GAAG,GAAGI,GAAG;AACtB,SAAK,OAAOJ,GAAG,KAAK,MAAM,GAAG,KAAK,QAAQ,GAAG,KAAK,SAASI;AAAA,EAC5D;AAAA;AAAA,EAED,IAAI,QAAQ;AACV,WAAO,KAAK,QAAQ,KAAK;AAAA,EAC1B;AAAA;AAAA,EAED,IAAI,SAAS;AACX,WAAO,KAAK,SAAS,KAAK;AAAA,EAC3B;AAAA;AAAA,EAED,UAAU;AACR,WAAO,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK;AAAA,EACtD;AACH;AACA6hB,GAAG,QAAQ,IAAIA,GAAG,GAAG,GAAG,GAAG,CAAC;AAC5B,IAAIC,KAAKD;AACT,MAAME,KAAK,CAAE,GAAEC,KAAqB,uBAAO,OAAO,IAAI,GAAGC,KAAqB,uBAAO,OAAO,IAAI;AAChG,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,YAAY,GAAG,GAAGliB,GAAG;AACnB,SAAK,UAAU4S,EAAE,QAAQ,gBAAgB,KAAK,WAAW,KAAK,QAAQ,WAAW,IAAI,GAAG,KAAK,aAAa5S,KAAK4S,EAAE,YAAY,KAAK,OAAO,GAAG,CAAC;AAAA,EAC9I;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,SAAK,gBAAe,GAAI,KAAK,SAAS,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,SAAS,UAAU,GAAG,GAAG,KAAK,QAAQ,OAAO,KAAK,QAAQ,MAAM;AAAA,EAC5I;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG,GAAG;AACX,SAAK,gBAAiB,GAAE,KAAK,QAAQ,QAAQ,KAAK,MAAM,IAAI,KAAK,UAAU,GAAG,KAAK,QAAQ,SAAS,KAAK,MAAM,IAAI,KAAK,UAAU;AAAA,EACnI;AAAA;AAAA,EAED,UAAU;AACR,SAAK,WAAW,MAAM,KAAK,UAAU;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK,gBAAe,GAAI,KAAK,QAAQ;AAAA,EAC7C;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,gBAAiB,GAAE,KAAK,QAAQ,QAAQ,KAAK,MAAM,CAAC;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,SAAS;AACX,WAAO,KAAK,gBAAe,GAAI,KAAK,QAAQ;AAAA,EAC7C;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,SAAK,gBAAiB,GAAE,KAAK,QAAQ,SAAS,KAAK,MAAM,CAAC;AAAA,EAC3D;AAAA;AAAA,EAED,IAAI,SAAS;AACX,WAAO,KAAK,mBAAmB,KAAK;AAAA,EACrC;AAAA;AAAA,EAED,IAAI,UAAU;AACZ,WAAO,KAAK,mBAAmB,KAAK;AAAA,EACrC;AAAA,EACD,kBAAkB;AAChB,QAAI,KAAK,YAAY;AACnB,YAAM,IAAI,UAAU,mDAAmD;AAAA,EAC1E;AACH;AACA,SAASuP,GAAGviB,GAAG,GAAG,GAAG;AACnB,WAASI,IAAI,GAAGM,IAAI,IAAI,IAAI,GAAGN,IAAI,GAAG,EAAEA,GAAGM,KAAK;AAC9C,QAAIV,EAAEU,IAAI,CAAC,MAAM;AACf,aAAO;AACX,SAAO;AACT;AACA,SAAS8hB,GAAGxiB,GAAG,GAAG,GAAGI,GAAGM,GAAG;AACzB,QAAM,IAAI,IAAI;AACd,WAAS,IAAIN,GAAG,IAAIA,IAAI,IAAI,IAAI,GAAG,KAAKM,GAAG,EAAE,GAAG,KAAK;AACnD,QAAIV,EAAE,IAAI,CAAC,MAAM;AACf,aAAO;AACX,SAAO;AACT;AACA,SAASyiB,GAAGziB,GAAG;AACb,QAAM,EAAE,OAAO,GAAG,QAAQ,EAAC,IAAKA,GAAGI,IAAIJ,EAAE,WAAW,MAAM;AAAA,IACxD,oBAAoB;AAAA,EACxB,CAAG;AACD,MAAII,MAAM;AACR,UAAM,IAAI,UAAU,iCAAiC;AACvD,QAAMM,IAAIN,EAAE,aAAa,GAAG,GAAG,GAAG,CAAC,EAAE;AACrC,MAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAGW,IAAI,IAAI;AACrC,SAAO,IAAI,KAAKwhB,GAAG7hB,GAAG,GAAG,CAAC;AACxB,MAAE;AACJ,MAAI,MAAM;AACR,WAAOwhB,GAAG;AACZ,SAAOK,GAAG7hB,GAAG,GAAGK,CAAC;AACf,MAAEA;AACJ,SAAOyhB,GAAG9hB,GAAG,GAAG,GAAG,GAAGK,CAAC;AACrB,MAAE;AACJ,SAAOyhB,GAAG9hB,GAAG,GAAG,GAAG,GAAGK,CAAC;AACrB,MAAE;AACJ,SAAO,EAAE,GAAG,EAAEA,GAAG,IAAImhB,GAAG,GAAG,GAAG,GAAGnhB,CAAC;AACpC;AACA,SAAS2hB,GAAG1iB,GAAG;AACb,QAAM,IAAIyiB,GAAGziB,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQI,EAAG,IAAG;AAC3C,MAAIM,IAAI;AACR,MAAI,CAAC,EAAE,WAAW;AAChB,UAAM,IAAIV,EAAE,WAAW,IAAI;AAC3B,QAAI,MAAM;AACR,YAAM,IAAI,UAAU,iCAAiC;AACvD,IAAAU,IAAI,EAAE;AAAA,MACJ,EAAE;AAAA,MACF,EAAE;AAAA,MACF;AAAA,MACAN;AAAA,IACN;AAAA,EACG;AACD,SAAO,EAAE,OAAO,GAAG,QAAQA,GAAG,MAAMM;AACtC;AACA,SAASiiB,GAAG3iB,GAAG,IAAI,WAAW,UAAU;AACtC,MAAIA,EAAE,WAAW,OAAO;AACtB,WAAO;AACT,MAAI,KAAK,WAAW;AACpB,QAAM,IAAI,IAAI,IAAIA,GAAG,SAAS,OAAO;AACrC,SAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,cAAc;AACrG;AACA,SAAS4iB,GAAG5iB,GAAG,IAAI,GAAG;AACpB,MAAII;AACJ,QAAM8X,KAAK9X,IAAI4S,EAAE,kBAAkB,OAAO,SAAS5S,EAAE,KAAKJ,CAAC;AAC3D,SAAOkY,IAAI,WAAWA,EAAE,CAAC,CAAC,IAAI;AAChC;AACA,IAAI2K,IAAqB,kBAAC7iB,OAAOA,EAAE,WAAW,YAAYA,EAAE,cAAc,eAAeA,EAAE,iBAAiB,yBAAyBA,EAAE,iBAAiB,yBAAyBA,EAAE,uBAAuB,0BAA0BA,EAAE,uBAAuB,0BAA0BA,EAAE,QAAQ,SAASA,EAAE,aAAa,eAAeA,EAAE,gBAAgB,kBAAkBA,EAAE,cAAc,gBAAgBA,EAAE,kBAAkB,oBAAoBA,IAAI6iB,KAAK,CAAA,CAAE;AAC/b,MAAMC,KAAK,CAAC9iB,MAAM;AAChB,MAAI,OAAOA,KAAK,cAAc,OAAOA,KAAK,YAAYA,EAAE,WAAW;AACjE,QAAI,CAACA,EAAE;AACL,YAAM,IAAI,MAAM,+CAA+C;AACjE,IAAAA,IAAI,EAAE,GAAG,OAAOA,EAAE,aAAa,WAAW,EAAE,MAAMA,EAAE,UAAW,IAAGA,EAAE,WAAW,KAAKA,EAAC;AAAA,EACtF;AACD,MAAI,OAAOA,KAAK;AACd,IAAAA,IAAI,EAAE,GAAGA;;AAET,UAAM,IAAI,MAAM,wBAAwB;AAC1C,SAAO,OAAOA,EAAE,QAAQ,aAAaA,EAAE,OAAO,CAACA,EAAE,IAAI,IAAIA;AAC3D,GAAG+iB,KAAK,CAAC/iB,GAAG,MAAM8iB,GAAG9iB,CAAC,EAAE,YAAY,GAAGgjB,IAAI;AAAA;AAAA,EAEzC,cAAc,CAAE;AAAA;AAAA,EAEhB,iBAAiB,CAAE;AAAA;AAAA,EAEnB,QAAQ,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,UAAUhjB,GAAG;AACX,WAAOA,EAAE,IAAI8iB,EAAE,EAAE,QAAQ,CAAC,MAAM;AAC9B,QAAE,KAAK,QAAQ,CAAC,MAAM;AACpB,YAAI1iB,GAAGM;AACP,gBAAQA,KAAKN,IAAI,KAAK,iBAAiB,CAAC,MAAM,OAAO,SAASM,EAAE,KAAKN,GAAG,CAAC;AAAA,MACjF,CAAO;AAAA,IACF,CAAA,GAAG;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAOJ,GAAG;AACR,WAAOA,EAAE,IAAI8iB,EAAE,EAAE,QAAQ,CAAC,MAAM;AAC9B,QAAE,KAAK,QAAQ,CAAC,MAAM;AACpB,YAAI3K,GAAGC;AACP,cAAMhY,IAAI,KAAK,cAAcM,IAAI,KAAK;AACtC,QAAAN,EAAE,CAAC,KAAK+X,IAAI/X,EAAE,CAAC,MAAM,QAAQ+X,EAAE,KAAK/X,GAAG,CAAC,KAAKM,EAAE,CAAC,IAAIA,EAAE,CAAC,KAAK,CAAE,IAAG0X,IAAI1X,EAAE,CAAC,MAAM,QAAQ0X,EAAE,KAAK,CAAC;AAAA,MACtG,CAAO;AAAA,IACF,CAAA,GAAG;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAOpY,GAAG,GAAG,GAAG;AACd,QAAIoY;AACJ,UAAMhY,IAAI,KAAK,cAAcM,IAAI,KAAK;AACtC,QAAIN,EAAEJ,CAAC,KAAKU,EAAEV,CAAC;AACb,YAAM,IAAI,MAAM,kBAAkBA,CAAC,wBAAwB;AAC7D,IAAAI,EAAEJ,CAAC,IAAI,GAAGU,EAAEV,CAAC,IAAI;AACjB,UAAMmY,IAAI,KAAK;AACf,WAAOA,EAAEnY,CAAC,OAAOoY,IAAID,EAAEnY,CAAC,MAAM,QAAQoY,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,OAAOD,EAAEnY,CAAC,IAAI;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,YAAYA,GAAG,GAAG;AAChB,WAAO,KAAK;AAAA,MACVA;AAAA,MACA,CAAC,MAAM;AACL,UAAE,SAAS,EAAE,EAAE,IAAI,IAAI,EAAE;AAAA,MAC1B;AAAA,MACD,CAAC,MAAM;AACL,UAAE,QAAQ,OAAO,EAAE,EAAE,IAAI;AAAA,MAC1B;AAAA,IACP;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,aAAaA,GAAG,GAAG,IAAI,IAAI;AACzB,WAAO,KAAK;AAAA,MACVA;AAAA,MACA,CAACI,MAAM;AACL,UAAE,SAASA,EAAE,GAAG,MAAM,EAAE,KAAKA,EAAE,GAAG,GAAG,EAAE,KAAK,CAACM,GAAG,MAAMqiB,GAAG,GAAG,CAAC,IAAIA,GAAGriB,GAAG,CAAC,CAAC;AAAA,MAC1E;AAAA,MACD,CAACN,MAAM;AACL,cAAMM,IAAI,EAAE,QAAQN,EAAE,GAAG;AACzB,QAAAM,MAAM,MAAM,EAAE,OAAOA,GAAG,CAAC;AAAA,MAC1B;AAAA,IACP;AAAA,EACG;AACH;AACA,MAAMuiB,GAAG;AAAA,EACP,YAAY,GAAG;AACb,WAAO,KAAK,WAAW,KAAK,gBAAgB,IAAI,YAAY,CAAC,IAAI,aAAa,aAAa,KAAK,gBAAgB,EAAE,SAAS,KAAK,gBAAgB,GAAG,KAAK,aAAa,IAAI,YAAY,KAAK,aAAa,GAAG,KAAK,cAAc,IAAI,aAAa,KAAK,aAAa;AAAA,EACjQ;AAAA;AAAA,EAED,IAAI,WAAW;AACb,WAAO,KAAK,cAAc,KAAK,YAAY,IAAI,UAAU,KAAK,aAAa,IAAI,KAAK;AAAA,EACrF;AAAA;AAAA,EAED,IAAI,YAAY;AACd,WAAO,KAAK,eAAe,KAAK,aAAa,IAAI,WAAW,KAAK,aAAa,IAAI,KAAK;AAAA,EACxF;AAAA;AAAA,EAED,IAAI,YAAY;AACd,WAAO,KAAK,eAAe,KAAK,aAAa,IAAI,WAAW,KAAK,aAAa,IAAI,KAAK;AAAA,EACxF;AAAA;AAAA,EAED,IAAI,aAAa;AACf,WAAO,KAAK,gBAAgB,KAAK,cAAc,IAAI,YAAY,KAAK,aAAa,IAAI,KAAK;AAAA,EAC3F;AAAA;AAAA,EAED,IAAI,YAAY;AACd,WAAO,KAAK,eAAe,KAAK,aAAa,IAAI,WAAW,KAAK,aAAa,IAAI,KAAK;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,KAAK,GAAG;AACN,WAAO,KAAK,GAAG,CAAC,MAAM;AAAA,EACvB;AAAA;AAAA,EAED,UAAU;AACR,SAAK,gBAAgB,MAAM,KAAK,YAAY,MAAM,KAAK,aAAa,MAAM,KAAK,aAAa,MAAM,KAAK,cAAc,MAAM,KAAK,aAAa,MAAM,KAAK,aAAa,MAAM,KAAK,cAAc;AAAA,EAC/L;AAAA,EACD,OAAO,OAAO,GAAG;AACf,YAAQ,GAAC;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MACT;AACE,cAAM,IAAI,MAAM,GAAG,CAAC,0BAA0B;AAAA,IACjD;AAAA,EACF;AACH;AACA,MAAMC,KAAK;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK;AAAA,CACN;AACD,SAASC,GAAGnjB,GAAG;AACb,MAAI,IAAI;AACR,WAAS,IAAI,GAAG,IAAIA,GAAG,EAAE;AACvB,QAAI,MAAM,KAAK;AAAA,SACV,IAAIA,IAAI,MAAM,KAAK,cAAc,CAAC;AACzC,SAAO;AACT;AACA,SAASojB,GAAGpjB,GAAG,GAAG;AAChB,MAAIA,MAAM;AACR,UAAM,IAAI,MAAM,+DAA+D;AACjF,QAAM,IAAI,EAAE,aAAa,EAAE,eAAe;AAC1C,aAAW;AACT,UAAMI,IAAI8iB,GAAG,QAAQ,eAAeC,GAAGnjB,CAAC,CAAC;AACzC,QAAI,EAAE,aAAa,GAAGI,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,mBAAmB,GAAG,EAAE,cAAc;AACrF,MAAAJ,IAAIA,IAAI,IAAI;AAAA;AAEZ;AAAA,EACH;AACD,SAAOA;AACT;AACA,MAAMqjB,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK;AACnD,MAAMC,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,OAAO,GAAG,KAAK,YAAY5R,EAAE,QAAQ,KAAK,gBAAgB,GAAG,KAAK,QAAQ,IAAI,KAAK,YAAY;AAAA,EACrG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,CAAC,EAAE,KAAK,OAAO,KAAKsR;AAAA,EAC5B;AAAA,EACD,IAAI,MAAM,GAAG;AACX,KAAC,EAAE,KAAK,OAAO,KAAKA,QAAQ,MAAM,KAAK,QAAQ,KAAKA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,UAAU;AACZ,WAAO,CAAC,EAAE,KAAK,OAAO,KAAKC;AAAA,EAC5B;AAAA,EACD,IAAI,QAAQ,GAAG;AACb,KAAC,EAAE,KAAK,OAAO,KAAKA,QAAQ,MAAM,KAAK,QAAQ,KAAKA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,UAAU;AACZ,WAAO,CAAC,EAAE,KAAK,OAAO,KAAKC;AAAA,EAC5B;AAAA,EACD,IAAI,QAAQ,GAAG;AACb,KAAC,EAAE,KAAK,OAAO,KAAKA,QAAQ,MAAM,KAAK,QAAQ,KAAKA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,YAAY;AACd,WAAO,CAAC,EAAE,KAAK,OAAO,KAAKC;AAAA,EAC5B;AAAA,EACD,IAAI,UAAU,GAAG;AACf,KAAC,EAAE,KAAK,OAAO,KAAKA,QAAQ,MAAM,KAAK,QAAQ,KAAKA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,YAAY;AACd,WAAO,CAAC,EAAE,KAAK,OAAO,KAAKE;AAAA,EAC5B;AAAA,EACD,IAAI,UAAU,GAAG;AACf,KAAC,EAAE,KAAK,OAAO,KAAKA,QAAQ,MAAM,KAAK,QAAQ,KAAKA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,qBAAqB;AACvB,WAAO,CAAC,EAAE,KAAK,OAAO,KAAKD;AAAA,EAC5B;AAAA,EACD,IAAI,mBAAmB,GAAG;AACxB,KAAC,EAAE,KAAK,OAAO,KAAKA,QAAQ,MAAM,KAAK,QAAQ,KAAKA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,YAAY;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,UAAU,GAAG;AACf,SAAK,QAAQ,MAAM1R,EAAE,MAAM,KAAK,aAAa;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,gBAAgB;AAClB,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,cAAc,GAAG;AACnB,SAAK,UAAU,CAAC,CAAC,GAAG,KAAK,iBAAiB;AAAA,EAC3C;AAAA,EACD,OAAO,QAAQ;AACb,UAAM,IAAI,IAAI4R;AACd,WAAO,EAAE,YAAY,IAAI,EAAE,QAAQ,IAAI;AAAA,EACxC;AACH;AACAA,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,+BAA+B,KAAK,SAAS,uBAAuB,KAAK,kBAAkB,YAAY,KAAK,OAAO,cAAc,KAAK,SAAS,kBAAkB,KAAK,aAAa;AAC5L;AACA,MAAMC,KAAK,CAAA;AACX,SAASC,GAAG7jB,GAAG,GAAG;AAChB,MAAI,CAACA;AACH,WAAO;AACT,MAAI,IAAI;AACR,MAAI,OAAOA,KAAK,UAAU;AACxB,UAAMI,IAAI,yBAAyB,KAAKJ,CAAC;AACzC,IAAAI,MAAM,IAAIA,EAAE,CAAC,EAAE,YAAa;AAAA,EAC7B;AACD,WAASA,IAAIwjB,GAAG,SAAS,GAAGxjB,KAAK,GAAG,EAAEA,GAAG;AACvC,UAAMM,IAAIkjB,GAAGxjB,CAAC;AACd,QAAIM,EAAE,QAAQA,EAAE,KAAKV,GAAG,CAAC;AACvB,aAAO,IAAIU,EAAEV,GAAG,CAAC;AAAA,EACpB;AACD,QAAM,IAAI,MAAM,kDAAkD;AACpE;AACA,MAAM8jB,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,QAAQ,CAAA,GAAI,KAAK,QAAQ,GAAG,KAAK,cAAc;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,KAAK,GAAG,GAAG1jB,GAAGM,GAAG,GAAG,GAAG,GAAGK,GAAG;AAC3B,QAAI,UAAU,SAAS;AACrB,YAAM,IAAI,MAAM,uBAAuB;AACzC,UAAM,EAAE,MAAMC,GAAG,OAAO,EAAC,IAAK;AAC9B,SAAK;AACL,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,IAAI,GAAG;AACnC,QAAE,CAAC,EAAEA,CAAC,EAAE,GAAG,GAAGZ,GAAGM,GAAG,GAAG,GAAG,GAAGK,CAAC;AAChC,WAAO,MAAM,KAAK,SAAS,KAAK,eAAe;AAAA,EAChD;AAAA,EACD,wBAAwB;AACtB,SAAK,cAAc,KAAK,KAAK,MAAM,SAAS,MAAM,KAAK,cAAc,GAAG,KAAK,QAAQ,KAAK,MAAM,MAAM,CAAC;AAAA,EACxG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBD,IAAI,GAAG;AACL,WAAO,EAAE,KAAK,KAAK,MAAM,KAAK,sBAAqB,GAAI,KAAK,OAAO,CAAC,GAAG,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,EAC7F;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,GAAG;AACR,UAAM,IAAI,KAAK,MAAM,QAAQ,CAAC;AAC9B,WAAO,MAAM,OAAO,KAAK,sBAAqB,GAAI,KAAK,MAAM,OAAO,GAAG,CAAC,IAAI;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS,GAAG;AACV,WAAO,KAAK,MAAM,SAAS,CAAC;AAAA,EAC7B;AAAA;AAAA,EAED,YAAY;AACV,WAAO,KAAK,yBAAyB,KAAK,MAAM,SAAS,GAAG;AAAA,EAC7D;AAAA;AAAA,EAED,UAAU;AACR,SAAK,aAAa,KAAK,MAAM,SAAS,GAAG,KAAK,QAAQ;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK,MAAM,WAAW;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,OAAO;AACT,WAAO,KAAK;AAAA,EACb;AACH;AACA,OAAO,iBAAiB+iB,GAAG,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpC,UAAU,EAAE,OAAOA,GAAG,UAAU,KAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,KAAK,EAAE,OAAOA,GAAG,UAAU,KAAM;AACnC,CAAC;AACD,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,IAAI,GAAG,IAAI,GAAG;AACxB,SAAK,SAAS,GAAG,KAAK,UAAU,GAAG,KAAK,YAAY,IAAI,KAAK,WAAW,IAAI,KAAK,WAAW,IAAID,GAAG,aAAa,GAAG,KAAK,WAAW,IAAIA,GAAG,QAAQ,GAAG,KAAK,UAAU,IAAIA,GAAG,SAAS;AAAA,EACrL;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,SAAK,SAAS,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,KAAK,UAAU,KAAK,YAAY,KAAK,SAAS,KAAK,KAAK,QAAQ,KAAK,OAAO;AAAA,EAC/I;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,GAAG;AACR,SAAK,SAAS,OAAO,CAAC,GAAG,KAAK,SAAS,OAAO,CAAC,GAAG,KAAK,QAAQ,OAAO,CAAC;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG,GAAG;AACX,KAAC,MAAM,KAAK,UAAU,MAAM,KAAK,aAAa,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,KAAK,SAAS,KAAK,GAAG,CAAC;AAAA,EACzG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,KAAK;AAAA,EAChC;AAAA;AAAA,EAED,SAAS;AACP,SAAK,aAAa,KAAK,SAAS,KAAI;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,OAAO;AACL,WAAO,QAAQ,QAAQ,IAAI;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,MAAM,GAAG,GAAG1jB,GAAG;AACb,WAAO;AAAA,EACR;AAAA;AAAA,EAED,UAAU;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,UAAU;AACR,SAAK,cAAc,KAAK,YAAY,IAAI,KAAK,QAAO,GAAI,KAAK,QAAQ,UAAW,GAAE,KAAK,UAAU,MAAM,KAAK,SAAS,UAAW,GAAE,KAAK,WAAW,MAAM,KAAK,SAAS,UAAW,GAAE,KAAK,WAAW;AAAA,EACpM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,KAAK,GAAG,GAAG;AAChB,WAAO;AAAA,EACR;AACH;AACA,MAAM4jB,WAAWD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlB,YAAY,GAAG,GAAG;AAChB,UAAM,EAAE,OAAO3jB,GAAG,QAAQM,EAAG,IAAG,KAAK;AACrC,QAAI,CAACN,KAAK,CAACM;AACT,YAAM,IAAI,MAAM,wCAAwC;AAC1D,UAAMN,GAAGM,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,kBAAkB,EAAE,mBAAmB;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,GAAG,GAAGN,GAAG;AACd,UAAMM,IAAI,EAAE;AACZ,IAAAA,EAAE,YAAYA,EAAE,kBAAkB,KAAK,eAAe,GAAGA,EAAE,YAAYA,EAAE,gCAAgC,EAAE,cAAc8R,GAAG,MAAM;AAClI,UAAM,IAAI,EAAE,WAAW,IAAI,EAAE;AAC7B,WAAOpS,EAAE,UAAU,KAAKA,EAAE,WAAW,IAAIM,EAAE;AAAA,MACzC,EAAE;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,EAAE;AAAA,MACFN,EAAE;AAAA,MACF,KAAK;AAAA,IACX,KAASA,EAAE,QAAQ,GAAGA,EAAE,SAAS,GAAGM,EAAE;AAAA,MAChC,EAAE;AAAA,MACF;AAAA,MACAN,EAAE;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA,EAAE;AAAA,MACFA,EAAE;AAAA,MACF,KAAK;AAAA,IACX,IAAQ;AAAA,EACL;AAAA;AAAA,EAED,UAAU;AACR,SAAK,OAAO;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,KAAK,GAAG;AACb,WAAO,MAAM,QAAQ,aAAa,aAAa,aAAa,cAAc,aAAa,qBAAqB,aAAa,cAAc,aAAa,eAAe,aAAa,cAAc,aAAa,eAAe,aAAa;AAAA,EACxO;AACH;AACA,MAAM6jB,KAAK;AAAA,EACT,WAAW5R,GAAG;AAAA,EACd,WAAWG,GAAG;AAChB,GAAG0R,KAAK,MAAMC,WAAWlP,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoB1B,YAAY,IAAI,MAAM,IAAI,MAAM;AAC9B,UAAO,GAAE,IAAI,OAAO,OAAO,CAAA,GAAIkP,GAAG,gBAAgB,CAAC;AACnD,UAAM;AAAA,MACJ,WAAW/jB;AAAA,MACX,QAAQM;AAAA,MACR,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQK;AAAA,MACR,UAAUC;AAAA,MACV,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,YAAYC;AAAA,MACZ,iBAAiBC;AAAA,IAClB,IAAG;AACJ,SAAK,EAAE,aAAa6iB,QAAQ,IAAIF,GAAG,GAAG3iB,CAAC,GAAG,EAAE,WAAW,KAAK,KAAK,aAAaD,KAAK+R,EAAE,YAAY,KAAK,QAAQ,KAAK,OAAO,KAAK,KAAK,KAAK,UAAU,IAAI,KAAK,YAAY,KAAK,SAAS,KAAK,OAAOjS,KAAK,KAAK,KAAK,UAAU,IAAI,KAAK,YAAY,KAAK,UAAUL,GAAG,KAAK,mBAAmB,GAAG,KAAK,YAAYM,GAAG,KAAK,aAAa,GAAG,KAAK,SAAS,GAAG,KAAK,OAAO,GAAG,KAAK,SAAS,GAAG,KAAK,YAAYZ,GAAG,KAAK,MAAM4hB,GAAI,GAAE,KAAK,UAAU,GAAG,KAAK,eAAe,IAAI,KAAK,YAAW,GAAI,KAAK,cAAc,CAAA,GAAI,KAAK,UAAU,GAAG,KAAK,eAAe,GAAG,KAAK,UAAU,MAAM,KAAK,QAAQ,IAAI,KAAKjhB,IAAI,GAAG,KAAK,kBAAkB,CAAA,GAAI,KAAK,YAAY,IAAI,KAAK,WAAW,MAAM,KAAK,gBAAgB,GAAG,KAAK,iBAAiB,GAAG,KAAK,qBAAqB,MAAM,KAAK,YAAY,CAAC;AAAA,EACtvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,YAAY;AACd,WAAO,KAAK,MAAM,KAAK,QAAQ,KAAK,UAAU;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,aAAa;AACf,WAAO,KAAK,MAAM,KAAK,SAAS,KAAK,UAAU;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,SAAK,YAAY,MAAM,KAAK,UAAU,GAAG,KAAK;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,YAAY;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,UAAU,GAAG;AACf,SAAK,eAAe,MAAM,KAAK,aAAa,GAAG,KAAK;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,WAAW;AACb,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,SAAS,GAAG;AACd,SAAK,cAAc,MAAM,KAAK,YAAY,GAAG,KAAK;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS,GAAG,GAAG;AACb,QAAIX;AACJ,WAAO,MAAM,UAAU,MAAM,KAAK,cAAc,KAAK,YAAY,GAAGA,IAAI,KAAK,MAAM,UAAU,MAAM,KAAK,WAAW,KAAK,SAAS,GAAGA,IAAI,KAAKA,KAAK,KAAK,gBAAgB;AAAA,EACxK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,QAAQ,GAAG,GAAGA,GAAG;AACf,WAAOA,IAAIA,KAAK,KAAK,YAAY,KAAK,YAAY,IAAIA,GAAG,IAAIA,GAAGA,CAAC;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,YAAY,GAAG,GAAGA,GAAG;AACnB,WAAO,KAAK,aAAaA,KAAK,KAAK,YAAY,KAAK,QAAQ,KAAK,MAAM,CAAC,IAAI,KAAK,YAAY,KAAK,SAAS,KAAK,MAAM,CAAC,IAAI,KAAK,YAAY,KAAK,YAAW,GAAI,KAAK,OAAM,GAAI;AAAA,EAChL;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc;AACZ,SAAK,eAAeuhB,GAAG,KAAK,SAAS,KAAKA,GAAG,KAAK,UAAU;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG;AACf,UAAM,IAAI,KAAK;AACf,WAAO,MAAM,IAAI,QAAQ,KAAK,aAAa,GAAG,KAAK,UAAU,KAAK,QAAQ,KAAK,MAAM,KAAK,QAAQ,CAAC,IAAI,GAAG,KAAK,SAAS,KAAK,MAAM,KAAK,SAAS,CAAC,IAAI,GAAG,KAAK,KAAK,UAAU,IAAI,IAAI,KAAK,YAAW,GAAI;AAAA,EAC1M;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,YAAY,GAAG;AACb,QAAI,KAAK,aAAa;AACpB,aAAO;AACT,QAAI,KAAK;AACP,YAAM,IAAI,MAAM,+BAA+B;AACjD,WAAO,EAAE,KAAK,IAAI,GAAG,KAAK,WAAW,GAAG;AAAA,EACzC;AAAA;AAAA,EAED,SAAS;AACP,SAAK,SAAS,KAAK,WAAW,KAAK,gBAAgB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,MAAM,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU,IAAI,GAAG,KAAK,KAAK,UAAU,IAAI;AAAA,EAC3L;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,GAAG;AACT,SAAK,KAAK,SAAS,MAAM,CAAC;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,UAAU;AACR,SAAK,aAAa,KAAK,SAAS,OAAO,IAAI,GAAG,KAAK,SAAS,YAAY,KAAK,SAAS,QAAO,GAAI,KAAK,WAAW,OAAO,KAAK,YAAY,OAAOU,GAAG,KAAK,OAAO,GAAG,OAAOD,GAAG,KAAK,OAAO,GAAG,KAAK,UAAU,OAAO,KAAK,QAAQ,IAAI,KAAK,QAAS,GAAE+B,GAAG,gBAAgB,IAAI,GAAG,KAAK,kBAAkB,MAAM,KAAK,YAAY,IAAI,KAAK,KAAK,aAAa,IAAI,GAAG,KAAK,mBAAkB;AAAA,EACpX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,UAAU;AACR,SAAK,KAAK,WAAW,IAAI;AAAA,EAC1B;AAAA;AAAA,EAED,oBAAoB;AAClB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcD,OAAO,KAAK,GAAG,GAAG/jB,IAAI4S,EAAE,sBAAsB;AAC5C,UAAMtS,IAAI,OAAO,KAAK;AACtB,QAAI,IAAI;AACR,QAAIA;AACF,UAAI;AAAA,SACD;AACH,UAAI,CAAC,EAAE,SAAS;AACd,cAAM,KAAK,KAAK,OAAO,SAAS,EAAE,iBAAiB;AACnD,UAAE,UAAU,GAAG,CAAC,IAAIshB,GAAI,CAAA;AAAA,MACzB;AACD,UAAI,EAAE;AAAA,IACP;AACD,QAAI,IAAIK,GAAG,CAAC;AACZ,QAAI3hB,KAAKN,KAAK,CAAC;AACb,YAAM,IAAI,MAAM,gBAAgB,CAAC,uCAAuC;AAC1E,WAAO,MAAM,IAAI,IAAI+jB,GAAG,GAAG,CAAC,GAAG,EAAE,UAAU,GAAGA,GAAG,WAAW,GAAG,CAAC,IAAI;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBD,OAAO,WAAW,GAAG,GAAG/jB,GAAGM,GAAG;AAC5B,QAAI,KAAK,IAAI,aAAa,IAAIN,IAAI,CAAC;AACnC,UAAM,IAAI,IAAI4jB,GAAG,GAAG,EAAE,OAAO,GAAG,QAAQ5jB,GAAG,GAAGM,KAAK,OAAO,SAASA,EAAE,gBAAe,CAAE;AACtF,QAAI,GAAG;AACP,WAAO,aAAa,gBAAgB,IAAIuR,EAAE,MAAM,IAAIE,EAAE,SAAS,aAAa,cAAc,IAAIF,EAAE,cAAc,IAAIE,EAAE,OAAO,aAAa,eAAe,IAAIF,EAAE,cAAc,IAAIE,EAAE,gBAAgB,aAAa,cAAc,IAAIF,EAAE,cAAc,IAAIE,EAAE,SAAS,aAAa,eAAe,IAAIF,EAAE,cAAc,IAAIE,EAAE,kBAAkB,aAAa,aAAa,IAAIF,EAAE,MAAM,IAAIE,EAAE,SAAS,IAAIF,EAAE,MAAM,IAAIE,EAAE,gBAAgB,EAAE,WAAW,IAAI,IAAIgS,GAAG,GAAG,OAAO,OAAO,CAAE,GAAEF,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAG,GAAEvjB,CAAC,CAAC;AAAA,EAC1e;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,WAAW,GAAG,GAAG;AACtB,UAAM,EAAE,gBAAgB,SAAS,CAAC,KAAK,EAAE,gBAAgB,KAAK,CAAC,GAAG2hB,GAAG,CAAC,KAAKA,GAAG,CAAC,MAAM,KAAK,QAAQ,KAAK,8CAA8C,CAAC,6BAA6B,GAAGA,GAAG,CAAC,IAAI;AAAA,EAC/L;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,gBAAgB,GAAG;AACxB,QAAI,OAAO,KAAK,UAAU;AACxB,YAAM,IAAIA,GAAG,CAAC;AACd,UAAI,GAAG;AACL,cAAMjiB,IAAI,EAAE,gBAAgB,QAAQ,CAAC;AACrC,eAAOA,IAAI,MAAM,EAAE,gBAAgB,OAAOA,GAAG,CAAC,GAAG,OAAOiiB,GAAG,CAAC,GAAG;AAAA,MAChE;AAAA,IACF,WAAU,KAAK,QAAQ,EAAE,iBAAiB;AACzC,eAAS,IAAI,GAAG,IAAI,EAAE,gBAAgB,QAAQ,EAAE;AAC9C,eAAOA,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAChC,aAAO,EAAE,gBAAgB,SAAS,GAAG;AAAA,IACtC;AACD,WAAO;AAAA,EACR;AACH;AACA6B,GAAG,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlB,QAAQ3R,GAAG;AAAA;AAAA,EAEX,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlB,WAAWF,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMd,UAAUC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMb,WAAWE,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMd,QAAQN,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMX,QAAQD,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,MAAME,EAAE;AACV;AACA+R,GAAG,eAAe;AAClB,IAAIE,IAAKF;AACT,MAAMG,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,WAAW,MAAM,KAAK,QAAQ,GAAG,KAAK,OAAOrS,GAAG,WAAW,KAAK,QAAQ,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO;AAAA,EAC5G;AACH;AACA,IAAIsS,KAAK;AACT,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,YAAY,GAAG,IAAI,IAAInkB,IAAI,IAAI;AAC7B,SAAK,OAAO,KAAK,IAAI,aAAa,CAAC,GAAG,KAAK,aAAa,CAAA,GAAI,KAAK,YAAY,GAAG,KAAK,QAAQA,GAAG,KAAK,SAAS,GAAG,KAAK,KAAKkkB,MAAM,KAAK,gBAAgB,IAAIR,GAAG,eAAe;AAAA,EAC7K;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,iBAAa,UAAU,IAAI,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,KAAK,KAAK,MAAM,KAAK;AAAA,EACnF;AAAA;AAAA,EAED,UAAU;AACR,SAAK,cAAc,KAAK,MAAM,EAAE;AAAA,EACjC;AAAA;AAAA,EAED,UAAU;AACR,SAAK,QAAS,GAAE,KAAK,OAAO;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,IAAI,MAAM,GAAG;AACX,SAAK,OAAO,IAAIhR,GAAG,uBAAuBA,GAAG;AAAA,EAC9C;AAAA,EACD,IAAI,QAAQ;AACV,WAAO,KAAK,SAASA,GAAG;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,KAAK,GAAG;AACb,WAAO,aAAa,UAAU,IAAI,IAAI,aAAa,CAAC,IAAI,IAAIyR,GAAG,CAAC;AAAA,EACjE;AACH;AACA,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWP,YAAY,GAAG,IAAI,GAAGpkB,IAAI,IAAIM,IAAIyR,EAAE,OAAO,GAAG,GAAG,GAAGpR,IAAI,GAAG;AACzD,SAAK,SAAS,GAAG,KAAK,OAAO,GAAG,KAAK,aAAaX,GAAG,KAAK,OAAOM,GAAG,KAAK,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,WAAW,GAAG,KAAK,UAAUK;AAAA,EACxI;AAAA;AAAA,EAED,UAAU;AACR,SAAK,SAAS;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,OAAO,KAAK,GAAG,GAAGX,GAAGM,GAAG,GAAG;AACzB,WAAO,IAAI8jB,GAAG,GAAG,GAAGpkB,GAAGM,GAAG,CAAC;AAAA,EAC5B;AACH;AACA,MAAM+jB,KAAK;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,SAASC,GAAG1kB,GAAG,GAAG;AAChB,MAAI,IAAI,GAAGI,IAAI;AACf,QAAMM,IAAI,CAAA;AACV,WAASK,IAAI,GAAGA,IAAIf,EAAE,QAAQe;AAC5B,IAAAX,KAAK,EAAEW,CAAC,GAAG,KAAKf,EAAEe,CAAC,EAAE;AACvB,QAAM,IAAI,IAAI,YAAY,IAAI,CAAC;AAC/B,MAAI,IAAI,MAAM,IAAI;AAClB,WAASA,IAAI,GAAGA,IAAIf,EAAE,QAAQe,KAAK;AACjC,UAAMC,IAAI,EAAED,CAAC,GAAG,IAAIf,EAAEe,CAAC,GAAG,IAAI0gB,GAAG,CAAC;AAClC,IAAA/gB,EAAE,CAAC,MAAMA,EAAE,CAAC,IAAI,IAAI+jB,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI/jB,EAAE,CAAC;AACtC,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,YAAMO,KAAK,IAAID,IAAI,KAAKZ,IAAI,GAAGc,IAAI,IAAIF;AACvC,QAAEC,IAAIC,CAAC,IAAI,EAAE,CAAC;AAAA,IACf;AACD,SAAKF;AAAA,EACN;AACD,SAAO,IAAI,aAAa,CAAC;AAC3B;AACA,MAAM2jB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;AACrC,IAAIC,KAAK;AACT,MAAMC,KAAK;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,IAAI,IAAI,IAAI,CAAA,GAAI;AAC1B,SAAK,UAAU,GAAG,KAAK,cAAc,MAAM,KAAK,aAAa,GAAG,KAAK,uBAAuB,CAAA,GAAI,KAAK,KAAKF,MAAM,KAAK,YAAY,IAAI,KAAK,gBAAgB,GAAG,KAAK,gBAAgB,IAAId,GAAG,iBAAiB,GAAG,KAAK,WAAW;AAAA,EAC9N;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeD,aAAa,GAAG,GAAG1jB,IAAI,GAAGM,IAAI,IAAI,GAAG,GAAG,GAAGK,IAAI,IAAI;AACjD,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mDAAmD;AACrE,iBAAawjB,OAAO,aAAa,UAAU,IAAI,IAAI,aAAa,CAAC,IAAI,IAAI,IAAIA,GAAG,CAAC;AACjF,UAAMvjB,IAAI,EAAE,MAAM,GAAG;AACrB,QAAIA,EAAE,SAAS,GAAG;AAChB,eAAS,IAAI,GAAG,IAAIA,EAAE,QAAQ;AAC5B,aAAK,aAAaA,EAAE,CAAC,GAAG,GAAGZ,GAAGM,GAAG,CAAC;AACpC,aAAO;AAAA,IACR;AACD,QAAI,IAAI,KAAK,QAAQ,QAAQ,CAAC;AAC9B,WAAO,MAAM,OAAO,KAAK,QAAQ,KAAK,CAAC,GAAG,IAAI,KAAK,QAAQ,SAAS,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI8jB,GAAG,GAAGpkB,GAAGM,GAAG,GAAG,GAAG,GAAGK,CAAC,GAAG,KAAK,YAAY,KAAK,aAAaA,GAAG;AAAA,EACjK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,aAAa,GAAG;AACd,WAAO,KAAK,WAAW,CAAC;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,UAAU,GAAG;AACX,WAAO,KAAK,QAAQ,KAAK,aAAa,CAAC,EAAE,MAAM;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,SAAS,GAAG;AACV,WAAO,aAAawjB,OAAO,aAAa,UAAU,IAAI,IAAI,YAAY,CAAC,IAAI,IAAI,IAAIA,GAAG,CAAC,IAAI,EAAE,OAAOzR,GAAG,sBAAsB,KAAK,cAAc,GAAG,KAAK,QAAQ,SAAS,CAAC,KAAK,KAAK,QAAQ,KAAK,CAAC,GAAG;AAAA,EACtM;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW;AACT,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,aAAa;AACX,QAAI,KAAK,QAAQ,WAAW,KAAK,KAAK,QAAQ,WAAW,KAAK,KAAK;AACjE,aAAO;AACT,UAAM,IAAI,CAAA,GAAI,IAAI,CAAE,GAAE1S,IAAI,IAAImkB;AAC9B,QAAI7jB;AACJ,SAAKA,KAAK,KAAK,YAAY;AACzB,YAAM,IAAI,KAAK,WAAWA,CAAC,GAAG,IAAI,KAAK,QAAQ,EAAE,MAAM;AACvD,QAAE,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,OAAOikB,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,SAAS;AAAA,IAC7D;AACD,SAAKvkB,EAAE,OAAOskB,GAAG,GAAG,CAAC,GAAGhkB,IAAI,GAAGA,IAAI,KAAK,QAAQ,QAAQA;AACtD,WAAK,QAAQA,CAAC,MAAM,KAAK,eAAe,KAAK,QAAQA,CAAC,EAAE;AAC1D,WAAO,KAAK,UAAU,CAACN,CAAC,GAAG,KAAK,eAAe,KAAK,QAAQ,KAAK,KAAK,WAAW,GAAG;AAAA,EACrF;AAAA;AAAA,EAED,UAAU;AACR,eAAW,KAAK,KAAK,YAAY;AAC/B,YAAM,IAAI,KAAK,WAAW,CAAC;AAC3B,aAAO,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,SAAS,KAAK,EAAE;AAAA,IAChE;AACD,WAAO;AAAA,EACR;AAAA;AAAA,EAED,UAAU;AACR,SAAK,cAAc,KAAK,MAAM,EAAE;AAAA,EACjC;AAAA;AAAA,EAED,UAAU;AACR,SAAK,QAAO,GAAI,KAAK,UAAU,MAAM,KAAK,cAAc,MAAM,KAAK,aAAa;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,UAAM,IAAI,IAAI0kB;AACd,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,QAAQ;AACvC,QAAE,QAAQ,CAAC,IAAI,IAAIP,GAAG,KAAK,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;AACrD,eAAW,KAAK,KAAK,YAAY;AAC/B,YAAMnkB,IAAI,KAAK,WAAW,CAAC;AAC3B,QAAE,WAAW,CAAC,IAAI,IAAIokB;AAAA,QACpBpkB,EAAE;AAAA,QACFA,EAAE;AAAA,QACFA,EAAE;AAAA,QACFA,EAAE;AAAA,QACFA,EAAE;AAAA,QACFA,EAAE;AAAA,QACFA,EAAE;AAAA,MACV;AAAA,IACK;AACD,WAAO,KAAK,gBAAgB,EAAE,cAAc,EAAE,QAAQ,KAAK,QAAQ,QAAQ,KAAK,WAAW,CAAC,GAAG,EAAE,YAAY,OAAO0S,GAAG,uBAAuB;AAAA,EAC/I;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,MAAM,GAAG;AACd,UAAM,IAAI,IAAIgS,GAAE,GAAI1kB,IAAI,CAAE,GAAEM,IAAI,CAAA,GAAI,IAAI;AACxC,QAAI;AACJ,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,UAAI,EAAE,CAAC;AACP,eAASK,IAAI,GAAGA,IAAI,EAAE,QAAQ,QAAQA;AACpC,QAAAL,EAAEK,CAAC,IAAIL,EAAEK,CAAC,KAAK,GAAGL,EAAEK,CAAC,KAAK,EAAE,QAAQA,CAAC,EAAE,KAAK,QAAQ,EAAEA,CAAC,IAAI;AAAA,IAC9D;AACD,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,QAAQ;AACpC,MAAAX,EAAE,CAAC,IAAI,IAAIykB,GAAGpD,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE/gB,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI6jB,GAAGnkB,EAAE,CAAC,CAAC;AACxE,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,UAAI,EAAE,CAAC;AACP,eAASW,IAAI,GAAGA,IAAI,EAAE,QAAQ,QAAQA;AACpC,QAAAX,EAAEW,CAAC,EAAE,IAAI,EAAE,QAAQA,CAAC,EAAE,MAAM,EAAEA,CAAC,CAAC,GAAG,EAAEA,CAAC,KAAK,EAAE,QAAQA,CAAC,EAAE,KAAK;AAAA,IAChE;AACD,QAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa;AAC9C,QAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,YAAY,OAAO+R,GAAG;AACrF,UAAI,IAAI,GAAG/R,IAAI,GAAGC,IAAI,GAAG,IAAI;AAC7B,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,QAAQ;AACpC,YAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,aAAa;AAClC,cAAI;AACJ;AAAA,QACD;AACH,iBAAW,KAAK,EAAE,YAAY;AAC5B,cAAM,IAAI,EAAE,WAAW,CAAC;AACxB,SAAC,EAAE,SAAS,OAAO,MAAMD,KAAK,EAAE,OAAO4jB,GAAG,EAAE,IAAI,IAAI;AAAA,MACrD;AACD,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,cAAM,IAAI,EAAE,CAAC,EAAE,YAAY;AAC3B,iBAAS1jB,IAAI,GAAGA,IAAI,EAAE,QAAQA;AAC5B,YAAE,YAAY,KAAKA,IAAID,CAAC,KAAK;AAC/B,aAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,SAASD,GAAGC,KAAK,EAAE;AAAA,MAC9C;AAAA,IACF;AACD,WAAO;AAAA,EACR;AACH;AACA,MAAM+jB,WAAWD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,YAAY,IAAI,IAAI;AAClB,UAAO,GAAE,KAAK,UAAU,IAAIP,GAAG,MAAM,GAAG,EAAE,GAAG,KAAK,eAAe,IAAIA,GAAG,MAAM,GAAG,EAAE,GAAG,KAAK,aAAa,mBAAmB,KAAK,SAAS,GAAG,IAAIpS,EAAE,KAAK,EAAE,aAAa,iBAAiB,KAAK,SAAS,GAAG,IAAIA,EAAE,KAAK,EAAE,aAAa,UAAU,KAAK,SAAS,GAAG,IAAIA,EAAE,aAAa,EAAE,aAAa,cAAc,KAAK,SAAS,GAAG,IAAIA,EAAE,KAAK,EAAE,SAAS,KAAK,YAAY;AAAA,EACtW;AACH;AACA,MAAM6S,KAAK,KAAK,KAAK,GAAGC,KAAK,MAAM,KAAK,IAAIC,KAAK,KAAK,KAAK;AAC3D,IAAIC,KAAsB,kBAACnlB,OAAOA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,IAAImlB,MAAM,CAAA,CAAE;AACtK,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,YAAY,IAAI,GAAG,IAAI,GAAG;AACxB,SAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,WAAO,IAAIA,GAAG,KAAK,GAAG,KAAK,CAAC;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS,GAAG;AACV,WAAO,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,WAAO,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,WAAO,EAAE,MAAM,KAAK,KAAK,EAAE,MAAM,KAAK;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,IAAI,IAAI,GAAG,IAAI,GAAG;AAChB,WAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG;AAAA,EAChC;AACH;AACAA,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,uBAAuB,KAAK,CAAC,MAAM,KAAK,CAAC;AAClD;AACA,MAAMC,KAAK,CAAC,IAAID,GAAE,GAAI,IAAIA,MAAM,IAAIA,GAAI,GAAE,IAAIA,GAAE,CAAE;AAClD,MAAME,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOP,YAAY,IAAI,GAAG,IAAI,GAAGllB,IAAI,GAAGM,IAAI,GAAG;AACtC,SAAK,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,OAAON,CAAC,GAAG,KAAK,SAAS,OAAOM,CAAC,GAAG,KAAK,OAAOykB,GAAG;AAAA,EACzG;AAAA;AAAA,EAED,IAAI,OAAO;AACT,WAAO,KAAK;AAAA,EACb;AAAA;AAAA,EAED,IAAI,QAAQ;AACV,WAAO,KAAK,IAAI,KAAK;AAAA,EACtB;AAAA;AAAA,EAED,IAAI,MAAM;AACR,WAAO,KAAK;AAAA,EACb;AAAA;AAAA,EAED,IAAI,SAAS;AACX,WAAO,KAAK,IAAI,KAAK;AAAA,EACtB;AAAA;AAAA,EAED,WAAW,QAAQ;AACjB,WAAO,IAAIG,EAAG,GAAG,GAAG,GAAG,CAAC;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,WAAO,IAAIA,EAAG,KAAK,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,MAAM;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS,GAAG;AACV,WAAO,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,QAAQ,EAAE,OAAO,KAAK,SAAS,EAAE,QAAQ;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,WAAO,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,QAAQ,KAAK,OAAO,EAAE,SAAS,KAAK,QAAQ;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS,GAAG,GAAG;AACb,WAAO,KAAK,SAAS,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,SAAS,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK;AAAA,EAC9H;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,WAAW,GAAG,GAAG;AACf,QAAI,CAAC,GAAG;AACN,YAAM,IAAI,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK;AACpC,WAAK,KAAK,QAAQ,EAAE,QAAQ,EAAE,QAAQ,KAAK,UAAU;AACnD,eAAO;AACT,YAAMpd,IAAI,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK;AACpC,cAAQ,KAAK,SAAS,EAAE,SAAS,EAAE,SAAS,KAAK,UAAUA;AAAA,IAC5D;AACD,UAAM9H,IAAI,KAAK,MAAMM,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI,KAAK;AAC5D,QAAIA,KAAKN,KAAK,KAAK;AACjB,aAAO;AACT,UAAM,IAAIilB,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAGtkB,IAAIskB,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAGrkB,IAAIqkB,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,IAAIA,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM;AACnI,QAAIrkB,EAAE,KAAK,EAAE,KAAKD,EAAE,KAAK,EAAE;AACzB,aAAO;AACT,UAAM,IAAI,KAAK,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzC,QAAI,MAAM,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAMA,GAAGA,CAAC,GAAG,EAAE,MAAMC,GAAGA,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE,GAAGD,EAAE,GAAGC,EAAE,GAAG,EAAE,CAAC,KAAKZ,KAAK,KAAK,IAAI,EAAE,GAAGW,EAAE,GAAGC,EAAE,GAAG,EAAE,CAAC,KAAKN,KAAK,KAAK,IAAI,EAAE,GAAGK,EAAE,GAAGC,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,GAAGD,EAAE,GAAGC,EAAE,GAAG,EAAE,CAAC,KAAK;AACzN,aAAO;AACT,UAAM,IAAI,KAAKD,EAAE,IAAI,EAAE,IAAIE,IAAI,KAAK,EAAE,IAAIF,EAAE,IAAIG,IAAI,IAAId,IAAIa,IAAI,GAAG,IAAI,IAAIP,IAAIO,IAAI,GAAGK,IAAI,IAAIlB,IAAIa,IAAI,GAAGO,IAAI,IAAId,IAAIO,IAAI;AACzH,QAAI,KAAK,IAAIC,GAAG,GAAGI,GAAGE,CAAC,KAAK,IAAI,EAAE,IAAIP,IAAI,EAAE,KAAK,KAAK,IAAIC,GAAG,GAAGI,GAAGE,CAAC,KAAK,IAAI,EAAE,IAAIP,IAAI,EAAE;AACvF,aAAO;AACT,UAAM,IAAI,KAAK,EAAE,IAAID,EAAE,IAAI,IAAI,KAAKA,EAAE,IAAI,EAAE,IAAI,IAAI,IAAIZ,IAAI,IAAI,GAAGqB,IAAI,IAAIf,IAAI,IAAI,GAAGiB,IAAI,IAAIvB,IAAI,IAAI,GAAGsB,IAAI,IAAIhB,IAAI,IAAI;AACzH,WAAO,EAAE,KAAK,IAAI,GAAGe,GAAGE,GAAGD,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,GAAGD,GAAGE,GAAGD,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE;AAAA,EAC/F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,IAAI,IAAI,GAAG,IAAI,GAAG;AAChB,WAAO,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,GAAG;AACL,UAAM,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,GAAGtB,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,OAAO,EAAE,IAAI,EAAE,KAAK,GAAGM,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,EAAE,IAAI,EAAE,MAAM;AAC/J,WAAO,KAAK,IAAI,GAAG,KAAK,QAAQ,KAAK,IAAIN,IAAI,GAAG,CAAC,GAAG,KAAK,IAAIM,GAAG,KAAK,SAAS,KAAK,IAAI,IAAIA,GAAG,CAAC,GAAG;AAAA,EACnG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,KAAK,IAAI,GAAG,IAAI,MAAM;AACpB,UAAMN,IAAI,KAAK,MAAM,KAAK,IAAI,KAAK,QAAQ,KAAK,CAAC,IAAI,GAAGM,IAAI,KAAK,MAAM,KAAK,IAAI,KAAK,SAAS,KAAK,CAAC,IAAI;AACxG,WAAO,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,QAAQN,IAAI,KAAK,GAAG,KAAK,SAASM,IAAI,KAAK,GAAG;AAAA,EACjJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,GAAG;AACT,UAAM,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,GAAGN,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,OAAO,EAAE,IAAI,EAAE,KAAK,GAAGM,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,EAAE,IAAI,EAAE,MAAM;AAC/J,WAAO,KAAK,IAAI,GAAG,KAAK,QAAQN,IAAI,GAAG,KAAK,IAAIM,GAAG,KAAK,SAAS,IAAIA,GAAG;AAAA,EACzE;AACH;AACA4kB,EAAG,UAAU,WAAW,WAAW;AACjC,SAAO,2BAA2B,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,KAAK,KAAK,WAAW,KAAK,MAAM;AAChG;AACA,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,YAAY,IAAI,GAAG,IAAI,GAAGnlB,IAAI,GAAG;AAC/B,SAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,SAASA,GAAG,KAAK,OAAO+kB,GAAG;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,WAAO,IAAII,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS,GAAG,GAAG;AACb,QAAI,KAAK,UAAU;AACjB,aAAO;AACT,UAAMnlB,IAAI,KAAK,SAAS,KAAK;AAC7B,QAAIM,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI;AACjC,WAAOA,KAAKA,GAAG,KAAK,GAAGA,IAAI,KAAKN;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY;AACV,WAAO,IAAIklB,EAAG,KAAK,IAAI,KAAK,QAAQ,KAAK,IAAI,KAAK,QAAQ,KAAK,SAAS,GAAG,KAAK,SAAS,CAAC;AAAA,EAC3F;AACH;AACAC,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,wBAAwB,KAAK,CAAC,MAAM,KAAK,CAAC,WAAW,KAAK,MAAM;AACzE;AACA,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOP,YAAY,IAAI,GAAG,IAAI,GAAGplB,IAAI,GAAGM,IAAI,GAAG;AACtC,SAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,QAAQN,GAAG,KAAK,SAASM,GAAG,KAAK,OAAOykB,GAAG;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,WAAO,IAAIK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,MAAM;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS,GAAG,GAAG;AACb,QAAI,KAAK,SAAS,KAAK,KAAK,UAAU;AACpC,aAAO;AACT,QAAIplB,KAAK,IAAI,KAAK,KAAK,KAAK,OAAOM,KAAK,IAAI,KAAK,KAAK,KAAK;AAC3D,WAAON,KAAKA,GAAGM,KAAKA,GAAGN,IAAIM,KAAK;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY;AACV,WAAO,IAAI4kB,EAAG,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,KAAK,QAAQ,KAAK,OAAO,KAAK,MAAM;AAAA,EACjF;AACH;AACAE,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,yBAAyB,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,KAAK,KAAK,WAAW,KAAK,MAAM;AAC9F;AACA,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP,eAAe,GAAG;AAChB,QAAI,IAAI,MAAM,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI;AACrC,QAAI,OAAO,EAAE,CAAC,KAAK,UAAU;AAC3B,YAAMrlB,IAAI,CAAA;AACV,eAASM,IAAI,GAAG,IAAI,EAAE,QAAQA,IAAI,GAAGA;AACnC,QAAAN,EAAE,KAAK,EAAEM,CAAC,EAAE,GAAG,EAAEA,CAAC,EAAE,CAAC;AACvB,UAAIN;AAAA,IACL;AACD,SAAK,SAAS,GAAG,KAAK,OAAO+kB,GAAG,MAAM,KAAK,cAAc;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,UAAM,IAAI,KAAK,OAAO,MAAO,GAAE,IAAI,IAAIM,GAAG,CAAC;AAC3C,WAAO,EAAE,cAAc,KAAK,aAAa;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS,GAAG,GAAG;AACb,QAAIrlB,IAAI;AACR,UAAMM,IAAI,KAAK,OAAO,SAAS;AAC/B,aAAS,IAAI,GAAG,IAAIA,IAAI,GAAG,IAAIA,GAAG,IAAI,KAAK;AACzC,YAAM,IAAI,KAAK,OAAO,IAAI,CAAC,GAAGK,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAGC,IAAI,KAAK,OAAO,IAAI,CAAC,GAAG,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC;AAC3G,MAAAD,IAAI,KAAK,IAAI,KAAK,KAAKC,IAAI,OAAO,IAAID,MAAM,IAAIA,MAAM,MAAMX,IAAI,CAACA;AAAA,IAClE;AACD,WAAOA;AAAA,EACR;AACH;AACAqlB,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,kCAAkC,KAAK,WAAW,UAAU,KAAK,OAAO,OAAO,CAACzlB,GAAG,MAAM,GAAGA,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACnH;AACA,MAAM0lB,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP,YAAY,IAAI,GAAG,IAAI,GAAGtlB,IAAI,GAAGM,IAAI,GAAG,IAAI,IAAI;AAC9C,SAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,QAAQN,GAAG,KAAK,SAASM,GAAG,KAAK,SAAS,GAAG,KAAK,OAAOykB,GAAG;AAAA,EAC1F;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,WAAO,IAAIO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,MAAM;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS,GAAG,GAAG;AACb,QAAI,KAAK,SAAS,KAAK,KAAK,UAAU;AACpC,aAAO;AACT,QAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,SAAS,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,QAAQ;AACvF,YAAMtlB,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,QAAQ,KAAK,IAAI,KAAK,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC;AAClF,UAAI,KAAK,KAAK,IAAIA,KAAK,KAAK,KAAK,IAAI,KAAK,SAASA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,KAAK,IAAI,KAAK,QAAQA;AACpG,eAAO;AACT,UAAIM,IAAI,KAAK,KAAK,IAAIN,IAAI,IAAI,KAAK,KAAK,IAAIA;AAC5C,YAAM,IAAIA,IAAIA;AACd,UAAIM,IAAIA,IAAI,IAAI,KAAK,MAAMA,IAAI,KAAK,KAAK,IAAI,KAAK,QAAQN,IAAIM,IAAIA,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI,KAAK,SAASN,IAAIM,IAAIA,IAAI,IAAI,KAAK,OAAOA,IAAI,KAAK,KAAK,IAAIN,IAAIM,IAAIA,IAAI,IAAI,KAAK;AACvL,eAAO;AAAA,IACV;AACD,WAAO;AAAA,EACR;AACH;AACAglB,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,kCAAkC,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,KAAK,KAAK,WAAW,KAAK,MAAM,WAAW,KAAK,MAAM;AAC5H;AACA,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASP,YAAY,IAAI,GAAG,IAAI,GAAGvlB,IAAI,GAAGM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG;AACpD,SAAK,QAAQ,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAIN,GAAG,KAAK,IAAIM,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK;AAAA,EAC3F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYD,UAAU,GAAG;AACX,SAAK,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;AAAA,EAC1F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWD,IAAI,GAAG,GAAGN,GAAGM,GAAG,GAAG,GAAG;AACpB,WAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAIN,GAAG,KAAK,IAAIM,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQ,GAAG,GAAG;AACZ,SAAK,UAAU,KAAK,QAAQ,IAAI,aAAa,CAAC;AAC9C,UAAMN,IAAI,KAAK,KAAK;AACpB,WAAO,KAAKA,EAAE,CAAC,IAAI,KAAK,GAAGA,EAAE,CAAC,IAAI,KAAK,GAAGA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAI,KAAK,GAAGA,EAAE,CAAC,IAAI,KAAK,GAAGA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAI,KAAK,IAAIA,EAAE,CAAC,IAAI,KAAK,IAAIA,EAAE,CAAC,IAAI,MAAMA,EAAE,CAAC,IAAI,KAAK,GAAGA,EAAE,CAAC,IAAI,KAAK,GAAGA,EAAE,CAAC,IAAI,KAAK,IAAIA,EAAE,CAAC,IAAI,KAAK,GAAGA,EAAE,CAAC,IAAI,KAAK,GAAGA,EAAE,CAAC,IAAI,KAAK,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAI,IAAIA;AAAA,EACrQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,MAAM,GAAG,GAAG;AACV,QAAI,KAAK,IAAIglB;AACb,UAAMhlB,IAAI,EAAE,GAAGM,IAAI,EAAE;AACrB,WAAO,EAAE,IAAI,KAAK,IAAIN,IAAI,KAAK,IAAIM,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAIN,IAAI,KAAK,IAAIM,IAAI,KAAK,IAAI;AAAA,EAC1F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,aAAa,GAAG,GAAG;AACjB,QAAI,KAAK,IAAI0kB;AACb,UAAMhlB,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,KAAK,IAAIM,IAAI,EAAE,GAAG,IAAI,EAAE;AACnE,WAAO,EAAE,IAAI,KAAK,IAAIN,IAAIM,IAAI,CAAC,KAAK,IAAIN,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAKA,GAAG,EAAE,IAAI,KAAK,IAAIA,IAAI,IAAI,CAAC,KAAK,IAAIA,IAAIM,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAKN,GAAG;AAAA,EACjL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,UAAU,GAAG,GAAG;AACd,WAAO,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,MAAM,GAAG,GAAG;AACV,WAAO,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,UAAM,IAAI,KAAK,IAAI,CAAC,GAAGA,IAAI,KAAK,IAAI,CAAC,GAAGM,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK;AACzE,WAAO,KAAK,IAAIA,IAAI,IAAI,KAAK,IAAIN,GAAG,KAAK,IAAIM,IAAIN,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAIA,GAAG,KAAK,IAAI,IAAIA,IAAI,KAAK,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAKA,GAAG,KAAK,KAAK,IAAIA,IAAI,KAAK,KAAK,GAAG;AAAA,EAC1L;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,UAAM,IAAI,KAAK,GAAGA,IAAI,KAAK,GAAGM,IAAI,KAAK,GAAG,IAAI,KAAK;AACnD,WAAO,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,IAAIA,GAAG,KAAK,IAAI,EAAE,IAAIN,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,IAAIM,GAAG,KAAK,IAAI,EAAE,IAAIN,IAAI,EAAE,IAAI,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,KAAKM,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,KAAKN,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI;AAAA,EAC1M;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcD,aAAa,GAAG,GAAGA,GAAGM,GAAG,GAAG,GAAG,GAAGK,GAAGC,GAAG;AACtC,WAAO,KAAK,IAAI,KAAK,IAAI,IAAIA,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAIA,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,IAAID,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAIA,CAAC,IAAI,GAAG,KAAK,KAAK,KAAKX,IAAI,KAAK,IAAIM,IAAI,KAAK,IAAI,KAAK,KAAK,KAAKN,IAAI,KAAK,IAAIM,IAAI,KAAK,IAAI;AAAA,EACnN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,GAAG;AACT,UAAM,IAAI,KAAK;AACf,QAAI,EAAE,MAAM,KAAK,EAAE,MAAM,KAAK,EAAE,MAAM,KAAK,EAAE,MAAM,GAAG;AACpD,YAAMN,IAAI,KAAK,GAAGM,IAAI,KAAK;AAC3B,WAAK,IAAIN,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,IAAIA,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,IAAIM,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,IAAIA,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE;AAAA,IAClI;AACD,WAAO,KAAK,KAAK,IAAI,EAAE,IAAI,KAAK,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,KAAK,KAAK,EAAE,IAAI,EAAE,IAAI;AAAA,EAC5F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,UAAU,GAAG;AACX,UAAM,IAAI,KAAK,GAAGN,IAAI,KAAK,GAAGM,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,OAAO,IAAI,CAAC,KAAK,MAAM,CAACA,GAAG,CAAC,GAAGK,IAAI,KAAK,MAAMX,GAAG,CAAC,GAAGY,IAAI,KAAK,IAAI,IAAID,CAAC;AACnI,WAAOC,IAAI,QAAQ,KAAK,IAAIgkB,KAAKhkB,CAAC,IAAI,QAAQ,EAAE,WAAWD,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,WAAW,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAIA,IAAI,EAAE,MAAM,IAAI,KAAK,KAAK,IAAI,IAAIX,IAAIA,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,KAAKM,IAAIA,IAAI,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,IAAIA,IAAI,EAAE,SAAS,IAAI,KAAK,MAAM,EAAE,IAAIN,IAAI,EAAE,IAAI,IAAI;AAAA,EAChT;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS;AACP,UAAM,IAAI,KAAK,GAAG,IAAI,KAAK,GAAGA,IAAI,KAAK,GAAGM,IAAI,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,IAAIA,IAAI,IAAIN;AACnF,WAAO,KAAK,IAAIM,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAACN,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAMA,IAAI,KAAK,KAAKM,IAAI,KAAK,GAAG,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,KAAK,GAAG;AAAA,EACrJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW;AACT,WAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,UAAM,IAAI,IAAIilB;AACd,WAAO,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI;AAAA,EAChG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,WAAO,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI;AAAA,EAChG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS,GAAG;AACV,WAAO,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,IAAI;AAAA,EAChG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,WAAW;AACpB,WAAO,IAAIA,GAAE;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,cAAc;AACvB,WAAO,IAAIA,GAAE;AAAA,EACd;AACH;AACAA,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,wBAAwB,KAAK,CAAC,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE;AACvG;AACA,MAAMC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,GAAGC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,GAAGC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,GAAGC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAGC,KAAK,CAAA,GAAIC,KAAK,IAAIC,KAAK,KAAK;AACtR,SAASC,KAAK;AACZ,WAASnmB,IAAI,GAAGA,IAAI,IAAIA,KAAK;AAC3B,UAAM,IAAI,CAAA;AACV,IAAAgmB,GAAG,KAAK,CAAC;AACT,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,YAAM5lB,IAAI8lB,GAAGN,GAAG5lB,CAAC,IAAI4lB,GAAG,CAAC,IAAIE,GAAG9lB,CAAC,IAAI6lB,GAAG,CAAC,CAAC,GAAGnlB,IAAIwlB,GAAGL,GAAG7lB,CAAC,IAAI4lB,GAAG,CAAC,IAAIG,GAAG/lB,CAAC,IAAI6lB,GAAG,CAAC,CAAC,GAAG,IAAIK,GAAGN,GAAG5lB,CAAC,IAAI8lB,GAAG,CAAC,IAAIA,GAAG9lB,CAAC,IAAI+lB,GAAG,CAAC,CAAC,GAAG,IAAIG,GAAGL,GAAG7lB,CAAC,IAAI8lB,GAAG,CAAC,IAAIC,GAAG/lB,CAAC,IAAI+lB,GAAG,CAAC,CAAC;AAC/J,eAAS,IAAI,GAAG,IAAI,IAAI;AACtB,YAAIH,GAAG,CAAC,MAAMxlB,KAAKylB,GAAG,CAAC,MAAMnlB,KAAKolB,GAAG,CAAC,MAAM,KAAKC,GAAG,CAAC,MAAM,GAAG;AAC5D,YAAE,KAAK,CAAC;AACR;AAAA,QACD;AAAA,IACJ;AAAA,EACF;AACD,WAAS/lB,IAAI,GAAGA,IAAI,IAAIA,KAAK;AAC3B,UAAM,IAAI,IAAI2lB;AACd,MAAE,IAAIC,GAAG5lB,CAAC,GAAG6lB,GAAG7lB,CAAC,GAAG8lB,GAAG9lB,CAAC,GAAG+lB,GAAG/lB,CAAC,GAAG,GAAG,CAAC,GAAGimB,GAAG,KAAK,CAAC;AAAA,EACnD;AACH;AACAE;AACA,MAAMC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOH,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOJ,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOH,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOJ,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOH,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOJ,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOH,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,EAKJ,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,EAKf,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlB,IAAI,CAACpmB,MAAM4lB,GAAG5lB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf,IAAI,CAACA,MAAM6lB,GAAG7lB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf,IAAI,CAACA,MAAM8lB,GAAG9lB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf,IAAI,CAACA,MAAM+lB,GAAG/lB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOf,KAAK,CAACA,MAAMA,IAAI,IAAIA,IAAI,KAAK,CAACA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBlC,KAAK,CAACA,GAAG,MAAMgmB,GAAGhmB,CAAC,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtB,KAAK,CAACA,GAAG,MAAMgmB,GAAGhmB,CAAC,EAAEomB,GAAG,IAAI,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO9B,WAAW,CAACpmB,MAAMA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtB,YAAY,CAACA,OAAOA,IAAI,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU/B,aAAa,CAACA,GAAG,MAAM,KAAK,IAAIA,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAIomB,GAAG,IAAIA,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,IAAIpmB,CAAC,IAAIA,IAAI,IAAIomB,GAAG,IAAIA,GAAG,IAAI,IAAI,IAAIpmB,IAAI,IAAIomB,GAAG,KAAKA,GAAG,KAAKpmB,IAAI,IAAIomB,GAAG,KAAKA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzL,yBAAyB,CAACpmB,GAAG,GAAG,IAAI,GAAGI,IAAI,MAAM;AAC/C,UAAMM,IAAIulB,GAAGG,GAAG,IAAI,CAAC,CAAC;AACtB,IAAA1lB,EAAE,KAAK,GAAGA,EAAE,KAAKN,GAAGJ,EAAE,OAAOU,CAAC;AAAA,EAC/B;AACH;AACA,MAAM2lB,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP,YAAY,GAAG,GAAGjmB,IAAI,GAAGM,IAAI,GAAG;AAC9B,SAAK,KAAKN,GAAG,KAAK,KAAKM,GAAG,KAAK,KAAK,GAAG,KAAK,QAAQ;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,MAAM,IAAI,KAAK,IAAI,IAAI,KAAK,OAAO;AACjC,WAAO,IAAI2lB,GAAG,GAAG,GAAG,KAAK,IAAI,KAAK,EAAE;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,IAAI,IAAI,GAAG,IAAI,GAAG;AAChB,YAAQ,KAAK,OAAO,KAAK,KAAK,OAAO,OAAO,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI;AAAA,EAClG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS,GAAG;AACV,YAAQ,KAAK,OAAO,EAAE,KAAK,KAAK,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI;AAAA,EAC1G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,WAAO,EAAE,IAAI,KAAK,IAAI,KAAK,EAAE,GAAG;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,WAAO,EAAE,MAAM,KAAK,MAAM,EAAE,MAAM,KAAK;AAAA,EACxC;AAAA;AAAA,EAED,IAAI,IAAI;AACN,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,EAAE,GAAG;AACP,SAAK,OAAO,MAAM,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK;AAAA,EACvD;AAAA;AAAA,EAED,IAAI,IAAI;AACN,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,EAAE,GAAG;AACP,SAAK,OAAO,MAAM,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK;AAAA,EACvD;AACH;AACAA,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,iCAAiC,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,KAAK,KAAK;AAChF;AACA,MAAMC,KAAK,MAAM;AAAA,EACf,cAAc;AACZ,SAAK,iBAAiB,IAAIX,GAAE,GAAI,KAAK,iBAAiB,IAAIA,GAAI,GAAE,KAAK,WAAW,IAAIU,GAAG,KAAK,UAAU,MAAM,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,UAAU,MAAM,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,UAAU,MAAM,GAAG,CAAC,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,YAAY,MAAM,GAAG,CAAC,GAAG,KAAK,YAAY,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,KAAK,WAAW,GAAG,KAAK,kBAAkB,GAAG,KAAK,WAAW,GAAG,KAAK,YAAY;AAAA,EACla;AAAA;AAAA,EAED,WAAW;AACT,SAAK;AAAA,EACN;AAAA;AAAA,EAED,aAAa;AACX,SAAK,MAAM,KAAK,IAAI,KAAK,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,IAAI,KAAK,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,IAAI,KAAK,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK;AAAA,EACnN;AAAA;AAAA,EAED,uBAAuB;AACrB,UAAMrmB,IAAI,KAAK;AACf,SAAK,aAAa,KAAK,oBAAoBA,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,GAAGA,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,GAAGA,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,GAAGA,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,GAAGA,EAAE,KAAK,KAAK,SAAS,KAAK,KAAK,MAAM,IAAIA,EAAE,IAAI,KAAK,MAAM,IAAIA,EAAE,IAAIA,EAAE,KAAK,KAAK,SAAS,KAAK,KAAK,MAAM,IAAIA,EAAE,IAAI,KAAK,MAAM,IAAIA,EAAE,IAAI,KAAK,kBAAkB,KAAK,UAAU,KAAK,YAAY;AAAA,EACvW;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,gBAAgBA,GAAG;AACjB,UAAM,IAAI,KAAK;AACf,QAAI,KAAK,aAAa,KAAK,oBAAoB,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,MAAM,KAAK,MAAM,GAAG,EAAE,KAAK,KAAK,SAAS,KAAK,KAAK,MAAM,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,SAAS,KAAK,KAAK,MAAM,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI,KAAK,kBAAkB,KAAK,UAAU,KAAK,YAAY,KAAK,KAAK,cAAcA,EAAE,UAAU;AAC5Y,YAAM,IAAIA,EAAE,gBAAgBI,IAAI,KAAK;AACrC,MAAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAGA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAGA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAGA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAGA,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAIA,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,YAAYJ,EAAE,UAAU,KAAK;AAAA,IACrO;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAcA,GAAG;AACf,IAAAA,EAAE,UAAU,IAAI,GAAG,KAAK;AAAA,EACzB;AAAA;AAAA,EAED,IAAI,WAAW;AACb,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,SAASA,GAAG;AACd,SAAK,cAAcA,MAAM,KAAK,YAAYA,GAAG,KAAK,WAAU;AAAA,EAC7D;AACH;AACAsmB,GAAG,WAAW,IAAIA;AAClB,IAAIC,KAAKD;AACTC,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,mCAAmC,KAAK,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,cAAc,KAAK,QAAQ,WAAW,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;AACxL;AACA,IAAIC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMLC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYT,SAASC,GAAG1mB,GAAG,GAAG,GAAG;AACnB,QAAMI,IAAIJ,EAAE,aAAa,CAAC;AAC1B,SAAOA,EAAE,aAAaI,GAAG,CAAC,GAAGJ,EAAE,cAAcI,CAAC,GAAGA;AACnD;AACA,SAASumB,GAAG3mB,GAAG;AACb,QAAM,IAAI,IAAI,MAAMA,CAAC;AACrB,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC5B,MAAE,CAAC,IAAI;AACT,SAAO;AACT;AACA,SAAS4mB,GAAG5mB,GAAG,GAAG;AAChB,UAAQA,GAAC;AAAA,IACP,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,IAAI,aAAa,IAAI,CAAC;AAAA,IAC/B,KAAK;AACH,aAAO,IAAI,aAAa,IAAI,CAAC;AAAA,IAC/B,KAAK;AACH,aAAO,IAAI,aAAa,IAAI,CAAC;AAAA,IAC/B,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,IAAI,WAAW,IAAI,CAAC;AAAA,IAC7B,KAAK;AACH,aAAO,IAAI,WAAW,IAAI,CAAC;AAAA,IAC7B,KAAK;AACH,aAAO,IAAI,WAAW,IAAI,CAAC;AAAA,IAC7B,KAAK;AACH,aAAO,IAAI,YAAY,IAAI,CAAC;AAAA,IAC9B,KAAK;AACH,aAAO,IAAI,YAAY,IAAI,CAAC;AAAA,IAC9B,KAAK;AACH,aAAO,IAAI,YAAY,IAAI,CAAC;AAAA,IAC9B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO2mB,GAAG,IAAI,CAAC;AAAA,IACjB,KAAK;AACH,aAAOA,GAAG,IAAI,CAAC;AAAA,IACjB,KAAK;AACH,aAAOA,GAAG,IAAI,CAAC;AAAA,IACjB,KAAK;AACH,aAAO,IAAI,aAAa;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR,CAAO;AAAA,IACH,KAAK;AACH,aAAO,IAAI,aAAa;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR,CAAO;AAAA,IACH,KAAK;AACH,aAAO,IAAI,aAAa;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR,CAAO;AAAA,EACJ;AACD,SAAO;AACT;AACA,MAAME,KAAK;AAAA;AAAA,EAET;AAAA,IACE,MAAM,CAAC7mB,MAAMA,EAAE,SAAS,WAAWA,EAAE,SAAS,KAAK,CAACA,EAAE;AAAA,IACtD,MAAM,CAACA,MAAM;AAAA,qBACIA,CAAC,cAAcA,CAAC;AAAA;AAAA,sBAEfA,CAAC,kBAAkBA,CAAC;AAAA,mCACPA,CAAC,oBAAoBA,CAAC;AAAA;AAAA;AAAA,EAGtD;AAAA;AAAA,EAED;AAAA,IACE,MAAM,CAACA,GAAG;AAAA;AAAA,OAEPA,EAAE,SAAS,eAAeA,EAAE,SAAS,iBAAiBA,EAAE,SAAS,qBAAqBA,EAAE,SAAS,KAAK,CAACA,EAAE,YAAY,KAAK,QAAQ,EAAE,sBAAsB;AAAA;AAAA,IAE7J,MAAM,CAACA,MAAM;AAAA;AAAA,wCAEuBA,CAAC;AAAA;AAAA,qBAEpBA,CAAC;AAAA;AAAA,sBAEAA,CAAC;AAAA,mCACYA,CAAC;AAAA;AAAA;AAAA,EAGjC;AAAA;AAAA,EAED;AAAA,IACE,MAAM,CAACA,GAAG,MAAMA,EAAE,SAAS,UAAUA,EAAE,SAAS,KAAK,CAACA,EAAE,WAAW,EAAE,MAAM;AAAA,IAC3E,MAAM,CAACA;AAAA;AAAA,MAEL;AAAA,sCACgCA,CAAC,2BAA2BA,CAAC;AAAA;AAAA;AAAA,IAG/D,SAAS,CAACA,MAAM;AAAA,sBACEA,CAAC,gBAAgBA,CAAC;AAAA;AAAA,iCAEPA,CAAC;AAAA,mCACCA,CAAC;AAAA,mCACDA,CAAC;AAAA;AAAA,qCAECA,CAAC;AAAA,qCACDA,CAAC;AAAA,qCACDA,CAAC;AAAA;AAAA,qCAEDA,CAAC;AAAA,qCACDA,CAAC;AAAA,sCACAA,CAAC;AAAA;AAAA,EAEpC;AAAA;AAAA,EAED;AAAA,IACE,MAAM,CAACA,GAAG,MAAMA,EAAE,SAAS,UAAUA,EAAE,SAAS,KAAK,CAACA,EAAE,WAAW,EAAE,MAAM;AAAA,IAC3E,MAAM,CAACA,MAAM;AAAA,2BACUA,CAAC;AAAA,0BACFA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAMYA,CAAC;AAAA;AAAA,IAEpC,SAAS,CAACA,MAAM;AAAA,yBACKA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvB;AAAA;AAAA,EAED;AAAA,IACE,MAAM,CAACA,MAAMA,EAAE,SAAS,UAAUA,EAAE,SAAS,KAAK,CAACA,EAAE;AAAA,IACrD,MAAM,CAACA,MAAM;AAAA,2BACUA,CAAC;AAAA,0BACFA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAMYA,CAAC;AAAA;AAAA;AAAA,EAGrC;AAAA;AAAA,EAED;AAAA,IACE,MAAM,CAACA,GAAG,MAAMA,EAAE,SAAS,UAAUA,EAAE,SAAS,KAAK,CAACA,EAAE,WAAW,EAAE,UAAU;AAAA,IAC/E,MAAM,CAACA,MAAM;AAAA,2BACUA,CAAC;AAAA,0BACFA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAQYA,CAAC;AAAA;AAAA,IAEpC,SAAS,CAACA,MAAM;AAAA,6BACSA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO3B;AAAA;AAAA,EAED;AAAA,IACE,MAAM,CAACA,GAAG,MAAMA,EAAE,SAAS,UAAUA,EAAE,SAAS,KAAK,CAACA,EAAE,WAAW,EAAE,QAAQ;AAAA,IAC7E,MAAM,CAACA,MAAM;AAAA,2BACUA,CAAC;AAAA,0BACFA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAQYA,CAAC;AAAA;AAAA,IAEpC,SAAS,CAACA,MAAM;AAAA,6BACSA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO3B;AAAA;AAAA,EAED;AAAA,IACE,MAAM,CAACA,GAAG,MAAMA,EAAE,SAAS,UAAUA,EAAE,SAAS,KAAK,CAACA,EAAE,WAAW,EAAE,QAAQ;AAAA,IAC7E,MAAM,CAACA,MAAM;AAAA,2BACUA,CAAC;AAAA,0BACFA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAQYA,CAAC;AAAA;AAAA,IAEpC,SAAS,CAACA,MAAM;AAAA,6BACSA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3B;AAAA;AAAA,EAED;AAAA,IACE,MAAM,CAACA,MAAMA,EAAE,SAAS,UAAUA,EAAE,SAAS,KAAK,CAACA,EAAE;AAAA,IACrD,MAAM,CAACA,MAAM;AAAA,2BACUA,CAAC;AAAA,0BACFA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCASYA,CAAC;AAAA;AAAA,EAErC;AACH,GAAG8mB,KAAK;AAAA,EACN,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQN,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASN,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUN,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOL,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASP,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUP,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAON,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASP,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUP,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMN,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASP,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOX,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOb,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOlB,GAAGC,KAAK;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,WAAW;AAAA,EACX,aAAa;AAAA,EACb,gBAAgB;AAClB;AACA,SAASC,GAAGhnB,GAAG,GAAG;AAChB,MAAII;AACJ,QAAM8X,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMR;AACH,aAAWxX,KAAKV,EAAE,UAAU;AAC1B,UAAM,IAAI,EAAEU,CAAC;AACb,QAAI,CAAC,GAAG;AACN,QAAEN,IAAIJ,EAAE,SAASU,CAAC,MAAM,OAAO,SAASN,EAAE,WAAW,OAAOJ,EAAE,SAASU,CAAC,EAAE,MAAMwX,EAAE,KAAK;AAAA,oEACzBxX,CAAC,MAAMA,CAAC;AAAA,qBACvD,IAAIwX,EAAE,KAAK;AAAA,8DAC8BxX,CAAC;AAAA,qBAC1C;AACf;AAAA,IACD;AACD,UAAM,IAAIV,EAAE,SAASU,CAAC;AACtB,QAAI,IAAI;AACR,aAASK,IAAI,GAAGA,IAAI8lB,GAAG,QAAQ9lB;AAC7B,UAAI8lB,GAAG9lB,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG;AACpB,QAAAmX,EAAE,KAAK2O,GAAG9lB,CAAC,EAAE,KAAKL,GAAG,CAAC,CAAC,GAAG,IAAI;AAC9B;AAAA,MACD;AACH,QAAI,CAAC,GAAG;AACN,YAAMK,KAAK,EAAE,SAAS,KAAK,CAAC,EAAE,UAAU+lB,KAAKC,IAAI,EAAE,IAAI,EAAE,QAAQ,YAAY,OAAOrmB,CAAC,aAAa;AAClG,MAAAwX,EAAE,KAAK;AAAA,uBACUxX,CAAC;AAAA;AAAA,sBAEFA,CAAC;AAAA,cACTK,CAAC,GAAG;AAAA,IACb;AAAA,EACF;AACD,SAAO,IAAI,SAAS,MAAM,MAAM,YAAY,YAAYmX,EAAE,KAAK;AAAA,CAChE,CAAC;AACF;AACA,MAAM+O,KAAK,CAAA;AACX,IAAIC,KAAKD;AACT,SAASE,KAAK;AACZ,MAAID,OAAOD,MAAMC,MAAM,QAAQA,GAAG,iBAAiB;AACjD,UAAMlnB,IAAIgT,EAAE,QAAQ,aAAY;AAChC,QAAI;AACJ,IAAAA,EAAE,cAAcpB,GAAG,WAAW,IAAI5R,EAAE,WAAW,UAAU,CAAA,CAAE,IAAI,MAAM,IAAIA,EAAE,WAAW,SAAS,CAAA,CAAE,KAAKA,EAAE,WAAW,sBAAsB,CAAE,CAAA,GAAG,IAAI,EAAE,aAAa,oBAAoB,IAAI,IAAI,OAAOknB,KAAK;AAAA,EAC1M;AACD,SAAOA;AACT;AACA,IAAIE;AACJ,SAASC,KAAK;AACZ,MAAI,CAACD,IAAI;AACP,IAAAA,KAAKzU,GAAG;AACR,UAAM3S,IAAImnB;AACV,QAAInnB,KAAKA,EAAE,0BAA0B;AACnC,YAAM,IAAIA,EAAE,yBAAyBA,EAAE,iBAAiBA,EAAE,UAAU;AACpE,YAAMonB,KAAK,EAAE,YAAYzU,GAAG,OAAOA,GAAG;AAAA,IACvC;AAAA,EACF;AACD,SAAOyU;AACT;AACA,SAASE,GAAGtnB,GAAG,GAAG;AAChB,QAAM,IAAIA,EAAE,gBAAgB,CAAC,EAAE,MAAM;AAAA,CACtC,EAAE,IAAI,CAACgB,GAAG,MAAM,GAAG,CAAC,KAAKA,CAAC,EAAE,GAAGZ,IAAIJ,EAAE,iBAAiB,CAAC,GAAGU,IAAIN,EAAE,MAAM;AAAA,CACtE,GAAG,IAAI,CAAE,GAAE,IAAIM,EAAE,IAAI,CAACM,MAAM,WAAWA,EAAE,QAAQ,4BAA4B,IAAI,CAAC,CAAC,EAAE,OAAO,CAACA,MAAMA,KAAK,CAAC,EAAEA,CAAC,KAAK,EAAEA,CAAC,IAAI,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAC7I,IAAE,QAAQ,CAACA,MAAM;AACf,MAAEA,IAAI,CAAC,IAAI,KAAK,EAAEA,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,uDAAuD,iBAAiB;AAAA,EACjH,CAAG;AACD,QAAMD,IAAI,EAAE,KAAK;AAAA,CAClB;AACC,IAAE,CAAC,IAAIA,GAAG,QAAQ,MAAMX,CAAC,GAAG,QAAQ,eAAe,gCAAgC,GAAG,QAAQ,KAAK,GAAG,CAAC,GAAG,QAAQ;AACpH;AACA,SAASmnB,GAAGvnB,GAAG,GAAG,GAAGI,GAAG;AACtB,EAAAJ,EAAE,oBAAoB,GAAGA,EAAE,WAAW,MAAMA,EAAE,mBAAmB,GAAGA,EAAE,cAAc,KAAKsnB,GAAGtnB,GAAG,CAAC,GAAGA,EAAE,mBAAmBI,GAAGJ,EAAE,cAAc,KAAKsnB,GAAGtnB,GAAGI,CAAC,GAAG,QAAQ,MAAM,4CAA4C,GAAGJ,EAAE,kBAAkB,CAAC,MAAM,MAAM,QAAQ,KAAK,0CAA0CA,EAAE,kBAAkB,CAAC,CAAC;AACvU;AACA,MAAMwnB,KAAK;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AACb;AACA,SAASC,GAAGznB,GAAG;AACb,SAAOwnB,GAAGxnB,CAAC;AACb;AACA,IAAI0nB,KAAK;AACT,MAAMC,KAAK;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,MAAM;AAAA,EACN,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,2BAA2B;AAAA,EAC3B,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,+BAA+B;AACjC;AACA,SAASC,GAAG5nB,GAAG,GAAG;AAChB,MAAI,CAAC0nB,IAAI;AACP,UAAM,IAAI,OAAO,KAAKC,EAAE;AACxB,IAAAD,KAAK,CAAA;AACL,aAAStnB,IAAI,GAAGA,IAAI,EAAE,QAAQ,EAAEA,GAAG;AACjC,YAAMM,IAAI,EAAEN,CAAC;AACb,MAAAsnB,GAAG1nB,EAAEU,CAAC,CAAC,IAAIinB,GAAGjnB,CAAC;AAAA,IAChB;AAAA,EACF;AACD,SAAOgnB,GAAG,CAAC;AACb;AACA,SAASG,GAAG7nB,GAAG,GAAG,GAAG;AACnB,MAAIA,EAAE,UAAU,GAAG,CAAC,MAAM,aAAa;AACrC,QAAII,IAAI;AACR,WAAO,MAAMuS,GAAG,QAAQ,MAAMA,GAAG,SAASvS,IAAIuS,GAAG,SAAS,aAAavS,CAAC;AAAA,EAC1EJ,CAAC;AAAA,EACH,WAAa,MAAM2S,GAAG,QAAQ3S,EAAE,UAAU,GAAG,EAAE,MAAM;AACjD,WAAOA,EAAE,QAAQ,mBAAmB,mBAAmB;AACzD,SAAOA;AACT;AACA,IAAI8nB;AACJ,SAASC,KAAK;AACZ,MAAI,OAAOD,MAAM;AACf,WAAOA;AACT,MAAI;AACF,IAAAA,KAAK,IAAI,SAAS,UAAU,UAAU,UAAU,mCAAmC,EAAE,EAAE,GAAG,IAAG,GAAI,KAAK,GAAG,MAAM;AAAA,EACnH,QAAU;AACN,IAAAA,KAAK;AAAA,EACN;AACD,SAAOA;AACT;AACA,IAAIE,KAAK;AACT,MAAMC,KAAK,CAAE,GAAEC,KAAK,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO3B,YAAY,GAAG,GAAG/nB,IAAI,eAAeM,IAAI,IAAI;AAC3C,SAAK,QAAQ,CAAA,GAAI,KAAK,KAAKsnB,MAAM,KAAK,YAAY,KAAKG,GAAG,kBAAkB,KAAK,cAAc,KAAKA,GAAG,oBAAoB,KAAK,YAAY,KAAK,UAAU,KAAI,GAAI,KAAK,cAAc,KAAK,YAAY,KAAM,GAAE,KAAK,QAAQznB,GAAG,KAAK,UAAU,UAAU,GAAG,CAAC,MAAM,eAAeN,IAAIA,EAAE,QAAQ,QAAQ,GAAG,GAAG6nB,GAAG7nB,CAAC,KAAK6nB,GAAG7nB,CAAC,KAAKA,KAAK,IAAI6nB,GAAG7nB,CAAC,CAAC,MAAM6nB,GAAG7nB,CAAC,IAAI,GAAG,KAAK,YAAY,uBAAuBA,CAAC;AAAA,EACzY,KAAK,SAAS,IAAI,KAAK,cAAc,uBAAuBA,CAAC;AAAA,EAC7D,KAAK,WAAW,IAAI,KAAK,YAAYynB;AAAA,MACjC,KAAK;AAAA,MACLM,GAAG;AAAA,MACHxV,GAAG;AAAA,IACT,GAAO,KAAK,cAAckV;AAAA,MACpB,KAAK;AAAA,MACLM,GAAG;AAAA,MACHd,GAAI;AAAA,IACV,IAAQ,KAAK,aAAa,CAAE,GAAE,KAAK,eAAe;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,mBAAmB;AAC5B,WAAOZ;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,qBAAqB;AAC9B,WAAOD;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,OAAO,KAAK,GAAG,GAAGpmB,GAAG;AACnB,UAAMM,IAAI,IAAI;AACd,QAAI,IAAIyhB,GAAGzhB,CAAC;AACZ,WAAO,MAAMyhB,GAAGzhB,CAAC,IAAI,IAAI,IAAIynB,GAAG,GAAG,GAAG/nB,CAAC,IAAI;AAAA,EAC5C;AACH;AACA8nB,GAAG,yBAAyBvV,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAO/BuV,GAAG,2BAA2B9T,GAAG,MAAM,SAASzB,GAAG,OAAOA,GAAG;AAC7D,IAAIyV,KAAKF,IAAIG,KAAK;AAClB,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,YAAY,GAAG,GAAGloB,GAAG;AACnB,SAAK,QAAQ,IAAI,KAAK,eAAe,CAAE,GAAE,KAAK,UAAU,GAAG,KAAK,KAAKioB,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAACjoB,GAAG,aAAamkB,MAAM,KAAK,SAAS,GAAG,KAAK,OAAO,OAAOzR,GAAG,gBAAgB,KAAK,aAAa,IAAI,KAAK,MAAM,OAAO,KAAK,WAAW,GAAG,KAAK,QAAQ,KAAK,SAAS,IAAIyR,GAAG,IAAI,aAAa,CAAC,CAAC,GAAG,KAAK,OAAO,OAAOzR,GAAG,gBAAgB,KAAK,aAAa;AAAA,EACpW;AAAA,EACD,SAAS;AACP,SAAK,WAAW,CAAC,KAAK,cAAc,KAAK,UAAU,KAAK,OAAO;EAChE;AAAA,EACD,IAAI,GAAG,GAAG1S,GAAG;AACX,QAAI,CAAC,KAAK;AACR,WAAK,SAAS,CAAC,IAAI,IAAIkoB,GAAG,GAAGloB,CAAC;AAAA;AAE9B,YAAM,IAAI,MAAM,qGAAqG;AAAA,EACxH;AAAA,EACD,OAAO,KAAK,GAAG,GAAGA,GAAG;AACnB,WAAO,IAAIkoB,GAAG,GAAG,GAAGloB,CAAC;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,QAAQ,GAAG,GAAG;AACnB,WAAO,IAAIkoB,GAAG,GAAG,KAAK,IAAI,EAAE;AAAA,EAC7B;AACH;AACA,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,GAAG,GAAG;AAChB,SAAK,mBAAmB,GAAG,KAAK,UAAU,GAAG,IAAI,aAAaD,KAAK,KAAK,eAAe,IAAI,KAAK,eAAe,IAAIA,GAAG,CAAC,IAAI,KAAK,eAAe,IAAIA,GAAG,CAAE,CAAA,GAAG,KAAK,gBAAgB,IAAIxE,GAAG,eAAe;AAAA,EACvM;AAAA;AAAA,EAED,mBAAmB,GAAG,GAAG;AACvB,QAAI,EAAE,SAAS,CAAC;AACd,aAAO;AACT,eAAW1jB,KAAK,EAAE,UAAU;AAC1B,YAAMM,IAAI,EAAE,SAASN,CAAC;AACtB,UAAIM,EAAE,UAAU,MAAM,KAAK,mBAAmB,GAAGA,CAAC;AAChD,eAAO;AAAA,IACV;AACD,WAAO;AAAA,EACR;AAAA,EACD,UAAU;AACR,SAAK,eAAe,MAAM,KAAK,cAAc,KAAK,IAAI,GAAG,KAAK,cAAc,QAAO;AAAA,EACpF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,WAAW;AACb,WAAO,KAAK,aAAa;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,KAAK,GAAG,GAAGN,GAAG;AACnB,UAAMM,IAAI0nB,GAAG,KAAK,GAAG,CAAC;AACtB,WAAO,IAAIG,GAAG7nB,GAAGN,CAAC;AAAA,EACnB;AACH;AACA,MAAMooB,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,GAAG,GAAG;AAChB,QAAI,KAAK,YAAY,GAAG,KAAK,eAAe,GAAG,KAAK,eAAe,CAAE,GAAE,KAAK,oBAAoB,CAAA,GAAI,CAAC,EAAE,SAAS,SAAS;AACvH,YAAM,IAAI,MAAM,2CAA2C;AAC7D,QAAI,CAAC,EAAE,SAAS,WAAW;AACzB,YAAM,IAAI,MAAM,6CAA6C;AAAA,EAChE;AAAA,EACD,eAAe,GAAG;AAChB,QAAI,CAAC,KAAK,aAAa,CAAC,GAAG;AACzB,YAAMpoB,IAAI,IAAI,WAAW,CAAC;AAC1B,eAAS,IAAI,GAAG,IAAI,GAAG;AACrB,QAAAA,EAAE,CAAC,IAAI;AACT,WAAK,kBAAkB,CAAC,IAAIkoB,GAAG,KAAK,EAAE,WAAWloB,EAAC,GAAI,EAAE;AACxD,UAAIM,IAAI,KAAK;AACb,MAAAA,IAAIA,EAAE,QAAQ,aAAa,GAAG,CAAC,EAAE,GAAGA,IAAIA,EAAE,QAAQ,eAAe,KAAK,kBAAkB,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC,IAAI,IAAI0nB,GAAG,KAAK,WAAW1nB,CAAC;AAAA,IAC7I;AACD,UAAM,IAAI;AAAA,MACR,MAAM,IAAI,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAAA,MACnC,mBAAmB,IAAIilB,GAAI;AAAA,MAC3B,SAAS,KAAK,kBAAkB,CAAC;AAAA,IACvC;AACI,WAAO,IAAI4C,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC;AAAA,EACtC;AAAA,EACD,kBAAkB,GAAG;AACnB,QAAI,IAAI;AACR,SAAK;AAAA,GACN,KAAK;AAAA;AAEJ,aAASnoB,IAAI,GAAGA,IAAI,GAAGA;AACrB,MAAAA,IAAI,MAAM,KAAK;AAAA,SACZA,IAAI,IAAI,MAAM,KAAK,mBAAmBA,CAAC,QAAQ,KAAK;AAAA,IACzD,KAAK;AAAA,+BACsBA,CAAC,sBAAsB,KAAK;AAAA;AAEvD,WAAO,KAAK;AAAA,GACb,KAAK;AAAA,GACL;AAAA,EACA;AACH;AACA,MAAMqoB,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,WAAW,CAAA,GAAI,KAAK,MAAM,IAAI,KAAK,QAAQ;AAAA,EACjD;AAAA,EACD,QAAQ;AACN,aAAS,IAAI,GAAG,IAAI,KAAK,OAAO;AAC9B,WAAK,SAAS,CAAC,IAAI;AACrB,SAAK,QAAQ;AAAA,EACd;AACH;AACA,SAASC,KAAK;AACZ,SAAO,CAACtU,GAAG,MAAM;AACnB;AACA,SAASuU,GAAG3oB,GAAG;AACb,MAAI,IAAI;AACR,QAAM,IAAIgT,EAAE,QAAQ,aAAY;AAChC,MAAIoB,GAAG,UAAUA,GAAG,OAAO;AACzB,QAAIA,GAAG,MAAM,QAAQ;AACnB,YAAMhU,IAAI,EAAE,UAAU,MAAM,iBAAiB;AAC7C,MAAAA,KAAK,SAASA,EAAE,CAAC,GAAG,EAAE,IAAI,OAAO,IAAI;AAAA,IACtC;AACD,QAAIgU,GAAG,QAAQ,QAAQ;AACrB,YAAMhU,IAAI,EAAE,UAAU,MAAM,oBAAoB;AAChD,MAAAA,KAAK,SAASA,EAAE,CAAC,GAAG,EAAE,IAAI,MAAM,IAAI;AAAA,IACrC;AAAA,EACF;AACD,SAAO,IAAIJ,IAAI;AACjB;AACA,MAAM4oB,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA,EAED,QAAQ;AAAA,EACP;AAAA;AAAA,EAED,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,QAAQ;AAAA,EACP;AAAA;AAAA,EAED,OAAO;AACL,SAAK,MAAK;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AAAA,EACT;AACH;AACA,IAAIC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUNC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBR,MAAMC,KAAK,MAAMC,WAAWJ,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,YAAY,GAAG;AACb,UAAM,CAAC,GAAG,KAAK,mBAAkB,GAAI,KAAK,gBAAgB7D,IAAI,KAAK,aAAa,GAAG,KAAK,QAAQpB,GAAG,MAAO,GAAE,KAAK,OAAOqF,GAAG,mBAAmB,GAAG,KAAK,eAAe,GAAG,KAAK,cAAc,GAAG,KAAK,oBAAoB,CAAA,GAAI,KAAK,oBAAoB,CAAA,GAAI,KAAK,cAAc,GAAG,KAAK,UAAU,MAAM,KAAK,oBAAoB,IAAI,KAAK,0BAA0B,GAAG,KAAK,WAAW,GAAG,KAAK,YAAY,CAAA,GAAI,KAAK,YAAY,CAAA,GAAI,KAAK,cAAc,GAAG,KAAK,SAAS,GAAG,aAAa,KAAK,aAAa,IAAI,GAAG,EAAE,QAAQ,cAAc,IAAI,IAAI,GAAG,KAAK,WAAW,GAAG,KAAK,UAAU,GAAG,KAAK,UAAU,GAAG,KAAK,mBAAmB,MAAM,KAAK,eAAe,MAAM,KAAK,qBAAqB;EACzpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,WAAW,qBAAqB;AAC9B,WAAO,KAAK,sBAAsB,KAAK,uBAAuBL,GAAG,EAAE,GAAG,KAAK;AAAA,EAC5E;AAAA,EACD,WAAW,mBAAmB,GAAG;AAC/B,SAAK,sBAAsB;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,sBAAsB;AAC/B,WAAO,KAAK,uBAAuB,KAAK,wBAAwBD,GAAI,GAAE,KAAK;AAAA,EAC5E;AAAA,EACD,WAAW,oBAAoB,GAAG;AAChC,SAAK,uBAAuB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,eAAe;AACjB,WAAOnK,GAAG,SAAS,iEAAiE,GAAG,KAAK;AAAA,EAC7F;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,mBAAmB;AAC5B,WAAOuK;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,0BAA0B;AACnC,WAAOD;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,mBAAmB;AAAA,IACjB,QAAQ,IAAIG,GAAG;AAAA,IACf,UAAU,IAAIA,GAAG;AAAA,EAClB,IAAG,IAAI;AACN,SAAK,kBAAkB,IAAIR,GAAG,GAAG,CAAC;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,gBAAgB;AACd,UAAM,IAAI,KAAK,SAAS;AACxB,IAAAxV,EAAE,eAAepB,GAAG,eAAe,KAAK,cAAc,KAAK,KAAK,cAAc,KAAK;AAAA,MACjF,EAAE,aAAa,EAAE,uBAAuB;AAAA,MACxCoX,GAAG;AAAA,IACT,GAAO,KAAK,cAAc5F;AAAA,MACpB,KAAK;AAAA,MACL;AAAA,IACN,IAAQ,KAAK,UAAU,KAAK,gBAAgB,eAAe,KAAK,WAAW;AACvE,aAAS,IAAI,GAAG,IAAI,KAAK,yBAAyB;AAChD,WAAK,kBAAkB,CAAC,IAAI,IAAI,KAAK,cAAa;AACpD,SAAK,iBAAgB;AAAA,EACtB;AAAA;AAAA,EAED,mBAAmB;AACjB,UAAM;AAAA,MACJ,eAAe;AAAA,MACf,mBAAmB;AAAA,IACpB,IAAG4F,IAAI5oB,IAAI,KAAK,OAAO,GAAGM,IAAI,KAAK,MAAMN,IAAI,KAAK,WAAW,IAAI;AAClE,WAAO,EAAE,SAASA;AAChB,QAAE,KAAK,IAAIikB,GAAE,CAAE;AACjB,WAAO,EAAE,SAAS3jB;AAChB,QAAE,KAAK,IAAI+nB,GAAE,CAAE;AACjB,aAAS,IAAI,GAAG,IAAI,KAAK,aAAa;AACpC,WAAK,mBAAmB,CAAC,IAAI;AAAA,EAChC;AAAA;AAAA,EAED,cAAc;AACZ,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,MAAE,SAAS,UAAU,KAAK,eAAe,EAAE,WAAW,SAAS,IAAI,KAAK,QAAQ,KAAK,SAAS,KAAK,gBAAgB,EAAE,WAAW,SAAS,GAAG,KAAK,eAAe,EAAE,QAAQ,QAAQ,KAAK,kBAAkB,KAAK,WAAW,IAAI,EAAE,SAAS,aAAa,KAAK,kBAAkB,KAAK,aAAa,IAAI;AAAA,EACnS;AAAA,EACD,4BAA4B;AAC1B,UAAM;AAAA,MACJ,mBAAmB;AAAA,MACnB,aAAa;AAAA,IACnB,IAAQ,MAAMroB,IAAI4oB,GAAG,mBAAmBtoB,IAAI,KAAK,SAAS,OAAO,IAAI,KAAK,oBAAoB,IAAI,KAAK,SAAS,UAAU;AACtH,QAAI,IAAI,EAAE0jB,EAAG,cAAcrjB,IAAI,GAAGC,IAAIZ,EAAE,CAAC,GAAG,IAAI;AAChD,IAAAM,EAAE,kBAAkB,GAAG,CAAC;AACxB,aAAS,IAAI,GAAG,IAAI,KAAK,aAAa,EAAE,GAAG;AACzC,YAAM,IAAI,EAAE,CAAC;AACb,QAAE,CAAC,IAAI,MAAM,EAAE,kBAAkB,MAAMM,EAAE,SAAS,MAAMN,EAAE,WAAWM,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,eAAeA,GAAG,GAAG,CAAC,GAAG,IAAI,GAAGA,IAAIZ,EAAE,EAAEW,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,GAAG,EAAE,UAAU,GAAGC,EAAE,SAASA,EAAE,OAAO,IAAI;AAAA,IACtM;AACD,IAAAA,EAAE,QAAQ,MAAMN,EAAE,WAAWM,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,eAAeA,GAAG,GAAG,KAAK,WAAW,GAAG,EAAED,GAAG,EAAE;AAC9F,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC5B,QAAE,CAAC,IAAI;AACT,IAAAqjB,EAAG,eAAe;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,eAAe,GAAG,GAAGhkB,GAAG;AACtB,UAAM;AAAA,MACJ,mBAAmBM;AAAA,MACnB,kBAAkB;AAAA,MAClB,cAAc;AAAA,MACd,YAAY;AAAA,IACb,IAAG,MAAMK,IAAIioB,GAAG;AACjB,QAAIhoB,IAAI,KAAK,UAAU,IAAI,KAAK,SAAS,IAAI,KAAK,SAAS,IAAID,EAAEC,CAAC;AAClE,MAAE,QAAQ,KAAK,SAAS,EAAE,WAAW;AACrC,aAASC,IAAI,GAAGA,IAAIb,GAAG,EAAEa,GAAG;AAC1B,YAAMC,IAAIR,EAAEO,CAAC,GAAG,IAAIC,EAAE,SAAS,aAAaI,IAAIggB,GAAG,EAAE,YAAY,IAAI,CAAC,EAAEpgB,EAAE,SAAS;AACnF,MAAAR,EAAEO,CAAC,IAAI,MAAM,IAAIA,KAAK,EAAE,UAAUK,MAAM,EAAE,OAAO,IAAI,EAAE,OAAO,IAAIL,GAAG,IAAIF,EAAE,EAAEC,CAAC,GAAG,EAAE,WAAW,GAAG,EAAE,QAAQ,IAAI,KAAK,wBAAwBE,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,KAAKA,EAAE,WAAW,SAAS,IAAI,GAAG,KAAKA,EAAE,QAAQ,QAAQ,EAAE,QAAQI;AAAA,IAChO;AACD,QAAIlB,MAAM,EAAE,OAAO,IAAI,EAAE,OAAO,EAAEY,IAAI,KAAK,WAAWA,GAAG,KAAK,UAAU,GAAG,KAAK,UAAU;AAAA,EAC3F;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,qBAAqB,GAAG;AACtB,UAAM,IAAI,KAAK,SAAS;AACxB,aAASZ,IAAI,GAAGA,IAAI,EAAE,OAAOA;AAC3B,QAAE,KAAK,EAAE,SAASA,CAAC,GAAG,EAAE,IAAIA,CAAC,CAAC,GAAG,EAAE,SAASA,CAAC,IAAI;AACnD,MAAE,QAAQ;AAAA,EACX;AAAA,EACD,iBAAiB;AACf,UAAM;AAAA,MACJ,mBAAmB;AAAA,MACnB,kBAAkB;AAAA,MAClB,cAAcA;AAAA,IACf,IAAG;AACJ,IAAA4oB,GAAG,uBAAuB,EAAE,KAAK,QAAQ,EAAE,QAAQ,OAAO,EAAE,aAAa,GAAG,EAAE,KAAK,QAAQ,EAAE,aAAa,OAAO5oB,CAAC,GAAG,KAAK,SAAS,SAAS,cAAe,MAAK,KAAK,2BAA2B,KAAK,aAAa,KAAK,2BAA2B,EAAE,KAAK,QAAQ,IAAI,IAAI,KAAK,cAAe,IAAG,EAAE,KAAK,QAAQ,EAAE,QAAQ,OAAO,EAAE,aAAa,GAAG,EAAE,KAAK,QAAQ,EAAE,aAAa,OAAOA,CAAC,GAAG,KAAK,SAAS,SAAS,KAAK,EAAE,KAAK,QAAQ,CAAC,GAAG,KAAK,SAAS,SAAS,cAAe,GAAE,KAAK;AAAA,EACxd;AAAA,EACD,cAAc;AACZ,UAAM,IAAI,KAAK,UAAU,EAAE,IAAI,GAAG,OAAOA,EAAC,IAAK,KAAK,UAAUM,IAAIsoB,GAAG;AACrE,QAAI,IAAI;AACR,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,YAAM,EAAE,UAAU,GAAG,MAAMjoB,GAAG,MAAMC,GAAG,OAAO,GAAG,OAAO,EAAG,IAAGN,EAAE,CAAC;AACjE,YAAM,MAAM,IAAI,GAAG,KAAK,qBAAqB,CAAC,IAAI,KAAK,MAAM,YAAY,GAAGN,EAAE,IAAI,KAAK,KAAK,GAAG,EAAE,aAAaW,GAAGC,GAAG,EAAE,gBAAgB,IAAI,CAAC;AAAA,IAC5I;AAAA,EACF;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,iBAAiB,MAAM,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,YAAY,GAAG,KAAK,eAAe,KAAK,eAAe,KAAK,WAAW,GAAG,KAAK,UAAU,GAAG,KAAK,UAAU,GAAG,KAAK,WAAW,GAAG,KAAK,0BAAyB,GAAI,KAAK,eAAgB,GAAE,KAAK,YAAa,GAAE,KAAK,cAAc,GAAG,KAAK,eAAe,GAAG,KAAK,cAAc;AAAA,EAChW;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,SAAS,MAAM,IAAI,KAAK,KAAK,GAAG,KAAK,SAAS,QAAQ,kBAAkB,KAAK,WAAW,GAAG,KAAK,SAAS,OAAO,KAAK,KAAK,OAAO,GAAGgoB,GAAG,uBAAuB,KAAK,SAAS,SAAS,KAAK,KAAK,kBAAkB,KAAK,QAAQ,CAAC;AAAA,EACrO;AAAA;AAAA,EAED,OAAO;AACL,SAAK,MAAK;AAAA,EACX;AAAA;AAAA,EAED,UAAU;AACR,aAAS,IAAI,GAAG,IAAI,KAAK,yBAAyB;AAChD,WAAK,kBAAkB,CAAC,KAAK,KAAK,kBAAkB,CAAC,EAAE;AACzD,SAAK,SAAS,IAAI,aAAa,KAAK,aAAa,IAAI,GAAG,KAAK,YAAY,MAAM,KAAK,YAAY,MAAM,KAAK,oBAAoB,MAAM,KAAK,mBAAmB,MAAM,KAAK,eAAe,MAAM,KAAK,YAAY,KAAK,QAAQ,QAAO,GAAI,KAAK,UAAU,OAAO,MAAM;EACnQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,mBAAmB,GAAG;AACpB,UAAM,IAAItH,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAGthB,IAAIwhB,GAAG,CAAC,GAAGlhB,IAAI,IAAI;AACnD,SAAK,UAAU,UAAUN,MAAM,KAAK,UAAU,SAASA,IAAI;AAC3D,QAAI,IAAI,KAAK,UAAUM,CAAC;AACxB,WAAO,MAAM,KAAK,UAAUA,CAAC,IAAI,IAAI,IAAIuiB,GAAGviB,IAAI,KAAK,aAAa,CAAC,IAAI;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,eAAe,GAAG;AAChB,UAAM,IAAIghB,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC,GAAGthB,IAAIwhB,GAAG,CAAC,GAAGlhB,IAAI,IAAI;AACpD,SAAK,UAAU,UAAUN,MAAM,KAAK,UAAU,SAASA,IAAI;AAC3D,QAAI,IAAI,KAAK,UAAUA,CAAC;AACxB,WAAO,MAAM,KAAK,UAAUA,CAAC,IAAI,IAAI,IAAI,YAAYM,CAAC,IAAI;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcD,wBAAwB,GAAG,GAAGN,GAAGM,GAAG,GAAG;AACrC,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,aAAa;AAAA,IACnB,IAAQ,GAAGK,IAAIL,IAAI,KAAK,YAAYM,IAAI,EAAE,KAAK,IAAI,EAAE,SAAS,IAAI,EAAE,YAAY,IAAI,EAAE,SAAS,YAAY,gBAAgBC,IAAI,KAAK,IAAI,EAAE,YAAY,CAAC,GAAGC,IAAIggB,GAAG,OAAO,SAAS,EAAE,QAAQ,EAAE,gBAAgBjgB,GAAG,EAAE,SAAS,YAAY,YAAY,CAAC;AAChP,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,QAAEP,GAAG,IAAI,EAAE,CAAC,GAAG,EAAEA,GAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAEA,GAAG,IAAIM,EAAE,CAAC,GAAG,EAAEN,GAAG,IAAIM,EAAE,IAAI,CAAC,GAAG,EAAEN,GAAG,IAAIQ,GAAG,EAAER,GAAG,IAAI;AAC3F,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC5B,MAAAN,EAAE,GAAG,IAAIW,IAAI,EAAE,CAAC;AAAA,EACnB;AACH;AACAgoB,GAAG,mBAAmB;AACtBA,GAAG,YAAY;AAAA,EACb,MAAM;AAAA,EACN,MAAMlG,EAAE;AACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQAkG,GAAG,gBAAgB,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQrBA,GAAG,oBAAoB,CAAA;AACvB,IAAIE,KAAKF;AACT/F,EAAE,IAAIiG,EAAE;AACR,IAAIC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAONC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BR,MAAMC,KAAK,MAAMC,WAAWd,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,YAAY,GAAG,GAAGnoB,GAAG;AACnB,UAAMM,IAAI0nB,GAAG;AAAA,MACX,KAAKiB,GAAG;AAAA,MACR,KAAKA,GAAG;AAAA,IACd;AACI,UAAM3oB,GAAGN,CAAC,GAAG,KAAK,UAAU,GAAG,KAAK,aAAaipB,GAAG,mBAAmB,KAAK,cAAcA,GAAG,oBAAoB,KAAK,UAAU,IAAI,KAAK,UAAU,IAAI,KAAK,QAAQ,IAAI1F,GAAE;AAAA,EAC3K;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWD,MAAM,GAAG,GAAGvjB,GAAGM,GAAG,GAAG;AACnB,MAAE,YAAY,MAAM,GAAGN,GAAGM,CAAC;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,YAAY;AACd,WAAO,KAAK,MAAM;AAAA,EACnB;AAAA,EACD,IAAI,UAAU,GAAG;AACf,SAAK,MAAM,YAAY;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,aAAa;AACf,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,WAAW,GAAG;AAChB,SAAK,cAAc;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,mBAAmB;AAC5B,WAAOyoB;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,qBAAqB;AAC9B,WAAOD;AAAA,EACR;AACH;AACAE,GAAG,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAMvBA,GAAG,qBAAqBvW,GAAG;AAC3B,IAAIyW,KAAKF;AACT,MAAMG,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,oBAAoB,IAAI,KAAK,mBAAmB,IAAIrI,GAAG,CAAC,GAAG,KAAK,QAAQ;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,SAAK,oBAAoB,EAAE;AAC3B,UAAM,EAAE,iBAAiB,GAAG,YAAY9gB,GAAG,iBAAiBM,EAAC,IAAK,GAAG,IAAIN,KAAK;AAC9E,UAAM,WAAW,KAAK,QAAQ,IAAI,KAAK,QAAQM;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK,iBAAiB;AAAA,EAC9B;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,iBAAiB,SAAS,CAAC;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK,iBAAiB;AAAA,EAC9B;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,iBAAiB,SAAS,CAAC;AAAA,EACjC;AAAA;AAAA,EAED,IAAI,kBAAkB;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EACD,UAAU;AAAA,EACT;AACH;AACA6oB,GAAG,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjB,mBAAmB;AACrB;AACAA,GAAG,YAAY;AAAA,EACb,MAAM;AAAA,IACJ1G,EAAE;AAAA,IACFA,EAAE;AAAA,EACH;AAAA,EACD,MAAM;AACR;AACAG,EAAE,IAAIuG,EAAE;AACR,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,gBAAgB,IAAIZ,GAAG,CAAC,GAAG,KAAK,kBAAkB,KAAK;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB,GAAG;AACnB,SAAK,oBAAoB,MAAM,KAAK,gBAAgB,KAAM,GAAE,KAAK,kBAAkB,GAAG,KAAK,gBAAgB,MAAO;AAAA,EACnH;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,SAAK,kBAAkB,KAAK,aAAa;AAAA,EAC1C;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,kBAAkB,KAAK,aAAa;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,kBAAkB,GAAG,GAAG;AACtB,UAAM,EAAE,eAAexoB,EAAC,IAAK,KAAK,SAAS;AAC3C,aAASM,IAAI,IAAI,GAAGA,KAAK,GAAG,EAAEA;AAC5B,QAAEA,CAAC,IAAIN,EAAEM,CAAC,KAAK,MAAM,EAAEA,CAAC,MAAM,EAAEA,CAAC,EAAE,iBAAiBA;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,WAAW,GAAG,GAAGN,GAAGM,GAAG;AACrB,UAAM,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,EAAG,IAAG;AAC1C,QAAIK,IAAI;AACR,aAASC,IAAI,GAAGA,IAAI,GAAGA,KAAK;AAC1B,YAAM,IAAI,EAAEA,CAAC,GAAG,IAAI,EAAE;AACtB,UAAI,KAAK,KAAK,IAAIN,KAAK,EAAE,CAAC,MAAM,GAAG;AACjC,UAAEM,CAAC,IAAI;AACP;AAAA,MACD;AACD,aAAOD,IAAIL,KAAK;AACd,cAAM,IAAI,EAAEK,CAAC;AACb,YAAI,KAAK,EAAE,kBAAkBX,KAAK,EAAE,mBAAmBW,GAAG;AACxD,UAAAA;AACA;AAAA,QACD;AACD,UAAEC,CAAC,IAAID,GAAG,EAAE,iBAAiBA,GAAG,EAAEA,CAAC,IAAI;AACvC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAID,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACAyoB,GAAG,YAAY;AAAA,EACb,MAAM3G,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIwG,EAAE;AACR,IAAIC,KAAK;AACT,MAAMC,GAAG;AAAA;AAAA,EAEP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,eAAe,GAAG,KAAK,aAAa,IAAI,KAAK,WAAW;AAAA,MAC9E,eAAe;AAAA,IAChB,GAAE,KAAK,oBAAoB,KAAK,kBAAkB,KAAK,IAAI,GAAG,KAAK,wBAAwB,KAAK,sBAAsB,KAAK,IAAI;AAAA,EACjI;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,SAAS;AACX,WAAO,CAAC,KAAK,MAAM,KAAK,GAAG,cAAa;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc,GAAG;AACf,SAAK,KAAK,GAAG,KAAK,SAAS,KAAK,GAAG,KAAK,SAAS,cAAcD;AAAA,EAChE;AAAA,EACD,KAAK,GAAG;AACN,QAAI,EAAE;AACJ,WAAK,gBAAgB,EAAE,OAAO;AAAA,SAC3B;AACH,YAAM,IAAI,KAAK,SAAS,WAAW,QAAQ,GAAGrpB,IAAI,EAAE;AACpD,WAAK,wBAAwB,EAAE,uBAAuB,KAAK,kBAAkB,EAAE,iBAAiB,KAAK,kBAAkB,EAAE,iBAAiB,KAAK,gBAAgB;AAAA,QAC7J,OAAO;AAAA,QACP,oBAAoBA;AAAA,QACpB,WAAW,EAAE;AAAA,QACb,SAAS;AAAA,QACT,uBAAuB,EAAE;AAAA,QACzB,iBAAiB,EAAE;AAAA,MAC3B,CAAO;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,gBAAgB,GAAG;AACjB,SAAK,KAAK,GAAG,KAAK,gBAAgB,CAAC,GAAG,KAAK,SAAS,KAAK,GAAG,KAAK,SAAS,cAAcqpB,MAAM,KAAK,SAAS,QAAQ,cAAc,KAAK,CAAC;AACxI,UAAM,IAAI,KAAK,SAAS;AACxB,MAAE,qBAAqB,WAAW,EAAE,iBAAiB,oBAAoB,KAAK,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,wBAAwB,KAAK,uBAAuB,EAAE;AAAA,EAChL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,gBAAgB,GAAG;AACjB,UAAM,IAAI,KAAK,cAAc,KAAK,SAAS,MAAM,CAAC;AAClD,SAAK,gBAAgB,CAAC;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,cAAc,GAAG,GAAG;AAClB,QAAIrpB;AACJ,QAAI4S,EAAE,cAAcpB,GAAG,WAAWxR,IAAI,EAAE,WAAW,UAAU,CAAC,IAAIA;AAChE,WAAK,eAAe;AAAA,aACb,KAAK,eAAe,GAAGA,IAAI,EAAE,WAAW,SAAS,CAAC,KAAK,EAAE,WAAW,sBAAsB,CAAC,GAAG,CAACA;AACtG,YAAM,IAAI,MAAM,oEAAoE;AACtF,WAAO,KAAK,KAAKA,GAAG,KAAK,cAAe,GAAE,KAAK;AAAA,EAChD;AAAA;AAAA,EAED,gBAAgB;AACd,UAAM,EAAE,IAAI,MAAM,MAAM,IAAI;AAAA,MAC1B,aAAa,EAAE,aAAa,oBAAoB;AAAA,MAChD,sBAAsB,EAAE,aAAa,gCAAgC;AAAA,MACrE,oBAAoB,EAAE,aAAa,0BAA0B;AAAA,MAC7D,MAAM,EAAE,aAAa,+BAA+B;AAAA,MACpD,WAAW,EAAE,aAAa,oCAAoC;AAAA;AAAA,MAE9D,KAAK,EAAE,aAAa,8BAA8B;AAAA,MAClD,MAAM,EAAE,aAAa,+BAA+B;AAAA,MACpD,OAAO,EAAE,aAAa,gCAAgC,KAAK,EAAE,aAAa,uCAAuC;AAAA,MACjH,KAAK,EAAE,aAAa,8BAA8B;AAAA,MAClD,MAAM,EAAE,aAAa,+BAA+B;AAAA,MACpD,MAAM,EAAE,aAAa,8BAA8B;AAAA,IACzD;AACI,SAAK,iBAAiB,IAAI,OAAO,OAAO,KAAK,YAAY,GAAG;AAAA,MAC1D,aAAa,EAAE,aAAa,oBAAoB;AAAA,MAChD,cAAc,EAAE,aAAa,qBAAqB;AAAA,MAClD,mBAAmB,EAAE,aAAa,yBAAyB,KAAK,EAAE,aAAa,6BAA6B,KAAK,EAAE,aAAa,gCAAgC;AAAA,MAChK,oBAAoB,EAAE,aAAa,wBAAwB;AAAA;AAAA,MAE3D,cAAc,EAAE,aAAa,mBAAmB;AAAA,MAChD,oBAAoB,EAAE,aAAa,0BAA0B;AAAA,MAC7D,kBAAkB,EAAE,aAAa,wBAAwB;AAAA,MACzD,wBAAwB,EAAE,aAAa,+BAA+B;AAAA,IAC5E,CAAK,IAAI,KAAK,iBAAiB,KAAK,OAAO,OAAO,KAAK,YAAY,GAAG;AAAA;AAAA,MAEhE,kBAAkB,EAAE,aAAa,wBAAwB;AAAA,IAC/D,CAAK;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB,GAAG;AACnB,MAAE,kBAAkB,WAAW,MAAM;AACnC,WAAK,GAAG,cAAe,KAAI,KAAK,WAAW,eAAe,KAAK,WAAW,YAAY,eAAc;AAAA,IACrG,GAAE,CAAC;AAAA,EACL;AAAA;AAAA,EAED,wBAAwB;AACtB,SAAK,SAAS,QAAQ,cAAc,KAAK,KAAK,EAAE;AAAA,EACjD;AAAA,EACD,UAAU;AACR,UAAM,IAAI,KAAK,SAAS;AACxB,SAAK,WAAW,MAAM,EAAE,wBAAwB,WAAW,EAAE,oBAAoB,oBAAoB,KAAK,iBAAiB,GAAG,EAAE,oBAAoB,wBAAwB,KAAK,qBAAqB,IAAI,KAAK,GAAG,WAAW,IAAI,GAAG,KAAK,WAAW,eAAe,KAAK,WAAW,YAAY,YAAW;AAAA,EAC3S;AAAA;AAAA,EAED,aAAa;AACX,SAAK,SAAS,eAAe,qBAAqB,KAAK,GAAG;EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,gBAAgB,GAAG;AACjB,UAAM,IAAI,EAAE,wBAAwBA,IAAI,4BAA4B,cAAc,aAAa,WAAW;AAC1G,IAAAA,MAAM,KAAK,eAAe,IAAI,KAAK,CAAC,EAAE,WAAW,QAAQ,KAAK,uFAAuF;AACrJ,UAAMM,IAAIN,KAAK,CAAC,CAAC,EAAE,aAAa,wBAAwB;AACxD,SAAK,SAAS,gBAAgBM,GAAGA,KAAK,QAAQ,KAAK,oGAAoG;AAAA,EACxJ;AACH;AACAgpB,GAAG,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMX,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpB,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvB,iBAAiB;AACnB;AACAA,GAAG,YAAY;AAAA,EACb,MAAM7G,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAI0G,EAAE;AACR,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,GAAG,GAAG;AAChB,QAAI,KAAK,QAAQ,KAAK,MAAM,CAAC,GAAG,KAAK,SAAS,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,KAAK;AAChF,YAAM,IAAI,MAAM,qCAAqC;AACvD,SAAK,UAAU,IAAI,KAAK,QAAQ,IAAI,KAAK,UAAU,GAAG,KAAK,cAAc,GAAG,KAAK,YAAY,GAAG,KAAK,eAAe,MAAM,KAAK,gBAAgB,CAAE,GAAE,KAAK,iBAAiB,IAAI,KAAK,gBAAgB,IAAI7F,GAAG,oBAAoB,GAAG,KAAK,cAAcjR,GAAG;AAAA,EACvP;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,eAAe;AACjB,WAAO,KAAK,cAAc,CAAC;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,gBAAgB,IAAI,GAAG,GAAG;AACxB,WAAO,KAAK,cAAc,CAAC,IAAI,KAAK,IAAIuR,EAAG,MAAM;AAAA,MAC/C,WAAW/R,GAAG;AAAA,MACd,YAAY;AAAA,MACZ,QAAQE,GAAG;AAAA,MACX,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,IACnB,CAAK,GAAG,KAAK,WAAW,KAAK,eAAe;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,gBAAgB,GAAG;AACjB,WAAO,KAAK,eAAe,KAAK,IAAI6R,EAAG,MAAM;AAAA,MAC3C,WAAW/R,GAAG;AAAA,MACd,YAAY;AAAA,MACZ,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,MACb,QAAQE,GAAG;AAAA,MACX,QAAQN,EAAE;AAAA,MACV,MAAME,EAAE;AAAA,IACd,CAAK,GAAG,KAAK,WAAW,KAAK,eAAe;AAAA,EACzC;AAAA;AAAA,EAED,cAAc;AACZ,WAAO,KAAK,QAAQ,IAAI,KAAK,WAAW,KAAK,eAAe;AAAA,EAC7D;AAAA;AAAA,EAED,gBAAgB;AACd,WAAO,KAAK,UAAU,IAAI,KAAK,WAAW,KAAK,eAAe;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG,GAAG;AACX,QAAI,IAAI,KAAK,MAAM,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/C,YAAM,IAAI,MAAM,+CAA+C;AACjE,QAAI,EAAE,MAAM,KAAK,SAAS,MAAM,KAAK,SAAS;AAC5C,WAAK,QAAQ,GAAG,KAAK,SAAS,GAAG,KAAK,WAAW,KAAK;AACtD,eAAS/R,IAAI,GAAGA,IAAI,KAAK,cAAc,QAAQA,KAAK;AAClD,cAAMM,IAAI,KAAK,cAAcN,CAAC,GAAG,IAAIM,EAAE;AACvC,QAAAA,EAAE,QAAQ,IAAI,GAAG,IAAI,CAAC;AAAA,MACvB;AACD,UAAI,KAAK,cAAc;AACrB,cAAMN,IAAI,KAAK,aAAa;AAC5B,aAAK,aAAa,QAAQ,IAAIA,GAAG,IAAIA,CAAC;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAED,UAAU;AACR,SAAK,cAAc,KAAK,MAAM,EAAE;AAAA,EACjC;AAAA;AAAA,EAED,sBAAsB;AACpB,SAAK,iBAAiB,KAAK,aAAa,QAAS,GAAE,KAAK,eAAe,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK;AAAA,EACrG;AACH;AACA,MAAMwpB,WAAWxF,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWlB,YAAY,IAAI,IAAI;AAClB,QAAI,OAAO,KAAK,UAAU;AACxB,YAAM,IAAI,UAAU,CAAC,GAAGhkB,IAAI,UAAU,CAAC,GAAGM,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC;AAC3E,UAAI,EAAE,OAAO,GAAG,QAAQN,GAAG,WAAWM,GAAG,YAAY;IACtD;AACD,MAAE,QAAQ,EAAE,SAAS,KAAK,EAAE,SAAS,EAAE,UAAU,KAAK,EAAE,gBAAgB,EAAE,cAAcmS,GAAG,OAAO,MAAM,MAAM,CAAC,GAAG,KAAK,SAASN,GAAG,KAAK,KAAK,QAAQ,IAAI,KAAK,SAAS,IAAI2O,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,cAAc,IAAIyI,GAAG,KAAK,WAAW,KAAK,UAAU,EAAE,gBAAgB,GAAG,IAAI,GAAG,KAAK,YAAY,cAAc,EAAE,aAAa,KAAK,YAAY,CAAA,GAAI,KAAK,cAAc,CAAC,CAAE,CAAA;AAAA,EAC5W;AAAA;AAAA,EAED,IAAI,WAAW,GAAG;AAChB,SAAK,OAAO,SAAS,CAAC;AAAA,EACvB;AAAA,EACD,IAAI,aAAa;AACf,WAAO,KAAK,OAAO;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,cAAc;AAChB,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA,EACD,IAAI,YAAY,GAAG;AACjB,SAAK,YAAY,cAAc;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG,GAAG;AACX,SAAK,YAAY,OAAO,IAAI,KAAK,YAAY,IAAI,KAAK,UAAU,GAAG,KAAK,YAAY,KAAK,YAAY,OAAO,KAAK,YAAY,MAAM;AAAA,EACpI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,UAAU;AACR,SAAK,YAAY,QAAS,GAAE,MAAM,QAAO;AAAA,EAC1C;AAAA;AAAA,EAED,UAAU;AACR,UAAM,QAAS,GAAE,KAAK,YAAY,uBAAuB,KAAK,cAAc;AAAA,EAC7E;AACH;AACA,MAAME,WAAW9F,GAAG;AAAA;AAAA;AAAA;AAAA,EAIlB,YAAY,GAAG;AACb,UAAM,IAAI,GAAG3jB,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,OAAOM,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE;AAC3I,UAAMN,GAAGM,CAAC,GAAG,KAAK,SAAS,GAAG,KAAK,aAAa;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,OAAO,YAAY,GAAG,GAAGN,GAAG;AAC1B,IAAAA,MAAM,UAAU,CAAC,EAAE,WAAW,OAAO,IAAI,EAAE,cAAcuiB,GAAG,CAAC,IAAIviB,MAAM,OAAO,EAAE,cAAc,OAAOA,KAAK,WAAWA,IAAI;AAAA,EAC1H;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,OAAO,GAAG,GAAGA,GAAGM,GAAG;AACjB,UAAM,IAAI,EAAE,IAAI,IAAI,EAAE,WAAW,IAAI,EAAE;AACvC,QAAIA,IAAIA,KAAK,KAAK,QAAQ,OAAO,mBAAmB,OAAOA,aAAa;AACtE,UAAI,CAACA,EAAE,YAAYA,EAAE,iBAAiB;AACpC,eAAO;AAAA,eACA,OAAO,mBAAmB,OAAOA,aAAa,oBAAoBA,EAAE,cAAc;AAC3F,aAAO;AACT,WAAO,EAAE,YAAY,EAAE,gCAAgC,EAAE,cAAc8R,GAAG,MAAM,GAAG,CAAC,KAAK,cAAc,EAAE,WAAW,EAAE,cAAcpS,EAAE,UAAU,KAAKA,EAAE,WAAW,IAAI,EAAE,cAAc,EAAE,YAAY,GAAG,GAAG,GAAG,EAAE,QAAQA,EAAE,MAAMM,CAAC,KAAKN,EAAE,QAAQ,GAAGA,EAAE,SAAS,GAAG,EAAE,WAAW,EAAE,QAAQ,GAAGA,EAAE,gBAAgB,EAAE,QAAQA,EAAE,MAAMM,CAAC,IAAI;AAAA,EACpU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS;AACP,QAAI,KAAK;AACP;AACF,UAAM,IAAI,KAAK,QAAQ,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAON,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE;AAChH,SAAK,OAAO,GAAGA,CAAC,GAAG,MAAM;EAC1B;AAAA;AAAA,EAED,UAAU;AACR,SAAK,SAAS;AAAA,EACf;AACH;AACA,MAAM0pB,WAAWD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUlB,YAAY,GAAG,GAAG;AAChB,QAAI,IAAI,KAAK,CAAE,GAAE,OAAO,KAAK,UAAU;AACrC,YAAMzpB,IAAI,IAAI;AACd,MAAAypB,GAAG,YAAYzpB,GAAG,GAAG,EAAE,WAAW,GAAGA,EAAE,MAAM,GAAG,IAAIA;AAAA,IACrD;AACD,UAAM,CAAC,GAAG,CAAC,EAAE,YAAY,KAAK,UAAU,KAAK,YAAY,KAAK,SAAS,GAAG,KAAK,UAAU,IAAI,KAAK,MAAM,EAAE,KAAK,KAAK,WAAW,MAAM,KAAK,iBAAiB,IAAI,KAAK,gBAAgB,EAAE,gBAAgB4S,EAAE,wBAAwB,CAAC,CAAC,WAAW,mBAAmB,KAAK,YAAY,OAAO,EAAE,aAAa,WAAW,EAAE,YAAY,MAAM,KAAK,SAAS,MAAM,KAAK,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAK,KAAI;AAAA,EAC5Y;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,WAAO,KAAK,QAAQ,KAAK,SAAS,MAAM,WAAW,KAAK,eAAe,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG5S,MAAM;AAC5G,YAAMM,IAAI,KAAK;AACf,WAAK,MAAMA,EAAE;AACb,YAAM,IAAI,MAAM;AACd,aAAK,cAAcA,EAAE,SAAS,MAAMA,EAAE,UAAU,MAAM,KAAK,UAAU,KAAK,QAAQ,MAAM,KAAK,eAAe,EAAE,KAAK,QAAO,CAAE,IAAI,EAAE,IAAI;AAAA,MAC9I;AACM,MAAAA,EAAE,YAAYA,EAAE,MAAM,EAAG,KAAIA,EAAE,SAAS,GAAGA,EAAE,UAAU,CAAC,MAAM;AAC5D,QAAAN,EAAE,CAAC,GAAG,KAAK,QAAQ,KAAK,CAAC;AAAA,MACjC;AAAA,IACA,CAAK,GAAG,KAAK;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,UAAU;AACR,UAAM,IAAI,KAAK;AACf,QAAI,KAAK,aAAa;AACpB,aAAO,KAAK;AACd,QAAI,KAAK,WAAW,QAAQ,CAAC,WAAW;AACtC,aAAO,QAAQ,QAAQ,IAAI;AAC7B,UAAM,IAAI,WAAW,mBAAmBA,IAAI,CAAC,EAAE,eAAe,EAAE,gBAAgB;AAChF,WAAO,KAAK,WAAW;AAAA,MACrB,EAAE;AAAA,MACF;AAAA,QACE,MAAMA,IAAI,SAAS;AAAA,MACpB;AAAA,IACP,EAAM,KAAK,CAACM,MAAMA,EAAE,KAAI,CAAE,EAAE,KAAK,CAACA,MAAM;AAAA,MAClCA;AAAA,MACA;AAAA,MACA;AAAA,MACA,EAAE;AAAA,MACF,EAAE;AAAA,MACF;AAAA,QACE,kBAAkB,KAAK,cAAc,QAAQ,KAAK,cAAc8R,GAAG,SAAS,gBAAgB;AAAA,MAC7F;AAAA,IACF,CAAA,EAAE,KAAK,CAAC9R,MAAM,KAAK,YAAY,QAAQ,OAAQ,KAAI,KAAK,SAASA,GAAG,KAAK,UAAU,KAAK,WAAW,MAAM,QAAQ,QAAQ,IAAI,EAAE,GAAG,KAAK;AAAA,EACzI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,GAAG,GAAGN,GAAG;AACd,QAAI,OAAO,KAAK,aAAa,aAAa,EAAE,YAAY,KAAK,YAAY,CAAC,KAAK;AAC7E,aAAO,MAAM,OAAO,GAAG,GAAGA,CAAC;AAC7B,QAAI,CAAC,KAAK,WAAW,KAAK,WAAW,CAAC,KAAK;AACzC,aAAO;AACT,QAAI,MAAM,OAAO,GAAG,GAAGA,GAAG,KAAK,MAAM,GAAG,CAAC,KAAK,gBAAgB;AAC5D,UAAIM,IAAI;AACR,YAAM,IAAI,EAAE;AACZ,iBAAW,KAAK,GAAG;AACjB,cAAM,IAAI,EAAE,CAAC;AACb,YAAI,MAAMN,KAAK,EAAE,YAAY,EAAE,SAAS;AACtC,UAAAM,IAAI;AACJ;AAAA,QACD;AAAA,MACF;AACD,MAAAA,MAAM,KAAK,OAAO,SAAS,KAAK,OAAO,SAAS,KAAK,SAAS;AAAA,IAC/D;AACD,WAAO;AAAA,EACR;AAAA;AAAA,EAED,UAAU;AACR,SAAK,OAAO,SAAS,MAAM,KAAK,OAAO,UAAU,MAAM,MAAM,QAAS,GAAE,KAAK,WAAW,KAAK,OAAO,MAAK,GAAI,KAAK,SAAS,OAAO,KAAK,WAAW,MAAM,KAAK,QAAQ;AAAA,EACtK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,KAAK,GAAG;AACb,WAAO,OAAO,mBAAmB,QAAQ,OAAO,KAAK,YAAY,aAAa;AAAA,EAC/E;AACH;AACA,MAAMqpB,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,aAAa,IAAI,aAAa,CAAC;AAAA,EAC7I;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,IAAI,GAAG,GAAG3pB,GAAG;AACX,UAAMM,IAAI,EAAE,OAAO,IAAI,EAAE;AACzB,QAAIN,GAAG;AACL,YAAM,IAAI,EAAE,QAAQ,IAAIM,GAAG,IAAI,EAAE,SAAS,IAAI,GAAGK,IAAI,EAAE,IAAIL,IAAI,GAAGM,IAAI,EAAE,IAAI,IAAI;AAChF,MAAAZ,IAAIgmB,GAAG,IAAIhmB,GAAGgmB,GAAG,EAAE,GAAG,KAAK,KAAKrlB,IAAI,IAAIqlB,GAAG,GAAGhmB,CAAC,GAAG,KAAK,KAAKY,IAAI,IAAIolB,GAAG,GAAGhmB,CAAC,GAAGA,IAAIgmB,GAAG,IAAIhmB,GAAG,CAAC,GAAG,KAAK,KAAKW,IAAI,IAAIqlB,GAAG,GAAGhmB,CAAC,GAAG,KAAK,KAAKY,IAAI,IAAIolB,GAAG,GAAGhmB,CAAC,GAAGA,IAAIgmB,GAAG,IAAIhmB,GAAG,CAAC,GAAG,KAAK,KAAKW,IAAI,IAAIqlB,GAAG,GAAGhmB,CAAC,GAAG,KAAK,KAAKY,IAAI,IAAIolB,GAAG,GAAGhmB,CAAC,GAAGA,IAAIgmB,GAAG,IAAIhmB,GAAG,CAAC,GAAG,KAAK,KAAKW,IAAI,IAAIqlB,GAAG,GAAGhmB,CAAC,GAAG,KAAK,KAAKY,IAAI,IAAIolB,GAAG,GAAGhmB,CAAC;AAAA,IAC1S;AACC,WAAK,KAAK,EAAE,IAAIM,GAAG,KAAK,KAAK,EAAE,IAAI,GAAG,KAAK,MAAM,EAAE,IAAI,EAAE,SAASA,GAAG,KAAK,KAAK,EAAE,IAAI,GAAG,KAAK,MAAM,EAAE,IAAI,EAAE,SAASA,GAAG,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,KAAK,KAAK,EAAE,IAAIA,GAAG,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU;AACzM,SAAK,WAAW,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK;AAAA,EAC7O;AACH;AACAqpB,GAAG,UAAU,WAAW,WAAW;AACjC,SAAO,6BAA6B,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE;AAC/I;AACA,MAAMC,KAAK,IAAID;AACf,SAASE,GAAGjqB,GAAG;AACb,EAAAA,EAAE,UAAU,WAAW;AAAA,EACzB,GAAKA,EAAE,KAAK,WAAW;AAAA,EACvB,GAAKA,EAAE,OAAO,WAAW;AAAA,EACzB,GAAKA,EAAE,OAAO,WAAW;AAAA,EACzB;AACA;AACA,MAAMkqB,UAAUjV,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUjB,YAAY,GAAG,GAAG7U,GAAGM,GAAG,GAAG,GAAG,GAAG;AAC/B,QAAI,MAAK,GAAI,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI,IAAI,IAAI4kB,EAAG,GAAG,GAAG,GAAG,CAAC,IAAI,aAAa4E,MAAM,IAAI,EAAE,cAAc,KAAK,cAAc,GAAG,KAAK,SAAS,GAAG,KAAK,OAAOxpB,GAAG,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,KAAK,OAAOspB,IAAI,KAAK,WAAW,MAAM,KAAK,OAAO5pB,KAAK,GAAG,KAAK,UAAU,OAAO,KAAK,CAAC,GAAG,MAAM;AAClT,WAAK,UAAU;AAAA,aACR,KAAK,UAAU,MAAM;AAC5B,YAAM,IAAI,MAAM,2EAA2E;AAC7F,SAAK,gBAAgB,IAAI,IAAIglB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAIA,GAAG,GAAG,CAAC,GAAG,KAAK,iBAAiB,GAAG,KAAK,YAAY,GAAG,KAAK,kBAAkB,IAAI,EAAE,QAAQ,KAAK,UAAU,EAAE,SAAS,KAAK,qBAAqB,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAK,UAAU,KAAK,sBAAsB,IAAI,GAAG,KAAK,WAAW,EAAE,GAAG,UAAU,KAAK,sBAAsB,IAAI;AAAA,EACxU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,SAAS;AACP,SAAK,YAAY,YAAY,KAAK,YAAY,SAAS;EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,qBAAqB,GAAG;AACtB,QAAI,KAAK,SAAS;AAChB,UAAI,CAAC,KAAK,YAAY;AACpB;AACF,WAAK,OAAO,QAAQ,EAAE,OAAO,KAAK,OAAO,SAAS,EAAE,QAAQ,KAAK,QAAQ,IAAI,KAAK;IACnF;AACC,WAAK,QAAQ,KAAK;AACpB,SAAK,KAAK,UAAU,IAAI;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,GAAG;AACT,QAAI,KAAK,aAAa;AACpB,UAAI,GAAG;AACL,cAAM,EAAE,UAAU,MAAM,KAAK;AAC7B,aAAK,QAAQ,EAAE,OAAOhD,GAAG,EAAE,GAAG,KAAK8H,EAAE,gBAAgB,EAAE,GAAG,GAAG,KAAK,YAAY;MAC/E;AACD,WAAK,YAAY,IAAI,UAAU,KAAK,sBAAsB,IAAI,GAAG,KAAK,YAAY,IAAI,UAAU,KAAK,sBAAsB,IAAI,GAAG,KAAK,cAAc;AAAA,IACtJ;AACD,SAAK,SAAS,MAAM,KAAK,OAAO,MAAM,KAAK,OAAO,MAAM,KAAK,OAAO,MAAM,KAAK,QAAQ,IAAIA,EAAE,gBAAgB,IAAI,GAAG,KAAK,kBAAkB,MAAM,KAAK,YAAY,IAAI,KAAK,KAAK,aAAa,IAAI,GAAG,KAAK;EAC1M;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,QAAIxpB;AACJ,UAAMuX,IAAI,KAAK,OAAO,MAAK,GAAIC,IAAI,KAAK,WAAW,KAAK,OAAOD,IAAI,KAAK,KAAK,MAAO,GAAE7X,IAAI,IAAI8pB;AAAA,MAC5F,KAAK;AAAA,MACL,CAAC,KAAK,WAAWjS;AAAA,MACjBC;AAAA,OACCxX,IAAI,KAAK,SAAS,OAAO,SAASA,EAAE,MAAO;AAAA,MAC5C,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACX;AACI,WAAO,KAAK,YAAYN,EAAE,SAAS6X,IAAI7X;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY;AACV,SAAK,SAAS4pB,OAAO,KAAK,OAAO,IAAID,GAAE,IAAK,KAAK,KAAK,IAAI,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,GAAG,KAAK;AAAA,EAC7G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWD,OAAO,KAAK,GAAG,IAAI,CAAE,GAAE3pB,IAAI4S,EAAE,sBAAsB;AACjD,UAAMtS,IAAI,OAAO,KAAK;AACtB,QAAI,IAAI;AACR,QAAIA;AACF,UAAI;AAAA,aACG,aAAa0jB,GAAI;AACxB,UAAI,CAAC,EAAE,SAAS;AACd,cAAM,KAAK,KAAK,OAAO,SAAS,EAAE,iBAAiB;AACnD,UAAE,UAAU,GAAG,CAAC,IAAIpC,GAAE,CAAE,IAAIoC,EAAG,WAAW,GAAG,EAAE,OAAO;AAAA,MACvD;AACD,UAAI,EAAE;AAAA,IACZ,OAAW;AACL,UAAI,CAAC,EAAE,SAAS;AACd,cAAM,KAAK,KAAK,OAAO,SAAS,EAAE,iBAAiB;AACnD,UAAE,UAAU,GAAG,CAAC,IAAIpC,GAAI,CAAA;AAAA,MACzB;AACD,UAAI,EAAE;AAAA,IACP;AACD,QAAI,IAAII,GAAG,CAAC;AACZ,QAAI1hB,KAAKN,KAAK,CAAC;AACb,YAAM,IAAI,MAAM,gBAAgB,CAAC,mCAAmC;AACtE,WAAO,CAAC,KAAK,EAAE,aAAagkB,MAAO,EAAE,eAAe,EAAE,aAAaxB,GAAG,CAAC,IAAI,IAAI,IAAIsH,EAAE,IAAI9F,EAAG,GAAG,CAAC,CAAC,GAAG,EAAE,YAAY,UAAU,GAAGA,EAAG,WAAW,EAAE,aAAa,CAAC,GAAG8F,EAAE,WAAW,GAAG,CAAC,KAAK,CAAC,KAAK,aAAa9F,MAAO,IAAI,IAAI8F,EAAE,CAAC,GAAGA,EAAE,WAAW,GAAG,CAAC,IAAI;AAAA,EACpP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,OAAO,QAAQ,GAAG,GAAG;AACnB,UAAM9pB,IAAI,OAAO,OAAO,EAAE,UAAU,GAAE,GAAI,KAAK,OAAO,SAAS,EAAE,eAAe,GAAGM,IAAIwpB,EAAE,KAAK,GAAG,OAAO,OAAO,EAAE,iBAAiB9pB,EAAG,GAAE,CAAC,GAAG,EAAE,GAAG,IAAIM,EAAE,YAAY;AAClK,WAAOA,EAAE,YAAY,QAAQ,QAAQ,QAAQA,CAAC,IAAI,EAAE,KAAI,EAAG,KAAK,MAAM,QAAQ,QAAQA,CAAC,CAAC;AAAA,EACzF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBD,OAAO,WAAW,GAAG,GAAGN,GAAGM,GAAG;AAC5B,WAAO,IAAIwpB,EAAE9F,EAAG,WAAW,GAAG,GAAGhkB,GAAGM,CAAC,CAAC;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,OAAO,WAAW,GAAG,GAAGN,GAAGM,GAAG;AAC5B,UAAM,IAAI,IAAI0jB,EAAG,GAAG,OAAO,OAAO;AAAA,MAChC,WAAWA,EAAG,eAAe;AAAA,MAC7B,YAAYxB,GAAG,CAAC;AAAA,IACtB,GAAOliB,CAAC,CAAC,GAAG,EAAE,UAAU,EAAC,IAAK;AAC1B,iBAAaopB,OAAO,EAAE,MAAM;AAC5B,UAAM,IAAI,IAAII,EAAE,CAAC;AACjB,WAAO9pB,MAAMA,IAAI,IAAIgkB,EAAG,WAAW,EAAE,aAAahkB,CAAC,GAAG8pB,EAAE,WAAW,GAAG9pB,CAAC,GAAGA,MAAM,MAAMgkB,EAAG,WAAW,EAAE,aAAa,CAAC,GAAG8F,EAAE,WAAW,GAAG,CAAC,IAAI,EAAE,YAAY,QAAQ,QAAQ,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAACnpB,MAAM;AACxM,QAAE,YAAY,KAAK,UAAU,MAAMA,EAAE,CAAC,CAAC;AAAA,IAC7C,CAAK;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,WAAW,GAAG,GAAG;AACtB,UAAM,EAAE,gBAAgB,SAAS,CAAC,KAAK,EAAE,gBAAgB,KAAK,CAAC,GAAGqhB,GAAG,CAAC,KAAKA,GAAG,CAAC,MAAM,KAAK,QAAQ,KAAK,0CAA0C,CAAC,6BAA6B,GAAGA,GAAG,CAAC,IAAI;AAAA,EAC3L;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,gBAAgB,GAAG;AACxB,QAAI,OAAO,KAAK,UAAU;AACxB,YAAM,IAAIA,GAAG,CAAC;AACd,UAAI,GAAG;AACL,cAAMhiB,IAAI,EAAE,gBAAgB,QAAQ,CAAC;AACrC,eAAOA,IAAI,MAAM,EAAE,gBAAgB,OAAOA,GAAG,CAAC,GAAG,OAAOgiB,GAAG,CAAC,GAAG;AAAA,MAChE;AAAA,IACF,WAAU,KAAK,QAAQ,EAAE,iBAAiB;AACzC,eAAS,IAAI,GAAG,IAAI,EAAE,gBAAgB,QAAQ,EAAE;AAC9C,QAAAA,GAAG,EAAE,gBAAgB,CAAC,CAAC,MAAM,KAAK,OAAOA,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAClE,aAAO,EAAE,gBAAgB,SAAS,GAAG;AAAA,IACtC;AACD,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,aAAa;AACf,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,SAAS,GAAG,KAAK,UAAU;AAChC,UAAM,EAAE,GAAG,GAAG,GAAGhiB,GAAG,OAAOM,GAAG,QAAQ,EAAG,IAAG,GAAG,IAAI,IAAIA,IAAI,KAAK,YAAY,OAAO,IAAIN,IAAI,IAAI,KAAK,YAAY;AAChH,QAAI,KAAK,GAAG;AACV,YAAMW,IAAI,KAAK,IAAI,QAAQ,MAAMC,IAAI,MAAM,CAAC,MAAMN,CAAC,MAAM,IAAIA,CAAC,MAAM,KAAK,YAAY,KAAK,IAAI,IAAI,MAAMN,CAAC,MAAM,CAAC,MAAMA,IAAI,CAAC,MAAM,KAAK,YAAY,MAAM;AACxJ,YAAM,IAAI,MAAM,yEAAyEY,CAAC,IAAID,CAAC,IAAI,CAAC,EAAE;AAAA,IACvG;AACD,SAAK,QAAQL,KAAK,KAAK,KAAK,YAAY,OAAO,CAAC,KAAK,QAAQ,CAAC,KAAK,WAAW,KAAK,OAAO,IAAI,KAAK,SAAS,KAAK;EAClH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,SAAK,UAAU,GAAG,KAAK,SAAS,KAAK;EACtC;AAAA;AAAA,EAED,IAAI,QAAQ;AACV,WAAO,KAAK,KAAK;AAAA,EAClB;AAAA;AAAA,EAED,IAAI,SAAS;AACX,WAAO,KAAK,KAAK;AAAA,EAClB;AAAA;AAAA,EAED,oBAAoB;AAClB,WAAO,KAAK;AAAA,EACb;AAAA;AAAA,EAED,WAAW,QAAQ;AACjB,WAAOwpB,EAAE,WAAWA,EAAE,SAAS,IAAIA,EAAE,IAAI9F,EAAE,CAAE,GAAG6F,GAAGC,EAAE,MAAM,GAAGD,GAAGC,EAAE,OAAO,WAAW,IAAIA,EAAE;AAAA,EAC5F;AAAA;AAAA,EAED,WAAW,QAAQ;AACjB,QAAI,CAACA,EAAE,QAAQ;AACb,YAAM,IAAIlX,EAAE,QAAQ,aAAa,IAAI,EAAE,GAAG,IAAI,EAAE,WAAW,IAAI;AAC/D,QAAE,QAAQ,IAAI,EAAE,SAAS,IAAI,EAAE,YAAY,SAAS,EAAE,SAAS,GAAG,GAAG,IAAI,EAAE,GAAGkX,EAAE,SAAS,IAAIA,EAAE9F,EAAG,KAAK,CAAC,CAAC,GAAG6F,GAAGC,EAAE,MAAM,GAAGD,GAAGC,EAAE,OAAO,WAAW;AAAA,IAClJ;AACD,WAAOA,EAAE;AAAA,EACV;AACH;AACA,MAAMC,WAAWD,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,YAAY,GAAG,GAAG;AAChB,UAAM,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,cAAc,MAAM,KAAK,gBAAgB,MAAM,KAAK;EACxF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,cAAc;AAChB,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,cAAc;AAChB,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA,EACD,IAAI,YAAY,GAAG;AACjB,SAAK,YAAY,cAAc;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,OAAO,GAAG,GAAG9pB,IAAI,IAAI;AACnB,UAAMM,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,MAAM,IAAIA,CAAC,IAAIA,GAAG,IAAI,KAAK,MAAM,IAAIA,CAAC,IAAIA;AAC1F,SAAK,QAAQ,IAAI,KAAK,IAAI,GAAG,KAAK,OAAO,QAAQ,KAAK,KAAK,QAAQ,GAAG,KAAK,OAAO,SAAS,KAAK,KAAK,SAAS,GAAGN,KAAK,KAAK,YAAY,OAAO,GAAG,CAAC,GAAG,KAAK,UAAS;AAAA,EACpK;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc,GAAG;AACf,UAAM,EAAE,aAAa,EAAG,IAAG;AAC3B,MAAE,eAAe,MAAM,EAAE,cAAc,CAAC,GAAG,KAAK,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaD,OAAO,OAAO,GAAG;AACf,WAAO,IAAI+pB,GAAG,IAAIP,GAAG,CAAC,CAAC;AAAA,EACxB;AACH;AACA,MAAMQ,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,GAAG;AACb,SAAK,cAAc,IAAI,KAAK,iBAAiB,KAAK,CAAA,GAAI,KAAK,mBAAmB,IAAI,KAAK,eAAe,GAAG,KAAK,gBAAgB;AAAA,EAC/H;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,cAAc,GAAG,GAAGhqB,IAAIyS,GAAG,MAAM;AAC/B,UAAMnS,IAAI,IAAIkpB,GAAG,OAAO,OAAO;AAAA,MAC7B,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,aAAaxpB;AAAA,IACnB,GAAO,KAAK,cAAc,CAAC;AACvB,WAAO,IAAI+pB,GAAGzpB,CAAC;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,kBAAkB,GAAG,GAAGN,IAAI,GAAGM,IAAImS,GAAG,MAAM;AAC1C,QAAI;AACJ,QAAI,KAAK,IAAI,KAAK,KAAK,IAAIzS,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,KAAK,KAAK,IAAIA,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,oBAAoB,MAAM,KAAK,gBAAgB,MAAM,KAAK,iBAAiB,IAAIshB,GAAG,CAAC,GAAG,IAAIA,GAAG,CAAC,GAAG,MAAM,IAAI,UAAU,KAAK,IAAI,WAAW,GAAGhhB,IAAI,MAAM,KAAKA,IAAI,eAAe,IAAIA,IAAI,IAAI,CAACA,IAAI,IAAI,KAAK,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI,CAAA;AAC3U,QAAI,IAAI,KAAK,YAAY,CAAC,EAAE,IAAG;AAC/B,WAAO,MAAM,IAAI,KAAK,cAAc,GAAG,GAAGA,CAAC,IAAI,EAAE,gBAAgB,GAAG,EAAE,cAAcN,CAAC,GAAG;AAAA,EACzF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,iBAAiB,GAAG,GAAGA,GAAG;AACxB,UAAMM,IAAI,KAAK;AAAA,MACb,EAAE;AAAA,MACF,EAAE;AAAA,MACF,KAAK,EAAE;AAAA,MACPN,KAAKyS,GAAG;AAAA,IACd;AACI,WAAOnS,EAAE,cAAc,EAAE,aAAaA;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc,GAAG;AACf,UAAM,IAAI,EAAE;AACZ,MAAE,cAAc,MAAM,KAAK,YAAY,CAAC,EAAE,KAAK,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,oBAAoB,GAAG;AACrB,SAAK,cAAc,CAAC;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,MAAM,GAAG;AACP,QAAI,IAAI,MAAM,IAAI;AAChB,iBAAW,KAAK,KAAK,aAAa;AAChC,cAAMN,IAAI,KAAK,YAAY,CAAC;AAC5B,YAAIA;AACF,mBAASM,IAAI,GAAGA,IAAIN,EAAE,QAAQM;AAC5B,YAAAN,EAAEM,CAAC,EAAE,QAAQ,EAAE;AAAA,MACpB;AACH,SAAK,cAAc;EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,cAAc,GAAG;AACf,QAAI,EAAE,EAAE,UAAU,KAAK,gBAAgB,EAAE,WAAW,KAAK,gBAAgB;AACvE,WAAK,mBAAmB,EAAE,QAAQ,KAAK,EAAE,SAAS;AAClD,iBAAW,KAAK,KAAK,aAAa;AAChC,YAAI,EAAE,OAAO,CAAC,IAAI;AAChB;AACF,cAAMN,IAAI,KAAK,YAAY,CAAC;AAC5B,YAAIA;AACF,mBAASM,IAAI,GAAGA,IAAIN,EAAE,QAAQM;AAC5B,YAAAN,EAAEM,CAAC,EAAE,QAAQ,EAAE;AACnB,aAAK,YAAY,CAAC,IAAI;MACvB;AACD,WAAK,eAAe,EAAE,OAAO,KAAK,gBAAgB,EAAE;AAAA,IACrD;AAAA,EACF;AACH;AACA0pB,GAAG,aAAa;AAChB,MAAMC,WAAWvF,GAAG;AAAA,EAClB,cAAc;AACZ,UAAO,GAAE,KAAK,aAAa,mBAAmB,IAAI,aAAa;AAAA,MAC7D;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,CAAK,CAAC,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAAA,EAC1B;AACH;AACA,MAAMwF,WAAWxF,GAAG;AAAA,EAClB,cAAc;AACZ,aAAS,KAAK,WAAW,IAAI,aAAa;AAAA,MACxC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAA,GAAG,KAAK,MAAM,IAAI,aAAa;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,CAAK,GAAG,KAAK,eAAe,IAAIP,GAAG,KAAK,QAAQ,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,GAAG,GAAG,KAAK,aAAa,mBAAmB,KAAK,YAAY,EAAE,aAAa,iBAAiB,KAAK,QAAQ,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAAA,EAClN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,GAAG,GAAG;AACR,QAAInkB,IAAI,GAAGM,IAAI;AACf,WAAO,KAAK,IAAI,CAAC,IAAIN,GAAG,KAAK,IAAI,CAAC,IAAIM,GAAG,KAAK,IAAI,CAAC,IAAIN,IAAI,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,IAAIM,GAAG,KAAK,IAAI,CAAC,IAAIN,IAAI,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,IAAIM,IAAI,EAAE,SAAS,EAAE,QAAQ,KAAK,IAAI,CAAC,IAAIN,GAAG,KAAK,IAAI,CAAC,IAAIM,IAAI,EAAE,SAAS,EAAE,QAAQN,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,IAAIN,GAAG,KAAK,SAAS,CAAC,IAAIM,GAAG,KAAK,SAAS,CAAC,IAAIN,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,IAAIM,GAAG,KAAK,SAAS,CAAC,IAAIN,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,IAAIM,IAAI,EAAE,QAAQ,KAAK,SAAS,CAAC,IAAIN,GAAG,KAAK,SAAS,CAAC,IAAIM,IAAI,EAAE,QAAQ,KAAK,WAAU,GAAI;AAAA,EACne;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa;AACX,WAAO,KAAK,aAAa,aAAa,KAAK,SAAS,aAAa;AAAA,EAClE;AACH;AACA,MAAM6pB,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,gBAAgB,MAAM,KAAK,SAAS,MAAM,KAAK,SAAS,IAAI,KAAK,aAAa,GAAG,KAAK,cAAc1X,GAAG,MAAM,KAAK,cAAc,IAAIyS,EAAE,GAAI,KAAK,mBAAmB,IAAIA,EAAE,GAAI,KAAK,qBAAqB,IAAIA,KAAM,KAAK,0BAA0B,IAAIA,EAAI,GAAE,KAAK,UAAU,CAAA,GAAI,KAAK,YAAY;AAAA,EACnS;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,SAAS,MAAM,KAAK,UAAU,MAAM,KAAK,gBAAgB;AAAA,EAC/D;AACH;AACA,MAAMkF,KAAK,CAAC,IAAIpF,MAAM,IAAIA,GAAE,GAAI,IAAIA,GAAI,GAAE,IAAIA,GAAI,CAAA,GAAGqF,KAAK,IAAI9E,GAAE;AAChE,MAAM+E,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,qBAAqB,CAAC,CAAA,CAAE,GAAG,KAAK,cAAc,IAAIN,GAAE,GAAI,KAAK,YAAY,CAAA,GAAI,KAAK,OAAO,IAAIC,GAAI,GAAE,KAAK,SAAS,IAAIC,GAAI,GAAE,KAAK,WAAW,IAAIhF,EAAE,GAAI,KAAK,cAAc,CAAA,GAAI,KAAK,iBAAiB,IAAIgD,GAAG;AAAA,MAC/N,aAAa,IAAIhD,EAAI;AAAA,MACrB,WAAW,IAAI,aAAa,CAAC;AAAA,MAC7B,YAAY,IAAI,aAAa,CAAC;AAAA,MAC9B,YAAY,IAAI,aAAa,CAAC;AAAA,MAC9B,YAAY;AAAA;AAAA,MAEZ,YAAY,IAAI,aAAa,CAAC;AAAA,MAC9B,aAAa,IAAI,aAAa,CAAC;AAAA,IACrC,GAAO,EAAE,GAAG,KAAK,aAAa,IAAI,KAAK,gBAAgB;AAAA,EACpD;AAAA,EACD,OAAO;AACL,SAAK,YAAY,cAAc,KAAK,SAAS,IAAI;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,KAAK,GAAG,GAAG;AACT,UAAMllB,IAAI,KAAK,UAAUM,IAAI,KAAK,oBAAoB,IAAI,KAAK,UAAU,IAAG,KAAM,IAAI6pB,GAAI,GAAE,IAAInqB,EAAE;AAClG,QAAI,GAAGW;AACP,QAAI,EAAE,SAAS;AACb,YAAMO,IAAI,EAAE;AACZ,UAAIA,EAAE,YAAYP,IAAIO,EAAE;AAAA,IACzB;AACC,UAAIlB,EAAE,YAAYW,IAAIX,EAAE;AAC1B,QAAIY,IAAI,EAAE,CAAC,EAAE,cAAc,GAAG,IAAI,EAAE,CAAC,EAAE,eAAeD,GAAG,IAAI,EAAE,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,SAASE,IAAI,EAAE,CAAC,EAAE,UAAU;AAChH,aAASK,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,YAAME,IAAI,EAAEF,CAAC;AACb,MAAAN,IAAI,KAAK,IAAIA,GAAGQ,EAAE,cAAc,CAAC,GAAG,IAAI,KAAK,IAAI,GAAGA,EAAE,eAAeT,CAAC,GAAG,IAAI,KAAK,gBAAgB,KAAK,IAAI,GAAGS,EAAE,OAAO,IAAI,IAAIA,EAAE,SAAS,IAAI,KAAKA,EAAE,SAASP,IAAIA,MAAMO,EAAE,UAAU;AAAA,IACrL;AACD,IAAAd,EAAE,WAAW,MAAM,KAAK,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,UAAUA,EAAE,KAAK,CAAC,GAAG,EAAE,aAAaM,GAAG,EAAE,cAAc,GAAG,EAAE,SAASC,GAAG,EAAE,SAAS,GAAG,EAAE,YAAY,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,YAAY,IAAI,CAAC;AAClO,UAAMC,IAAI,KAAK,SAAS,SAAS,EAAE,WAAW;AAC9C,IAAAd,EAAE,WAAW,aAAa,KAAK;AAAA,MAC7BqqB,GAAG,SAASrqB,EAAE,WAAW,SAAS,EAAE,OAAQ;AAAA,MAC5Cc;AAAA,IACN,GAAO,KAAK,EAAE,YAAY,IAAIA,CAAC,IAAI,EAAE,YAAY,SAAS,KAAK,EAAE,YAAY,UAAU,OAAO,EAAE,YAAY,QAAQ,GAAG,EAAE,YAAY,SAAS,MAAM,EAAE,YAAY,WAAWA,CAAC,MAAM,EAAE,YAAY,QAAQ,GAAG,EAAE,YAAY,SAAS,IAAI,KAAK;AAAA,MACvO,EAAE;AAAA,MACF,EAAE,UAAU,EAAE,QAAQ,aAAad,EAAE;AAAA,MACrC,EAAE;AAAA,MACF,EAAE;AAAA,MACFA,EAAE,WAAW;AAAA,IACnB,GAAO,EAAE,gBAAgB,KAAK;AAAA,MACxB,EAAE,YAAY;AAAA,MACd,EAAE,YAAY;AAAA,MACdY;AAAA,MACA;AAAA,IACN,GAAO,EAAE,UAAU,GAAG,EAAE,iBAAiB,QAAQ,EAAE,cAAc,OAAO,EAAE,iBAAiB,SAAS,EAAE,cAAc;AAChH,UAAM,IAAI,KAAK;AACf,MAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,YAAY,QAAQ,EAAE,cAAc,cAAc,EAAE,aAAa,EAAE,mBAAmB,SAAS,EAAE,WAAW,GAAG,EAAE,wBAAwB,SAAS,EAAE,gBAAgB,GAAG,EAAE,YAAYZ,EAAE,WAAW,WAAWA,EAAE,WAAW,YAAY,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,CAAC,GAAGA,EAAE,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC;AAAA,EACpX;AAAA;AAAA,EAED,MAAM;AACJ,UAAM,IAAI,KAAK,oBAAoB,IAAI,EAAE,OAAOA,IAAI,EAAE;AACtD,SAAK,cAAc;AACnB,UAAMM,IAAI,KAAK,eAAe;AAC9B,IAAAA,EAAE,cAAc,EAAE,aAAaA,EAAE,aAAa,EAAE;AAChD,UAAM,IAAIA,EAAE,WAAW,IAAIA,EAAE,YAAY,IAAIA,EAAE;AAC/C,QAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,QAAQ,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,SAAS,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ;AAC1W,YAAMM,IAAIN,EAAE;AACZ,MAAAM,EAAE,CAAC,IAAI,EAAE,iBAAiB,OAAOA,EAAE,CAAC,IAAI,EAAE,iBAAiB,QAAQA,EAAE,CAAC,IAAI,EAAE,YAAY,GAAGA,EAAE,CAAC,IAAI,EAAE,YAAY,GAAGN,EAAE,cAAcA,EAAE;AAAA,IACtI;AACD,SAAK,eAAe;AACpB,UAAMK,IAAI,EAAE,EAAE,SAAS,CAAC;AACxB,QAAI,KAAK,SAAS,YAAY,KAAI,GAAIX,EAAE,WAAW;AACjD,MAAAA,EAAE,CAAC,EAAE,MAAM,MAAM,EAAE,eAAeW,EAAE,eAAe0R,GAAG,OAAO,CAAC,GAAG,KAAK,oBAAoB,EAAE,aAAa;AAAA,SACtG;AACH,UAAIzR,IAAI,EAAE,eAAe,IAAI,KAAK;AAAA,QAChCA,EAAE;AAAA,QACFA,EAAE;AAAA,QACF,EAAE;AAAA,MACV;AACM,QAAE,cAAcA,EAAE;AAClB,UAAI,IAAI;AACR,WAAK,IAAI,GAAG,IAAIZ,EAAE,SAAS,GAAG,EAAE,GAAG;AACjC,cAAM,KAAK,EAAE,cAAc,MAAM,IAAI,KAAK;AAAA,UACxCY,EAAE;AAAA,UACFA,EAAE;AAAA,UACF,EAAE;AAAA,QACZ,GAAW,EAAE,cAAcA,EAAE,cAAcZ,EAAE,CAAC,EAAE,MAAM,MAAMY,GAAG,GAAGyR,GAAG,OAAO,CAAC;AACrE,cAAM,IAAIzR;AACV,QAAAA,IAAI,GAAG,IAAI;AAAA,MACZ;AACD,MAAAZ,EAAE,CAAC,EAAE,MAAM,MAAMY,GAAGD,EAAE,eAAe0R,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,EAAE,cAAc,KAAK,KAAK,oBAAoB,EAAE,aAAa,GAAG,KAAK,oBAAoBzR,CAAC,GAAG,KAAK,oBAAoB,CAAC;AAAA,IACpL;AACD,MAAE,MAAK,GAAI,KAAK,UAAU,KAAK,CAAC;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,aAAa,GAAG,IAAIyR,GAAG,OAAO;AAC5B,UAAM;AAAA,MACJ,eAAerS;AAAA,MACf,OAAOM;AAAA,IACb,IAAQ,KAAK;AACT,QAAI,MAAM,KAAK,mBAAmB,KAAK,mBAAmB,SAAS,CAAC,EAAE,gBAAgB,KAAK,SAAS,WAAW,YAAY,KAAK,YAAY,YAAY,KAAK,SAAS,WAAW,YAAY,MAAM,KAAK,OAAO,SAAS,EAAE,aAAa;AACrO,YAAM,IAAI,KAAK;AACf,QAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,YAAY,QAAQN,EAAE,KAAK,GAAG,EAAE,aAAa,CAAC;AAAA,IAC7G;AACC,YAAM,KAAK,mBAAmB,KAAK,mBAAmB,SAAS,CAAC,EAAE,gBAAgBA,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,cAAc;AAAA,QACxH;AAAA,QACA,KAAK,YAAY;AAAA,QACjB,KAAK,YAAY;AAAA,MACzB;AACI,UAAM,IAAIM,EAAE,UAAU,KAAK,KAAK;AAChC,KAAC,MAAM+R,GAAG,SAAS,MAAMA,GAAG,QAAQ,MAAM,KAAK,SAAS,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC;AAAA,EACrF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,YAAY,GAAG,GAAGrS,GAAGM,GAAG;AACtB,UAAM,IAAI,KAAK;AACf,MAAE,MAAM,IAAI,EAAE,KAAK,GAAG,KAAK,aAAaN,GAAGM,CAAC,GAAG,EAAE,SAAS,WAAW,GAAG,EAAE,SAAS,gBAAgB,KAAK,gBAAgB,EAAE,OAAO,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,cAAc,eAAe,EAAE,UAAU,KAAK,OAAO,IAAI,EAAE,QAAQ,EAAE,WAAW,GAAG,EAAE,SAAS,KAAK,KAAK,MAAM,GAAG,EAAE,SAAS,KAAKsR,GAAG,SAAS,MAAM,EAAE,SAAS,KAAK,KAAK,IAAI,GAAG,EAAE,SAAS,KAAKA,GAAG,cAAc;AAAA,EAClX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,sBAAsB,GAAG,GAAG;AAC1B,UAAM,EAAE,aAAa5R,GAAG,kBAAkBM,EAAC,IAAK,KAAK,aAAa,EAAE,MAAM,EAAC,IAAK,EAAE,UAAU,IAAI,EAAE;AAAA,MAChGA,EAAE;AAAA,MACF;AAAA,MACA;AAAA,MACAA,EAAE;AAAA,MACFN,EAAE;AAAA,MACFA,EAAE;AAAA,IACR,GAAO,IAAI,EAAE,eAAe,OAAOulB,GAAG,WAAW;AAC7C,WAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,MAAM,GAAG,EAAE,UAAU,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,GAAG;AAAA,EAC3G;AAAA;AAAA,EAED,UAAU;AACR,SAAK,WAAW,MAAM,KAAK,YAAY,MAAM,EAAE;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,wBAAwB,GAAG,GAAGvlB,IAAI,GAAGM,IAAImS,GAAG,MAAM;AAChD,WAAO,KAAK,YAAY,kBAAkB,GAAG,GAAGzS,GAAGM,CAAC;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,iBAAiB,GAAG,GAAGN,GAAG;AACxB,QAAI,OAAO,KAAK,UAAU;AACxB,YAAM,IAAI;AACV,UAAI,GAAG,IAAI;AAAA,IACZ;AACD,QAAI,KAAK,KAAK,YAAY;AAC1B,UAAMM,IAAI,KAAK,YAAY;AAAA,MACzB,EAAE;AAAA,MACF,EAAE;AAAA,MACF,KAAK,EAAE;AAAA,MACPN,KAAKyS,GAAG;AAAA,IACd;AACI,WAAOnS,EAAE,cAAc,EAAE,aAAaA;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,oBAAoB,GAAG;AACrB,SAAK,YAAY,cAAc,CAAC;AAAA,EACjC;AAAA;AAAA,EAED,YAAY;AACV,SAAK,YAAY,MAAM,EAAE;AAAA,EAC1B;AAAA;AAAA,EAED,SAAS;AACP,SAAK,YAAY,cAAc,KAAK,SAAS,IAAI;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc,GAAG,GAAG;AAClB,UAAMN,IAAIoqB,GAAG,CAAC,GAAG9pB,IAAI8pB,GAAG,CAAC,GAAG,IAAIA,GAAG,CAAC,GAAG,IAAIA,GAAG,CAAC;AAC/C,IAAApqB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAGM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,MAAMN,GAAGA,CAAC,GAAG,EAAE,MAAMM,GAAGA,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC;AACzJ,UAAM,IAAI,KAAK,IAAIN,EAAE,GAAGM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAGK,IAAI,KAAK,IAAIX,EAAE,GAAGM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAGM,IAAI,KAAK,IAAIZ,EAAE,GAAGM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,KAAK,IAAIN,EAAE,GAAGM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3I,MAAE,IAAI,GAAG,EAAE,IAAIK,GAAG,EAAE,QAAQC,IAAI,GAAG,EAAE,SAAS,IAAID;AAAA,EACnD;AAAA,EACD,WAAW,GAAG,GAAGX,GAAGM,GAAG,GAAG;AACxB,QAAI,EAAE,EAAE,SAAS,KAAK,EAAE,UAAU,KAAKN,EAAE,SAAS,KAAKA,EAAE,UAAU,IAAI;AACrE,UAAI,GAAG;AACL,cAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAGW,GAAG,GAAGC,EAAG,IAAG;AACnC,aAAK,KAAK,IAAI,CAAC,IAAI,QAAQ,KAAK,IAAID,CAAC,IAAI,UAAU,KAAK,IAAI,CAAC,IAAI,QAAQ,KAAK,IAAIC,CAAC,IAAI;AACrF;AAAA,MACH;AACD,UAAI,IAAIypB,GAAG,SAAS,CAAC,IAAIA,GAAG,SAAQ,GAAI,EAAE,UAAU,CAACrqB,EAAE,GAAG,CAACA,EAAE,CAAC,EAAE;AAAA,QAC9DM,EAAE,QAAQN,EAAE;AAAA,QACZM,EAAE,SAASN,EAAE;AAAA,MACrB,EAAQ,UAAUM,EAAE,GAAGA,EAAE,CAAC,GAAG,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,cAAc,EAAE,UAAU,CAAC;AAAA,IAC7F;AAAA,EACF;AACH;AACAgqB,GAAG,YAAY;AAAA,EACb,MAAM7H,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAI0H,EAAE;AACR,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,cAAc,GAAG,KAAK,UAAU,MAAM,KAAK,UAAU,IAAI,KAAK,cAAc,IAAI,KAAK,YAAY,IAAI,KAAK,cAAc9X,GAAG,MAAM,KAAK,aAAa,MAAM,KAAK,kBAAkB,MAAM,KAAK,WAAW;AAAA,EAC5M;AACH;AACA,MAAM+X,KAAK,IAAItF;AACf,MAAMuF,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,sBAAsB,CAAE,GAAE,KAAK,qBAAqB,IAAIlB,GAAG,IAAI,EAAE,GAAG,KAAK,cAAc;AAAA,EAChH;AAAA;AAAA,EAED,gBAAgB;AACd,SAAK,WAAW,EAAE;AAClB,UAAM,IAAI,KAAK,KAAK,KAAK,SAAS;AAClC,QAAI,KAAK,cAAc,KAAK,SAAS,aAAa,KAAK,UAAU,KAAK,oBAAoB,KAAK,WAAW,IAAIrE,KAAM,KAAK,SAAS,IAAI,KAAK,oBAAoB,IAAI,KAAK,SAAS,QAAQ,iBAAiB,GAAG;AAC3M,UAAI,IAAI,KAAK,SAAS,QAAQ,WAAW,aAAallB,IAAI,KAAK,SAAS,QAAQ,WAAW;AAC3F,MAAA4S,EAAE,eAAepB,GAAG,iBAAiB,IAAI,MAAMxR,IAAI,OAAO,IAAI,EAAE,cAAc,CAACM,MAAM,EAAE,iBAAiBA,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,cAAc,MAAM;AAAA,MACrJ,IAAGN,MAAM,KAAK,oBAAoB;AAAA,IACpC;AACC,WAAK,cAAc,EAAE,2BAA2B,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;AAAA,EACrF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,KAAK,GAAG,GAAGA,IAAI,GAAG;AAChB,UAAM,EAAE,IAAIM,EAAG,IAAG;AAClB,QAAI,GAAG;AACL,YAAM,IAAI,EAAE,eAAe,KAAK,WAAW,KAAK,KAAK,gBAAgB,CAAC;AACtE,WAAK,YAAY,MAAM,KAAK,UAAU,GAAGA,EAAE,gBAAgBA,EAAE,aAAa,EAAE,WAAW,IAAI,EAAE,aAAaN,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,WAAWA,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,KAAK,kBAAkB,GAAGA,CAAC,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,KAAK,kBAAkB,CAAC;AACla,eAAS,IAAI,GAAG,IAAI,EAAE,cAAc,QAAQ,KAAK;AAC/C,cAAM,IAAI,EAAE,cAAc,CAAC;AAC3B,aAAK,SAAS,QAAQ,OAAO,EAAE,sBAAsB,CAAC;AAAA,MACvD;AACD,UAAI,EAAE,gBAAgB,KAAK,SAAS,QAAQ,OAAO,EAAE,YAAY,GAAG,GAAG;AACrE,cAAM,IAAI,EAAE,SAASA,GAAG,IAAI,EAAE,UAAUA,GAAGW,IAAI,IAAI,EAAE;AACrD,aAAK;AAAA,UACH,EAAE,IAAIA;AAAA,UACN,EAAE,IAAIA;AAAA,UACN;AAAA,UACA;AAAA,QACV;AAAA,MACA,OAAa;AACL,cAAM,IAAI,EAAE,SAASX,GAAG,IAAI,EAAE,UAAUA;AACxC,aAAK,YAAY,GAAG,GAAG,GAAG,CAAC;AAAA,MAC5B;AAAA,IACF;AACC,WAAK,YAAY,KAAK,UAAU,MAAMM,EAAE,gBAAgBA,EAAE,aAAa,IAAI,IAAI,IAAI,KAAK,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,YAAY,GAAG,GAAG,KAAK,SAAS,OAAO,KAAK,SAAS,MAAM;AAAA,EACtM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,YAAY,GAAG,GAAGN,GAAGM,GAAG;AACtB,UAAM,IAAI,KAAK;AACf,QAAI,KAAK,MAAM,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,GAAGN,IAAI,KAAK,MAAMA,CAAC,GAAGM,IAAI,KAAK,MAAMA,CAAC,IAAI,EAAE,UAAUN,KAAK,EAAE,WAAWM,KAAK,EAAE,MAAM,KAAK,EAAE,MAAM,OAAO,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,QAAQN,GAAG,EAAE,SAASM,GAAG,KAAK,GAAG,SAAS,GAAG,GAAGN,GAAGM,CAAC;AAAA,EACrN;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,OAAO;AACT,WAAO,KAAK,UAAU,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,KAAK,QAAQ,OAAO,QAAQ,KAAK,QAAQ,OAAQ,IAAG,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,KAAK,SAAS,OAAO,QAAQ,KAAK,SAAS,OAAM;AAAA,EACtK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,MAAM,GAAG,GAAGN,GAAGM,GAAG,IAAIoR,GAAG,QAAQA,GAAG,OAAO;AACzC,UAAM,EAAE,IAAI,EAAG,IAAG;AAClB,MAAE,WAAW,GAAG,GAAG1R,GAAGM,CAAC,GAAG,EAAE,MAAM,CAAC;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,gBAAgB,GAAG;AACjB,UAAM,EAAE,IAAI,EAAC,IAAK,MAAMN,IAAI,IAAIuqB,GAAG,EAAE,kBAAiB,CAAE;AACxD,WAAOvqB,EAAE,cAAc,KAAK,cAAc,EAAE,WAAW,GAAG,EAAE,eAAe,KAAK,WAAW,IAAIA,GAAG,KAAK,oBAAoB,KAAK,CAAC,GAAG,EAAE,cAAc,IAAI,IAAI,GAAGA;AAAA,EAChK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,kBAAkB,GAAG;AACnB,UAAM,EAAE,IAAI,EAAC,IAAK,MAAMA,IAAI,EAAE,eAAe,KAAK,WAAW;AAC7D,QAAIA,EAAE,SAAS;AACb,QAAE,iBAAiB,EAAE,cAAcA,EAAE,OAAO;AAC5C,UAAI;AACJ,WAAK,SAAS,QAAQ,iBAAiB,IAAI,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE,mBAAmB,EAAE,QAAQ,IAAI,EAAE,oBAAoB,IAAI,EAAE,gBAAgBA,EAAE,aAAa,EAAE;AAAA,QAC1L,EAAE;AAAA,QACFA,EAAE;AAAA,QACF;AAAA,QACA,EAAE;AAAA,QACF,EAAE;AAAA,MACV,IAAU,EAAE,oBAAoB,EAAE,cAAc,GAAG,EAAE,OAAO,EAAE,MAAM;AAAA,IAC/D;AACD,UAAMM,IAAI,EAAE;AACZ,QAAI,IAAIA,EAAE;AACV,MAAE,gBAAgB,IAAI,KAAK,IAAI,GAAG,CAAC;AACnC,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,YAAM,IAAIA,EAAE,CAAC,GAAGK,IAAI,EAAE,sBAAsB;AAC5C,WAAK,SAAS,QAAQ,KAAKA,GAAG,CAAC,GAAG,MAAM,KAAKX,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAcA,EAAE,UAAU,GAAG,EAAE;AAAA,QAChH,EAAE;AAAA,QACFA,EAAE;AAAA,QACFW,EAAE,YAAY,KAAK,WAAW,EAAE;AAAA,QAChC,EAAE;AAAA,QACF,EAAE;AAAA,MACV;AAAA,IACK;AACD,MAAE,gBAAgB,KAAK,qBAAqB,KAAK,SAAS,QAAQ,KAAK,EAAE,cAAc,CAAC;AAAA,EACzF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,kBAAkB,GAAG,GAAG;AACtB,UAAM,EAAE,IAAIX,MAAM,MAAMM,IAAI,EAAE,eAAe,KAAK,WAAW,GAAG,IAAI,EAAE;AACtE,QAAI,IAAI,EAAE;AACV,IAAAN,EAAE,gBAAgB,IAAI,KAAK,IAAI,GAAG,CAAC,IAAIM,EAAE,cAAc,KAAK,KAAK,0BAA0B,CAAC,IAAIA,EAAE,aAAaA,EAAE,cAAcN,EAAE,mBAAkB,IAAKM,EAAE,eAAeN,EAAE,mBAAmBM,EAAE,UAAU,GAAGA,EAAE,aAAa,MAAMA,EAAE,oBAAoBA,EAAE,gBAAgB,QAAS,GAAEA,EAAE,kBAAkB;AACzS,UAAM,IAAI,CAAA;AACV,aAASK,IAAI,GAAGA,IAAI,GAAGA,KAAK;AAC1B,YAAMC,IAAI,EAAED,CAAC,GAAG,IAAIC,EAAE,sBAAsBA;AAC5C,WAAK,SAAS,QAAQ,KAAK,GAAG,CAAC,GAAGD,MAAM,KAAKL,EAAE,cAAcN,EAAE,iBAAiBA,EAAE,cAAcM,EAAE,UAAU,GAAGN,EAAE;AAAA,QAC/GA,EAAE;AAAA,QACFM,EAAE;AAAA,QACF,EAAE,YAAY,KAAK,WAAW,EAAE;AAAA,QAChC,EAAE;AAAA,QACF,EAAE;AAAA,MACH,GAAEN,EAAE,wBAAwBA,EAAE,aAAaA,EAAE,mBAAmBA,EAAE,cAAcM,EAAE,UAAU,MAAMN,EAAE;AAAA,QACnGA,EAAE;AAAA,QACFA,EAAE,oBAAoBW;AAAA,QACtBC,EAAE;AAAA,QACF,EAAE,YAAY,KAAK,WAAW,EAAE;AAAA,QAChC;AAAA,MACR,GAAS,EAAE,KAAKZ,EAAE,oBAAoBW,CAAC;AAAA,IAClC;AACD,QAAI,EAAE,SAAS,KAAKX,EAAE,YAAY,CAAC,GAAG,EAAE,gBAAgB,KAAK,mBAAmB;AAC9E,YAAMW,IAAI,EAAE;AACZ,WAAK,SAAS,QAAQ,KAAKA,GAAG,CAAC,GAAGX,EAAE;AAAA,QAClCA,EAAE;AAAA,QACFA,EAAE;AAAA,QACFA,EAAE;AAAA,QACFW,EAAE,YAAY,KAAK,WAAW,EAAE;AAAA,QAChC;AAAA,MACR;AAAA,IACK;AACD,SAAK,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,gBAAgB,KAAK,oBAAoB;AACzE,MAAAL,EAAE,UAAUA,EAAE,WAAWN,EAAE,mBAAkB;AAC7C,UAAIW,GAAGC;AACP,WAAK,SAAS,QAAQ,iBAAiB,KAAKD,IAAIX,EAAE,0BAA0BY,IAAIZ,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAWW,IAAIX,EAAE,0BAA0BY,IAAIZ,EAAE,oBAAoB,EAAE,SAASW,IAAIX,EAAE,kBAAkBY,IAAIZ,EAAE,sBAAsBW,IAAIX,EAAE,oBAAoBY,IAAIZ,EAAE,iBAAiBA,EAAE,iBAAiBA,EAAE,cAAcM,EAAE,OAAO,GAAGA,EAAE,aAAaN,EAAE;AAAA,QACnWA,EAAE;AAAA,QACFM,EAAE;AAAA,QACFM;AAAA,QACA,EAAE;AAAA,QACF,EAAE;AAAA,MACV,IAAUZ,EAAE,oBAAoBA,EAAE,cAAcY,GAAG,EAAE,OAAO,EAAE,MAAM,GAAGZ,EAAE,wBAAwBA,EAAE,aAAaW,GAAGX,EAAE,cAAcM,EAAE,OAAO;AAAA,IACvI;AACC,MAAAA,EAAE,YAAYN,EAAE,mBAAmBM,EAAE,OAAO,GAAGA,EAAE,UAAU;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,0BAA0B,GAAG;AAC3B,WAAO,KAAK,SAAS,QAAQ,iBAAiB,KAAK,EAAE,cAAc,UAAU,KAAK,CAAC,EAAE;AAAA,EACtF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG;AACf,UAAM,EAAE,aAAa,EAAG,IAAG;AAC3B,QAAIN,IAAIyS,GAAG;AACX,QAAI,KAAK,KAAK,MAAM;AAClB,aAAOzS;AACT,aAASM,IAAI,GAAGA,IAAI,EAAE,QAAQA;AAC5B,UAAI,EAAEA,CAAC,KAAK,GAAG;AACb,QAAAN,IAAI,EAAEM,CAAC;AACP;AAAA,MACD;AACH,WAAON,MAAM,MAAMA,IAAIyS,GAAG,OAAOzS;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYD,KAAK,GAAG,GAAGA,GAAG;AACZ,UAAM,EAAE,SAASM,GAAG,UAAU,GAAG,IAAI,GAAG,aAAa,EAAG,IAAG;AAC3D,QAAI,EAAE,QAAQ,iBAAiB,KAAK,CAACA;AACnC;AACF,UAAMK,IAAIL,EAAE,eAAe,CAAC;AAC5B,QAAI,CAACK;AACH;AACF,QAAI,CAAC,GAAG;AACN,UAAI,CAACA,EAAE;AACL;AACF,YAAM,IAAIL,EAAE,cAAc,CAAC;AAC3B,UAAI,CAAC;AACH;AACF,MAAAK,EAAE,oBAAoBA,EAAE,kBAAkB,IAAI4oB,GAAGjpB,EAAE,OAAOA,EAAE,MAAM,GAAGK,EAAE,gBAAgB,gBAAgB,GAAG,CAAC,IAAI,IAAIA,EAAE,iBAAiB,EAAE,cAAc,CAAC,MAAM,MAAM,EAAE,cAAc,CAAC,IAAI,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAUL,EAAE,SAAS,EAAE,WAAWA,EAAE,YAAY,EAAE,QAAQA,EAAE,OAAO,EAAE,SAASA,EAAE,QAAQ,EAAE,WAAW,EAAE;AAAA,IACrU;AACD,UAAM,IAAIkqB,IAAI,EAAE,QAAQlqB,EAAE,OAAO,EAAE,SAASA,EAAE,SAASN,MAAMA,IAAI;AACjE,UAAMY,IAAI,EAAE,UAAUZ,EAAE,SAAS,EAAE,WAAWA,EAAE;AAChD,SAAK,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,kBAAkBW,EAAE,WAAW,GAAG,EAAE;AAAA,MACpE,EAAE;AAAA,MACF,EAAE;AAAA,MACF,EAAE;AAAA,MACF,EAAE;AAAA,MACFX,EAAE;AAAA,MACFA,EAAE;AAAA,MACFA,EAAE;AAAA,MACFA,EAAE;AAAA,MACF,EAAE;AAAA,MACFY,IAAI,EAAE,UAAU,EAAE;AAAA,IACnB,GAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,KAAK,WAAW,EAAE,WAAW;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,mBAAmB,GAAG,GAAG;AACvB,UAAMZ,IAAI,EAAE,eAAe,KAAK,WAAW,GAAGM,IAAI,KAAK;AACvD,QAAI,CAACN;AACH;AACF,WAAO,EAAE,eAAe,KAAK,WAAW;AACxC,UAAM,IAAI,KAAK,oBAAoB,QAAQ,CAAC;AAC5C,SAAK,KAAK,KAAK,oBAAoB,OAAO,GAAG,CAAC,GAAG,EAAE,cAAc,OAAO,IAAI,GAAG,MAAMM,EAAE,kBAAkBN,EAAE,WAAW,GAAGA,EAAE,cAAcM,EAAE,mBAAmBN,EAAE,UAAU,GAAGA,EAAE,WAAWM,EAAE,mBAAmBN,EAAE,OAAO,IAAIA,EAAE,mBAAmB,KAAK,mBAAmBA,EAAE,iBAAiB,CAAC;AAAA,EAC9R;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,GAAG;AACZ,UAAM,IAAI,KAAK;AACf,SAAK,sBAAsB;AAC3B,aAASA,IAAI,GAAGA,IAAI,EAAE,QAAQA;AAC5B,WAAK,mBAAmB,EAAEA,CAAC,GAAG,CAAC;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,eAAe;AACb,UAAM,IAAI,KAAK;AACf,QAAI,CAAC;AACH;AACF,UAAM,IAAI,EAAE,eAAe,KAAK,WAAW;AAC3C,QAAI,CAAC,KAAK,EAAE,WAAW,EAAE;AACvB;AACF,MAAE,UAAU;AACZ,UAAMA,IAAI,EAAE,OAAOM,IAAI,EAAE,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE,UAAU,EAAE;AAChE,MAAE,iBAAiB,EAAE,cAAc,CAAC;AACpC,QAAI,GAAGK;AACP,SAAK,SAAS,QAAQ,iBAAiB,KAAK,IAAI,EAAE,0BAA0BA,IAAI,EAAE,iBAAiB,EAAE,SAAS,IAAI,EAAE,0BAA0BA,IAAI,EAAE,qBAAqB,IAAI,EAAE,oBAAoBA,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,+BAA+B,EAAE,cAAc,EAAE,aAAaA,GAAGX,GAAGM,CAAC,IAAI,EAAE,oBAAoB,EAAE,cAAcK,GAAGX,GAAGM,CAAC,GAAG,EAAE,wBAAwB,EAAE,aAAa,GAAG,EAAE,cAAc,CAAC;AAAA,EACla;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,UAAU,KAAK,oBAAoB,KAAK,WAAW,IAAI4kB;EAC7D;AAAA,EACD,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACAuF,GAAG,YAAY;AAAA,EACb,MAAMhI,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAI6H,EAAE;AACR,MAAMC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;AACrC,MAAMC,GAAG;AAAA;AAAA,EAEP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,kBAAkB,MAAM,KAAK,aAAa,MAAM,KAAK,SAAS,IAAI,KAAK,cAAc,IAAI,KAAK,2BAA2B,IAAI,KAAK,oBAAoB;EAC/K;AAAA;AAAA,EAED,gBAAgB;AACd,SAAK,WAAW,EAAE;AAClB,UAAM,IAAI,KAAK,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;AACxD,QAAI,KAAK,cAAc,KAAK,SAAS,aAAa,EAAE,iBAAiB,GAAG;AACtE,UAAI3qB,IAAI,KAAK,SAAS,QAAQ,WAAW;AACzC,MAAA4S,EAAE,eAAepB,GAAG,iBAAiBxR,IAAI,OAAOA,KAAK,EAAE,oBAAoB,MAAMA,EAAE,qBAAoB,GAAI,EAAE,kBAAkB,CAACM,MAAMN,EAAE,mBAAmBM,CAAC,GAAG,EAAE,oBAAoB,CAACA,MAAMN,EAAE,qBAAqBM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,oBAAoB,MAAM,MAAM,EAAE,kBAAkB,MAAM,MAAM,EAAE,oBAAoB,MAAM;AAAA,IAC3U;AACD,QAAI,EAAE,iBAAiB,GAAG;AACxB,YAAMN,IAAI,EAAE,aAAa,wBAAwB;AACjD,MAAAA,KAAK,EAAE,sBAAsB,CAACM,GAAG,MAAMN,EAAE,yBAAyBM,GAAG,CAAC,GAAG,EAAE,wBAAwB,CAACA,GAAG,GAAG,GAAG,GAAGK,MAAMX,EAAE,2BAA2BM,GAAG,GAAG,GAAG,GAAGK,CAAC,GAAG,EAAE,sBAAsB,CAACL,GAAG,GAAG,GAAG,MAAMN,EAAE,yBAAyBM,GAAG,GAAG,GAAG,CAAC,KAAK,KAAK,cAAc;AAAA,IACzQ;AACD,SAAK,2BAA2B,EAAE,iBAAiB,KAAK,CAAC,CAAC,EAAE,WAAW;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,KAAK,GAAG,GAAG;AACT,QAAI,KAAK,KAAK,SAAS,OAAO;AAC9B,UAAM,EAAE,IAAIN,EAAG,IAAG;AAClB,QAAIM,IAAI,EAAE,qBAAqB,KAAK,WAAW,GAAG,IAAI;AACtD,IAAAA,MAAM,KAAK,kBAAkB,EAAE,EAAE,IAAI,GAAG,EAAE,cAAc,IAAI,IAAI,GAAG,EAAE,qBAAqB,KAAK,WAAW,IAAIA,IAAI,IAAI,IAAI;AAC1H,UAAM,IAAIA,EAAE,EAAE,QAAQ,EAAE,KAAK,KAAK,gBAAgB,GAAG,GAAG,CAAC;AACzD,SAAK,kBAAkB,GAAG,KAAK,eAAe,MAAM,KAAK,aAAa,GAAG,KAAK,SAASN,EAAE,gBAAgB,CAAC,IAAI,KAAK,YAAY,GAAG,EAAE,OAAO,IAAI,KAAK,cAAa;AAAA,EAClK;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,OAAM;AAAA,EACZ;AAAA;AAAA,EAED,gBAAgB;AACd,UAAM,IAAI,KAAK,iBAAiB,IAAI,KAAK,SAAS;AAClD,aAASA,IAAI,GAAGA,IAAI,EAAE,QAAQ,QAAQA,KAAK;AACzC,YAAMM,IAAI,EAAE,QAAQN,CAAC;AACrB,QAAE,OAAOM,CAAC;AAAA,IACX;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,mBAAmB,GAAG,GAAG;AACvB,UAAMN,IAAI,EAAE,YAAYM,IAAI,EAAE;AAC9B,eAAW,KAAKA;AACd,UAAI,CAACN,EAAE,CAAC;AACN,cAAM,IAAI,MAAM,2DAA2D,CAAC,aAAa;AAAA,EAC9F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,aAAa,GAAG,GAAG;AACjB,UAAMA,IAAI,EAAE,YAAYM,IAAI,EAAE,eAAe,IAAI,CAAC,KAAK,EAAE,EAAE;AAC3D,eAAW,KAAKN;AACd,MAAAM,EAAE,CAAC,KAAK,EAAE,KAAK,GAAGA,EAAE,CAAC,EAAE,QAAQ;AACjC,WAAO,EAAE,KAAK,GAAG;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,gBAAgB,GAAG,GAAGN,IAAI,IAAI;AAC5B,UAAMM,IAAI,KAAK,IAAI,IAAI,KAAK,aAAa,IAAI,KAAK,SAAS,QAAQ,IAAI,EAAE;AACzE,MAAE,WAAW,CAAC,KAAK,KAAK,SAAS,OAAO,gBAAgB,CAAC,GAAG,KAAK,mBAAmB,GAAG,CAAC;AACxF,UAAMK,IAAI,KAAK,aAAa,GAAG,CAAC,GAAGC,IAAI,EAAE,qBAAqB,KAAK,WAAW;AAC9E,QAAI,IAAIA,EAAED,CAAC;AACX,QAAI;AACF,aAAOC,EAAE,EAAE,EAAE,IAAI,GAAG;AACtB,UAAM,IAAI,EAAE,SAAS,IAAI,EAAE,YAAYC,IAAI,CAAA,GAAIC,IAAI;AACnD,eAAW,KAAK;AACd,MAAAD,EAAE,CAAC,IAAI,GAAGC,EAAE,CAAC,IAAI;AACnB,eAAW,KAAK;AACd,OAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,QAAQ,KAAK,4BAA4B,CAAC,mFAAmF,GAAGD,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,EAAE,OAAO6pB,GAAG,EAAE,CAAC,EAAE,IAAI;AAClQ,eAAW,KAAK,GAAG;AACjB,YAAMxpB,IAAI,EAAE,CAAC,GAAGE,IAAIF,EAAE;AACtB,MAAAA,EAAE,WAAW,WAAWL,EAAEK,EAAE,MAAM,MAAME,IAAIspB,GAAGxpB,EAAE,IAAI,IAAIA,EAAE,SAAS,IAAIA,EAAE,SAASL,EAAEK,EAAE,MAAM,IAAIA,EAAE,UAAU,WAAWA,EAAE,QAAQJ,EAAEI,EAAE,MAAM,GAAGJ,EAAEI,EAAE,MAAM,KAAKE,IAAIspB,GAAGxpB,EAAE,IAAI;AAAA,IAC5K;AACD,QAAIZ,EAAE,kBAAiB,GAAIA,EAAE,gBAAgB,CAAC;AAC9C,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,YAAMY,IAAI,EAAE,CAAC;AACb,QAAE,KAAKA,CAAC,GAAGlB,KAAKkB,EAAE,WAAW,CAAC,EAAE;AAAA,IACjC;AACD,WAAO,KAAK,YAAY,GAAG,CAAC,GAAGN,EAAE,EAAE,EAAE,IAAI,GAAGA,EAAED,CAAC,IAAI,GAAGL,EAAE,gBAAgB,IAAI,GAAG,EAAE,OAAOoS,GAAG,YAAY,GAAG;AAAA,EAC3G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,gBAAgB,GAAG,GAAG;AACpB,QAAIqG;AACJ,QAAI,CAAC,KAAK,kBAAkB,EAAE,EAAE;AAC9B;AACF,WAAO,KAAK,kBAAkB,EAAE,EAAE;AAClC,UAAM/Y,IAAI,EAAE,qBAAqB,KAAK,WAAW,GAAGM,IAAI,KAAK,IAAIyX,IAAI,EAAE,SAASC,KAAKe,IAAI,KAAK,aAAa,OAAO,SAASA,EAAE;AAC7H,QAAI,EAAE,cAAc,OAAO,IAAI,GAAG,CAAC,CAAC/Y,GAAG;AACrC,UAAIgY;AACF,iBAASrX,IAAI,GAAGA,IAAIoX,EAAE,QAAQpX,KAAK;AACjC,gBAAMC,IAAImX,EAAEpX,CAAC,EAAE,WAAW,KAAK,WAAW;AAC1C,UAAAC,MAAMA,EAAE,YAAYA,EAAE,aAAa,KAAK,CAAC,KAAKoX,EAAE,QAAQD,EAAEpX,CAAC,GAAG,CAAC;AAAA,QAChE;AACH,UAAI,CAAC;AACH,mBAAWA,KAAKX;AACd,cAAIW,EAAE,CAAC,MAAM,KAAK;AAChB,kBAAMC,IAAIZ,EAAEW,CAAC;AACb,iBAAK,eAAeC,KAAK,KAAK,OAAM,GAAIN,EAAE,kBAAkBM,CAAC;AAAA,UAC9D;AAAA;AAEL,aAAO,EAAE,qBAAqB,KAAK,WAAW;AAAA,IAC/C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,GAAG;AACZ,UAAM,IAAI,OAAO,KAAK,KAAK,iBAAiB;AAC5C,aAASZ,IAAI,GAAGA,IAAI,EAAE,QAAQA;AAC5B,WAAK,gBAAgB,KAAK,kBAAkB,EAAEA,CAAC,CAAC,GAAG,CAAC;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,YAAY,GAAG,GAAG;AAChB,UAAMA,IAAI,KAAK,IAAIM,IAAI,KAAK,aAAa,IAAI,KAAK,SAAS,QAAQ,IAAI,EAAE,SAAS,IAAI,EAAE;AACxF,MAAE,eAAe,EAAE,KAAK,EAAE,WAAW;AACrC,QAAIK,IAAI;AACR,eAAWC,KAAK,GAAG;AACjB,YAAM,IAAI,EAAEA,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,WAAWN,CAAC;AACnD,UAAI,EAAE,cAAcM,CAAC,GAAG;AACtB,QAAAD,MAAM,MAAM,EAAE,KAAK,CAAC,GAAGA,IAAI;AAC3B,cAAME,IAAI,EAAE,cAAcD,CAAC,EAAE;AAC7B,YAAIZ,EAAE,wBAAwBa,CAAC,GAAGb,EAAE;AAAA,UAClCa;AAAA,UACA,EAAE;AAAA,UACF,EAAE,QAAQb,EAAE;AAAA,UACZ,EAAE;AAAA,UACF,EAAE;AAAA,UACF,EAAE;AAAA,QACH,GAAE,EAAE;AACH,cAAI,KAAK;AACP,YAAAA,EAAE,oBAAoBa,GAAG,EAAE,OAAO;AAAA;AAElC,kBAAM,IAAI,MAAM,gEAAgE;AAAA,MACrF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWD,KAAK,GAAG,GAAGb,GAAGM,GAAG;AACf,UAAM,EAAE,IAAI,EAAG,IAAG,MAAM,IAAI,KAAK;AACjC,QAAI,EAAE,aAAa;AACjB,YAAM,IAAI,EAAE,YAAY,KAAK,mBAAmBK,IAAI,MAAM,IAAI,EAAE,iBAAiB,EAAE;AACnF,YAAM,KAAK,MAAM,KAAK,KAAK,2BAA2B,EAAE,YAAY,EAAE,sBAAsB,GAAG,KAAK,EAAE,YAAY,KAAK,QAAQA,IAAIX,KAAK,KAAK,GAAGM,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK,EAAE,YAAY,KAAK,QAAQK,IAAIX,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,uCAAuC;AAAA,IACpR;AACC,QAAE,YAAY,EAAE,oBAAoB,GAAGA,GAAG,KAAK,EAAE,QAAS,GAAEM,KAAK,CAAC,IAAI,EAAE,WAAW,GAAGN,GAAG,KAAK,EAAE,QAAO,CAAE;AAC3G,WAAO;AAAA,EACR;AAAA;AAAA,EAED,SAAS;AACP,SAAK,GAAG,gBAAgB,IAAI,GAAG,KAAK,aAAa,MAAM,KAAK,kBAAkB;AAAA,EAC/E;AAAA,EACD,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACA2qB,GAAG,YAAY;AAAA,EACb,MAAMlI,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAI+H,EAAE;AACR,MAAMC,KAAK,IAAIrF;AACf,MAAMsF,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,GAAG,GAAG;AAChB,SAAK,WAAW,GAAG,KAAK,WAAW,IAAItF,GAAI,GAAE,KAAK,cAAc,IAAI,aAAa,CAAC,GAAG,KAAK,eAAe,IAAI,aAAa,CAAC,GAAG,KAAK,aAAa,IAAI,KAAK,YAAY,GAAG,KAAK,cAAc,GAAG,KAAK,cAAc,OAAO,IAAI,MAAM,MAAM,GAAG,KAAK,WAAW;AAAA,EAC5P;AAAA;AAAA,EAED,IAAI,UAAU;AACZ,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,QAAQ,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,aAAa;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,YAAY,GAAG,GAAG;AAChB,UAAM,WAAW,IAAI;AACrB,UAAMvlB,IAAI,KAAK;AACf,aAASM,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK,GAAG;AACpC,YAAM,IAAI,EAAEA,CAAC,GAAG,IAAI,EAAEA,IAAI,CAAC;AAC3B,QAAEA,CAAC,IAAI,IAAIN,EAAE,IAAI,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAEM,IAAI,CAAC,IAAI,IAAIN,EAAE,IAAI,IAAIA,EAAE,IAAIA,EAAE;AAAA,IACnE;AACD,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG;AACR,UAAM,IAAI,KAAK;AACf,QAAI,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,KAAK,eAAe,EAAE;AAChD,aAAO;AACT,SAAK,aAAa,EAAE,WAAW,KAAK;AACpC,UAAMA,IAAI,EAAE;AACZ,SAAK,SAAS,IAAIA,EAAE,KAAKA,EAAE,IAAIA,EAAE,KAAKA,EAAE,IAAIA,EAAE,KAAKA,EAAE,IAAIA,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAIA,EAAE,EAAE;AAChF,UAAMM,IAAI,EAAE,MAAM,IAAI,EAAE;AACxB,UAAMsqB,GAAG;AAAA,MACPtqB,EAAE,QAAQ,EAAE;AAAA,MACZ;AAAA,MACA;AAAA,MACAA,EAAE,SAAS,EAAE;AAAA,MACb,CAAC,EAAE,IAAI,EAAE;AAAA,MACT,CAAC,EAAE,IAAI,EAAE;AAAA,IACV,GAAE,KAAK,SAAS,OAAOsqB,EAAE;AAC1B,UAAM,IAAI,EAAE,aAAa,IAAI,KAAK,aAAajqB,IAAI,KAAK,cAAc,EAAE,YAAYC,IAAI,KAAK;AAC7F,WAAO,EAAE,CAAC,KAAK,EAAE,OAAO,IAAID,IAAIC,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,IAAID,IAAIC,KAAK,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,OAAO,QAAQD,IAAIC,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,OAAO,SAASD,IAAIC,KAAK,EAAE,QAAQ,KAAK,aAAa,CAAC,IAAIA,IAAI,EAAE,WAAW,KAAK,aAAa,CAAC,IAAIA,IAAI,EAAE,YAAY,KAAK,WAAW,EAAE,OAAO,UAAU,EAAE,SAAS,EAAE,OAAO,WAAW,EAAE,UAAU,EAAE,WAAW,GAAG;AAAA,EACxX;AACH;AACA,IAAIkqB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAyBNC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBR,MAAMC,WAAW9B,GAAG;AAAA;AAAA,EAElB,YAAY,GAAG,GAAGlpB,GAAG;AACnB,QAAIM,IAAI;AACR,WAAO,KAAK,YAAY,MAAM,UAAUN,MAAM,WAAWM,IAAI,GAAG,IAAI,QAAQ,IAAI,QAAQN,IAAI,SAAS,MAAM,KAAK+qB,IAAI,KAAKD,IAAI9qB,CAAC,GAAG,KAAK,aAAaM,GAAG,KAAK,aAAa,IAAIilB;EAC7K;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,aAAa;AACf,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,WAAW,GAAG;AAChB,SAAK,cAAc,GAAG,KAAK,gBAAgB,KAAK,YAAY,aAAa;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,MAAM,GAAG,GAAGvlB,GAAGM,GAAG;AAChB,UAAM,IAAI,KAAK,aAAa,IAAI,EAAE;AAClC,MAAE,UAAU,EAAE,aAAa,EAAE,WAAW,IAAIuqB,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,OAAM,GAAI,KAAK,SAAS,WAAW,EAAE,YAAY,YAAY,IAAI,GAAG,KAAK,SAAS,OAAO,GAAG,KAAK,SAAS,cAAc,EAAE,sBAAsB,KAAK,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,KAAK,SAAS,QAAQ,EAAE,YAAY,KAAK,SAAS,YAAY,EAAE,SAAS,aAAa,EAAE,YAAY,MAAM,GAAG7qB,GAAGM,CAAC;AAAA,EACtX;AACH;AACA,MAAM2qB,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,IAAI,MAAM;AACpB,SAAK,OAAOzY,GAAG,MAAM,KAAK,aAAa,IAAI,KAAK,aAAa,KAAK,MAAM,KAAK,SAAS,IAAI,KAAK,aAAa,IAAI,KAAK,aAAa,MAAM,KAAK,cAAc0W,GAAG,oBAAoB,KAAK,UAAU,IAAI,KAAK,YAAY,IAAI,KAAK,WAAW,MAAM,KAAK,kBAAkB,GAAG,KAAK,kBAAkB,GAAG,KAAK,eAAe,MAAM,KAAK,oBAAoB,MAAM,KAAK,aAAa,IAAI,KAAK,UAAU;AAAA,EACnY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,SAAS;AACX,WAAO,KAAK,WAAW,KAAK,SAAS,CAAC,IAAI;AAAA,EAC3C;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,QAAI,KAAK,WAAW,KAAK,SAAS,CAAC,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,IAAI,KAAK,WAAW;AAAA,EAClF;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,WAAW,KAAK,aAAa,MAAM,KAAK,OAAO1W,GAAG,MAAM,KAAK,aAAa,KAAK,KAAK,UAAU,MAAM,KAAK,oBAAoB;AAAA,EACnI;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,oBAAoB,GAAG;AACrB,SAAK,KAAK,kBAAkB,EAAE,iBAAiB,KAAK,kBAAkB,EAAE,iBAAiB,KAAK,eAAe,EAAE,iBAAiB,KAAK,kBAAkB,GAAG,KAAK,kBAAkB,GAAG,KAAK,eAAe;AAAA,EACzM;AACH;AACA,MAAM0Y,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,gBAAgB,IAAI,KAAK,gBAAgB,CAAA,GAAI,KAAK,eAAe,CAAE,GAAE,KAAK,YAAY,CAAA,GAAI,KAAK,iBAAiB;AAAA,EACzI;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa,GAAG;AACd,SAAK,YAAY,GAAG,KAAK,SAAS,QAAQ,aAAa,CAAC,GAAG,KAAK,SAAS,QAAQ,aAAa,CAAC;AAAA,EAChG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,KAAK,GAAG,GAAG;AACT,QAAIlrB,IAAI;AACR,QAAI,CAACA,EAAE,YAAY;AACjB,YAAM,IAAI,KAAK,aAAa,IAAK,KAAI,IAAIirB;AACzC,QAAE,SAAS,IAAI,EAAE,aAAa,GAAGjrB,IAAI;AAAA,IACtC;AACD,UAAMM,IAAI,KAAK,UAAU,WAAW,IAAI,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC,IAAI;AACpF,QAAIN,EAAE,oBAAoBM,CAAC,GAAGN,EAAE,aAAaM,IAAIA,EAAE,aAAa,IAAIN,EAAE,cAAc,KAAK,OAAOA,CAAC,GAAGA,EAAE,UAAU,GAAGA,EAAE,SAASwS,GAAG,UAAU,KAAK,UAAU,KAAKxS,CAAC,GAAGA,EAAE;AACnK,cAAQA,EAAE,MAAI;AAAA,QACZ,KAAKwS,GAAG;AACN,eAAK,SAAS,QAAQ,KAAKxS,CAAC;AAC5B;AAAA,QACF,KAAKwS,GAAG;AACN,eAAK,SAAS,QAAQ,KAAKxS,CAAC;AAC5B;AAAA,QACF,KAAKwS,GAAG;AACN,UAAAxS,EAAE,oBAAoB,IAAI,GAAG,KAAK,eAAeA,CAAC;AAClD;AAAA,QACF,KAAKwS,GAAG;AACN,eAAK,cAAcxS,CAAC;AACpB;AAAA,MACH;AACH,IAAAA,EAAE,SAASwS,GAAG,UAAU,KAAK,UAAU,KAAKxS,CAAC;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,GAAG;AACL,UAAM,IAAI,KAAK,UAAU,IAAG;AAC5B,QAAI,EAAE,CAAC,KAAK,EAAE,YAAY,IAAI;AAC5B,UAAI,EAAE;AACJ,gBAAQ,EAAE,MAAI;AAAA,UACZ,KAAKwS,GAAG;AACN,iBAAK,SAAS,QAAQ,IAAI,CAAC;AAC3B;AAAA,UACF,KAAKA,GAAG;AACN,iBAAK,SAAS,QAAQ,IAAI,EAAE,UAAU;AACtC;AAAA,UACF,KAAKA,GAAG;AACN,iBAAK,cAAc,CAAC;AACpB;AAAA,UACF,KAAKA,GAAG;AACN,iBAAK,aAAa,CAAC;AACnB;AAAA,QACH;AACH,UAAI,EAAE,MAAK,GAAI,EAAE,UAAU,KAAK,aAAa,KAAK,CAAC,GAAG,KAAK,UAAU,WAAW,GAAG;AACjF,cAAMxS,IAAI,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC;AAClD,QAAAA,EAAE,SAASwS,GAAG,UAAUxS,EAAE,aAAaA,EAAE,SAAS,CAAC,EAAE,aAAaA,EAAE;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,GAAG;AACR,UAAM,IAAI,EAAE;AACZ,QAAI,EAAE,WAAW,EAAE,OAAOwS,GAAG,SAAS,KAAK,iBAAiB,KAAK,SAAS,QAAQ,YAAY,CAAC,IAAI,EAAE,OAAOA,GAAG,UAAU,EAAE,OAAOA,GAAG,UAAU,EAAE,OAAOA,GAAG;AAAA,EAC5J;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,eAAe,GAAG;AAChB,UAAM,EAAE,YAAY,EAAG,IAAG,GAAGxS,IAAI,EAAE;AACnC,QAAIM,IAAI,EAAE;AACV,IAAAA,MAAMA,IAAI,KAAK,cAAc,KAAK,cAAc,GAAGA,MAAMA,IAAI,KAAK,cAAc,KAAK,cAAc,IAAI,CAAC,IAAI0qB,IAAI,KAAK1qB,EAAE,CAAC,EAAE,aAAa,EAAE,YAAYA,EAAE,CAAC,EAAE,cAAc,EAAE,aAAaA,EAAE,CAAC,EAAE,aAAa;AACzM,UAAM,IAAIN,EAAE;AACZ,IAAAA,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,KAAK,SAAS,OAAO,KAAKA,GAAGM,CAAC,GAAGN,EAAE,aAAa,GAAG,EAAE,YAAY,KAAK;AAAA,EACvG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc,GAAG;AACf,SAAK,SAAS,OAAO,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,aAAa,QAAQ,KAAK,kBAAkB,KAAK,cAAc,KAAK,cAAc,EAAE,CAAC,EAAE,aAAa;AAAA,EAC5J;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc,GAAG;AACf,UAAM,IAAI,EAAE,YAAYA,IAAI,EAAE,aAAa,IAAI,EAAE;AACjD,IAAAA,MAAM,KAAK,KAAK,SAAS,GAAG;AAAA,OACzBA,IAAI,OAAO;AAAA,OACXA,IAAI,OAAO;AAAA,OACXA,IAAI,OAAO;AAAA,OACXA,IAAI,OAAO;AAAA,IAClB;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa,GAAG;AACd,UAAM,IAAI,EAAE,YAAYA,IAAI,KAAK,UAAU,SAAS,IAAI,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC,EAAE,aAAa;AAC/G,IAAAA,MAAM,KAAK,KAAK,SAAS,GAAG;AAAA,OACzBA,IAAI,OAAO;AAAA,OACXA,IAAI,OAAO;AAAA,OACXA,IAAI,OAAO;AAAA,OACXA,IAAI,OAAO;AAAA,IAClB;AAAA,EACG;AAAA,EACD,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACAkrB,GAAG,YAAY;AAAA,EACb,MAAMzI,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIsI,EAAE;AACR,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,YAAY,IAAI,KAAK,UAAU;AAAA,EACxD;AAAA;AAAA,EAED,iBAAiB;AACf,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa,GAAG;AACd,UAAM,EAAE,IAAI,MAAM,KAAK,UAAUnrB,IAAI,KAAK;AAC1C,SAAK,YAAY;AACjB,UAAMM,IAAI,KAAK;AACf,IAAAA,MAAMN,MAAMM,MAAM,IAAI,EAAE,QAAQ,KAAK,OAAO,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,KAAK,YAAa;AAAA,EAC5F;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc;AAAA,EACb;AAAA;AAAA,EAED,UAAU;AACR,SAAK,WAAW,MAAM,KAAK,YAAY;AAAA,EACxC;AACH;AACA,MAAM8qB,KAAK,IAAI7F,GAAE,GAAI8F,KAAK,CAAE,GAAEC,KAAK,MAAMC,WAAWJ,GAAG;AAAA;AAAA;AAAA;AAAA,EAIrD,YAAY,GAAG;AACb,UAAM,CAAC,GAAG,KAAK,UAAUvY,EAAE,QAAQ,yBAA0B,EAAC;AAAA,EAC/D;AAAA,EACD,iBAAiB;AACf,UAAM,IAAI,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC;AAClD,WAAO,IAAI,EAAE,kBAAkB;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,gBAAgB,GAAG;AACjB,QAAI,EAAE;AACJ;AACF,UAAM,IAAI,EAAE,cAAc,EAAE,YAAY5S,EAAG,IAAG,GAAG,EAAE,UAAUM,EAAG,IAAG,MAAM,IAAIA,EAAE,eAAe,IAAIN,EAAE,UAAU,IAAIqrB,GAAG,IAAG,KAAM,IAAInG,EAAI,CAAA;AACtI,SAAK;AAAA,MACH;AAAA,MACA,EAAE,UAAU,EAAE,QAAQ,aAAa5kB,EAAE;AAAA,MACrC,EAAE;AAAA,MACF,EAAE;AAAA,MACFA,EAAE,WAAW;AAAA,IACnB,GAAO,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,oBAAoB;AAAA,EACzC;AAAA,EACD,OAAO,gBAAgB,GAAG;AACxB,QAAI,CAAC;AACH,aAAO;AACT,UAAM,EAAE,GAAG,GAAG,GAAGN,GAAG,GAAGM,GAAG,GAAG,EAAG,IAAG;AACnC,YAAQ,KAAK,IAAIN,CAAC,IAAI,QAAQ,KAAK,IAAIM,CAAC,IAAI,UAAU,KAAK,IAAI,CAAC,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI;AAAA,EAC3F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,YAAY,GAAG;AACb,UAAM,EAAE,YAAY,EAAG,IAAG;AAC1B,QAAI,CAAC,EAAE,cAAc,CAAC,EAAE,WAAU,KAAMirB,GAAG,gBAAgB,EAAE,cAAc,KAAKA,GAAG,gBAAgB,KAAK,SAAS,WAAW,SAAS;AACnI,aAAO;AACT,SAAK,gBAAgB,CAAC;AACtB,UAAMvrB,IAAI,EAAE;AACZ,WAAOA,EAAE,QAAQ,KAAKA,EAAE,SAAS;AAAA,EAClC;AAAA,EACD,mBAAmB,GAAG,GAAGA,GAAGM,GAAG,GAAG;AAChC,IAAAirB,GAAG,gBAAgB,CAAC,MAAM,IAAI,IAAIH,GAAG,SAAS,CAAC,IAAIA,GAAG,YAAY,EAAE,UAAU,CAACprB,EAAE,GAAG,CAACA,EAAE,CAAC,EAAE;AAAA,MACxFM,EAAE,QAAQN,EAAE;AAAA,MACZM,EAAE,SAASN,EAAE;AAAA,IACd,EAAC,UAAUM,EAAE,GAAGA,EAAE,CAAC,GAAG,KAAK,SAAS,OAAO,cAAc,GAAG,CAAC,GAAG,EAAE,IAAIA,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,KAAK,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,KAAK,MAAM,EAAE,SAAS,CAAC;AAAA,EACvM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,KAAK,GAAG;AACN,MAAE,qBAAqB,KAAK,gBAAgB,CAAC;AAC7C,UAAM,EAAE,IAAI,MAAM,KAAK;AACvB,MAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,KAAK;EAC7G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,IAAI,GAAG;AACL,UAAM,EAAE,IAAI,MAAM,KAAK;AACvB,SAAK+qB,GAAG,KAAK,EAAE,iBAAiB,GAAG,KAAK,eAAc,IAAK,IAAI,KAAK,gBAAgB,EAAE,QAAQ,EAAE,YAAY;AAAA,EAC7G;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc;AACZ,UAAM,IAAI,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC,EAAE;AACpD,QAAI;AACJ,SAAK,SAAS,cAAc,UAAU,IAAI,EAAE,IAAI,IAAI,KAAK,SAAS,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,SAAS,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM;AAAA,EAC9I;AACH;AACAC,GAAG,YAAY;AAAA,EACb,MAAM7I,EAAE;AAAA,EACR,MAAM;AACR;AACA,IAAI+I,KAAKF;AACT1I,EAAE,IAAI4I,EAAE;AACR,MAAMC,WAAWN,GAAG;AAAA;AAAA;AAAA;AAAA,EAIlB,YAAY,GAAG;AACb,UAAM,CAAC,GAAG,KAAK,UAAUvY,EAAE,QAAQ,yBAA0B,EAAC;AAAA,EAC/D;AAAA,EACD,iBAAiB;AACf,UAAM,IAAI,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC;AAClD,WAAO,IAAI,EAAE,kBAAkB;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,UAAM,IAAI,EAAE,YAAY,EAAE,IAAI5S,MAAM,KAAK,UAAUM,IAAI,EAAE;AACzD,IAAAA,MAAM,MAAM,KAAK,SAAS,YAAY,aAAY,GAAIN,EAAE,aAAa,CAAC,GAAGA,EAAE,MAAMA,EAAE,kBAAkB,GAAGA,EAAE,OAAOA,EAAE,YAAY,IAAI,EAAE;AACrI,UAAM,IAAI,EAAE;AACZ,UAAM,MAAM,EAAE,aAAa,GAAGA,EAAE,UAAU,IAAI,IAAI,IAAI,EAAE,IAAIA,EAAE,YAAYA,EAAE,OAAOM,GAAG,UAAU,GAAGN,EAAE,UAAUA,EAAE,MAAMA,EAAE,MAAMA,EAAE,IAAI,GAAG,EAAE,aAAa,IAAI,EAAE,OAAO,KAAK,QAAQ,GAAG,KAAK,SAAS,MAAM,MAAO,GAAE,EAAE,aAAa,IAAI,MAAM,MAAM,EAAE,aAAa,GAAGA,EAAE;AAAA,OACjQ,IAAI,OAAO;AAAA,OACX,IAAI,OAAO;AAAA,OACX,IAAI,OAAO;AAAA,OACX,IAAI,OAAO;AAAA,IAClB,IAAQ,KAAK;EACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,GAAG;AACL,UAAM,IAAI,KAAK,SAAS;AACxB,QAAI,KAAK,eAAc,MAAO;AAC5B,QAAE,QAAQ,EAAE,YAAY;AAAA,SACrB;AACH,YAAMA,IAAI,KAAK,UAAU,WAAW,IAAI,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC,IAAI,MAAMM,IAAIN,IAAIA,EAAE,aAAa;AACjH,MAAAM,MAAM,MAAMN,EAAE,aAAa,GAAG,EAAE,UAAU,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,aAAa,IAAI,EAAE,OAAO,KAAK,QAAQ,GAAG,KAAK,SAAS,MAAM,MAAO,GAAE,EAAE,aAAa,IAAIM,MAAM,MAAMN,EAAE,aAAaM,GAAG,EAAE;AAAA,SAC1NA,IAAI,OAAO;AAAA,SACXA,IAAI,OAAO;AAAA,SACXA,IAAI,OAAO;AAAA,SACXA,IAAI,OAAO;AAAA,MACpB,IAAU,KAAK;IACV;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc;AACZ,UAAM,IAAI,KAAK,SAAS;AACxB,MAAE,YAAY,EAAE,OAAO,KAAK,eAAgB,GAAE,UAAU,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;AAAA,EAC9F;AACH;AACAmrB,GAAG,YAAY;AAAA,EACb,MAAMhJ,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAI6I,EAAE;AACR,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,UAAU,CAAE,GAAE,OAAO,iBAAiB,KAAK,SAAS;AAAA,MAC1E,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,MAAM;AACJ,iBAAOvN,GAAG,SAAS,wDAAwD,GAAG,EAAE;AAAA,QACjF;AAAA,MACF;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,MAAM;AACJ,iBAAOA,GAAG,SAAS,wDAAwD,GAAG,EAAE;AAAA,QACjF;AAAA,MACF;AAAA,MACD,aAAa;AAAA,QACX,YAAY;AAAA,QACZ,MAAM;AACJ,iBAAOA,GAAG,SAAS,uEAAuE,GAAG,EAAE;AAAA,QAChG;AAAA,MACF;AAAA,IACP,CAAK;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO;AACL,UAAM,IAAI,KAAK;AACf,eAAW,KAAK;AACd,WAAK,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,QAAQ;AAAA,EAC3C;AAAA,EACD,UAAU;AACR,eAAW,KAAK,KAAK;AACnB,WAAK,QAAQ,CAAC,EAAE,QAAO,GAAI,KAAK,QAAQ,CAAC,IAAI;AAAA,EAChD;AACH;AACAuN,GAAG,YAAY;AAAA,EACb,MAAM;AAAA,IACJjJ,EAAE;AAAA,IACFA,EAAE;AAAA,EACH;AAAA,EACD,MAAM;AACR;AACAG,EAAE,IAAI8I,EAAE;AACR,MAAMC,GAAG;AAAA;AAAA,EAEP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,mBAAmB,MAAM,KAAK,cAAc,MAAM,KAAK,eAAe,MAAM,KAAK,mBAAmB,IAAIpG,MAAM,KAAK,YAAY;AAAA,EACxJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBD,OAAO,GAAG,GAAGvlB,GAAGM,GAAG;AACjB,SAAK,mBAAmB,KAAK,KAAK,oBAAoB,KAAK,cAAc,KAAK,cAAc,KAAK,KAAK,eAAe,GAAG,KAAK,oBAAoB,KAAK,kBAAkB,KAAK,aAAaN,GAAGM,CAAC,GAAG,KAAK,aAAa,KAAK,iBAAiB,OAAO,KAAK,SAAS;AAC9P,UAAM,IAAI,KAAK;AACf,MAAE,eAAe,SAAS,mBAAmB,KAAK,kBAAkB,EAAE,eAAe,UAAU,EAAE,OAAO,UAAU,EAAE,OAAO,iBAAiB,EAAE,OAAO,OAAO,SAAS,OAAO;AAAA,EAC7K;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,oBAAoB,GAAG,GAAGN,GAAGM,GAAG;AAC9B,UAAM,IAAI,KAAK,kBAAkB,IAAIA,IAAI,KAAK;AAC9C,MAAE,SAAQ,GAAI,EAAE,IAAI,IAAI,EAAE,QAAQ,GAAG,EAAE,IAAI,KAAK,IAAI,EAAE,SAAS,IAAI,EAAE,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;AAAA,EAC/G;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa,GAAG;AAAA,EACf;AAAA,EACD,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACAqrB,GAAG,YAAY;AAAA,EACb,MAAMlJ,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAI+I,EAAE;AACR,MAAMC,KAAK,IAAIzF,GAAE,GAAI0F,KAAK,IAAI3G,EAAE;AAChC,MAAM4G,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,cAAc,IAAIvG;EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYD,gBAAgB,GAAG,GAAG;AACpB,UAAM,EAAE,QAAQvlB,GAAG,GAAGM,EAAG,IAAG,KAAK,IAAI,KAAKN,KAAK,OAAO,SAASA,EAAE,OAAO6rB,EAAE,MAAM,EAAE,eAAeA,IAAI,EAAE,GAAG,IAAIvrB,EAAE,cAAc,KAAK,SAAS;AAC5I,MAAE,QAAQ,KAAK,IAAI,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,EAAE,QAAQ,IAAI,CAAC,GAAGA,EAAE,QAAQ,EAAE,OAAOA,EAAE,SAAS,EAAE,QAAQA,EAAE,aAAa,GAAGA,EAAE,gBAAgBA,EAAE,cAAc,KAAK,SAAS;AACpL,UAAM,IAAIypB,GAAG,OAAOzpB,CAAC;AACrB,SAAK,YAAY,KAAK,CAAC,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,EAAE;AACrD,UAAMK,IAAI,EAAE;AACZ,WAAO,EAAE,YAAYirB,IAAI,KAAK,SAAS,OAAO,GAAG;AAAA,MAC/C,eAAe;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,qBAAqB,CAAC,CAAC,EAAE;AAAA,MACzB,MAAM;AAAA,IACP,CAAA,GAAG,EAAE,YAAYjrB,GAAG;AAAA,EACtB;AAAA,EACD,UAAU;AAAA,EACT;AACH;AACAmrB,GAAG,YAAY;AAAA,EACb,MAAM;AAAA,IACJrJ,EAAE;AAAA,IACFA,EAAE;AAAA,EACH;AAAA,EACD,MAAM;AACR;AACAG,EAAE,IAAIkJ,EAAE;AACR,MAAMC,KAAK,IAAI7G,EAAE,GAAI8G,KAAK,IAAI9G,EAAE;AAChC,MAAM+G,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,mBAAmB,CAAA,GAAI,KAAK,UAAU,MAAM,KAAK,cAAc,IAAI/G,EAAE,GAAI,KAAK,mBAAmB,IAAIA,EAAI,GAAE,KAAK,gBAAgB,IAAIA;EAC7J;AAAA,EACD,gBAAgB;AACd,QAAIpN;AACJ,UAAMD,KAAKC,IAAI,KAAK,aAAa,OAAO,SAASA,EAAE,GAAG,qBAAoB;AAC1E,SAAK,8BAA8B,CAAC,EAAED,KAAKA,EAAE,SAASA,EAAE;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,KAAK,IAAI,MAAM,GAAG7X,GAAG;AACnB,UAAMM,IAAI,KAAK;AACf,SAAK,UAAU;AACf,QAAI,GAAG,GAAG;AACV,SAAK,IAAI,EAAE,aAAa,IAAI,EAAE,YAAY,MAAMyrB,GAAG,QAAQ,EAAE,MAAM,OAAOA,GAAG,SAAS,EAAE,MAAM,QAAQ,IAAIA,KAAK/rB,MAAMgsB,GAAG,IAAI,EAAE,MAAM,GAAGA,GAAG,IAAI,EAAE,MAAM,GAAGA,GAAG,QAAQ,EAAE,OAAOA,GAAG,SAAS,EAAE,QAAQhsB,IAAIgsB,KAAK,IAAI,EAAE,gBAAgB,IAAI1rB,EAAE,YAAY,MAAMyrB,GAAG,QAAQzrB,EAAE,MAAM,OAAO,OAAOyrB,GAAG,SAASzrB,EAAE,MAAM,OAAO,QAAQ,IAAIyrB,KAAK/rB,MAAMA,IAAI+rB,IAAI/rB,EAAE,QAAQ,EAAE,OAAOA,EAAE,SAAS,EAAE;AACrX,UAAMW,IAAI,KAAK;AACf,IAAAA,EAAE,IAAIX,EAAE,IAAI,GAAGW,EAAE,IAAIX,EAAE,IAAI,GAAGW,EAAE,QAAQX,EAAE,QAAQ,GAAGW,EAAE,SAASX,EAAE,SAAS,GAAG,MAAMW,EAAE,IAAIL,EAAE,KAAK,UAAUK,EAAE,IAAIA,EAAE,UAAUA,EAAE,KAAI,GAAI,KAAK,SAAS,YAAY,KAAK,GAAGA,CAAC,GAAG,KAAK,SAAS,WAAW,OAAOX,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,SAAS,KAAK,aAAa,EAAE,SAAS,IAAI,KAAK,SAAS,KAAK,aAAa,KAAK,gBAAgB,GAAG,KAAK,YAAY,SAAS,CAAC,GAAG,KAAK,iBAAiB,SAASA,CAAC;AAAA,EACrY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,MAAM,GAAG,GAAG;AACV,UAAMA,IAAI,KAAK,UAAU,KAAK,QAAQ,YAAY,QAAQ,KAAK,SAAS,WAAW,iBAAiBM,IAAIwgB,GAAG,OAAO,SAAS,KAAK9gB,CAAC;AACjI,KAAC,KAAK,WAAW,KAAK,QAAQ,YAAY,YAAY,KAAK,CAAC,KAAK,WAAW,KAAK,gCAAgCM,EAAE,YAAYA,EAAE,KAAK;AACtI,UAAM,IAAI,KAAK,kBAAkB,IAAI,KAAK,UAAU,KAAK,QAAQ,cAAc,KAAK,SAAS,MAAM,QAAQ,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;AACrJ,QAAI,GAAG;AACL,UAAI,EAAE,GAAGK,GAAG,GAAGC,GAAG,OAAO,GAAG,QAAQ,MAAM,KAAK;AAC/C,MAAAD,IAAI,KAAK,MAAMA,CAAC,GAAGC,IAAI,KAAK,MAAMA,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO,KAAK,SAAS,GAAG,YAAY,GAAG,KAAK,SAAS,GAAG,QAAQD,GAAGC,GAAG,GAAG,CAAC;AAAA,IACxK;AACD,SAAK,SAAS,YAAY,MAAMN,EAAE,KAAKA,EAAE,OAAOA,EAAE,MAAMA,EAAE,OAAO,CAAC,GAAG,KAAK,KAAK,SAAS,QAAQ;EACjG;AAAA,EACD,SAAS;AACP,SAAK,KAAK,IAAI;AAAA,EACf;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,KAAK,IAAI;AAAA,EACf;AAAA,EACD,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACA2rB,GAAG,YAAY;AAAA,EACb,MAAMxJ,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIqJ,EAAE;AACR,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,YAAY,GAAG,GAAG;AAChB,SAAK,UAAU,GAAG,KAAK,cAAc,GAAG,KAAK,gBAAgB,CAAE,GAAE,KAAK,qBAAqB,CAAE,GAAE,KAAK,wBAAwB;EAC7H;AAAA;AAAA,EAED,UAAU;AACR,SAAK,cAAc,MAAM,KAAK,gBAAgB,MAAM,KAAK,qBAAqB,MAAM,KAAK,wBAAwB,MAAM,KAAK,UAAU;AAAA,EACvI;AACH;AACA,SAASC,GAAGvsB,GAAG,GAAG;AAChB,QAAM,IAAI,CAAE,GAAEI,IAAI,EAAE,oBAAoBJ,GAAG,EAAE,iBAAiB;AAC9D,WAASU,IAAI,GAAGA,IAAIN,GAAGM,KAAK;AAC1B,UAAM,IAAI,EAAE,gBAAgBV,GAAGU,CAAC;AAChC,QAAI,EAAE,KAAK,WAAW,KAAK;AACzB;AACF,UAAM,IAAIknB,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI;AAAA,MAC3B,MAAM;AAAA,MACN,MAAM,EAAE;AAAA,MACR,MAAMH,GAAG,CAAC;AAAA,MACV,UAAU,EAAE,kBAAkBznB,GAAG,EAAE,IAAI;AAAA,IAC7C;AACI,MAAE,EAAE,IAAI,IAAI;AAAA,EACb;AACD,SAAO;AACT;AACA,SAASwsB,GAAGxsB,GAAG,GAAG;AAChB,QAAM,IAAI,CAAE,GAAEI,IAAI,EAAE,oBAAoBJ,GAAG,EAAE,eAAe;AAC5D,WAASU,IAAI,GAAGA,IAAIN,GAAGM,KAAK;AAC1B,UAAM,IAAI,EAAE,iBAAiBV,GAAGU,CAAC,GAAG,IAAI,EAAE,KAAK,QAAQ,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,GAAGK,IAAI6mB,GAAG,GAAG,EAAE,IAAI;AACxH,MAAE,CAAC,IAAI;AAAA,MACL,MAAM;AAAA,MACN,OAAOlnB;AAAA,MACP,MAAMK;AAAA,MACN,MAAM,EAAE;AAAA,MACR,SAAS;AAAA,MACT,OAAO6lB,GAAG7lB,GAAG,EAAE,IAAI;AAAA,IACzB;AAAA,EACG;AACD,SAAO;AACT;AACA,SAAS0rB,GAAGzsB,GAAG,GAAG;AAChB,MAAImZ;AACJ,QAAMjB,IAAIwO,GAAG1mB,GAAGA,EAAE,eAAe,EAAE,SAAS,GAAGI,IAAIsmB,GAAG1mB,GAAGA,EAAE,iBAAiB,EAAE,WAAW,GAAGU,IAAIV,EAAE;AAClG,EAAAA,EAAE,aAAaU,GAAGwX,CAAC,GAAGlY,EAAE,aAAaU,GAAGN,CAAC;AACzC,QAAM+X,KAAKgB,IAAI,EAAE,UAAU,OAAO,SAASA,EAAE;AAC7C,MAAIhB,MAAM,OAAOnY,EAAE,6BAA6B,aAAa,QAAQ,KAAK,6EAA6E,IAAIA,EAAE;AAAA,IAC3JU;AAAA,IACAyX,EAAE;AAAA,IACFA,EAAE,eAAe,aAAanY,EAAE,mBAAmBA,EAAE;AAAA,EACzD,IAAMA,EAAE,YAAYU,CAAC,GAAGV,EAAE,oBAAoBU,GAAGV,EAAE,WAAW,KAAKunB,GAAGvnB,GAAGU,GAAGwX,GAAG9X,CAAC,GAAG,EAAE,gBAAgBmsB,GAAG7rB,GAAGV,CAAC,GAAG,EAAE,cAAcwsB,GAAG9rB,GAAGV,CAAC,GAAG,CAAC,iDAAiD,KAAK,EAAE,SAAS,GAAG;AAC1M,UAAMe,IAAI,OAAO,KAAK,EAAE,aAAa;AACrC,IAAAA,EAAE,KAAK,CAACC,GAAG,MAAMA,IAAI,IAAI,IAAI,EAAE;AAC/B,aAASA,IAAI,GAAGA,IAAID,EAAE,QAAQC;AAC5B,QAAE,cAAcD,EAAEC,CAAC,CAAC,EAAE,WAAWA,GAAGhB,EAAE,mBAAmBU,GAAGM,GAAGD,EAAEC,CAAC,CAAC;AACrE,IAAAhB,EAAE,YAAYU,CAAC;AAAA,EAChB;AACD,EAAAV,EAAE,aAAakY,CAAC,GAAGlY,EAAE,aAAaI,CAAC;AACnC,QAAMgY,IAAI,CAAA;AACV,aAAWrX,KAAK,EAAE,aAAa;AAC7B,UAAMC,IAAI,EAAE,YAAYD,CAAC;AACzB,IAAAqX,EAAErX,CAAC,IAAI;AAAA,MACL,UAAUf,EAAE,mBAAmBU,GAAGK,CAAC;AAAA,MACnC,OAAO6lB,GAAG5lB,EAAE,MAAMA,EAAE,IAAI;AAAA,IAC9B;AAAA,EACG;AACD,SAAO,IAAIsrB,GAAG5rB,GAAG0X,CAAC;AACpB;AACA,SAASsU,GAAG1sB,GAAG,GAAG,GAAGI,GAAGM,GAAG;AACzB,IAAE,OAAO,OAAOA,CAAC;AACnB;AACA,MAAMisB,KAAK;AAAA,EACT,OAAO;AAAA;AAAA;AAAA,EAGP,MAAM;AAAA;AAAA;AAAA;AAAA,EAIN,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMN,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMN,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAON,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaN,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAMR,GAAGC,KAAK;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,KAAK;AAAA,EACX,MAAM,KAAK;AAAA,EACX,MAAM,KAAK;AACb;AACA,SAASC,GAAG7sB,GAAG;AACb,QAAM,IAAIA,EAAE,IAAI,CAAC,OAAO;AAAA,IACtB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,EACR,EAAC;AACF,MAAI,IAAI,GAAGI,IAAI,GAAGM,IAAI;AACtB,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,UAAM,IAAI,EAAE,CAAC;AACb,QAAI,IAAIksB,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,OAAO,MAAM,IAAI,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,UAAU,GAAGxsB,IAAI,MAAM,KAAKA,IAAI,IAAI;AACrH,YAAM,IAAIA,IAAI,IAAI;AAClB,MAAAA,KAAK,GAAGM,KAAK;AAAA,IACd;AACD,IAAAN,IAAI,IAAI,MAAMM,IAAI,KAAK,KAAKA,IAAI,EAAE,IAAI,IAAI,EAAE,SAASA,GAAGA,KAAK,GAAGN,IAAI,MAAM,EAAE,SAASM,GAAGN,KAAK,GAAGM,KAAK;AAAA,EACtG;AACD,SAAOA,IAAI,KAAK,KAAKA,IAAI,EAAE,IAAI,IAAI,EAAE,aAAa,GAAG,MAAMA,EAAC;AAC9D;AACA,SAASosB,GAAG9sB,GAAG,GAAG;AAChB,QAAM,IAAI,CAAA;AACV,aAAWI,KAAKJ;AACd,MAAEI,CAAC,KAAK,EAAE,KAAK,EAAEA,CAAC,CAAC;AACrB,SAAO,EAAE,KAAK,CAACA,GAAGM,MAAMN,EAAE,QAAQM,EAAE,KAAK,GAAG;AAC9C;AACA,SAASqsB,GAAG/sB,GAAG,GAAG;AAChB,MAAI,CAACA,EAAE;AACL,WAAO,EAAE,MAAM,GAAG,UAAU0sB,GAAE;AAChC,QAAM,IAAII,GAAG9sB,EAAE,UAAU,CAAC,GAAG,EAAE,aAAaI,GAAG,MAAMM,EAAC,IAAKmsB,GAAG,CAAC,GAAG,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQpE;AACH,WAAS,IAAI,GAAG,IAAIzsB,EAAE,QAAQ,KAAK;AACjC,UAAM,IAAIA,EAAE,CAAC,GAAGW,IAAIf,EAAE,SAAS,EAAE,KAAK,IAAI,GAAGgB,IAAI,EAAE,KAAK;AACxD,QAAI,IAAI;AACR,aAAS,IAAI,GAAG,IAAI6lB,GAAG,QAAQ,KAAK;AAClC,YAAM,IAAIA,GAAG,CAAC;AACd,UAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM9lB,CAAC,GAAG;AAClC,UAAE;AAAA,UACA,YAAY,EAAE,SAAS,CAAC;AAAA,UACxB8lB,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,MAAM9lB,CAAC;AAAA,QACtC,GAAW,IAAI;AACP;AAAA,MACD;AAAA,IACF;AACD,QAAI,CAAC;AACH,UAAI,EAAE,KAAK,OAAO,GAAG;AACnB,cAAM,IAAI0mB,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,KAAK,IAAImF,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG3rB,IAAI,IAAI,GAAGC,KAAK,IAAID,IAAI,KAAK;AAC/F,UAAE,KAAK;AAAA,0BACWD,CAAC;AAAA,yBACFA,CAAC;AAAA,2BACC,EAAE,SAAS,CAAC;AAAA;AAAA;AAAA;AAAA,mCAIJ,EAAE,KAAK,OAAO,CAAC;AAAA;AAAA,yCAETC,CAAC;AAAA;AAAA;AAAA;AAAA,gCAIVC,CAAC;AAAA;AAAA;AAAA,iBAGhB;AAAA,MACjB,OAAa;AACL,cAAM,IAAIyrB,GAAG,EAAE,KAAK,IAAI;AACxB,UAAE,KAAK;AAAA,0BACW3rB,CAAC;AAAA,yBACFA,CAAC;AAAA,2BACC,EAAE,SAAS,CAAC;AAAA,kBACrB,CAAC;AAAA,iBACF;AAAA,MACV;AAAA,EACJ;AACD,SAAO,EAAE,KAAK;AAAA;AAAA,KAEX,GAAG;AAAA,IACJ,MAAMN;AAAA;AAAA,IAEN,UAAU,IAAI;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,EAAE,KAAK;AAAA,CACZ;AAAA,IACI;AAAA,EACL;AACA;AACA,IAAIssB,KAAK;AACT,MAAMC,KAAK,EAAE,cAAc,GAAG,UAAU,EAAC;AACzC,MAAMC,GAAG;AAAA;AAAA,EAEP,YAAY,GAAG;AACb,SAAK,YAAY,IAAI,KAAK,WAAW,GAAG,KAAK,YAAW,GAAI,KAAK,KAAK,MAAM,KAAK,SAAS,MAAM,KAAK,UAAU,MAAM,KAAK,QAAQ,CAAA,GAAI,KAAK,YAAY,CAAE,GAAE,KAAK,KAAKF;AAAA,EACtK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc;AACZ,QAAI,CAACjF,GAAI;AACP,YAAM,IAAI,MAAM,wGAAwG;AAAA,EAC3H;AAAA,EACD,cAAc,GAAG;AACf,SAAK,KAAK,GAAG,KAAK,MAAK;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,KAAK,GAAG,GAAG;AACT,MAAE,cAAc,IAAI,IAAI,GAAG,EAAE,SAAS,UAAU,KAAK,SAAS;AAC9D,UAAM3nB,IAAI,EAAE,SAASM,IAAIN,EAAE,WAAW,KAAK,SAAS,WAAW,KAAK,KAAK,gBAAgB,CAAC;AAC1F,WAAO,KAAK,SAAS,GAAG,KAAK,YAAYA,MAAM,KAAK,UAAUA,GAAG,KAAK,GAAG,WAAWM,EAAE,OAAO,IAAI,MAAMusB,GAAG,eAAe,GAAGA,GAAG,WAAW,GAAG,KAAK,iBAAiB,EAAE,cAAcA,EAAE,IAAIvsB;AAAA,EAC1L;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY,GAAG;AACb,UAAM,IAAI,KAAK,OAAO,SAASN,IAAI,EAAE,WAAW,KAAK,SAAS,WAAW;AACzE,MAAE,aAAaA,EAAE,aAAa,GAAG,KAAK,QAAQ;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,iBAAiB,GAAG,GAAG;AACrB,UAAMA,IAAI,KAAK;AACf,KAAC,CAAC,EAAE,UAAU,EAAE,YAAYA,EAAE,mBAAmB,EAAE,EAAE,OAAOA,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,aAAa,GAAGA,GAAG,CAAC;AAAA,EAC9H;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,aAAa,GAAG,GAAGA,GAAG;AACpB,KAAC,EAAE,aAAa,KAAK,OAAO,QAAQ,EAAE,KAAK,KAAK,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,KAAK,UAAUA,CAAC;AAAA,EACjH;AAAA,EACD,iBAAiB,GAAG;AAClB,UAAM,IAAI,KAAK,aAAa,GAAG,KAAK,OAAO,QAAQ,aAAa,GAAG;AACnE,WAAO,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI4mB,GAAG,GAAG,KAAK,OAAO,QAAQ,WAAW,IAAI,EAAE,aAAa,KAAK,OAAO,QAAQ,EAAE,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,QAAQ,EAAE;AAAA,EAChL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,uBAAuB,GAAG,GAAG;AAC3B,UAAM5mB,IAAI,KAAK;AACf,QAAI,CAAC,EAAE,UAAU,EAAE,YAAY,KAAK,CAACA,EAAE,cAAc,EAAE,EAAE,GAAG;AAC1D,QAAE,UAAU;AACZ,YAAMM,IAAIN,EAAE,cAAc,EAAE,EAAE,KAAK,KAAK,sBAAsB,GAAGA,GAAG,CAAC;AACrE,QAAE,OAAO,OAAM,GAAIM;AAAA,QACjBN,EAAE;AAAA,QACF,EAAE;AAAA,QACF,KAAK;AAAA,QACL6sB;AAAA,QACA,EAAE;AAAA,MACV;AAAA,IACK;AACD,SAAK,SAAS,OAAO,eAAe,EAAE,QAAQ7sB,EAAE,sBAAsB,CAAC,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,sBAAsB,GAAG,GAAGA,GAAG;AAC7B,UAAM,EAAE,IAAIM,MAAM,KAAK;AACvB,SAAK,SAAS,OAAO,KAAK,EAAE,MAAM;AAClC,UAAM,IAAI,KAAK,GAAG,qBAAqB,EAAE,SAASN,CAAC;AACnD,MAAE,sBAAsBA,CAAC,IAAI,KAAK,OAAO,kBAAkBM,EAAE,oBAAoB,EAAE,SAAS,GAAG,KAAK,OAAO,gBAAgB,GAAG,KAAK,OAAO;AAC1I,UAAM,IAAI,KAAK,aAAa,GAAG,KAAK,OAAO,QAAQ,aAAa,KAAK;AACrE,QAAI,IAAI,KAAK,UAAU,CAAC;AACxB,QAAI,MAAM,IAAI,KAAK,UAAU,CAAC,IAAIqsB,GAAG,GAAG,KAAK,OAAO,QAAQ,WAAW,IAAI,EAAE,YAAY;AACvF,YAAMhsB,IAAI,IAAI,aAAa,EAAE,OAAO,CAAC;AACrC,QAAE,OAAO,OAAOA,CAAC;AAAA,IAClB;AACD,WAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,aAAa,GAAG,GAAGX,GAAG;AACpB,UAAMM,IAAI,EAAE,UAAU,IAAI,CAAC,GAAGN,CAAC,GAAG;AAClC,eAAW,KAAKM;AACd,QAAE,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI;AACrC,WAAO,EAAE,KAAK,GAAG;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,eAAe;AACb,WAAO,KAAK,SAAS,KAAK,OAAO,QAAQ,WAAW,KAAK,SAAS,WAAW,IAAI;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,gBAAgB,GAAG;AACjB,UAAM,IAAI,KAAK,IAAIN,IAAI,EAAE,SAASM,IAAI+rB,GAAG,GAAGrsB,CAAC;AAC7C,WAAOA,EAAE,WAAW,KAAK,SAAS,WAAW,IAAIM,GAAGA;AAAA,EACrD;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,UAAU,MAAM,KAAK,SAAS;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG;AACf,SAAK,WAAW,MAAM,KAAK,SAAS;AAAA,EACrC;AAAA;AAAA,EAED,UAAU;AACR,SAAK,WAAW,MAAM,KAAK,YAAY;AAAA,EACxC;AACH;AACAwsB,GAAG,YAAY;AAAA,EACb,MAAMrK,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIkK,EAAE;AACR,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,GAAG;AACL,UAAM,EAAE,UAAU,EAAG,IAAG;AACxB,MAAE,QAAQ,KAAK,KAAK,EAAE,OAAO,GAAG,EAAE,SAAS,QAAQ,IAAI,kBAAkB,EAAE,aAAa,uBAAuB,GAAG,EAAE,OAAO,EAAE,OAAO,OAAO,EAAE,OAAO,MAAM;AAAA,EAC3J;AAAA,EACD,UAAU;AAAA,EACT;AACH;AACAA,GAAG,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlB,OAAO;AACT;AACAA,GAAG,YAAY;AAAA,EACb,MAAM;AAAA,IACJtK,EAAE;AAAA,IACFA,EAAE;AAAA,EACH;AAAA,EACD,MAAM;AACR;AACAG,EAAE,IAAImK,EAAE;AACR,SAASC,GAAGptB,GAAG,IAAI,IAAI;AACrB,SAAO,EAAE+R,EAAE,MAAM,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,GAAG,IAAI,CAAC/R,EAAE,KAAKA,EAAE,GAAG,GAAG,EAAE+R,EAAE,QAAQ,IAAI,CAAC/R,EAAE,WAAWA,EAAE,qBAAqBA,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,MAAM,IAAI,CAAC/R,EAAE,KAAKA,EAAE,qBAAqBA,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,OAAO,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,MAAM,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,OAAO,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,WAAW,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,UAAU,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,UAAU,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,UAAU,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,UAAU,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,SAAS,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,GAAG,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,UAAU,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,KAAK,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,UAAU,IAAI,CAAC/R,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAEA,EAAE,UAAU,IAAI,CAAC/R,EAAE,WAAWA,EAAE,qBAAqBA,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,OAAO,IAAI,CAAC/R,EAAE,WAAWA,EAAE,KAAKA,EAAE,KAAKA,EAAE,GAAG,GAAG,EAAE+R,EAAE,UAAU,IAAI,CAAC/R,EAAE,WAAWA,EAAE,qBAAqBA,EAAE,KAAKA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,MAAM,IAAI,CAAC/R,EAAE,WAAWA,EAAE,IAAI,GAAG,EAAE+R,EAAE,OAAO,IAAI,CAAC/R,EAAE,qBAAqBA,EAAE,IAAI,GAAG,EAAE+R,EAAE,QAAQ,IAAI,CAAC/R,EAAE,WAAWA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,QAAQ,IAAI,CAAC/R,EAAE,qBAAqBA,EAAE,GAAG,GAAG,EAAE+R,EAAE,MAAM,IAAI,CAAC/R,EAAE,MAAMA,EAAE,SAAS,GAAG,EAAE+R,EAAE,OAAO,IAAI,CAAC/R,EAAE,MAAMA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,QAAQ,IAAI,CAAC/R,EAAE,qBAAqBA,EAAE,SAAS,GAAG,EAAE+R,EAAE,GAAG,IAAI,CAAC/R,EAAE,qBAAqBA,EAAE,mBAAmB,GAAG,EAAE+R,EAAE,QAAQ,IAAI,CAAC/R,EAAE,KAAKA,EAAE,KAAKA,EAAE,KAAKA,EAAE,KAAKA,EAAE,uBAAuBA,EAAE,QAAQ,GAAG;AAC7iD;AACA,MAAMqtB,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,GAAGC,KAAK,MAAMC,GAAG;AAAA,EAClE,cAAc;AACZ,SAAK,KAAK,MAAM,KAAK,UAAU,GAAG,KAAK,gBAAgB,GAAG,KAAK,YAAY7b,EAAE,MAAM,KAAK,WAAW,IAAI,KAAK,MAAM,CAAA,GAAI,KAAK,IAAIsb,EAAE,IAAI,KAAK,UAAU,KAAK,IAAIC,EAAE,IAAI,KAAK,WAAW,KAAK,IAAIC,EAAE,IAAI,KAAK,aAAa,KAAK,IAAIC,EAAE,IAAI,KAAK,cAAc,KAAK,IAAIC,EAAE,IAAI,KAAK,cAAc,KAAK,IAAIC,EAAE,IAAI,KAAK,cAAc,KAAK,SAAS,CAAA,GAAI,KAAK,eAAe,IAAI/J,GAAE,GAAI,KAAK,aAAa,QAAQ;AAAA,EACrY;AAAA,EACD,cAAc,GAAG;AACf,SAAK,KAAK,GAAG,KAAK,aAAayJ,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,YAAY,GAAG,KAAK,MAAK;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,GAAG;AACL,QAAI,IAAI,KAAK,KAAK,cAAc,KAAK,YAAY,EAAE,MAAM;AACvD,UAAI,IAAI,KAAK,UAAU,EAAE,MAAMhtB,IAAI;AACnC,aAAO;AACL,YAAI,KAAK,KAAK,IAAIA,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,KAAKA,EAAE,GAAG,IAAI,KAAK,GAAGA;AACpE,WAAK,UAAU,EAAE;AAAA,IAClB;AACD,aAAS,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ;AACtC,WAAK,OAAO,CAAC,EAAE,MAAM,CAAC;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,GAAG;AACZ,QAAI,KAAK,KAAK;AACd,aAAS,IAAI,GAAG,IAAI,KAAK,IAAI,QAAQ;AACnC,WAAK,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,KAAK,EAAE;AAC5C,aAAS,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ;AACtC,WAAK,OAAO,CAAC,EAAE,MAAM,CAAC;AACxB,SAAK,UAAU,EAAE;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS,GAAG;AACV,SAAK,YAAYwtB,GAAG,gBAAgB,CAAC,GAAG,KAAK,GAAG,IAAI,WAAW,SAAS,EAAE,KAAK,GAAG,KAAK;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,UAAU,GAAG;AACX,SAAK,YAAYA,GAAG,oBAAoB,CAAC,GAAG,KAAK,GAAG,IAAI,WAAW,SAAS,EAAE,KAAK,GAAG,mBAAmB;AAAA,EAC1G;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa,GAAG;AACd,SAAK,GAAG,IAAI,WAAW,SAAS,EAAE,KAAK,GAAG,UAAU;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa,GAAG;AACd,SAAK,GAAG,UAAU,CAAC;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY,GAAG;AACb,SAAK,GAAG,IAAI,WAAW,SAAS,EAAE,KAAK,GAAG,SAAS;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa,GAAG;AACd,SAAK,GAAG,UAAU,KAAK,GAAG,IAAI,OAAO,KAAK,CAAC;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa,GAAG;AACd,QAAI,MAAM,KAAK;AACb;AACF,SAAK,YAAY;AACjB,UAAM,IAAI,KAAK,WAAW,CAAC,GAAGxtB,IAAI,KAAK;AACvC,MAAE,WAAW,IAAIA,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAIA,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,KAAK,WAAW,IAAIA,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,KAAK,aAAa,KAAK,WAAW,IAAIA,EAAE,sBAAsBA,EAAE,UAAUA,EAAE,QAAQ;AAAA,EAC1P;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,iBAAiB,GAAG,GAAG;AACrB,SAAK,GAAG,cAAc,GAAG,CAAC;AAAA,EAC3B;AAAA;AAAA;AAAA,EAGD,QAAQ;AACN,SAAK,GAAG,YAAY,KAAK,GAAG,qBAAqB,EAAE,GAAG,KAAK,WAAW,KAAK,YAAY,GAAG,KAAK,WAAW,IAAI,KAAK,YAAY,IAAI,KAAK,aAAa,CAAC;AAAA,EACvJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,YAAY,GAAG,GAAG;AAChB,UAAMA,IAAI,KAAK,OAAO,QAAQ,CAAC;AAC/B,SAAKA,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC,IAAI,CAAC,KAAKA,MAAM,MAAM,KAAK,OAAO,OAAOA,GAAG,CAAC;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,eAAe,GAAG,GAAG;AAC1B,MAAE,aAAa,EAAE,SAAS;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,mBAAmB,GAAG,GAAG;AAC9B,MAAE,iBAAiB,GAAG,EAAE,aAAa;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAID,UAAU;AACR,SAAK,KAAK;AAAA,EACX;AACH;AACAutB,GAAG,YAAY;AAAA,EACb,MAAM9K,EAAE;AAAA,EACR,MAAM;AACR;AACA,IAAIgL,KAAKF;AACT3K,EAAE,IAAI6K,EAAE;AACR,MAAMC,WAAW7Y,GAAG;AAAA,EAClB,cAAc;AACZ,UAAM,GAAG,SAAS,GAAG,KAAK,UAAU,IAAI,KAAK,eAAe;EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,MAAM,GAAG;AACP,SAAK,WAAW,GAAG,EAAE,OAAO;AAC5B,UAAM,KAAK,EAAE,YAAY,CAAE,GAAE,OAAO,CAACvU,MAAM,EAAE,QAAQA,CAAC,CAAC,GAAGN,IAAI;AAAA,MAC5D,GAAG;AAAA,MACH,GAAG,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,CAACM,MAAM,CAAC,EAAE,SAASA,CAAC,CAAC;AAAA,IAC5D;AACI,eAAWA,KAAKN;AACd,WAAK,UAAU,EAAE,QAAQM,CAAC,GAAGA,CAAC;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,cAAc,GAAG;AACf,MAAE,QAAQ,CAAC,MAAM;AACf,WAAK,QAAQ,CAAC,IAAI,IAAIojB,GAAG,CAAC;AAAA,IAChC,CAAK;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,UAAU,GAAG,GAAG;AACd,UAAM1jB,IAAI,IAAI,EAAE,IAAI;AACpB,QAAI,KAAK,CAAC;AACR,YAAM,IAAI,MAAM,qBAAqB,CAAC,qBAAqB;AAC7D,SAAK,CAAC,IAAIA,GAAG,KAAK,aAAa,CAAC,IAAIA;AACpC,eAAWM,KAAK,KAAK;AACnB,WAAK,QAAQA,CAAC,EAAE,IAAIN,CAAC;AACvB,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBD,sBAAsB,GAAG,GAAG;AAC1B,UAAMA,IAAI,OAAO,KAAK,KAAK,YAAY;AACvC,MAAE,MAAM,QAAQ,CAACM,MAAM;AACrB,YAAM,IAAIN,EAAE,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,MAAMM,CAAC;AAClD,MAAAA,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAAA,IACpB,CAAK;AAAA,EACF;AAAA;AAAA,EAED,UAAU;AACR,WAAO,OAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,MAAM;AACzC,QAAE,QAAO;AAAA,IACf,CAAK,GAAG,KAAK,eAAe;EACzB;AAAA;AAAA;AAAA;AAAA;AAKH;AACA,MAAMqtB,KAAK,MAAMC,GAAG;AAAA;AAAA,EAElB,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,QAAQ,GAAG,KAAK,aAAa,GAAG,KAAK,UAAUA,GAAG,gBAAgB,KAAK,gBAAgBA,GAAG,sBAAsB,KAAK,OAAOA,GAAG;AAAA,EACxJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,aAAa;AACX,SAAK,SAAS,eAAe,sBAAsB,KAAK,SAAS,KAAK,SAAStb,GAAG,WAAW,KAAK,cAAc,KAAK,aAAa,KAAK,kBAAkB,KAAK,aAAa,GAAG,KAAK,IAAK;AAAA,EACzL;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,MAAM;AACJ,UAAM,IAAI,KAAK,SAAS,SAAS,IAAI,EAAE;AACvC,QAAItS,IAAI;AACR,aAASM,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,YAAM,IAAI,EAAEA,CAAC;AACb,QAAE,YAAY,KAAK,QAAQ,EAAE,UAAU,KAAK,YAAY,EAAE,eAAe,GAAG,EAAE,GAAG,EAAEA,CAAC,IAAI,MAAMN,IAAI;AAAA,IACnG;AACD,QAAIA,GAAG;AACL,UAAIM,IAAI;AACR,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC5B,UAAE,CAAC,MAAM,SAAS,EAAEA,GAAG,IAAI,EAAE,CAAC;AAChC,QAAE,SAASA;AAAA,IACZ;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,GAAG;AACR,UAAM,IAAI,KAAK,SAAS,SAASN,IAAI,EAAE;AACvC,IAAAA,KAAK,CAACA,EAAE,eAAe,EAAE,eAAeA,CAAC;AACzC,aAASM,IAAI,EAAE,SAAS,SAAS,GAAGA,KAAK,GAAGA;AAC1C,WAAK,OAAO,EAAE,SAASA,CAAC,CAAC;AAAA,EAC5B;AAAA,EACD,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACAqtB,GAAG,cAAcrb,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAMpBqb,GAAG,iBAAiB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAMzBA,GAAG,uBAAuB,KAAK;AAC/BA,GAAG,YAAY;AAAA,EACb,MAAMlL,EAAE;AAAA,EACR,MAAM;AACR;AACA,IAAIoL,KAAKF;AACT/K,EAAE,IAAIiL,EAAE;AACR,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,UAAU,GAAG,KAAK,QAAQ,IAAI,KAAK,SAAS,IAAI,KAAK,UAAU,IAAI,KAAK,eAAe,IAAI,KAAK,SAAS,IAAI,KAAK,WAAW,OAAO,KAAK,OAAO/b,EAAE,eAAe,KAAK,iBAAiBF,EAAE,MAAM,KAAK,cAAc;AAAA,EACxN;AACH;AACA,SAASkc,GAAGnuB,GAAG;AACb,MAAI;AACJ,SAAO,4BAA4B,cAAcA,aAAa,WAAW,yBAAyB,IAAI;AAAA,IACpG,CAACA,EAAE,GAAG,GAAGoS,EAAE;AAAA,IACX,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,SAAS,GAAGoS,EAAE;AAAA,IACjB,CAACpS,EAAE,eAAe,GAAGoS,EAAE;AAAA,IACvB,CAACpS,EAAE,EAAE,GAAGoS,EAAE;AAAA,IACV,CAACpS,EAAE,QAAQ,GAAGoS,EAAE;AAAA,IAChB,CAACpS,EAAE,GAAG,GAAGoS,EAAE;AAAA,IACX,CAACpS,EAAE,SAAS,GAAGoS,EAAE;AAAA,IACjB,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,UAAU,GAAGoS,EAAE;AAAA,IAClB,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,WAAW,GAAGoS,EAAE;AAAA,IACnB,CAACpS,EAAE,QAAQ,GAAGoS,EAAE;AAAA,IAChB,CAACpS,EAAE,UAAU,GAAGoS,EAAE;AAAA,IAClB,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,YAAY,GAAGoS,EAAE;AAAA,IACpB,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,cAAc,GAAGoS,EAAE;AAAA,IACtB,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,GAAG,GAAGoS,EAAE;AAAA,IACX,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,MAAM,GAAGoS,EAAE;AAAA,IACd,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,QAAQ,GAAGoS,EAAE;AAAA,IAChB,CAACpS,EAAE,OAAO,GAAGoS,EAAE;AAAA,IACf,CAACpS,EAAE,QAAQ,GAAGoS,EAAE;AAAA,IAChB,CAACpS,EAAE,iBAAiB,GAAGoS,EAAE;AAAA,IACzB,CAACpS,EAAE,iBAAiB,GAAGoS,EAAE;AAAA,IACzB,CAACpS,EAAE,kBAAkB,GAAGoS,EAAE;AAAA,IAC1B,CAACpS,EAAE,aAAa,GAAGoS,EAAE;AAAA,IACrB,CAACpS,EAAE,gBAAgB,GAAGoS,EAAE;AAAA,IACxB,CAACpS,EAAE,iBAAiB,GAAGoS,EAAE;AAAA,EAC1B,IAAG,IAAI;AAAA,IACN,CAACpS,EAAE,GAAG,GAAGoS,EAAE;AAAA,IACX,CAACpS,EAAE,IAAI,GAAGoS,EAAE;AAAA,IACZ,CAACpS,EAAE,KAAK,GAAGoS,EAAE;AAAA,IACb,CAACpS,EAAE,SAAS,GAAGoS,EAAE;AAAA,IACjB,CAACpS,EAAE,eAAe,GAAGoS,EAAE;AAAA,IACvB,CAACpS,EAAE,aAAa,GAAGoS,EAAE;AAAA,EACtB,GAAE;AACL;AACA,SAASgc,GAAGpuB,GAAG;AACb,MAAI;AACJ,SAAO,4BAA4B,cAAcA,aAAa,WAAW,yBAAyB,IAAI;AAAA,IACpG,CAACmS,EAAE,aAAa,GAAG;AAAA,MACjB,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,MACZ,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,MACX,CAACiS,EAAE,EAAE,GAAGjS,EAAE;AAAA,MACV,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,MACX,CAACiS,EAAE,YAAY,GAAGjS,EAAE;AAAA,MACpB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,UAAU,GAAGjS,EAAE;AAAA,MAClB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,KAAK,GAAGjS,EAAE;AAAA,MACb,CAACiS,EAAE,SAAS,GAAGjS,EAAE;AAAA,MACjB,CAACiS,EAAE,eAAe,GAAGjS,EAAE;AAAA,IACxB;AAAA,IACD,CAACmS,EAAE,IAAI,GAAG;AAAA,MACR,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,MACZ,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,MACX,CAACiS,EAAE,EAAE,GAAGjS,EAAE;AAAA,MACV,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,MACX,CAACiS,EAAE,YAAY,GAAGjS,EAAE;AAAA,MACpB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,UAAU,GAAGjS,EAAE;AAAA,MAClB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,IACpB;AAAA,IACD,CAACmS,EAAE,cAAc,GAAG;AAAA,MAClB,CAACF,EAAE,YAAY,GAAGjS,EAAE;AAAA,MACpB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,UAAU,GAAGjS,EAAE;AAAA,MAClB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,eAAe,GAAGjS,EAAE;AAAA,IACxB;AAAA,IACD,CAACmS,EAAE,KAAK,GAAG;AAAA,MACT,CAACF,EAAE,YAAY,GAAGjS,EAAE;AAAA,MACpB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,UAAU,GAAGjS,EAAE;AAAA,MAClB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,IACpB;AAAA,IACD,CAACmS,EAAE,YAAY,GAAG;AAAA,MAChB,CAACF,EAAE,YAAY,GAAGjS,EAAE;AAAA,MACpB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,UAAU,GAAGjS,EAAE;AAAA,MAClB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,eAAe,GAAGjS,EAAE;AAAA,IACxB;AAAA,IACD,CAACmS,EAAE,GAAG,GAAG;AAAA,MACP,CAACF,EAAE,YAAY,GAAGjS,EAAE;AAAA,MACpB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,MACnB,CAACiS,EAAE,UAAU,GAAGjS,EAAE;AAAA,MAClB,CAACiS,EAAE,WAAW,GAAGjS,EAAE;AAAA,IACpB;AAAA,IACD,CAACmS,EAAE,KAAK,GAAG;AAAA,MACT,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,MACZ,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,MACX,CAACiS,EAAE,EAAE,GAAGjS,EAAE;AAAA,MACV,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,MACX,CAACiS,EAAE,eAAe,GAAGjS,EAAE;AAAA,IACxB;AAAA,IACD,CAACmS,EAAE,UAAU,GAAG;AAAA,MACd,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,MACZ,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,MACX,CAACiS,EAAE,EAAE,GAAGjS,EAAE;AAAA,MACV,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,IACZ;AAAA,IACD,CAACmS,EAAE,oBAAoB,GAAG;AAAA,MACxB,CAACF,EAAE,GAAG,GAAGjS,EAAE;AAAA,IACZ;AAAA,IACD,CAACmS,EAAE,sBAAsB,GAAG;AAAA,MAC1B,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,IACb;AAAA,IACD,CAACmS,EAAE,sBAAsB,GAAG;AAAA,MAC1B,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,IACb;AAAA,IACD,CAACmS,EAAE,2BAA2B,GAAG;AAAA,MAC/B,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,MACZ,CAACiS,EAAE,YAAY,GAAGjS,EAAE;AAAA,IACrB;AAAA,IACD,CAACmS,EAAE,4BAA4B,GAAG;AAAA,MAChC,CAACF,EAAE,GAAG,GAAGjS,EAAE;AAAA,IACZ;AAAA,IACD,CAACmS,EAAE,wBAAwB,GAAG;AAAA,MAC5B,CAACF,EAAE,GAAG,GAAGjS,EAAE;AAAA,IACZ;AAAA,IACD,CAACmS,EAAE,iBAAiB,GAAG;AAAA,MACrB,CAACF,EAAE,aAAa,GAAGjS,EAAE;AAAA,IACtB;AAAA,IACD,CAACmS,EAAE,8BAA8B,GAAG;AAAA,MAClC,CAACF,EAAE,aAAa,GAAGjS,EAAE;AAAA,IACtB;AAAA,EACF,IAAG,IAAI;AAAA,IACN,CAACmS,EAAE,aAAa,GAAG;AAAA,MACjB,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,MACZ,CAACiS,EAAE,GAAG,GAAGjS,EAAE;AAAA,MACX,CAACiS,EAAE,KAAK,GAAGjS,EAAE;AAAA,MACb,CAACiS,EAAE,SAAS,GAAGjS,EAAE;AAAA,MACjB,CAACiS,EAAE,eAAe,GAAGjS,EAAE;AAAA,IACxB;AAAA,IACD,CAACmS,EAAE,oBAAoB,GAAG;AAAA,MACxB,CAACF,EAAE,GAAG,GAAGjS,EAAE;AAAA,IACZ;AAAA,IACD,CAACmS,EAAE,sBAAsB,GAAG;AAAA,MAC1B,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,IACb;AAAA,IACD,CAACmS,EAAE,sBAAsB,GAAG;AAAA,MAC1B,CAACF,EAAE,IAAI,GAAGjS,EAAE;AAAA,IACb;AAAA,EACF,GAAE;AACL;AACA,MAAMquB,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,gBAAgB,IAAI,KAAK,kBAAkB,IAAI,KAAK,kBAAkB,IAAI,KAAK,wBAAwB,IAAI,KAAK,iBAAiB,IAAIjK,KAAM,KAAK,qBAAqB;AAAA,EAC9L;AAAA;AAAA,EAED,gBAAgB;AACd,UAAM,IAAI,KAAK,KAAK,KAAK,SAAS;AAClC,SAAK,cAAc,KAAK,SAAS,aAAa,KAAK,eAAe,KAAK,SAAS,QAAQ,cAAc,KAAK,kBAAkBgK,GAAG,CAAC,GAAG,KAAK,eAAeD,GAAG,CAAC;AAC5J,UAAM,IAAI,EAAE,aAAa,EAAE,uBAAuB;AAClD,SAAK,cAAc,SAAS;AAC5B,aAASztB,IAAI,GAAGA,IAAI,GAAGA;AACrB,WAAK,cAAcA,CAAC,IAAI;AAC1B,SAAK,gBAAgB;AACrB,UAAMN,IAAI,IAAI8tB,GAAG,EAAE,cAAe,CAAA;AAClC,MAAE,YAAY,EAAE,YAAY9tB,EAAE,OAAO,GAAG,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,MAAM,EAAE,eAAe,IAAI,WAAW,CAAC,CAAC,GAAG,KAAK,cAAc,EAAE,UAAU,IAAIA,GAAG,KAAK,cAAc,EAAE,gBAAgB,IAAI,IAAI8tB,GAAG,EAAE,cAAe,CAAA,GAAG,EAAE,YAAY,EAAE,kBAAkB,KAAK,cAAc,EAAE,gBAAgB,EAAE,OAAO;AAC9T,aAASxtB,IAAI,GAAGA,IAAI,GAAGA;AACrB,QAAE,WAAW,EAAE,8BAA8BA,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,MAAM,EAAE,eAAe,IAAI;AACnG,MAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM;AACvI,aAASA,IAAI,GAAGA,IAAI,KAAK,cAAc,QAAQA;AAC7C,WAAK,KAAK,MAAMA,CAAC;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,KAAK,GAAG,IAAI,GAAG;AACb,UAAM,EAAE,IAAIN,EAAG,IAAG;AAClB,QAAI,IAAI,KAAK,OAAO,SAAS,EAAE,kBAAmB,IAAG,KAAK,OAAO,SAAS,EAAE,UAAU,CAAC,EAAE,oBAAoB;AAC3G,QAAE,UAAU,KAAK,SAAS,UAAU;AACpC,YAAMM,IAAI,EAAE,YAAY,KAAK,WAAW,KAAK,KAAK,YAAY,CAAC;AAC/D,WAAK,cAAc,CAAC,MAAM,MAAM,KAAK,oBAAoB,MAAM,KAAK,kBAAkB,GAAGN,EAAE,cAAcA,EAAE,WAAW,CAAC,IAAIA,EAAE,YAAY,EAAE,QAAQM,EAAE,OAAO,IAAIA,EAAE,YAAY,EAAE,WAAW,KAAK,oBAAoB,MAAM,KAAK,kBAAkB,GAAGN,EAAE,cAAcA,EAAE,WAAW,CAAC,IAAI,KAAK,cAAc,CAAC,KAAKM,EAAE,iBAAiB,EAAE,gBAAgB,KAAK,mBAAmB,CAAC,GAAG,KAAK,cAAc,CAAC,IAAI;AAAA,IACzY;AACC,WAAK,oBAAoB,MAAM,KAAK,kBAAkB,GAAGN,EAAE,cAAcA,EAAE,WAAW,CAAC,IAAIA,EAAE,YAAYA,EAAE,YAAY,KAAK,cAAcA,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,cAAc,CAAC,IAAI;AAAA,EAC7L;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,wBAAwB,IAAI,KAAK,qBAAqB,IAAI,KAAK,kBAAkB;AACtF,aAAS,IAAI,GAAG,IAAI,KAAK,cAAc,QAAQ;AAC7C,WAAK,cAAc,CAAC,IAAI,KAAK;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,GAAG;AACR,UAAM,EAAE,IAAI,GAAG,eAAeA,EAAC,IAAK;AACpC,QAAI,KAAK,uBAAuB;AAC9B,WAAK,wBAAwB;AAC7B,eAASM,IAAI,GAAGA,IAAIN,EAAE,QAAQM;AAC5B,QAAAN,EAAEM,CAAC,MAAM,KAAK,kBAAkB,KAAK,KAAK,MAAMA,CAAC;AAAA,IACpD;AACD,aAASA,IAAI,GAAGA,IAAIN,EAAE,QAAQM;AAC5B,MAAAN,EAAEM,CAAC,MAAM,MAAM,KAAK,oBAAoBA,MAAM,EAAE,cAAc,EAAE,WAAWA,CAAC,GAAG,KAAK,kBAAkBA,IAAI,EAAE,YAAY,EAAE,QAAQ,KAAK,cAAc,EAAE,MAAM,EAAE,OAAO,GAAGN,EAAEM,CAAC,IAAI;AAAA,EACnL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,kBAAkB,GAAG;AACnB,UAAM,EAAE,eAAe,GAAG,oBAAoBN,GAAG,aAAaM,EAAG,IAAG;AACpE,QAAIN;AACF,eAAS,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG;AAC/B,cAAM,IAAI,EAAE,CAAC;AACb,aAAK,EAAE,YAAYM,CAAC,EAAE,gBAAgB0R,EAAE,SAAS,KAAK,SAAS,QAAQ,OAAO,CAAC;AAAA,MAChF;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,YAAY,GAAG;AACb,UAAM,IAAI,IAAI8b,GAAG,KAAK,GAAG,cAAa,CAAE;AACxC,WAAO,EAAE,UAAU,IAAI,EAAE,YAAY,KAAK,WAAW,IAAI,GAAG,KAAK,gBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,WAAW,KAAK,gBAAgB,IAAI,GAAG;AAAA,EACvI;AAAA,EACD,gBAAgB,GAAG,GAAG;AACpB,QAAI9tB;AACJ,MAAE,mBAAmBA,IAAI,KAAK,gBAAgB,EAAE,IAAI,MAAM,OAAO,SAASA,EAAE,EAAE,MAAM,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,aAAa,EAAE,cAAc,KAAKgS,EAAE,OAAO,KAAK,iBAAiB,KAAK,EAAE,SAASD,EAAE,aAAa,EAAE,OAAO,KAAK,GAAG,aAAa,EAAE,OAAO,EAAE;AAAA,EACnQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG;AACf,QAAIzR;AACJ,UAAMwX,IAAI,EAAE,YAAY,KAAK,WAAW;AACxC,QAAI,CAACA;AACH;AACF,UAAM9X,IAAI,KAAK;AACf,QAAI,KAAK,gBAAgB,GAAG8X,CAAC,IAAIxX,IAAI,EAAE,aAAa,OAAO,SAASA,EAAE,OAAON,GAAG,GAAG8X,CAAC;AAClF,MAAAA,EAAE,gBAAgB9F,EAAE,UAAU,KAAK,qBAAqB;AAAA,SACrD;AACH,YAAM,IAAI,EAAE,WAAW,IAAI,EAAE,YAAY,IAAIhS,EAAE;AAC/C,OAAC8X,EAAE,UAAU,KAAKA,EAAE,WAAW,KAAKA,EAAE,UAAU,OAAOA,EAAE,QAAQ,GAAGA,EAAE,SAAS,GAAG,EAAE;AAAA,QAClF,EAAE;AAAA,QACF;AAAA,QACAA,EAAE;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,EAAE;AAAA,QACFA,EAAE;AAAA,QACF;AAAA,MACR;AAAA,IACK;AACD,MAAE,iBAAiBA,EAAE,gBAAgB,KAAK,mBAAmB,CAAC,GAAGA,EAAE,UAAU,EAAE;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,eAAe,GAAG,GAAG;AACnB,UAAM,EAAE,IAAI9X,EAAG,IAAG;AAClB,QAAI,IAAI,EAAE,kBAAmB,GAAE,EAAE,YAAY,KAAK,WAAW,MAAM,KAAK,OAAO,CAAC,GAAGA,EAAE,cAAc,EAAE,YAAY,KAAK,WAAW,EAAE,OAAO,GAAG,EAAE,IAAI,WAAW,KAAK,gBAAgB,IAAI,GAAG,OAAO,EAAE,YAAY,KAAK,WAAW,GAAG,CAAC,IAAI;AACrO,YAAMM,IAAI,KAAK,gBAAgB,QAAQ,CAAC;AACxC,MAAAA,MAAM,MAAMmhB,GAAG,KAAK,iBAAiBnhB,GAAG,CAAC;AAAA,IAC1C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,mBAAmB,GAAG;AACpB,QAAIN;AACJ,UAAM8X,IAAI,EAAE,YAAY,KAAK,WAAW;AACxC,IAAAA,OAAO,EAAE,WAAW3F,GAAG,QAAQ,KAAK,iBAAiB,MAAM,CAAC,EAAE,eAAe2F,EAAE,SAAS,KAAKA,EAAE,SAAS,EAAE,UAAU,GAAG,KAAK,iBAAiB,KAAK,CAAC,EAAE,eAAeA,EAAE,WAAW5F,GAAG,QAAQ4F,EAAE,WAAW,EAAE,WAAW9X,IAAI,EAAE,aAAa,QAAQA,EAAE,MAAM,KAAK,UAAU,GAAG8X,CAAC,KAAK,KAAK,SAAS,GAAGA,CAAC,GAAGA,EAAE,eAAe,EAAE;AAAA,EAC1T;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,SAAS,GAAG,GAAG;AACb,UAAM9X,IAAI,KAAK;AACf,QAAI,EAAE,UAAU,EAAE,WAAWmS,GAAG,aAAanS,EAAE,eAAe,EAAE,MAAM,GAAGA,EAAE,cAAc,EAAE,QAAQA,EAAE,gBAAgB,EAAE,QAAQ,GAAGA,EAAE,cAAc,EAAE,QAAQA,EAAE,gBAAgB,EAAE,QAAQ,GAAG,EAAE,QAAQ;AACnM,MAAAA,EAAE,cAAc,EAAE,QAAQA,EAAE,oBAAoB,EAAE,cAAciS,GAAG,SAASjS,EAAE,uBAAuBA,EAAE,sBAAsB;AAC7H,YAAMM,IAAI,KAAK,SAAS,QAAQ,WAAW;AAC3C,UAAIA,KAAK,EAAE,mBAAmB,KAAK,EAAE,cAAc2R,GAAG,QAAQ;AAC5D,cAAM,IAAI,KAAK,IAAI,EAAE,kBAAkBjS,EAAE,aAAaM,EAAE,8BAA8B,CAAC;AACvF,QAAAN,EAAE,cAAc,EAAE,QAAQM,EAAE,4BAA4B,CAAC;AAAA,MAC1D;AAAA,IACF;AACC,MAAAN,EAAE,cAAc,EAAE,QAAQA,EAAE,oBAAoB,EAAE,cAAciS,GAAG,SAASjS,EAAE,SAASA,EAAE,OAAO;AAClG,IAAAA,EAAE,cAAc,EAAE,QAAQA,EAAE,oBAAoB,EAAE,cAAciS,GAAG,SAASjS,EAAE,SAASA,EAAE,OAAO;AAAA,EACjG;AAAA,EACD,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACAiuB,GAAG,YAAY;AAAA,EACb,MAAMxL,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIqL,EAAE;AACR,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA,EAED,gBAAgB;AACd,SAAK,KAAK,KAAK,SAAS,IAAI,KAAK,cAAc,KAAK,SAAS;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,UAAM,EAAE,IAAI,GAAG,aAAaluB,EAAC,IAAK,MAAMM,IAAI,EAAE,sBAAsBN,CAAC,KAAK,KAAK,0BAA0B,CAAC;AAC1G,MAAE,sBAAsB,EAAE,oBAAoBM,CAAC;AAAA,EAChD;AAAA;AAAA,EAED,SAAS;AACP,UAAM,EAAE,IAAI,EAAG,IAAG;AAClB,MAAE,sBAAsB,EAAE,oBAAoB,IAAI;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,uBAAuB,GAAG,GAAG;AAC3B,UAAM,EAAE,IAAIN,GAAG,UAAUM,EAAC,IAAK;AAC/B,SAAKA,EAAE,OAAO,KAAK,CAAC,GAAGN,EAAE,uBAAuB,CAAC;AAAA,EAClD;AAAA;AAAA,EAED,uBAAuB;AACrB,UAAM,EAAE,IAAI,EAAG,IAAG;AAClB,MAAE,qBAAoB;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,0BAA0B,GAAG;AAC3B,UAAM,EAAE,IAAI,GAAG,UAAUA,GAAG,aAAaM,EAAC,IAAK,MAAM,IAAI,EAAE,wBAAuB;AAClF,MAAE,sBAAsBA,CAAC,IAAI,GAAG,EAAE,sBAAsB,EAAE,oBAAoB,CAAC;AAC/E,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,QAAQ,KAAK;AACzC,YAAM,IAAI,EAAE,QAAQ,CAAC;AACrB,YAAMN,EAAE,OAAO,OAAO,CAAC,GAAG,EAAE,WAAWM,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,2BAA2B,GAAG,EAAE,WAAWA,CAAC,EAAE,UAAU,IAAI;AAAA,IACtI;AACD,WAAO,EAAE,sBAAsB,EAAE,oBAAoB,IAAI,GAAG,EAAE,cAAc,IAAI,IAAI,GAAG;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,yBAAyB,GAAG,GAAG;AAC7B,UAAMN,IAAI,EAAE,sBAAsB,KAAK,WAAW,GAAGM,IAAI,KAAK;AAC9D,MAAE,cAAc,OAAO,IAAI;AAC3B,UAAM,IAAI,KAAK,SAAS;AACxB,QAAI;AACF,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,QAAQ,KAAK;AACzC,cAAM,IAAI,EAAE,QAAQ,CAAC;AACrB,YAAI,CAAC;AACH;AACF,cAAMK,IAAI,EAAE,WAAW,KAAK,WAAW;AACvC,QAAAA,MAAMA,EAAE,YAAYA,EAAE,aAAa,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC;AAAA,MAC7D;AACH,IAAAX,MAAM,KAAKM,EAAE,wBAAwBN,CAAC,GAAG,OAAO,EAAE,sBAAsB,KAAK,WAAW;AAAA,EACzF;AAAA,EACD,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AACH;AACAkuB,GAAG,YAAY;AAAA,EACb,MAAMzL,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIsL,EAAE;AACR,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,SAAK,SAAS,IAAIjJ,EAAG,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,UAAU,EAAE,QAAQtS,EAAE,QAAQ,aAAc,GAAE,KAAK,aAAa,EAAE,cAAcA,EAAE,YAAY,KAAK,cAAc,CAAC,CAAC,EAAE;AAAA,EAC1K;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,WAAW,GAAG,GAAG;AACf,SAAK,QAAQ,QAAQ,KAAK,MAAM,IAAI,KAAK,UAAU,GAAG,KAAK,QAAQ,SAAS,KAAK,MAAM,IAAI,KAAK,UAAU;AAC1G,UAAM5S,IAAI,KAAK,QAAQ,QAAQ,KAAK,YAAYM,IAAI,KAAK,QAAQ,SAAS,KAAK;AAC/E,SAAK,OAAO,QAAQN,GAAG,KAAK,OAAO,SAASM,GAAG,KAAK,gBAAgB,KAAK,QAAQ,MAAM,QAAQ,GAAGN,CAAC,MAAM,KAAK,QAAQ,MAAM,SAAS,GAAGM,CAAC,OAAO,KAAK,SAAS,KAAK,UAAUN,GAAGM,CAAC,GAAG,KAAK,SAAS,QAAQ,OAAO,KAAK,KAAK,OAAO,OAAO,KAAK,OAAO,MAAM;AAAA,EAC5P;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ,GAAG;AACT,QAAI;AACJ,WAAO,IAAI,KAAK,QAAQ,eAAe,QAAQ,EAAE,YAAY,KAAK,OAAO,IAAI,KAAK,WAAW,MAAM,KAAK,UAAU,MAAM,KAAK,SAAS;AAAA,EACvI;AACH;AACA6tB,GAAG,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOR,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMZ,aAAa;AACf;AACAA,GAAG,YAAY;AAAA,EACb,MAAM;AAAA,IACJ1L,EAAE;AAAA,IACFA,EAAE;AAAA,EACH;AAAA,EACD,MAAM;AACR;AACAG,EAAE,IAAIuL,EAAE;AACRvb,EAAE,aAAapB,GAAG;AAClBoB,EAAE,uBAAuB;AACzBA,EAAE,iBAAiB;AAAA,EACjB,GAAG0W,GAAG;AAAA,EACN,GAAGH,GAAG;AAAA,EACN,GAAGgF,GAAG;AAAA,EACN,GAAGpB,GAAG;AACR;AACA,OAAO,iBAAiBna,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASzB,WAAW;AAAA,IACT,MAAM;AACJ,aAAOoR,EAAG,eAAe;AAAA,IAC1B;AAAA,IACD,IAAIpkB,GAAG;AACL,MAAAue,GAAG,SAAS,2EAA2E,GAAG6F,EAAG,eAAe,WAAWpkB;AAAA,IACxH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,YAAY;AAAA,IACV,MAAM;AACJ,aAAOokB,EAAG,eAAe;AAAA,IAC1B;AAAA,IACD,IAAIpkB,GAAG;AACL,MAAAue,GAAG,SAAS,6EAA6E,GAAG6F,EAAG,eAAe,YAAYpkB;AAAA,IAC3H;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,iBAAiB;AAAA,IACf,MAAM;AACJ,aAAOokB,EAAG,eAAe;AAAA,IAC1B;AAAA,IACD,IAAIpkB,GAAG;AACL,MAAAue,GAAG,SAAS,+EAA+E,GAAG6F,EAAG,eAAe,SAASpkB;AAAA,IAC1H;AAAA;AAAA,EAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,mBAAmB;AAAA,IACjB,MAAM;AACJ,aAAOokB,EAAG,eAAe;AAAA,IAC1B;AAAA,IACD,IAAIpkB,GAAG;AACL,MAAAue;AAAA,QACE;AAAA,QACA;AAAA,MACD,GAAE6F,EAAG,eAAe,mBAAmBpkB;AAAA,IACzC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,mBAAmB;AAAA,IACjB,MAAM;AACJ,aAAOue,GAAG,SAAS,wEAAwE,GAAG+K,GAAG;AAAA,IAClG;AAAA,IACD,IAAItpB,GAAG;AACL,MAAAspB,GAAG,oBAAoBtpB;AAAA,IACxB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,oBAAoB;AAAA,IAClB,MAAM;AACJ,aAAOue,GAAG,SAAS,0EAA0E,GAAG+K,GAAG;AAAA,IACpG;AAAA,IACD,IAAItpB,GAAG;AACL,MAAAspB,GAAG,qBAAqBtpB;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,qBAAqB;AAAA,IACnB,MAAM;AACJ,aAAOipB,GAAG;AAAA,IACX;AAAA,IACD,IAAIjpB,GAAG;AACL,MAAAue,GAAG,SAAS,kFAAkF,GAAG0K,GAAG,qBAAqBjpB;AAAA,IAC1H;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYD,mBAAmB;AAAA,IACjB,MAAM;AACJ,aAAOipB,GAAG;AAAA,IACX;AAAA,IACD,IAAIjpB,GAAG;AACL,MAAAue,GAAG,SAAS,8EAA8E,GAAG0K,GAAG,mBAAmBjpB;AAAA,IACpH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,wBAAwB;AAAA,IACtB,MAAM;AACJ,aAAOipB,GAAG;AAAA,IACX;AAAA,IACD,IAAIjpB,GAAG;AACL,MAAAue,GAAG,SAAS,sFAAsF,GAAG0K,GAAG,sBAAsBjpB;AAAA,IAC/H;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,SAAS;AAAA,IACP,MAAM;AACJ,aAAOiuB,GAAG;AAAA,IACX;AAAA,IACD,IAAIjuB,GAAG;AACL,MAAAue,GAAG,SAAS,iEAAiE,GAAG0P,GAAG,cAAcjuB;AAAA,IAClG;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,aAAa;AAAA,IACX,MAAM;AACJ,aAAOiuB,GAAG;AAAA,IACX;AAAA,IACD,IAAIjuB,GAAG;AACL,MAAAue,GAAG,SAAS,wEAAwE,GAAG0P,GAAG,iBAAiBjuB;AAAA,IAC5G;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,oBAAoB;AAAA,IAClB,MAAM;AACJ,aAAOiuB,GAAG;AAAA,IACX;AAAA,IACD,IAAIjuB,GAAG;AACL,MAAAue,GAAG,SAAS,qFAAqF,GAAG0P,GAAG,uBAAuBjuB;AAAA,IAC/H;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,kBAAkB;AAAA,IAChB,MAAM;AACJ,aAAOooB,GAAG;AAAA,IACX;AAAA,IACD,IAAIpoB,GAAG;AACL,MAAAue,GAAG,SAAS,6EAA6E,GAAG6J,GAAG,yBAAyBpoB;AAAA,IACzH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,oBAAoB;AAAA,IAClB,MAAM;AACJ,aAAOooB,GAAG;AAAA,IACX;AAAA,IACD,IAAIpoB,GAAG;AACL,MAAAue,GAAG,SAAS,iFAAiF,GAAG6J,GAAG,2BAA2BpoB;AAAA,IAC/H;AAAA,EACF;AACH,CAAC;AACD,IAAIwuB,KAAsB,kBAACxuB,OAAOA,EAAEA,EAAE,cAAc,EAAE,IAAI,eAAeA,EAAEA,EAAE,OAAO,EAAE,IAAI,QAAQA,EAAEA,EAAE,SAAS,CAAC,IAAI,UAAUA,EAAEA,EAAE,MAAM,GAAG,IAAI,OAAOA,EAAEA,EAAE,UAAU,GAAG,IAAI,WAAWA,IAAIwuB,MAAM,CAAA,CAAE;AAClM,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASP,YAAY,GAAG,IAAI,MAAMruB,IAAI,GAAGM,IAAI,IAAI;AACtC,SAAK,OAAO,MAAM,KAAK,WAAW,MAAM,KAAK,aAAa,IAAI,KAAK,KAAK,GAAG,KAAK,UAAU,GAAG,KAAK,WAAWN,GAAG,KAAK,OAAOM;AAAA,EAC7H;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,MAAM,GAAG,IAAI,MAAM;AACjB,WAAO,KAAK,OAAO,KAAK,KAAK,YAAY;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,KAAK,GAAG;AACN,SAAK,OAAO,KAAK,UAAU,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC;AACpE,UAAM,IAAI,KAAK;AACf,WAAO,KAAK,QAAQ,KAAK,QAAQ,EAAE,GAAG,KAAK,eAAe,KAAK,OAAO,OAAO;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,GAAG;AACT,SAAK,WAAW,GAAG,EAAE,SAAS,EAAE,KAAK,WAAW,OAAO,KAAK,OAAO,EAAE,MAAM,EAAE,OAAO;AAAA,EACrF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,QAAQ,IAAI,IAAI;AACd,SAAK,aAAa,IAAI,KAAK,KAAK,MAAM,KAAK,UAAU,MAAM,KAAK,aAAa,KAAK,SAAS,OAAO,KAAK,OAAO,KAAK,SAAS,KAAK,KAAK,WAAW,KAAK;AACtJ,UAAM,IAAI,KAAK;AACf,WAAO,KAAK,OAAO,IAAI,OAAO,GAAG,KAAK,WAAW,MAAM;AAAA,EACxD;AACH;AACA,MAAMguB,KAAK,MAAMC,GAAG;AAAA,EAClB,cAAc;AACZ,SAAK,YAAY,IAAI,KAAK,YAAY,GAAG,KAAK,WAAW,IAAI,KAAK,QAAQ,GAAG,KAAK,UAAU,IAAI,KAAK,aAAa,MAAM,KAAK,gBAAgB,KAAK,KAAK,gBAAgB,GAAG,KAAK,aAAa,IAAI,KAAK,aAAa,IAAI,KAAK,QAAQ,IAAIF,GAAG,MAAM,MAAM,KAAK,GAAG,KAAK,UAAU,IAAIE,GAAG,YAAY,KAAK,YAAY,IAAIA,GAAG,YAAY,KAAK,QAAQ,CAAC,MAAM;AACtV,WAAK,aAAa,MAAM,KAAK,YAAY,KAAK,OAAO,CAAC,GAAG,KAAK,WAAW,KAAK,eAAe,QAAQ,KAAK,MAAM,SAAS,KAAK,aAAa,sBAAsB,KAAK,KAAK;AAAA,IACjL;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,mBAAmB;AACjB,SAAK,eAAe,QAAQ,KAAK,MAAM,SAAS,KAAK,WAAW,YAAY,IAAG,GAAI,KAAK,aAAa,KAAK,UAAU,KAAK,aAAa,sBAAsB,KAAK,KAAK;AAAA,EACvK;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB;AAChB,SAAK,eAAe,SAAS,qBAAqB,KAAK,UAAU,GAAG,KAAK,aAAa;AAAA,EACvF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,mBAAmB;AACjB,SAAK,UAAU,KAAK,iBAAgB,IAAK,KAAK,aAAa,KAAK;EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,IAAI,GAAG,GAAGvuB,IAAIouB,GAAG,QAAQ;AACvB,WAAO,KAAK,aAAa,IAAIC,GAAG,GAAG,GAAGruB,CAAC,CAAC;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,QAAQ,GAAG,GAAGA,IAAIouB,GAAG,QAAQ;AAC3B,WAAO,KAAK,aAAa,IAAIC,GAAG,GAAG,GAAGruB,GAAG,EAAE,CAAC;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,aAAa,GAAG;AACd,QAAI,IAAI,KAAK,MAAM,MAAMA,IAAI,KAAK;AAClC,QAAI,CAAC;AACH,QAAE,QAAQA,CAAC;AAAA,SACR;AACH,aAAO,KAAK;AACV,YAAI,EAAE,WAAW,EAAE,UAAU;AAC3B,YAAE,QAAQA,CAAC;AACX;AAAA,QACD;AACD,QAAAA,IAAI,GAAG,IAAI,EAAE;AAAA,MACd;AACD,QAAE,YAAY,EAAE,QAAQA,CAAC;AAAA,IAC1B;AACD,WAAO,KAAK,iBAAkB,GAAE;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,GAAG,GAAG;AACX,QAAIA,IAAI,KAAK,MAAM;AACnB,WAAOA;AACL,MAAAA,EAAE,MAAM,GAAG,CAAC,IAAIA,IAAIA,EAAE,QAAS,IAAGA,IAAIA,EAAE;AAC1C,WAAO,KAAK,MAAM,QAAQ,KAAK,gBAAiB,GAAE;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,QAAQ;AACV,QAAI,CAAC,KAAK;AACR,aAAO;AACT,QAAI,IAAI,GAAG,IAAI,KAAK;AACpB,WAAO,IAAI,EAAE;AACX;AACF,WAAO;AAAA,EACR;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,YAAY,KAAK,UAAU,IAAI,KAAK,iBAAgB;AAAA,EAC1D;AAAA;AAAA,EAED,OAAO;AACL,SAAK,YAAY,KAAK,UAAU,IAAI,KAAK,gBAAe;AAAA,EACzD;AAAA;AAAA,EAED,UAAU;AACR,QAAI,CAAC,KAAK,YAAY;AACpB,WAAK,KAAI;AACT,UAAI,IAAI,KAAK,MAAM;AACnB,aAAO;AACL,YAAI,EAAE,QAAQ,EAAE;AAClB,WAAK,MAAM,QAAO,GAAI,KAAK,QAAQ;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaD,OAAO,IAAI,YAAY,OAAO;AAC5B,QAAI;AACJ,QAAI,IAAI,KAAK,UAAU;AACrB,UAAI,IAAI,KAAK,YAAY,IAAI,KAAK,UAAU,IAAI,KAAK,kBAAkB,IAAI,KAAK,gBAAgB,KAAK,KAAK,OAAO,KAAK,eAAe;AACnI,cAAM,IAAI,IAAI,KAAK,aAAa;AAChC,YAAI,IAAI,KAAK;AACX;AACF,aAAK,aAAa,IAAI,IAAI,KAAK;AAAA,MAChC;AACD,WAAK,UAAU,GAAG,KAAK,YAAY,KAAK,UAAUuuB,GAAG;AACrD,YAAMvuB,IAAI,KAAK;AACf,UAAIM,IAAIN,EAAE;AACV,aAAOM;AACL,QAAAA,IAAIA,EAAE,KAAK,KAAK,SAAS;AAC3B,MAAAN,EAAE,QAAQ,KAAK;IAChB;AACC,WAAK,YAAY,KAAK,UAAU,KAAK,YAAY;AACnD,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,IAAI,MAAM;AACR,WAAO,MAAM,KAAK;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWD,IAAI,SAAS;AACX,WAAO,MAAM,KAAK;AAAA,EACnB;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,UAAM,IAAI,KAAK,IAAI,KAAK,QAAQ,CAAC,GAAGA,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,CAAC,IAAI,KAAKuuB,GAAG,UAAU;AACpF,SAAK,gBAAgB,IAAIvuB;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,IAAI,SAAS;AACX,WAAO,KAAK,gBAAgB,KAAK,MAAM,MAAM,KAAK,aAAa,IAAI;AAAA,EACpE;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,QAAI,MAAM;AACR,WAAK,gBAAgB;AAAA,SAClB;AACH,YAAM,IAAI,KAAK,IAAI,KAAK,QAAQ,CAAC;AACjC,WAAK,gBAAgB,KAAK,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4CD,WAAW,SAAS;AAClB,QAAI,CAACuuB,GAAG,SAAS;AACf,YAAM,IAAIA,GAAG,UAAU,IAAIA,GAAE;AAC7B,QAAE,YAAY,IAAI,EAAE,aAAa;AAAA,IAClC;AACD,WAAOA,GAAG;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,WAAW,SAAS;AAClB,QAAI,CAACA,GAAG,SAAS;AACf,YAAM,IAAIA,GAAG,UAAU,IAAIA,GAAE;AAC7B,QAAE,YAAY,IAAI,EAAE,aAAa;AAAA,IAClC;AACD,WAAOA,GAAG;AAAA,EACX;AACH;AACAD,GAAG,aAAa;AAChB,IAAIE,KAAKF;AACT,OAAO,iBAAiB1b,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUzB,aAAa;AAAA,IACX,MAAM;AACJ,aAAO4b,GAAG;AAAA,IACX;AAAA,IACD,IAAI5uB,GAAG;AACL,MAAAue,GAAG,SAAS,2DAA2D,GAAGqQ,GAAG,aAAa5uB;AAAA,IAC3F;AAAA,EACF;AACH,CAAC;AACD,MAAM6uB,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOP,OAAO,KAAK,GAAG;AACb,QAAI,OAAO,OAAO;AAAA,MAChB,WAAW;AAAA,MACX,cAAc;AAAA,IACpB,GAAO,CAAC,GAAG,OAAO;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,QACE,IAAI,GAAG;AACL,eAAK,WAAW,KAAK,QAAQ,OAAO,KAAK,QAAQ,IAAI,GAAG,KAAK,UAAU,GAAG,KAAK,EAAE,IAAI,KAAK,QAAQ,MAAML,GAAG,GAAG;AAAA,QAC/G;AAAA,QACD,MAAM;AACJ,iBAAO,KAAK;AAAA,QACb;AAAA,MACF;AAAA,IACP,GAAO,KAAK,OAAO,MAAM;AACnB,WAAK,QAAQ;IACnB,GAAO,KAAK,QAAQ,MAAM;AACpB,WAAK,QAAQ;IACnB,GAAO,KAAK,UAAU,MAAM,KAAK,SAAS,EAAE,eAAeI,GAAG,SAAS,IAAIA,MAAM,EAAE,aAAa,KAAK;EAClG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,UAAU;AACf,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI,KAAK;AACf,WAAK,SAAS,MAAM,EAAE,QAAO;AAAA,IAC9B;AAAA,EACF;AACH;AACAC,GAAG,YAAYhM,EAAE;AACjBG,EAAE,IAAI6L,EAAE;AACR,MAAMC,KAAK,CAAA;AACX9L,EAAE,aAAaH,EAAE,UAAUiM,EAAE;AAC7B,SAASC,GAAG/uB,GAAG;AACb,aAAW,KAAK8uB;AACd,QAAI,EAAE,KAAK9uB,CAAC;AACV,aAAO,IAAI,EAAEA,CAAC;AAClB,QAAM,IAAI,MAAM,4CAA4C;AAC9D;AACA,IAAIgvB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWLC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BT,MAAMC,KAAKF,IAAIG,KAAKF;AACpB,MAAMG,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,WAAW;AAAA,EACjB;AAAA,EACD,cAAc,GAAG;AACf,QAAI;AACJ,QAAI,KAAK,SAAS,QAAQ,iBAAiB,GAAG;AAC5C,YAAMhvB,IAAI,EAAE,aAAa,EAAE,mBAAmB;AAC9C,QAAE,gBAAgB,EAAE,aAAa,IAAI,GAAG,IAAI,EAAE,aAAa,EAAE,OAAO,GAAG,EAAE,gBAAgB,EAAE,aAAaA,CAAC;AAAA,IAC/G,OAAW;AACL,YAAMA,IAAI,EAAE,aAAa,EAAE,wBAAwB;AACnD,QAAE,gBAAgB,EAAE,kBAAkB,IAAI,GAAG,IAAI,EAAE,aAAa,EAAE,OAAO,GAAG,EAAE,gBAAgB,EAAE,kBAAkBA,CAAC;AAAA,IACpH;AACD,SAAKyS,GAAG,OAAO,KAAK,cAAcA,GAAG,OAAO,KAAKA,GAAG,SAAS,KAAK,cAAcA,GAAG,SAAS,KAAKA,GAAG,MAAM,KAAK,cAAcA,GAAG,MAAM,KAAK,cAAcA,GAAG;AAAA,EAC7J;AAAA,EACD,UAAU;AAAA,EACT;AACH;AACAuc,GAAG,YAAY;AAAA,EACb,MAAMvM,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIoM,EAAE;AACR,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,SAAS,KAAK,MAAM,KAAK,WAAW,IAAI,KAAK,aAAa,IAAI,KAAK,WAAW;AAAA,EACpF;AACH;AACA,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA,EAIP,YAAY,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,iBAAiB,IAAI,KAAK,mBAAmB;EACtE;AAAA;AAAA;AAAA;AAAA,EAID,UAAU;AACR,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA,EAED,gBAAgB;AACd,SAAK,WAAW,EAAE,GAAG,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,cAAc,KAAK,SAAS;AAAA,EACnF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,UAAM,EAAE,IAAI,GAAG,aAAalvB,EAAC,IAAK,MAAMM,IAAI,EAAE,WAAWN,CAAC,KAAK,KAAK,eAAe,CAAC;AACpF,MAAE,WAAW,EAAE,MAAMM,EAAE,MAAM;AAAA,EAC9B;AAAA,EACD,OAAO,GAAG;AACR,UAAM,EAAE,IAAI,EAAG,IAAG;AAClB,MAAE,WAAW,GAAG,IAAI;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,eAAe,GAAG,GAAG;AACnB,UAAM,EAAE,IAAIN,GAAG,aAAaM,EAAC,IAAK;AAClC,QAAI,KAAK,iBAAiB,CAAC,MAAM,GAAG;AAClC,YAAM,IAAI,EAAE,WAAWA,CAAC,KAAK,KAAK,eAAe,CAAC;AAClD,WAAK,iBAAiB,CAAC,IAAI,GAAGN,EAAE,eAAeA,EAAE,gBAAgB,GAAG,EAAE,MAAM;AAAA,IAC7E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,gBAAgB,GAAG,GAAGA,GAAG;AACvB,UAAM,EAAE,IAAIM,GAAG,aAAa,EAAC,IAAK;AAClC,IAAAN,IAAIA,KAAK;AACT,UAAM,IAAI,EAAE,WAAW,CAAC,KAAK,KAAK,eAAe,CAAC;AAClD,IAAAM,EAAE,gBAAgBA,EAAE,gBAAgB,KAAK,GAAG,EAAE,QAAQN,IAAI,KAAK,GAAG;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,GAAG;AACR,UAAM,EAAE,IAAI,GAAG,aAAaA,EAAC,IAAK,MAAMM,IAAI,EAAE,WAAWN,CAAC,KAAK,KAAK,eAAe,CAAC;AACpF,QAAI,EAAE,cAAcM,EAAE;AACpB,UAAIA,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAMA,EAAE,MAAM,GAAGA,EAAE,cAAc,EAAE,KAAK;AACnF,UAAE,cAAc,EAAE,MAAM,GAAG,EAAE,IAAI;AAAA,WAC9B;AACH,cAAM,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE;AACvC,QAAAA,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC;AAAA,MACjE;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,GAAG,GAAG;AACZ,QAAI,CAAC,KAAK,eAAe,EAAE,EAAE;AAC3B;AACF,WAAO,KAAK,eAAe,EAAE,EAAE;AAC/B,UAAMN,IAAI,EAAE,WAAW,KAAK,WAAW,GAAGM,IAAI,KAAK;AACnD,MAAE,cAAc,OAAO,IAAI,GAAGN,MAAM,KAAKM,EAAE,aAAaN,EAAE,MAAM,GAAG,OAAO,EAAE,WAAW,KAAK,WAAW;AAAA,EACxG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,GAAG;AACZ,UAAM,IAAI,OAAO,KAAK,KAAK,cAAc;AACzC,aAASA,IAAI,GAAGA,IAAI,EAAE,QAAQA;AAC5B,WAAK,QAAQ,KAAK,eAAe,EAAEA,CAAC,CAAC,GAAG,CAAC;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,eAAe,GAAG;AAChB,UAAM,EAAE,aAAa,GAAG,IAAIA,EAAC,IAAK;AAClC,WAAO,EAAE,WAAW,CAAC,IAAI,IAAIivB,GAAGjvB,EAAE,aAAY,CAAE,GAAG,KAAK,eAAe,EAAE,EAAE,IAAI,GAAG,EAAE,cAAc,IAAI,IAAI,GAAG,EAAE,WAAW,CAAC;AAAA,EAC5H;AACH;AACAkvB,GAAG,YAAY;AAAA,EACb,MAAMzM,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIsM,EAAE;AACR,MAAMC,GAAG;AAAA;AAAA,EAEP,YAAY,GAAG;AACb,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG,GAAG;AACX,UAAMnvB,IAAI,KAAK;AACf,QAAIM,GAAG,GAAG,GAAG;AACb,QAAI,MAAMA,IAAI,EAAE,eAAe,IAAI,EAAE,OAAO,IAAI,EAAE,WAAW,IAAI,EAAE,sBAAsB,KAAK,oBAAoB,CAACA,GAAGN,EAAE,QAAQ,UAAU,KAAM,GAAEA,EAAE,KAAK,WAAW,GAAGA,EAAE,WAAW,YAAY,GAAG,CAACA,EAAE,QAAQ,QAAQ;AACpN,UAAIM,MAAM,KAAK,qBAAqB,IAAI,CAAC,GAAG;AAC1C,cAAMK,IAAI,EAAE;AACZ,UAAE,gBAAiB,GAAE,EAAE,kBAAkBA,CAAC;AAAA,MAC3C;AACD,MAAAX,EAAE,cAAc,KAAKM,CAAC,GAAGN,EAAE,MAAM,gBAAgB,UAAU,KAAKA,EAAE,WAAW,sBAAsBA,EAAE,cAAc,MAAO,GAAE,EAAE,OAAOA,CAAC,GAAGA,EAAE,MAAM,gBAAgB,MAAO,GAAEM,MAAM,EAAE,QAAQN,EAAE,YAAY,KAAI,GAAIM,EAAE,YAAY,WAAWN,EAAE,QAAQ,WAAW,KAAM,GAAEA,EAAE,WAAW,YAAY,MAAMA,EAAE,KAAK,YAAY;AAAA,IACzT;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK,WAAW,MAAM,KAAK,qBAAqB;AAAA,EACjD;AACH;AACAmvB,GAAG,YAAY;AAAA,EACb,MAAM1M,EAAE;AAAA,EACR,MAAM;AACR;AACAG,EAAE,IAAIuM,EAAE;AACR,MAAMC,KAAK,MAAMC,WAAW3B,GAAG;AAAA;AAAA;AAAA;AAAA,EAI7B,YAAY,GAAG;AACb,aAAS,KAAK,OAAOjc,GAAG,OAAO,IAAI,OAAO,OAAO,CAAE,GAAEmB,EAAE,gBAAgB,CAAC,GAAG,KAAK,KAAK,MAAM,KAAK,cAAc,GAAG,KAAK,iBAAiB,IAAIsV,GAAG;AAAA,MAC5I,kBAAkB,IAAI3C,GAAI;AAAA,IAChC,GAAO,EAAE;AACL,UAAM,IAAI;AAAA,MACR,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,SAAS8J,GAAG;AAAA,MACZ,UAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACP;AACI,SAAK,MAAM,CAAC,GAAG,qBAAqB,MAAMlR,GAAG,SAAS,2GAA2G,GAAG,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,KAAK,IAAI,EAAE,kBAAkB,KAAK,QAAQ,kBAAkBkR,GAAG,WAAW,KAAK,UAAU,GAAG,KAAK,QAAQ,IAAI,KAAK,OAAO;AAAA,EAC3Z;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,KAAK,GAAG;AACb,WAAO,KAAK,QAAQ,EAAE,cAAc,KAAKxQ;EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,OAAO,GAAG,GAAG;AACX,SAAK,eAAe,OAAO,GAAG,CAAC;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,GAAG,GAAG;AACX,SAAK,MAAM,WAAW,GAAG,CAAC;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ;AACN,WAAO,KAAK,QAAQ,MAAM,KAAI,GAAI;AAAA,EACnC;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,cAAc,KAAI,GAAI,KAAK,cAAc;EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,IAAI,IAAI;AACd,SAAK,QAAQ,QAAQ,MAAM,QAAO,GAAI,KAAK,sBAAsB,KAAK,QAAQ,SAAS;AAAA,MACrF,OAAO;AAAA,IACb,CAAK,GAAG,MAAM;EACX;AAAA;AAAA,EAED,IAAI,UAAU;AACZ,WAAO,KAAK,QAAQ;AAAA,EACrB;AAAA;AAAA,EAED,IAAI,cAAc;AAChB,WAAO,KAAK,aAAa;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,QAAQ;AACV,WAAO,KAAK,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,SAAS;AACX,WAAO,KAAK,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAED,IAAI,aAAa;AACf,WAAO,KAAK,MAAM;AAAA,EACnB;AAAA,EACD,IAAI,WAAW,GAAG;AAChB,SAAK,MAAM,aAAa,GAAG,KAAK,QAAQ,iBAAiB,KAAK,CAAC;AAAA,EAChE;AAAA;AAAA,EAED,IAAI,cAAc;AAChB,WAAO,KAAK,MAAM;AAAA,EACnB;AAAA;AAAA,EAED,IAAI,OAAO;AACT,WAAO,KAAK,MAAM;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,SAAS;AACX,WAAO,KAAK,MAAM;AAAA,EACnB;AAAA;AAAA,EAED,IAAI,qBAAqB;AACvB,WAAO,KAAK,eAAe;AAAA,EAC5B;AAAA;AAAA,EAED,IAAI,oBAAoB;AACtB,WAAO,KAAK,eAAe;AAAA,EAC5B;AAAA;AAAA,EAED,IAAI,gBAAgB;AAClB,WAAO,SAAS,KAAK,QAAQ,YAAY;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,oBAAoB;AACtB,WAAOV,GAAG,SAAS,2GAA2G,GAAG,KAAK,WAAW;AAAA,EAClJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,kBAAkB;AACpB,WAAOA,GAAG,SAAS,uGAAuG,GAAG,KAAK,QAAQ;AAAA,EAC3I;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,wBAAwB;AAC1B,WAAOA,GAAG,SAAS,+GAA+G,GAAG,KAAK,QAAQ;AAAA,EACnJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,kBAAkB;AACpB,WAAOA,GAAG,SAAS,sFAAsF,GAAG,KAAK,WAAW;AAAA,EAC7H;AAAA,EACD,IAAI,gBAAgB,GAAG;AACrB,IAAAA,GAAG,SAAS,sFAAsF,GAAG,KAAK,WAAW,QAAQ;AAAA,EAC9H;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,kBAAkB;AACpB,WAAOA,GAAG,SAAS,sFAAsF,GAAG,KAAK,WAAW;AAAA,EAC7H;AAAA;AAAA;AAAA;AAAA,EAID,IAAI,gBAAgB,GAAG;AACrB,IAAAA,GAAG,SAAS,sFAAsF,GAAG,KAAK,WAAW,QAAQ;AAAA,EAC9H;AAAA;AAAA;AAAA;AAAA,EAID,IAAI,kBAAkB;AACpB,WAAOA,GAAG,SAAS,iGAAiG,GAAG,KAAK,QAAQ;AAAA,EACrI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYD,gBAAgB,GAAG,GAAG;AACpB,WAAO,KAAK,iBAAiB,gBAAgB,GAAG,CAAC;AAAA,EAClD;AACH;AACAiR,GAAG,YAAY;AAAA,EACb,MAAM3M,EAAE;AAAA,EACR,UAAU;AACZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA2M,GAAG,YAAY,CAAE;AAAA;AAAA;AAAA;AAIjBA,GAAG,YAAY,CAAA;AACf,IAAIE,KAAKF;AACTxM,EAAE,YAAYH,EAAE,gBAAgB6M,GAAG,SAAS;AAC5C1M,EAAE,YAAYH,EAAE,gBAAgB6M,GAAG,SAAS;AAC5C1M,EAAE,IAAI0M,EAAE;AACR,MAAMC,WAAW5L,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlB,YAAY,GAAG,GAAG;AAChB,UAAM,EAAE,OAAO3jB,GAAG,QAAQM,EAAG,IAAG,KAAK;AACrC,UAAMN,GAAGM,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,eAAe;AAClD,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,YAAM,IAAI,IAAI0jB;AACd,WAAK,MAAM,KAAK,CAAC,GAAG,KAAK,aAAa,KAAK,EAAE;AAAA,IAC9C;AACD,SAAK,SAAS,GAAG,KAAK,QAAQ,MAAM,KAAK,cAAc;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,cAAc,GAAG,GAAG;AAClB,aAAShkB,IAAI,GAAGA,IAAI,KAAK,QAAQA;AAC/B,QAAEA,CAAC,MAAM,EAAEA,CAAC,EAAE,oBAAoB,KAAK,iBAAiB,EAAEA,CAAC,EAAE,kBAAmB,GAAEA,CAAC,IAAI,EAAEA,CAAC,aAAa2jB,KAAK,KAAK,cAAc,EAAE3jB,CAAC,GAAGA,CAAC,IAAI,KAAK,cAAcyjB,GAAG,EAAEzjB,CAAC,GAAG,CAAC,GAAGA,CAAC;AAAA,EAC9K;AAAA;AAAA,EAED,UAAU;AACR,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,IAAI,GAAG;AACtC,WAAK,MAAM,CAAC,EAAE,QAAO;AACvB,SAAK,QAAQ,MAAM,KAAK,eAAe,MAAM,KAAK,QAAQ;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,cAAc,GAAG,GAAG;AAClB,QAAI,CAAC,KAAK,MAAM,CAAC;AACf,YAAM,IAAI,MAAM,SAAS,CAAC,mBAAmB;AAC/C,WAAO,EAAE,SAAS,CAAC,KAAK,SAAS,KAAK,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG;AAAA,EAChG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,QAAI,KAAK,gBAAgB;AACvB,YAAM,IAAI,MAAM,mDAAmD;AACrE,UAAM,KAAK,CAAC;AACZ,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,WAAK,MAAM,CAAC,EAAE,qBAAqB,GAAG,KAAK,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,CAAC;AAAA,EAC/E;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,GAAG;AACR,UAAM,OAAO,CAAC;AACd,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,WAAK,MAAM,CAAC,EAAE,qBAAqB,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,UAAU,EAAE,QAAQ,CAAC;AAAA,EACnF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO;AACL,QAAI,KAAK;AACP,aAAO,KAAK;AACd,UAAM,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,KAAI,CAAE;AAChF,WAAO,KAAK,QAAQ,QAAQ,IAAI,CAAC,EAAE;AAAA,MACjC,MAAM;AACJ,cAAM,EAAE,WAAW,GAAG,YAAYA,EAAC,IAAK,KAAK,MAAM,CAAC;AACpD,eAAO,KAAK,OAAO,GAAGA,CAAC,GAAG,KAAK,UAAU,QAAQ,QAAQ,IAAI;AAAA,MAC9D;AAAA,IACP,GAAO,KAAK;AAAA,EACT;AACH;AACA,MAAMwvB,WAAWD,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlB,YAAY,GAAG,GAAG;AAChB,UAAM,EAAE,OAAOvvB,GAAG,QAAQM,EAAG,IAAG,KAAK;AACrC,QAAI,GAAG;AACP,UAAM,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,EAAE,UAAU,IAAI,GAAG,MAAM,GAAG,EAAE,OAAON,GAAG,QAAQM,EAAG,CAAA,GAAG,KAAK,KAAK,cAAc,GAAG,CAAC;AAAA,EAClH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,iBAAiB,GAAG,GAAG;AACrB,QAAI,EAAE;AACJ,WAAK,cAAc,EAAE,UAAU,CAAC;AAAA;AAEhC,YAAM,IAAI,MAAM,8CAA8C;AAChE,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,UAAM,KAAK,CAAC,GAAG,EAAE,SAASwR,GAAG;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,GAAG,GAAG9R,GAAG;AACd,UAAM,EAAE,QAAQM,GAAG,cAAc,GAAG,OAAO,EAAG,IAAG,MAAM,EAAE,IAAI,EAAC,IAAK;AACnE,IAAAN,EAAE,UAAU,KAAK,EAAE;AAAA,MACjB,EAAE;AAAA,MACF;AAAA,MACAA,EAAE;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACLM;AAAA,MACA;AAAA,MACA,EAAE;AAAA,MACFN,EAAE;AAAA,MACF;AAAA,IACN;AACI,aAASW,IAAI,GAAGA,IAAIL,GAAGK,KAAK;AAC1B,YAAMC,IAAI,EAAED,CAAC;AACb,QAAEA,CAAC,IAAIC,EAAE,YAAY,EAAED,CAAC,IAAIC,EAAE,SAASA,EAAE,SAAS,EAAE;AAAA,QAClD,EAAE;AAAA,QACF;AAAA,QACA;AAAA;AAAA,QAEA;AAAA;AAAA,QAEAD;AAAA;AAAA,QAEAC,EAAE,SAAS;AAAA,QACXA,EAAE,SAAS;AAAA,QACX;AAAA,QACA,EAAE;AAAA,QACFZ,EAAE;AAAA,QACFY,EAAE,SAAS;AAAA,MACnB;AAAA,IACK;AACD,WAAO;AAAA,EACR;AACH;AACA,MAAM6uB,WAAWhG,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,YAAY,GAAG;AACb,UAAM,CAAC;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,KAAK,GAAG;AACb,UAAM,EAAE,iBAAiB,EAAG,IAAG;AAC/B,WAAO,KAAK,aAAa,IAAI,KAAK,WAAW,qBAAqB,aAAa;AAAA,EAChF;AACH;AACA,MAAMiG,KAAK,MAAMC,WAAWJ,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW7B,YAAY,GAAG,GAAG;AAChB,UAAM,EAAE,OAAOvvB,GAAG,QAAQM,GAAG,UAAU,GAAG,iBAAiB,MAAM,KAAK,CAAA;AACtE,QAAI,KAAK,EAAE,WAAWqvB,GAAG;AACvB,YAAM,IAAI,MAAM,uBAAuB,EAAE,MAAM,cAAc;AAC/D,UAAM,GAAG,EAAE,OAAO3vB,GAAG,QAAQM,EAAC,CAAE;AAChC,aAAS,IAAI,GAAG,IAAIqvB,GAAG,OAAO;AAC5B,WAAK,MAAM,CAAC,EAAE,SAAS7d,GAAG,8BAA8B;AAC1D,SAAK,kBAAkB,MAAM,IAAI,KAAK,KAAK,cAAc,GAAG,CAAC,GAAG,MAAM,MAAM,KAAK;EAClF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,KAAK,GAAG;AACN,UAAM,KAAK,CAAC,GAAG,EAAE,SAASA,GAAG;AAAA,EAC9B;AAAA,EACD,iBAAiB,GAAG,GAAG9R,GAAG;AACxB,QAAIA,MAAM,WAAWA,IAAI,KAAK,kBAAkB,CAAC,KAAK,MAAM,CAAC;AAC3D,YAAM,IAAI,MAAM,SAAS,CAAC,mBAAmB;AAC/C,QAAI,CAAC,KAAK,mBAAmB,EAAE,sBAAsB,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS;AACvF,UAAI,EAAE;AACJ,aAAK,cAAc,EAAE,UAAU,CAAC;AAAA;AAEhC,cAAM,IAAI,MAAM,yDAAyD;AAAA;AAE3E,QAAE,SAAS8R,GAAG,8BAA8B,GAAG,EAAE,qBAAqB,KAAK,aAAa,KAAK,MAAM,CAAC,IAAI;AAC1G,WAAO,EAAE,SAAS,CAAC,KAAK,SAAS,KAAK,OAAO,EAAE,WAAW,EAAE,UAAU,GAAG,KAAK,MAAM,CAAC,IAAI,GAAG;AAAA,EAC7F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,GAAG,GAAG9R,GAAG;AACd,UAAMM,IAAI,KAAK;AACf,aAAS,IAAI,GAAG,IAAIqvB,GAAG,OAAO,KAAK;AACjC,YAAM,IAAI,KAAK,MAAM,CAAC;AACtB,OAACrvB,EAAE,CAAC,IAAI,EAAE,WAAWN,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,OAAO,GAAG,GAAGA,CAAC,GAAGM,EAAE,CAAC,IAAI,EAAE,WAAWA,EAAE,CAAC,IAAI,OAAO,EAAE,GAAG;AAAA,QAC1I,EAAE;AAAA,QACF;AAAA,QACAN,EAAE;AAAA,QACF,EAAE;AAAA,QACF,EAAE;AAAA,QACF;AAAA,QACA,EAAE;AAAA,QACFA,EAAE;AAAA,QACF;AAAA,MACD,GAAEM,EAAE,CAAC,IAAI;AAAA,IACX;AACD,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,KAAK,GAAG;AACb,WAAO,MAAM,QAAQ,CAAC,KAAK,EAAE,WAAWqvB,GAAG;AAAA,EAC5C;AACH;AACAD,GAAG,QAAQ;AACX,IAAIE,KAAKF;AACT,MAAMG,WAAWpG,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,YAAY,GAAG,GAAG;AAChB,QAAI,KAAK;AACT,QAAIzpB,GAAGM,GAAG;AACV,WAAO,KAAK,YAAYN,IAAI6vB,GAAG,OAAOvvB,IAAI,GAAG,IAAI,OAAON,IAAI,GAAGM,IAAI,MAAM,IAAI,KAAK,MAAMN,CAAC,GAAG,KAAK,MAAMM,GAAG,KAAK,cAAc,EAAE,eAAe,IAAI,KAAK,YAAY,OAAO,EAAE,aAAa,WAAW,EAAE,YAAY,MAAM,KAAK,kBAAkB,EAAE,mBAAmB,GAAG,KAAK,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAK,KAAI;AAAA,EACzT;AAAA,EACD,OAAO;AACL,WAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,QAAQ,IAAI,QAAQ,OAAO,GAAG,MAAM;AACzE,UAAI,KAAK,QAAQ,MAAM;AACrB,UAAE,IAAI;AACN;AAAA,MACD;AACD,UAAI;AACF,cAAMN,IAAI,MAAM4S,EAAE,QAAQ,MAAM,KAAK,KAAK;AAAA,UACxC,MAAM,KAAK,cAAc,SAAS;AAAA,QAC5C,CAAS;AACD,YAAI,KAAK;AACP;AACF,cAAMtS,IAAI,MAAMN,EAAE;AAClB,YAAI,KAAK;AACP;AACF,cAAM,IAAI,MAAM,kBAAkBM,GAAG;AAAA,UACnC,kBAAkB,KAAK,cAAc,QAAQ,KAAK,cAAc8R,GAAG,SAAS,gBAAgB;AAAA,QACtG,CAAS;AACD,YAAI,KAAK,WAAW;AAClB,YAAE,MAAK;AACP;AAAA,QACD;AACD,aAAK,SAAS,GAAG,KAAK,UAAU,EAAE,IAAI;AAAA,MACvC,SAAQpS,GAAG;AACV,YAAI,KAAK;AACP;AACF,UAAEA,CAAC,GAAG,KAAK,QAAQ,KAAKA,CAAC;AAAA,MAC1B;AAAA,IACP,CAAK,GAAG,KAAK;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,GAAG,GAAGA,GAAG;AACd,WAAO,KAAK,kBAAkB,eAAe,OAAO,KAAK,aAAa,aAAa,EAAE,YAAY,KAAK,YAAY,MAAM,OAAO,GAAG,GAAGA,CAAC,MAAM,KAAK,KAAI,GAAI;AAAA,EAC1J;AAAA;AAAA,EAED,UAAU;AACR,SAAK,mBAAmB,KAAK,kBAAkB,eAAe,KAAK,OAAO,MAAO,GAAE,MAAM,QAAO,GAAI,KAAK,QAAQ;AAAA,EAClH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,KAAK,GAAG;AACb,WAAO,CAAC,CAAC,WAAW,qBAAqB,OAAO,cAAc,QAAQ,OAAO,KAAK,YAAY,aAAa;AAAA,EAC5G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,WAAW,QAAQ;AACjB,WAAO6vB,GAAG,SAASA,GAAG,UAAUjd,EAAE,QAAQ,aAAa,GAAG,CAAC,GAAGid,GAAG;AAAA,EAClE;AACH;AACA,MAAMC,KAAK,MAAMC,WAAWtG,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS7B,YAAY,GAAG,GAAG;AAChB,QAAI,KAAK,CAAE,GAAE,MAAM7W,EAAE,QAAQ,aAAc,CAAA,GAAG,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,KAAK,MAAM,GAAG,KAAK,QAAQ,EAAE,SAAS,GAAG,KAAK,iBAAiB,EAAE,OAAO,KAAK,kBAAkB,EAAE,QAAQ,KAAK,WAAW,MAAM,KAAK,eAAe,EAAE,aAAa,KAAK,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAK;EACjS;AAAA,EACD,OAAO;AACL,WAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM;AAChE,UAAI,KAAK,WAAW,MAAM;AACxB,aAAK,OAAM,GAAI,EAAE,IAAI;AAAA,MAC7B,GAASmd,GAAG,QAAQ,KAAK,KAAK,IAAI,KAAI,CAAE,GAAG;AACnC,YAAI,CAAC;AACH,gBAAM,IAAI,MAAM,kDAAkD;AACpE,aAAK,MAAM,6BAA6B,KAAK,SAAS,mBAAmB,KAAK,GAAG,CAAC,CAAC,CAAC;AAAA,MACrF;AACD,WAAK,SAAQ;AAAA,IACnB,CAAK,GAAG,KAAK;AAAA,EACV;AAAA;AAAA,EAED,WAAW;AACT,UAAM,IAAI,IAAI;AACd,IAAAtG,GAAG,YAAY,GAAG,KAAK,KAAK,KAAK,YAAY,GAAG,EAAE,MAAM,KAAK,KAAK,EAAE,UAAU,CAAC,MAAM;AACnF,WAAK,aAAa,EAAE,UAAU,MAAM,KAAK,QAAQ,KAAK,CAAC;AAAA,IAC7D,GAAO,EAAE,SAAS,MAAM;AAClB,UAAI,CAAC,KAAK;AACR;AACF,YAAM,IAAI,EAAE,OAAOzpB,IAAI,EAAE;AACzB,UAAI,CAAC,KAAK,CAACA;AACT,cAAM,IAAI,MAAM,sFAAsF;AACxG,UAAIM,IAAI,IAAI,KAAK,OAAO,IAAIN,IAAI,KAAK;AACrC,OAAC,KAAK,kBAAkB,KAAK,qBAAqBM,IAAI,KAAK,kBAAkB,KAAK,kBAAkBN,IAAI,GAAG,IAAI,KAAK,mBAAmB,KAAK,iBAAiB,IAAIA,IAAIM,IAAI,KAAK,MAAMA,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC;AACxM,YAAM,IAAI,KAAK;AACf,QAAE,QAAQA,GAAG,EAAE,SAAS,GAAG,EAAE,UAAU,UAAUshB,GAAI,CAAA,IAAI,EAAE,WAAW,IAAI,EAAE,UAAU,GAAG,GAAG,GAAG,GAAG5hB,GAAG,GAAG,GAAGM,GAAG,CAAC,GAAG,KAAK,SAAU,GAAE,KAAK,WAAW;AAAA,IACzJ;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,QAAQ,GAAG;AAChB,UAAM,IAAIyvB,GAAG,SAAS,KAAK,CAAC,GAAG/vB,IAAI;AACnC,WAAO,MAAMA,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,GAAGA,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,IAAIA;AAAA,EAC/F;AAAA;AAAA,EAED,UAAU;AACR,UAAM,QAAS,GAAE,KAAK,WAAW,MAAM,KAAK,eAAe;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,OAAO,KAAK,GAAG,GAAG;AAChB,WAAO,MAAM,SAAS,OAAO,KAAK,YAAY,EAAE,WAAW,oBAAoB,KAAK,OAAO,KAAK,YAAY+vB,GAAG,QAAQ,KAAK,CAAC;AAAA,EAC9H;AAAA;AAEH;AACAD,GAAG,UAAU;AAAA;AAAA;AAAA;AAAA;AAKbA,GAAG,WAAW;AACd,IAAIE,KAAKF;AACT,MAAMG,WAAWxG,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,YAAY,GAAG;AACb,UAAM,CAAC;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,KAAK,GAAG;AACb,WAAO,CAAC,CAAC,WAAW,cAAc,aAAa,WAAW;AAAA,EAC3D;AACH;AACA,MAAMyG,KAAK,MAAMC,WAAW1G,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc7B,YAAY,GAAG,GAAG;AAChB,QAAI,IAAI,KAAK,CAAA,GAAI,EAAE,aAAa,mBAAmB;AACjD,YAAMzpB,IAAI,SAAS,cAAc,OAAO;AACxC,QAAE,aAAa,MAAMA,EAAE,aAAa,WAAW,MAAM,GAAG,EAAE,gBAAgB,OAAOA,EAAE,aAAa,sBAAsB,EAAE,GAAGA,EAAE,aAAa,eAAe,EAAE,IAAI,EAAE,UAAU,OAAOA,EAAE,aAAa,SAAS,EAAE,GAAGA,EAAE,QAAQ,KAAK,EAAE,SAAS,MAAMA,EAAE,aAAa,QAAQ,EAAE,GAAG,EAAE,aAAa,MAAMA,EAAE,aAAa,YAAY,EAAE,GAAG,OAAO,KAAK,aAAa,IAAI,CAAC,CAAC;AAC/V,YAAMM,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AACzB,MAAAmpB,GAAG,YAAYzpB,GAAGM,GAAG,EAAE,WAAW;AAClC,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG;AACjC,cAAM,IAAI,SAAS,cAAc,QAAQ;AACzC,YAAI,EAAE,KAAK,GAAG,MAAMK,MAAM,EAAE,CAAC;AAC7B,YAAI,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,OAAO;AACrC,UAAAA,IAAI,EAAE,MAAM,GAAG,EAAE,QAAQ,GAAG,CAAC;AAAA,iBACtB,CAAC,EAAE,WAAW,OAAO,GAAG;AAC/B,gBAAMC,IAAI,EAAE,MAAM,GAAG,EAAE,MAAK,EAAG,YAAW,GAAI,IAAIA,EAAE,MAAMA,EAAE,YAAY,GAAG,IAAI,CAAC;AAChF,UAAAD,IAAIA,KAAKwvB,GAAG,WAAW,CAAC,KAAK,SAAS,CAAC;AAAA,QACxC;AACD,UAAE,MAAM,GAAGxvB,MAAM,EAAE,OAAOA,IAAIX,EAAE,YAAY,CAAC;AAAA,MAC9C;AACD,UAAIA;AAAA,IACL;AACD,UAAM,CAAC,GAAG,KAAK,aAAa,IAAI,KAAK,cAAc,IAAI,KAAK,uBAAuB,IAAI,KAAK,aAAa,EAAE,aAAa,GAAG,KAAK,kBAAkB,GAAG,KAAK,WAAW,EAAE,aAAa,IAAI,KAAK,6BAA6B,KAAK,2BAA2B,KAAK,IAAI,GAAG,KAAK,mCAAmC,MAAM,KAAK,QAAQ,MAAM,KAAK,WAAW,MAAM,KAAK,UAAU,MAAM,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAAG,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GAAG,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI,GAAG,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAAG,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GAAG,EAAE,aAAa,MAAM,KAAK;EACnnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,IAAI,GAAG;AACZ,QAAI,CAAC,KAAK,WAAW;AACnB,UAAI,KAAK,YAAY;AACnB,cAAM,IAAIwuB,GAAG,OAAO,YAAY,KAAK,OAAO;AAC5C,aAAK,kBAAkB,KAAK,MAAM,KAAK,kBAAkB,CAAC;AAAA,MAC3D;AACD,OAAC,CAAC,KAAK,cAAc,KAAK,mBAAmB,OAAO,MAAM;AAAA;AAAA,MAEzD,GAAE,KAAK,kBAAkB,KAAK,aAAa,KAAK,MAAM,MAAM,KAAK,UAAU,IAAI;AAAA,IACjF;AAAA,EACF;AAAA,EACD,6BAA6B;AAC3B,SAAK,OAAM,GAAI,KAAK,YAAY,KAAK,mCAAmC,OAAO,KAAK,mCAAmC,KAAK,OAAO;AAAA,MACjI,KAAK;AAAA,IACX;AAAA,EACG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO;AACL,QAAI,KAAK;AACP,aAAO,KAAK;AACd,UAAM,IAAI,KAAK;AACf,YAAQ,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,KAAK,EAAE,iBAAiB,QAAQ,KAAK,YAAY,GAAG,EAAE,iBAAiB,SAAS,KAAK,WAAW,GAAG,EAAE,iBAAiB,UAAU,KAAK,SAAS,GAAG,KAAK,eAAgB,IAAG,KAAK,WAAU,KAAM,EAAE,iBAAiB,WAAW,KAAK,UAAU,GAAG,EAAE,iBAAiB,kBAAkB,KAAK,UAAU,GAAG,EAAE,iBAAiB,SAAS,KAAK,UAAU,EAAE,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAGxuB,MAAM;AACnf,WAAK,QAAQ,EAAE,IAAI,KAAK,KAAK,WAAW,GAAG,KAAK,UAAUA,GAAG,EAAE,KAAM;AAAA,IAC3E,CAAK,GAAG,KAAK;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS,GAAG;AACV,SAAK,OAAO,oBAAoB,SAAS,KAAK,UAAU,EAAE,GAAG,KAAK,QAAQ,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,QAAQ,CAAC,GAAG,KAAK,UAAU,MAAM,KAAK,WAAW;AAAA,EAC3J;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,mBAAmB;AACjB,UAAM,IAAI,KAAK;AACf,WAAO,CAAC,EAAE,UAAU,CAAC,EAAE;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,iBAAiB;AACf,WAAO,KAAK,OAAO,aAAa;AAAA,EACjC;AAAA;AAAA,EAED,eAAe;AACb,SAAK,SAAS,KAAK,WAAU,GAAI,KAAK;EACvC;AAAA;AAAA,EAED,cAAc;AACZ,SAAK,qBAAoB;AAAA,EAC1B;AAAA;AAAA,EAED,YAAY;AACV,SAAK,eAAe,CAAC,KAAK,iBAAgB,MAAO,KAAK,kBAAkB,GAAG,KAAK,OAAQ,GAAE,KAAK,kBAAkB;AAAA,EAClH;AAAA;AAAA,EAED,aAAa;AACX,UAAM,IAAI,KAAK;AACf,MAAE,oBAAoB,WAAW,KAAK,UAAU,GAAG,EAAE,oBAAoB,kBAAkB,KAAK,UAAU;AAC1G,UAAM,IAAI,KAAK;AACf,SAAK,kBAAkB,GAAG,KAAK,OAAM,GAAI,KAAK,kBAAkB,GAAG,CAAC,KAAK,KAAK,aAAa,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW,MAAM,KAAK,UAAU,OAAO,KAAK,iBAAkB,IAAG,KAAK,aAAY,IAAK,KAAK,YAAY,EAAE;EAChO;AAAA;AAAA,EAED,UAAU;AACR,SAAK,qBAAoB;AACzB,UAAM,IAAI,KAAK;AACf,UAAM,EAAE,oBAAoB,QAAQ,KAAK,YAAY,GAAG,EAAE,oBAAoB,SAAS,KAAK,WAAW,GAAG,EAAE,oBAAoB,UAAU,KAAK,SAAS,GAAG,EAAE,oBAAoB,WAAW,KAAK,UAAU,GAAG,EAAE,oBAAoB,kBAAkB,KAAK,UAAU,GAAG,EAAE,oBAAoB,SAAS,KAAK,UAAU,EAAE,GAAG,EAAE,MAAO,GAAE,EAAE,MAAM,IAAI,EAAE,SAAS,MAAM;EACpW;AAAA;AAAA,EAED,IAAI,aAAa;AACf,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,WAAW,GAAG;AAChB,UAAM,KAAK,gBAAgB,KAAK,cAAc,GAAG,KAAK,qBAAoB;AAAA,EAC3E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,YAAY;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,UAAU,GAAG;AACf,UAAM,KAAK,eAAe,KAAK,aAAa,GAAG,KAAK,qBAAoB;AAAA,EACzE;AAAA,EACD,uBAAuB;AACrB,SAAK,eAAe,KAAK,iBAAgB,IAAK,CAAC,KAAK,cAAc,KAAK,OAAO,6BAA6B,KAAK,yBAAyBwuB,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,GAAG,KAAK,uBAAuB,IAAI,KAAK,kBAAkB,IAAI,KAAK,qCAAqC,SAAS,KAAK,mCAAmC,KAAK,OAAO;AAAA,MAC9U,KAAK;AAAA,IACN,OAAM,KAAK,qCAAqC,SAAS,KAAK,OAAO,yBAAyB,KAAK,gCAAgC,GAAG,KAAK,mCAAmC,OAAO,KAAK,yBAAyBA,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,GAAG,KAAK,uBAAuB,IAAI,KAAK,kBAAkB,OAAO,KAAK,qCAAqC,SAAS,KAAK,OAAO,yBAAyB,KAAK,gCAAgC,GAAG,KAAK,mCAAmC,OAAO,KAAK,yBAAyBA,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,GAAG,KAAK,uBAAuB,IAAI,KAAK,kBAAkB;AAAA,EAC9lB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,OAAO,KAAK,GAAG,GAAG;AAChB,WAAO,WAAW,oBAAoB,aAAa,oBAAoB2B,GAAG,MAAM,SAAS,CAAC;AAAA,EAC3F;AACH;AACAD,GAAG,QAAQ,CAAC,OAAO,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,KAAK;AAAA;AAAA;AAAA;AAIpEA,GAAG,aAAa;AAAA,EACd,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AACA,IAAIE,KAAKF;AACT1M,GAAG;AAAA,EACDqM;AAAA,EACAnG;AAAA,EACA+F;AAAA,EACAW;AAAA,EACAH;AAAA,EACAD;AAAA,EACApM;AAAA,EACAgM;AAAA,EACAJ;AACF;AACA,MAAMa,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK,OAAO,QAAQ,KAAK,OAAO,QAAQ,KAAK,OAAO,MAAM,KAAK,WAAW;AAAA,EACjH;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,UAAU;AACR,WAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,OAAO,KAAK;AAAA,EAClD;AAAA;AAAA,EAED,QAAQ;AACN,SAAK,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK,OAAO,QAAQ,KAAK,OAAO;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,aAAa,GAAG;AACd,WAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,OAAO,KAAK,OAAOnL,EAAG,SAAS,IAAI,KAAK,IAAIA,EAAG,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,IAAI,KAAK,MAAM,EAAE,QAAQ,KAAK,OAAO,KAAK,MAAM,EAAE,SAAS,KAAK,OAAO,KAAK,MAAM;AAAA,EACvM;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS,GAAG;AACV,SAAK,OAAO,KAAK,IAAI,KAAK,MAAM,EAAE,CAAC,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,MAAM,EAAE,CAAC,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,MAAM,EAAE,CAAC,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,MAAM,EAAE,CAAC;AAAA,EACtJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,eAAe,GAAG,GAAG;AACnB,UAAM,EAAE,GAAGllB,GAAG,GAAGM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAIK,EAAC,IAAK,GAAGC,IAAIZ,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,GAAG,IAAIM,IAAI,EAAE,IAAI,IAAI,EAAE,IAAIK;AACvG,SAAK,OAAO,KAAK,IAAI,KAAK,MAAMC,CAAC,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,MAAMA,CAAC,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,MAAM,CAAC,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,MAAM,CAAC;AAAA,EAC9I;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ,GAAG;AACT,QAAI,IAAI,KAAK,MAAMZ,IAAI,KAAK,MAAMM,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;AACjF,QAAI,IAAI,IAAI,IAAI,GAAGN,IAAI,IAAIA,IAAI,IAAIA,GAAGM,IAAI,IAAIA,IAAI,IAAIA,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,GAAGN,IAAI,IAAIA,IAAI,IAAIA,GAAGM,IAAI,IAAIA,IAAI,IAAIA,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,GAAGN,IAAI,IAAIA,IAAI,IAAIA,GAAGM,IAAI,IAAIA,IAAI,IAAIA,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,GAAGN,IAAI,IAAIA,IAAI,IAAIA,GAAGM,IAAI,IAAIA,IAAI,IAAIA,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,OAAON,GAAG,KAAK,OAAOM,GAAG,KAAK,OAAO;AAAA,EACta;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,SAAS,GAAG,GAAGN,GAAGM,GAAG,GAAG;AACtB,SAAK,eAAe,EAAE,gBAAgB,GAAGN,GAAGM,GAAG,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,eAAe,GAAG,GAAGN,GAAGM,GAAG,GAAG;AAC5B,UAAM,IAAI,EAAE,GAAG,IAAI,EAAE,GAAGK,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE;AAC1D,QAAI,IAAI,KAAK,MAAMC,IAAI,KAAK,MAAMC,IAAI,KAAK,MAAM,IAAI,KAAK,MAAMI,IAAI,IAAI,IAAIP,IAAIX,IAAI,GAAGoB,IAAI,IAAI,IAAIR,IAAIZ,IAAI;AAC3G,QAAIkB,IAAI,IAAIA,IAAI,GAAGL,IAAIO,IAAIP,IAAIO,IAAIP,GAAGC,IAAII,IAAIJ,IAAII,IAAIJ,GAAG,IAAIM,IAAI,IAAIA,IAAI,GAAGF,IAAI,IAAIZ,IAAIK,IAAIX,IAAI,GAAGoB,IAAI,IAAId,IAAIM,IAAIZ,IAAI,GAAG,IAAIkB,IAAI,IAAIA,IAAI,GAAGL,IAAIO,IAAIP,IAAIO,IAAIP,GAAGC,IAAII,IAAIJ,IAAII,IAAIJ,GAAG,IAAIM,IAAI,IAAIA,IAAI,GAAGF,IAAI,IAAI,IAAIP,IAAI,IAAI,GAAGS,IAAI,IAAI,IAAIR,IAAI,IAAI,GAAG,IAAIM,IAAI,IAAIA,IAAI,GAAGL,IAAIO,IAAIP,IAAIO,IAAIP,GAAGC,IAAII,IAAIJ,IAAII,IAAIJ,GAAG,IAAIM,IAAI,IAAIA,IAAI,GAAGF,IAAI,IAAIZ,IAAIK,IAAI,IAAI,GAAGS,IAAI,IAAId,IAAIM,IAAI,IAAI,GAAG,IAAIM,IAAI,IAAIA,IAAI,GAAGL,IAAIO,IAAIP,IAAIO,IAAIP,GAAGC,IAAII,IAAIJ,IAAII,IAAIJ,GAAG,IAAIM,IAAI,IAAIA,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,OAAOP,GAAG,KAAK,OAAOC,GAAG,KAAK,OAAO;AAAA,EACpf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,cAAc,GAAG,GAAGd,GAAG;AACrB,QAAIM,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,KAAK;AAC1D,aAASK,IAAI,GAAGA,IAAIX,GAAGW,KAAK,GAAG;AAC7B,YAAMC,IAAI,EAAED,CAAC,GAAG,IAAI,EAAEA,IAAI,CAAC;AAC3B,MAAAL,IAAIM,IAAIN,IAAIM,IAAIN,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAIM,IAAI,IAAIA,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI;AAAA,IAC1E;AACD,SAAK,OAAON,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,YAAY,GAAG,GAAGN,GAAGM,GAAG;AACtB,SAAK,kBAAkB,EAAE,gBAAgB,GAAGN,GAAGM,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,kBAAkB,GAAG,GAAGN,GAAGM,GAAG,IAAI,GAAG,IAAI,GAAG;AAC1C,UAAM,IAAI,EAAE,GAAGK,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE;AAC1D,QAAIC,IAAI,KAAK,MAAMC,IAAI,KAAK,MAAM,IAAI,KAAK,MAAMI,IAAI,KAAK;AAC1D,aAASE,IAAIpB,GAAGoB,IAAId,GAAGc,KAAK,GAAG;AAC7B,YAAM,IAAI,EAAEA,CAAC,GAAG,IAAI,EAAEA,IAAI,CAAC,GAAG,IAAI,IAAI,IAAIR,IAAI,IAAI,GAAGS,IAAI,IAAI,IAAIV,IAAI,IAAI;AACzE,MAAAE,IAAI,KAAK,IAAIA,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,GAAGC,IAAI,KAAK,IAAIA,GAAGO,IAAI,CAAC,GAAGH,IAAI,KAAK,IAAIA,GAAGG,IAAI,CAAC;AAAA,IAC9F;AACD,SAAK,OAAOR,GAAG,KAAK,OAAOC,GAAG,KAAK,OAAO,GAAG,KAAK,OAAOI;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,UAAU,GAAG;AACX,UAAM,IAAI,KAAK,MAAMlB,IAAI,KAAK,MAAMM,IAAI,KAAK,MAAM,IAAI,KAAK;AAC5D,SAAK,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,GAAG,KAAK,OAAO,EAAE,OAAON,IAAI,EAAE,OAAOA,GAAG,KAAK,OAAO,EAAE,OAAOM,IAAI,EAAE,OAAOA,GAAG,KAAK,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO;AAAA,EAClJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG,GAAG;AAClB,UAAMN,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAMM,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;AAC5J,QAAIN,KAAK,KAAKM,KAAK,GAAG;AACpB,YAAM,IAAI,KAAK,MAAMK,IAAI,KAAK,MAAMC,IAAI,KAAK,MAAM,IAAI,KAAK;AAC5D,WAAK,OAAOZ,IAAI,IAAIA,IAAI,GAAG,KAAK,OAAOM,IAAIK,IAAIL,IAAIK,GAAG,KAAK,OAAO,IAAIC,IAAI,IAAIA,GAAG,KAAK,OAAO,IAAI,IAAI,IAAI;AAAA,IAC1G;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,gBAAgB,GAAG,GAAG;AACpB,SAAK,eAAe,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG,GAAG;AAClB,UAAMZ,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAGM,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5K,QAAIN,KAAK,KAAKM,KAAK,GAAG;AACpB,YAAM,IAAI,KAAK,MAAMK,IAAI,KAAK,MAAMC,IAAI,KAAK,MAAM,IAAI,KAAK;AAC5D,WAAK,OAAOZ,IAAI,IAAIA,IAAI,GAAG,KAAK,OAAOM,IAAIK,IAAIL,IAAIK,GAAG,KAAK,OAAO,IAAIC,IAAI,IAAIA,GAAG,KAAK,OAAO,IAAI,IAAI,IAAI;AAAA,IAC1G;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,IAAI,GAAG,IAAI,GAAG;AAChB,SAAK,QAAO,MAAO,KAAK,QAAQ,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,YAAY,GAAG,GAAGZ,GAAGM,GAAG,GAAG,GAAG;AAC5B,SAAK,GAAG,KAAK,GAAGN,KAAK,GAAGM,KAAK,GAAG,KAAK,OAAO,KAAK,OAAO,IAAI,KAAK,OAAO,GAAG,KAAK,OAAO,KAAK,OAAON,IAAI,KAAK,OAAOA,GAAG,KAAK,OAAO,KAAK,OAAO,IAAI,KAAK,OAAO,GAAG,KAAK,OAAO,KAAK,OAAOM,IAAI,KAAK,OAAOA;AAAA,EAC1M;AACH;AACA,MAAMgwB,WAAWzb,GAAG;AAAA,EAClB,cAAc;AACZ,UAAO,GAAE,KAAK,0BAA0B,MAAM,KAAK,YAAY,IAAIsR,MAAM,KAAK,QAAQ,GAAG,KAAK,UAAU,IAAI,KAAK,aAAa,IAAI,KAAK,WAAW,IAAI,KAAK,WAAW,MAAM,KAAK,SAAS,MAAM,KAAK,aAAa,GAAG,KAAK,mBAAmB,GAAG,KAAK,UAAU,GAAG,KAAK,aAAa,MAAM,KAAK,UAAU,MAAM,KAAK,kBAAkB,MAAM,KAAK,UAAU,IAAIkK,GAAI,GAAE,KAAK,eAAe,MAAM,KAAK,YAAY,GAAG,KAAK,cAAc,MAAM,KAAK,mBAAmB,MAAM,KAAK,QAAQ,MAAM,KAAK,gBAAgB,GAAG,KAAK,aAAa,IAAI,KAAK,WAAW,IAAI,KAAK,SAAS;AAAA,EAC9iB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,MAAM,GAAG;AACd,UAAM,IAAI,OAAO,KAAK,CAAC;AACvB,aAASrwB,IAAI,GAAGA,IAAI,EAAE,QAAQ,EAAEA,GAAG;AACjC,YAAMM,IAAI,EAAEN,CAAC;AACb,aAAO;AAAA,QACLswB,GAAG;AAAA,QACHhwB;AAAA,QACA,OAAO,yBAAyB,GAAGA,CAAC;AAAA,MAC5C;AAAA,IACK;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBD,IAAI,YAAY;AACd,WAAO,KAAK;AAAA,EACb;AAAA;AAAA,EAED,gCAAgC;AAC9B,SAAK,UAAU,KAAK,OAAO,8BAA6B,GAAI,KAAK,UAAU,gBAAgB,KAAK,OAAO,SAAS,KAAK,KAAK,UAAU,gBAAgB,KAAK,yBAAyB,SAAS;AAAA,EAC5L;AAAA;AAAA,EAED,kBAAkB;AAChB,SAAK,aAAa,KAAK,UAAU,gBAAgB,KAAK,OAAO,SAAS,GAAG,KAAK,aAAa,KAAK,QAAQ,KAAK,OAAO;AAAA,EACrH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCD,UAAU,GAAG,GAAG;AACd,WAAO,MAAM,KAAK,UAAU,KAAK,iCAAiC,KAAK,gBAAe,MAAO,KAAK,SAAS,KAAK,0BAA0B,KAAK,mBAAmB,KAAK,SAAS,QAAQ,KAAK,QAAQ,aAAa,KAAK,cAAc,KAAK,gBAAiB,GAAE,KAAK,QAAQ,WAAW,KAAK,YAAY,MAAM,KAAK,gBAAgB,KAAK,cAAc,IAAI4kB,EAAE,IAAK,IAAI,KAAK,cAAc,KAAK,QAAQ,aAAa,CAAC;AAAA,EAClZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,eAAe,GAAG;AAChB,UAAM,KAAK,qBAAqB,KAAK,mBAAmB,IAAIA,EAAI,IAAG,IAAI,KAAK,mBAAmB,KAAK,iBAAiB,KAAK,eAAe,IAAImL,GAAE;AAC/I,UAAM,IAAI,KAAK,WAAWrwB,IAAI,KAAK;AACnC,SAAK,SAAS,MAAM,KAAK,yBAAyB,cAAcA,KAAK,OAAO,SAASA,EAAE,eAAe,GAAG,KAAK,YAAY,KAAK,yBAAyB;AACxJ,UAAMM,IAAI,KAAK,SAAS,IAAI,KAAK;AACjC,SAAK,UAAU,KAAK;AACpB,UAAM,IAAI,KAAK,UAAU,IAAI,CAAC;AAC9B,WAAO,KAAK,SAASN,GAAG,KAAK,YAAY,GAAG,KAAK,UAAUM,GAAG,KAAK,QAAQ,YAAY,KAAK,YAAY,GAAG;AAAA,EAC5G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,SAAS,GAAG,GAAGN,IAAI,IAAI;AACrB,WAAOA,MAAM,KAAK,8BAA6B,GAAI,KAAK,SAAS,KAAK,6BAA8B,KAAI,KAAK,SAAS,KAAK,0BAA0B,KAAK,6BAA8B,GAAE,KAAK,SAAS,QAAQ,KAAK,eAAe,MAAM,GAAG,CAAC;AAAA,EAC/O;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,QAAQ,GAAG,GAAGA,GAAGM,GAAG;AAClB,WAAO,MAAM,IAAI,EAAE,SAAS,GAAGN,GAAGM,CAAC,IAAIA,MAAM,KAAK,8BAA6B,GAAI,KAAK,SAAS,KAAK,6BAA4B,KAAM,KAAK,SAAS,KAAK,0BAA0B,KAAK,6BAA8B,GAAE,KAAK,SAAS,QAAQ,KAAK,eAAe,aAAa,GAAGN,CAAC;AAAA,EACtR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,UAAU,GAAG;AACX,QAAI,CAAC,KAAK,CAAC,EAAE;AACX,YAAM,IAAI,MAAM,yCAAyC;AAC3D,WAAO,EAAE,SAAS,IAAI,GAAG;AAAA,EAC1B;AAAA;AAAA,EAED,mBAAmB;AACjB,QAAI;AACJ,KAAC,IAAI,KAAK,WAAW,QAAQ,EAAE,YAAY,IAAI;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcD,aAAa,IAAI,GAAG,IAAI,GAAGA,IAAI,GAAGM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAGK,IAAI,GAAGC,IAAI,GAAG;AAC1E,WAAO,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,IAAIZ,KAAK,GAAG,KAAK,MAAM,IAAIM,KAAK,GAAG,KAAK,WAAW,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAIK,GAAG,KAAK,MAAM,IAAIC,GAAG;AAAA,EACzL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,QAAQ,GAAG;AACT,SAAK,oBAAoB,KAAK,aAAa,IAAI,KAAK,YAAY,MAAM,KAAK,SAAS,MAAM,KAAK,UAAU,MAAM,KAAK,OAAO,MAAM,KAAK,WAAW,MAAM,KAAK,UAAU,MAAM,KAAK,aAAa,MAAM,KAAK,UAAU,MAAM,KAAK,YAAY,QAAQ,KAAK,sBAAsB,IAAI,KAAK,KAAK,WAAW,GAAG,KAAK;EAC/S;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,2BAA2B;AAC7B,WAAO,KAAK,4BAA4B,SAAS,KAAK,0BAA0B,IAAI2vB,GAAI,IAAG,KAAK;AAAA,EACjG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWD,mBAAmB;AACjB,UAAM,IAAI,KAAK;AACf,WAAO,KAAK,SAAS,KAAK,0BAA0B;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB,GAAG;AACnB,SAAK,SAAS;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,IAAI;AACN,WAAO,KAAK,SAAS;AAAA,EACtB;AAAA,EACD,IAAI,EAAE,GAAG;AACP,SAAK,UAAU,SAAS,IAAI;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,IAAI;AACN,WAAO,KAAK,SAAS;AAAA,EACtB;AAAA,EACD,IAAI,EAAE,GAAG;AACP,SAAK,UAAU,SAAS,IAAI;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,iBAAiB;AACnB,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,iBAAiB;AACnB,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,WAAW;AACb,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA,EACD,IAAI,SAAS,GAAG;AACd,SAAK,UAAU,SAAS,SAAS,CAAC;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,QAAQ;AACV,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,UAAU,MAAM,SAAS,CAAC;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,IAAI,QAAQ;AACV,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,UAAU,MAAM,SAAS,CAAC;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,OAAO;AACT,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA,EACD,IAAI,KAAK,GAAG;AACV,SAAK,UAAU,KAAK,SAAS,CAAC;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,WAAW;AACb,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA,EACD,IAAI,SAAS,GAAG;AACd,SAAK,UAAU,WAAW;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK,UAAU,WAAW1L;AAAA,EAClC;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,UAAU,WAAW,IAAIC;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,SAAK,YAAY,MAAM,KAAK,UAAU,GAAG,KAAK,WAAW,KAAK,OAAO,YAAY;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,eAAe;AACjB,QAAI,IAAI;AACR,OAAG;AACD,UAAI,CAAC,EAAE;AACL,eAAO;AACT,UAAI,EAAE;AAAA,IACP,SAAQ;AACT,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBD,IAAI,OAAO;AACT,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,KAAK,GAAG;AACV,QAAI,KAAK,UAAU,GAAG;AACpB,UAAI,KAAK,OAAO;AACd,cAAM,IAAI,KAAK,MAAM,aAAa,KAAK,MAAM,aAAa,KAAK;AAC/D,cAAM,EAAE,iBAAiB,EAAE,kBAAkB,MAAM,EAAE,aAAa,IAAI,EAAE,SAAS;AAAA,MAClF;AACD,UAAI,KAAK,QAAQ,GAAG,KAAK,OAAO;AAC9B,cAAM,IAAI,KAAK,MAAM,aAAa,KAAK,MAAM,aAAa,KAAK;AAC/D,cAAM,EAAE,kBAAkB,MAAM,EAAE,aAAa,IAAI,EAAE,SAAS,KAAK,EAAE;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACH;AACA,MAAMyL,WAAWD,GAAG;AAAA,EAClB,cAAc;AACZ,UAAM,GAAG,SAAS,GAAG,KAAK,YAAY;AAAA,EACvC;AACH;AACAA,GAAG,UAAU,+BAA+BA,GAAG,UAAU;AACzD,MAAME,KAAK,IAAIjL;AACf,SAASkL,GAAG7wB,GAAG,GAAG;AAChB,SAAOA,EAAE,WAAW,EAAE,SAASA,EAAE,mBAAmB,EAAE,mBAAmBA,EAAE,SAAS,EAAE;AACxF;AACA,MAAM8wB,KAAK,MAAMC,WAAWL,GAAG;AAAA,EAC7B,cAAc;AACZ,aAAS,KAAK,WAAW,CAAE,GAAE,KAAK,mBAAmBK,GAAG,yBAAyB,KAAK,YAAY;AAAA,EACnG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,iBAAiB,GAAG;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,YAAY,GAAG;AACb,QAAI,EAAE,SAAS;AACb,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC5B,aAAK,SAAS,EAAE,CAAC,CAAC;AAAA,SACjB;AACH,YAAM,IAAI,EAAE,CAAC;AACb,QAAE,UAAU,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,SAAS,MAAM,KAAK,YAAY,IAAI,EAAE,UAAU,YAAY,IAAI,KAAK,SAAS,KAAK,CAAC,GAAG,KAAK,aAAa,KAAK,iBAAiB,KAAK,SAAS,SAAS,CAAC,GAAG,KAAK,KAAK,cAAc,GAAG,MAAM,KAAK,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,SAAS,IAAI;AAAA,IAClR;AACD,WAAO,EAAE,CAAC;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,WAAW,GAAG,GAAG;AACf,QAAI,IAAI,KAAK,IAAI,KAAK,SAAS;AAC7B,YAAM,IAAI,MAAM,GAAG,CAAC,yBAAyB,CAAC,8BAA8B,KAAK,SAAS,MAAM,EAAE;AACpG,WAAO,EAAE,UAAU,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,SAAS,MAAM,KAAK,YAAY,IAAI,EAAE,UAAU,YAAY,IAAI,KAAK,SAAS,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,aAAa,KAAK,iBAAiB,CAAC,GAAG,EAAE,KAAK,SAAS,IAAI,GAAG,KAAK,KAAK,cAAc,GAAG,MAAM,CAAC,GAAG;AAAA,EACtP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,aAAa,GAAG,GAAG;AACjB,QAAI,MAAM;AACR;AACF,UAAM3wB,IAAI,KAAK,cAAc,CAAC,GAAGM,IAAI,KAAK,cAAc,CAAC;AACzD,SAAK,SAASN,CAAC,IAAI,GAAG,KAAK,SAASM,CAAC,IAAI,GAAG,KAAK,iBAAiBN,IAAIM,IAAIN,IAAIM,CAAC;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG;AACf,UAAM,IAAI,KAAK,SAAS,QAAQ,CAAC;AACjC,QAAI,MAAM;AACR,YAAM,IAAI,MAAM,0DAA0D;AAC5E,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG,GAAG;AAClB,QAAI,IAAI,KAAK,KAAK,KAAK,SAAS;AAC9B,YAAM,IAAI,MAAM,aAAa,CAAC,8BAA8B,KAAK,SAAS,MAAM,EAAE;AACpF,UAAMN,IAAI,KAAK,cAAc,CAAC;AAC9B,IAAAyhB,GAAG,KAAK,UAAUzhB,GAAG,CAAC,GAAG,KAAK,SAAS,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,iBAAiB,CAAC;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,WAAW,GAAG;AACZ,QAAI,IAAI,KAAK,KAAK,KAAK,SAAS;AAC9B,YAAM,IAAI,MAAM,sBAAsB,CAAC,mBAAmB;AAC5D,WAAO,KAAK,SAAS,CAAC;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,eAAe,GAAG;AAChB,QAAI,EAAE,SAAS;AACb,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC5B,aAAK,YAAY,EAAE,CAAC,CAAC;AAAA,SACpB;AACH,YAAM,IAAI,EAAE,CAAC,GAAGA,IAAI,KAAK,SAAS,QAAQ,CAAC;AAC3C,UAAIA,MAAM;AACR,eAAO;AACT,QAAE,SAAS,MAAM,EAAE,UAAU,YAAY,IAAIyhB,GAAG,KAAK,UAAUzhB,GAAG,CAAC,GAAG,KAAK,aAAa,KAAK,iBAAiBA,CAAC,GAAG,EAAE,KAAK,WAAW,IAAI,GAAG,KAAK,KAAK,gBAAgB,GAAG,MAAMA,CAAC;AAAA,IAChL;AACD,WAAO,EAAE,CAAC;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG;AACf,UAAM,IAAI,KAAK,WAAW,CAAC;AAC3B,WAAO,EAAE,SAAS,MAAM,EAAE,UAAU,YAAY,IAAIyhB,GAAG,KAAK,UAAU,GAAG,CAAC,GAAG,KAAK,aAAa,KAAK,iBAAiB,CAAC,GAAG,EAAE,KAAK,WAAW,IAAI,GAAG,KAAK,KAAK,gBAAgB,GAAG,MAAM,CAAC,GAAG;AAAA,EAC1L;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,eAAe,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ;AAC9C,UAAMzhB,IAAI,GAAGM,IAAI,GAAG,IAAIA,IAAIN;AAC5B,QAAI;AACJ,QAAI,IAAI,KAAK,KAAKM,GAAG;AACnB,UAAI,KAAK,SAAS,OAAON,GAAG,CAAC;AAC7B,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE;AAC9B,UAAE,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,YAAY;AACpE,WAAK,aAAa,KAAK,iBAAiB,CAAC;AACzC,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE;AAC9B,UAAE,CAAC,EAAE,KAAK,WAAW,IAAI,GAAG,KAAK,KAAK,gBAAgB,EAAE,CAAC,GAAG,MAAM,CAAC;AACrE,aAAO;AAAA,IACb,WAAe,MAAM,KAAK,KAAK,SAAS,WAAW;AAC7C,aAAO;AACT,UAAM,IAAI,WAAW,kEAAkE;AAAA,EACxF;AAAA;AAAA,EAED,eAAe;AACb,QAAI,IAAI;AACR,aAAS,IAAI,GAAGA,IAAI,KAAK,SAAS,QAAQ,IAAIA,GAAG,EAAE,GAAG;AACpD,YAAMM,IAAI,KAAK,SAAS,CAAC;AACzB,MAAAA,EAAE,mBAAmB,GAAG,CAAC,KAAKA,EAAE,WAAW,MAAM,IAAI;AAAA,IACtD;AACD,SAAK,KAAK,SAAS,SAAS,KAAK,KAAK,SAAS,KAAKmwB,EAAE,GAAG,KAAK,YAAY;AAAA,EAC3E;AAAA;AAAA,EAED,kBAAkB;AAChB,SAAK,oBAAoB,KAAK,aAAa,KAAK,aAAc,GAAE,KAAK,aAAa,KAAK,UAAU,gBAAgB,KAAK,OAAO,SAAS,GAAG,KAAK,aAAa,KAAK,QAAQ,KAAK,OAAO;AACpL,aAAS,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,IAAI,GAAG,EAAE,GAAG;AACpD,YAAMzwB,IAAI,KAAK,SAAS,CAAC;AACzB,MAAAA,EAAE,WAAWA,EAAE;IAChB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,kBAAkB;AAChB,SAAK,QAAQ,MAAO,GAAE,KAAK,iBAAgB;AAC3C,aAAS,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;AAC7C,YAAM,IAAI,KAAK,SAAS,CAAC;AACzB,UAAI,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE;AACrB,YAAI,EAAE,mBAAmB,EAAE,OAAO;AAChC,gBAAMA,IAAI,EAAE,MAAM,aAAa,EAAE,MAAM,aAAa,EAAE;AACtD,UAAAA,KAAKA,EAAE,gBAAiB,GAAE,KAAK,QAAQ,cAAc,EAAE,SAASA,EAAE,OAAO,KAAK,KAAK,QAAQ,UAAU,EAAE,OAAO;AAAA,QAC/G;AACC,YAAE,aAAa,KAAK,QAAQ,cAAc,EAAE,SAAS,EAAE,UAAU,IAAI,KAAK,QAAQ,UAAU,EAAE,OAAO;AAAA,IAC1G;AACD,SAAK,QAAQ,WAAW,KAAK;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWD,eAAe,GAAG,IAAI,IAAI;AACxB,UAAMA,IAAI,MAAM,eAAe,CAAC;AAChC,QAAI,CAAC;AACH,eAASM,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQA,IAAI,GAAG,EAAEA,GAAG;AACpD,cAAM,IAAI,KAAK,SAASA,CAAC;AACzB,UAAE,WAAW,EAAE;MAChB;AACH,WAAON;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,mBAAmB;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,mBAAmB,GAAG;AACpB,UAAM,IAAI,EAAE,cAAc;AAC1B,QAAI,EAAE,EAAE,QAAQ,KAAK,EAAE,SAAS;AAC9B;AACF,QAAIA,GAAGM;AACP,SAAK,YAAYN,IAAI,KAAK,UAAUM,IAAI,KAAK,kBAAkB,KAAK,YAAYqwB,GAAG,UAAU,YAAY3wB,IAAI,KAAK,UAAU,EAAE;AAC9H,UAAM,IAAI,EAAE,WAAW;AACvB,QAAI,MAAMM,KAAKA,IAAIkwB,GAAG,SAASlwB,CAAC,GAAGA,EAAE,QAAQ,CAAC,KAAKA,IAAI,IAAIN,KAAK,EAAE,WAAWA,GAAGM,CAAC;AAC/E,WAAK,QAAQ,CAAC;AAAA,aACP,KAAK;AACZ;AACF,aAAS,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,IAAI,GAAG,EAAE,GAAG;AACpD,YAAMK,IAAI,KAAK,SAAS,CAAC,GAAGC,IAAID,EAAE;AAClC,MAAAA,EAAE,WAAWC,KAAK,CAAC,KAAK,UAAUD,EAAE,OAAO,CAAC,GAAGA,EAAE,WAAWC;AAAA,IAC7D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBD,OAAO,GAAG;AACR,QAAI;AACJ,QAAI,EAAE,CAAC,KAAK,WAAW,KAAK,cAAc,KAAK,CAAC,KAAK;AACnD,UAAI,KAAK,UAAU,IAAI,KAAK,YAAY,QAAQ,EAAE;AAChD,aAAK,eAAe,CAAC;AAAA,eACd,KAAK;AACZ,aAAK,mBAAmB,CAAC;AAAA,WACtB;AACH,aAAK,QAAQ,CAAC;AACd,iBAASZ,IAAI,GAAGM,IAAI,KAAK,SAAS,QAAQN,IAAIM,GAAG,EAAEN;AACjD,eAAK,SAASA,CAAC,EAAE,OAAO,CAAC;AAAA,MAC5B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,eAAe,GAAG;AAChB,QAAI+X,GAAGC,GAAGe;AACV,UAAMjB,IAAI,KAAK,SAAS9X,IAAI,KAAK;AACjC,QAAI8X,GAAG;AACL,WAAK,oBAAoB,KAAK,kBAAkB,CAAA,IAAK,KAAK,gBAAgB,SAAS;AACnF,eAASnX,IAAI,GAAGA,IAAImX,EAAE,QAAQnX;AAC5B,QAAAmX,EAAEnX,CAAC,EAAE,WAAW,KAAK,gBAAgB,KAAKmX,EAAEnX,CAAC,CAAC;AAAA,IACjD;AACD,UAAML,IAAIwX,OAAOC,IAAI,KAAK,oBAAoB,OAAO,SAASA,EAAE,WAAW/X,MAAM,CAACA,EAAE,cAAcA,EAAE,YAAYA,EAAE,cAAcA,EAAE,SAASwS,GAAG;AAC9I,QAAIlS,KAAK,EAAE,MAAM,MAAK,GAAIwX,MAAOE,IAAI,KAAK,oBAAoB,QAAQA,EAAE,UAAW,EAAE,OAAO,KAAK,MAAM,KAAK,eAAe,GAAGhY,KAAK,EAAE,KAAK,KAAK,MAAM,KAAK,KAAK,GAAG,KAAK;AACrK,WAAK,mBAAmB,CAAC;AAAA,SACtB;AACH,WAAK,QAAQ,CAAC;AACd,eAASW,IAAI,GAAGC,IAAI,KAAK,SAAS,QAAQD,IAAIC,GAAG,EAAED;AACjD,aAAK,SAASA,CAAC,EAAE,OAAO,CAAC;AAAA,IAC5B;AACD,IAAAL,KAAK,EAAE,MAAM,MAAO,GAAEN,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG8X,MAAOiB,IAAI,KAAK,oBAAoB,QAAQA,EAAE,UAAW,EAAE,OAAO;EAChH;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,QAAQ,GAAG;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaD,QAAQ,GAAG;AACT,UAAM,QAAS,GAAE,KAAK,YAAY;AAClC,UAAM,IAAI,OAAO,KAAK,YAAY,IAAI,KAAK,OAAO,SAAS,EAAE,UAAU/Y,IAAI,KAAK,eAAe,GAAG,KAAK,SAAS,MAAM;AACtH,QAAI;AACF,eAASM,IAAI,GAAGA,IAAIN,EAAE,QAAQ,EAAEM;AAC9B,QAAAN,EAAEM,CAAC,EAAE,QAAQ,CAAC;AAAA,EACnB;AAAA;AAAA,EAED,IAAI,QAAQ;AACV,WAAO,KAAK,MAAM,IAAI,KAAK,eAAgB,EAAC;AAAA,EAC7C;AAAA,EACD,IAAI,MAAM,GAAG;AACX,UAAM,IAAI,KAAK,eAAc,EAAG;AAChC,UAAM,IAAI,KAAK,MAAM,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS;AAAA,EAClE;AAAA;AAAA,EAED,IAAI,SAAS;AACX,WAAO,KAAK,MAAM,IAAI,KAAK,eAAgB,EAAC;AAAA,EAC7C;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,UAAM,IAAI,KAAK,eAAc,EAAG;AAChC,UAAM,IAAI,KAAK,MAAM,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU;AAAA,EACnE;AACH;AACAowB,GAAG,0BAA0B;AAC7B,IAAIE,KAAKF;AACTE,GAAG,UAAU,2BAA2BA,GAAG,UAAU;AACrD,OAAO,iBAAiBhe,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUzB,mBAAmB;AAAA,IACjB,MAAM;AACJ,aAAOge,GAAG;AAAA,IACX;AAAA,IACD,IAAIhxB,GAAG;AACL,MAAAue,GAAG,SAAS,iFAAiF,GAAGyS,GAAG,0BAA0BhxB;AAAA,IAC9H;AAAA,EACF;AACH,CAAC;AACD,MAAMixB,KAAK,IAAI7L,GAAE,GAAI8L,KAAK,IAAI,YAAY,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAC5D,MAAMC,WAAWH,GAAG;AAAA;AAAA,EAElB,YAAY,GAAG;AACb,aAAS,KAAK,UAAU,IAAI3K;AAAA,MAC1B,KAAK;AAAA,MACL;AAAA,MACA,IAAI,EAAE,cAAc,IAAI;AAAA,MACxB,IAAI,EAAE,cAAc,IAAI;AAAA,IAC9B,GAAO,KAAK,WAAW,MAAM,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,KAAK,aAAa,IAAInF,GAAG,QAAQ,GAAG,KAAK,WAAW,MAAM,KAAK,OAAO,UAAU,KAAK,YAAYnP,EAAE,QAAQ,KAAK,cAAc,UAAU,KAAK,MAAM,MAAM,KAAK,UAAU,KAAKmY,EAAE,OAAO,KAAK,aAAa,IAAI,aAAa,CAAC,GAAG,KAAK,oBAAoB,MAAM,KAAK,eAAe,IAAI,KAAK,aAAa,IAAI,KAAK,sBAAsB,IAAI,KAAK,oBAAoB,IAAI,KAAK,UAAUgH,IAAI,KAAK,aAAa,SAAS,KAAK,WAAW,IAAI,KAAK,eAAele,EAAE;AAAA,EAC3f;AAAA;AAAA,EAED,mBAAmB;AACjB,SAAK,aAAa,IAAI,KAAK,oBAAoB,IAAI,KAAK,cAAc,UAAU,KAAK,WAAW,KAAK,MAAM,IAAI8O,GAAG,KAAK,MAAM,CAAC,IAAI,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK,YAAY,KAAK,MAAM,IAAIA,GAAG,KAAK,MAAM,CAAC,IAAI,KAAK,UAAU,KAAK,SAAS,KAAK;AAAA,EACjQ;AAAA;AAAA,EAED,kBAAkB;AAChB,SAAK,eAAe,IAAI,KAAK,sBAAsB;AAAA,EACpD;AAAA;AAAA,EAED,oBAAoB;AAClB,UAAM,IAAI,KAAK;AACf,QAAI,KAAK,iBAAiB,KAAK,UAAU,YAAY,KAAK,eAAe,EAAE;AACzE;AACF,SAAK,eAAe,EAAE,cAAc,KAAK,MAAM,KAAK,SAAS,KAAK,aAAa,KAAK,eAAe,KAAK,UAAU,UAAU,KAAK,aAAa,EAAE;AAChJ,UAAM,IAAI,KAAK,UAAU,gBAAgB1hB,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAIK,IAAI,EAAE,IAAIC,IAAI,KAAK,YAAY,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,KAAK;AACvJ,QAAIC,IAAI,GAAGC,IAAI,GAAG,IAAI,GAAGI,IAAI;AAC7B,QAAI,KAAKJ,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAOD,IAAIC,IAAI,EAAE,OAAOI,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,IAAIA,IAAI,EAAE,WAAWJ,IAAI,CAAC,EAAE,KAAK,EAAE,OAAOD,IAAIC,IAAI,EAAE,OAAOI,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,IAAIA,IAAI,EAAE,SAASN,EAAE,CAAC,IAAIZ,IAAIc,IAAI,IAAII,IAAI,GAAGN,EAAE,CAAC,IAAI,IAAIM,IAAIZ,IAAIQ,IAAIH,GAAGC,EAAE,CAAC,IAAIZ,IAAIa,IAAI,IAAIK,IAAI,GAAGN,EAAE,CAAC,IAAI,IAAIM,IAAIZ,IAAIO,IAAIF,GAAGC,EAAE,CAAC,IAAIZ,IAAIa,IAAI,IAAI,IAAI,GAAGD,EAAE,CAAC,IAAI,IAAI,IAAIN,IAAIO,IAAIF,GAAGC,EAAE,CAAC,IAAIZ,IAAIc,IAAI,IAAI,IAAI,GAAGF,EAAE,CAAC,IAAI,IAAI,IAAIN,IAAIQ,IAAIH,GAAG,KAAK,cAAc;AACpZ,YAAMS,IAAIwR,EAAE;AACZ,eAAS,IAAI,GAAG,IAAIhS,EAAE,QAAQ,EAAE;AAC9B,QAAAA,EAAE,CAAC,IAAI,KAAK,MAAMA,EAAE,CAAC,IAAIQ,CAAC,IAAIA;AAAA,IACjC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,2BAA2B;AACzB,QAAI,CAAC,KAAK;AACR,WAAK,oBAAoB,IAAI,aAAa,CAAC;AAAA,aACpC,KAAK,wBAAwB,KAAK,UAAU,YAAY,KAAK,sBAAsB,KAAK,SAAS;AACxG;AACF,SAAK,sBAAsB,KAAK,UAAU,UAAU,KAAK,oBAAoB,KAAK,SAAS;AAC3F,UAAM,IAAI,KAAK,UAAU,IAAI,KAAK,mBAAmBpB,IAAI,EAAE,MAAMM,IAAI,KAAK,SAAS,IAAI,KAAK,UAAU,gBAAgB,IAAI,EAAE,GAAG,IAAI,EAAE,GAAGK,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,CAACN,EAAE,KAAKN,EAAE,OAAOa,IAAI,IAAIb,EAAE,OAAOc,IAAI,CAACR,EAAE,KAAKN,EAAE,QAAQ,IAAIc,IAAId,EAAE;AACpP,QAAI,EAAE,CAAC,IAAI,IAAI,IAAIW,IAAIG,IAAI,GAAG,EAAE,CAAC,IAAIF,IAAIE,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAID,IAAIF,IAAIG,IAAI,GAAG,EAAE,CAAC,IAAIF,IAAIE,IAAI,IAAID,IAAI,GAAG,EAAE,CAAC,IAAI,IAAIA,IAAIF,IAAI,IAAI,GAAG,EAAE,CAAC,IAAIC,IAAI,IAAI,IAAIC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAIF,IAAI,IAAI,GAAG,EAAE,CAAC,IAAIC,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,cAAc;AACrO,YAAMM,IAAI0R,EAAE;AACZ,eAASxR,IAAI,GAAGA,IAAI,EAAE,QAAQ,EAAEA;AAC9B,UAAEA,CAAC,IAAI,KAAK,MAAM,EAAEA,CAAC,IAAIF,CAAC,IAAIA;AAAA,IACjC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,QAAQ,GAAG;AACT,SAAK,kBAAiB,GAAI,EAAE,MAAM,kBAAkB,EAAE,QAAQ,KAAK,UAAU,CAAC,GAAG,EAAE,QAAQ,KAAK,UAAU,EAAE,OAAO,IAAI;AAAA,EACxH;AAAA;AAAA,EAED,mBAAmB;AACjB,UAAM,IAAI,KAAK,SAAS,MAAM,IAAI,KAAK,SAAS;AAChD,KAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,KAAK,kBAAiB,GAAI,KAAK,QAAQ,QAAQ,KAAK,UAAU,MAAM,KAAK,yBAAwB,GAAI,KAAK,QAAQ,QAAQ,KAAK,iBAAiB;AAAA,EACvM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,eAAe,GAAG;AAChB,WAAO,KAAK,SAAS,WAAW,KAAK,KAAK,iBAAiB,KAAK,eAAe,IAAImvB,GAAI,IAAG,KAAK,aAAa,OAAO,KAAK,SAAS,KAAK,QAAQ,CAAC,KAAK,QAAQ,IAAI,KAAK,aAAa,OAAO,KAAK,SAAS,KAAK,SAAS,CAAC,KAAK,QAAQ,IAAI,KAAK,aAAa,OAAO,KAAK,SAAS,KAAK,SAAS,IAAI,KAAK,QAAQ,KAAK,KAAK,aAAa,OAAO,KAAK,SAAS,KAAK,UAAU,IAAI,KAAK,QAAQ,KAAK,MAAM,KAAK,qBAAqB,KAAK,mBAAmB,IAAInL,EAAE,IAAK,IAAI,KAAK,mBAAmB,KAAK,aAAa,aAAa,CAAC,KAAK,MAAM,eAAe,KAAK,MAAM,CAAC;AAAA,EACpiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,cAAc,GAAG;AACf,SAAK,eAAe,aAAa,GAAG2L,EAAE;AACtC,UAAM,IAAI,KAAK,SAAS,KAAK,OAAO7wB,IAAI,KAAK,SAAS,KAAK,QAAQM,IAAI,CAAC,IAAI,KAAK,OAAO;AACxF,QAAI,IAAI;AACR,WAAOuwB,GAAG,KAAKvwB,KAAKuwB,GAAG,IAAIvwB,IAAI,MAAM,IAAI,CAACN,IAAI,KAAK,OAAO,GAAG6wB,GAAG,KAAK,KAAKA,GAAG,IAAI,IAAI7wB;AAAA,EACtF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,QAAQ,GAAG;AACT,QAAI,MAAM,QAAQ,CAAC,GAAG,KAAK,SAAS,IAAI,UAAU,KAAK,kBAAkB,IAAI,GAAG,KAAK,UAAU,MAAM,OAAO,KAAK,YAAY,IAAI,KAAK,OAAO,SAAS,EAAE,SAAS;AAC/J,YAAM,IAAI,OAAO,KAAK,YAAY,IAAI,KAAK,OAAO,SAAS,EAAE;AAC7D,WAAK,SAAS,QAAQ,CAAC,CAAC,CAAC;AAAA,IAC1B;AACD,SAAK,WAAW;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,OAAO,KAAK,GAAG,GAAG;AAChB,UAAMA,IAAI,aAAa8pB,IAAI,IAAIA,EAAE,KAAK,GAAG,CAAC;AAC1C,WAAO,IAAIiH,GAAG/wB,CAAC;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,IAAI,YAAY,GAAG;AACjB,SAAK,iBAAiB,MAAM,KAAK,eAAe,IAAI,KAAK,sBAAsB,KAAK,KAAK,eAAe;AAAA,EACzG;AAAA,EACD,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACb;AAAA;AAAA,EAED,IAAI,QAAQ;AACV,WAAO,KAAK,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,SAAS,KAAK;AAAA,EACpD;AAAA,EACD,IAAI,MAAM,GAAG;AACX,UAAM,IAAI0hB,GAAG,KAAK,MAAM,CAAC,KAAK;AAC9B,SAAK,MAAM,IAAI,IAAI,IAAI,KAAK,SAAS,KAAK,OAAO,KAAK,SAAS;AAAA,EAChE;AAAA;AAAA,EAED,IAAI,SAAS;AACX,WAAO,KAAK,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,SAAS,KAAK;AAAA,EACpD;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,UAAM,IAAIA,GAAG,KAAK,MAAM,CAAC,KAAK;AAC9B,SAAK,MAAM,IAAI,IAAI,IAAI,KAAK,SAAS,KAAK,QAAQ,KAAK,UAAU;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBD,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,SAAK,QAAQ,SAAS,CAAC;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,OAAO;AACT,WAAO,KAAK,WAAW;AAAA,EACxB;AAAA,EACD,IAAI,KAAK,GAAG;AACV,SAAK,WAAW,SAAS,CAAC,GAAG,KAAK,WAAW,KAAK,WAAW;EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,YAAY;AACd,WAAO,KAAK,WAAW;EACxB;AAAA;AAAA,EAED,IAAI,UAAU;AACZ,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,QAAQ,GAAG;AACb,SAAK,aAAa,MAAM,KAAK,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,kBAAkB,IAAI,GAAG,KAAK,WAAW,KAAKoI,EAAE,OAAO,KAAK,cAAc,UAAU,KAAK,aAAa,IAAI,KAAK,oBAAoB,IAAI,MAAM,EAAE,YAAY,QAAQ,KAAK,iBAAgB,IAAK,EAAE,KAAK,UAAU,KAAK,kBAAkB,IAAI;AAAA,EACpT;AACH;AACA,MAAMkH,KAAK,IAAIzL;AACf+K,GAAG,UAAU,iBAAiB;AAC9BA,GAAG,UAAU,aAAa;AAC1BA,GAAG,UAAU,2BAA2B;AACxCA,GAAG,UAAU,4BAA4B;AACzC,MAAMW,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,iBAAiB,MAAM,KAAK,iBAAiB,MAAM,KAAK,uBAAuB,MAAM,KAAK,0BAA0B,MAAM,KAAK,yBAAyB,MAAM,KAAK,0BAA0B,MAAM,KAAK,kBAAkB,MAAM,KAAK,eAAe,MAAM,KAAK,qBAAqB,MAAM,KAAK,wBAAwB,MAAM,KAAK,SAAS;AAAA,EACjV;AACH;AACA,OAAO,iBAAiBX,GAAG,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUpC,yBAAyB;AAAA,IACvB,MAAM;AACJ,aAAO,KAAK;AAAA,IACb;AAAA,IACD,IAAI1wB,GAAG;AACL,MAAAA,MAAM,KAAK,6BAA6B,KAAK,2BAA2BA,GAAG,KAAK,kBAAkB,KAAK,gBAAgB,IAAI,KAAK,gBAAgB;AAAA,IACjJ;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,0BAA0B;AAAA,IACxB,MAAM;AACJ,aAAO,KAAK;AAAA,IACb;AAAA,IACD,IAAIA,GAAG;AACL,MAAAA,MAAM,KAAK,8BAA8B,KAAK,4BAA4BA,GAAG,KAAK,kBAAkB,KAAK,gBAAgB,IAAI,KAAK,gBAAgB;AAAA,IACnJ;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYD,eAAe;AAAA,IACb,MAAM;AACJ,aAAO,KAAK;AAAA,IACb;AAAA,IACD,IAAIA,GAAG;AACL,UAAI,KAAK,mBAAmBA;AAC1B;AACF,WAAK,iBAAiBA;AACtB,UAAI;AACJ,MAAAA,KAAK,KAAK,eAAe,KAAK,aAAa,IAAIqxB,GAAI,IAAG,IAAI,KAAK,YAAY,EAAE,iBAAiB,KAAK,QAAQ,EAAE,uBAAuB,KAAK,cAAc,EAAE,0BAA0B,KAAK,iBAAiB,EAAE,0BAA0B,KAAK,iBAAiB,EAAE,yBAAyB,KAAK,gBAAgB,EAAE,kBAAkB,KAAK,SAAS,EAAE,wBAAwB,KAAK,eAAe,EAAE,eAAe,KAAK,OAAO,EAAE,qBAAqB,KAAK,YAAY,KAAK,SAAS,KAAK,eAAe,KAAK,eAAe,KAAK,qBAAqB,KAAK,UAAU,KAAK,0BAA0B,IAAI,KAAK,YAAY,EAAE,UAAU,KAAK,4BAA2B,GAAI,KAAK,SAAS,EAAE,gBAAgB,KAAK,eAAe,EAAE,sBAAsB,KAAK,kBAAkB,EAAE,yBAAyB,KAAK,iBAAiB,EAAE,wBAAwB,KAAK,UAAU,EAAE,iBAAiB,KAAK,kBAAkB,EAAE,yBAAyB,KAAK,gBAAgB,EAAE,uBAAuB,KAAK,QAAQ,EAAE,cAAc,KAAK,aAAa,EAAE;AAAA,IACr+B;AAAA,EACF;AACH,CAAC;AACDX,GAAG,UAAU,gBAAgB,SAAS1wB,GAAG;AACvC,GAAC,KAAK,WAAW,KAAK,cAAc,KAAK,CAAC,KAAK,eAAe,KAAK,yBAAyBA,CAAC,GAAG,KAAK,WAAW,OAAO,UAAU,WAAW,KAAK,UAAU,UAAU,KAAK,WAAW,OAAO,aAAa,KAAK,YAAY,KAAK,WAAW,OAAO,QAAQA,CAAC;AAC5P;AACA0wB,GAAG,UAAU,2BAA2B,SAAS1wB,GAAG;AAClD,MAAI2U,GAAG1T;AACP,OAAK0T,IAAI,KAAK,eAAe,QAAQA,EAAE;AACrC;AACF,QAAMsD,IAAI,KAAK;AACf,OAAK,QAAQ,GAAGjY,EAAE,MAAM,MAAK;AAC7B,QAAMkY,IAAI,KAAK,eAAe,IAAIoN,EAAI,GAAE,EAAE;AAC1C,OAAKrkB,IAAI,KAAK,YAAY,QAAQA,EAAE,QAAQ;AAC1C,UAAMC,IAAI,KAAK,QAAQ,CAAC,EAAE;AAC1B,IAAAgX,EAAE,IAAIhX,CAAC;AAAA,EACR;AACD,QAAMd,IAAI,KAAK,2BAA2BJ,EAAE;AAC5C,EAAAkY,EAAE,KAAK9X,CAAC,GAAG8X,EAAE,QAAQ,KAAK,IAAIA,EAAE,OAAO,IAAI9X,CAAC,GAAG8X,EAAE,SAAS,KAAK,IAAIA,EAAE,QAAQ,IAAI9X,CAAC;AAClF,QAAMM,IAAIV,EAAE,cAAc,SAASmY,IAAInY,EAAE,cAAc,YAAY,MAAK,GAAIoY,IAAIpY,EAAE,cAAc,iBAAiB,MAAO,GAAEmZ,IAAInZ,EAAE,WAAW,WAAWe,IAAIopB,GAAG,OAAO;AAAA,IAClK,OAAOjS,EAAE;AAAA,IACT,QAAQA,EAAE;AAAA,IACV,YAAY9X;AAAA,IACZ,aAAa,KAAK,4BAA4BJ,EAAE;AAAA,EACjD,CAAA,GAAGgB,IAAI,iBAAiBghB,GAAE,CAAE;AAC7B,OAAK,WAAW,iBAAiBhhB,GAAGojB,EAAG,WAAWrjB,EAAE,aAAaC,CAAC,GAAGkpB,EAAE,WAAWnpB,GAAGC,CAAC;AACtF,QAAMyT,IAAI,KAAK,UAAU,eAAe,OAAO2c,EAAE,EAAE,OAAM,EAAG,UAAU,CAAClZ,EAAE,GAAG,CAACA,EAAE,CAAC;AAChF,OAAK,SAAS,KAAK,WAAW,gBAAgBlY,EAAE,OAAO,MAAM,EAAE,eAAee,GAAG,OAAO,IAAI,WAAW0T,GAAG,qBAAqB,GAAI,CAAA,GAAGzU,EAAE,YAAY,QAAQA,EAAE,WAAW,YAAYmZ,GAAGnZ,EAAE,cAAc,KAAKU,GAAGyX,GAAGC,CAAC,GAAG,KAAK,SAAS,KAAK,eAAe,KAAK,kBAAkB,KAAK,8BAA8B,KAAK,kBAAkB,KAAK,wBAAwB,KAAK,iBAAiB,KAAK,uBAAuB,KAAK,QAAQ,MAAM,KAAK,aAAa,MAAM,KAAK,QAAQH;AACjd,QAAMvD,IAAI,IAAIyc,GAAGpwB,CAAC;AAClB,EAAA2T,EAAE,UAAU,iBAAiB,KAAK,UAAU,gBAAgBA,EAAE,OAAO,IAAI,EAAEwD,EAAE,IAAIA,EAAE,QAAQxD,EAAE,OAAO,IAAI,EAAEwD,EAAE,IAAIA,EAAE,SAASxD,EAAE,QAAQuD,GAAGvD,EAAE,UAAU,KAAK,SAAS,KAAK,WAAW,SAASA,GAAG,KAAK,UAAU,YAAY,IAAI,KAAK,SAAS,KAAK,gBAAiB,KAAI,KAAK,iBAAkB,GAAE,KAAK,gBAAe,GAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,gBAAgBA,EAAE,cAAc,KAAKA,CAAC;AAClY;AACAgc,GAAG,UAAU,sBAAsB,SAAS1wB,GAAG;AAC7C,GAAC,KAAK,WAAW,KAAK,cAAc,KAAK,CAAC,KAAK,eAAe,KAAK,+BAA+BA,CAAC,GAAG,KAAK,WAAW,OAAO,aAAa,KAAK,YAAY,KAAK,WAAW,OAAO,cAAcA,CAAC;AACnM;AACA0wB,GAAG,UAAU,iCAAiC,SAAS1wB,GAAG;AACxD,MAAIyU;AACJ,OAAKA,IAAI,KAAK,eAAe,QAAQA,EAAE;AACrC;AACF,QAAMwD,IAAI,KAAK,eAAe,IAAIqN,EAAE,GAAI,EAAE,GAAGpN,IAAI,KAAK;AACtD,OAAK,QAAQ;AACb,QAAM9X,IAAIJ,EAAE,cAAc,eAAeU,IAAIV,EAAE,gBAAgBmY,IAAI,KAAK,2BAA2BnY,EAAE;AACrG,EAAAiY,EAAE,KAAKE,CAAC,GAAGF,EAAE,QAAQ,KAAK,IAAIA,EAAE,OAAO,IAAIE,CAAC,GAAGF,EAAE,SAAS,KAAK,IAAIA,EAAE,QAAQ,IAAIE,CAAC;AAClF,QAAMC,IAAI+R,GAAG,OAAO;AAAA,IAClB,OAAOlS,EAAE;AAAA,IACT,QAAQA,EAAE;AAAA,IACV,YAAYE;AAAA,EACb,CAAA,GAAGgB,IAAI,iBAAiB6I,GAAE,CAAE;AAC7B,OAAK,WAAW,iBAAiB7I,GAAGiL,EAAG,WAAWhM,EAAE,aAAae,CAAC,GAAG+Q,EAAE,WAAW9R,GAAGe,CAAC;AACtF,QAAM,IAAIiY;AACV,OAAK,UAAU,eAAe,OAAO,CAAC,GAAG,EAAE,OAAM,GAAI,EAAE,MAAMnZ,EAAE,GAAG,EAAE,MAAMA,EAAE,GAAG,KAAK,eAAe,KAAK,WAAW,sBAAsBjY,EAAE,OAAO,MAAM,EAAE,eAAeoY,GAAG,OAAO,IAAI,WAAW,GAAG,qBAAqB,GAAI,CAAA,GAAGpY,EAAE,cAAc,gBAAgBI,GAAGJ,EAAE,iBAAiBU,GAAG,KAAK,eAAe,KAAK,qBAAqB,KAAK,kBAAkB,KAAK,8BAA8B,KAAK,kBAAkB,KAAK,wBAAwB,KAAK,iBAAiB,KAAK,uBAAuB,KAAK,QAAQ,MAAM,KAAK,aAAa,MAAM,KAAK,QAAQwX;AAChiB,QAAMlX,IAAI,IAAImwB,GAAG/Y,CAAC;AAClB,EAAApX,EAAE,UAAU,iBAAiB,KAAK,UAAU,gBAAgBA,EAAE,OAAO,IAAI,EAAEiX,EAAE,IAAIA,EAAE,QAAQjX,EAAE,OAAO,IAAI,EAAEiX,EAAE,IAAIA,EAAE,SAASjX,EAAE,QAAQkX,GAAGlX,EAAE,UAAU,KAAK,SAAS,KAAK,WAAW,SAASA,GAAG,KAAK,UAAU,YAAY,IAAI,KAAK,SAAS,KAAK,gBAAiB,KAAI,KAAK,SAAShB,EAAE,0BAA0B,KAAK,gBAAiB,GAAE,KAAK,SAAS,OAAO,KAAK,gBAAgBgB,EAAE,cAAc,KAAKA,CAAC;AACzY;AACA0vB,GAAG,UAAU,yBAAyB,WAAW;AAC/C,OAAK,QAAQ,MAAK,GAAI,KAAK,WAAW,OAAO,UAAU,WAAW,KAAK,UAAU,UAAU,KAAK,WAAW,OAAO,iBAAgB,GAAI,KAAK,QAAQ,WAAW,KAAK;AACrK;AACAA,GAAG,UAAU,wBAAwB,WAAW;AAC9C,SAAO,KAAK,WAAW,OAAO,eAAe,IAAI;AACnD;AACAA,GAAG,UAAU,8BAA8B,WAAW;AACpD,OAAK,WAAW,OAAO,SAAS,QAAQ,EAAE,GAAG,KAAK,WAAW,SAAS,MAAMtM,EAAG,gBAAgB,KAAK,WAAW,cAAc,GAAG8F,EAAE,gBAAgB,KAAK,WAAW,cAAc,GAAG,KAAK,WAAW,iBAAiB;AACtN;AACAwG,GAAG,UAAU,wBAAwB,SAAS1wB,GAAG;AAC/C,OAAK,gBAAgB,IAAI,KAAK,QAAQA,CAAC;AACzC;AACA0wB,GAAG,UAAU,OAAO;AACpBM,GAAG,UAAU,iBAAiB,SAAShxB,GAAG,GAAG;AAC3C,WAAS,IAAI,GAAGI,IAAI,KAAK,SAAS,QAAQ,IAAIA,GAAG;AAC/C,QAAI,KAAK,SAAS,CAAC,EAAE,SAASJ;AAC5B,aAAO,KAAK,SAAS,CAAC;AAC1B,MAAI;AACF,aAAS,IAAI,GAAGI,IAAI,KAAK,SAAS,QAAQ,IAAIA,GAAG,KAAK;AACpD,YAAMM,IAAI,KAAK,SAAS,CAAC;AACzB,UAAI,CAACA,EAAE;AACL;AACF,YAAM,IAAIA,EAAE,eAAeV,GAAG,EAAE;AAChC,UAAI;AACF,eAAO;AAAA,IACV;AACH,SAAO;AACT;AACA0wB,GAAG,UAAU,oBAAoB,SAAS1wB,IAAI,IAAIolB,MAAM,IAAI,IAAI;AAC9D,SAAO,KAAK,SAAS,KAAK,OAAO,SAAS,KAAK,UAAUplB,GAAG,CAAC,KAAKA,EAAE,IAAI,KAAK,SAAS,GAAGA,EAAE,IAAI,KAAK,SAAS,IAAIA;AACnH;AACA,IAAIsxB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUT,MAAMC,WAAWjI,GAAG;AAAA;AAAA;AAAA;AAAA,EAIlB,YAAY,IAAI,GAAG;AACjB,UAAM4F,IAAIoC,IAAI,EAAE,QAAQ,EAAC,CAAE,GAAG,KAAK,QAAQ;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK,SAAS;AAAA,EACtB;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,SAAS,SAAS;AAAA,EACxB;AACH;AACA,MAAME,KAAK;AAAA,EACT,GAAG,CAAC,UAAU,UAAU,QAAQ;AAAA,EAChC,GAAG,CAAC,UAAU,UAAU,UAAU,QAAQ;AAAA,EAC1C,GAAG,CAAC,UAAU,UAAU,UAAU,UAAU,OAAO;AAAA,EACnD,IAAI,CAAC,OAAO,UAAU,UAAU,UAAU,UAAU,QAAQ;AAAA,EAC5D,IAAI,CAAC,SAAS,SAAS,UAAU,UAAU,UAAU,UAAU,QAAQ;AAAA,EACvE,IAAI,CAAC,QAAQ,SAAS,SAAS,SAAS,UAAU,UAAU,UAAU,QAAQ;AAChF,GAAGC,KAAK;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK;AAAA,CACN;AACD,SAASC,GAAG1xB,GAAG;AACb,QAAM,IAAIwxB,GAAGxxB,CAAC,GAAG,IAAI,EAAE;AACvB,MAAII,IAAIqxB,IAAI/wB,IAAI;AAChB,QAAM,IAAI;AACV,MAAI;AACJ,WAAS,IAAI,GAAG,IAAIV,GAAG,KAAK;AAC1B,QAAIe,IAAI,EAAE,QAAQ,WAAW,EAAE,SAAQ,CAAE;AACzC,QAAI,GAAG,KAAK,MAAM,IAAIf,IAAI,IAAI,IAAIe,IAAIA,EAAE,QAAQ,WAAW,EAAE,CAAC,EAAE,SAAU,CAAA,GAAGL,KAAKK,GAAGL,KAAK;AAAA;AAAA,EAE3F;AACD,SAAON,IAAIA,EAAE,QAAQ,UAAUM,CAAC,GAAGN,IAAIA,EAAE,QAAQ,UAAUJ,EAAE,SAAU,CAAA,GAAGI;AAC5E;AACA,MAAMuxB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+BX,SAASC,GAAG5xB,GAAG,GAAG;AAChB,QAAM,IAAI,KAAK,KAAKA,IAAI,CAAC;AACzB,MAAII,IAAIuxB,IAAIjxB,IAAI,IAAI;AACpB,MAAI,IAAI,mFAAmF,IAAI;AAC/F,WAAS,IAAI,GAAG,IAAIV,GAAG,KAAK;AAC1B,QAAI,IAAI,EAAE,QAAQ,WAAW,EAAE,SAAQ,CAAE;AACzC,QAAI,EAAE,QAAQ,iBAAiB,GAAG,KAAK,IAAI,EAAE,IAAI,GAAGU,KAAK,GAAGA,KAAK;AAAA;AAAA,EAElE;AACD,SAAON,IAAIA,EAAE,QAAQ,UAAUM,CAAC,GAAGN,IAAIA,EAAE,QAAQ,UAAUJ,EAAE,SAAU,CAAA,GAAGI;AAC5E;AACA,MAAMyxB,WAAWvI,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlB,YAAY,GAAG,IAAI,GAAGlpB,IAAI,GAAGM,IAAI4oB,GAAG,mBAAmB,IAAI,GAAG;AAC5D,UAAM,IAAIsI,GAAG,GAAG,CAAC,GAAG,IAAIF,GAAG,CAAC;AAC5B;AAAA;AAAA,MAEE;AAAA;AAAA,MAEA;AAAA,IACN,GAAO,KAAK,aAAa,GAAG,KAAK,aAAahxB,GAAG,KAAK,WAAW,GAAG,KAAK,UAAUN,GAAG,KAAK,OAAO;AAAA,EAC/F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,MAAM,GAAG,GAAGA,GAAGM,GAAG;AAChB,QAAIN,IAAI,KAAK,aAAa,KAAK,SAAS,WAAW,IAAIA,EAAE,SAASA,EAAE,QAAQ,EAAE,SAAS,KAAK,SAAS,WAAW,IAAIA,EAAE,UAAUA,EAAE,SAAS,EAAE,UAAU,KAAK,aAAa,KAAK,SAAS,WAAW,IAAI,EAAE,SAAS,SAAS,EAAE,SAAS,QAAQ,EAAE,SAAS,KAAK,SAAS,WAAW,IAAI,EAAE,SAAS,UAAU,EAAE,SAAS,SAAS,EAAE,SAAS,KAAK,SAAS,YAAY,KAAK,UAAU,KAAK,SAAS,YAAY,KAAK,QAAQ,KAAK,WAAW;AACva,QAAE,YAAY,MAAM,GAAGA,GAAGM,CAAC;AAAA,SACxB;AACH,YAAM,IAAI,EAAE,iBAAkB,GAAE,IAAI,EAAE;AACtC,UAAI,IAAI,GAAGK,IAAI;AACf,WAAK,MAAM,QAAQ,IAAI,EAAE,YAAY,MAAM,GAAGA,GAAG0R,GAAG,KAAK;AACzD,eAASzR,IAAI,GAAGA,IAAI,KAAK,SAAS,GAAGA,KAAK;AACxC,UAAE,aAAa,GAAGyR,GAAG,IAAI,GAAG,KAAK,SAAS,WAAW1R;AACrD,cAAM,IAAIA;AACV,QAAAA,IAAI,GAAG,IAAI,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,EAAE,SAAS,KAAK,CAAC;AAAA,MACrD;AACD,WAAK,MAAM,QAAQ,IAAI,EAAE,YAAY,MAAMA,GAAGX,GAAGM,CAAC,GAAG,EAAE,oBAAoB,CAAC;AAAA,IAC7E;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,OAAO;AACT,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,KAAK,GAAG;AACV,SAAK,UAAU,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,KAAK,WAAW;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,UAAU;AACZ,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,QAAQ,GAAG;AACb,SAAK,WAAW,GAAG,KAAK,SAAS;AAAA,EAClC;AACH;AACA,MAAMoxB,WAAWxI,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlB,YAAY,IAAI,GAAG,IAAI,GAAGlpB,IAAIkpB,GAAG,mBAAmB5oB,IAAI,GAAG;AACzD,UAAK,GAAI,KAAK,oBAAoB,IAAI,KAAK,cAAc,IAAImxB,GAAG,IAAI,GAAG,GAAGzxB,GAAGM,CAAC,GAAG,KAAK,cAAc,IAAImxB,GAAG,IAAI,GAAG,GAAGzxB,GAAGM,CAAC,GAAG,KAAK,aAAaN,GAAG,KAAK,UAAU,GAAG,KAAK,OAAO,GAAG,KAAK,mBAAmB;AAAA,EAC3M;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,MAAM,GAAG,GAAGA,GAAGM,GAAG;AAChB,UAAM,IAAI,KAAK,IAAI,KAAK,YAAY,QAAQ,GAAG,IAAI,KAAK,IAAI,KAAK,YAAY,QAAQ;AACrF,QAAI,KAAK,GAAG;AACV,YAAM,IAAI,EAAE;AACZ,WAAK,YAAY,MAAM,GAAG,GAAG,GAAG+R,GAAG,KAAK,GAAG,KAAK,YAAY,MAAM,GAAG,GAAGrS,GAAGM,CAAC,GAAG,EAAE,oBAAoB,CAAC;AAAA,IACvG;AACC,UAAI,KAAK,YAAY,MAAM,GAAG,GAAGN,GAAGM,CAAC,IAAI,KAAK,YAAY,MAAM,GAAG,GAAGN,GAAGM,CAAC;AAAA,EAC7E;AAAA,EACD,gBAAgB;AACd,SAAK,oBAAoB,KAAK,UAAU,IAAI,KAAK,UAAU,KAAK,IAAI,KAAK,IAAI,KAAK,YAAY,QAAQ,GAAG,KAAK,IAAI,KAAK,YAAY,QAAQ,CAAC,IAAI;AAAA,EACjJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA,EACD,IAAI,KAAK,GAAG;AACV,SAAK,YAAY,OAAO,KAAK,YAAY,OAAO,GAAG,KAAK;EACzD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,UAAU;AACZ,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA,EACD,IAAI,QAAQ,GAAG;AACb,SAAK,YAAY,UAAU,KAAK,YAAY,UAAU;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,YAAY,OAAO,GAAG,KAAK,cAAa;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,QAAQ;AACV,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA,EACD,IAAI,MAAM,GAAG;AACX,SAAK,YAAY,OAAO,GAAG,KAAK,cAAa;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,YAAY;AACd,WAAO,KAAK,YAAY;AAAA,EACzB;AAAA,EACD,IAAI,UAAU,GAAG;AACf,SAAK,YAAY,YAAY;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,IAAI,mBAAmB;AACrB,WAAO,KAAK;AAAA,EACb;AAAA,EACD,IAAI,iBAAiB,GAAG;AACtB,SAAK,oBAAoB,GAAG,KAAK,cAAa;AAAA,EAC/C;AACH;AACA,IAAIqxB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqDT,MAAMC,WAAW1I,GAAG;AAAA,EAClB,cAAc;AACZ,UAAM,IAAI;AAAA,MACR,GAAG,IAAI,aAAa;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR,CAAO;AAAA,MACD,QAAQ;AAAA,IACd;AACI,UAAM6F,IAAI4C,IAAI,CAAC,GAAG,KAAK,QAAQ;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,YAAY,GAAG,IAAI,IAAI;AACrB,QAAI3xB,IAAI;AACR,UAAM,KAAK,UAAUA,GAAG,KAAK,SAAS,GAAG,CAAC,GAAGA,IAAI,KAAK,aAAaA,CAAC,IAAI,KAAK,SAAS,IAAIA;AAAA,EAC3F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,UAAU,GAAG,GAAGA,GAAG;AACjB,WAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,IAAIA,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAI,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAI,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,EAAE,IAAIA,EAAE,EAAE,IAAI,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,EAAE,IAAIA,EAAE,CA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"}
|
|
1
|
+
{"version":3,"file":"annotorious-svelte.es14.js","sources":["../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;"],"names":["v4","options","buf","offset","native","rnds","rng","i","unsafeStringify"],"mappings":";;;AAIA,SAASA,EAAGC,GAASC,GAAKC,GAAQ;AAChC,MAAIC,EAAO,cAAc,CAACF,KAAO,CAACD;AAChC,WAAOG,EAAO;AAGhB,EAAAH,IAAUA,KAAW;AACrB,QAAMI,IAAOJ,EAAQ,WAAWA,EAAQ,OAAOK;AAK/C,MAHAD,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,IAC3BA,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,KAEvBH,GAAK;AACP,IAAAC,IAASA,KAAU;AAEnB,aAASI,IAAI,GAAGA,IAAI,IAAI,EAAEA;AACxB,MAAAL,EAAIC,IAASI,CAAC,IAAIF,EAAKE,CAAC;AAG1B,WAAOL;AAAA,EACR;AAED,SAAOM,EAAgBH,CAAI;AAC7B;","x_google_ignoreList":[0]}
|