@securecode-ai/mcp 0.6.1 → 0.8.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 (66) hide show
  1. package/README.md +32 -3
  2. package/dist/api/types.d.ts +27 -0
  3. package/dist/approval/policy.js +7 -2
  4. package/dist/approval/policy.js.map +1 -1
  5. package/dist/attack/agentCorroboration.d.ts +14 -0
  6. package/dist/attack/agentCorroboration.js +98 -0
  7. package/dist/attack/agentCorroboration.js.map +1 -0
  8. package/dist/attack/agentLoop.js +9 -6
  9. package/dist/attack/agentLoop.js.map +1 -1
  10. package/dist/attack/agentScanExecutor.d.ts +6 -2
  11. package/dist/attack/agentScanExecutor.js +62 -21
  12. package/dist/attack/agentScanExecutor.js.map +1 -1
  13. package/dist/attack/agentScanLoop.js +130 -94
  14. package/dist/attack/agentScanLoop.js.map +1 -1
  15. package/dist/attack/agentScanProtocol.d.ts +13 -4
  16. package/dist/attack/agentScanProtocol.js.map +1 -1
  17. package/dist/attack/architectureScoutLoop.js +1 -1
  18. package/dist/attack/architectureScoutLoop.js.map +1 -1
  19. package/dist/attack/investigationState.d.ts +32 -4
  20. package/dist/attack/investigationState.js +98 -10
  21. package/dist/attack/investigationState.js.map +1 -1
  22. package/dist/attack/observationLimits.d.ts +12 -0
  23. package/dist/attack/observationLimits.js +16 -0
  24. package/dist/attack/observationLimits.js.map +1 -0
  25. package/dist/attack/policy.d.ts +1 -0
  26. package/dist/attack/policy.js +1 -0
  27. package/dist/attack/policy.js.map +1 -1
  28. package/dist/attack/probeRules.d.ts +51 -0
  29. package/dist/attack/probeRules.js +291 -0
  30. package/dist/attack/probeRules.js.map +1 -0
  31. package/dist/attack/protocol.d.ts +16 -0
  32. package/dist/attack/qualityMetrics.js +3 -0
  33. package/dist/attack/qualityMetrics.js.map +1 -1
  34. package/dist/attack/report.d.ts +3 -1
  35. package/dist/attack/report.js +4 -2
  36. package/dist/attack/report.js.map +1 -1
  37. package/dist/attack/runtimeProbe.d.ts +71 -0
  38. package/dist/attack/runtimeProbe.js +300 -0
  39. package/dist/attack/runtimeProbe.js.map +1 -0
  40. package/dist/attack/scanScheduler.d.ts +7 -0
  41. package/dist/attack/scanScheduler.js +58 -33
  42. package/dist/attack/scanScheduler.js.map +1 -1
  43. package/dist/audit/findingReviewQueue.d.ts +1 -1
  44. package/dist/audit/findingReviewQueue.js.map +1 -1
  45. package/dist/auth/credentialStore.js +1 -1
  46. package/dist/auth/credentialStore.js.map +1 -1
  47. package/dist/auth/keychain.js +80 -80
  48. package/dist/auth/keychain.js.map +1 -1
  49. package/dist/mcp/server.js +5 -1
  50. package/dist/mcp/server.js.map +1 -1
  51. package/dist/mcp/tools.js +8 -9
  52. package/dist/mcp/tools.js.map +1 -1
  53. package/dist/project-map/architectureContext.d.ts +1 -1
  54. package/dist/project-map/architectureContext.js +1 -1
  55. package/dist/project-map/scanCache.d.ts +6 -1
  56. package/dist/project-map/scanCache.js +6 -1
  57. package/dist/project-map/scanCache.js.map +1 -1
  58. package/dist/tools/agentScan.d.ts +9 -1
  59. package/dist/tools/agentScan.js +156 -5
  60. package/dist/tools/agentScan.js.map +1 -1
  61. package/dist/tools/attack.js +1 -1
  62. package/dist/tools/attack.js.map +1 -1
  63. package/dist/tools/map.js +1 -1
  64. package/dist/utils/verificationSandbox.js +43 -2
  65. package/dist/utils/verificationSandbox.js.map +1 -1
  66. package/package.json +62 -62
package/README.md CHANGED
@@ -117,14 +117,14 @@ claude mcp add securecode -s user -- securecode-mcp serve --workspace /path/to/y
117
117
 
118
118
  | Tool | Description | Approval |
119
119
  |------|-------------|----------|
120
- | `securecode.map` | Build project map: endpoints, middleware, auth, architecture context | No |
120
+ | `securecode.architecture` | Run the AI architecture scout: ranked important files, trust boundaries, security controls, recommended scan order (uses AI credits, cached per depth) | No |
121
121
 
122
122
  ### Fixes & Testing
123
123
 
124
124
  | Tool | Description | Approval |
125
125
  |------|-------------|----------|
126
126
  | `securecode.fix` | Generate a patch for a specific finding | Yes |
127
- | `securecode.attack` | Endpoint red-team testing (beta) | Yes |
127
+ | `securecode.attack` | Endpoint red-team testing (beta) with deterministic corroboration — findings arrive confirmed/refuted with rule citations, not just "suspected" | Yes |
128
128
  | `securecode.run-tests` | Run tests in sandbox for verification | Yes |
129
129
 
130
130
  ### Agent Memory (FP Learning)
@@ -167,7 +167,8 @@ The agent scan (`securecode.agent-scan`) is an AI security investigator that:
167
167
  6. **Self-critiques** before reporting (selfCritique field)
168
168
  7. **Gets reviewed** by an independent critique LLM
169
169
  8. **Proves** findings in a sandbox (PROVEN/UNPROVEN)
170
- 9. **Generates fixes** for proven findings
170
+ 9. **Runtime-verifies** HTTP findings the sandbox can't reach — with your approval, executes baseline + attack requests against your local dev server to confirm real-world impact
171
+ 10. **Generates fixes** for proven findings
171
172
 
172
173
  Agent tools (20+): `read_file`, `search_code`, `trace_flow`, `trace_flow_cross_file`, `check_guard`, `check_policy`, `get_endpoints`, `list_imports`, `list_files`, `call_graph`, `git_blame`, `git_history`, `git_diff`, `check_dependencies`, `read_config`, `find_definition`, `find_references`, `find_tests`, `run_tests`, `finish`.
173
174
 
@@ -179,6 +180,32 @@ The deterministic control plane enforces proof quality:
179
180
 
180
181
  Languages: JavaScript, TypeScript, Python (partial).
181
182
 
183
+ ## Runtime Verification
184
+
185
+ Some findings can't be proven in a sandbox — auth bypasses, runtime-dependent behavior, effects that only manifest in a live server. When an agent scan produces an HTTP-shaped finding that the sandbox couldn't prove, SecureCode can verify it against your **local dev server**:
186
+
187
+ 1. The agent generates a minimal probe plan (a baseline request + attack requests) grounded in its attack library
188
+ 2. You approve the probe once per scan (60-second approval window — silently skipped if you don't respond)
189
+ 3. SecureCode executes the plan against `127.0.0.1:<port>` and maps the outcome to a deterministic verdict
190
+
191
+ Confirmed probes upgrade the finding to **impact-confirmed** with live response evidence.
192
+
193
+ **Safety rails:**
194
+ - Localhost only — no external traffic, ever
195
+ - Unauthenticated endpoints only; auth headers (`Authorization`, cookies, API keys) are stripped from generated plans
196
+ - Relative paths only, whitelisted methods, read-only payloads
197
+ - Max 8 requests per finding, max 3 probed findings per scan (severity-ordered)
198
+ - Plan credits are refunded if no probe can run
199
+
200
+ **Dev server discovery** (first match wins):
201
+ 1. `SECURECODE_DEV_SERVER_PORT` environment variable
202
+ 2. `.securecode/runtime-probe.json` in the workspace root: `{ "port": 3000 }`
203
+ 3. Auto-detect across common dev ports (3000, 3001, 4000, 5173, 5174, 8000, 8080)
204
+
205
+ Disable entirely with `SECURECODE_DISABLE_RUNTIME_PROBE=1`.
206
+
207
+ > Note: probes currently fire for findings on endpoints the project map can detect (Express/Fastify-style routes). Support for other frameworks is on the roadmap.
208
+
182
209
  ## Environment Variables
183
210
 
184
211
  | Variable | Default | Description |
@@ -186,6 +213,8 @@ Languages: JavaScript, TypeScript, Python (partial).
186
213
  | `SECURECODE_API_TOKEN` | — | API token (alternative to login) |
187
214
  | `SECURECODE_API_URL` | `https://api.usesecurecode.tech` | API base URL |
188
215
  | `SECURECODE_ATTACK_ENABLED` | — | Set to `1` to enable the attack tool |
216
+ | `SECURECODE_DEV_SERVER_PORT` | auto | Local dev server port for runtime verification |
217
+ | `SECURECODE_DISABLE_RUNTIME_PROBE` | — | Set to `1` to disable runtime verification probes |
189
218
 
190
219
  ## Security
191
220
 
@@ -230,3 +230,30 @@ export interface VerifyAnalyzeResponse {
230
230
  /** Dollar cost the API charged for this analyze call (credits → USD). */
231
231
  costUsd?: number;
232
232
  }
233
+ export interface VerifyProbePlanRequest {
234
+ finding: {
235
+ type: string;
236
+ line: number;
237
+ lineEnd?: number;
238
+ evidence: string;
239
+ why: string;
240
+ severity: string;
241
+ };
242
+ endpoint: {
243
+ method: string;
244
+ path: string;
245
+ mountedPath?: string;
246
+ params?: unknown[];
247
+ authScheme?: string;
248
+ middleware?: unknown[];
249
+ };
250
+ framework?: string;
251
+ devServerPort?: number;
252
+ }
253
+ export interface VerifyProbePlanResponse {
254
+ canProbe: boolean;
255
+ skipReason?: string;
256
+ plan: import('../attack/runtimeProbe').ProbePlan | null;
257
+ costUsd: number;
258
+ scanCredits: number;
259
+ }
@@ -9,8 +9,8 @@ exports.TOOL_POLICIES = {
9
9
  category: 'read-only',
10
10
  requiresApproval: false,
11
11
  },
12
- 'securecode.map': {
13
- name: 'securecode.map',
12
+ 'securecode.architecture': {
13
+ name: 'securecode.architecture',
14
14
  category: 'read-only',
15
15
  requiresApproval: false,
16
16
  },
@@ -93,6 +93,11 @@ exports.TOOL_POLICIES = {
93
93
  requiresApproval: true,
94
94
  approvalNote: 'Attack sends HTTP probes to a localhost server. Approval required. Currently disabled via SECURECODE_ATTACK_ENABLED.',
95
95
  },
96
+ 'securecode.runtime-probe': {
97
+ name: 'securecode.runtime-probe',
98
+ category: 'paid-generation',
99
+ requiresApproval: true,
100
+ },
96
101
  };
97
102
  function getToolPolicy(toolName) {
98
103
  return exports.TOOL_POLICIES[toolName];
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/approval/policy.ts"],"names":[],"mappings":";;;AAqGA,sCAEC;AAED,oEAQC;AAxGY,QAAA,aAAa,GAA+B;IACrD,iBAAiB,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,gBAAgB,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,8BAA8B,EAAE;QAC5B,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,uBAAuB,EAAE;QACrB,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,yBAAyB,EAAE;QACvB,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,uBAAuB,EAAE;QACrB,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,2GAA2G;KAC5H;IACD,6BAA6B,EAAE;QAC3B,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,kCAAkC,EAAE;QAChC,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,6BAA6B,EAAE;QAC3B,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,+BAA+B,EAAE;QAC7B,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,2BAA2B,EAAE;QACzB,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,4BAA4B,EAAE;QAC1B,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,2BAA2B,EAAE;QACzB,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,kCAAkC,EAAE;QAChC,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,WAAW;QACrB,gBAAgB,EAAE,KAAK;KAC1B;IACD,gBAAgB,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,iBAAiB;QAC3B,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,0GAA0G;KAC3H;IACD,sBAAsB,EAAE;QACpB,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,iBAAiB;QAC3B,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,4EAA4E;KAC7F;IACD,mBAAmB,EAAE;QACjB,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,iBAAiB;QAC3B,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,sHAAsH;KACvI;CACJ,CAAC;AAEF,SAAgB,aAAa,CAAC,QAAgB;IAC1C,OAAO,qBAAa,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,4BAA4B,CAAC,eAAyB;IAClE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,CAAC,qBAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/approval/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Deterministic finding corroboration — port of api/src/attacker/agentCorroboration.ts.
3
+ *
4
+ * assembleAgentFindings maps a finish action's findings onto the transcript and
5
+ * stamps each one via the full deterministic probe rules (probeRules.ts): a
6
+ * finding is only 'confirmed' when its cited step's observation satisfies the
7
+ * action's declared expect. corroborateStep keeps the API's per-step seam but
8
+ * is strengthened from the API's minimal rule-0 check to the full rule set.
9
+ */
10
+ import type { AgentFinding, AgentTranscriptStep } from './protocol';
11
+ import { type ProbeRuleRequest, type ProbeRuleResponse, type ProbeRuleResult } from './probeRules';
12
+ import { type ReportedAgentFinding } from './report';
13
+ export declare function corroborateStep(attackReq: ProbeRuleRequest, attackResp: ProbeRuleResponse | null, baselineReq?: ProbeRuleRequest | null, baselineResp?: ProbeRuleResponse | null): ProbeRuleResult;
14
+ export declare function assembleAgentFindings(findings: AgentFinding[], transcript: AgentTranscriptStep[]): ReportedAgentFinding[];
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * Deterministic finding corroboration — port of api/src/attacker/agentCorroboration.ts.
4
+ *
5
+ * assembleAgentFindings maps a finish action's findings onto the transcript and
6
+ * stamps each one via the full deterministic probe rules (probeRules.ts): a
7
+ * finding is only 'confirmed' when its cited step's observation satisfies the
8
+ * action's declared expect. corroborateStep keeps the API's per-step seam but
9
+ * is strengthened from the API's minimal rule-0 check to the full rule set.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.corroborateStep = corroborateStep;
13
+ exports.assembleAgentFindings = assembleAgentFindings;
14
+ const probeRules_1 = require("./probeRules");
15
+ const report_1 = require("./report");
16
+ const REFUTED_NOTE = 'Probe rules refuted the cited step — needs review';
17
+ function toRuleRequest(action) {
18
+ return {
19
+ method: action.method,
20
+ path: action.path,
21
+ headers: action.headers,
22
+ body: action.body,
23
+ successStatus: action.expect?.successStatus,
24
+ successBodyPattern: action.expect?.successBodyPattern,
25
+ successHeaders: action.expect?.successHeaders,
26
+ successLatencyMs: action.expect?.successLatencyMs,
27
+ successConfirmedBy: action.expect?.successConfirmedBy,
28
+ successEvidenceNeeded: action.expect?.successEvidenceNeeded,
29
+ expectedStatus: action.expect?.expectedStatus,
30
+ authRequired: action.expect?.authRequired,
31
+ authEnvVars: action.expect?.authEnvVars,
32
+ };
33
+ }
34
+ function toRuleResponse(observation) {
35
+ return {
36
+ statusCode: observation.statusCode,
37
+ headers: observation.headers,
38
+ body: observation.body,
39
+ latencyMs: observation.latencyMs,
40
+ };
41
+ }
42
+ function corroborateStep(attackReq, attackResp, baselineReq = null, baselineResp = null) {
43
+ return (0, probeRules_1.applyProbeRules)(attackReq, attackResp, baselineReq, baselineResp);
44
+ }
45
+ function baselinePair(evidenceStepIndex, transcript) {
46
+ if (evidenceStepIndex <= 0)
47
+ return null;
48
+ const first = transcript[0];
49
+ if (!first)
50
+ return null;
51
+ return {
52
+ req: toRuleRequest(first.action),
53
+ resp: first.observation.error ? null : toRuleResponse(first.observation),
54
+ };
55
+ }
56
+ function assembleAgentFindings(findings, transcript) {
57
+ return findings.map((finding) => {
58
+ const step = transcript[finding.evidenceStepIndex];
59
+ if (!step) {
60
+ return {
61
+ ...finding,
62
+ confirmation: 'suspected',
63
+ reason: `Evidence step ${finding.evidenceStepIndex} missing`,
64
+ };
65
+ }
66
+ if (!step.action.expect) {
67
+ return {
68
+ ...finding,
69
+ confirmation: 'suspected',
70
+ reason: report_1.SUSPECTED_FINDING_REASON,
71
+ };
72
+ }
73
+ const baseline = baselinePair(finding.evidenceStepIndex, transcript);
74
+ const result = corroborateStep(toRuleRequest(step.action), step.observation.error ? null : toRuleResponse(step.observation), baseline?.req ?? null, baseline?.resp ?? null);
75
+ if (result.verdict === 'confirmed-bypass') {
76
+ return {
77
+ ...finding,
78
+ confirmation: 'confirmed',
79
+ rule: result.rule,
80
+ reason: result.reason,
81
+ };
82
+ }
83
+ if (result.verdict === 'refuted') {
84
+ return {
85
+ ...finding,
86
+ confirmation: 'suspected',
87
+ rule: result.rule,
88
+ reason: REFUTED_NOTE,
89
+ };
90
+ }
91
+ return {
92
+ ...finding,
93
+ confirmation: 'suspected',
94
+ reason: report_1.SUSPECTED_FINDING_REASON,
95
+ };
96
+ });
97
+ }
98
+ //# sourceMappingURL=agentCorroboration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentCorroboration.js","sourceRoot":"","sources":["../../src/attack/agentCorroboration.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runAttack = runAttack;
4
4
  const client_1 = require("../api/client");
5
+ const agentCorroboration_1 = require("./agentCorroboration");
5
6
  const executor_1 = require("./executor");
6
7
  const policy_1 = require("./policy");
7
8
  const report_1 = require("./report");
@@ -72,18 +73,19 @@ async function runAttack(ctx, endpoint, code, language, options) {
72
73
  runtimeConfirmed: false,
73
74
  };
74
75
  const transcript = [];
76
+ let costSpentUsd = 0;
75
77
  while (true) {
76
78
  const budgetCheck = (0, policy_1.checkBudget)(budget, state);
77
79
  if (budgetCheck.exhausted) {
78
80
  return {
79
81
  status: 'capped',
80
- report: (0, report_1.buildReport)('capped', [], transcript, stepsTaken, 0, budgetCheck.reason),
82
+ report: (0, report_1.buildReport)('capped', [], transcript, stepsTaken, costSpentUsd, budgetCheck.reason),
81
83
  };
82
84
  }
83
85
  if (options.signal?.aborted) {
84
86
  return {
85
87
  status: 'cancelled',
86
- report: (0, report_1.buildReport)('cancelled', [], transcript, stepsTaken, 0, 'Cancelled by user'),
88
+ report: (0, report_1.buildReport)('cancelled', [], transcript, stepsTaken, costSpentUsd, 'Cancelled by user'),
87
89
  };
88
90
  }
89
91
  const stepResp = await client.postJson('/attack/agent/step', {
@@ -94,14 +96,15 @@ async function runAttack(ctx, endpoint, code, language, options) {
94
96
  transcript,
95
97
  budget: {
96
98
  stepsRemaining: budget.maxSteps - stepsTaken,
97
- costSpentUsd: 0,
98
- costCapUsd: 0,
99
+ costSpentUsd,
100
+ costCapUsd: budget.costCapUsd,
99
101
  },
100
102
  });
103
+ costSpentUsd += stepResp.costUsd || 0;
101
104
  if (!stepResp.next) {
102
105
  return {
103
106
  status: stepResp.costCapped ? 'capped' : (stepResp.degraded ? 'degraded' : 'completed'),
104
- report: (0, report_1.buildReport)(stepResp.costCapped ? 'capped' : 'completed', [], transcript, stepsTaken, stepResp.costUsd || 0),
107
+ report: (0, report_1.buildReport)(stepResp.costCapped ? 'capped' : 'completed', [], transcript, stepsTaken, costSpentUsd),
105
108
  };
106
109
  }
107
110
  const action = stepResp.next;
@@ -110,7 +113,7 @@ async function runAttack(ctx, endpoint, code, language, options) {
110
113
  if (action.type === 'finish') {
111
114
  return {
112
115
  status: 'completed',
113
- report: (0, report_1.buildReport)('completed', action.findings || [], transcript, stepsTaken, stepResp.costUsd || 0, action.summary),
116
+ report: (0, report_1.buildReport)('completed', (0, agentCorroboration_1.assembleAgentFindings)(action.findings || [], transcript), transcript, stepsTaken, stepResp.costUsd || 0, action.summary),
114
117
  };
115
118
  }
116
119
  if (action.type === 'http_request') {
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/attack/agentLoop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/attack/agentLoop.ts"],"names":[],"mappings":";;AAuBA,8BAmLC;AA1MD,0CAA0C;AAI1C,6DAA6D;AAC7D,yCAAgD;AAChD,qCAA0F;AAC1F,qCAAsE;AAgB/D,KAAK,UAAU,SAAS,CAC3B,GAAkB,EAClB,QAAmF,EACnF,IAAY,EACZ,QAAgB,EAChB,OAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,EAAE,GAAG,uBAAc,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG;QACX,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,WAAW;QACvC,IAAI,EAAE,OAAO,CAAC,UAAU;QACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;KACtB,CAAC;IAEF,IAAA,uBAAc,EAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAEtD,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAe,OAAO,EAAE;YAC1D,IAAI;YACJ,QAAQ;YACR,QAAQ,EAAE,QAAQ,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC;YAC3G,CAAC,CAAC,QAAQ,CAAC,aAAa;YACxB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAEhC,MAAM,UAAU,GAAI,QAAkB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC;YAClC,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;QAChG,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAQ,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI;YAC5B,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI;YAC/B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI;SACrD,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAc,MAAM,EAAE;YACvD,IAAI;YACJ,QAAQ;YACR,aAAa,EAAE;gBACX,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ;gBACtC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC;gBAC/B,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC;gBAC7C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;aACnD;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC;QAC1F,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAqB,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAE9B,MAAM,eAAe,GAAoB;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,SAAS;YAC3B,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,SAAS;YACxB,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,KAAK;SAC1B,CAAC;QAEF,MAAM,UAAU,GAA0B,EAAE,CAAC;QAE7C,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBACxB,OAAO;oBACH,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,IAAA,oBAAW,EAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC;iBAC9F,CAAC;YACN,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC1B,OAAO;oBACH,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,IAAA,oBAAW,EAAC,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,CAAC;iBAClG,CAAC;YACN,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAoB,oBAAoB,EAAE;gBAC5E,KAAK;gBACL,eAAe;gBACf,QAAQ;gBACR,aAAa,EAAE,IAAI;gBACnB,UAAU;gBACV,MAAM,EAAE;oBACJ,cAAc,EAAE,MAAM,CAAC,QAAQ,GAAG,UAAU;oBAC5C,YAAY;oBACZ,UAAU,EAAE,MAAM,CAAC,UAAU;iBAChC;aACJ,CAAC,CAAC;YACH,YAAY,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;YAEtC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO;oBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvF,MAAM,EAAE,IAAA,oBAAW,EACf,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAC5C,EAAE,EACF,UAAU,EACV,UAAU,EACV,YAAY,CACf;iBACJ,CAAC;YACN,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,CAAC;YACb,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAE9B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO;oBACH,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,IAAA,oBAAW,EAAC,WAAW,EAAE,IAAA,0CAAqB,EAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;iBAC5J,CAAC;YACN,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACjC,YAAY,EAAE,CAAC;gBACf,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;gBAElC,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EACrC;oBACI,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;iBACpB,EACD,MAAM,EACN,OAAO,CAAC,MAAM,CACjB,CAAC;gBAEF,UAAU,CAAC,IAAI,CAAC;oBACZ,MAAM;oBACN,WAAW,EAAE;wBACT,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,IAAA,mBAAU,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;wBAChD,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;qBACxB;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,OAAO;YACH,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;YACjC,MAAM,EAAE,IAAA,oBAAW,EAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;SAC1E,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -9,8 +9,7 @@
9
9
  import { ApiClient } from '../api/client';
10
10
  import type { ServerContext } from '../mcp/types';
11
11
  import type { AgentScanAction, AgentScanTarget, ReadFileObservation, StructuredFlowResult } from './agentScanProtocol';
12
- export declare const MAX_OBSERVATION_CHARS = 16000;
13
- export declare const LARGE_FILE_THRESHOLD = 300;
12
+ export { MAX_OBSERVATION_CHARS, LARGE_FILE_THRESHOLD } from './observationLimits';
14
13
  export declare function truncate(text: string): string;
15
14
  export declare function redact(text: string): string;
16
15
  export declare function extractFunctionMap(content: string, relPath: string): Promise<string | null>;
@@ -36,6 +35,11 @@ export declare function extractFunctionBoundaries(content: string, relPath: stri
36
35
  * and actualStart/actualEnd are 0 (no content lines delivered).
37
36
  * 3. Small file with no startLine/endLine → full content returned,
38
37
  * actualStart=1, actualEnd=totalLines, truncated=false.
38
+ * 4. Range (or small file) whose rendered content exceeds MAX_OBSERVATION_CHARS
39
+ * → the observation is cut at the last complete line that fits.
40
+ * `truncated === true` and actualEnd is the last DELIVERED line, not the
41
+ * requested end; the observation ends with a re-read note naming the
42
+ * undelivered remainder.
39
43
  */
40
44
  export declare function executeReadFileAction(action: AgentScanAction, ctx: ServerContext): Promise<ReadFileObservation>;
41
45
  export declare function executeAction(action: AgentScanAction, ctx: ServerContext, runId: string, client: ApiClient, target: AgentScanTarget): Promise<string>;
@@ -69,12 +69,53 @@ const symbolIndex_1 = require("../project-map/symbolIndex");
69
69
  const findTests_1 = require("../project-map/findTests");
70
70
  const testRunner_1 = require("../utils/testRunner");
71
71
  const protocolValidator_1 = require("./protocolValidator");
72
- exports.MAX_OBSERVATION_CHARS = 16000;
73
- exports.LARGE_FILE_THRESHOLD = 300;
72
+ var observationLimits_1 = require("./observationLimits");
73
+ Object.defineProperty(exports, "MAX_OBSERVATION_CHARS", { enumerable: true, get: function () { return observationLimits_1.MAX_OBSERVATION_CHARS; } });
74
+ Object.defineProperty(exports, "LARGE_FILE_THRESHOLD", { enumerable: true, get: function () { return observationLimits_1.LARGE_FILE_THRESHOLD; } });
75
+ const observationLimits_2 = require("./observationLimits");
74
76
  function truncate(text) {
75
- if (text.length <= exports.MAX_OBSERVATION_CHARS)
77
+ if (text.length <= observationLimits_2.MAX_OBSERVATION_CHARS)
76
78
  return text;
77
- return text.slice(0, exports.MAX_OBSERVATION_CHARS) + '\n… [truncated]';
79
+ return text.slice(0, observationLimits_2.MAX_OBSERVATION_CHARS) + '\n… [truncated]';
80
+ }
81
+ /**
82
+ * Render a numbered read observation that fits under MAX_OBSERVATION_CHARS,
83
+ * returning the last line actually delivered.
84
+ *
85
+ * When the requested range exceeds the char cap, the observation is cut at
86
+ * the last complete line that fits and ends with an explicit re-read note
87
+ * naming the undelivered remainder. The loop records coverage for the
88
+ * delivered range only (actualStart..deliveredEnd), so the cut-off tail
89
+ * stays re-readable instead of being silently marked as covered.
90
+ */
91
+ function renderNumberedRead(header, allLines, start, end) {
92
+ // Reserve room for the re-read note appended when the range is cut.
93
+ const budget = observationLimits_2.MAX_OBSERVATION_CHARS - 120;
94
+ const parts = [];
95
+ let used = header.length + 2;
96
+ let deliveredEnd = start - 1;
97
+ let truncated = false;
98
+ for (let line = start; line <= end; line++) {
99
+ const rendered = `${line}: ${(0, report_1.redactText)(allLines[line - 1])}`;
100
+ const cost = rendered.length + (parts.length > 0 ? 1 : 0);
101
+ if (parts.length > 0 && used + cost > budget) {
102
+ truncated = true;
103
+ break;
104
+ }
105
+ parts.push(rendered);
106
+ used += cost;
107
+ deliveredEnd = line;
108
+ }
109
+ let observation = `${header}\n\n${parts.join('\n')}`;
110
+ if (truncated && deliveredEnd < end) {
111
+ observation += `\n\n[truncated at line ${deliveredEnd} — re-read lines ${deliveredEnd + 1}..${end} for the rest]`;
112
+ }
113
+ // Safety net for pathological single lines longer than the whole cap.
114
+ if (observation.length > observationLimits_2.MAX_OBSERVATION_CHARS) {
115
+ observation = truncate(observation);
116
+ truncated = true;
117
+ }
118
+ return { observation, deliveredEnd, truncated };
78
119
  }
79
120
  function redact(text) {
80
121
  return truncate((0, report_1.redactText)(text));
@@ -202,6 +243,11 @@ async function extractFunctionBoundaries(content, relPath) {
202
243
  * and actualStart/actualEnd are 0 (no content lines delivered).
203
244
  * 3. Small file with no startLine/endLine → full content returned,
204
245
  * actualStart=1, actualEnd=totalLines, truncated=false.
246
+ * 4. Range (or small file) whose rendered content exceeds MAX_OBSERVATION_CHARS
247
+ * → the observation is cut at the last complete line that fits.
248
+ * `truncated === true` and actualEnd is the last DELIVERED line, not the
249
+ * requested end; the observation ends with a re-read note naming the
250
+ * undelivered remainder.
205
251
  */
206
252
  async function executeReadFileAction(action, ctx) {
207
253
  try {
@@ -216,20 +262,17 @@ async function executeReadFileAction(action, ctx) {
216
262
  if (startLine || endLine) {
217
263
  const start = Math.max(1, startLine || 1);
218
264
  const end = Math.min(totalLines, endLine || totalLines);
219
- const section = allLines.slice(start - 1, end)
220
- .map((line, i) => `${start + i}: ${line}`)
221
- .join('\n');
222
- const observation = redact(`File: ${rel} (lines ${start}-${end} of ${totalLines})\n\n${section}`);
265
+ const rendered = renderNumberedRead(`File: ${rel} (lines ${start}-${end} of ${totalLines})`, allLines, start, end);
223
266
  return {
224
- observation,
267
+ observation: rendered.observation,
225
268
  actualStart: start,
226
- actualEnd: end,
269
+ actualEnd: rendered.deliveredEnd,
227
270
  totalLines,
228
- truncated: false,
271
+ truncated: rendered.truncated,
229
272
  };
230
273
  }
231
274
  // Case 2: large file, no range → function map (not raw content)
232
- if (totalLines > exports.LARGE_FILE_THRESHOLD) {
275
+ if (totalLines > observationLimits_2.LARGE_FILE_THRESHOLD) {
233
276
  const funcMap = await extractFunctionMap(content, rel);
234
277
  if (funcMap) {
235
278
  const observation = redact(`File: ${rel} (${totalLines} lines — LARGE FILE)\n\nThis file is too large to show in full. Here is a function map. Use read_file with startLine/endLine to read specific sections.\n\n${funcMap}`);
@@ -242,17 +285,15 @@ async function executeReadFileAction(action, ctx) {
242
285
  };
243
286
  }
244
287
  }
245
- // Case 3: small file, no range → full content
246
- const numbered = allLines
247
- .map((line, i) => `${i + 1}: ${line}`)
248
- .join('\n');
249
- const observation = redact(`File: ${rel} (${totalLines} lines)\n\n${numbered}`);
288
+ // Case 3: small file, no range → full content (may still be cut at
289
+ // the char cap on dense files — same delivered-range reporting)
290
+ const rendered = renderNumberedRead(`File: ${rel} (${totalLines} lines)`, allLines, 1, totalLines);
250
291
  return {
251
- observation,
292
+ observation: rendered.observation,
252
293
  actualStart: 1,
253
- actualEnd: totalLines,
294
+ actualEnd: rendered.deliveredEnd,
254
295
  totalLines,
255
- truncated: false,
296
+ truncated: rendered.truncated,
256
297
  };
257
298
  }
258
299
  catch (e) {
@@ -664,7 +705,7 @@ async function executeFlowAction(action, ctx, runId, client, target) {
664
705
  .join('\n');
665
706
  return `${r.source} (${r.sourceFile}:${r.sourceLine}) → ${r.sink} (${r.sinkFile}:${r.sinkLine}) [${r.canonicalType}]\n${path}`;
666
707
  }).join('\n\n');
667
- const truncated = formatted.length > exports.MAX_OBSERVATION_CHARS;
708
+ const truncated = formatted.length > observationLimits_2.MAX_OBSERVATION_CHARS;
668
709
  return {
669
710
  observation: redact(formatted),
670
711
  flowResult: {
@@ -1 +1 @@
1
- {"version":3,"file":"agentScanExecutor.js","sourceRoot":"","sources":["../../src/attack/agentScanExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentScanExecutor.js","sourceRoot":"","sources":["../../src/attack/agentScanExecutor.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,4BAGC;AA+CD,wBAEC;AAoDD,gDAQC;AASD,8DAiDC;AAuBD,sDAmEC;AAED,sCAgVC;AAOD,8CAgIC;AAlwBD,uCAAyB;AACzB,2CAA6B;AAG7B,0CAA6E;AAC7E,oDAAqE;AACrE,8DAAyD;AACzD,gFAA2E;AAC3E,kEAA8D;AAE9D,qCAAsC;AACtC,wEAAsF;AACtF,sDAAkE;AAClE,kDAA+D;AAC/D,0EAAiE;AACjE,oDAAwF;AACxF,uEAAmE;AACnE,qDAAwD;AACxD,4DAA6D;AAC7D,4DAA4E;AAC5E,wDAAqD;AACrD,oDAAqE;AACrE,2DAA2D;AAY3D,yDAAkF;AAAzE,0HAAA,qBAAqB,OAAA;AAAE,yHAAA,oBAAoB,OAAA;AACpD,2DAAkF;AAElF,SAAgB,QAAQ,CAAC,IAAY;IACjC,IAAI,IAAI,CAAC,MAAM,IAAI,yCAAqB;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,yCAAqB,CAAC,GAAG,iBAAiB,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CACvB,MAAc,EACd,QAAkB,EAClB,KAAa,EACb,GAAW;IAEX,oEAAoE;IACpE,MAAM,MAAM,GAAG,yCAAqB,GAAG,GAAG,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,IAAI,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;IAC7B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,IAAI,KAAK,IAAA,mBAAU,EAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;YAC3C,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM;QACV,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,IAAI,IAAI,IAAI,CAAC;QACb,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,WAAW,GAAG,GAAG,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACrD,IAAI,SAAS,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;QAClC,WAAW,IAAI,0BAA0B,YAAY,oBAAoB,YAAY,GAAG,CAAC,KAAK,GAAG,gBAAgB,CAAC;IACtH,CAAC;IACD,sEAAsE;IACtE,IAAI,WAAW,CAAC,MAAM,GAAG,yCAAqB,EAAE,CAAC;QAC7C,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpC,SAAS,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC;AAED,SAAgB,MAAM,CAAC,IAAY;IAC/B,OAAO,QAAQ,CAAC,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACpC,MAAM,GAAG,GAAiC;QACtC,UAAU,EAAE,YAAY;QACxB,eAAe,EAAE,YAAY;QAC7B,UAAU,EAAE,YAAY;QACxB,eAAe,EAAE,KAAK;QACtB,MAAM,EAAE,QAAQ;KACnB,CAAC;IACF,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,YAAoB;IAC5D,mEAAmE;IACnE,mEAAmE;IACnE,MAAM,QAAQ,GAAG;QACb,IAAI,MAAM,CAAC,4CAA4C,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC;QAC1F,IAAI,MAAM,CAAC,wBAAwB,WAAW,CAAC,YAAY,CAAC,4BAA4B,CAAC;QACzF,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,+CAA+C,CAAC;KAC7F,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAM,CAAC;QAE9B,qBAAqB;QACrB,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,CAAC,CAAC;YAAE,SAAS;QAEhC,4BAA4B;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;iBAC1B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACzB,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAAC,MAAM,GAAG,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,OAAe;IACrE,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,KAAK,GAAG,CAAC,gFAAgF,CAAC,CAAC;IACjG,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AASM,KAAK,UAAU,yBAAyB,CAAC,OAAe,EAAE,OAAe;IAC5E,IAAI,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,6BAA6B,GAAC,CAAC;QACpE,MAAM,EAAE,IAAI,EAAE,GAAG,wDAAa,2BAA2B,GAAC,CAAC;QAE3D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,OAAO,GAA2B;YACpC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY;YACvD,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ;SACxC,CAAC;QACF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,IAAW,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACxB,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;YAC3B,sBAAsB,EAAE,4BAA4B;YACpD,mBAAmB,EAAE,yBAAyB;YAC9C,gBAAgB,EAAE,qBAAqB;YACvC,mBAAmB,EAAE,kBAAkB;SAC1C,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE7C,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBAC1G,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACvD,MAAM;gBACV,CAAC;YACL,CAAC;YACD,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;gBACrC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;gBACjC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aACrC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACI,KAAK,UAAU,qBAAqB,CACvC,MAAuB,EACvB,GAAkB;IAElB,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,4BAAoB,EAAC,GAAG,CAAC,aAAa,EAAG,MAAc,CAAC,IAAI,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;QACnC,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAI,MAAc,CAAC,OAAO,CAAC;QAExC,mCAAmC;QACnC,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,UAAU,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,kBAAkB,CAC/B,SAAS,GAAG,WAAW,KAAK,IAAI,GAAG,OAAO,UAAU,GAAG,EACvD,QAAQ,EAAE,KAAK,EAAE,GAAG,CACvB,CAAC;YACF,OAAO;gBACH,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,QAAQ,CAAC,YAAY;gBAChC,UAAU;gBACV,SAAS,EAAE,QAAQ,CAAC,SAAS;aAChC,CAAC;QACN,CAAC;QAED,gEAAgE;QAChE,IAAI,UAAU,GAAG,wCAAoB,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,UAAU,8JAA8J,OAAO,EAAE,CAAC,CAAC;gBAC/N,OAAO;oBACH,WAAW;oBACX,WAAW,EAAE,CAAC;oBACd,SAAS,EAAE,CAAC;oBACZ,UAAU;oBACV,SAAS,EAAE,IAAI;iBAClB,CAAC;YACN,CAAC;QACL,CAAC;QAED,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,QAAQ,GAAG,kBAAkB,CAC/B,SAAS,GAAG,KAAK,UAAU,SAAS,EACpC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAC1B,CAAC;QACF,OAAO;YACH,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,QAAQ,CAAC,YAAY;YAChC,UAAU;YACV,SAAS,EAAE,QAAQ,CAAC,SAAS;SAChC,CAAC;IACN,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO;YACH,WAAW,EAAE,uBAAwB,MAAc,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE;YAC9E,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,KAAK;SACnB,CAAC;IACN,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,aAAa,CAC/B,MAAuB,EACvB,GAAkB,EAClB,KAAa,EACb,MAAiB,EACjB,MAAuB;IAEvB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC,WAAW,CAAC;QAC9B,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAU,EAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChF,OAAO,MAAM,CAAC,IAAA,+BAAkB,EAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,wBAAwB,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACxE,CAAC;QACL,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,IAAA,4BAAoB,EAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,6BAAqB,EAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/E,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,OAAO,4CAA4C,QAAQ,EAAE,CAAC;gBAClE,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,2BAA2B,MAAM,CAAC,QAAQ,GAAG,CAAC;gBACzD,CAAC;gBACD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,eAAe;yBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;yBACzD,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChB,OAAO,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBACnJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,0BAA0B,MAAM,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC3E,CAAC;QACL,CAAC;QAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAA,2CAAmB,EAAC;oBACtC,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAG,MAAc,CAAC,QAAQ,IAAI,CAAC;iBAC1C,CAAC,CAAC;gBACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,iDAAiD,MAAM,CAAC,QAAQ,GAAG,CAAC;gBAC/E,CAAC;gBACD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc;yBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;yBAClE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChB,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,aAAa,MAAM,IAAI,EAAE,CAAC;gBACnI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,uCAAuC,MAAM,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACxF,CAAC;QACL,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,IAAA,4BAAoB,EAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,OAAO,mBAAmB,MAAM,CAAC,SAAS,kBAAkB,MAAM,CAAC,QAAQ,+CAA+C,CAAC;gBAC/H,CAAC;gBACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,6BAAqB,EAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/E,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,OAAO,8CAA8C,QAAQ,EAAE,CAAC;gBACpE,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAa,EAAC,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC/F,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;gBACtE,IAAI,MAAM,GAAG,UAAU,MAAM,CAAC,SAAS,QAAQ,MAAM,CAAC,UAAU,KAAK,YAAY,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9G,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,IAAI,aAAa,MAAM,CAAC,aAAa,EAAE,CAAC;gBAClD,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,2BAA2B,MAAM,CAAC,SAAS,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC7E,CAAC;QACL,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC;gBACD,MAAM,OAAO,GAAyB;oBAClC,KAAK;oBACL,MAAM;oBACN,MAAM;iBACT,CAAC;gBACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAwB,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBAC1F,MAAM,UAAU,GAAG,IAAA,wCAAoB,EAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO,uEAAuE,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrG,CAAC;gBACD,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,+BAA+B,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC3D,CAAC;QACL,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,IAAA,qCAAiB,EAAC,GAAG,CAAC,aAAa,EAAG,MAAc,CAAC,IAAI,CAAC,CAAC;gBACnF,OAAO,QAAQ,CAAC,IAAA,mCAAe,EAAC,SAAS,CAAC,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,gCAAgC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC5D,CAAC;QACL,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAW,EAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtE,OAAO,QAAQ,CAAC,IAAA,2BAAa,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,8BAA8B,MAAM,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC/E,CAAC;QACL,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,aAAa,EAAE;oBACvC,GAAG,EAAG,MAAc,CAAC,IAAI;oBACzB,IAAI,EAAG,MAAc,CAAC,IAAI;iBAC7B,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAA,0BAAc,EAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,wBAAwB,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACpD,CAAC;QACL,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAY,EAC7B,GAAG,CAAC,aAAa,EAChB,MAAc,CAAC,QAAQ,EACvB,MAAc,CAAC,YAAY,CAC/B,CAAC;gBACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,oCAAqC,MAAc,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC9F,CAAC;QACL,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAW,EAC5B,GAAG,CAAC,aAAa,EAChB,MAAc,CAAC,QAAQ,EACvB,MAAc,CAAC,SAAS,EACxB,MAAc,CAAC,OAAO,CAC1B,CAAC;gBACF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,+BAAgC,MAAc,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACzF,CAAC;QACL,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAC9B,GAAG,CAAC,aAAa,EAChB,MAAc,CAAC,QAAQ,EACvB,MAAc,CAAC,YAAY,EAC3B,MAAc,CAAC,KAAK,CACxB,CAAC;gBACF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,8BAA8B,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC1D,CAAC;QACL,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YACd,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAqB,EACtC,GAAG,CAAC,aAAa,EAChB,MAAc,CAAC,OAAO,EACtB,MAAc,CAAC,OAAO,CAC1B,CAAC;gBACF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,2BAA2B,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACvD,CAAC;QACL,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,yBAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAgB,EAAC;oBAClC,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,KAAK,EAAE,KAAK;oBACZ,aAAa,EAAE,MAAM;oBACrB,OAAO,EAAE,IAAI;iBAChB,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,6CAA6C,MAAM,CAAC,YAAY,sBAAsB,MAAM,CAAC,SAAS,CAAC,MAAM,eAAe,CAAC;gBACxI,CAAC;gBACD,MAAM,KAAK,GAAa;oBACpB,oBAAoB,MAAM,CAAC,QAAQ,CAAC,MAAM,sBAAsB,MAAM,CAAC,YAAY,gBAAgB,MAAM,CAAC,SAAS,CAAC,MAAM,gBAAgB;oBAC1I,EAAE;iBACL,CAAC;gBACF,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACtI,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAChD,MAAM,EAAE,GAAI,CAAS,CAAC,UAAU,EAAE,eAAe,IAAI,CAAC,CAAC;oBACvD,MAAM,EAAE,GAAI,CAAS,CAAC,UAAU,EAAE,eAAe,IAAI,CAAC,CAAC;oBACvD,OAAO,EAAE,GAAG,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;gBACH,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC5C,MAAM,GAAG,GAAI,CAAS,CAAC,UAAU,CAAC;oBAClC,MAAM,QAAQ,GAAG,GAAG,EAAE,eAAe,IAAI,CAAC,CAAC;oBAC3C,MAAM,aAAa,GAAG,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;oBAChH,MAAM,UAAU,GAAG,GAAG,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,WAAW,aAAa,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpG,MAAM,MAAM,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,MAAM,UAAU,GAAG,GAAG,EAAE,gBAAgB,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/F,MAAM,SAAS,GAAG,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvD,KAAK,CAAC,IAAI,CAAC,MAAM,aAAa,KAAK,GAAG,EAAE,IAAI,IAAI,SAAS,IAAI,GAAG,EAAE,gBAAgB,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC,CAAC;oBAC3J,IAAI,GAAG,EAAE,YAAY;wBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC7E,IAAI,GAAG,EAAE,cAAc;wBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,aAAa,YAAY,CAAC,MAAM,GAAG,EAAE,4DAA4D,CAAC,CAAC;gBAClH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,kUAAkU,CAAC,CAAC;gBAC/U,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,gCAAgC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC5D,CAAC;QACL,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAI,MAAc,CAAC,UAAU,IAAI,KAAK,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAkB,EAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACjE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,kCAAkC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC9D,CAAC;QACL,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAc,EAC/B,GAAG,CAAC,aAAa,EAChB,MAAc,CAAC,QAAQ,EACvB,MAAc,CAAC,MAAM,EACrB,MAAc,CAAC,IAAI,CACvB,CAAC;gBACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,iCAAkC,MAAc,CAAC,MAAM,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACzF,CAAC;QACL,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAc,EAC/B,GAAG,CAAC,aAAa,EAChB,MAAc,CAAC,QAAQ,EACvB,MAAc,CAAC,MAAM,EACrB,MAAc,CAAC,IAAI,CACvB,CAAC;gBACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,iCAAkC,MAAc,CAAC,MAAM,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACzF,CAAC;QACL,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAS,EAC1B,GAAG,CAAC,aAAa,EAChB,MAAc,CAAC,QAAQ,EACvB,MAAc,CAAC,MAAM,CACzB,CAAC;gBACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,4BAA6B,MAAc,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtF,CAAC;QACL,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,IAAI,CAAC;gBACD,MAAM,CAAC,GAAG,MAAa,CAAC;gBACxB,MAAM,GAAG,GAAoB;oBACzB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;oBAChC,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;iBACzB,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAa;oBACpB,aAAa,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE;iBAC1C,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACzG,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACnB,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBACD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,wBAAwB,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACpD,CAAC;QACL,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,kDAAkD;YAClD,OAAO,EAAE,CAAC;QACd,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YAClB,gEAAgE;YAChE,6CAA6C;YAC7C,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;AACL,CAAC;AAOM,KAAK,UAAU,iBAAiB,CACnC,MAAuB,EACvB,GAAkB,EAClB,KAAa,EACb,MAAiB,EACjB,MAAuB;IAEvB,MAAM,KAAK,GAAyB;QAChC,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,KAAK;KACnB,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAA,4BAAoB,EAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,6BAAqB,EAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO;oBACH,WAAW,EAAE,4CAA4C,QAAQ,EAAE;oBACnE,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,yBAAyB,QAAQ,EAAE,EAAE;iBAC/F,CAAC;YACN,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACH,WAAW,EAAE,2BAA2B,MAAM,CAAC,QAAQ,GAAG;oBAC1D,UAAU,EAAE;wBACR,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,SAAS;wBACjB,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,EAAE;wBACR,SAAS,EAAE,KAAK;qBACnB;iBACJ,CAAC;YACN,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAc,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpD,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,CAAC,CAAC,QAAQ;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;YACJ,MAAM,MAAM,GAAiB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YACzG,MAAM,IAAI,GAAiB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnG,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,eAAe;qBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;qBACzD,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACnJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChB,OAAO;gBACH,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC9B,UAAU,EAAE;oBACR,MAAM,EAAE,WAAW;oBACnB,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,SAAS,EAAE,KAAK;iBACnB;aACJ,CAAC;QACN,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO;gBACH,WAAW,EAAE,0BAA0B,MAAM,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE;gBAC5E,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;aAClF,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QAC1C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAA,2CAAmB,EAAC;gBACtC,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAG,MAAc,CAAC,QAAQ,IAAI,CAAC;aAC1C,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACH,WAAW,EAAE,iDAAiD,MAAM,CAAC,QAAQ,GAAG;oBAChF,UAAU,EAAE;wBACR,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,SAAS;wBACjB,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,EAAE;wBACR,SAAS,EAAE,KAAK;qBACnB;iBACJ,CAAC;YACN,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAc,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,QAAQ,EAAE,CAAC,CAAC,IAAI;gBAChB,MAAM,EAAE,CAAC,CAAC,QAAQ;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;YACJ,MAAM,MAAM,GAAiB,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1G,MAAM,IAAI,GAAiB,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClG,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc;qBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;qBAClE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,aAAa,MAAM,IAAI,EAAE,CAAC;YACnI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChB,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,yCAAqB,CAAC;YAC3D,OAAO;gBACH,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC9B,UAAU,EAAE;oBACR,MAAM,EAAE,WAAW;oBACnB,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,SAAS;iBACZ;aACJ,CAAC;QACN,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO;gBACH,WAAW,EAAE,uCAAuC,MAAM,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE;gBACzF,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;aAClF,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO;QACH,WAAW,EAAE,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;QACpE,UAAU,EAAE,KAAK;KACpB,CAAC;AACN,CAAC"}