frontend-harness 0.7.9 → 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 (98) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +20 -10
  3. package/dist/cli/index.js +388 -66
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/runtime/builtin-skills.js +1 -1
  6. package/dist/runtime/clean.js +25 -3
  7. package/dist/runtime/clean.js.map +1 -1
  8. package/dist/runtime/command-taxonomy.js +6 -1
  9. package/dist/runtime/command-taxonomy.js.map +1 -1
  10. package/dist/runtime/context.d.ts +33 -2
  11. package/dist/runtime/context.js +112 -13
  12. package/dist/runtime/context.js.map +1 -1
  13. package/dist/runtime/evidence.d.ts +27 -0
  14. package/dist/runtime/evidence.js +302 -19
  15. package/dist/runtime/evidence.js.map +1 -1
  16. package/dist/runtime/graph.js +11 -4
  17. package/dist/runtime/graph.js.map +1 -1
  18. package/dist/runtime/ingest.d.ts +38 -0
  19. package/dist/runtime/ingest.js +157 -0
  20. package/dist/runtime/ingest.js.map +1 -0
  21. package/dist/runtime/knowledge/constants.d.ts +9 -0
  22. package/dist/runtime/knowledge/constants.js +25 -0
  23. package/dist/runtime/knowledge/constants.js.map +1 -0
  24. package/dist/runtime/knowledge/core.d.ts +25 -0
  25. package/dist/runtime/knowledge/core.js +1569 -0
  26. package/dist/runtime/knowledge/core.js.map +1 -0
  27. package/dist/runtime/knowledge/types.d.ts +241 -0
  28. package/dist/runtime/knowledge/types.js +2 -0
  29. package/dist/runtime/knowledge/types.js.map +1 -0
  30. package/dist/runtime/knowledge.d.ts +2 -188
  31. package/dist/runtime/knowledge.js +1 -1126
  32. package/dist/runtime/knowledge.js.map +1 -1
  33. package/dist/runtime/plan/component-resolver.js +17 -6
  34. package/dist/runtime/plan/component-resolver.js.map +1 -1
  35. package/dist/runtime/plan/guidance.d.ts +1 -1
  36. package/dist/runtime/plan/guidance.js +88 -25
  37. package/dist/runtime/plan/guidance.js.map +1 -1
  38. package/dist/runtime/plan/proposal.js +9 -0
  39. package/dist/runtime/plan/proposal.js.map +1 -1
  40. package/dist/runtime/plan/workflow.d.ts +1 -0
  41. package/dist/runtime/plan/workflow.js +32 -1
  42. package/dist/runtime/plan/workflow.js.map +1 -1
  43. package/dist/runtime/plan.d.ts +13 -0
  44. package/dist/runtime/plan.js +137 -82
  45. package/dist/runtime/plan.js.map +1 -1
  46. package/dist/runtime/policy-provenance.d.ts +17 -1
  47. package/dist/runtime/policy-provenance.js +84 -16
  48. package/dist/runtime/policy-provenance.js.map +1 -1
  49. package/dist/runtime/project-discovery.js +32 -17
  50. package/dist/runtime/project-discovery.js.map +1 -1
  51. package/dist/runtime/project-paths.js +7 -1
  52. package/dist/runtime/project-paths.js.map +1 -1
  53. package/dist/runtime/protocol-init.js +117 -26
  54. package/dist/runtime/protocol-init.js.map +1 -1
  55. package/dist/runtime/repair-decision.js +76 -16
  56. package/dist/runtime/repair-decision.js.map +1 -1
  57. package/dist/runtime/repair-packet.js +141 -20
  58. package/dist/runtime/repair-packet.js.map +1 -1
  59. package/dist/runtime/scaffold/vue-template.js +1 -1
  60. package/dist/runtime/scaffold/vue-template.js.map +1 -1
  61. package/dist/runtime/scaffold.js +44 -8
  62. package/dist/runtime/scaffold.js.map +1 -1
  63. package/dist/runtime/skills.d.ts +9 -0
  64. package/dist/runtime/skills.js +133 -18
  65. package/dist/runtime/skills.js.map +1 -1
  66. package/dist/runtime/state-explain.js +39 -7
  67. package/dist/runtime/state-explain.js.map +1 -1
  68. package/dist/runtime/state.js +85 -10
  69. package/dist/runtime/state.js.map +1 -1
  70. package/dist/runtime/task-context.d.ts +122 -0
  71. package/dist/runtime/task-context.js +1322 -0
  72. package/dist/runtime/task-context.js.map +1 -0
  73. package/dist/runtime/task-signals.d.ts +1 -0
  74. package/dist/runtime/task-signals.js +1 -1
  75. package/dist/runtime/task-signals.js.map +1 -1
  76. package/dist/runtime/ui-restoration.d.ts +3 -3
  77. package/dist/runtime/ui-restoration.js +3 -3
  78. package/dist/runtime/ui-restoration.js.map +1 -1
  79. package/dist/runtime/ui-source.d.ts +6 -0
  80. package/dist/runtime/ui-source.js +66 -0
  81. package/dist/runtime/ui-source.js.map +1 -0
  82. package/dist/runtime/units.js +11 -4
  83. package/dist/runtime/units.js.map +1 -1
  84. package/dist/runtime/verification-commands.js +95 -21
  85. package/dist/runtime/verification-commands.js.map +1 -1
  86. package/dist/runtime/verify.js +129 -43
  87. package/dist/runtime/verify.js.map +1 -1
  88. package/dist/runtime/visual-compare.js +104 -12
  89. package/dist/runtime/visual-compare.js.map +1 -1
  90. package/dist/schemas/types.d.ts +75 -2
  91. package/dist/schemas/validation.js +257 -6
  92. package/dist/schemas/validation.js.map +1 -1
  93. package/dist/storage/json.d.ts +9 -1
  94. package/dist/storage/json.js +106 -8
  95. package/dist/storage/json.js.map +1 -1
  96. package/docs/DIRECTION.md +13 -11
  97. package/docs/RELEASE.md +5 -1
  98. package/package.json +1 -1
@@ -1,6 +1,11 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import { isDirectoryWithoutSymlink, isRegularFileWithoutSymlink } from "../storage/json.js";
3
4
  import { harnessPath } from "../storage/paths.js";
5
+ const MAX_SKILL_MARKDOWN_BYTES = 128 * 1024;
6
+ const MAX_SKILL_MARKDOWN_FILES = 200;
7
+ const MAX_SKILL_DIRECTORY_DEPTH = 8;
8
+ const MAX_SKILL_LIST_SUMMARIES = 20;
4
9
  export function discoverSkills(projectRoot) {
5
10
  const skillsRoot = harnessPath(projectRoot, "skills");
6
11
  if (!isReadableDirectory(skillsRoot)) {
@@ -13,6 +18,18 @@ export function discoverSkills(projectRoot) {
13
18
  })
14
19
  .sort((left, right) => left.name.localeCompare(right.name));
15
20
  }
21
+ export function listSkills(projectRoot) {
22
+ const skills = discoverSkills(projectRoot);
23
+ const selected = skills.slice(0, MAX_SKILL_LIST_SUMMARIES);
24
+ return {
25
+ skills: selected,
26
+ limits: {
27
+ selected: selected.length,
28
+ total: skills.length,
29
+ omitted: Math.max(0, skills.length - selected.length)
30
+ }
31
+ };
32
+ }
16
33
  export function checkSkills(projectRoot) {
17
34
  const skillsRoot = harnessPath(projectRoot, "skills");
18
35
  const relativeSkillsRoot = path.relative(projectRoot, skillsRoot).split(path.sep).join(path.posix.sep);
@@ -82,11 +99,8 @@ function describeSkill(projectRoot, fullPath) {
82
99
  const relativePath = path.relative(projectRoot, fullPath).split(path.sep).join(path.posix.sep);
83
100
  const skillsRoot = harnessPath(projectRoot, "skills");
84
101
  const skillPath = path.relative(skillsRoot, fullPath);
85
- let content;
86
- try {
87
- content = fs.readFileSync(fullPath, "utf8");
88
- }
89
- catch {
102
+ const content = safeRead(fullPath);
103
+ if (content === null) {
90
104
  return null;
91
105
  }
92
106
  const name = slugFromSkillPath(skillPath);
@@ -153,7 +167,11 @@ function parseFrontmatter(content) {
153
167
  const key = pair[1] ?? "";
154
168
  const value = (pair[2] ?? "").trim();
155
169
  if (key === "name" || key === "title" || key === "description") {
156
- result[key] = unquoteScalar(value);
170
+ const scalar = unquoteScalar(value);
171
+ if (key === "name" && !isValidSkillName(scalar)) {
172
+ errors.push(`frontmatter line ${lineIndex + 2} name must be kebab-case`);
173
+ }
174
+ result[key] = scalar;
157
175
  currentList = null;
158
176
  continue;
159
177
  }
@@ -167,6 +185,9 @@ function parseFrontmatter(content) {
167
185
  }
168
186
  return { metadata: result, errors };
169
187
  }
188
+ function isValidSkillName(value) {
189
+ return /^[a-z0-9][a-z0-9-]{0,78}[a-z0-9]$|^[a-z0-9]$/.test(value);
190
+ }
170
191
  function parseListValue(value) {
171
192
  if (!value) {
172
193
  return [];
@@ -175,13 +196,63 @@ function parseListValue(value) {
175
196
  if (!inline) {
176
197
  return [unquoteScalar(value)];
177
198
  }
178
- return (inline[1] ?? "")
179
- .split(",")
199
+ return splitInlineListItems(inline[1] ?? "")
180
200
  .map((item) => unquoteScalar(item.trim()))
181
201
  .filter(Boolean);
182
202
  }
203
+ function splitInlineListItems(value) {
204
+ const items = [];
205
+ let current = "";
206
+ let quote = null;
207
+ let escaped = false;
208
+ for (const char of value) {
209
+ if (escaped) {
210
+ current += char;
211
+ escaped = false;
212
+ continue;
213
+ }
214
+ if (char === "\\" && quote === "\"") {
215
+ current += char;
216
+ escaped = true;
217
+ continue;
218
+ }
219
+ if (quote) {
220
+ current += char;
221
+ if (char === quote) {
222
+ quote = null;
223
+ }
224
+ continue;
225
+ }
226
+ if (char === "\"" || char === "'") {
227
+ current += char;
228
+ quote = char;
229
+ continue;
230
+ }
231
+ if (char === ",") {
232
+ items.push(current);
233
+ current = "";
234
+ continue;
235
+ }
236
+ current += char;
237
+ }
238
+ items.push(current);
239
+ return items;
240
+ }
183
241
  function unquoteScalar(value) {
184
- return value.replace(/^["']|["']$/g, "").trim();
242
+ const trimmed = value.trim();
243
+ if (trimmed.startsWith("\"") && trimmed.endsWith("\"")) {
244
+ try {
245
+ const parsed = JSON.parse(trimmed);
246
+ return typeof parsed === "string" ? parsed : trimmed.slice(1, -1);
247
+ }
248
+ catch {
249
+ return trimmed.slice(1, -1);
250
+ }
251
+ }
252
+ if (trimmed.startsWith("'") && trimmed.endsWith("'")) {
253
+ return trimmed.slice(1, -1).replace(/''/g, "'");
254
+ }
255
+ return trimmed;
185
256
  }
186
257
  function extractTitle(content) {
187
258
  const line = content.split("\n").find((item) => item.startsWith("# "));
@@ -207,12 +278,7 @@ function hasBodyGuidance(content) {
207
278
  });
208
279
  }
209
280
  function isReadableDirectory(directory) {
210
- try {
211
- return fs.statSync(directory).isDirectory();
212
- }
213
- catch {
214
- return false;
215
- }
281
+ return isDirectoryWithoutSymlink(directory);
216
282
  }
217
283
  function slugFromSkillPath(skillPath) {
218
284
  const parsed = path.parse(skillPath);
@@ -225,17 +291,58 @@ function slugFromSkillPath(skillPath) {
225
291
  .replace(/[^a-z0-9]+/g, "-")
226
292
  .replace(/^-+|-+$/g, "") || "skill";
227
293
  }
228
- function listMarkdownFiles(directory, errors) {
294
+ function safeRead(filePath) {
295
+ if (!isRegularFileWithoutSymlink(filePath)) {
296
+ return null;
297
+ }
298
+ try {
299
+ const stat = fs.statSync(filePath, { throwIfNoEntry: false });
300
+ if (!stat || stat.size > MAX_SKILL_MARKDOWN_BYTES) {
301
+ return null;
302
+ }
303
+ return fs.readFileSync(filePath, "utf8");
304
+ }
305
+ catch {
306
+ return null;
307
+ }
308
+ }
309
+ function listMarkdownFiles(directory, errors, depth = 0, state = { count: 0, stopped: false }) {
310
+ if (state.stopped) {
311
+ return [];
312
+ }
313
+ if (depth > MAX_SKILL_DIRECTORY_DEPTH) {
314
+ errors?.push(`Project skill scan exceeded maximum directory depth at ${displayScanPath(directory)}.`);
315
+ return [];
316
+ }
229
317
  try {
230
318
  return fs.readdirSync(directory, { withFileTypes: true }).flatMap((entry) => {
231
319
  const fullPath = path.join(directory, entry.name);
320
+ if (entry.isSymbolicLink()) {
321
+ return [];
322
+ }
232
323
  if (entry.isDirectory()) {
233
324
  if (entry.name.startsWith(".")) {
234
325
  return [];
235
326
  }
236
- return listMarkdownFiles(fullPath, errors);
327
+ return listMarkdownFiles(fullPath, errors, depth + 1, state);
237
328
  }
238
- return entry.name.endsWith(".md") ? [fullPath] : [];
329
+ if (!entry.name.endsWith(".md") || !isRegularFileWithoutSymlink(fullPath)) {
330
+ return [];
331
+ }
332
+ state.count += 1;
333
+ if (state.count > MAX_SKILL_MARKDOWN_FILES) {
334
+ if (!state.stopped) {
335
+ errors?.push(`Project skill scan exceeded ${MAX_SKILL_MARKDOWN_FILES} files.`);
336
+ }
337
+ state.stopped = true;
338
+ return [];
339
+ }
340
+ const stat = fs.statSync(fullPath, { throwIfNoEntry: false });
341
+ if (stat && stat.size > MAX_SKILL_MARKDOWN_BYTES) {
342
+ errors?.push(`${displayScanPath(fullPath)} exceeds ${MAX_SKILL_MARKDOWN_BYTES} bytes.`);
343
+ return [];
344
+ }
345
+ return [fullPath];
239
346
  });
240
347
  }
241
348
  catch (error) {
@@ -247,4 +354,12 @@ function listMarkdownFiles(directory, errors) {
247
354
  return [];
248
355
  }
249
356
  }
357
+ function displayScanPath(fullPath) {
358
+ const marker = `${path.sep}.frontend-harness${path.sep}skills${path.sep}`;
359
+ const index = fullPath.indexOf(marker);
360
+ if (index >= 0) {
361
+ return `.frontend-harness/skills/${fullPath.slice(index + marker.length).split(path.sep).join(path.posix.sep)}`;
362
+ }
363
+ return fullPath;
364
+ }
250
365
  //# sourceMappingURL=skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/runtime/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/runtime/skills.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,20 @@ import { getNextAction } from "./state.js";
4
4
  import { projectScriptCommand } from "./command-taxonomy.js";
5
5
  import { createRepairPacket } from "./repair-packet.js";
6
6
  import { readAcceptedRepairDecision } from "./repair-decision.js";
7
+ const MAX_STATE_EXPLAIN_MARKDOWN_ITEMS = 10;
7
8
  export function explainState(projectRoot) {
8
9
  const nextAction = getNextAction(projectRoot);
9
10
  const repairDecision = readAcceptedRepairDecision(projectRoot);
11
+ const rationale = buildRationale(nextAction);
12
+ const requiredArtifacts = buildRequiredArtifacts(projectRoot, nextAction);
13
+ const recommendedCommands = buildRecommendedCommands(nextAction);
10
14
  const result = {
11
15
  contractVersion: 1,
12
16
  createdAt: new Date().toISOString(),
13
17
  nextAction,
14
18
  summary: buildSummary(nextAction),
15
- rationale: buildRationale(nextAction),
16
- requiredArtifacts: buildRequiredArtifacts(projectRoot, nextAction),
19
+ rationale,
20
+ requiredArtifacts,
17
21
  repairPacket: {
18
22
  path: relativeHarnessPath("repair", "latest.json"),
19
23
  markdownPath: relativeHarnessPath("repair", "latest.md"),
@@ -28,7 +32,14 @@ export function explainState(projectRoot) {
28
32
  verificationArtifactPath: repairDecision?.verificationArtifactPath ?? null,
29
33
  verificationSha256: repairDecision?.verificationSha256 ?? null
30
34
  },
31
- recommendedCommands: buildRecommendedCommands(nextAction),
35
+ recommendedCommands,
36
+ limits: {
37
+ markdown: {
38
+ rationale: selectedTotalLimit(rationale.length, MAX_STATE_EXPLAIN_MARKDOWN_ITEMS),
39
+ requiredArtifacts: selectedTotalLimit(requiredArtifacts.length, MAX_STATE_EXPLAIN_MARKDOWN_ITEMS),
40
+ recommendedCommands: selectedTotalLimit(recommendedCommands.length, MAX_STATE_EXPLAIN_MARKDOWN_ITEMS)
41
+ }
42
+ },
32
43
  stopCondition: nextAction.stopCondition
33
44
  };
34
45
  writeJson(harnessPath(projectRoot, "state-explain", "latest.json"), result);
@@ -50,10 +61,14 @@ function buildSummary(nextAction) {
50
61
  return `Next action is ${nextAction.action}: ${nextAction.reason}.`;
51
62
  }
52
63
  function buildRationale(nextAction) {
64
+ const changedFileLimit = nextAction.limits?.changedFiles;
65
+ const changedFileSummary = changedFileLimit
66
+ ? `${changedFileLimit.total} (selected ${changedFileLimit.selected}, omitted ${changedFileLimit.omitted}).`
67
+ : `${nextAction.changedFiles.length}.`;
53
68
  return [
54
69
  `State status is ${nextAction.stateStatus}.`,
55
70
  `Verification status is ${nextAction.verificationStatus}.`,
56
- `Recorded changed files: ${nextAction.changedFiles.length}.`,
71
+ `Recorded changed files: ${changedFileSummary}`,
57
72
  ...nextAction.checks
58
73
  ];
59
74
  }
@@ -64,6 +79,14 @@ function buildRecommendedCommands(nextAction) {
64
79
  }
65
80
  return commands;
66
81
  }
82
+ function selectedTotalLimit(total, max) {
83
+ const selected = Math.min(total, max);
84
+ return {
85
+ selected,
86
+ total,
87
+ omitted: Math.max(0, total - selected)
88
+ };
89
+ }
67
90
  function renderStateExplain(result) {
68
91
  return `# Frontend Harness State Explain
69
92
 
@@ -73,11 +96,11 @@ ${result.summary}
73
96
 
74
97
  ## Rationale
75
98
 
76
- ${result.rationale.map((item) => `- ${item}`).join("\n")}
99
+ ${renderBoundedMarkdownList(result.rationale, "rationale")}
77
100
 
78
101
  ## Required Artifacts
79
102
 
80
- ${result.requiredArtifacts.map((artifact) => `- ${artifact}`).join("\n")}
103
+ ${renderBoundedMarkdownList(result.requiredArtifacts, "required artifacts")}
81
104
 
82
105
  ## Repair Packet
83
106
 
@@ -97,11 +120,20 @@ ${result.requiredArtifacts.map((artifact) => `- ${artifact}`).join("\n")}
97
120
 
98
121
  ## Recommended Commands
99
122
 
100
- ${result.recommendedCommands.length > 0 ? result.recommendedCommands.map((command) => `- ${command}`).join("\n") : "- none"}
123
+ ${renderBoundedMarkdownList(result.recommendedCommands, "recommended commands")}
101
124
 
102
125
  ## Stop Condition
103
126
 
104
127
  ${result.stopCondition}
105
128
  `;
106
129
  }
130
+ function renderBoundedMarkdownList(items, label) {
131
+ const selected = items.slice(0, MAX_STATE_EXPLAIN_MARKDOWN_ITEMS);
132
+ const omitted = Math.max(0, items.length - selected.length);
133
+ const lines = selected.length ? selected.map((item) => `- ${item}`) : ["- none"];
134
+ if (omitted > 0) {
135
+ lines.push(`- Omitted ${label}: ${omitted} of ${items.length} total; inspect state-explain/latest.json for the complete list.`);
136
+ }
137
+ return lines.join("\n");
138
+ }
107
139
  //# sourceMappingURL=state-explain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-explain.js","sourceRoot":"","sources":["../../src/runtime/state-explain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-explain.js","sourceRoot":"","sources":["../../src/runtime/state-explain.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAE5C,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1E,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACjE,MAAM,MAAM,GAAuB;QACjC,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU;QACV,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC;QACjC,SAAS;QACT,iBAAiB;QACjB,YAAY,EAAE;YACZ,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC;YAClD,YAAY,EAAE,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC;YACxD,SAAS,EAAE,UAAU,CAAC,MAAM,KAAK,KAAK;SACvC;QACD,cAAc,EAAE;YACd,IAAI,EAAE,mBAAmB,CAAC,iBAAiB,EAAE,aAAa,CAAC;YAC3D,SAAS,EAAE,cAAc,KAAK,IAAI;YAClC,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,IAAI,IAAI;YAC9D,wBAAwB,EAAE,cAAc,EAAE,wBAAwB,IAAI,IAAI;YAC1E,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,IAAI,IAAI;YAC9D,wBAAwB,EAAE,cAAc,EAAE,wBAAwB,IAAI,IAAI;YAC1E,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,IAAI,IAAI;SAC/D;QACD,mBAAmB;QACnB,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,gCAAgC,CAAC;gBACjF,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,EAAE,gCAAgC,CAAC;gBACjG,mBAAmB,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,MAAM,EAAE,gCAAgC,CAAC;aACtG;SACF;QACD,aAAa,EAAE,UAAU,CAAC,aAAa;KACxC,CAAC;IAEF,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5E,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAmB,EAAE,UAA2B;IAC9E,IAAI,UAAU,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,kBAAkB,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAChD,OAAO;QACL,GAAG,UAAU,CAAC,SAAS;QACvB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC5C,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,UAA2B;IAC/C,OAAO,kBAAkB,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC;AACtE,CAAC;AAED,SAAS,cAAc,CAAC,UAA2B;IACjD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;IACzD,MAAM,kBAAkB,GAAG,gBAAgB;QACzC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,cAAc,gBAAgB,CAAC,QAAQ,aAAa,gBAAgB,CAAC,OAAO,IAAI;QAC3G,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;IACzC,OAAO;QACL,mBAAmB,UAAU,CAAC,WAAW,GAAG;QAC5C,0BAA0B,UAAU,CAAC,kBAAkB,GAAG;QAC1D,2BAA2B,kBAAkB,EAAE;QAC/C,GAAG,UAAU,CAAC,MAAM;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,UAA2B;IAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,GAAW;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO;QACL,QAAQ;QACR,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA0B;IACpD,OAAO;;;;EAIP,MAAM,CAAC,OAAO;;;;EAId,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;;;;EAIxD,yBAAyB,CAAC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;;;;eAI5D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;UAC1C,MAAM,CAAC,YAAY,CAAC,IAAI;cACpB,MAAM,CAAC,YAAY,CAAC,YAAY;;;;eAI/B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC;UAC5C,MAAM,CAAC,cAAc,CAAC,IAAI;wBACZ,MAAM,CAAC,cAAc,CAAC,kBAAkB,IAAI,MAAM;8BAC5C,MAAM,CAAC,cAAc,CAAC,wBAAwB,IAAI,MAAM;wBAC9D,MAAM,CAAC,cAAc,CAAC,kBAAkB,IAAI,MAAM;8BAC5C,MAAM,CAAC,cAAc,CAAC,wBAAwB,IAAI,MAAM;wBAC9D,MAAM,CAAC,cAAc,CAAC,kBAAkB,IAAI,MAAM;;;;EAIxE,yBAAyB,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;;;;EAI7E,MAAM,CAAC,aAAa;CACrB,CAAC;AACF,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAe,EAAE,KAAa;IAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,OAAO,OAAO,KAAK,CAAC,MAAM,kEAAkE,CAAC,CAAC;IAClI,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -3,13 +3,17 @@ import { createHash } from "node:crypto";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
6
- import { writeJson } from "../storage/json.js";
6
+ import { ensureDir, isRegularFileWithoutSymlink, writeJson } from "../storage/json.js";
7
7
  import { isHarnessState } from "../schemas/validation.js";
8
8
  import { projectScriptCommand } from "./command-taxonomy.js";
9
9
  import { isProjectRelativeSubpath, normalizeProjectRelativePath } from "./project-paths.js";
10
+ import { isRecord } from "./common/parsing.js";
10
11
  const STATE_LOCK_RETRY_MS = 10;
11
12
  const STATE_LOCK_TIMEOUT_MS = 5_000;
12
13
  const STATE_LOCK_STALE_MS = 30_000;
14
+ const FILE_HASH_CHUNK_BYTES = 64 * 1024;
15
+ const MAX_STATE_ARTIFACT_BYTES = 2 * 1024 * 1024;
16
+ const MAX_STATE_NEXT_CHANGED_FILES = 20;
13
17
  export function createDefaultState() {
14
18
  return {
15
19
  version: 1,
@@ -34,11 +38,15 @@ export function statePath(projectRoot) {
34
38
  }
35
39
  export function loadState(projectRoot) {
36
40
  const path = statePath(projectRoot);
37
- if (!fs.existsSync(path)) {
41
+ if (!isRegularFileWithoutSymlink(path)) {
38
42
  return createDefaultState();
39
43
  }
40
44
  try {
41
- const parsed = JSON.parse(fs.readFileSync(path, "utf8"));
45
+ const stat = fs.statSync(path);
46
+ if (stat.size > MAX_STATE_ARTIFACT_BYTES) {
47
+ return createBlockedState(`Harness state exceeds ${MAX_STATE_ARTIFACT_BYTES} bytes; repair or remove .frontend-harness/state.json.`);
48
+ }
49
+ const parsed = withStateDefaults(JSON.parse(fs.readFileSync(path, "utf8")));
42
50
  if (isHarnessState(parsed)) {
43
51
  return parsed;
44
52
  }
@@ -49,6 +57,29 @@ export function loadState(projectRoot) {
49
57
  }
50
58
  return createBlockedState("Harness state does not match the expected contract; rerun planning or repair .frontend-harness/state.json.");
51
59
  }
60
+ function withStateDefaults(value) {
61
+ if (!isRecord(value)) {
62
+ return value;
63
+ }
64
+ const task = value["task"];
65
+ if (!isRecord(task)) {
66
+ return value;
67
+ }
68
+ const frontendWorkflow = task["frontendWorkflow"];
69
+ if (!isRecord(frontendWorkflow) || frontendWorkflow["loopMode"] !== undefined) {
70
+ return value;
71
+ }
72
+ return {
73
+ ...value,
74
+ task: {
75
+ ...task,
76
+ frontendWorkflow: {
77
+ ...frontendWorkflow,
78
+ loopMode: "full"
79
+ }
80
+ }
81
+ };
82
+ }
52
83
  export function saveState(projectRoot, state) {
53
84
  const next = { ...state, updatedAt: new Date().toISOString() };
54
85
  if (!isHarnessState(next)) {
@@ -160,10 +191,19 @@ export function checkStateContract(projectRoot) {
160
191
  export function getNextAction(projectRoot) {
161
192
  const state = loadState(projectRoot);
162
193
  const contract = checkStateContract(projectRoot);
194
+ const changedFiles = [...state.changedFiles].sort();
195
+ const selectedChangedFiles = changedFiles.slice(0, MAX_STATE_NEXT_CHANGED_FILES);
163
196
  const base = {
164
197
  stateStatus: state.status,
165
198
  verificationStatus: state.verification.status,
166
- changedFiles: [...state.changedFiles].sort(),
199
+ changedFiles: selectedChangedFiles,
200
+ limits: {
201
+ changedFiles: {
202
+ selected: selectedChangedFiles.length,
203
+ total: changedFiles.length,
204
+ omitted: Math.max(0, changedFiles.length - selectedChangedFiles.length)
205
+ }
206
+ },
167
207
  artifacts: [
168
208
  relativeHarnessPath("state.json"),
169
209
  relativeHarnessPath("plans", "latest.json"),
@@ -307,7 +347,7 @@ function withStateLock(projectRoot, action) {
307
347
  const startedAt = Date.now();
308
348
  while (true) {
309
349
  try {
310
- fs.mkdirSync(path.dirname(lockPath), { recursive: true });
350
+ ensureDir(path.dirname(lockPath));
311
351
  const descriptor = fs.openSync(lockPath, "wx");
312
352
  try {
313
353
  fs.writeFileSync(descriptor, `${process.pid}\n${new Date().toISOString()}\n`, "utf8");
@@ -322,6 +362,9 @@ function withStateLock(projectRoot, action) {
322
362
  if (!isExistingLockError(error)) {
323
363
  throw error;
324
364
  }
365
+ if (isSymlink(lockPath)) {
366
+ throw new Error("Refusing to use symlinked .frontend-harness/state.lock.");
367
+ }
325
368
  clearStaleStateLock(lockPath);
326
369
  if (Date.now() - startedAt >= STATE_LOCK_TIMEOUT_MS) {
327
370
  throw new Error("Timed out waiting to update .frontend-harness/state.json; retry state record-change.");
@@ -336,9 +379,15 @@ function isExistingLockError(error) {
336
379
  && "code" in error
337
380
  && error.code === "EEXIST";
338
381
  }
382
+ function isSymlink(filePath) {
383
+ return Boolean(fs.lstatSync(filePath, { throwIfNoEntry: false })?.isSymbolicLink());
384
+ }
339
385
  function clearStaleStateLock(lockPath) {
340
386
  try {
341
- const stat = fs.statSync(lockPath);
387
+ const stat = fs.lstatSync(lockPath);
388
+ if (stat.isSymbolicLink()) {
389
+ return;
390
+ }
342
391
  if (Date.now() - stat.mtimeMs > STATE_LOCK_STALE_MS) {
343
392
  fs.rmSync(lockPath, { force: true });
344
393
  }
@@ -415,7 +464,7 @@ function rawChangedFilesFromGit(projectRoot) {
415
464
  if (status.includes("R") || status.includes("C")) {
416
465
  const next = entries[index + 1];
417
466
  if (next) {
418
- files.push({ path: next, status });
467
+ files.push({ path: file, status });
419
468
  index += 1;
420
469
  continue;
421
470
  }
@@ -434,13 +483,39 @@ function hasGitRepository(projectRoot) {
434
483
  }
435
484
  function gitChangeSignature(projectRoot, file) {
436
485
  const fullPath = path.join(projectRoot, file);
437
- if (!fs.existsSync(fullPath)) {
486
+ const stat = fs.lstatSync(fullPath, { throwIfNoEntry: false });
487
+ if (!stat) {
438
488
  return "missing";
439
489
  }
440
- const stat = fs.statSync(fullPath);
490
+ if (stat.isSymbolicLink()) {
491
+ return "symlink";
492
+ }
441
493
  if (stat.isDirectory()) {
442
494
  return "directory";
443
495
  }
444
- return createHash("sha256").update(fs.readFileSync(fullPath)).digest("hex");
496
+ if (!isRegularFileWithoutSymlink(fullPath)) {
497
+ return "unsafe";
498
+ }
499
+ return sha256File(fullPath);
500
+ }
501
+ function sha256File(filePath) {
502
+ const hash = createHash("sha256");
503
+ const buffer = Buffer.alloc(FILE_HASH_CHUNK_BYTES);
504
+ const fd = fs.openSync(filePath, "r");
505
+ try {
506
+ let position = 0;
507
+ while (true) {
508
+ const bytesRead = fs.readSync(fd, buffer, 0, buffer.byteLength, position);
509
+ if (bytesRead <= 0) {
510
+ break;
511
+ }
512
+ hash.update(buffer.subarray(0, bytesRead));
513
+ position += bytesRead;
514
+ }
515
+ }
516
+ finally {
517
+ fs.closeSync(fd);
518
+ }
519
+ return hash.digest("hex");
445
520
  }
446
521
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/runtime/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/runtime/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,2BAA2B,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,CAAC;AACxC,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE;YACZ,MAAM,EAAE,SAAS;YACjB,gBAAgB,EAAE,IAAI;SACvB;QACD,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,GAAG,wBAAwB,EAAE,CAAC;YACzC,OAAO,kBAAkB,CAAC,yBAAyB,wBAAwB,wDAAwD,CAAC,CAAC;QACvI,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC,CAAC;QACvF,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,kBAAkB,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,kBAAkB,CAAC,4GAA4G,CAAC,CAAC;AAC1I,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO;QACL,GAAG,KAAK;QACR,IAAI,EAAE;YACJ,GAAG,IAAI;YACP,gBAAgB,EAAE;gBAChB,GAAG,gBAAgB;gBACnB,QAAQ,EAAE,MAAM;aACjB;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAmB,EAAE,KAAmB;IAChE,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IAC/D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,OAAO;QACL,GAAG,kBAAkB,EAAE;QACvB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,IAAuB,EACvB,UAA2B,EAC3B,KAAsB,EACtB,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC,WAAW,EAAE;QAC5B,GAAG,OAAO;QACV,MAAM,EAAE,qBAAqB;QAC7B,IAAI;QACJ,UAAU;QACV,KAAK;QACL,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE;YACZ,MAAM,EAAE,SAAS;YACjB,gBAAgB,EAAE,IAAI;SACvB;QACD,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,CAAC;QACb,QAAQ;QACR,cAAc;KACf,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB,EAAE,MAA0B,EAAE,cAAc,GAAG,KAAK;IAC7G,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAChF,OAAO,SAAS,CAAC,WAAW,EAAE;QAC5B,GAAG,OAAO;QACV,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;QACxF,YAAY,EAAE;YACZ,MAAM;YACN,gBAAgB,EAAE,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC;SACrE;QACD,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,KAAe;IACrE,OAAO,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChB,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC;QACxG,OAAO,SAAS,CAAC,WAAW,EAAE;YAC5B,GAAG,OAAO;YACV,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;YACxE,YAAY,EAAE,uBAAuB;gBACnC,CAAC,CAAC;oBACE,MAAM,EAAE,SAAS;oBACjB,gBAAgB,EAAE,IAAI;iBACvB;gBACH,CAAC,CAAC,OAAO,CAAC,YAAY;YACxB,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAYD,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO;YACL,MAAM,EAAE,gBAAgB;YACxB,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YAC5C,mBAAmB,EAAE,EAAE;YACvB,qBAAqB,EAAE,EAAE;YACzB,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC,OAAO,oBAAoB,CAAC,yCAAyC,CAAC,4CAA4C,CAAC;SAC/H,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChF,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvI,MAAM,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3I,MAAM,MAAM,GAAG;QACb,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,4DAA4D,IAAI,GAAG,CAAC;KAC1G,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iEAAiE,IAAI,GAAG,CAAC;QAChH,GAAG,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;YAChC,CAAC,CAAC,CAAC,2HAA2H,CAAC;YAC/H,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAC/C,aAAa;QACb,YAAY;QACZ,mBAAmB;QACnB,qBAAqB;QACrB,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,oBAAoB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG;QACX,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,kBAAkB,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM;QAC7C,YAAY,EAAE,oBAAoB;QAClC,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,QAAQ,EAAE,oBAAoB,CAAC,MAAM;gBACrC,KAAK,EAAE,YAAY,CAAC,MAAM;gBAC1B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;aACxE;SACF;QACD,SAAS,EAAE;YACT,mBAAmB,CAAC,YAAY,CAAC;YACjC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC;YAC3C,mBAAmB,CAAC,iBAAiB,EAAE,aAAa,CAAC;YACrD,mBAAmB,CAAC,iBAAiB,EAAE,aAAa,CAAC;YACrD,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC;YAClD,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC7C;KACF,CAAC;IAEF,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,8DAA8D;YACtE,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACjC,CAAC,CAAC,KAAK,CAAC,QAAQ;gBAChB,CAAC,CAAC,CAAC,WAAW,oBAAoB,CAAC,oCAAoC,CAAC,yDAAyD,CAAC;YACpI,MAAM,EAAE,CAAC,6DAA6D,CAAC;YACvE,aAAa,EAAE,wBAAwB,oBAAoB,CAAC,oCAAoC,CAAC,+BAA+B;SACjI,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,8CAA8C;YACtD,OAAO,EAAE,oBAAoB,CAAC,yCAAyC,CAAC;YACxE,QAAQ,EAAE,CAAC,gGAAgG,CAAC;YAC5G,MAAM,EAAE,CAAC,qHAAqH,CAAC;YAC/H,aAAa,EAAE,GAAG,oBAAoB,CAAC,oCAAoC,CAAC,sEAAsE;SACnJ,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;QACnD,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,wBAAwB;YAChC,MAAM,EAAE,kDAAkD;YAC1D,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE;gBACR,qFAAqF;gBACrF,cAAc,oBAAoB,CAAC,gCAAgC,CAAC,GAAG;aACxE;YACD,MAAM,EAAE,CAAC,OAAO,oBAAoB,CAAC,iCAAiC,CAAC,+DAA+D,CAAC;YACvI,aAAa,EAAE,GAAG,oBAAoB,CAAC,gCAAgC,CAAC,uCAAuC;SAChH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACjH,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,4BAA4B;YACpC,OAAO,EAAE,oBAAoB,CAAC,gCAAgC,CAAC;YAC/D,QAAQ,EAAE;gBACR,8EAA8E;gBAC9E,kKAAkK;gBAClK,mCAAmC,oBAAoB,CAAC,6CAA6C,CAAC,iCAAiC;aACxI;YACD,MAAM,EAAE,CAAC,6CAA6C,EAAE,+FAA+F,EAAE,+DAA+D,CAAC;YACzN,aAAa,EAAE,GAAG,oBAAoB,CAAC,gCAAgC,CAAC,eAAe,oBAAoB,CAAC,oCAAoC,CAAC,eAAe;SACjK,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1G,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,iEAAiE;YACzE,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE;gBACR,GAAG,QAAQ,CAAC,MAAM;gBAClB,6BAA6B,oBAAoB,CAAC,6CAA6C,CAAC,6DAA6D;aAC9J;YACD,MAAM,EAAE,CAAC,2GAA2G,CAAC;YACrH,aAAa,EAAE,GAAG,oBAAoB,CAAC,qCAAqC,CAAC,SAAS;SACvF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxE,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,4BAA4B;YACpC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,CAAC,mEAAmE,CAAC;YAC/E,MAAM,EAAE,CAAC,kFAAkF,CAAC;YAC5F,aAAa,EAAE,8BAA8B;SAC9C,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,gEAAgE;YACxE,OAAO,EAAE,oBAAoB,CAAC,gCAAgC,CAAC;YAC/D,QAAQ,EAAE,CAAC,4JAA4J,CAAC;YACxK,MAAM,EAAE,CAAC,mFAAmF,EAAE,qIAAqI,CAAC;YACpO,aAAa,EAAE,GAAG,oBAAoB,CAAC,gCAAgC,CAAC,mDAAmD;SAC5H,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,sCAAsC;QAC9C,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE;YACR,6FAA6F;YAC7F,GAAG,gCAAgC,CAAC,KAAK,CAAC;YAC1C,mKAAmK;YACnK,sEAAsE,oBAAoB,CAAC,6CAA6C,CAAC,GAAG;SAC7I;QACD,MAAM,EAAE;YACN,0DAA0D;YAC1D,GAAG,8BAA8B,CAAC,KAAK,CAAC;YACxC,wDAAwD;SACzD;QACD,aAAa,EAAE,kCAAkC,oBAAoB,CAAC,oCAAoC,CAAC,iBAAiB;KAC7H,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAmB;IAC3D,IAAI,CAAC,iCAAiC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,4PAA4P;KAC7P,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAmB;IACzD,IAAI,CAAC,iCAAiC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,gKAAgK;KACjK,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CAAC,KAAmB;IAC5D,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClD,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;WAC7C,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;WAClD,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CACzD,CACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAI,WAAmB,EAAE,MAAe;IAC5D,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC;gBACH,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACtF,OAAO,MAAM,EAAE,CAAC;YAClB,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACzB,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC7E,CAAC;YACD,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,qBAAqB,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;YAC1G,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,MAAM,IAAI,KAAK;WACd,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IACjC,OAAO,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,mBAAmB,EAAE,CAAC;YACpD,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;IACpE,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB,EAAE,WAAmB;IACnE,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,IAAI,wBAAwB,CAAC,IAAI,EAAE,6BAA6B,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,4BAA4B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,UAA6C,EAAE;IACtG,MAAM,OAAO,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC;IACvD,IAAI,QAAQ,EAAE,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;IAChH,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,wBAAwB,CAAC,WAAmB;IACnD,MAAM,OAAO,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,MAAM,EAAE,KAAK;QACb,OAAO;QACP,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;AACJ,CAAC;AAQD,SAAS,sBAAsB,CAAC,WAAmB;IACjD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAuB,CAAC,EAAE;YACxF,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,KAAK,GAA4C,EAAE,CAAC;IAC1D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBACnC,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC;SAClJ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,GAAG,IAAI;QACP,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC;KACtD,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB,EAAE,IAAY;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC1E,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC3C,QAAQ,IAAI,SAAS,CAAC;QACxB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}