@markusylisiurunen/tau 0.3.42 → 0.3.44

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 (90) hide show
  1. package/README.md +9 -11
  2. package/dist/core/agent/agent_runtime.js +55 -52
  3. package/dist/core/agent/agent_runtime.js.map +1 -1
  4. package/dist/core/config/builtin_themes.js +62 -155
  5. package/dist/core/config/builtin_themes.js.map +1 -1
  6. package/dist/core/config/content_loader.js +1 -63
  7. package/dist/core/config/content_loader.js.map +1 -1
  8. package/dist/core/runtime/chat_runtime.js +4 -4
  9. package/dist/core/session/runner.js +21 -14
  10. package/dist/core/session/runner.js.map +1 -1
  11. package/dist/core/static/code_mode/capabilities.mjs +25 -0
  12. package/dist/core/static/code_mode/history/documentation.md +2 -0
  13. package/dist/core/static/code_mode/history/sandbox_runner.mjs +4 -1
  14. package/dist/core/static/code_mode/nook/documentation.md +2 -0
  15. package/dist/core/static/code_mode/nook/sandbox_runner.mjs +4 -1
  16. package/dist/core/static/code_mode/web/documentation.md +2 -0
  17. package/dist/core/static/code_mode/web/sandbox_runner.mjs +4 -1
  18. package/dist/core/subagents/agent_supervisor.js +4 -4
  19. package/dist/core/subagents/agent_supervisor.js.map +1 -1
  20. package/dist/core/subagents/registry.js +5 -9
  21. package/dist/core/subagents/registry.js.map +1 -1
  22. package/dist/core/subagents/types.js.map +1 -1
  23. package/dist/core/telegram/adapter.js +0 -23
  24. package/dist/core/telegram/adapter.js.map +1 -1
  25. package/dist/core/telegram/session_manager.js +34 -7
  26. package/dist/core/telegram/session_manager.js.map +1 -1
  27. package/dist/core/tools/bash.js +9 -2
  28. package/dist/core/tools/bash.js.map +1 -1
  29. package/dist/core/tools/catalog.js +2 -2
  30. package/dist/core/tools/code_mode.js +1 -0
  31. package/dist/core/tools/code_mode.js.map +1 -1
  32. package/dist/core/tools/spawn_agent.js +30 -40
  33. package/dist/core/tools/spawn_agent.js.map +1 -1
  34. package/dist/core/utils/auto_retry.js +1 -1
  35. package/dist/core/utils/auto_retry.js.map +1 -1
  36. package/dist/core/version.js +1 -1
  37. package/dist/host/execution_runtime.js +8 -18
  38. package/dist/host/execution_runtime.js.map +1 -1
  39. package/dist/host/local_session_host.js +446 -216
  40. package/dist/host/local_session_host.js.map +1 -1
  41. package/dist/host/session_host.js.map +1 -1
  42. package/dist/host/session_protocol_handler.js +3 -8
  43. package/dist/host/session_protocol_handler.js.map +1 -1
  44. package/dist/protocol/index.d.ts +2 -2
  45. package/dist/protocol/index.js +1 -1
  46. package/dist/protocol/index.js.map +1 -1
  47. package/dist/protocol/session_protocol.d.ts +127 -40
  48. package/dist/protocol/session_protocol.js +431 -98
  49. package/dist/protocol/session_protocol.js.map +1 -1
  50. package/dist/sdk/index.d.ts +4 -3
  51. package/dist/sdk/index.js +9 -1
  52. package/dist/sdk/index.js.map +1 -1
  53. package/dist/sdk/types.d.ts +2 -1
  54. package/dist/store/session_snapshot_migrations.js +331 -4
  55. package/dist/store/session_snapshot_migrations.js.map +1 -1
  56. package/dist/tui/chat_controller/assistant_clipboard.js +12 -8
  57. package/dist/tui/chat_controller/assistant_clipboard.js.map +1 -1
  58. package/dist/tui/chat_controller/diff_review_service.js +13 -9
  59. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  60. package/dist/tui/chat_controller/history_message_model.js +3 -3
  61. package/dist/tui/chat_controller/history_message_model.js.map +1 -1
  62. package/dist/tui/chat_view.js +35 -35
  63. package/dist/tui/chat_view.js.map +1 -1
  64. package/dist/tui/session_chat_app.js +1 -3
  65. package/dist/tui/session_chat_app.js.map +1 -1
  66. package/dist/tui/session_chat_controller.js +373 -239
  67. package/dist/tui/session_chat_controller.js.map +1 -1
  68. package/dist/tui/speech_playback.js +4 -4
  69. package/dist/tui/speech_playback.js.map +1 -1
  70. package/dist/tui/ui/assistant_message.js +1 -15
  71. package/dist/tui/ui/assistant_message.js.map +1 -1
  72. package/dist/tui/ui/chat_message_model.js +26 -7
  73. package/dist/tui/ui/chat_message_model.js.map +1 -1
  74. package/dist/tui/ui/footer.js +100 -66
  75. package/dist/tui/ui/footer.js.map +1 -1
  76. package/dist/tui/ui/theme/palette.js +10 -16
  77. package/dist/tui/ui/theme/palette.js.map +1 -1
  78. package/dist/tui/ui/theme/theme.js.map +1 -1
  79. package/dist/tui/ui/tool_card.js +1 -2
  80. package/dist/tui/ui/tool_card.js.map +1 -1
  81. package/dist/tui/ui/transcript_notice.js +44 -0
  82. package/dist/tui/ui/transcript_notice.js.map +1 -0
  83. package/dist/tui/ui/transcript_text.js +14 -0
  84. package/dist/tui/ui/transcript_text.js.map +1 -0
  85. package/package.json +5 -7
  86. package/dist/sdk/turn_outcome.d.ts +0 -2
  87. package/dist/sdk/turn_outcome.js +0 -4
  88. package/dist/sdk/turn_outcome.js.map +0 -1
  89. package/dist/tui/ui/system_message.js +0 -22
  90. package/dist/tui/ui/system_message.js.map +0 -1
package/README.md CHANGED
@@ -145,6 +145,8 @@ tau attach --session 0195d6e4-4cf9-7f44-a2d8-f8f7f49ee9d3 -- ssh vps 'cd /path/t
145
145
 
146
146
  Session attach renders the authoritative session snapshot, streams recoverable `session.delta` updates and independently revisioned, non-persisted `session.pendingUserMessages` replacements, submits normal user input through `session.submit`, `session.queue`, and `session.steer`, supports steering/interruption, runs `!`/`!!` Bash commands in the session execution environment, records `/listen` from the local microphone, speaks `/speak` locally, reloads session content with `/reload`, switches session personas with `/persona:<id>` or `Ctrl+P`, inserts session prompt templates with `/prompt:<id>`, manages persistent autonomous goals with `/goal`, compacts the session with `/compact-all` or `/compact-keep-last`, creates a new session with `/new`, and exits with `/exit` or `Ctrl+C` twice.
147
147
 
148
+ The host owns the active transcript as one ordered timeline of messages, tool calls, notices, and maintenance operations. Durable items retain their exact position across reattach; ephemeral transcript notices use the same ordering while attached but are not recovered. Successful compaction starts a new numeric timeline epoch containing the summary and future activity, while rewind removes every item after its selected boundary.
149
+
148
150
  The TUI advertises client tools for diff review, input prefill, and the effective command-backed tools selected from global definitions. `prefill_input` fills only an empty editor and leaves existing draft text unchanged. Pass `--no-client-tools` to `tau` or `tau attach` to advertise no TUI client tools, for example when another TUI attached to the same session already owns them.
149
151
 
150
152
  Model `bash` tool calls, `!`/`!!`, `session.exec`, and Tau-controlled command helpers each run in a fresh, non-interactive login Bash belonging to the session execution environment. Tau sets `HOME` to the execution environment home, so Bash reads `/etc/profile` and then the first available user login file (`~/.bash_profile`, `~/.bash_login`, or `~/.profile`). Bash also reads inherited `BASH_ENV` when set; otherwise `.bashrc` is loaded only when the login configuration sources it. Login startup files must be automation-safe: they must not write to stdout or stderr, read stdin, require a TTY, or terminate the shell unexpectedly. Tau does not filter or frame startup output. Commands start from the backend's target-side environment and apply explicit execution-environment overrides; the local backend filters sensitive variables inherited from the Tau host. Node, Git, and other helper executables resolve from the same login-configured `PATH` as model commands. Shell state such as `cd`, exports, aliases, functions, and `nvm use` does not persist between calls.
@@ -188,7 +190,7 @@ tau tool pdf-unpack ./docs/spec.pdf
188
190
 
189
191
  Tau records every session to a machine-local SQLite history database independently of the resumable session snapshot. History retains committed user text (including leading `<system>` blocks), assistant preambles and responses, and completed tool calls with their full results. Rewind removes the superseded suffix, while compaction does not remove original transcript entries.
190
192
 
191
- Built-in personas include the read-only `history` code-mode tool, and their subagents inherit it by default. Agents are instructed to invoke it only when the user or other active instructions directly ask them to reference historical transcripts. As with every code-mode tool, the agent must first use a documentation-only call to print and read `docs`, then use the progressively disclosed SDK in a later call rather than guessing its signatures. Custom subagents can include or exclude `history` in their `tools` list like `bash` or `web`. Its `history.search()` and `history.read()` APIs provide global access to bounded transcript results across repositories and execution environments; ordinary JavaScript can further filter and project them. Attribute search supports exact strings and generic `{ "contains": "text" }` substring filters. Conventional client-supplied attributes include `source` and `repository`; repository values use `host/owner/repository`, with comma-delimited values for composite workspaces. Local TUI startup derives this value from the current Git repository or direct child repositories, `/new` preserves a known value, Telegram derives it from project configuration, attach-created sessions leave it absent, and SDK/raw clients include it only when their caller provides it. If local history initialization or projection fails, Tau keeps the session running, persists one warning notice for clients (including Telegram), and makes history unavailable for that process.
193
+ Built-in personas include the read-only `history` code-mode tool, and their subagents inherit it by default. Agents are instructed to invoke it only when the user or other active instructions directly ask them to reference historical transcripts. As with every code-mode tool, the agent must first use a documentation-only call to print and read `docs`, then use the progressively disclosed SDK in a later call rather than guessing its signatures. Code-mode programs have live clock access through standard `Date` APIs and random generation through `Math.random()`. Custom subagents can include or exclude `history` in their `tools` list like `bash` or `web`. Its `history.search()` and `history.read()` APIs provide global access to bounded transcript results across repositories and execution environments; ordinary JavaScript can further filter and project them. Attribute search supports exact strings and generic `{ "contains": "text" }` substring filters. Conventional client-supplied attributes include `source` and `repository`; repository values use `host/owner/repository`, with comma-delimited values for composite workspaces. Local TUI startup derives this value from the current Git repository or direct child repositories, `/new` preserves a known value, Telegram derives it from project configuration, attach-created sessions leave it absent, and SDK/raw clients include it only when their caller provides it. If local history initialization or projection fails, Tau keeps the session running, persists one warning notice in the session timeline, and makes history unavailable for that process.
192
194
 
193
195
  A bundled single-owner Cloudflare service can combine histories from several Tau hosts and generate searchable session titles and summaries with Cloudflare AI using GPT-5.6 Luna at medium reasoning effort. Digest generation normally sends a compact role-delimited projection of the full transcript, omitting entry metadata and middle-truncating each tool result to roughly 512 estimated tokens. The final standalone digest is a high-recall semantic representation of the full user-agent session, including software development and other collaborative work, for future search and recognition rather than an outcome summary or conversation replay. It covers user intents, subjects, terminology, entities, investigated approaches, decisions, corrections, findings, and unresolved threads while grouping related material instead of narrating turns. The previous digest is supplied only as a continuity reference for stable titles, terminology, organization, and detail, while the current transcript remains the sole factual source; documented context-overflow errors trigger sequential recursive halving through at most three levels before final synthesis. A per-minute cron claims one global expiring D1 lease and processes up to three stale sessions that have been idle for ten minutes, with every model call running sequentially, so imports and ordinary transcript replication cannot create inference bursts. Sessions without a digest become eligible after that ten-minute idle period; existing digests become eligible after eight new transcript entries or a twelve-hour staleness deadline. Fair least-recently-attempted ordering and capped exponential failure backoff keep pathological sessions from blocking the queue. Per-session attempt, success, retry, failure-count, and bounded error fields are stored in D1, and failures are written to explicitly enabled structured Worker logs; there is no HTTP status or administration endpoint. `tau history setup` applies sequential Wrangler D1 migrations before every Worker deployment. It requires the **Workers Paid** plan so indefinite retention, FTS queries, replication batches, and digest processing use the paid D1/Worker limits rather than the free plan's 500 MB per-database, 50-query, and 10 ms CPU ceilings.
194
196
 
@@ -353,10 +355,9 @@ available palette tokens (theme keys):
353
355
 
354
356
  - core: `brandAccent`, `textMuted`, `textDim`, `linkText`, `thinkingText`, `codeInlineText`, `codeBlockText`
355
357
  - editor: `editorBorder`, `editorSubagentBorder`, `editorBorderBash`, `editorBorderRecording`, `editorPlaceholder`, `autocompleteSelectedSurface`, `autocompleteSelectedText`
356
- - status: `statusWarn`, `statusError`
358
+ - feedback: `feedback`, `feedbackError`
357
359
  - action: `actionRunning`, `actionSuccess`, `actionError`, `actionOutput`
358
360
  - diff: `diffAdd`, `diffRemove`
359
- - toasts: `toastSuccess`, `toastWarn`, `toastError`
360
361
  - user: `userSurface`, `userText`, `userReviewSurface`, `userReviewText`, `userReviewTextMuted`, `userReviewTextDim`
361
362
 
362
363
  example theme file (`.tau/themes/solarized.json`):
@@ -415,9 +416,9 @@ main-session models always receive `get_goal`, `create_goal`, and `update_goal`
415
416
 
416
417
  some personas can run isolated sub-agents via the `spawn_agent`, `send_input_to_agent`, `wait_for_agents`, `list_agents`, and `interrupt_agent` tools. `list_agents` reports each spawned thread's runtime, latest run, usage, context pressure, and response availability. `wait_for_agents` returns retained latest responses as soon as at least one requested agent finishes, and completed responses can be read repeatedly.
417
418
 
418
- the built-in `default` sub-agent is available unless disabled. it inherits the main persona's model, settings, tool access (minus sub-agent management tools), and system prompt. the inherited main prompt is wrapped with default sub-agent-specific rules, and those wrapper rules take precedence on conflicts. custom sub-agents can override model, reasoning, and tools.
419
+ the built-in `default` sub-agent is available unless disabled. all sub-agents inherit the main persona's model and settings unless `spawn_agent` receives an explicit launch override. sub-agents inherit the main persona's eligible tool access by default, while custom definitions can select a narrower tool set. the default sub-agent also inherits the main system prompt, wrapped with default sub-agent-specific rules that take precedence on conflicts.
419
420
 
420
- `spawn_agent` supports an optional launch override string (`model: "<provider>/<model>:<effort>"`) and an optional `workingDirectory`. when `workingDirectory` is set, the sub-agent runs from that directory and its config, model catalog, repository metadata, AGENTS.md context, and skills are resolved through the session execution environment as if tau was started there. launch overrides are allowlisted per subagent. custom subagents can define `launchModels` in persona frontmatter, and the built-in `default` sub-agent uses `subagents.defaultLaunchModels` from config.
421
+ `spawn_agent` supports an optional launch override string (`model: "<provider>/<model>:<effort>"`) and an optional `workingDirectory`. launch overrides are allowlisted per subagent. custom subagents can define `launchModels` in persona frontmatter, and the built-in `default` sub-agent uses `subagents.defaultLaunchModels` from config. when `workingDirectory` resolves to another directory, the sub-agent runs there and rebuilds only its prompt context from that location: environment and repository metadata, AGENTS.md context (including target `agentContextFiles`), and target-discovered skills. the parent session remains the source of truth for the persona, subagent definition, model catalog, runtime config, and tools.
421
422
 
422
423
  sub-agent progress appears in a sticky panel. use `alt+down` to cycle active subagents and `ctrl+g` to interrupt the selected one's current run. tau caps active subagents at 8.
423
424
 
@@ -642,7 +643,7 @@ the `subagents.defaultLaunchModels` field configures allowed `spawn_agent` launc
642
643
 
643
644
  the `modelSystemNotices` field maps `<provider>/<model>` to a notice string. provider ids must be known and model ids are exact/case-sensitive against the merged configured model catalog (built-in + layered `models.json`). when Tau commits a main-session or sub-agent input, it prepends the notice for the active model as an ordinary `<system>...</system>` block. the persisted block is subsequently treated like any other system prefix, so compaction sees notices already present in the source history. tau does not prepend the current notice to the compaction prompt or to synthetic compaction messages, and the generated summary is not required to reproduce it. ephemeral agents never receive model system notices, and maintenance model calls do not resolve or add fresh notices.
644
645
 
645
- session snapshots store raw recoverable user message text. tau-internal metadata is persisted in that text but stripped before model calls and user display. leading exact `<system>...</system>\n` blocks in user messages are hidden from user-facing renderers but remain model-facing instructions.
646
+ session snapshots store a durable logical-turn ledger keyed by submitted user history entry ID, independently of messages and timeline presentation. accepted turns are recorded as running before model work and settled with their terminal outcome before the live response. session snapshots also store raw recoverable user message text. tau-internal metadata is persisted in that text but stripped before model calls and user display. leading exact `<system>...</system>\n` blocks in user messages are hidden from user-facing renderers but remain model-facing instructions.
646
647
 
647
648
  if `disableBuiltinPersonas` is set to `true`, tau will not load built-in personas. if `disableBuiltinThemes` is set to `true`, tau will not load built-in themes. only entries from `~/.config/tau/` and `.tau/` will be available for those categories. you can also set these flags in any `.tau/config.json`; the most specific value wins.
648
649
 
@@ -737,7 +738,7 @@ the frontmatter defines the persona. required fields:
737
738
  - `provider`: model provider id (for example `openai`, `anthropic`, `google`)
738
739
  - `model`: model id for the provider (for example `gpt-5.4`, `claude-opus-5`)
739
740
 
740
- custom personas/subagents can reference model ids that are not bundled yet, as long as the provider is known. built-in personas use the merged model catalog, so `models.json` can override bundled model definitions. see [docs/models.md](docs/models.md).
741
+ custom personas and subagent launch allowlists can reference model ids that are not bundled yet, as long as the provider is known. built-in personas use the merged model catalog, so `models.json` can override bundled model definitions. see [docs/models.md](docs/models.md).
741
742
 
742
743
  the persona file name (without the `.md` extension) must match the `id`.
743
744
 
@@ -751,7 +752,7 @@ optional frontmatter fields:
751
752
  - `allowedReasoningLevels`: list of reasoning levels shown in the ui
752
753
  - `skills`: list of enabled skill names (matched by `name` in skill frontmatter), or `"*"` to enable all discovered skills. if omitted, custom personas default to `"*"`. set `skills: []` to disable skills completely.
753
754
  - `tools`: optional list of persona-selected host tools. `nook` additionally requires effective Nook configuration before it becomes available.
754
- - `subagents`: optional map of subagent definitions. the built-in `default` sub-agent is implicit unless `default: false` is provided. custom subagents must include `systemPrompt` and may include `description`, `provider`+`model`, `reasoning`, `serviceTier`, `tools`, and `launchModels` (when specifying a model, `provider` and `model` must be provided together). subagent `tools` accepts `bash`, `write`, `edit`, `view_image`, `web`, and `history`; when omitted, eligible main-persona tools are inherited. names must be lowercase with dashes (max 64 chars). `launchModels` entries must use `<provider>/<model>:<effort>` and are used to allowlist launch-time `spawn_agent` overrides. example:
755
+ - `subagents`: optional map of subagent definitions. the built-in `default` sub-agent is implicit unless `default: false` is provided. custom subagents must include `systemPrompt` and may include `description`, `tools`, and `launchModels`. subagent `tools` accepts `bash`, `write`, `edit`, `view_image`, `web`, and `history`; when omitted, eligible main-persona tools are inherited. names must be lowercase with dashes (max 64 chars). all subagents inherit the active parent model and settings unless `spawn_agent` supplies an allowlisted `launchModels` entry in `<provider>/<model>:<effort>` format. example:
755
756
  ```yaml
756
757
  subagents:
757
758
  default: false
@@ -759,9 +760,6 @@ optional frontmatter fields:
759
760
  systemPrompt: |
760
761
  you are a focused web research sub-agent.
761
762
  description: web research using Exa code mode.
762
- provider: anthropic
763
- model: claude-haiku-4-5
764
- reasoning: medium
765
763
  tools: [web, bash]
766
764
  launchModels:
767
765
  - openai/gpt-5.6-sol:high
@@ -26,7 +26,7 @@ export function createAgentSpec(options) {
26
26
  maxModelSubturns: DEFAULT_MAX_MODEL_SUBTURNS,
27
27
  };
28
28
  }
29
- function getContextEpoch(spec) {
29
+ function getModelContextKey(spec) {
30
30
  return createHash("sha256")
31
31
  .update(JSON.stringify({
32
32
  systemPrompt: spec.systemPrompt,
@@ -115,7 +115,7 @@ export function recoverAgentState(state, timestamp) {
115
115
  agentId: state.agentId,
116
116
  revision: state.revision + historyEntries.length - sourceEntries.length,
117
117
  historyEntries,
118
- contextEpoch: state.contextEpoch,
118
+ modelContextKey: state.modelContextKey,
119
119
  ...(state.usageCheckpoint ? { usageCheckpoint: { ...state.usageCheckpoint } } : {}),
120
120
  },
121
121
  recoveredToolResults,
@@ -129,7 +129,7 @@ export class AgentRuntime {
129
129
  getCompactionContinuationSystemMessages;
130
130
  historyEntries;
131
131
  revision;
132
- contextEpoch;
132
+ modelContextKey;
133
133
  usageCheckpoint;
134
134
  activeAbortController;
135
135
  submitPending = false;
@@ -143,15 +143,15 @@ export class AgentRuntime {
143
143
  this.clock = options.clock;
144
144
  this.archiveAutoCompaction = options.archiveAutoCompaction;
145
145
  this.getCompactionContinuationSystemMessages = options.getCompactionContinuationSystemMessages;
146
- const contextEpoch = getContextEpoch(options.spec);
146
+ const modelContextKey = getModelContextKey(options.spec);
147
147
  if (options.state) {
148
148
  const recovered = recoverAgentState(options.state, this.clock.now()).state;
149
149
  this.agentId = recovered.agentId;
150
150
  this.revision = recovered.revision;
151
151
  this.historyEntries = recovered.historyEntries;
152
- this.contextEpoch = contextEpoch;
152
+ this.modelContextKey = modelContextKey;
153
153
  this.usageCheckpoint =
154
- recovered.contextEpoch === contextEpoch && recovered.usageCheckpoint
154
+ recovered.modelContextKey === modelContextKey && recovered.usageCheckpoint
155
155
  ? { ...recovered.usageCheckpoint }
156
156
  : undefined;
157
157
  }
@@ -159,7 +159,7 @@ export class AgentRuntime {
159
159
  this.agentId = randomUUID();
160
160
  this.revision = 0;
161
161
  this.historyEntries = [];
162
- this.contextEpoch = contextEpoch;
162
+ this.modelContextKey = modelContextKey;
163
163
  }
164
164
  }
165
165
  get status() {
@@ -176,15 +176,15 @@ export class AgentRuntime {
176
176
  agentId: this.agentId,
177
177
  revision: this.revision,
178
178
  historyEntries: structuredClone(this.historyEntries),
179
- contextEpoch: this.contextEpoch,
179
+ modelContextKey: this.modelContextKey,
180
180
  ...(this.usageCheckpoint ? { usageCheckpoint: { ...this.usageCheckpoint } } : {}),
181
181
  };
182
182
  }
183
183
  updateSpec(spec) {
184
184
  this.assertActive();
185
185
  this.currentSpec = spec;
186
- this.contextEpoch = getContextEpoch(spec);
187
- if (this.usageCheckpoint?.contextEpoch !== this.contextEpoch) {
186
+ this.modelContextKey = getModelContextKey(spec);
187
+ if (this.usageCheckpoint?.modelContextKey !== this.modelContextKey) {
188
188
  this.usageCheckpoint = undefined;
189
189
  }
190
190
  }
@@ -208,7 +208,7 @@ export class AgentRuntime {
208
208
  this.revision = recovery.state.revision;
209
209
  this.historyEntries = recovery.state.historyEntries;
210
210
  this.usageCheckpoint =
211
- recovery.state.contextEpoch === this.contextEpoch && recovery.state.usageCheckpoint
211
+ recovery.state.modelContextKey === this.modelContextKey && recovery.state.usageCheckpoint
212
212
  ? { ...recovery.state.usageCheckpoint }
213
213
  : undefined;
214
214
  return recovery;
@@ -249,14 +249,29 @@ export class AgentRuntime {
249
249
  ],
250
250
  timestamp: this.clock.now(),
251
251
  };
252
+ const previousRevision = this.revision;
252
253
  const entry = this.appendHistoryEntry(message, options?.historyEntryId);
253
- await this.deliver({
254
- type: "user_message",
255
- historyEntryId: entry.id,
256
- message,
257
- revision: this.revision,
258
- });
259
- return entry.id;
254
+ try {
255
+ await this.deliver({
256
+ type: "user_message",
257
+ historyEntryId: entry.id,
258
+ message,
259
+ origin: options?.origin ?? "input",
260
+ revision: this.revision,
261
+ });
262
+ return entry.id;
263
+ }
264
+ catch (error) {
265
+ const appendedEntry = this.historyEntries.at(-1);
266
+ if (appendedEntry !== entry || this.revision !== previousRevision + 1) {
267
+ throw new Error(`cannot roll back uncommitted history entry '${entry.id}'`, {
268
+ cause: error,
269
+ });
270
+ }
271
+ this.historyEntries.pop();
272
+ this.revision = previousRevision;
273
+ throw error;
274
+ }
260
275
  }
261
276
  addMessage(message, options) {
262
277
  return this.appendHistoryEntry(message, options?.historyEntryId).id;
@@ -497,6 +512,11 @@ export class AgentRuntime {
497
512
  turnId: turnSpec.turnId,
498
513
  historyEntryId: turnSpec.historyEntryId,
499
514
  outcome,
515
+ ...(result.limitReached
516
+ ? { failure: result.limitReached }
517
+ : result.blocked
518
+ ? { failure: result.blocked }
519
+ : {}),
500
520
  });
501
521
  for (const submission of associatedSteering.splice(0)) {
502
522
  submission.resolveResult({
@@ -516,7 +536,7 @@ export class AgentRuntime {
516
536
  }
517
537
  associatedSteering = this.pendingSteering.splice(0);
518
538
  this.stopAtBoundaryRequested = false;
519
- await this.commitUserTextWithModelNotice(formatSteeringUserMessage(associatedSteering.map((item) => item.text), associatedSteering.flatMap((item) => item.metadata)), turnSpec.modelNotice);
539
+ await this.commitUserTextWithModelNotice(formatSteeringUserMessage(associatedSteering.map((item) => item.text), associatedSteering.flatMap((item) => item.metadata)), turnSpec.modelNotice, { origin: "steering" });
520
540
  turnSpec = this.continueTurnSettings(turnSpec);
521
541
  for (const submission of associatedSteering) {
522
542
  submission.resolveApplied({
@@ -741,7 +761,7 @@ export class AgentRuntime {
741
761
  return {
742
762
  turnId: `turn-${randomUUID()}`,
743
763
  historyEntryId: this.getCurrentTurnUserHistoryEntryId(),
744
- contextEpoch: getContextEpoch(this.currentSpec),
764
+ modelContextKey: getModelContextKey(this.currentSpec),
745
765
  model: this.currentSpec.model,
746
766
  ...(this.currentSpec.modelNotice ? { modelNotice: this.currentSpec.modelNotice } : {}),
747
767
  attribution: { ...this.currentSpec.attribution },
@@ -797,15 +817,8 @@ export class AgentRuntime {
797
817
  }
798
818
  const limitReached = needsAnotherSubturn && subturns >= turnSettings.maxModelSubturns && !signal.aborted;
799
819
  const limitMessage = limitReached
800
- ? `stopped after ${turnSettings.maxModelSubturns} model subturn${turnSettings.maxModelSubturns === 1 ? "" : "s"} without producing a final response.`
820
+ ? `stopped after ${turnSettings.maxModelSubturns} model attempt${turnSettings.maxModelSubturns === 1 ? "" : "s"} without producing a final response`
801
821
  : undefined;
802
- if (limitMessage) {
803
- yield {
804
- type: "notice",
805
- severity: "error",
806
- text: limitMessage,
807
- };
808
- }
809
822
  return {
810
823
  aborted: signal.aborted,
811
824
  ...(limitMessage
@@ -956,15 +969,15 @@ export class AgentRuntime {
956
969
  if (thresholdTokens <= 0) {
957
970
  return false;
958
971
  }
959
- const usageTokens = this.getFreshContextUsageEstimateTokens(turnSettings.contextEpoch);
972
+ const usageTokens = this.getFreshContextUsageEstimateTokens(turnSettings.modelContextKey);
960
973
  return usageTokens !== undefined && usageTokens > thresholdTokens;
961
974
  }
962
975
  getAutoCompactionThresholdTokens(settings, turnSettings) {
963
976
  return (turnSettings.model.model.contextWindow ?? 0) - settings.reserveTokens;
964
977
  }
965
- getFreshContextUsageEstimateTokens(contextEpoch) {
978
+ getFreshContextUsageEstimateTokens(modelContextKey) {
966
979
  const checkpoint = this.usageCheckpoint;
967
- if (!checkpoint || checkpoint.contextEpoch !== contextEpoch) {
980
+ if (!checkpoint || checkpoint.modelContextKey !== modelContextKey) {
968
981
  return undefined;
969
982
  }
970
983
  const checkpointIndex = this.historyEntries.findIndex((entry) => entry.id === checkpoint.historyEntryId);
@@ -1033,7 +1046,12 @@ export class AgentRuntime {
1033
1046
  onRetry: () => consumeSubturnRetry(retryBudget),
1034
1047
  maxRetries: retryBudget.remaining,
1035
1048
  delayMs: turnSettings.retryPolicy.delayMs,
1036
- notice: { text: "auto-retrying after transient error", severity: "warn" },
1049
+ feedback: {
1050
+ tone: "default",
1051
+ title: "retrying after transient error",
1052
+ presentation: "footer",
1053
+ durationMs: 3_000,
1054
+ },
1037
1055
  },
1038
1056
  });
1039
1057
  const toolRunner = new SequentialToolCallRunner({
@@ -1105,13 +1123,6 @@ export class AgentRuntime {
1105
1123
  if (!signal.aborted) {
1106
1124
  await this.noteProviderError(turnSettings.model, errorMessage);
1107
1125
  }
1108
- if (toolRecoveryMode === "continue") {
1109
- yield {
1110
- type: "notice",
1111
- severity: "error",
1112
- text: `model stream failed after tool execution: ${errorMessage}`,
1113
- };
1114
- }
1115
1126
  continue;
1116
1127
  }
1117
1128
  if (next.source === "tool_error") {
@@ -1148,12 +1159,12 @@ export class AgentRuntime {
1148
1159
  if (finalMessage.stopReason !== "error" &&
1149
1160
  finalMessage.stopReason !== "aborted" &&
1150
1161
  usage &&
1151
- turnSettings.contextEpoch === this.contextEpoch &&
1162
+ turnSettings.modelContextKey === this.modelContextKey &&
1152
1163
  finalMessage.provider === turnSettings.model.model.provider &&
1153
1164
  finalMessage.model === turnSettings.model.model.id) {
1154
1165
  this.usageCheckpoint = {
1155
1166
  historyEntryId,
1156
- contextEpoch: turnSettings.contextEpoch,
1167
+ modelContextKey: turnSettings.modelContextKey,
1157
1168
  tokens: (usage.input ?? 0) +
1158
1169
  (usage.cacheRead ?? 0) +
1159
1170
  (usage.cacheWrite ?? 0) +
@@ -1172,19 +1183,11 @@ export class AgentRuntime {
1172
1183
  yield {
1173
1184
  type: "usage_checkpoint",
1174
1185
  historyEntryId,
1175
- contextEpoch: this.usageCheckpoint.contextEpoch,
1186
+ modelContextKey: this.usageCheckpoint.modelContextKey,
1176
1187
  tokens: this.usageCheckpoint.tokens,
1177
1188
  revision: this.revision,
1178
1189
  };
1179
1190
  }
1180
- if (toolRecoveryMode === "continue") {
1181
- const notice = {
1182
- type: "notice",
1183
- severity: "error",
1184
- text: `model stream failed after tool execution: ${finalMessage.errorMessage ?? "unknown provider error"}`,
1185
- };
1186
- yield notice;
1187
- }
1188
1191
  if (!toolRecoveryMode) {
1189
1192
  for (const toolResult of pendingToolResults.splice(0)) {
1190
1193
  const toolHistoryEntryId = this.addMessage(toolResult);
@@ -1279,8 +1282,8 @@ export class AgentRuntime {
1279
1282
  id: `invalid-tool-call-${randomUUID()}`,
1280
1283
  };
1281
1284
  const message = invalidId
1282
- ? "Model returned a tool call with an empty ID."
1283
- : `Model returned duplicate tool call ID '${admittedToolCall.id}'.`;
1285
+ ? "model returned a tool call with an empty ID"
1286
+ : `model returned duplicate tool call ID '${admittedToolCall.id}'`;
1284
1287
  admittedToolCalls.push(toolCall);
1285
1288
  const admission = toolRunner.prepareRejected(toolCall, message);
1286
1289
  admissions.push({
@@ -1 +1 @@
1
- {"version":3,"file":"agent_runtime.js","sourceRoot":"","sources":["../../../src/core/agent/agent_runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent_runtime.js","sourceRoot":"","sources":["../../../src/core/agent/agent_runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAc9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAKnE,OAAO,EACL,sCAAsC,EACtC,yBAAyB,EACzB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,sCAAsC,EACtC,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,GAEzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,oCAAoC,EACpC,qCAAqC,EACrC,sBAAsB,EACtB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,+BAA+B,GAEhC,MAAM,2BAA2B,CAAC;AAOnC,MAAM,oBAAoB,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAW,CAAC;AACxE,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AA+IxC,MAAM,UAAU,eAAe,CAAC,OAQ/B;IACC,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE;QACvC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC;QACrD,WAAW,EAAE,EAAE,GAAG,oBAAoB,EAAE;QACxC,gBAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE;QACjD,gBAAgB,EAAE,0BAA0B;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAe;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CACL,IAAI,CAAC,SAAS,CAAC;QACb,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;KAC1B,CAAC,CACH;SACA,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAiB,EAAE,SAAiB;IACpE,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,MAAM,oBAAoB,GAA+C,EAAE,CAAC;IAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,4BAA4B,GAAG,GAAG,EAAE;QACxC,IAAI,EAAU,CAAC;QACf,GAAG,CAAC;YACF,EAAE,GAAG,WAAW,UAAU,EAAE,EAAE,CAAC;QACjC,CAAC,QAAQ,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAClC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAE,CAAC;QACpC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IACE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YAClC,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO;YACpC,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EACtC,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAC5C,CAAC,OAAO,EAAuB,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAC9D,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA6B,CAAC;QACjE,OAAO,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/D,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,OAA4B,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,MAAM;YACR,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;YACX,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/F,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAsB;gBACjC,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,6FAA6F;qBACpG;iBACF;gBACD,OAAO,EAAE,IAAI;gBACb,SAAS;aACV,CAAC;YACF,MAAM,cAAc,GAAG,4BAA4B,EAAE,CAAC;YACtD,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;YACrD,oBAAoB,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;YACvD,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,cAAc,CAAC,IAAI,CAAC;YAClB,EAAE,EAAE,4BAA4B,EAAE;YAClC,OAAO,EAAE,4BAA4B,CAAC;gBACpC,YAAY,EAAE,8DAA8D;gBAC5E,SAAS;gBACT,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC;gBAC/E,uBAAuB,EAAE,KAAK;gBAC9B,SAAS;aACV,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,oBAAoB,EAAE,CAAC;IACtF,CAAC;IAED,OAAO;QACL,KAAK,EAAE;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;YACvE,cAAc;YACd,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpF;QACD,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,YAAY;IACf,WAAW,CAAY;IACd,KAAK,CAAY;IACjB,SAAS,CAAiB;IAC1B,qBAAqB,CAAyB;IAC9C,uCAAuC,CAA2B;IAC3E,cAAc,CAAiB;IAC/B,QAAQ,CAAS;IACjB,eAAe,CAAS;IACxB,eAAe,CAAwB;IACvC,qBAAqB,CAAmB;IACxC,aAAa,GAAG,KAAK,CAAC;IACtB,uBAAuB,GAAG,KAAK,CAAC;IAChC,eAAe,GAQlB,EAAE,CAAC;IACA,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,CAAS;IAExB,YAAY,OAA4B;QACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QAC3D,IAAI,CAAC,uCAAuC,GAAG,OAAO,CAAC,uCAAuC,CAAC;QAC/F,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC;YAC3E,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;YAC/C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,IAAI,CAAC,eAAe;gBAClB,SAAS,CAAC,eAAe,KAAK,eAAe,IAAI,SAAS,CAAC,eAAe;oBACxE,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,eAAe,EAAE;oBAClC,CAAC,CAAC,SAAS,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACzC,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACzD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;YACpD,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,IAAe;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACnE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,KAAiB;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QACpD,IAAI,CAAC,eAAe;YAClB,QAAQ,CAAC,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe;gBACvF,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,EAAE;gBACvC,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,qBAAqB,CAAC,OAAgC;QAC5D,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,OAAO,eAAe,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,YAAoB,EACpB,OAAqC;QAErC,OAAO,MAAM,IAAI,CAAC,6BAA6B,CAC7C,YAAY,EACZ,IAAI,CAAC,WAAW,CAAC,WAAW,EAC5B,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,YAAoB,EACpB,WAA+B,EAC/B,OAAoE;QAEpE,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,OAAO,GAAgB;YAC3B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC;iBACpD;aACF;YACD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;SAC5B,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjB,IAAI,EAAE,cAAc;gBACpB,cAAc,EAAE,KAAK,CAAC,EAAE;gBACxB,OAAO;gBACP,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,OAAO;gBAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,CAAC,EAAE,GAAG,EAAE;oBAC1E,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;YACjC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,OAAgB,EAAE,OAAqC;QACxE,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,OAAyB,EACzB,cAAsB;QAEtB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,iBAAiB;YACvB,cAAc;YACd,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS;YACjD,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,eAAe;YAC7D,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3E,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,KAAa;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,IACE,CAAC,KAAK;YACN,qCAAqC,CAAC,KAAK,CAAC,OAAO,CAAC;YACpD,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC;YAChD,IAAI,qCAAqC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,QAAQ,GAAG,oCAAoC,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,cAAsB;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;QAC3F,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IACE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;YAC7B,qCAAqC,CAAC,KAAK,CAAC,OAAO,CAAC;YACpD,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG;YACb,cAAc,EAAE,KAAK,CAAC,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;SAChF,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,eAAe,CAAC,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAChE,CAAC;IACJ,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/D,IACE,OAAO,CAAC,IAAI,KAAK,WAAW;gBAC5B,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,EACpE,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAY,qBAAqB;QAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,qCAAqC,CAAC,KAAK,CAAC,OAAO,CAAC;YACrD,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,GAAG,KAAK;YACR,OAAO,EAAE,eAAe,CAAC,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACzE,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAqC;QAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACzC,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAAO,GAA8C,EAAE;QACzE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,cAA2D,CAAC;QAChE,IAAI,aAAsC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnE,cAAc,GAAG,OAAO,CAAC;YACzB,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,aAAgD,CAAC;QACrD,IAAI,YAAqC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,aAAa,GAAG,OAAO,CAAC;YACxB,YAAY,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,YAAY,UAAU,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,EAAE;YACF,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,cAAc;YACd,aAAa;YACb,aAAa;YACb,YAAY;SACb,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;IAED,cAAc;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC7D,KAAK,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC;gBACnC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,qBAAqB;QACnB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAAE,OAAO,KAAK,CAAC;QAC7E,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC9C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3D,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAExC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC;QACxC,IAAI,aAA6C,CAAC;QAClD,IAAI,kBAAkB,GAAgC,EAAE,CAAC;QACzD,IAAI,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE1C,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,OAAO,CAAC;oBACjB,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,cAAc,EAAE,QAAQ,CAAC,cAAc;iBACxC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC7D,IAAI,MAA0B,CAAC;gBAC/B,IAAI,CAAC;oBACH,OAAO,IAAI,EAAE,CAAC;wBACZ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;wBACjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACd,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;4BACpB,MAAM;wBACR,CAAC;wBACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzC,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,aAAa,KAAK,MAAM,CAAC;gBACzB,MAAM,OAAO,GACX,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,KAAK,OAAO;oBAChE,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,MAAM,CAAC,OAAO;wBACd,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,MAAM,CAAC,OAAO;4BACd,CAAC,CAAC,aAAa;4BACf,CAAC,CAAC,IAAI,CAAC,uBAAuB;gCAC5B,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,WAAW,CAAC;gBACxB,MAAM,IAAI,CAAC,OAAO,CAAC;oBACjB,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,OAAO;oBACP,GAAG,CAAC,MAAM,CAAC,YAAY;wBACrB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE;wBAClC,CAAC,CAAC,MAAM,CAAC,OAAO;4BACd,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;4BAC7B,CAAC,CAAC,EAAE,CAAC;iBACV,CAAC,CAAC;gBACH,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,UAAU,CAAC,aAAa,CAAC;wBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,cAAc,EAAE,QAAQ,CAAC,cAAc;wBACvC,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC;gBAED,IACE,UAAU,CAAC,MAAM,CAAC,OAAO;oBACzB,MAAM,CAAC,OAAO;oBACd,MAAM,CAAC,YAAY;oBACnB,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EACjC,CAAC;oBACD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;oBAC1F,CAAC;oBACD,OAAO,EAAE,GAAG,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;gBACtD,CAAC;gBAED,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;gBACrC,MAAM,IAAI,CAAC,6BAA6B,CACtC,yBAAyB,CACvB,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3C,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CACpD,EACD,QAAQ,CAAC,WAAW,EACpB,EAAE,MAAM,EAAE,UAAU,EAAE,CACvB,CAAC;gBACF,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAC/C,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;oBAC5C,UAAU,CAAC,cAAc,CAAC;wBACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,cAAc,EAAE,QAAQ,CAAC,cAAc;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBACxC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,qBAAqB,KAAK,UAAU,EAAE,CAAC;gBAC9C,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;gBACvC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,KAAY;QACxC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAChC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAiB;QACrC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA+B;QAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,MAA6B,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;YACjD,MAAM,IAAI,CAAC,OAAO,CAChB,OAAO;gBACL,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;gBAClE,CAAC,CAAC;oBACE,IAAI,EAAE,gBAAgB;oBACtB,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,QAAQ;oBACjB,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBACrE,CACN,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE;gBACN,qBAAqB;gBACrB,0BAA0B,EAAE,qBAAqB;gBACjD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,OAAO,EAAE,eAAe;gBACxB,oBAAoB,EAAE,CAAC;aACxB;YACD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAA+B;QACtD,MAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,cAAc,EAAE;YAChE,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,aAAa,GAAG,4BAA4B,CAAC;YACjD,WAAW;YACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE;YACrE,SAAS,EAAE,WAAW,UAAU,EAAE,EAAE;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa;SAC9C,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,8BAA8B,CAAC;YACnD,QAAQ,EAAE,eAAe;YACzB,qBAAqB,EAAE,WAAW,CAAC,qBAAqB;SACzD,CAAC,CAAC;QAEH,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,GAAG,6BAA6B,CAAC;YACjF,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;YACpD,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;SAC3D,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QACzE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,eAAe,EAAE;YAC/D;gBACE,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;aAC3D;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAiB;YACjC,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE;YAC/B,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;gBACnD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;aAC5B;SACF,CAAC;QACF,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAE3C,OAAO;YACL,iBAAiB;YACjB,qBAAqB;SACtB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,aAAqB,EACrB,OAIC,EACD,KAAK,GAAkB,IAAI,CAAC,WAAW,CAAC,KAAK;QAE7C,IAAI,CAAC;YACH,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,uBAAuB,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;gBACvE,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;gBAEjC,IAAI,KAAuB,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CACzB;wBACE,YAAY,EAAE,sCAAsC;wBACpD,QAAQ,EAAE;4BACR;gCACE,IAAI,EAAE,MAAM;gCACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;gCAChD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;6BAC5B;yBACF;qBACF,EACD;wBACE,GAAG,OAAO,CAAC,aAAa;wBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtD,CACF,CAAC;oBACF,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,IAAI,OAAO,KAAK,uBAAuB,EAAE,CAAC;wBACnE,MAAM,KAAK,CAAC;oBACd,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACnC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,4BAA4B,CAAC,CAAC;gBACtE,CAAC;gBAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,EAAE,CAAC;oBAC5C,OAAO,OAAO,CAAC;gBACjB,CAAC;gBAED,IAAI,OAAO,KAAK,uBAAuB,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CACb,KAAK,CAAC,YAAY;wBAChB,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,2CAA2C,CAAC,CACpF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,OAAgB,EAAE,WAAoB;QAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,KAAK,GAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,oBAAoB,CAAC,WAAoB;QAC/C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,KAAK,CAAC,qBAAqB,SAAS,kBAAkB,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,SAAS,GAAG,WAAW,UAAU,EAAE,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;YACnE,SAAS,GAAG,WAAW,UAAU,EAAE,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,OAAgB;QACtC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAEO,qBAAqB,CAAC,OAAgB;QAC5C,OAAO,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,gCAAgC;QACtC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAEO,mBAAmB;QACzB,OAAO;YACL,MAAM,EAAE,QAAQ,UAAU,EAAE,EAAE;YAC9B,cAAc,EAAE,IAAI,CAAC,gCAAgC,EAAE;YACvD,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;YACrD,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAChD,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;YAC3C,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;YAC9D,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAChD,gBAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;YAC1D,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB;SACpD,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,YAA2B;QACtD,OAAO;YACL,GAAG,YAAY;YACf,MAAM,EAAE,QAAQ,UAAU,EAAE,EAAE;YAC9B,cAAc,EAAE,IAAI,CAAC,gCAAgC,EAAE;SACxD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,CAAC,WAAW,CACxB,MAAmB,EACnB,YAA2B;QAE3B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,gBAA8C,CAAC;QACnD,IAAI,WAAW,GAAuB,EAAE,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAEzF,OAAO,QAAQ,GAAG,YAAY,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACnE,mBAAmB,GAAG,KAAK,CAAC;YAC5B,IAAI,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/C,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACrF,IAAI,gBAAgB,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;oBACzD,OAAO,gBAAgB,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,QAAQ,IAAI,CAAC,CAAC;YACd,MAAM,EAAE,YAAY,EAAE,yBAAyB,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAC9E,MAAM,EACN,YAAY,EACZ,WAAW,CACZ,CAAC;YACF,IAAI,YAAY;gBAAE,gBAAgB,GAAG,YAAY,CAAC;YAElD,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM;YAC1B,IAAI,yBAAyB,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,uBAAuB;oBAAE,MAAM;gBACxC,mBAAmB,GAAG,IAAI,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,IAAI,YAAY,EAAE,UAAU,KAAK,SAAS;gBAAE,MAAM;YAClD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAC3C,CAAC,OAAO,EAAuB,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAC9D,CAAC;YACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAClC,IAAI,IAAI,CAAC,uBAAuB;gBAAE,MAAM;YAExC,mBAAmB,GAAG,IAAI,CAAC;YAC3B,WAAW,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,YAAY,GAChB,mBAAmB,IAAI,QAAQ,IAAI,YAAY,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtF,MAAM,YAAY,GAAG,YAAY;YAC/B,CAAC,CAAC,iBAAiB,YAAY,CAAC,gBAAgB,iBAAiB,YAAY,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,qCAAqC;YACpJ,CAAC,CAAC,SAAS,CAAC;QACd,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,CAAC,YAAY;gBACd,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,qBAA8B,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;gBACrF,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,CAAC,yBAAyB,CACtC,MAAmB,EACnB,YAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,UAAU,GAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACjF,MAAM,UAAU,CAAC;QAEjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAClE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAe;oBAC3B,IAAI,EAAE,gBAAgB;oBACtB,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,SAAS;iBACnB,CAAC;gBACF,MAAM,QAAQ,CAAC;gBACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,QAAQ,GAAe;gBAC3B,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,WAAW;gBACpB,MAAM;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;YACF,MAAM,QAAQ,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAe;oBAC3B,IAAI,EAAE,gBAAgB;oBACtB,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,SAAS;iBACnB,CAAC;gBACF,MAAM,QAAQ,CAAC;gBACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAe;gBAC3B,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,QAAQ;gBACjB,YAAY,EAAE,OAAO;aACtB,CAAC;YACF,MAAM,QAAQ,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE;oBACP,MAAM,EAAE,wBAAwB;oBAChC,OAAO;iBACR;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,MAAmB,EACnB,YAA2B;QAE3B,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,CAAC;QAC/C,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE;YAC7D,gBAAgB,EAAE,IAAI,CAAC,GAAG,CACxB,QAAQ,CAAC,gBAAgB,EACzB,IAAI,CAAC,gCAAgC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAC9D;YACD,YAAY,EAAE,YAAY,CAAC,YAAY;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACrD,yBAAyB,CAAC,WAAW,CAAC,EACtC;YACE,SAAS,EAAE,gBAAgB,UAAU,EAAE,EAAE;YACzC,MAAM;YACN,aAAa,EAAE,YAAY,CAAC,aAAa;SAC1C,EACD,YAAY,CAAC,KAAK,CACnB,CAAC;QACF,MAAM,aAAa,GAAG,8BAA8B,CAAC;YACnD,QAAQ,EAAE,eAAe;YACzB,qBAAqB,EAAE,WAAW,CAAC,qBAAqB;SACzD,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,cAAc,EAAE,CAAC;QAExB,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;YAC/C,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;SAC3D,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACrF,MAAM,oBAAoB,GAAG,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC;QAChE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,iBAAiB,EAAE;YACjE;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;gBAC1D,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,oBAAoB;aACrB;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAiB;YACjC,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE;YAC/B,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;gBACnD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;aAC5B;SACF,CAAC;QACF,MAAM,iBAAiB,GAAiB;YACtC,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE;YAC/B,OAAO,EAAE,sCAAsC,CAAC;gBAC9C,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACrB,OAAO;gBACP,cAAc,EAAE,IAAI,CAAC,uCAAuC,EAAE,EAAE,IAAI,EAAE;aACvE,CAAC;SACH,CAAC;QAEF,IAAI,CAAC,qBAAqB,CAAC,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAE9F,OAAO;YACL,qBAAqB,EAAE,YAAY,CAAC,EAAE;YACtC,0BAA0B,EAAE,iBAAiB,CAAC,EAAE;YAChD,iBAAiB;YACjB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,MAAmB;QAEnB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC;gBACtC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC3B,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBACzD,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,wBAAwB,CAAC,IAAY;QAC3C,OAAO,8BAA8B,CACnC,IAAI,EACJ,IAAI,CAAC,uCAAuC,EAAE,EAAE,IAAI,EAAE,CACvD,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,YAA2B;QACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,gCAAgC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtF,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAC1F,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,eAAe,CAAC;IACpE,CAAC;IAEO,gCAAgC,CACtC,QAAqC,EACrC,YAA2B;QAE3B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC;IAChF,CAAC;IAEO,kCAAkC,CAAC,eAAuB;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,eAAe,KAAK,eAAe,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CACnD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,cAAc,CAClD,CAAC;QACF,IAAI,eAAe,IAAI,IAAI,CAAC,yCAAyC,EAAE,EAAE,CAAC;YACxE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5E,MAAM,OAAO,GAAG,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/D,IACE,OAAO,CAAC,IAAI,KAAK,WAAW;gBAC5B,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,EACpE,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;YAChF,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1D,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAEO,yCAAyC;QAC/C,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACxE,IAAI,qCAAqC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/E,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAAoB,EAAE,OAAgB;QACpE,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,iBAAiB,CAAC;gBAC5B,SAAS,EAAE,IAAI,CAAC,OAAO;gBACvB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aAChD,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,CAAC,gBAAgB,CAC7B,MAAmB,EACnB,YAA2B,EAC3B,WAA+B;QAE/B,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACnD,MAAM,UAAU,GAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC;QAC3E,MAAM,UAAU,CAAC;QACjB,MAAM,OAAO,GAAY;YACvB,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO;SAClC,CAAC;QAEF,MAAM,WAAW,GAAqB;YACpC,GAAG,YAAY,CAAC,aAAa;YAC7B,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC;QAEF,MAAM,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,YAAY,EAAE,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,WAAW,CAAC,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC;QACnD,MAAM,WAAW,GAAG,eAAe,CAAC;YAClC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK;YAC/B,WAAW,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC;YACxF,OAAO;YACP,aAAa,EAAE,WAAW;YAC1B,MAAM,EAAE,sBAAsB,CAAC,MAAM;YACrC,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE;gBACL,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBAC9E,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC;gBAC/C,UAAU,EAAE,WAAW,CAAC,SAAS;gBACjC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO;gBACzC,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,gCAAgC;oBACvC,YAAY,EAAE,QAAQ;oBACtB,UAAU,EAAE,KAAK;iBAClB;aACF;SACF,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,wBAAwB,CAC7C;YACE,YAAY,EAAE,YAAY,CAAC,KAAK;YAChC,gBAAgB,EAAE;gBAChB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,kBAAkB,EAAE,cAAc;aACnC;YACD,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;SACpB,EACD,sBAAsB,CAAC,MAAM,CAC9B,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACtD,MAAM,kBAAkB,GAAwB,EAAE,CAAC;QACnD,MAAM,mBAAmB,GAAwB,EAAE,CAAC;QACpD,MAAM,iBAAiB,GAAe,EAAE,CAAC;QACzC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9C,MAAM,kCAAkC,GAAG,IAAI,GAAG,EAAkB,CAAC;QACrE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,uBAAuB,GAAG,KAAK,CAAC;QACpC,IAAI,gBAAiD,CAAC;QACtD,IAAI,YAA0C,CAAC;QAC/C,IAAI,uBAA6D,CAAC;QAClE,MAAM,cAAc,GAAG,GAAG,EAAE,CAC1B,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CACrB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAgB,EAAE,MAAM,EAAE,CAAC,EAClD,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,aAAsB,EAAE,KAAK,EAAE,CAAC,CAChE,CAAC;QACJ,MAAM,aAAa,GAAG,GAAG,EAAE,CACzB,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,CACpB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAe,EAAE,MAAM,EAAE,CAAC,EACjD,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,YAAqB,EAAE,KAAK,EAAE,CAAC,CAC/D,CAAC;QACJ,IAAI,SAAS,GAAG,cAAc,EAAE,CAAC;QACjC,IAAI,QAAQ,GAAG,aAAa,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,OAAO,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAC9B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACjC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;iBAChC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBAClC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,mBAAmB,CAAC,EAAE,CAAC;wBACjD,MAAM,IAAI,CAAC,KAAK,CAAC;oBACnB,CAAC;oBACD,IAAI,MAAM,CAAC,OAAO,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACrD,MAAM,IAAI,CAAC,KAAK,CAAC;oBACnB,CAAC;oBAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;oBACxC,YAAY,GAAG,4BAA4B,CAAC;wBAC1C,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK;wBAC/B,QAAQ,EAAE,uBAAuB;wBACjC,SAAS,EAAE,iBAAiB;wBAC5B,YAAY;wBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;qBAC5B,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC;oBACjB,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBAChD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjC,gBAAgB,GAAG,MAAM,CAAC,OAAO;4BAC/B,CAAC,CAAC,MAAM;4BACR,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC;gCAChC,CAAC,CAAC,UAAU;gCACZ,CAAC,CAAC,MAAM,CAAC;wBACb,mBAAmB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;oBAClD,MAAM;wBACJ,IAAI,EAAE,iBAAiB;wBACvB,cAAc;wBACd,OAAO,EAAE,YAAY;wBACrB,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,SAAS;wBAC7C,eAAe,EAAE,YAAY,CAAC,WAAW,CAAC,eAAe;wBACzD,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpB,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;oBACjE,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,KAAK,CAAC;gBACnB,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACrB,SAAS,GAAG,IAAI,CAAC;wBACjB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;wBACjC,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;wBAEhD,IAAI,CAAC;4BACH,MAAM,cAAc,GAAG,0BAA0B,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;4BACnF,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC;4BACtC,gBAAgB,GAAG,cAAc,CAAC,OAAO;gCACvC,CAAC,CAAC,YAAY,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO;oCACvD,CAAC,CAAC,MAAM;oCACR,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC;wCAChC,CAAC,CAAC,UAAU;wCACZ,CAAC,CAAC,MAAM;gCACZ,CAAC,CAAC,SAAS,CAAC;wBAChB,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,uBAAuB,GAAG,IAAI,CAAC;4BAC/B,MAAM,KAAK,CAAC;wBACd,CAAC;wBACD,IAAI,YAAY,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;4BACxC,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;wBAC9E,CAAC;wBACD,IAAI,gBAAgB,EAAE,CAAC;4BACrB,mBAAmB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5D,CAAC;wBAED,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;wBAClD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;wBACjC,IACE,YAAY,CAAC,UAAU,KAAK,OAAO;4BACnC,YAAY,CAAC,UAAU,KAAK,SAAS;4BACrC,KAAK;4BACL,YAAY,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe;4BACrD,YAAY,CAAC,QAAQ,KAAK,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ;4BAC3D,YAAY,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAClD,CAAC;4BACD,IAAI,CAAC,eAAe,GAAG;gCACrB,cAAc;gCACd,eAAe,EAAE,YAAY,CAAC,eAAe;gCAC7C,MAAM,EACJ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;oCAClB,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;oCACtB,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;oCACvB,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;6BACtB,CAAC;wBACJ,CAAC;wBACD,MAAM;4BACJ,IAAI,EAAE,iBAAiB;4BACvB,cAAc;4BACd,OAAO,EAAE,YAAY;4BACrB,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,SAAS;4BAC7C,eAAe,EAAE,YAAY,CAAC,WAAW,CAAC,eAAe;4BACzD,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB,CAAC;wBACF,IAAI,IAAI,CAAC,eAAe,EAAE,cAAc,KAAK,cAAc,EAAE,CAAC;4BAC5D,MAAM;gCACJ,IAAI,EAAE,kBAAkB;gCACxB,cAAc;gCACd,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe;gCACrD,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;gCACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;6BACxB,CAAC;wBACJ,CAAC;wBAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACtB,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gCACvD,MAAM,SAAS,GAAe;oCAC5B,IAAI,EAAE,aAAa;oCACnB,cAAc,EAAE,kBAAkB;oCAClC,OAAO,EAAE,UAAU;oCACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iCACxB,CAAC;gCACF,MAAM,SAAS,CAAC;4BAClB,CAAC;wBACH,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAChC,IAAI,CAAC;wBACH,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;4BACzC,MAAM,kBAAkB,GAAG,kCAAkC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;4BACtF,IAAI,MAAM,CAAC,OAAO,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gCAChE,IAAI,kBAAkB,EAAE,CAAC;oCACvB,kCAAkC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oCAC9D,MAAM,cAAc,GAAe;wCACjC,IAAI,EAAE,qBAAqB;wCAC3B,cAAc;wCACd,UAAU,EAAE,kBAAkB;wCAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;qCACjC,CAAC;oCACF,MAAM,cAAc,CAAC;gCACvB,CAAC;gCACD,SAAS;4BACX,CAAC;4BACD,kCAAkC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;4BAC7E,MAAM,cAAc,GAAe;gCACjC,IAAI,EAAE,qBAAqB;gCAC3B,cAAc;gCACd,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gCACxB,YAAY,EAAE,KAAK,CAAC,YAAY;gCAChC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BACtD,CAAC;4BACF,MAAM,cAAc,CAAC;4BACrB,SAAS;wBACX,CAAC;wBACD,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;4BACzC,IAAI,kCAAkC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;gCACpF,SAAS;4BACX,CAAC;4BACD,kCAAkC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;4BAC9D,MAAM,cAAc,GAAe;gCACjC,IAAI,EAAE,qBAAqB;gCAC3B,cAAc;gCACd,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;6BACjC,CAAC;4BACF,MAAM,cAAc,CAAC;4BACrB,SAAS;wBACX,CAAC;wBACD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;4BACvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gCACnB,SAAS;4BACX,CAAC;4BACD,MAAM,UAAU,GAAuD,EAAE,CAAC;4BAC1E,KAAK,MAAM,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAC3D,iBAAiB,CAAC,MAAM,CACzB,EAAE,CAAC;gCACF,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gCAC9C,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gCACjE,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;oCAC/B,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;oCAC7C,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oCACzC,KAAK,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,kCAAkC,EAAE,CAAC;wCAC5E,IAAI,UAAU,KAAK,gBAAgB,CAAC,EAAE,EAAE,CAAC;4CACvC,kCAAkC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4CACxD,MAAM;wCACR,CAAC;oCACH,CAAC;oCACD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;oCACvD,UAAU,CAAC,IAAI,CAAC;wCACd,MAAM,EAAE;4CACN;gDACE,IAAI,EAAE,oBAAoB;gDAC1B,cAAc;gDACd,QAAQ,EAAE,gBAAgB;6CAC3B;4CACD,SAAS,CAAC,cAAc;4CACxB,SAAS,CAAC,aAAa;yCACxB;wCACD,KAAK,EAAE,SAAS,CAAC,KAAK;qCACvB,CAAC,CAAC;oCACH,SAAS;gCACX,CAAC;gCAED,MAAM,QAAQ,GAAG;oCACf,GAAG,gBAAgB;oCACnB,EAAE,EAAE,qBAAqB,UAAU,EAAE,EAAE;iCACxC,CAAC;gCACF,MAAM,OAAO,GAAG,SAAS;oCACvB,CAAC,CAAC,6CAA6C;oCAC/C,CAAC,CAAC,0CAA0C,gBAAgB,CAAC,EAAE,GAAG,CAAC;gCACrE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCACjC,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gCAChE,UAAU,CAAC,IAAI,CAAC;oCACd,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,aAAa,CAAC;oCAC3D,KAAK,EAAE,SAAS,CAAC,KAAK;iCACvB,CAAC,CAAC;4BACL,CAAC;4BACD,uBAAuB,GAAG;gCACxB,GAAG,KAAK,CAAC,QAAQ;gCACjB,SAAS,EAAE,CAAC,GAAG,iBAAiB,CAAC;6BAClC,CAAC;4BACF,MAAM,YAAY,GAAe;gCAC/B,IAAI,EAAE,mBAAmB;gCACzB,cAAc;gCACd,QAAQ,EAAE,uBAAuB;6BAClC,CAAC;4BACF,MAAM,YAAY,CAAC;4BACnB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gCACnC,KAAK,MAAM,cAAc,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oCAC9C,MAAM,cAAc,CAAC;gCACvB,CAAC;gCACD,SAAS,CAAC,KAAK,EAAE,CAAC;4BACpB,CAAC;4BACD,SAAS;wBACX,CAAC;wBACD,MAAM,KAAK,CAAC;oBACd,CAAC;4BAAS,CAAC;wBACT,SAAS,GAAG,cAAc,EAAE,CAAC;oBAC/B,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACrB,QAAQ,GAAG,IAAI,CAAC;oBAChB,SAAS;gBACX,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAChC,IAAI,CAAC;oBACH,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;wBAC3B,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC;wBAChD,IAAI,SAAS,GAAG,KAAK,CAAC;wBACtB,IAAI,CAAC;4BACH,MAAM,aAAa,CAAC;4BACpB,SAAS,GAAG,IAAI,CAAC;wBACnB,CAAC;gCAAS,CAAC;4BACT,WAAW,CACT,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAClF,CAAC;wBACJ,CAAC;wBACD,SAAS;oBACX,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBACjC,IAAI,CAAC,SAAS,EAAE,CAAC;4BACf,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACvC,SAAS;wBACX,CAAC;wBACD,IAAI,gBAAgB,EAAE,CAAC;4BACrB,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACxC,SAAS;wBACX,CAAC;wBAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC1D,MAAM,SAAS,GAAe;4BAC5B,GAAG,KAAK;4BACR,cAAc,EAAE,kBAAkB;4BAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB,CAAC;wBACF,MAAM,SAAS,CAAC;wBAChB,SAAS;oBACX,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;wBAAS,CAAC;oBACT,QAAQ,GAAG,aAAa,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,2BAA2B,GAAG,IAAI,GAAG,CACzC,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAC7E,CAAC;gBACF,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,GAAG,CACvD,CAAC,QAAQ,EAAqB,EAAE,CAC9B,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI;oBAC9C,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4FAA4F;yBACnG;qBACF;oBACD,OAAO,EAAE,IAAI;oBACb,SAAS;iBACV,CACJ,CAAC;gBACF,MAAM,eAAe,GAAG,4BAA4B,CAAC;oBACnD,YAAY,EAAE,YAAY,CAAC,YAAY;oBACvC,SAAS,EAAE,iBAAiB;oBAC5B,WAAW,EAAE,2BAA2B;oBACxC,uBAAuB,EAAE,gBAAgB,KAAK,UAAU;oBACxD,SAAS;iBACV,CAAC,CAAC;gBACH,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBAChE,MAAM,aAAa,GAAe;oBAChC,IAAI,EAAE,eAAe;oBACrB,cAAc,EAAE,sBAAsB;oBACtC,OAAO,EAAE,eAAe;oBACxB,WAAW,EAAE,2BAA2B;oBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC;gBACF,MAAM,aAAa,CAAC;YACtB,CAAC;YAED,OAAO;gBACL,YAAY;gBACZ,yBAAyB,EAAE,gBAAgB,KAAK,UAAU;aAC3D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,UAAU,CAAC,6BAA6B,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9F,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,uBAAuB,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,iBAAiB,CAC1B,YAAY,CAAC,KAAK,EAClB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACjD,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC;YACvE,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5B,YAAY,EAAE,CAAC;gBACf,UAAU,CAAC,6BAA6B,CACtC,IAAI,KAAK,CAAC,uDAAuD,CAAC,CACnE,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,4BAA4B,CAAC,OAOrC;IACC,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;QACtB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;QACvB,KAAK,EAAE;YACL,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;SACrE;QACD,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QACjD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA0B;IACrD,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAyB,EACzB,iBAAsC;IAEtC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAC3C,CAAC,OAAO,EAAuB,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAC9D,CAAC;IACF,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC;IAE7F,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,iBAAiB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,oDAAoD,cAAc,CAAC,CAAC,CAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAChG,CAAC;QACD,OAAO;YACL,OAAO,EAAE,iBAAiB;gBACxB,CAAC,CAAC;oBACE,GAAG,OAAO;oBACV,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC;iBAC1E;gBACH,CAAC,CAAC,OAAO;YACX,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC7F,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB;QACpC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,wCAAwC,OAAO,CAAC,UAAU,GAAG,CAAC;QACzF,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAChC,CAAC,CAAC,mEAAmE;YACrE,CAAC,CAAC,wCAAwC,OAAO,CAAC,UAAU,wBAAwB,CAAC;IACzF,OAAO;QACL,OAAO,EAAE;YACP,GAAG,OAAO;YACV,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC;gBACnE,GAAG,iBAAiB;aACrB;YACD,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAgB,EAAE,YAAY,EAAE,CAAC;SAC7E;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,OAMrC;IACC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAC7E,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC;QACzD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO;aAClC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;aAC5C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;aAC9B,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QAC3F,OAAO;YACL,0CAA0C,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;YAC9H,uBAAuB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,mBAAmB;YAC3F,iBAAiB,UAAU,CAAC,OAAO,aAAa;YAChD,oBAAoB,aAAa,CAAC,UAAU,IAAI,8BAA8B,CAAC,gBAAgB;YAC/F,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,UAAU,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,4BAA4B;SAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG;QAC3B,0EAA0E;QAC1E,yGAAyG;QACzG,sGAAsG;QACtG,oEAAoE;QACpE,mBAAmB,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,wBAAwB,CAAC,EAAE;QACpF,0BAA0B;QAC1B,GAAG,OAAO;QACV,2BAA2B;QAC3B,OAAO,CAAC,uBAAuB;YAC7B,CAAC,CAAC,8DAA8D;YAChE,CAAC,CAAC,yHAAyH;KAC9H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CACxD,UAAU,CAAC,OAAO;SACf,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;SAC7C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAC9C,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,iBAAiB,CAAC;oBACtB,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBACjD,oBAAoB,EAAE,CAAC,oBAAoB,CAAC;iBAC7C,CAAC;aACH;YACD,GAAG,MAAM;SACV;QACD,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7E,CAAC"}