@tekki-forge/runtime-admin 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/admin-dashboard.d.ts +16 -0
  2. package/dist/admin-dashboard.js +60 -0
  3. package/dist/admin-dashboard.js.map +1 -0
  4. package/dist/admin-orgs.d.ts +14 -0
  5. package/dist/admin-orgs.js +75 -0
  6. package/dist/admin-orgs.js.map +1 -0
  7. package/dist/admin-shell.d.ts +55 -0
  8. package/dist/admin-shell.js +141 -0
  9. package/dist/admin-shell.js.map +1 -0
  10. package/dist/admin.js +39 -6
  11. package/dist/admin.js.map +1 -1
  12. package/dist/app-pages.d.ts +19 -0
  13. package/dist/app-pages.js +109 -0
  14. package/dist/app-pages.js.map +1 -0
  15. package/dist/auth-pages.js +7 -2
  16. package/dist/auth-pages.js.map +1 -1
  17. package/dist/charts.d.ts +98 -2
  18. package/dist/charts.js +264 -24
  19. package/dist/charts.js.map +1 -1
  20. package/dist/context.js +32 -1
  21. package/dist/context.js.map +1 -1
  22. package/dist/dashboard.d.ts +63 -8
  23. package/dist/dashboard.js +180 -36
  24. package/dist/dashboard.js.map +1 -1
  25. package/dist/entity-icons.d.ts +3 -0
  26. package/dist/entity-icons.js +105 -0
  27. package/dist/entity-icons.js.map +1 -0
  28. package/dist/i18n/messages/de.js +751 -0
  29. package/dist/i18n/messages/de.js.map +1 -1
  30. package/dist/i18n/messages/en.js +751 -0
  31. package/dist/i18n/messages/en.js.map +1 -1
  32. package/dist/i18n/messages/es.js +751 -0
  33. package/dist/i18n/messages/es.js.map +1 -1
  34. package/dist/i18n/messages/fr.js +751 -0
  35. package/dist/i18n/messages/fr.js.map +1 -1
  36. package/dist/i18n/messages/pt.js +751 -0
  37. package/dist/i18n/messages/pt.js.map +1 -1
  38. package/dist/index.d.ts +9 -0
  39. package/dist/index.js +9 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/schema-editor.js +2 -1
  42. package/dist/schema-editor.js.map +1 -1
  43. package/dist/shell.js +37 -34
  44. package/dist/shell.js.map +1 -1
  45. package/dist/site/editor/api.d.ts +74 -0
  46. package/dist/site/editor/api.js +93 -0
  47. package/dist/site/editor/api.js.map +1 -0
  48. package/dist/site/editor/content-page.d.ts +4 -0
  49. package/dist/site/editor/content-page.js +65 -0
  50. package/dist/site/editor/content-page.js.map +1 -0
  51. package/dist/site/editor/inbox-tab.d.ts +4 -0
  52. package/dist/site/editor/inbox-tab.js +88 -0
  53. package/dist/site/editor/inbox-tab.js.map +1 -0
  54. package/dist/site/editor/index.d.ts +1 -0
  55. package/dist/site/editor/index.js +3 -0
  56. package/dist/site/editor/index.js.map +1 -0
  57. package/dist/site/editor/model.d.ts +145 -0
  58. package/dist/site/editor/model.js +408 -0
  59. package/dist/site/editor/model.js.map +1 -0
  60. package/dist/site/editor/page-editor.d.ts +10 -0
  61. package/dist/site/editor/page-editor.js +257 -0
  62. package/dist/site/editor/page-editor.js.map +1 -0
  63. package/dist/site/editor/page-settings.d.ts +9 -0
  64. package/dist/site/editor/page-settings.js +105 -0
  65. package/dist/site/editor/page-settings.js.map +1 -0
  66. package/dist/site/editor/pages-tab.d.ts +5 -0
  67. package/dist/site/editor/pages-tab.js +108 -0
  68. package/dist/site/editor/pages-tab.js.map +1 -0
  69. package/dist/site/editor/posts-tab.d.ts +6 -0
  70. package/dist/site/editor/posts-tab.js +139 -0
  71. package/dist/site/editor/posts-tab.js.map +1 -0
  72. package/dist/site/editor/preview.d.ts +32 -0
  73. package/dist/site/editor/preview.js +104 -0
  74. package/dist/site/editor/preview.js.map +1 -0
  75. package/dist/site/editor/prop-fields.d.ts +53 -0
  76. package/dist/site/editor/prop-fields.js +233 -0
  77. package/dist/site/editor/prop-fields.js.map +1 -0
  78. package/dist/site/editor/section-list.d.ts +14 -0
  79. package/dist/site/editor/section-list.js +110 -0
  80. package/dist/site/editor/section-list.js.map +1 -0
  81. package/dist/site/editor/section-picker.d.ts +12 -0
  82. package/dist/site/editor/section-picker.js +44 -0
  83. package/dist/site/editor/section-picker.js.map +1 -0
  84. package/dist/site/editor/widgets.d.ts +84 -0
  85. package/dist/site/editor/widgets.js +130 -0
  86. package/dist/site/editor/widgets.js.map +1 -0
  87. package/dist/site/format.d.ts +31 -0
  88. package/dist/site/format.js +106 -0
  89. package/dist/site/format.js.map +1 -0
  90. package/dist/site/forms.d.ts +43 -0
  91. package/dist/site/forms.js +155 -0
  92. package/dist/site/forms.js.map +1 -0
  93. package/dist/site/header.d.ts +32 -0
  94. package/dist/site/header.js +76 -0
  95. package/dist/site/header.js.map +1 -0
  96. package/dist/site/icons.d.ts +10 -0
  97. package/dist/site/icons.js +28 -0
  98. package/dist/site/icons.js.map +1 -0
  99. package/dist/site/index.d.ts +11 -0
  100. package/dist/site/index.js +13 -0
  101. package/dist/site/index.js.map +1 -0
  102. package/dist/site/markdown.d.ts +14 -0
  103. package/dist/site/markdown.js +457 -0
  104. package/dist/site/markdown.js.map +1 -0
  105. package/dist/site/page.d.ts +16 -0
  106. package/dist/site/page.js +65 -0
  107. package/dist/site/page.js.map +1 -0
  108. package/dist/site/proxy.d.ts +13 -0
  109. package/dist/site/proxy.js +43 -0
  110. package/dist/site/proxy.js.map +1 -0
  111. package/dist/site/sections.d.ts +43 -0
  112. package/dist/site/sections.js +560 -0
  113. package/dist/site/sections.js.map +1 -0
  114. package/dist/site/server.d.ts +73 -0
  115. package/dist/site/server.js +235 -0
  116. package/dist/site/server.js.map +1 -0
  117. package/dist/site/types.d.ts +137 -0
  118. package/dist/site/types.js +2 -0
  119. package/dist/site/types.js.map +1 -0
  120. package/dist/support.d.ts +29 -0
  121. package/dist/support.js +165 -0
  122. package/dist/support.js.map +1 -0
  123. package/dist/system-config.d.ts +24 -0
  124. package/dist/system-config.js +37 -0
  125. package/dist/system-config.js.map +1 -0
  126. package/dist/system-settings.d.ts +9 -0
  127. package/dist/system-settings.js +60 -0
  128. package/dist/system-settings.js.map +1 -0
  129. package/dist/theme-catalog.d.ts +72 -2
  130. package/dist/theme-catalog.js +47 -0
  131. package/dist/theme-catalog.js.map +1 -1
  132. package/dist/theme-switcher.d.ts +8 -0
  133. package/dist/theme-switcher.js +39 -4
  134. package/dist/theme-switcher.js.map +1 -1
  135. package/dist/theme.js +8 -0
  136. package/dist/theme.js.map +1 -1
  137. package/dist/transactions.d.ts +4 -0
  138. package/dist/transactions.js +60 -0
  139. package/dist/transactions.js.map +1 -0
  140. package/dist/ui.js +3 -22
  141. package/dist/ui.js.map +1 -1
  142. package/package.json +9 -5
  143. package/styles.css +1089 -0
package/dist/charts.js CHANGED
@@ -2,17 +2,37 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useEffect, useId, useRef, useState } from "react";
4
4
  import { useLocale, useT } from "./context.js";
5
- /** Series colours: theme primary, theme accent, then six mid-tone hues legible on light and dark surfaces. */
5
+ /**
6
+ * Series colours from the theme: `--forge-chart-1…8` (styles.css derives them from the primary and accent colours,
7
+ * lightened in dark mode for contrast), with the raw theme colours and mid-tone hues as fallbacks.
8
+ */
6
9
  export const CHART_PALETTE = [
7
- "var(--forge-primary)",
8
- "var(--forge-accent)",
9
- "#14b8a6", // teal
10
- "#f59e0b", // amber
11
- "#ec4899", // pink
12
- "#8b5cf6", // violet
13
- "#0ea5e9", // sky
14
- "#84cc16", // lime
10
+ "var(--forge-chart-1, var(--forge-primary))",
11
+ "var(--forge-chart-2, var(--forge-accent))",
12
+ "var(--forge-chart-3, #14b8a6)", // teal
13
+ "var(--forge-chart-4, #f59e0b)", // amber
14
+ "var(--forge-chart-5, #ec4899)", // pink
15
+ "var(--forge-chart-6, #8b5cf6)", // violet
16
+ "var(--forge-chart-7, #0ea5e9)", // sky
17
+ "var(--forge-chart-8, #84cc16)", // lime
15
18
  ];
19
+ /** A widget colour (hex, or a theme token: primary, accent, success, info, danger, chart-1…chart-8) as CSS. */
20
+ export function chartColor(c) {
21
+ if (c.startsWith("#") || c.startsWith("var("))
22
+ return c;
23
+ if (c === "primary")
24
+ return CHART_PALETTE[0];
25
+ if (c === "accent")
26
+ return CHART_PALETTE[1];
27
+ const n = /^chart-([1-8])$/.exec(c);
28
+ if (n)
29
+ return CHART_PALETTE[Number(n[1]) - 1];
30
+ return `var(--forge-${c})`;
31
+ }
32
+ /** `colors` (widget option) resolved to CSS, cycling; the theme palette by default. */
33
+ export function chartPalette(colors) {
34
+ return colors?.length ? colors.map(chartColor) : CHART_PALETTE;
35
+ }
16
36
  const DEFAULT_HEIGHT = 220;
17
37
  const DEFAULT_WIDTH = 640;
18
38
  const FONT = 11;
@@ -22,7 +42,6 @@ const INK_MUTED = "var(--forge-ink-muted)";
22
42
  const INK_SUBTLE = "var(--forge-ink-subtle)";
23
43
  const LINE = "var(--forge-line)";
24
44
  const SURFACE = "var(--forge-surface)";
25
- const PRIMARY = "var(--forge-primary)";
26
45
  const FORMATS = new Map();
27
46
  /** Default value and percentage formatters for a UI locale ("en" → en-US). */
28
47
  function localeFormats(locale) {
@@ -125,7 +144,7 @@ function useWidth() {
125
144
  function ChartFrame({ title, height, empty, emptyLabel, columns, rows, children }) {
126
145
  const [ref, width] = useWidth();
127
146
  const t = useT();
128
- return (_jsxs("figure", { className: "m-0 w-full", children: [_jsx(ChartStyles, {}), _jsx("figcaption", { className: "sr-only", children: title }), _jsx("div", { ref: ref, className: "w-full", children: empty ? (_jsx("div", { className: "flex items-center justify-center text-sm text-ink-subtle", style: { height }, children: emptyLabel ?? t("charts.noData") })) : (children(width)) }), !empty && (_jsxs("table", { className: "sr-only", children: [_jsx("caption", { children: title }), _jsx("thead", { children: _jsx("tr", { children: columns.map((c) => _jsx("th", { scope: "col", children: c }, c)) }) }), _jsx("tbody", { children: rows.map((r, i) => (_jsx("tr", { children: r.map((cell, j) => (j === 0 ? _jsx("th", { scope: "row", children: cell }, j) : _jsx("td", { children: cell }, j))) }, i))) })] }))] }));
147
+ return (_jsxs("figure", { className: "m-0 w-full", children: [_jsx(ChartStyles, {}), _jsx("figcaption", { className: "sr-only", children: title }), _jsx("div", { ref: ref, className: "w-full", children: empty ? (_jsx("div", { className: "flex items-center justify-center text-sm text-ink-subtle", style: { height }, children: emptyLabel ?? t("charts.noData") })) : (children(width)) }), !empty && (_jsx("div", { className: "sr-only", children: _jsxs("table", { className: "sr-only", children: [_jsx("caption", { children: title }), _jsx("thead", { children: _jsx("tr", { children: columns.map((c) => _jsx("th", { scope: "col", children: c }, c)) }) }), _jsx("tbody", { children: rows.map((r, i) => (_jsx("tr", { children: r.map((cell, j) => (j === 0 ? _jsx("th", { scope: "row", children: cell }, j) : _jsx("td", { children: cell }, j))) }, i))) })] }) }))] }));
129
148
  }
130
149
  function Svg({ width, height, label, className, children }) {
131
150
  return (_jsx("svg", { role: "img", "aria-label": label, viewBox: `0 0 ${width} ${height}`, width: "100%", preserveAspectRatio: "xMidYMid meet", className: className, style: { display: "block", overflow: "visible", fontSize: FONT, fontVariantNumeric: "tabular-nums" }, children: children }));
@@ -172,13 +191,13 @@ const valueRows = (data, fmt) => data.map((d) => [d.label, fmt(d.value)]);
172
191
  // ---- BarChart ----
173
192
  export function BarChart(props) {
174
193
  const t = useT();
175
- const { title, height = DEFAULT_HEIGHT, format = localeFormats(useLocale()).number, emptyLabel } = props;
194
+ const { title, height = DEFAULT_HEIGHT, format = localeFormats(useLocale()).number, emptyLabel, color = CHART_PALETTE[0] } = props;
176
195
  const data = clean(props.data);
177
196
  const orientation = props.orientation ?? (data.length > 8 || data.some((d) => d.label.length > 12) ? "horizontal" : "vertical");
178
197
  const label = summarize(t("charts.bar"), data, format, t);
179
- return (_jsx(ChartFrame, { title: title, height: height, empty: isEmpty(data), emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value")], rows: valueRows(data, format), children: (width) => orientation === "vertical" ? (_jsx(VerticalBars, { data: data, width: width, height: height, fmt: format, label: label })) : (_jsx(HorizontalBars, { data: data, width: width, height: height, fmt: format, label: label })) }));
198
+ return (_jsx(ChartFrame, { title: title, height: height, empty: isEmpty(data), emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value")], rows: valueRows(data, format), children: (width) => orientation === "vertical" ? (_jsx(VerticalBars, { data: data, width: width, height: height, fmt: format, label: label, color: color })) : (_jsx(HorizontalBars, { data: data, width: width, height: height, fmt: format, label: label, color: color })) }));
180
199
  }
181
- function VerticalBars({ data, width, height, fmt, label }) {
200
+ function VerticalBars({ data, width, height, fmt, label, color }) {
182
201
  const top = 10, bottom = 24, right = 8;
183
202
  const { lo, hi, ticks } = niceDomain(data.map((d) => d.value), Math.max(2, Math.floor((height - top - bottom) / 40)));
184
203
  const left = Math.max(...ticks.map((t) => textWidth(fmt(t)))) + 12;
@@ -188,10 +207,10 @@ function VerticalBars({ data, width, height, fmt, label }) {
188
207
  const xs = data.map((_, i) => left + band * (i + 0.5));
189
208
  return (_jsxs(Svg, { width: width, height: height, label: label, children: [_jsx(ValueGrid, { axis: "y", ticks: ticks, pos: y, from: left, to: width - right, labelAt: left - 8, fmt: fmt }), _jsx("g", { className: "fc-marks fc-enter", children: data.map((d, i) => {
190
209
  const y0 = y(Math.max(0, d.value)), y1 = y(Math.min(0, d.value));
191
- return (_jsx(Linked, { d: d, fmt: fmt, children: _jsx("path", { className: "fc-mark", d: barPath(xs[i] - barW / 2, y0, barW, y1 - y0, d.value < 0 ? "b" : "t"), fill: PRIMARY, children: _jsx("title", { children: tip(d, fmt) }) }) }, i));
210
+ return (_jsx(Linked, { d: d, fmt: fmt, children: _jsx("path", { className: "fc-mark", d: barPath(xs[i] - barW / 2, y0, barW, y1 - y0, d.value < 0 ? "b" : "t"), fill: color, children: _jsx("title", { children: tip(d, fmt) }) }) }, i));
192
211
  }) }), _jsx(CategoryAxis, { data: data, xs: xs, slot: band, y: height - 6 })] }));
193
212
  }
194
- function HorizontalBars({ data, width, height, fmt, label }) {
213
+ function HorizontalBars({ data, width, height, fmt, label, color }) {
195
214
  const rowH = 24, top = 4, bottom = 22;
196
215
  const h = Math.max(height, data.length * rowH + top + bottom);
197
216
  const row = (h - top - bottom) / data.length;
@@ -205,13 +224,13 @@ function HorizontalBars({ data, width, height, fmt, label }) {
205
224
  return (_jsxs(Svg, { width: width, height: h, label: label, children: [_jsx(ValueGrid, { axis: "x", ticks: ticks, pos: x, from: top, to: h - bottom, labelAt: h - 6, fmt: fmt }), _jsx("g", { className: "fc-marks fc-enter", children: data.map((d, i) => {
206
225
  const cy = top + row * (i + 0.5);
207
226
  const x0 = x(Math.min(0, d.value)), x1 = x(Math.max(0, d.value));
208
- return (_jsx(Linked, { d: d, fmt: fmt, children: _jsxs("g", { className: "fc-mark", children: [_jsx("title", { children: tip(d, fmt) }), _jsx("path", { d: barPath(x0, cy - barH / 2, x1 - x0, barH, d.value < 0 ? "l" : "r"), fill: PRIMARY }), _jsx("text", { x: left - 10, y: cy, dy: "0.32em", textAnchor: "end", fill: INK, children: truncate(d.label, chars) }), !hasNeg && (_jsx("text", { x: x1 + 6, y: cy, dy: "0.32em", fill: INK_MUTED, children: fmt(d.value) }))] }) }, i));
227
+ return (_jsx(Linked, { d: d, fmt: fmt, children: _jsxs("g", { className: "fc-mark", children: [_jsx("title", { children: tip(d, fmt) }), _jsx("path", { d: barPath(x0, cy - barH / 2, x1 - x0, barH, d.value < 0 ? "l" : "r"), fill: color }), _jsx("text", { x: left - 10, y: cy, dy: "0.32em", textAnchor: "end", fill: INK, children: truncate(d.label, chars) }), !hasNeg && (_jsx("text", { x: x1 + 6, y: cy, dy: "0.32em", fill: INK_MUTED, children: fmt(d.value) }))] }) }, i));
209
228
  }) })] }));
210
229
  }
211
230
  // ---- LineChart ----
212
231
  export function LineChart(props) {
213
232
  const t = useT();
214
- const { title, height = DEFAULT_HEIGHT, format = localeFormats(useLocale()).number, emptyLabel, area = false } = props;
233
+ const { title, height = DEFAULT_HEIGHT, format = localeFormats(useLocale()).number, emptyLabel, area = false, color = CHART_PALETTE[0] } = props;
215
234
  const data = clean(props.data);
216
235
  const gradientId = `fc-area-${useId().replace(/[^\w-]/g, "")}`;
217
236
  return (_jsx(ChartFrame, { title: title, height: height, empty: isEmpty(data), emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value")], rows: valueRows(data, format), children: (width) => {
@@ -225,7 +244,7 @@ export function LineChart(props) {
225
244
  const line = pts.map((p, i) => `${i ? "L" : "M"}${p.x},${p.y}`).join("");
226
245
  const base = y(0);
227
246
  const dense = slot < 14;
228
- return (_jsxs(Svg, { width: width, height: height, label: summarize(t("charts.line"), data, format, t), className: dense ? "fc-dense" : undefined, children: [_jsx(ValueGrid, { axis: "y", ticks: ticks, pos: y, from: left, to: width - right, labelAt: left - 8, fmt: format }), area && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, x1: "0", x2: "0", y1: "0", y2: "1", children: [_jsx("stop", { offset: "0%", style: { stopColor: PRIMARY, stopOpacity: 0.28 } }), _jsx("stop", { offset: "100%", style: { stopColor: PRIMARY, stopOpacity: 0.02 } })] }) }), _jsx("path", { className: "fc-enter", d: `${line}L${pts[pts.length - 1].x},${base}L${pts[0].x},${base}Z`, fill: `url(#${gradientId})` })] })), _jsx("path", { className: "fc-draw", pathLength: 1, d: line, fill: "none", stroke: PRIMARY, strokeWidth: 2, strokeLinejoin: "round", strokeLinecap: "round" }), _jsx("g", { children: pts.map(({ d, x, y: py }, i) => (_jsx(Linked, { d: d, fmt: format, children: _jsxs("g", { className: "fc-point", children: [_jsx("title", { children: tip(d, format) }), _jsx("circle", { cx: x, cy: py, r: Math.max(4, Math.min(10, slot / 2)), fill: "transparent" }), _jsx("circle", { className: "fc-dot", cx: x, cy: py, r: 3.5, fill: SURFACE, stroke: PRIMARY, strokeWidth: 2 })] }) }, i))) }), _jsx(CategoryAxis, { data: data, xs: pts.map((p) => p.x), slot: slot, y: height - 6 })] }));
247
+ return (_jsxs(Svg, { width: width, height: height, label: summarize(t("charts.line"), data, format, t), className: dense ? "fc-dense" : undefined, children: [_jsx(ValueGrid, { axis: "y", ticks: ticks, pos: y, from: left, to: width - right, labelAt: left - 8, fmt: format }), area && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, x1: "0", x2: "0", y1: "0", y2: "1", children: [_jsx("stop", { offset: "0%", style: { stopColor: color, stopOpacity: 0.28 } }), _jsx("stop", { offset: "100%", style: { stopColor: color, stopOpacity: 0.02 } })] }) }), _jsx("path", { className: "fc-enter", d: `${line}L${pts[pts.length - 1].x},${base}L${pts[0].x},${base}Z`, fill: `url(#${gradientId})` })] })), _jsx("path", { className: "fc-draw", pathLength: 1, d: line, fill: "none", stroke: color, strokeWidth: 2, strokeLinejoin: "round", strokeLinecap: "round" }), _jsx("g", { children: pts.map(({ d, x, y: py }, i) => (_jsx(Linked, { d: d, fmt: format, children: _jsxs("g", { className: "fc-point", children: [_jsx("title", { children: tip(d, format) }), _jsx("circle", { cx: x, cy: py, r: Math.max(4, Math.min(10, slot / 2)), fill: "transparent" }), _jsx("circle", { className: "fc-dot", cx: x, cy: py, r: 3.5, fill: SURFACE, stroke: color, strokeWidth: 2 })] }) }, i))) }), _jsx(CategoryAxis, { data: data, xs: pts.map((p) => p.x), slot: slot, y: height - 6 })] }));
229
248
  } }));
230
249
  }
231
250
  // ---- DonutChart ----
@@ -239,21 +258,242 @@ function arcPath(c, r0, r1, a0, a1) {
239
258
  export function DonutChart(props) {
240
259
  const t = useT();
241
260
  const formats = localeFormats(useLocale());
242
- const { title, height = DEFAULT_HEIGHT, format = formats.number, emptyLabel } = props;
261
+ const { title, height = DEFAULT_HEIGHT, format = formats.number, emptyLabel, hole = 0.64, legend = true } = props;
262
+ const palette = chartPalette(props.colors);
243
263
  const positive = clean(props.data).filter((d) => d.value > 0).sort((a, b) => b.value - a.value);
244
264
  const total = positive.reduce((s, d) => s + d.value, 0);
245
- const slices = positive.slice(0, MAX_SLICES).map((d, i) => ({ ...d, color: CHART_PALETTE[i] }));
265
+ const slices = positive.slice(0, MAX_SLICES).map((d, i) => ({ ...d, color: palette[i % palette.length] }));
246
266
  if (positive.length > MAX_SLICES) {
247
267
  const rest = positive.slice(MAX_SLICES).reduce((s, d) => s + d.value, 0);
248
268
  slices.push({ label: t("charts.other"), value: rest, color: INK_SUBTLE });
249
269
  }
250
270
  const pct = (v) => formats.percent(total ? v / total : 0);
251
- const S = height, c = S / 2, r1 = c - 4, r0 = r1 * 0.64;
271
+ const S = height, c = S / 2, r1 = c - 4, r0 = r1 * Math.max(0, Math.min(0.9, hole));
252
272
  let angle = -Math.PI / 2;
253
- return (_jsx(ChartFrame, { title: title, height: height, empty: total <= 0, emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value"), t("charts.share")], rows: slices.map((d) => [d.label, format(d.value), pct(d.value)]), children: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-x-8 gap-y-4", children: [_jsx("div", { className: "shrink-0", style: { width: "100%", maxWidth: S }, children: _jsxs(Svg, { width: S, height: S, label: t("charts.donutSummary", { total: format(total), slices: slices.map((d) => `${tip(d, format)} (${pct(d.value)})`).join("; ") }), children: [_jsx("g", { className: "fc-marks fc-enter", children: slices.map((d, i) => {
273
+ return (_jsx(ChartFrame, { title: title, height: height, empty: total <= 0, emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value"), t("charts.share")], rows: slices.map((d) => [d.label, format(d.value), pct(d.value)]), children: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-x-8 gap-y-4", children: [_jsx("div", { className: "shrink-0", style: { width: "100%", maxWidth: S }, children: _jsxs(Svg, { width: S, height: S, label: t(hole > 0 ? "charts.donutSummary" : "charts.pieSummary", { total: format(total), slices: slices.map((d) => `${tip(d, format)} (${pct(d.value)})`).join("; ") }), children: [_jsx("g", { className: "fc-marks fc-enter", children: slices.map((d, i) => {
254
274
  const a0 = angle;
255
275
  angle += (d.value / total) * Math.PI * 2;
256
276
  return (_jsx(Linked, { d: d, fmt: format, children: _jsx("path", { className: "fc-mark", d: arcPath(c, r0, r1, a0, angle), fill: d.color, stroke: SURFACE, strokeWidth: slices.length > 1 ? 2 : 0, strokeLinejoin: "round", children: _jsx("title", { children: `${tip(d, format)} (${pct(d.value)})` }) }) }, i));
257
- }) }), _jsx("text", { x: c, y: c, dy: "-0.1em", textAnchor: "middle", fill: INK, style: { fontSize: Math.max(14, S * 0.1), fontWeight: 600 }, children: format(total) }), _jsx("text", { x: c, y: c, dy: "1.6em", textAnchor: "middle", fill: INK_MUTED, children: t("charts.total") })] }) }), _jsx("ul", { className: "fc-legend m-0 min-w-40 flex-1 list-none space-y-1.5 p-0 text-sm", "aria-hidden": "true", children: slices.map((d, i) => (_jsxs("li", { className: "flex items-center gap-2", title: `${tip(d, format)} (${pct(d.value)})`, children: [_jsx("span", { className: "size-2.5 shrink-0 rounded-sm", style: { background: d.color } }), _jsx("span", { className: "min-w-0 flex-1 truncate text-ink", children: d.label }), _jsx("span", { className: "tabular-nums text-ink", children: format(d.value) }), _jsx("span", { className: "w-12 text-right tabular-nums text-ink-muted", children: pct(d.value) })] }, i))) })] })) }));
277
+ }) }), hole > 0.3 && (_jsxs(_Fragment, { children: [_jsx("text", { x: c, y: c, dy: "-0.1em", textAnchor: "middle", fill: INK, style: { fontSize: Math.max(14, S * 0.1), fontWeight: 600 }, children: format(total) }), _jsx("text", { x: c, y: c, dy: "1.6em", textAnchor: "middle", fill: INK_MUTED, children: t("charts.total") })] }))] }) }), legend && _jsx("ul", { className: "fc-legend m-0 min-w-40 flex-1 list-none space-y-1.5 p-0 text-sm", "aria-hidden": "true", children: slices.map((d, i) => (_jsxs("li", { className: "flex items-center gap-2", title: `${tip(d, format)} (${pct(d.value)})`, children: [_jsx("span", { className: "size-2.5 shrink-0 rounded-sm", style: { background: d.color } }), _jsx("span", { className: "min-w-0 flex-1 truncate text-ink", children: d.label }), _jsx("span", { className: "tabular-nums text-ink", children: format(d.value) }), _jsx("span", { className: "w-12 text-right tabular-nums text-ink-muted", children: pct(d.value) })] }, i))) })] })) }));
278
+ }
279
+ // ---- Shared by the charts below ----
280
+ /** Number formatters for a locale (default chart formatting), for callers that build their own. */
281
+ export function chartFormats(locale) {
282
+ return localeFormats(locale);
283
+ }
284
+ /** Line patterns and point shapes per series, so series differ by more than colour. */
285
+ const DASHES = [undefined, "6 4", "2 3", "9 3 2 3"];
286
+ const SHAPES = ["circle", "square", "triangle", "diamond"];
287
+ function Marker({ shape, x, y, r, color, className }) {
288
+ const common = { className, fill: SURFACE, stroke: color, strokeWidth: 2 };
289
+ if (shape === "square")
290
+ return _jsx("rect", { ...common, x: x - r, y: y - r, width: r * 2, height: r * 2 });
291
+ if (shape === "triangle")
292
+ return _jsx("path", { ...common, d: `M${x},${y - r * 1.2}L${x + r * 1.1},${y + r * 0.8}L${x - r * 1.1},${y + r * 0.8}Z` });
293
+ if (shape === "diamond")
294
+ return _jsx("path", { ...common, d: `M${x},${y - r * 1.3}L${x + r * 1.3},${y}L${x},${y + r * 1.3}L${x - r * 1.3},${y}Z` });
295
+ return _jsx("circle", { ...common, cx: x, cy: y, r: r });
296
+ }
297
+ /** A visible legend (series are also named in tooltips and the data table, never by colour alone). */
298
+ export function ChartLegend({ items }) {
299
+ return (_jsx("ul", { className: "forge-chart-legend m-0 mt-3 flex list-none flex-wrap gap-x-4 gap-y-1.5 p-0 text-xs text-ink-muted", children: items.map((it, i) => (_jsxs("li", { className: "flex items-center gap-1.5", children: [it.kind === "line" ? (_jsxs("svg", { width: "22", height: "10", "aria-hidden": "true", focusable: "false", className: "shrink-0", children: [_jsx("line", { x1: "1", x2: "21", y1: "5", y2: "5", stroke: it.color, strokeWidth: 2, strokeDasharray: DASHES[(it.index ?? i) % DASHES.length], strokeLinecap: "round" }), _jsx(Marker, { shape: SHAPES[(it.index ?? i) % SHAPES.length], x: 11, y: 5, r: 2.5, color: it.color })] })) : (_jsx("span", { className: "forge-chart-swatch size-2.5 shrink-0 rounded-sm", style: { background: it.color }, "aria-hidden": "true" })), _jsx("span", { className: "text-ink", children: it.label }), it.note && _jsxs("span", { children: ["(", it.note, ")"] })] }, i))) }));
300
+ }
301
+ export function ChartTable({ title, columns, rows, emptyLabel, caption = false }) {
302
+ const t = useT();
303
+ if (!rows.length)
304
+ return _jsx("div", { className: "flex h-24 items-center justify-center text-sm text-ink-subtle", children: emptyLabel ?? t("charts.noData") });
305
+ return (_jsx("div", { className: "forge-chart-table-wrap max-h-80 overflow-auto", children: _jsxs("table", { className: "forge-chart-table w-full border-collapse text-sm tabular-nums", children: [_jsx("caption", { className: caption ? "mb-2 text-left text-xs text-ink-muted" : "sr-only", children: title }), _jsx("thead", { children: _jsx("tr", { children: columns.map((c, i) => (_jsx("th", { scope: "col", className: i === 0 ? "text-left" : "text-right", children: c }, i))) }) }), _jsx("tbody", { children: rows.map((r, i) => (_jsx("tr", { children: r.cells.map((cell, j) => j === 0 ? (_jsx("th", { scope: "row", className: "text-left font-normal", children: r.href ? (_jsx("a", { href: r.href, className: "forge-focusable text-ink hover:text-link", children: cell })) : (cell) }, j)) : (_jsx("td", { className: "text-right", children: cell }, j))) }, i))) })] }) }));
306
+ }
307
+ /** Indexes of the series a bar chart draws as bars (right-axis series become lines when both axes are used). */
308
+ function barIndexes(series) {
309
+ const hasLeft = series.some((s) => s.axis === "left");
310
+ return series.filter((s) => s.axis === "left" || !hasLeft).map((s) => s.index);
311
+ }
312
+ export function MultiSeriesChart(props) {
313
+ const t = useT();
314
+ const { title, categories, kind = "bar", stacked = false, height = DEFAULT_HEIGHT, emptyLabel } = props;
315
+ const format = props.format ?? localeFormats(useLocale()).number;
316
+ const rightFormat = props.rightFormat ?? format;
317
+ const palette = chartPalette(props.colors);
318
+ const gradientBase = `fc-ms-${useId().replace(/[^\w-]/g, "")}`;
319
+ const series = props.series.map((s, i) => ({ ...s, axis: s.axis ?? "left", color: s.color ?? palette[i % palette.length], index: i, values: s.values.map((v) => (Number.isFinite(v) ? v : 0)) }));
320
+ const fmtOf = (s) => (s.axis === "right" ? rightFormat : format);
321
+ const empty = !categories.length || series.every((s) => s.values.every((v) => v === 0));
322
+ const hasRight = series.some((s) => s.axis === "right") && series.some((s) => s.axis === "left");
323
+ const legend = props.legend ?? series.length > 1;
324
+ const bars = kind === "bar" ? barIndexes(series) : [];
325
+ const kindName = t(kind === "bar" ? "charts.bar" : kind === "area" ? "charts.area" : "charts.line");
326
+ const summary = t("charts.seriesSummary", {
327
+ kind: kindName,
328
+ details: series
329
+ .map((s) => {
330
+ let hi = 0;
331
+ s.values.forEach((v, i) => {
332
+ if (v > (s.values[hi] ?? 0))
333
+ hi = i;
334
+ });
335
+ return `${s.label}: ${t("charts.highest", { value: `${categories[hi]?.label ?? ""} ${fmtOf(s)(s.values[hi] ?? 0)}` })}`;
336
+ })
337
+ .join("; "),
338
+ });
339
+ return (_jsxs("div", { children: [_jsx(ChartFrame, { title: title, height: height, empty: empty, emptyLabel: emptyLabel, columns: [t("charts.label"), ...series.map((s) => s.label)], rows: categories.map((c, i) => [c.label, ...series.map((s) => fmtOf(s)(s.values[i] ?? 0))]), children: (width) => (_jsx(MultiPlot, { width, height, kind, stacked, categories, series, bars, hasRight, format, rightFormat, summary, gradientBase })) }), legend && !empty && (_jsx(ChartLegend, { items: series.map((s) => ({
340
+ label: s.label,
341
+ color: s.color,
342
+ kind: bars.includes(s.index) ? "box" : "line",
343
+ index: s.index,
344
+ ...(hasRight && s.axis === "right" ? { note: t("charts.rightAxis") } : {}),
345
+ })) }))] }));
346
+ }
347
+ function MultiPlot(p) {
348
+ const { width, height, kind, stacked, categories, series, bars, hasRight, format, rightFormat, summary, gradientBase } = p;
349
+ const top = 10, bottom = 24;
350
+ const n = categories.length;
351
+ // Two axes only when both are used; otherwise every series is read on the left.
352
+ const sideOf = (s) => (hasRight ? s.axis : "left");
353
+ const fmtOf = (s) => (sideOf(s) === "right" ? rightFormat : format);
354
+ const stacks = stacked && kind !== "line";
355
+ const sideValues = (side) => {
356
+ const on = series.filter((s) => sideOf(s) === side);
357
+ if (stacks && side === "left")
358
+ return categories.flatMap((_, i) => [on.reduce((a, s) => a + Math.max(0, s.values[i] ?? 0), 0), on.reduce((a, s) => a + Math.min(0, s.values[i] ?? 0), 0)]);
359
+ return on.flatMap((s) => s.values);
360
+ };
361
+ const tickCount = Math.max(2, Math.floor((height - top - bottom) / 40));
362
+ const leftValues = sideValues("left");
363
+ const L = niceDomain(leftValues.length ? leftValues : [0], tickCount);
364
+ const R = hasRight ? niceDomain(sideValues("right"), Math.max(2, L.ticks.length - 1)) : null;
365
+ const left = Math.max(...L.ticks.map((v) => textWidth(format(v)))) + 14;
366
+ const right = R ? Math.max(...R.ticks.map((v) => textWidth(rightFormat(v)))) + 14 : 12;
367
+ const plotW = Math.max(10, width - left - right);
368
+ const yL = linear(L.lo, L.hi, height - bottom, top);
369
+ const yR = R ? linear(R.lo, R.hi, height - bottom, top) : yL;
370
+ const yOf = (s) => (sideOf(s) === "right" ? yR : yL);
371
+ const pointsMode = kind !== "bar";
372
+ const band = plotW / Math.max(1, n);
373
+ const slot = pointsMode && n > 1 ? plotW / (n - 1) : band;
374
+ const xs = categories.map((_, i) => (pointsMode ? (n > 1 ? left + i * slot : left + plotW / 2) : left + band * (i + 0.5)));
375
+ const barSeries = series.filter((s) => bars.includes(s.index));
376
+ const lineSeries = series.filter((s) => !bars.includes(s.index));
377
+ const groupW = Math.min(band * 0.78, (stacks ? 40 : 22 * barSeries.length) + 6);
378
+ const barW = stacks ? Math.min(56, band * 0.68) : Math.max(1, groupW / Math.max(1, barSeries.length));
379
+ const dense = slot < 14;
380
+ const posBase = categories.map(() => 0);
381
+ const negBase = categories.map(() => 0);
382
+ const areaBase = categories.map(() => 0);
383
+ return (_jsxs(Svg, { width: width, height: height, label: summary, className: dense ? "fc-dense" : undefined, children: [_jsx(ValueGrid, { axis: "y", ticks: L.ticks, pos: yL, from: left, to: width - right, labelAt: left - 8, fmt: format }), R && (_jsx("g", { "aria-hidden": "true", children: R.ticks.map((v) => (_jsx("text", { x: width - right + 8, y: yR(v), dy: "0.32em", textAnchor: "start", fill: INK_MUTED, children: rightFormat(v) }, v))) })), _jsx("g", { className: "fc-marks fc-enter", children: barSeries.map((s, si) => categories.map((c, i) => {
384
+ const v = s.values[i] ?? 0;
385
+ const y = yOf(s);
386
+ let y0, y1, x;
387
+ if (stacks) {
388
+ const base = v >= 0 ? posBase[i] : negBase[i];
389
+ y0 = y(v >= 0 ? base + v : base);
390
+ y1 = y(v >= 0 ? base : base + v);
391
+ if (v >= 0)
392
+ posBase[i] = base + v;
393
+ else
394
+ negBase[i] = base + v;
395
+ x = xs[i] - barW / 2;
396
+ }
397
+ else {
398
+ y0 = y(Math.max(0, v));
399
+ y1 = y(Math.min(0, v));
400
+ x = xs[i] - groupW / 2 + si * barW + 1;
401
+ }
402
+ const d = { label: `${s.label}, ${c.label}`, value: v, href: s.hrefs?.[i] ?? undefined };
403
+ const w = Math.max(1, stacks ? barW : barW - 2);
404
+ return (_jsx(Linked, { d: d, fmt: fmtOf(s), children: _jsx("path", { className: "fc-mark", d: barPath(x, y0, w, Math.max(0, y1 - y0), v < 0 ? "b" : "t"), fill: s.color, stroke: stacks ? SURFACE : undefined, strokeWidth: stacks ? 1 : undefined, children: _jsx("title", { children: tip(d, fmtOf(s)) }) }) }, `${si}-${i}`));
405
+ })) }), lineSeries.map((s) => {
406
+ const y = yOf(s);
407
+ const stackArea = kind === "area" && stacks && sideOf(s) === "left";
408
+ const tops = s.values.map((v, i) => (stackArea ? areaBase[i] + v : v));
409
+ const bases = s.values.map((_, i) => (stackArea ? areaBase[i] : 0));
410
+ if (stackArea)
411
+ s.values.forEach((v, i) => (areaBase[i] = areaBase[i] + v));
412
+ const pts = tops.map((v, i) => ({ x: xs[i], y: y(v) }));
413
+ const line = pts.map((pt, i) => `${i ? "L" : "M"}${pt.x},${pt.y}`).join("");
414
+ const back = bases.map((b, i) => ({ x: xs[i], y: y(b) })).reverse();
415
+ const gid = `${gradientBase}-${s.index}`;
416
+ const dash = DASHES[s.index % DASHES.length];
417
+ return (_jsxs("g", { children: [kind === "area" && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gid, x1: "0", x2: "0", y1: "0", y2: "1", children: [_jsx("stop", { offset: "0%", style: { stopColor: s.color, stopOpacity: stackArea ? 0.6 : 0.26 } }), _jsx("stop", { offset: "100%", style: { stopColor: s.color, stopOpacity: stackArea ? 0.4 : 0.02 } })] }) }), _jsx("path", { className: "fc-enter", d: `${line}${back.map((b) => `L${b.x},${b.y}`).join("")}Z`, fill: `url(#${gid})` })] })), _jsx("path", { className: dash ? "fc-enter" : "fc-draw", pathLength: dash ? undefined : 1, d: line, fill: "none", stroke: s.color, strokeWidth: 2, strokeDasharray: dash, strokeLinejoin: "round", strokeLinecap: "round" }), pts.map((pt, i) => {
418
+ const d = { label: `${s.label}, ${categories[i].label}`, value: s.values[i] ?? 0, href: s.hrefs?.[i] ?? undefined };
419
+ return (_jsx(Linked, { d: d, fmt: fmtOf(s), children: _jsxs("g", { className: "fc-point", children: [_jsx("title", { children: tip(d, fmtOf(s)) }), _jsx("circle", { cx: pt.x, cy: pt.y, r: Math.max(4, Math.min(10, slot / 2)), fill: "transparent" }), _jsx(Marker, { className: "fc-dot", shape: SHAPES[s.index % SHAPES.length], x: pt.x, y: pt.y, r: 3.25, color: s.color })] }) }, i));
420
+ })] }, s.index));
421
+ }), _jsx(CategoryAxis, { data: categories.map((c) => ({ label: c.label, value: 0 })), xs: xs, slot: pointsMode ? slot : band, y: height - 6 })] }));
422
+ }
423
+ // ---- FunnelChart ----
424
+ export function FunnelChart(props) {
425
+ const t = useT();
426
+ const formats = localeFormats(useLocale());
427
+ const { title, format = formats.number, emptyLabel } = props;
428
+ const data = clean(props.data);
429
+ const color = props.color ?? chartPalette(props.colors)[0];
430
+ const first = data[0]?.value ?? 0;
431
+ const max = Math.max(0, ...data.map((d) => d.value));
432
+ const share = (v) => (first > 0 ? formats.percent(v / first) : "—");
433
+ const rowH = 34;
434
+ const height = Math.max(rowH * data.length + 4, 60);
435
+ return (_jsx(ChartFrame, { title: title, height: height, empty: isEmpty(data), emptyLabel: emptyLabel, columns: [t("charts.label"), t("charts.value"), t("charts.ofFirst")], rows: data.map((d) => [d.label, format(d.value), share(d.value)]), children: (width) => {
436
+ const chars = Math.max(4, Math.min(Math.max(...data.map((d) => d.label.length)), 18, Math.floor((width * 0.28) / CHAR_W)));
437
+ const labelW = chars * CHAR_W + 12;
438
+ const valueW = Math.max(...data.map((d) => textWidth(`${format(d.value)} · ${share(d.value)}`))) + 12;
439
+ const plotW = Math.max(20, width - labelW - valueW);
440
+ const cx = labelW + plotW / 2;
441
+ return (_jsx(Svg, { width: width, height: height, label: t("charts.funnelSummary", { steps: data.map((d) => `${tip(d, format)} (${share(d.value)})`).join("; ") }), children: _jsx("g", { className: "fc-marks fc-enter", children: data.map((d, i) => {
442
+ const w = max > 0 ? Math.max(2, (d.value / max) * plotW) : 2;
443
+ const y = i * rowH + 2;
444
+ const h = rowH - 6;
445
+ return (_jsx(Linked, { d: d, fmt: format, children: _jsxs("g", { className: "fc-mark", children: [_jsx("title", { children: `${tip(d, format)} (${share(d.value)})` }), _jsx("rect", { x: cx - w / 2, y: y, width: w, height: h, rx: Math.min(6, h / 2), fill: color, fillOpacity: 1 - (i / Math.max(1, data.length)) * 0.45 }), _jsx("text", { x: labelW - 10, y: y + h / 2, dy: "0.32em", textAnchor: "end", fill: INK, children: truncate(d.label, chars) }), _jsxs("text", { x: labelW + plotW + 8, y: y + h / 2, dy: "0.32em", fill: INK_MUTED, children: [_jsx("tspan", { fill: INK, fontWeight: 600, children: format(d.value) }), ` · ${share(d.value)}`] })] }) }, i));
446
+ }) }) }));
447
+ } }));
448
+ }
449
+ const MONDAY = Date.UTC(2024, 0, 1);
450
+ /** Four intensity steps (plus empty): the value is also in each cell's tooltip and the data table. */
451
+ const LEVELS = [0, 0.3, 0.55, 0.8, 1];
452
+ export function HeatmapChart(props) {
453
+ const t = useT();
454
+ const locale = useLocale();
455
+ const { title, by, columns, cells, emptyLabel } = props;
456
+ const format = props.format ?? localeFormats(locale).number;
457
+ const color = props.color ?? CHART_PALETTE[0];
458
+ const tag = locale === "en" ? "en-US" : locale;
459
+ const weekday = (i, style) => new Intl.DateTimeFormat(tag, { weekday: style, timeZone: "UTC" }).format(new Date(MONDAY + i * 86_400_000));
460
+ const hour = (h) => new Intl.DateTimeFormat(tag, { hour: "numeric", timeZone: "UTC" }).format(new Date(MONDAY + Number(h) * 3_600_000));
461
+ const dayLabel = (date) => new Intl.DateTimeFormat(tag, { weekday: "short", day: "numeric", month: "short", year: "numeric", timeZone: "UTC" }).format(new Date(`${date}T00:00:00Z`));
462
+ const monthLabel = (date) => new Intl.DateTimeFormat(tag, { month: "short", timeZone: "UTC" }).format(new Date(`${date}T00:00:00Z`));
463
+ const max = Math.max(0, ...cells.map((c) => c.value));
464
+ const total = cells.reduce((s, c) => s + c.value, 0);
465
+ const cellName = (c) => (by === "hour" ? `${weekday(c.row, "long")} ${hour(c.column)}` : dayLabel(c.date ?? c.column));
466
+ const top = cells.reduce((a, c) => (!a || c.value > a.value ? c : a), undefined);
467
+ const level = (v) => (max > 0 && v > 0 ? Math.min(4, Math.ceil((v / max) * 4)) : 0);
468
+ const tableColumns = by === "hour" ? [t("charts.label"), ...columns.map(hour)] : [t("charts.label"), t("charts.value")];
469
+ const tableRows = by === "hour"
470
+ ? Array.from({ length: 7 }, (_, r) => [weekday(r, "long"), ...columns.map((col) => format(cells.find((c) => c.row === r && c.column === col)?.value ?? 0))])
471
+ : cells.filter((c) => c.value > 0).map((c) => [dayLabel(c.date ?? c.column), format(c.value)]);
472
+ return (_jsxs("div", { children: [_jsx(ChartFrame, { title: title, height: 160, empty: total <= 0, emptyLabel: emptyLabel, columns: tableColumns, rows: tableRows, children: (width) => {
473
+ const labelW = Math.max(...Array.from({ length: 7 }, (_, i) => textWidth(weekday(i, "short")))) + 10;
474
+ const n = Math.max(1, columns.length);
475
+ const gap = by === "day" ? 2 : 3;
476
+ const cell = Math.max(5, Math.min(by === "day" ? 16 : 30, (width - labelW) / n - gap));
477
+ const plotH = 7 * (cell + gap);
478
+ const height = plotH + 22;
479
+ const x = (i) => labelW + i * (cell + gap);
480
+ const y = (r) => r * (cell + gap);
481
+ const colIndex = new Map(columns.map((c, i) => [c, i]));
482
+ const every = cell < 14 ? 6 : 3;
483
+ return (_jsxs(Svg, { width: Math.max(width, x(n)), height: height, label: t("charts.heatmapSummary", { total: format(total), highest: top ? `${cellName(top)}: ${format(top.value)}` : "—" }), children: [_jsxs("g", { "aria-hidden": "true", children: [Array.from({ length: 7 }, (_, r) => r % (cell < 12 ? 2 : 1) === 0 ? (_jsx("text", { x: labelW - 8, y: y(r) + cell / 2, dy: "0.32em", textAnchor: "end", fill: INK_MUTED, children: weekday(r, "short") }, r)) : null), columns.map((col, i) => {
484
+ if (by === "hour")
485
+ return i % every === 0 ? (_jsx("text", { x: x(i) + cell / 2, y: plotH + 14, textAnchor: "middle", fill: INK_MUTED, children: hour(col) }, col)) : null;
486
+ // Calendar: a month label where a month starts.
487
+ const prev = columns[i - 1];
488
+ return !prev || prev.slice(0, 7) !== col.slice(0, 7) ? (_jsx("text", { x: x(i), y: plotH + 14, fill: INK_MUTED, children: monthLabel(col) }, col)) : null;
489
+ })] }), _jsx("g", { className: "fc-marks fc-enter", children: cells.map((c) => {
490
+ const i = colIndex.get(c.column);
491
+ if (i === undefined)
492
+ return null;
493
+ const lv = level(c.value);
494
+ const d = { label: cellName(c), value: c.value, href: c.href };
495
+ return (_jsx(Linked, { d: d, fmt: format, children: _jsx("rect", { className: "fc-mark forge-chart-cell", "data-level": lv, x: x(i), y: y(c.row), width: cell, height: cell, rx: Math.min(3, cell / 4), fill: lv ? color : LINE, fillOpacity: lv ? LEVELS[lv] : 0.7, children: _jsx("title", { children: tip(d, format) }) }) }, `${c.row}-${c.column}`));
496
+ }) })] }));
497
+ } }), total > 0 && (_jsxs("div", { className: "forge-chart-scale mt-2 flex items-center justify-end gap-1 text-xs text-ink-muted", "aria-hidden": "true", children: [_jsx("span", { children: t("charts.less") }), LEVELS.map((o, i) => (_jsx("span", { className: "size-2.5 rounded-sm", style: { background: i ? color : LINE, opacity: i ? o : 0.7 } }, i))), _jsx("span", { children: t("charts.more") })] }))] }));
258
498
  }
259
499
  //# sourceMappingURL=charts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"charts.js","sourceRoot":"","sources":["../src/charts.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"charts.js","sourceRoot":"","sources":["../src/charts.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAA4C,MAAM,OAAO,CAAC;AACrG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAqB/C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAa;IACrC,4CAA4C;IAC5C,2CAA2C;IAC3C,+BAA+B,EAAE,OAAO;IACxC,+BAA+B,EAAE,QAAQ;IACzC,+BAA+B,EAAE,OAAO;IACxC,+BAA+B,EAAE,SAAS;IAC1C,+BAA+B,EAAE,MAAM;IACvC,+BAA+B,EAAE,OAAO;CACzC,CAAC;AAEF,+GAA+G;AAC/G,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC,CAAC,CAAE,CAAC;IAC9C,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC,CAAC,CAAE,CAAC;IAC7C,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;IAC/C,OAAO,eAAe,CAAC,GAAG,CAAC;AAC7B,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AACjE,CAAC;AAMD,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,+CAA+C;AACnE,MAAM,GAAG,GAAG,kBAAkB,CAAC;AAC/B,MAAM,SAAS,GAAG,wBAAwB,CAAC;AAC3C,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAC7C,MAAM,IAAI,GAAG,mBAAmB,CAAC;AACjC,MAAM,OAAO,GAAG,sBAAsB,CAAC;AAIvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+C,CAAC;AACvE,8EAA8E;AAC9E,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;QACjG,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7H,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3D,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAClD,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,MAAM,GAAG,GAAG,CAAC,CAAQ,EAAE,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7E,MAAM,KAAK,GAAG,CAAC,IAAa,EAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/G,MAAM,OAAO,GAAG,CAAC,IAAa,EAAW,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;AAElG,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa,EAAE,GAAW,EAAE,CAAY;IACvE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IAClB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK;YAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK;YAAE,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACxG,CAAC;AAUD,sEAAsE;AACtE,SAAS,UAAU,CAAC,MAAgB,EAAE,KAAa;IACjD,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,KAAK,EAAE;QAAE,EAAE,GAAG,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC7D,6DAA6D;IAC7D,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAAE,IAAI,GAAG,CAAC,CAAC;IACnE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAClC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5G,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,MAAM,GACV,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE,CACnD,CAAC,CAAS,EAAU,EAAE,CACpB,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAEjD,gHAAgH;AAChH,SAAS,UAAU,CAAC,MAAgB,EAAE,IAAY;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,mCAAmC;AAEnC,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;CAeX,CAAC;AAEF,SAAS,WAAW;IAClB,mFAAmF;IACnF,OAAO,gBAAO,IAAI,EAAC,cAAc,EAAC,UAAU,EAAC,SAAS,YAAE,GAAG,GAAS,CAAC;AACvE,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAClD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAO;QACzD,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,IAAI,GAAG,CAAC;gBAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtB,CAAC;AAYD,6FAA6F;AAC7F,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAc;IAC3F,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,OAAO,CACL,kBAAQ,SAAS,EAAC,YAAY,aAC5B,KAAC,WAAW,KAAG,EACf,qBAAY,SAAS,EAAC,SAAS,YAAE,KAAK,GAAc,EACpD,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,QAAQ,YAC9B,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,SAAS,EAAC,0DAA0D,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,YACxF,UAAU,IAAI,CAAC,CAAC,eAAe,CAAC,GAC7B,CACP,CAAC,CAAC,CAAC,CACF,QAAQ,CAAC,KAAK,CAAC,CAChB,GACG,EAEL,CAAC,KAAK,IAAI,CACT,cAAK,SAAS,EAAC,SAAS,YACxB,iBAAO,SAAS,EAAC,SAAS,aACxB,4BAAU,KAAK,GAAW,EAC1B,0BACE,uBAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAY,KAAK,EAAC,KAAK,YAAE,CAAC,IAAjB,CAAC,CAAsB,CAAC,GAAM,GACzD,EACR,0BACG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClB,uBACG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAY,KAAK,EAAC,KAAK,YAAE,IAAI,IAApB,CAAC,CAAyB,CAAC,CAAC,CAAC,uBAAa,IAAI,IAAR,CAAC,CAAa,CAAC,CAAC,IADvF,CAAC,CAEL,CACN,CAAC,GACI,IACF,GACF,CACP,IACM,CACV,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAA6F;IACnJ,OAAO,CACL,cACE,IAAI,EAAC,KAAK,gBACE,KAAK,EACjB,OAAO,EAAE,OAAO,KAAK,IAAI,MAAM,EAAE,EACjC,KAAK,EAAC,MAAM,EACZ,mBAAmB,EAAC,eAAe,EACnC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAEnG,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAkD;IAClF,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACd,YAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAC,SAAS,gBAAa,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,YACzD,QAAQ,GACP,CACL,CAAC,CAAC,CAAC,CACF,4BAAG,QAAQ,GAAI,CAChB,CAAC;AACJ,CAAC;AAED,wHAAwH;AACxH,SAAS,SAAS,CAAC,KAA+H;IAChJ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC3D,OAAO,CACL,2BAAe,MAAM,YAClB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3C,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CACpB,wBACE,eAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,EAAC,YAAY,GAAG,EAClI,eAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAC,IAAI,EAAE,SAAS,YAAG,GAAG,CAAC,CAAC,CAAC,GAAQ,KAF/E,CAAC,CAGL,CACL,CAAC,CAAC,CAAC,CACF,wBACE,eAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,EAAC,YAAY,GAAG,EAClI,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAE,SAAS,YAAG,GAAG,CAAC,CAAC,CAAC,GAAQ,KAFtE,CAAC,CAGL,CACL,CAAC;QACJ,CAAC,CAAC,GACA,CACL,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,SAAS,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAA4D;IACnG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACpE,OAAO,CACL,2BAAe,MAAM,YAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjB,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAChB,gBAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAE,SAAS,aAC/D,0BAAQ,CAAC,CAAC,KAAK,GAAS,EACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAFhB,CAAC,CAGL,CACR,CAAC,CAAC,CAAC,IAAI,CACT,GACC,CACL,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,GAA0B;IACrF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IAClD,MAAM,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC;IACvE,MAAM,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC;IACvE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO;QACL,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAChD,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACtC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACvB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QACxC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACtB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACtC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACtB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACpC,GAAG;KACJ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,GAAW,EAAc,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEvG,qBAAqB;AAErB,MAAM,UAAU,QAAQ,CAAC,KAA+D;IACtF,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC,CAAE,EAAE,GAAG,KAAK,CAAC;IACpI,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,WAAW,GACf,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9G,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,CACL,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,YACnK,CAAC,KAAK,EAAE,EAAE,CACT,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,CAC3B,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAI,CACpG,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAI,CACtG,GAEQ,CACd,CAAC;AACJ,CAAC;AAWD,SAAS,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAa;IACzE,MAAM,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC;IACvC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACtH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,CACL,MAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,aAC7C,KAAC,SAAS,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAI,EACxG,YAAG,SAAS,EAAC,mBAAmB,YAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjB,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,OAAO,CACL,KAAC,MAAM,IAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,YAC5B,eAAM,SAAS,EAAC,SAAS,EAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAE,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,YAC9G,0BAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAS,GACvB,IAHI,CAAC,CAIL,CACV,CAAC;gBACJ,CAAC,CAAC,GACA,EACJ,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,GAAI,IAC3D,CACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAa;IAC3E,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3H,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACvF,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrH,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;IAC9C,OAAO,CACL,MAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,aACxC,KAAC,SAAS,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAI,EACjG,YAAG,SAAS,EAAC,mBAAmB,YAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjB,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBACjC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,OAAO,CACL,KAAC,MAAM,IAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,YAC5B,aAAG,SAAS,EAAC,SAAS,aACpB,0BAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAS,EAC5B,eAAM,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,GAAI,EAC5F,eAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAC,IAAI,EAAE,GAAG,YAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,GAAQ,EACnG,CAAC,MAAM,IAAI,CACV,eAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAE,SAAS,YAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAQ,CAC3E,IACC,IARO,CAAC,CASL,CACV,CAAC;gBACJ,CAAC,CAAC,GACA,IACA,CACP,CAAC;AACJ,CAAC;AAED,sBAAsB;AAEtB,MAAM,UAAU,SAAS,CAAC,KAAsC;IAC9D,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC,CAAE,EAAE,GAAG,KAAK,CAAC;IAClJ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,WAAW,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/D,OAAO,CACL,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,YACnK,CAAC,KAAK,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC;YACxC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACtH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACtE,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACjE,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAChH,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YACxB,OAAO,CACL,MAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,aAC/H,KAAC,SAAS,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAI,EAC1G,IAAI,IAAI,CACP,8BACE,yBACE,0BAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,aACzD,eAAM,MAAM,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAI,EACpE,eAAM,MAAM,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAI,IACvD,GACZ,EACP,eAAM,SAAS,EAAC,UAAU,EAAC,CAAC,EAAE,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,UAAU,GAAG,GAAI,IAC/H,CACJ,EACD,eAAM,SAAS,EAAC,SAAS,EAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAC,OAAO,EAAC,aAAa,EAAC,OAAO,GAAG,EAC5I,sBACG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,KAAC,MAAM,IAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,YAC/B,aAAG,SAAS,EAAC,UAAU,aACrB,0BAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAS,EAC/B,iBAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAC,aAAa,GAAG,EACpF,iBAAQ,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,GAAI,IAChG,IALO,CAAC,CAML,CACV,CAAC,GACA,EACJ,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,GAAI,IAC5E,CACP,CAAC;QACJ,CAAC,GACU,CACd,CAAC;AACJ,CAAC;AAED,uBAAuB;AAEvB,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,SAAS,OAAO,CAAC,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,iDAAiD;IACpG,MAAM,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;AACzH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAkK;IAC3L,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAClH,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAkC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAE,EAAE,CAAC,CAAC,CAAC;IAC3I,IAAI,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACpF,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACzB,OAAO,CACL,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,IAAI,CAAC,EACjB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,EAClE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAEhE,GAAG,EAAE,CAAC,CACL,eAAK,SAAS,EAAC,6CAA6C,aAC1D,cAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,YAC7D,MAAC,GAAG,IAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAC/L,YAAG,SAAS,EAAC,mBAAmB,YAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oCACnB,MAAM,EAAE,GAAG,KAAK,CAAC;oCACjB,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;oCACzC,OAAO,CACL,KAAC,MAAM,IAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,YAC/B,eAAM,SAAS,EAAC,SAAS,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAC,OAAO,YACxJ,0BAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAS,GACjD,IAHI,CAAC,CAIL,CACV,CAAC;gCACJ,CAAC,CAAC,GACA,EACH,IAAI,GAAG,GAAG,IAAI,CACb,8BACE,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,YACrH,MAAM,CAAC,KAAK,CAAC,GACT,EACP,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAE,SAAS,YAAG,CAAC,CAAC,cAAc,CAAC,GAAQ,IAC3F,CACJ,IACG,GACF,EACL,MAAM,IAAI,aAAI,SAAS,EAAC,iEAAiE,iBAAa,MAAM,YAC1G,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,cAAY,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,aAC1F,eAAM,SAAS,EAAC,8BAA8B,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,GAAI,EACjF,eAAM,SAAS,EAAC,kCAAkC,YAAE,CAAC,CAAC,KAAK,GAAQ,EACnE,eAAM,SAAS,EAAC,uBAAuB,YAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAQ,EAChE,eAAM,SAAS,EAAC,6CAA6C,YAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAQ,KAJ5E,CAAC,CAKL,CACN,CAAC,GACC,IACD,CACP,GACU,CACd,CAAC;AACJ,CAAC;AAED,uCAAuC;AAEvC,mGAAmG;AACnG,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,uFAAuF;AACvF,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AACpD,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAEpE,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAA0G;IAC1J,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAC3E,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,kBAAU,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAI,CAAC;IACrG,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,kBAAU,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAI,CAAC;IAC9I,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,kBAAU,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAI,CAAC;IAC7I,OAAO,oBAAY,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAI,CAAC;AACpD,CAAC;AAWD,sGAAsG;AACtG,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAA2B;IAC5D,OAAO,CACL,aAAI,SAAS,EAAC,mGAAmG,YAC9G,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,cAAY,SAAS,EAAC,2BAA2B,aAC9C,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACpB,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,EAAC,SAAS,EAAC,UAAU,aACnF,eAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAC,OAAO,GAAG,EACvJ,KAAC,MAAM,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAI,IAC7F,CACP,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,iDAAiD,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,EAAE,iBAAc,MAAM,GAAG,CACzH,EACD,eAAM,SAAS,EAAC,UAAU,YAAE,EAAE,CAAC,KAAK,GAAQ,EAC3C,EAAE,CAAC,IAAI,IAAI,gCAAQ,EAAE,CAAC,IAAI,SAAS,KAV7B,CAAC,CAWL,CACN,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAaD,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,GAAG,KAAK,EAAmB;IAC/F,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,cAAK,SAAS,EAAC,+DAA+D,YAAE,UAAU,IAAI,CAAC,CAAC,eAAe,CAAC,GAAO,CAAC;IACjJ,OAAO,CACL,cAAK,SAAS,EAAC,+CAA+C,YAC5D,iBAAO,SAAS,EAAC,+DAA+D,aAC9E,kBAAS,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,SAAS,YAAG,KAAK,GAAW,EACpG,0BACE,uBACG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,aAAY,KAAK,EAAC,KAAK,EAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,YACpE,CAAC,IADK,CAAC,CAEL,CACN,CAAC,GACC,GACC,EACR,0BACG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClB,uBACG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACvB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACR,aAAY,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,uBAAuB,YACtD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACR,YAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAC,0CAA0C,YAClE,IAAI,GACH,CACL,CAAC,CAAC,CAAC,CACF,IAAI,CACL,IAPM,CAAC,CAQL,CACN,CAAC,CAAC,CAAC,CACF,aAAY,SAAS,EAAC,YAAY,YAC/B,IAAI,IADE,CAAC,CAEL,CACN,CACF,IAjBM,CAAC,CAkBL,CACN,CAAC,GACI,IACF,GACJ,CACP,CAAC;AACJ,CAAC;AA+BD,gHAAgH;AAChH,SAAS,UAAU,CAAC,MAAyC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACxG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,SAAS,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnM,MAAM,KAAK,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpG,MAAM,OAAO,GAAG,CAAC,CAAC,sBAAsB,EAAE;QACxC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,MAAM;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAAE,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1H,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CACL,0BACE,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAC3D,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAE1F,CAAC,KAAK,EAAE,EAAE,CAAC,CACV,KAAC,SAAS,IACF,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAClH,CACH,GACU,EACZ,MAAM,IAAI,CAAC,KAAK,IAAI,CACnB,KAAC,WAAW,IACV,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;oBAC7C,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAC,CAAC,GACH,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAID,SAAS,SAAS,CAAC,CAalB;IACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IAC3H,MAAM,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAC5B,gFAAgF;IAChF,MAAM,MAAM,GAAG,CAAC,CAAa,EAAoB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC;IAC1C,MAAM,UAAU,GAAG,CAAC,IAAsB,EAAE,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3L,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,GAAG,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,KAAK,KAAK,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3H,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACtG,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,CACL,MAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,aAC1F,KAAC,SAAS,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAI,EAC7G,CAAC,IAAI,CACJ,2BAAe,MAAM,YAClB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,eAAc,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAC,UAAU,EAAC,OAAO,EAAC,IAAI,EAAE,SAAS,YACzF,WAAW,CAAC,CAAC,CAAC,IADN,CAAC,CAEL,CACR,CAAC,GACA,CACL,EACD,YAAG,SAAS,EAAC,mBAAmB,YAC7B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CACvB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBACjB,IAAI,EAAU,EAAE,EAAU,EAAE,CAAS,CAAC;oBACtC,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;wBAChD,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;wBACjC,IAAI,CAAC,IAAI,CAAC;4BAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;;4BAC7B,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;wBAC3B,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,GAAG,IAAI,GAAG,CAAC,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACvB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACvB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM,CAAC,GAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;oBAChG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;oBAChD,OAAO,CACL,KAAC,MAAM,IAAoB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,YAC5C,eAAM,SAAS,EAAC,SAAS,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAC/K,0BAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAS,GAC5B,IAHI,GAAG,EAAE,IAAI,CAAC,EAAE,CAIhB,CACV,CAAC;gBACJ,CAAC,CAAC,CACH,GACC,EACH,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,SAAS,GAAG,IAAI,KAAK,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;gBACpE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,IAAI,SAAS;oBAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACrE,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7C,OAAO,CACL,wBACG,IAAI,KAAK,MAAM,IAAI,CAClB,8BACE,yBACE,0BAAgB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,aAClD,eAAM,MAAM,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAI,EACxF,eAAM,MAAM,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAI,IAC3E,GACZ,EACP,eAAM,SAAS,EAAC,UAAU,EAAC,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,GAAG,GAAG,GAAI,IAC9G,CACJ,EAED,eAAM,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAC,OAAO,EAAC,aAAa,EAAC,OAAO,GAAG,EAC7M,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;4BACjB,MAAM,CAAC,GAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;4BAC5H,OAAO,CACL,KAAC,MAAM,IAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,YACjC,aAAG,SAAS,EAAC,UAAU,aACrB,0BAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAS,EACjC,iBAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAC,aAAa,GAAG,EACzF,KAAC,MAAM,IAAC,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,IAC/G,IALO,CAAC,CAML,CACV,CAAC;wBACJ,CAAC,CAAC,KAzBI,CAAC,CAAC,KAAK,CA0BX,CACL,CAAC;YACJ,CAAC,CAAC,EACF,KAAC,YAAY,IAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,GAAI,IAChI,CACP,CAAC;AACJ,CAAC;AAED,wBAAwB;AAExB,MAAM,UAAU,WAAW,CAAC,KAAkD;IAC5E,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,CACL,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EACpB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,EACpE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAEhE,CAAC,KAAK,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3H,MAAM,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACtG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;YACpD,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YAC9B,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YACjJ,YAAG,SAAS,EAAC,mBAAmB,YAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACjB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;wBACvB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;wBACnB,OAAO,CACL,KAAC,MAAM,IAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,YAC/B,aAAG,SAAS,EAAC,SAAS,aACpB,0BAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAS,EACxD,eAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAI,EAC/I,eAAM,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAC,IAAI,EAAE,GAAG,YACvE,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,GACpB,EACP,gBAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAE,SAAS,aACpE,gBAAO,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,YAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GACV,EACP,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAClB,IACL,IAbO,CAAC,CAcL,CACV,CAAC;oBACJ,CAAC,CAAC,GACA,GACA,CACP,CAAC;QACJ,CAAC,GACU,CACd,CAAC;AACJ,CAAC;AAyBD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,sGAAsG;AACtG,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAEtC,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAE,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,KAAuB,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IACpK,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAChJ,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC;IAC9L,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC;IAC7I,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACpI,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1G,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,YAAY,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IACxH,MAAM,SAAS,GACb,EAAE,KAAK,MAAM;QACX,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5J,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnG,OAAO,CACL,0BACE,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,YACrH,CAAC,KAAK,EAAE,EAAE;oBACT,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACrG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,GAAG,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACvF,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;oBAC/B,MAAM,MAAM,GAAG,KAAK,GAAG,EAAE,CAAC;oBAC1B,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;oBACnD,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;oBAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,OAAO,CACL,MAAC,GAAG,IAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,aAC3K,4BAAe,MAAM,aAClB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9B,eAAc,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAC,IAAI,EAAE,SAAS,YAC1F,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,IADX,CAAC,CAEL,CACR,CAAC,CAAC,CAAC,IAAI,CACT,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;wCACtB,IAAI,EAAE,KAAK,MAAM;4CACf,OAAO,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,eAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAE,SAAS,YACnF,IAAI,CAAC,GAAG,CAAC,IADD,GAAG,CAEP,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;wCACX,gDAAgD;wCAChD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wCAC5B,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrD,eAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,YACpD,UAAU,CAAC,GAAG,CAAC,IADP,GAAG,CAEP,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;oCACX,CAAC,CAAC,IACA,EACJ,YAAG,SAAS,EAAC,mBAAmB,YAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oCACf,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oCACjC,IAAI,CAAC,KAAK,SAAS;wCAAE,OAAO,IAAI,CAAC;oCACjC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oCAC1B,MAAM,CAAC,GAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oCACtE,OAAO,CACL,KAAC,MAAM,IAA8B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,YACpD,eAAM,SAAS,EAAC,0BAA0B,gBAAa,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,YAChM,0BAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAS,GAC1B,IAHI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAI1B,CACV,CAAC;gCACJ,CAAC,CAAC,GACA,IACA,CACP,CAAC;gBACJ,CAAC,GACU,EACZ,KAAK,GAAG,CAAC,IAAI,CACZ,eAAK,SAAS,EAAC,mFAAmF,iBAAa,MAAM,aACnH,yBAAO,CAAC,CAAC,aAAa,CAAC,GAAQ,EAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,eAAc,SAAS,EAAC,qBAAqB,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAhG,CAAC,CAAmG,CAChH,CAAC,EACF,yBAAO,CAAC,CAAC,aAAa,CAAC,GAAQ,IAC3B,CACP,IACG,CACP,CAAC;AACJ,CAAC"}