@zenalexa/unicli 0.207.1 → 0.208.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/AGENTS.md +4 -4
  2. package/README.md +30 -17
  3. package/dist/browser/observe.d.ts +80 -0
  4. package/dist/browser/observe.d.ts.map +1 -0
  5. package/dist/browser/observe.js +144 -0
  6. package/dist/browser/observe.js.map +1 -0
  7. package/dist/browser/snapshot.d.ts.map +1 -1
  8. package/dist/browser/snapshot.js +29 -9
  9. package/dist/browser/snapshot.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +53 -2
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/eval.d.ts +112 -0
  14. package/dist/commands/eval.d.ts.map +1 -0
  15. package/dist/commands/eval.js +485 -0
  16. package/dist/commands/eval.js.map +1 -0
  17. package/dist/commands/mcp.d.ts +16 -0
  18. package/dist/commands/mcp.d.ts.map +1 -0
  19. package/dist/commands/mcp.js +135 -0
  20. package/dist/commands/mcp.js.map +1 -0
  21. package/dist/commands/operate.d.ts.map +1 -1
  22. package/dist/commands/operate.js +66 -1
  23. package/dist/commands/operate.js.map +1 -1
  24. package/dist/commands/skills.d.ts +91 -0
  25. package/dist/commands/skills.d.ts.map +1 -0
  26. package/dist/commands/skills.js +266 -0
  27. package/dist/commands/skills.js.map +1 -0
  28. package/dist/commands/usage.d.ts +17 -0
  29. package/dist/commands/usage.d.ts.map +1 -0
  30. package/dist/commands/usage.js +87 -0
  31. package/dist/commands/usage.js.map +1 -0
  32. package/dist/discovery/loader.d.ts +8 -1
  33. package/dist/discovery/loader.d.ts.map +1 -1
  34. package/dist/discovery/loader.js +100 -6
  35. package/dist/discovery/loader.js.map +1 -1
  36. package/dist/engine/update-check.js +1 -1
  37. package/dist/engine/update-check.js.map +1 -1
  38. package/dist/engine/yaml-runner.d.ts.map +1 -1
  39. package/dist/engine/yaml-runner.js +35 -1
  40. package/dist/engine/yaml-runner.js.map +1 -1
  41. package/dist/main.d.ts +1 -4
  42. package/dist/main.d.ts.map +1 -1
  43. package/dist/main.js +1 -4
  44. package/dist/main.js.map +1 -1
  45. package/dist/manifest.json +117 -1
  46. package/dist/mcp/server.d.ts +19 -6
  47. package/dist/mcp/server.d.ts.map +1 -1
  48. package/dist/mcp/server.js +401 -115
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/permissions/sensitive-paths.d.ts +92 -0
  51. package/dist/permissions/sensitive-paths.d.ts.map +1 -0
  52. package/dist/permissions/sensitive-paths.js +174 -0
  53. package/dist/permissions/sensitive-paths.js.map +1 -0
  54. package/dist/runtime/usage-ledger.d.ts +86 -0
  55. package/dist/runtime/usage-ledger.d.ts.map +1 -0
  56. package/dist/runtime/usage-ledger.js +173 -0
  57. package/dist/runtime/usage-ledger.js.map +1 -0
  58. package/package.json +8 -7
  59. package/src/adapters/autoagent/eval-run.yaml +36 -0
  60. package/src/adapters/cua/bench-list.yaml +20 -0
  61. package/src/adapters/cua/bench-run.yaml +32 -0
  62. package/src/adapters/godot/project-run.yaml +31 -0
  63. package/src/adapters/godot/scene-export.yaml +39 -0
  64. package/src/adapters/hermes/sessions-search.yaml +61 -0
  65. package/src/adapters/hermes/skills-list.yaml +30 -0
  66. package/src/adapters/hermes/skills-read.yaml +46 -0
  67. package/src/adapters/motion-studio/component-get.yaml +35 -0
  68. package/src/adapters/openharness/memory-read.yaml +51 -0
  69. package/src/adapters/openharness/skills-list.yaml +28 -0
  70. package/src/adapters/renderdoc/capture-list.yaml +42 -0
  71. package/src/adapters/renderdoc/frame-export.yaml +32 -0
  72. package/src/adapters/stagehand/wrap-observe.yaml +42 -0
package/AGENTS.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Uni-CLI
2
2
 
3
3
  <!-- IF YOU ARE AN AI AGENT: Read this file. It tells you everything you need.
4
- Install: npm install -g unicli
4
+ Install: npm install -g @zenalexa/unicli
5
5
  Run: unicli <site> <command> [args]
6
6
  Output is JSON when piped. Errors are structured JSON to stderr.
7
7
  You can fix broken adapters yourself — read the Self-Repair section. -->
8
8
 
9
- > 122 sites, 635 commands, 35 pipeline steps. One CLI. `npm install -g unicli`
9
+ > 134 sites, 711 commands, 35 pipeline steps. One CLI. `npm install -g @zenalexa/unicli`
10
10
 
11
11
  ## For AI Agents
12
12
 
@@ -22,7 +22,7 @@ unicli test [site] # Verify adapters work
22
22
  ## Install
23
23
 
24
24
  ```bash
25
- npm install -g unicli
25
+ npm install -g @zenalexa/unicli
26
26
  ```
27
27
 
28
28
  ## What You Can Do
@@ -176,4 +176,4 @@ The engine auto-probes the first three on first run. `intercept` and `ui` requir
176
176
 
177
177
  ## Version
178
178
 
179
- 0.207.1 — Vostok · Gagarin
179
+ 0.208.0 — Vostok · Titov
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- AGENT: npm install -g unicli && unicli list | 635 commands across 122 sites. JSON when piped. Self-repairing YAML adapters. unicli repair --loop for autonomous fix. See AGENTS.md -->
1
+ <!-- AGENT: npm install -g @zenalexa/unicli && unicli list | 711 commands across 134 sites. JSON when piped. Self-repairing YAML adapters. unicli repair --loop for autonomous fix. See AGENTS.md -->
2
2
 
3
3
  <h1 align="center">Uni-CLI</h1>
4
4
 
@@ -7,13 +7,13 @@
7
7
  </p>
8
8
 
9
9
  <p align="center">
10
- <a href="https://www.npmjs.com/package/unicli"><img src="https://img.shields.io/npm/v/unicli?style=flat-square" alt="npm"></a>
11
- <a href="https://nodejs.org"><img src="https://img.shields.io/node/v/unicli?style=flat-square" alt="Node.js"></a>
10
+ <a href="https://www.npmjs.com/package/@zenalexa/unicli"><img src="https://img.shields.io/npm/v/@zenalexa/unicli?style=flat-square" alt="npm"></a>
11
+ <a href="https://nodejs.org"><img src="https://img.shields.io/node/v/@zenalexa/unicli?style=flat-square" alt="Node.js"></a>
12
12
  <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="Apache-2.0"></a>
13
13
  </p>
14
14
 
15
15
  <p align="center">
16
- 122 sites · 635 commands · 35 pipeline steps · 29 template filters · Zero runtime dependencies beyond Node.js
16
+ 134 sites · 711 commands · 35 pipeline steps · 29 template filters · Zero runtime dependencies beyond Node.js
17
17
  </p>
18
18
 
19
19
  ---
@@ -23,7 +23,7 @@ Agents cannot draw in SolidWorks. Cannot design PCBs. Cannot run CFD simulations
23
23
  Uni-CLI fixes this. One command, structured JSON output, self-repairing YAML adapters. **~80 tokens per invocation** — two orders of magnitude cheaper than MCP.
24
24
 
25
25
  ```bash
26
- npm install -g unicli
26
+ npm install -g @zenalexa/unicli
27
27
  unicli hackernews top --limit 5 # Public API
28
28
  unicli bilibili hot # Chinese platform
29
29
  unicli twitter search "AI agents" # Authenticated
@@ -31,6 +31,19 @@ unicli blender render scene.blend # Desktop software
31
31
  unicli cursor ask "explain this code" # Electron app
32
32
  ```
33
33
 
34
+ ## Compared to
35
+
36
+ > Source-level honest comparison. Numbers are from a 2026-04-07 audit of cloned reference repos under `ref/`. Full breakdown in [docs/COMPARE.md](./docs/COMPARE.md).
37
+
38
+ | Project | Shape | Best when | Where Uni-CLI fits |
39
+ | ----------------------------- | ---------------------------------- | ----------------------------------- | ---------------------------------------------------- |
40
+ | **opencli** (14K) | TypeScript adapter hub | The genome — Uni-CLI extends it | Uni-CLI = 35 pipeline steps vs 15, +eval, +repair |
41
+ | **CLI-Anything** (29K, HKUDS) | Python adapter hub + skill gen | Desktop-app coverage (44 harnesses) | Uni-CLI = 134 sites web breadth, single-binary |
42
+ | **browser-use** (86K) | Python library, LLM per step | Open-ended browser tasks | Different shape — embed vs invoke |
43
+ | **goose** (38K, MCP-first) | MCP-host runtime | MCP-only environments | `unicli mcp serve` mounts as MCP server |
44
+ | **hermes-agent** (30K) | Agent w/ memory + multi-platform | Long-running personal agent | Different category — hermes is agent, Uni-CLI = tool |
45
+ | **Stagehand** | Browser-only `observe/act/extract` | Vision-grounded web tasks | Uni-CLI v0.208 ships `unicli operate observe` |
46
+
34
47
  ## Why CLI
35
48
 
36
49
  | Criterion | MCP | CLI (Uni-CLI) |
@@ -289,22 +302,22 @@ Following `sysexits.h`:
289
302
  ## Development
290
303
 
291
304
  ```bash
292
- git clone https://github.com/ZenAlexa/Uni-CLI.git && cd Uni-CLI
305
+ git clone https://github.com/olo-dot-io/Uni-CLI.git && cd Uni-CLI
293
306
  npm install
294
307
  npm run dev -- list # Test adapter loading
295
308
  npm run verify # format + typecheck + lint + test + build
296
309
  npm run test:adapter # Validate all 601 YAML/TS adapters
297
310
  ```
298
311
 
299
- | Command | Purpose |
300
- | ---------------------- | ------------------------- |
301
- | `npm run dev` | Development run |
302
- | `npm run build` | Production build |
303
- | `npm run typecheck` | TypeScript strict check |
304
- | `npm run lint` | Oxlint |
305
- | `npm run test` | Unit tests (272) |
306
- | `npm run test:adapter` | Adapter validation (2041) |
307
- | `npm run verify` | Full pipeline |
312
+ | Command | Purpose |
313
+ | ---------------------- | ----------------------- |
314
+ | `npm run dev` | Development run |
315
+ | `npm run build` | Production build |
316
+ | `npm run typecheck` | TypeScript strict check |
317
+ | `npm run lint` | Oxlint |
318
+ | `npm run test` | Unit tests (753) |
319
+ | `npm run test:adapter` | Adapter validation |
320
+ | `npm run verify` | Full pipeline |
308
321
 
309
322
  ## Technology
310
323
 
@@ -332,6 +345,6 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md). The fastest way to contribute: write a
332
345
  ---
333
346
 
334
347
  <p align="center">
335
- <sub>v0.207.1 — Vostok · Gagarin</sub><br>
336
- <sub>122 sites · 635 commands · 35 pipeline steps · 29 filters · 639 unit tests</sub>
348
+ <sub>v0.208.0 — Vostok · Titov</sub><br>
349
+ <sub>134 sites · 711 commands · 35 pipeline steps · 29 filters · 753 unit tests</sub>
337
350
  </p>
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Observe — preview ranked candidate browser actions before executing.
3
+ *
4
+ * Modeled on Stagehand's `observe()` (packages/core/lib/v3/v3.ts:540): the
5
+ * caller asks "what should I click to do X?" and gets back a small ranked
6
+ * list of `{action, ref, selector, confidence}` candidates. The agent (or
7
+ * human) then commits with `unicli operate click <ref>`.
8
+ *
9
+ * Why a separate verb (vs. just clicking the first match)?
10
+ * 1. **Self-healing**: when a selector breaks, the next-best candidate
11
+ * is one ref away.
12
+ * 2. **Auditability**: the candidates list goes into a JSONL cache so
13
+ * future runs can compare against past candidates and detect drift.
14
+ * 3. **LLM grounding (future)**: the heuristic ranker is good for
15
+ * obvious cases; ambiguous queries can later route through an LLM.
16
+ *
17
+ * The ranker here is intentionally pure (no DOM access) so it can be
18
+ * unit-tested. The browser-side code is responsible for snapshotting and
19
+ * extracting the candidate list — this file scores it.
20
+ */
21
+ export interface ObserveCandidate {
22
+ /**
23
+ * Imperative action to take next. Defaults to `click` for non-input
24
+ * elements; the input verb is `type` for textboxes / textareas.
25
+ */
26
+ action: "click" | "type" | "select" | "press";
27
+ /** Numeric ref from the snapshot — pass back to `operate click <ref>`. */
28
+ ref: number;
29
+ /** CSS selector for the same node. */
30
+ selector: string;
31
+ /** Original tag name (`a`, `button`, `input`, ...) */
32
+ tag: string;
33
+ /** Best human-readable label for the element (text or aria). */
34
+ label: string;
35
+ /** 0..1 confidence that this candidate matches the query. */
36
+ confidence: number;
37
+ /** Why we matched (token overlap, exact label, role match). */
38
+ reason: string;
39
+ }
40
+ /** A snapshot ref entry as produced by `generateSnapshotJs({ raw: true })`. */
41
+ export interface SnapshotRef {
42
+ ref: number;
43
+ tag: string;
44
+ text: string;
45
+ /** Optional attribute bag — populated when the snapshot was extended. */
46
+ attrs?: Record<string, string>;
47
+ }
48
+ /**
49
+ * Tokenize a query / label into lowercased word tokens. Strips most
50
+ * punctuation. Empty input returns []; the caller decides how to handle
51
+ * a no-tokens query (we treat it as "match nothing", which falls through
52
+ * to confidence 0).
53
+ */
54
+ export declare function tokenize(s: string): string[];
55
+ /**
56
+ * Score a single candidate against the query tokens. Returns a number in
57
+ * 0..1 plus a short reason explaining the match strength.
58
+ *
59
+ * Scoring rules (additive, capped at 1):
60
+ * - Exact label match (case-insensitive) → 0.95
61
+ * - All query tokens present in label → 0.85
62
+ * - Some query tokens present in label → 0.4 + (matched/total) * 0.4
63
+ * - Query token matches the tag (e.g. "button") → +0.15
64
+ * - Query token matches the role attribute → +0.10
65
+ */
66
+ export declare function scoreCandidate(ref: SnapshotRef, queryTokens: string[]): {
67
+ confidence: number;
68
+ reason: string;
69
+ };
70
+ /**
71
+ * Pick the action verb based on tag. Inputs and textareas get `type`;
72
+ * selects get `select`; everything else gets `click`.
73
+ */
74
+ export declare function actionForTag(tag: string): ObserveCandidate["action"];
75
+ /**
76
+ * Score every snapshot ref against the query and return top-K.
77
+ * Candidates with confidence == 0 are dropped.
78
+ */
79
+ export declare function rankCandidates(refs: SnapshotRef[], query: string, topK?: number): ObserveCandidate[];
80
+ //# sourceMappingURL=observe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../src/browser/observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC9C,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAO5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,MAAM,EAAE,GACpB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAqExC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAKpE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,SAAI,GACP,gBAAgB,EAAE,CAkBpB"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Observe — preview ranked candidate browser actions before executing.
3
+ *
4
+ * Modeled on Stagehand's `observe()` (packages/core/lib/v3/v3.ts:540): the
5
+ * caller asks "what should I click to do X?" and gets back a small ranked
6
+ * list of `{action, ref, selector, confidence}` candidates. The agent (or
7
+ * human) then commits with `unicli operate click <ref>`.
8
+ *
9
+ * Why a separate verb (vs. just clicking the first match)?
10
+ * 1. **Self-healing**: when a selector breaks, the next-best candidate
11
+ * is one ref away.
12
+ * 2. **Auditability**: the candidates list goes into a JSONL cache so
13
+ * future runs can compare against past candidates and detect drift.
14
+ * 3. **LLM grounding (future)**: the heuristic ranker is good for
15
+ * obvious cases; ambiguous queries can later route through an LLM.
16
+ *
17
+ * The ranker here is intentionally pure (no DOM access) so it can be
18
+ * unit-tested. The browser-side code is responsible for snapshotting and
19
+ * extracting the candidate list — this file scores it.
20
+ */
21
+ /**
22
+ * Tokenize a query / label into lowercased word tokens. Strips most
23
+ * punctuation. Empty input returns []; the caller decides how to handle
24
+ * a no-tokens query (we treat it as "match nothing", which falls through
25
+ * to confidence 0).
26
+ */
27
+ export function tokenize(s) {
28
+ if (!s)
29
+ return [];
30
+ return s
31
+ .toLowerCase()
32
+ .replace(/[^\w\u4e00-\u9fff\s]+/g, " ")
33
+ .split(/\s+/)
34
+ .filter((t) => t.length > 0);
35
+ }
36
+ /**
37
+ * Score a single candidate against the query tokens. Returns a number in
38
+ * 0..1 plus a short reason explaining the match strength.
39
+ *
40
+ * Scoring rules (additive, capped at 1):
41
+ * - Exact label match (case-insensitive) → 0.95
42
+ * - All query tokens present in label → 0.85
43
+ * - Some query tokens present in label → 0.4 + (matched/total) * 0.4
44
+ * - Query token matches the tag (e.g. "button") → +0.15
45
+ * - Query token matches the role attribute → +0.10
46
+ */
47
+ export function scoreCandidate(ref, queryTokens) {
48
+ if (queryTokens.length === 0)
49
+ return { confidence: 0, reason: "no query tokens" };
50
+ const labelTokens = tokenize(ref.text);
51
+ const labelStr = ref.text.toLowerCase().trim();
52
+ const queryStr = queryTokens.join(" ");
53
+ let confidence = 0;
54
+ const reasons = [];
55
+ // Exact match wins outright
56
+ if (labelStr && labelStr === queryStr) {
57
+ return { confidence: 0.95, reason: "exact label match" };
58
+ }
59
+ // All query tokens in label.
60
+ //
61
+ // Substring matching is only allowed for query tokens with length >= 3,
62
+ // otherwise short tokens like "on" produce false positives against any
63
+ // label containing "continue", "cancel", or similar. Short tokens fall
64
+ // back to exact equality, which is the strictest possible match.
65
+ const matched = queryTokens.filter((q) => {
66
+ if (q.length < 3) {
67
+ return labelTokens.some((l) => l === q);
68
+ }
69
+ return labelTokens.some((l) => l === q || l.includes(q) || (l.length >= 3 && q.includes(l)));
70
+ });
71
+ const ratio = matched.length / queryTokens.length;
72
+ if (ratio === 1 && queryTokens.length > 0) {
73
+ confidence = 0.85;
74
+ reasons.push("all query tokens in label");
75
+ }
76
+ else if (ratio > 0) {
77
+ confidence = 0.4 + ratio * 0.4;
78
+ reasons.push(`${matched.length}/${queryTokens.length} tokens in label`);
79
+ }
80
+ // Tag bonus — "button submit" boosts <button>
81
+ if (queryTokens.includes(ref.tag.toLowerCase())) {
82
+ confidence += 0.15;
83
+ reasons.push(`tag=${ref.tag}`);
84
+ }
85
+ // Role attr bonus
86
+ const role = ref.attrs?.role;
87
+ if (role && queryTokens.includes(role.toLowerCase())) {
88
+ confidence += 0.1;
89
+ reasons.push(`role=${role}`);
90
+ }
91
+ // Aria-label bonus — treat as label fallback
92
+ const aria = ref.attrs?.["aria-label"];
93
+ if (aria) {
94
+ const ariaTokens = tokenize(aria);
95
+ const ariaMatched = queryTokens.filter((q) => ariaTokens.includes(q));
96
+ if (ariaMatched.length > 0) {
97
+ confidence += 0.1;
98
+ reasons.push("aria-label match");
99
+ }
100
+ }
101
+ if (confidence > 1)
102
+ confidence = 1;
103
+ return {
104
+ confidence,
105
+ reason: reasons.length > 0 ? reasons.join(", ") : "no signal",
106
+ };
107
+ }
108
+ /**
109
+ * Pick the action verb based on tag. Inputs and textareas get `type`;
110
+ * selects get `select`; everything else gets `click`.
111
+ */
112
+ export function actionForTag(tag) {
113
+ const t = tag.toLowerCase();
114
+ if (t === "input" || t === "textarea")
115
+ return "type";
116
+ if (t === "select")
117
+ return "select";
118
+ return "click";
119
+ }
120
+ /**
121
+ * Score every snapshot ref against the query and return top-K.
122
+ * Candidates with confidence == 0 are dropped.
123
+ */
124
+ export function rankCandidates(refs, query, topK = 5) {
125
+ const queryTokens = tokenize(query);
126
+ const scored = [];
127
+ for (const ref of refs) {
128
+ const { confidence, reason } = scoreCandidate(ref, queryTokens);
129
+ if (confidence <= 0)
130
+ continue;
131
+ scored.push({
132
+ action: actionForTag(ref.tag),
133
+ ref: ref.ref,
134
+ selector: `[data-unicli-ref="${ref.ref}"]`,
135
+ tag: ref.tag,
136
+ label: ref.text || ref.attrs?.["aria-label"] || `<${ref.tag}>`,
137
+ confidence: Number(confidence.toFixed(3)),
138
+ reason,
139
+ });
140
+ }
141
+ scored.sort((a, b) => b.confidence - a.confidence);
142
+ return scored.slice(0, topK);
143
+ }
144
+ //# sourceMappingURL=observe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../../src/browser/observe.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/browser/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM,CA2LjE"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/browser/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM,CA+MjE"}
@@ -64,17 +64,29 @@ export function generateSnapshotJs(opts) {
64
64
  return '(' + up.toFixed(1) + '\\u2191 ' + down.toFixed(1) + '\\u2193)';
65
65
  }
66
66
 
67
- function getAttrs(el) {
68
- const keep = [];
69
- const tag = el.tagName.toLowerCase();
70
- const attrNames = ['type', 'name', 'value', 'placeholder', 'href', 'role',
67
+ const ATTR_NAMES = ['type', 'name', 'value', 'placeholder', 'href', 'role',
71
68
  'aria-label', 'aria-expanded', 'aria-checked', 'disabled',
72
69
  'readonly', 'required', 'checked', 'selected'];
73
- for (const a of attrNames) {
70
+
71
+ /** Build the { k: v } bag consumed by \`unicli operate observe\`. */
72
+ function collectAttrs(el) {
73
+ const bag = {};
74
+ for (const a of ATTR_NAMES) {
74
75
  if (el.hasAttribute(a)) {
75
- let val = el.getAttribute(a);
76
- if (a === 'href' && val && val.length > 80) val = val.slice(0, 77) + '...';
77
- keep.push(a + '="' + (val || '').replace(/"/g, '&quot;') + '"');
76
+ let val = el.getAttribute(a) || '';
77
+ if (a === 'href' && val.length > 80) val = val.slice(0, 77) + '...';
78
+ bag[a] = val;
79
+ }
80
+ }
81
+ return bag;
82
+ }
83
+
84
+ function getAttrs(el) {
85
+ const bag = collectAttrs(el);
86
+ const keep = [];
87
+ for (const a of ATTR_NAMES) {
88
+ if (a in bag) {
89
+ keep.push(a + '="' + bag[a].replace(/"/g, '&quot;') + '"');
78
90
  }
79
91
  }
80
92
  return keep.length ? ' ' + keep.join(' ') : '';
@@ -131,7 +143,15 @@ export function generateSnapshotJs(opts) {
131
143
  if (interactive) {
132
144
  const ref = ++refCounter;
133
145
  el.setAttribute('data-unicli-ref', String(ref));
134
- refs.push({ ref, tag: tag.toLowerCase(), text: textContent(el).slice(0, 50) });
146
+ // Refs carry the attribute bag so \`unicli operate observe\` can match
147
+ // role, aria-label, placeholder, etc. without re-parsing the rendered
148
+ // tree string. See src/browser/observe.ts scoreCandidate().
149
+ refs.push({
150
+ ref,
151
+ tag: tag.toLowerCase(),
152
+ text: textContent(el).slice(0, 50),
153
+ attrs: collectAttrs(el),
154
+ });
135
155
  line += '[' + ref + ']';
136
156
  }
137
157
 
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/browser/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC;IAE/B,0EAA0E;IAC1E,OAAO;wBACe,WAAW,KAAK,IAAI;oBACxB,OAAO,KAAK,IAAI;sBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3E,GAAG,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+KvB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/browser/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC;IAE/B,0EAA0E;IAC1E,OAAO;wBACe,WAAW,KAAK,IAAI;oBACxB,OAAO,KAAK,IAAI;sBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3E,GAAG,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmMvB,CAAC;AACN,CAAC"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BpC,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAuelD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCpC,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CA2hBlD"}
package/dist/cli.js CHANGED
@@ -25,6 +25,11 @@ import { registerGenerateCommand } from "./commands/generate.js";
25
25
  import { registerHealthCommand } from "./commands/health.js";
26
26
  import { registerAgentsCommand } from "./commands/agents.js";
27
27
  import { registerRepairCommand } from "./commands/repair.js";
28
+ import { registerSkillsCommand } from "./commands/skills.js";
29
+ import { registerUsageCommands } from "./commands/usage.js";
30
+ import { registerMcpCommand } from "./commands/mcp.js";
31
+ import { registerEvalCommand } from "./commands/eval.js";
32
+ import { recordUsage } from "./runtime/usage-ledger.js";
28
33
  import { emitHook } from "./hooks.js";
29
34
  import { checkForUpdates } from "./engine/update-check.js";
30
35
  export async function createCli() {
@@ -33,7 +38,7 @@ export async function createCli() {
33
38
  checkForUpdates();
34
39
  program
35
40
  .name("unicli")
36
- .description("CLI IS ALL YOU NEED Universal CLI for AI agents")
41
+ .description("The universal interface between AI agents and the world's software")
37
42
  .version(VERSION)
38
43
  .option("-f, --format <format>", "output format: table, json, yaml, csv, md")
39
44
  .option("-v, --verbose", "show pipeline debug steps");
@@ -192,6 +197,14 @@ export async function createCli() {
192
197
  await emitHook("onStartup", { command: "__startup__", args: {} });
193
198
  // Register repair command — self-repair broken adapters using AI
194
199
  registerRepairCommand(program);
200
+ // Register skills command — export adapter SKILL.md files for agent registries
201
+ registerSkillsCommand(program);
202
+ // Register usage command — read the per-call cost ledger
203
+ registerUsageCommands(program);
204
+ // Register mcp command — MCP gateway server + health check
205
+ registerMcpCommand(program);
206
+ // Register eval command — declarative regression suites
207
+ registerEvalCommand(program);
195
208
  // Register "test" command — run all commands for a site
196
209
  program
197
210
  .command("test [site]")
@@ -282,6 +295,7 @@ export async function createCli() {
282
295
  }
283
296
  }
284
297
  subCmd.action(async (...actionArgs) => {
298
+ const startedAt = Date.now();
285
299
  // Commander passes positional args first, then opts object, then Command
286
300
  const opts = actionArgs[actionArgs.length - 2];
287
301
  const positionals = actionArgs.slice(0, actionArgs.length - 2);
@@ -340,9 +354,28 @@ export async function createCli() {
340
354
  else {
341
355
  console.log(chalk.dim("No results"));
342
356
  }
357
+ recordUsage({
358
+ site: adapter.name,
359
+ cmd: cmdName,
360
+ strategy: adapter.strategy ?? "unknown",
361
+ tokens: 0,
362
+ ms: Date.now() - startedAt,
363
+ bytes: 0,
364
+ exit: ExitCode.EMPTY_RESULT,
365
+ });
343
366
  process.exit(ExitCode.EMPTY_RESULT);
344
367
  }
345
- console.log(format(results, cmd.columns, fmt));
368
+ const rendered = format(results, cmd.columns, fmt);
369
+ console.log(rendered);
370
+ recordUsage({
371
+ site: adapter.name,
372
+ cmd: cmdName,
373
+ strategy: adapter.strategy ?? "unknown",
374
+ tokens: 0,
375
+ ms: Date.now() - startedAt,
376
+ bytes: Buffer.byteLength(rendered, "utf-8"),
377
+ exit: ExitCode.SUCCESS,
378
+ });
346
379
  }
347
380
  catch (err) {
348
381
  if (err instanceof PipelineError) {
@@ -363,6 +396,15 @@ export async function createCli() {
363
396
  : agentError.errorType === "empty_result"
364
397
  ? ExitCode.EMPTY_RESULT
365
398
  : ExitCode.GENERIC_ERROR;
399
+ recordUsage({
400
+ site: adapter.name,
401
+ cmd: cmdName,
402
+ strategy: adapter.strategy ?? "unknown",
403
+ tokens: 0,
404
+ ms: Date.now() - startedAt,
405
+ bytes: 0,
406
+ exit: exitCode,
407
+ });
366
408
  process.exit(exitCode);
367
409
  }
368
410
  const message = err instanceof Error ? err.message : String(err);
@@ -372,6 +414,15 @@ export async function createCli() {
372
414
  else {
373
415
  console.error(chalk.red(`Error: ${message}`));
374
416
  }
417
+ recordUsage({
418
+ site: adapter.name,
419
+ cmd: cmdName,
420
+ strategy: adapter.strategy ?? "unknown",
421
+ tokens: 0,
422
+ ms: Date.now() - startedAt,
423
+ bytes: 0,
424
+ exit: ExitCode.GENERIC_ERROR,
425
+ });
375
426
  process.exit(ExitCode.GENERIC_ERROR);
376
427
  }
377
428
  });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACL,yBAAyB,EACzB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,8CAA8C;IAC9C,eAAe,EAAE,CAAC;IAElB,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CACV,oEAAoE,CACrE;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CACL,uBAAuB,EACvB,2CAA2C,CAC5C;SACA,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;IAExD,oEAAoE;IACpE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;IAEzC,0BAA0B;IAC1B,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;SAC9C,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACjD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,GAAG,GAAG,YAAY,CACtB,OAAO,CAAC,IAAI,EAAE,CAAC,MAAkC,CAClD,CAAC;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SAC7B,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CACtE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,4BAA4B;IAC5B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE3C,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,EAAE,iBAAiB,EAAE,GACzB,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG,CACvE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,6BAA6B,CACxE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,6BAA6B,CACxE,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC;YACH,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAClC,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,IAAI,GAAG,CAC7D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,8BAA8B,CAC1E,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,8BAA8B,CAC1E,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACpB,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,UAAU,CAAC,OAAO,SAAS,EAAE,CAC9E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,kCAAkC,CACnE,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG;YACZ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE;SAC7C,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBACxD,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,uCAAuC,CAC3F,CAAC;YACJ,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CACrE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CACvB,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,UAAU,EAAE,CAC7E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEL,6CAA6C;IAC7C,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE9B,oDAAoD;IACpD,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,kDAAkD;IAClD,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,qDAAqD;IACrD,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEnC,qEAAqE;IACrE,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,2EAA2E;IAC3E,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,4DAA4D;IAC5D,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,iFAAiF;IACjF,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,0DAA0D;IAC1D,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7B,4DAA4D;IAC5D,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5B,kDAAkD;IAClD,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,iEAAiE;IACjE,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEnC,iEAAiE;IACjE,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,mDAAmD;IACnD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,sDAAsD;IACtD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,4CAA4C;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC3D,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;QACrD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACtD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;IAED,sDAAsD;IACtD,MAAM,QAAQ,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAElE,iEAAiE;IACjE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,+EAA+E;IAC/E,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,yDAAyD;IACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,2DAA2D;IAC3D,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5B,wDAAwD;IACxD,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7B,wDAAwD;IACxD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,OAAO,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,IAA4B,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;QACpD,MAAM,cAAc,GAAG,IAAI;YACzB,CAAC,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;YACjD,CAAC,CAAC,cAAc,EAAE,CAAC;QAErB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CACjE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAE7C,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,kBAAkB,CAAC,CAAC,CAAC;oBACvD,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBAED,wEAAwE;gBACxE,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,CAClC,CAAC;gBACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,KAAK,OAAO,qBAAqB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC/E,CACF,CAAC;oBACF,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;oBACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;oBAE5D,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,GAAG,CAAC,QAAQ,EACZ,EAAE,KAAK,EAAE,CAAC,EAAE,EACZ,OAAO,CAAC,IAAI,EACZ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CACnD,CAAC;oBACF,YAAY,CAAC,KAAK,CAAC,CAAC;oBAEpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,QAAQ,OAAO,CAAC,MAAM,WAAW,CAAC,CAC3D,CAAC;wBACF,MAAM,EAAE,CAAC;oBACX,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,aAAa,CAAC,CAAC,CAAC;wBACrD,MAAM,EAAE,CAAC;oBACX,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9D,MAAM,EAAE,CAAC;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,cAAc,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE,CACtH,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEL,8DAA8D;IAC9D,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO;aACpB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;aACrB,WAAW,CACV,OAAO,CAAC,WAAW;YACjB,gBAAgB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CACxD,CAAC;QAEJ,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,IAAI,MAAM,GAAG,OAAO,CAAC;YAErB,wDAAwD;YACxD,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YAE1E,4BAA4B;YAC5B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YACpD,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE5B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrD,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC;oBACrC,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;oBACnC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;oBACjD,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,UAAqB,EAAE,EAAE;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,yEAAyE;gBACzE,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAG5C,CAAC;gBACF,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAClC,CAAC,EACD,UAAU,CAAC,MAAM,GAAG,CAAC,CACV,CAAC;gBAEd,MAAM,GAAG,GAAG,YAAY,CACtB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,GAAG,CAAC,aAAa,CAE9B,CACd,CAAC;gBAEF,kDAAkD;gBAClD,MAAM,UAAU,GAA4B;oBAC1C,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE;iBACtC,CAAC;gBAEF,wBAAwB;gBACxB,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,IAAI,GAAG,CAAC,UAAU,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;wBAClD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAED,oBAAoB;gBACpB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;wBACpD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;4BAClB,GAAG,CAAC,IAAI,KAAK,KAAK;gCAChB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCAC9B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;yBAAM,IACL,CAAC,GAAG,CAAC,UAAU;wBACf,GAAG,CAAC,OAAO,KAAK,SAAS;wBACzB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAClC,CAAC;wBACD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;oBACrC,CAAC;gBACH,CAAC;gBAED,wDAAwD;gBACxD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;gBACpD,CAAC;gBAED,IAAI,CAAC;oBACH,IAAI,OAAkB,CAAC;oBAEvB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACjB,0BAA0B;wBAC1B,OAAO,GAAG,MAAM,WAAW,CACzB,GAAG,CAAC,QAAQ,EACZ,UAAU,EACV,OAAO,CAAC,IAAI,EACZ;4BACE,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;yBAC3B,CACF,CAAC;oBACJ,CAAC;yBAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;wBACpB,8BAA8B;wBAC9B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAa,EAAE,UAAU,CAAC,CAAC;wBACtD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC7C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAC9D,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACtC,CAAC;oBAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACzB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;4BACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACpB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;wBACvC,CAAC;wBACD,WAAW,CAAC;4BACV,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,GAAG,EAAE,OAAO;4BACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;4BACvC,MAAM,EAAE,CAAC;4BACT,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;4BAC1B,KAAK,EAAE,CAAC;4BACR,IAAI,EAAE,QAAQ,CAAC,YAAY;yBAC5B,CAAC,CAAC;wBACH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACtC,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACtB,WAAW,CAAC;wBACV,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,GAAG,EAAE,OAAO;wBACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;wBACvC,MAAM,EAAE,CAAC;wBACT,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;wBAC1B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;wBAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO;qBACvB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;wBACjC,0DAA0D;wBAC1D,sCAAsC;wBACtC,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAChC,gBAAgB,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAC/C,CAAC;wBACF,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;4BAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;wBACrD,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BAClD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BAC7D,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAC/D,CAAC;4BACF,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CAAC,iBAAiB,UAAU,CAAC,UAAU,EAAE,CAAC,CACvD,CAAC;wBACJ,CAAC;wBACD,MAAM,QAAQ,GACZ,UAAU,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,KAAK,GAAG;4BAC5D,CAAC,CAAC,QAAQ,CAAC,aAAa;4BACxB,CAAC,CAAC,UAAU,CAAC,SAAS,KAAK,cAAc;gCACvC,CAAC,CAAC,QAAQ,CAAC,YAAY;gCACvB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;wBAC/B,WAAW,CAAC;4BACV,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,GAAG,EAAE,OAAO;4BACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;4BACvC,MAAM,EAAE,CAAC;4BACT,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;4BAC1B,KAAK,EAAE,CAAC;4BACR,IAAI,EAAE,QAAQ;yBACf,CAAC,CAAC;wBACH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,CAAC;oBAED,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjE,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;wBACnB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBACpD,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;oBAChD,CAAC;oBACD,WAAW,CAAC;wBACV,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,GAAG,EAAE,OAAO;wBACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;wBACvC,MAAM,EAAE,CAAC;wBACT,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;wBAC1B,KAAK,EAAE,CAAC;wBACR,IAAI,EAAE,QAAQ,CAAC,aAAa;qBAC7B,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,MAAM,GACV,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI;aACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;aACpD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}