@aiwayds/dsh-tui-pi 0.4.0 → 0.4.2

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.
@@ -1,40 +1,41 @@
1
1
  /**
2
- * Live widgets: the Todos boxed panel pinned ABOVE the chat input, and the
3
- * running-subagent activity merged into the last-request area BELOW the
4
- * editor. Two separate plain containers keep the two live surfaces apart:
2
+ * Live widgets every fixed live surface around the chat window:
5
3
  *
6
- * - `todosDoc` the dock slot above the input (`ui.widgets`): a single
7
- * bordered Todos panel (top border + header row + tree body rows + bottom
8
- * border, same chrome as the thinking/tool panels). Auto height it
9
- * renders zero rows while empty and grows to its content while the model
10
- * has todos.
11
- * - `activityDoc` the lastRequest container below the editor
12
- * (`ui.lastRequest`): the ` ● <last request>` line (persisting across
13
- * agent churn) followed by one compact line PER RUNNING agent. NO box
14
- * chrome, NO `● Agents` header, NO provider just
15
- * `├─ ⠋ <name> · ↻N≤M · 21k/1m · 13.6s · <latest output>`, the `├─ ` /
16
- * `└─ ` prefix in the same column as the todo rows and the request ` ● `
17
- * (the last running agent closes the list with `└─ `). Auto height — it
18
- * collapses to zero rows when both the last-request line is cleared and no
19
- * agent runs.
4
+ * - `todosDoc` (the widgets slot ABOVE the chat input) hosts THREE pinned
5
+ * panels: the bordered Todos table, the ThinkPanel and the ToolPanel
6
+ * (src/activity.ts). Think/tool activity NEVER creates transcript blocks
7
+ * one panel of each kind exists for the whole run, every event
8
+ * refreshes it in place, and a panel with no content renders zero rows.
9
+ * - `activityDoc` (the lastRequest container BELOW the editor): the
10
+ * ` ● <last request>` line (persisting across agent churn) followed by one
11
+ * compact line PER RUNNING agent `├─ <name> · ↻N≤M · 21k/1m · 13.6s ·
12
+ * <content tail>`. The tail is the child's latest CONTENT line (assistant
13
+ * text/reasoning, live-refreshed never a tool name) and takes whatever
14
+ * the row has left, truncated at the right edge: one row, no wrap.
20
15
  *
21
- * Show-when-content, clear-when-done: the Todos panel appears only while it
22
- * has content and disappears when it empties (an all-completed snapshot or
23
- * `/new`); an agent line renders only while its child RUNS (a settled child
24
- * drops off immediately). `clear()` (/new) drops the Todos panel and the
25
- * agent lines but preserves the last-request echo.
16
+ * Event flow: index.ts routes every parent-session event through
17
+ * `applyEvent` (think/tool phase machine) and todo/write snapshots through
18
+ * `renderTodos`; the bridge's onLive fold feeds `renderAgents`. Phase rules
19
+ * for the panels: a reasoning delta shows the think panel; a tool call
20
+ * refreshes the tool panel (pending); a matching result settles it (status
21
+ * icon, frozen time, result tail); a text delta / assembled message / user
22
+ * message / turn end hides the finished phases. `clear()` (/new, resume)
23
+ * hides both panels.
26
24
  *
27
- * Live refresh: `tickLive` (the AGENT_TICK_MS timer in index.ts) advances the
28
- * spinner and re-reads the elapsed clock; it is a no-op while nothing runs.
29
- * `setTheme` recolors in place on a theme hot-switch (no replay buffer — the
30
- * widget is live state, not transcript history).
25
+ * Live refresh: `tickLive` (the AGENT_TICK_MS timer in index.ts) advances
26
+ * the spinner and repaints while any agent runs OR either panel is visible
27
+ * (the elapsed columns re-read the clock each frame); no-op otherwise.
28
+ * `setTheme` recolors in place on a theme hot-switch (the panels re-render
29
+ * each frame through their theme getters — no replay buffer, they are live
30
+ * state, not transcript history).
31
31
  */
32
32
  import { Container, Text } from '@earendil-works/pi-tui';
33
- import { panelBoxWidth, clipPanelLine } from "./messages.js";
33
+ import { DEFAULT_PANEL_HEIGHT, ThinkPanel, ToolPanel, borderedRow, clipPanelLine, panelBottomBorder, panelBoxWidth, panelTopBorder, } from "./activity.js";
34
34
  import { columnWidths, padCell, TABLE_SEP } from "./panels.js";
35
+ import { SPAWN_TOOLS } from "./subagent-policy.js";
35
36
  import { ansiFg, RESET } from "./theme/index.js";
36
37
  import { clipToWidth, visibleWidth } from "./text.js";
37
- /** Refresh interval of the live running-agent lines (spinner + elapsed). */
38
+ /** Refresh interval of the live surfaces (spinner + elapsed columns). */
38
39
  export const AGENT_TICK_MS = 100;
39
40
  /** Braille spinner cycle; the frame index advances once per tick. */
40
41
  export const AGENT_SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
@@ -51,15 +52,6 @@ export function fmtCompact(n) {
51
52
  return `${Math.floor(n / 1_000)}k`;
52
53
  return String(n);
53
54
  }
54
- /** One bordered row of the Todos panel: `│ ` + inner + ` │` (no trailing RESET). */
55
- function borderedRow(boxWidth, borderFg, inner) {
56
- const pad = Math.max(0, boxWidth - 4 - visibleWidth(inner));
57
- return `${borderFg}│ ${inner}${' '.repeat(pad)}${borderFg} │`;
58
- }
59
- /** Top border line (`┌─…─┐`), `boxWidth` columns wide. */
60
- function panelTopBorder(boxWidth, borderFg) {
61
- return `${borderFg}┌${'─'.repeat(Math.max(0, boxWidth - 2))}┐`;
62
- }
63
55
  /** The todos table columns: right-aligned row number, status icon, flex content. */
64
56
  const TODO_COLUMNS = [
65
57
  { key: 'idx', title: '#', width: 3, align: 'right' },
@@ -124,14 +116,10 @@ export class TodosPanel {
124
116
  const statusStyle = (text) => ansiFg(color) + text + RESET;
125
117
  out.push(borderedRow(boxWidth, borderFg, subtle(idxCell) + TABLE_SEP + statusStyle(iconCell) + TABLE_SEP + statusStyle(contentCell)));
126
118
  }
127
- out.push(panelBottomRow(boxWidth, borderFg));
119
+ out.push(panelBottomBorder(boxWidth, borderFg));
128
120
  return out;
129
121
  }
130
122
  }
131
- /** Bottom border line (`└─…─┘`), `boxWidth` columns wide. */
132
- function panelBottomRow(boxWidth, borderFg) {
133
- return `${borderFg}└${'─'.repeat(Math.max(0, boxWidth - 2))}┘`;
134
- }
135
123
  /** Clip one todo's content (a possibly multiline model string) to one row. */
136
124
  function padClip(content, width) {
137
125
  const flat = content.replace(/\r/g, '').replace(/\n/g, ' ').trim();
@@ -144,6 +132,9 @@ export class LiveWidgets {
144
132
  requestRender;
145
133
  /** The self-drawing Todos table, mounted once in `todosDoc`. */
146
134
  todosPanel;
135
+ /** The fixed think/tool status panels, mounted once in `todosDoc`. */
136
+ thinkPanel;
137
+ toolPanel;
147
138
  /** Latest subagent views from the bridge's onLive fold. */
148
139
  liveAgents = [];
149
140
  /** The merged running-agent Text in `activityDoc`, replaced on rebuild. */
@@ -155,21 +146,30 @@ export class LiveWidgets {
155
146
  /** Spinner frame counter, advanced by tickLive while any agent runs. */
156
147
  spinnerFrame = 0;
157
148
  /**
158
- * @param todosDoc The dock slot ABOVE the chat input - the Todos table
159
- * panel lives here.
149
+ * @param todosDoc The dock slot ABOVE the chat input - the Todos table and
150
+ * the think/tool status panels live here.
160
151
  * @param activityDoc The lastRequest container BELOW the editor - the ` ● `
161
152
  * last-request line plus the compact running-agent lines live here.
153
+ * @param panelHeight Configured think/tool panel height ('1' one row, or a
154
+ * boxed budget - see activity.ts).
162
155
  */
163
- constructor(todosDoc, activityDoc, theme, requestRender) {
156
+ constructor(todosDoc, activityDoc, theme, requestRender, panelHeight = DEFAULT_PANEL_HEIGHT) {
164
157
  this.todosDoc = todosDoc;
165
158
  this.activityDoc = activityDoc;
166
159
  this.theme = theme;
167
160
  this.requestRender = requestRender;
168
- // Mounted once: the panel re-renders at the live width every frame and
169
- // reads the theme through the getter, so theme swaps and terminal
170
- // resizes need no rebuild wiring here.
161
+ // Mounted once, in display order: Todos (persistent plan) above the
162
+ // transient think/tool activity. The panels re-render at the live width
163
+ // every frame and read the theme through their getters, so theme swaps
164
+ // and terminal resizes need no rebuild wiring here.
171
165
  this.todosPanel = new TodosPanel(() => this.theme);
166
+ this.thinkPanel = new ThinkPanel(() => this.theme);
167
+ this.toolPanel = new ToolPanel(() => this.theme);
168
+ this.thinkPanel.setHeight(panelHeight);
169
+ this.toolPanel.setHeight(panelHeight);
172
170
  todosDoc.addChild(this.todosPanel);
171
+ todosDoc.addChild(this.thinkPanel);
172
+ todosDoc.addChild(this.toolPanel);
173
173
  }
174
174
  /**
175
175
  * Render the ` ● <text>` last-request line in `activityDoc`, UNDER which the
@@ -213,25 +213,105 @@ export class LiveWidgets {
213
213
  this.todosPanel.setTodos(todos);
214
214
  this.requestRender();
215
215
  }
216
+ /**
217
+ * One parent-session session event, driving the think/tool phase machine:
218
+ * a reasoning delta opens/feeds the think panel; a tool call refreshes the
219
+ * tool panel (pending, replacing any tracked tool) — except delegation
220
+ * spawn tools (`use_agent`/`subagent`/`workflow`/`ralph`), whose children
221
+ * already render in the running-agent lines below the editor and never
222
+ * open a tool block; a matching result settles the tracked tool; a text
223
+ * delta, an assembled assistant message, a user message or a turn end
224
+ * hides the finished phases. Called for every event AND for replayed
225
+ * history (a resumed session replays its tool calls; its final turn/end
226
+ * leaves the panels hidden).
227
+ */
228
+ applyEvent(event) {
229
+ switch (event.type) {
230
+ case 'assistant/chunk': {
231
+ const chunk = event.data.chunk;
232
+ if (chunk.type === 'reasoning-delta') {
233
+ if ((chunk.text ?? '') !== '') {
234
+ this.thinkPanel.feed(chunk.text);
235
+ this.toolPanel.hide();
236
+ }
237
+ }
238
+ else if (chunk.type === 'text-delta' && (chunk.text ?? '') !== '') {
239
+ // The answer streams into the transcript — the panels are done.
240
+ this.thinkPanel.hide();
241
+ this.toolPanel.hide();
242
+ }
243
+ break;
244
+ }
245
+ case 'assistant/message':
246
+ this.thinkPanel.hide();
247
+ break;
248
+ case 'tool/call':
249
+ // Delegation spawn tools (`use_agent`, `subagent`, `workflow`, …)
250
+ // surface their children in the running-agent lines BELOW the editor
251
+ // — showing them again as a tool block above it would duplicate the
252
+ // display. They never open the tool panel, and a stale settled tool
253
+ // is cleared when the delegation starts.
254
+ if (SPAWN_TOOLS.includes(event.data.name)) {
255
+ this.toolPanel.hide();
256
+ }
257
+ else {
258
+ this.toolPanel.begin(event.data.callId, event.data.name, event.data.arguments);
259
+ }
260
+ this.thinkPanel.hide();
261
+ break;
262
+ case 'tool/result': {
263
+ const block = event.data.message.content[0];
264
+ this.toolPanel.settle(block?.toolCallId ?? '', {
265
+ error: event.data.error === undefined
266
+ ? undefined
267
+ : { name: event.data.error.name, code: event.data.error.code },
268
+ block: block === undefined ? undefined : { isError: block.isError, content: block.content },
269
+ });
270
+ break;
271
+ }
272
+ case 'user/message':
273
+ case 'turn/end':
274
+ this.thinkPanel.hide();
275
+ this.toolPanel.hide();
276
+ break;
277
+ default:
278
+ break;
279
+ }
280
+ this.requestRender();
281
+ }
216
282
  /** Replace the subagent views (the bridge's onLive fold). */
217
283
  renderAgents(agents) {
218
284
  this.liveAgents = agents;
219
285
  this.rebuild();
220
286
  }
221
287
  /**
222
- * Live refresh ~10x/sec while any subagent runs: advance the spinner and
223
- * repaint (the elapsed column re-reads Date.now()). No-op when nothing runs
224
- * — the activity area then holds its final (empty) state.
288
+ * Live refresh ~10x/sec while any subagent runs or either status panel is
289
+ * visible: advance the spinner and repaint (the elapsed columns re-read
290
+ * Date.now() each frame). No-op otherwise — the activity area then holds
291
+ * its final (empty) state.
225
292
  */
226
293
  tickLive() {
227
- if (!this.liveAgents.some(view => view.outcome === undefined))
294
+ const agentsLive = this.liveAgents.some(view => view.outcome === undefined);
295
+ const panelsLive = this.thinkPanel.isVisible() || this.toolPanel.isVisible();
296
+ if (!agentsLive && !panelsLive)
228
297
  return;
229
- this.spinnerFrame += 1;
298
+ if (agentsLive)
299
+ this.spinnerFrame += 1;
230
300
  this.rebuild();
231
301
  }
232
- /** Recolor the widget (Todos panel, ● line and agent lines) under a theme
233
- * hot-switch (no-op on the same bundle). The Todos panel reads the theme
234
- * through its getter, so the swap needs only a repaint. */
302
+ /**
303
+ * Switch the configured think/tool panel height (the settings watch sink).
304
+ * The panels re-render at the new budget on the next frame — no rebuild
305
+ * wiring, they are self-drawing.
306
+ */
307
+ setPanelHeight(panelHeight) {
308
+ this.thinkPanel.setHeight(panelHeight);
309
+ this.toolPanel.setHeight(panelHeight);
310
+ this.requestRender();
311
+ }
312
+ /** Recolor the widget (Todos panel, think/tool panels, ● line and agent
313
+ * lines) under a theme hot-switch (no-op on the same bundle). The panels
314
+ * read the theme through their getters, so the swap needs only a repaint. */
235
315
  setTheme(theme) {
236
316
  if (theme === this.theme)
237
317
  return;
@@ -245,13 +325,15 @@ export class LiveWidgets {
245
325
  }
246
326
  /**
247
327
  * Drop everything except the last-request echo (`/new`): clears the Todos
248
- * panel and the running-agent lines, keeps the ` ● ` line. The bridge also
249
- * fires `renderAgents([])`.
328
+ * panel, hides the think/tool panels and drops the running-agent lines,
329
+ * keeps the ` ● ` line. The bridge also fires `renderAgents([])`.
250
330
  */
251
331
  clear() {
252
332
  this.liveAgents = [];
253
333
  this.spinnerFrame = 0;
254
334
  this.todosPanel.setTodos([]);
335
+ this.thinkPanel.hide();
336
+ this.toolPanel.hide();
255
337
  if (this.agentsText !== undefined) {
256
338
  this.activityDoc.removeChild(this.agentsText);
257
339
  this.agentsText = undefined;
@@ -262,8 +344,8 @@ export class LiveWidgets {
262
344
  * Rebuild the running-agent surface of `activityDoc`: the ` ● ` line
263
345
  * (managed separately, persists) followed by ONE Text holding the compact
264
346
  * running-agent lines joined by '\n' (or nothing when no agent runs - the
265
- * slot collapses to the ● line). The Todos table panel is NOT rebuilt
266
- * here - it is a self-drawing component that re-renders each frame.
347
+ * slot collapses to the ● line). The pinned panels are NOT rebuilt here -
348
+ * they are self-drawing components that re-render each frame.
267
349
  * Clear-when-done: the agent lines hide once no child is running.
268
350
  */
269
351
  rebuild() {
@@ -289,16 +371,15 @@ export class LiveWidgets {
289
371
  /**
290
372
  * One compact running-agent line for the last-request area, todo-style:
291
373
  * `├─ `/`└─ ` connector (same column as the todo rows and the request
292
- * ` ● `) + spinner + the agent NAME (`view.label`, matching the boxed
293
- * panel's main line) + the exact meta that main line showed (`↻retries≤max`,
294
- * compact `tokens[/contextWindow]`, elapsed) + the child's latest output
295
- * line when one exists (` · <tail>`, so the user sees it is alive). NO box
296
- * chrome, NO provider the name is the prominent element; the last running
297
- * agent closes the list with `└─ `. The label is the only unbounded field;
298
- * it is clipped against a budget measured from the terminal width so the
299
- * whole plain line (prefix included) fits, then the assembled plain line is
300
- * clipped to the terminal width BEFORE any ANSI is applied (clipToWidth
301
- * counts SGR fragments as visible columns — style last).
374
+ * ` ● `) + spinner + the agent NAME (`view.label`) + the exact meta the
375
+ * boxed board showed (`↻retries≤max`, compact `tokens[/contextWindow]`,
376
+ * elapsed) + the child's latest CONTENT line — live-refreshed assistant
377
+ * text/reasoning, NEVER a tool name as the ` · <tail>` suffix. NO box
378
+ * chrome, NO provider. Layout against the terminal width: the name caps at
379
+ * 40% of the space the meta leaves; the tail takes EVERYTHING else and is
380
+ * truncated at the right edge (single row, never wrapped). The assembled
381
+ * plain line is clipped to the terminal width BEFORE any ANSI is applied
382
+ * (clipToWidth counts SGR fragments as visible columns style last).
302
383
  */
303
384
  compactAgentLine(view, isLast) {
304
385
  // Todo-style tree connector: `├─ ` for non-final rows, `└─ ` for the last
@@ -319,46 +400,37 @@ export class LiveWidgets {
319
400
  }
320
401
  const elapsed = (Date.now() - view.startedAt) / 1000;
321
402
  metaParts.push(`${elapsed.toFixed(1)}s`);
322
- let metaPlain = ' · ' + metaParts.join(' · ');
323
- // Tail: the child's latest visible output line, appended after the elapsed
324
- // column so the user knows it is alive. Budget ≤30% of the terminal width
325
- // (clamped 20..60 cols); when the folded line is wider, clip to
326
- // tailBudget-2 and end with `..` (clipToWidth's own `…` is stripped).
327
- const lastLine = view.lastLine;
328
- if (lastLine !== undefined && lastLine !== '') {
329
- const folded = lastLine.replace(/\s+/g, ' ').trim();
330
- if (folded !== '') {
331
- const tailBudget = Math.min(60, Math.max(20, Math.floor(width * 0.3)));
332
- if (visibleWidth(folded) > tailBudget) {
333
- const clipped = clipToWidth(folded, tailBudget - 2).replace(/…$/, '');
334
- metaPlain += ` · ${clipped}..`;
335
- }
336
- else {
337
- metaPlain += ` · ${folded}`;
338
- }
339
- }
340
- }
403
+ const metaPlain = ' · ' + metaParts.join(' · ');
341
404
  // Defensive: never render an empty name — fall back to `subagent`.
342
405
  const rawLabel = clipPanelLine(view.label, 0).replace(/\r/g, '').trim();
343
406
  const namePlain = rawLabel === ''
344
407
  ? 'subagent'
345
408
  : rawLabel;
346
409
  // Fixed chrome: prefix (3) + spinner (1) + following space (1) + a safety
347
- // column. The label takes the remainder of the width budget after meta.
410
+ // column. The name caps at 40% of what the meta leaves; the tail gets the
411
+ // remainder of the width budget.
348
412
  const fixed = visibleWidth(PREFIX) + 1 + 1 + 1;
349
- const nameBudget = width - fixed - visibleWidth(metaPlain);
350
- const nameClipped = clipToWidth(namePlain, Math.max(0, nameBudget));
413
+ const avail = width - fixed - visibleWidth(metaPlain);
414
+ const nameCap = Math.max(10, Math.floor(avail * 0.4));
415
+ const nameClipped = clipToWidth(namePlain, Math.max(0, nameCap));
416
+ const tailBudget = avail - visibleWidth(nameClipped) - 3;
417
+ let tailText = '';
418
+ const folded = view.lastLine === undefined ? '' : view.lastLine.replace(/\s+/g, ' ').trim();
419
+ if (folded !== '' && tailBudget >= 4) {
420
+ tailText = ` · ${clipToWidth(folded, tailBudget - 3)}`;
421
+ }
351
422
  // The full PLAIN line, clipped to the terminal width BEFORE styling.
352
- const plain = PREFIX + glyph + ' ' + nameClipped + metaPlain;
423
+ const plain = PREFIX + glyph + ' ' + nameClipped + metaPlain + tailText;
353
424
  const clipped = clipToWidth(plain, width);
354
425
  // Style segments from the (clipped, guaranteed-identical-when-it-fits)
355
426
  // plain pieces: connector subtle, spinner muted, NAME default (prominent),
356
- // meta (incl. the tail) subtle.
427
+ // meta subtle, content tail muted (the live signal the user watches).
357
428
  const connector = ansiFg(this.theme.palette.fgSubtle) + PREFIX + RESET;
358
429
  const spinner = ansiFg(this.theme.palette.fgMuted) + glyph + RESET;
359
430
  const metaStyled = ansiFg(this.theme.palette.fgSubtle) + metaPlain + RESET;
431
+ const tailStyled = ansiFg(this.theme.palette.fgMuted) + tailText + RESET;
360
432
  const nameStyled = ansiFg(this.theme.palette.fgDefault) + nameClipped + RESET;
361
- const base = connector + spinner + ' ' + nameStyled + metaStyled;
433
+ const base = connector + spinner + ' ' + nameStyled + metaStyled + tailStyled;
362
434
  // If clipping truncated the plain line (pathological meta), re-clip the
363
435
  // assembled styled line's visible width too; otherwise base is exact.
364
436
  if (visibleWidth(clipped) < visibleWidth(plain)) {
@@ -1 +1 @@
1
- {"version":3,"file":"live-widgets.js","sourceRoot":"","sources":["../src/live-widgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-widgets.js","sourceRoot":"","sources":["../src/live-widgets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAkB,MAAM,wBAAwB,CAAA;AAExE,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAiB,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAErD,yEAAyE;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;AAChC,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAE/F;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QACvB,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAA;IACjF,CAAC;IACD,IAAI,CAAC,IAAI,KAAK;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAA;IAClD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAED,oFAAoF;AACpF,MAAM,YAAY,GAA2B;IAC3C,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;IACpD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;IACvC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;CAC9C,CAAA;AAED,kEAAkE;AAClE,SAAS,QAAQ,CAAC,MAAc;IAC9B,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,GAAG,CAAA;IACtC,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,GAAG,CAAA;IACxC,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IACb,KAAK,GAAmD,EAAE,CAAA;IACjD,QAAQ,CAAgB;IAEzC,YAAY,QAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,UAAU,KAA0E,CAAC;IAErF,sEAAsE;IACtE,QAAQ,CAAC,KAAqD;QAC5D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;YAAE,OAAO,EAAE,CAAA;QAC/F,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAA;QACvB,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;QACxC,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAA;QAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QACxD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;QAElE,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAA;QAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,KAAK;cACrD,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;QAE9F,mEAAmE;QACnE,GAAG,CAAC,IAAI,CAAC,WAAW,CAClB,QAAQ,EACR,QAAQ,EACR,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CACnG,CAAC,CAAA;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC1B,wEAAwE;YACxE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;YACvD,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW;gBACvC,CAAC,CAAC,CAAC,CAAC,OAAO;gBACX,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;YAC5D,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;YAClE,GAAG,CAAC,IAAI,CAAC,WAAW,CAClB,QAAQ,EACR,QAAQ,EACR,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAC3F,CAAC,CAAA;QACJ,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC/C,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAED,8EAA8E;AAC9E,SAAS,OAAO,CAAC,OAAe,EAAE,KAAa;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAClE,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,OAAO,WAAW;IACL,QAAQ,CAAW;IACnB,WAAW,CAAW;IAC/B,KAAK,CAAU;IACN,aAAa,CAAY;IAC1C,gEAAgE;IAC/C,UAAU,CAAY;IACvC,sEAAsE;IACrD,UAAU,CAAY;IACtB,SAAS,CAAW;IACrC,2DAA2D;IACnD,UAAU,GAAyB,EAAE,CAAA;IAC7C,2EAA2E;IACnE,UAAU,CAAkB;IACpC,6EAA6E;IACrE,WAAW,CAAkB;IACrC,4EAA4E;IACpE,cAAc,CAAoB;IAC1C,wEAAwE;IAChE,YAAY,GAAG,CAAC,CAAA;IAExB;;;;;;;OAOG;IACH,YACE,QAAmB,EACnB,WAAsB,EACtB,KAAe,EACf,aAAyB,EACzB,cAA2B,oBAAoB;QAE/C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,oEAAoE;QACpE,wEAAwE;QACxE,uEAAuE;QACvE,oDAAoD;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACtC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,IAAwB;QACrC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC9C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;gBAC5B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;gBAC/B,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;YACD,OAAM;QACR,CAAC;QACD,yEAAyE;QACzE,uEAAuE;QACvE,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACrC,sEAAsE;YACtE,sEAAsE;YACtE,mCAAmC;YACnC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAChF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC3C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/E,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;QAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,OAAO,EAAE,GAAG,KAAK,CAAC,CAAA;QACtF,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,mEAAmE;IACnE,WAAW,CAAC,KAAqD;QAC/D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,KAAmB;QAC5B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA;gBAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;wBAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;wBAChC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;oBACvB,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;oBACpE,gEAAgE;oBAChE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;oBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;gBACvB,CAAC;gBACD,MAAK;YACP,CAAC;YACD,KAAK,mBAAmB;gBACtB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;gBACtB,MAAK;YACP,KAAK,WAAW;gBACd,kEAAkE;gBAClE,qEAAqE;gBACrE,oEAAoE;gBACpE,oEAAoE;gBACpE,yCAAyC;gBACzC,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;gBACvB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAChF,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;gBACtB,MAAK;YACP,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;gBAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,EAAE;oBAC7C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS;wBACnC,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;oBAChE,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;iBAC5F,CAAC,CAAA;gBACF,MAAK;YACP,CAAC;YACD,KAAK,cAAc,CAAC;YACpB,KAAK,UAAU;gBACb,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;gBACrB,MAAK;YACP;gBACE,MAAK;QACT,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,MAA4B;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;QACxB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAA;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;QAC5E,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU;YAAE,OAAM;QACtC,IAAI,UAAU;YAAE,IAAI,CAAC,YAAY,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,WAAwB;QACrC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACtC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACrC,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED;;iFAE6E;IAC7E,QAAQ,CAAC,KAAe;QACtB,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;YAAE,OAAM;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,4EAA4E;QAC5E,4DAA4D;QAC5D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACxE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,CAAA;QACpG,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QACrB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC7C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED;;;;;;;OAOG;IACK,OAAO;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAA;QAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;YAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBACtC,wEAAwE;gBACxE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC7C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,gBAAgB,CAAC,IAAe,EAAE,MAAe;QACvD,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACnF,MAAM,SAAS,GAAa,EAAE,CAAA;QAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC5G,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,qEAAqE;YACrE,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC;gBAC1E,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAA;YACN,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;QACpD,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACxC,MAAM,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/C,mEAAmE;QACnE,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACvE,MAAM,SAAS,GAAG,QAAQ,KAAK,EAAE;YAC/B,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,QAAQ,CAAA;QACZ,0EAA0E;QAC1E,0EAA0E;QAC1E,iCAAiC;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAA;QACrD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QAChE,MAAM,UAAU,GAAG,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACxD,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3F,IAAI,MAAM,KAAK,EAAE,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACrC,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,CAAA;QACxD,CAAC;QACD,qEAAqE;QACrE,MAAM,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;QACvE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACzC,uEAAuE;QACvE,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,KAAK,CAAA;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,KAAK,CAAA;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,KAAK,CAAA;QAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAA;QACxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,GAAG,KAAK,CAAA;QAC7E,MAAM,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,GAAG,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;QAC7E,wEAAwE;QACxE,sEAAsE;QACtE,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,wEAAwE;YACxE,sDAAsD;YACtD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,KAAK,CAAA;QAC7D,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}