lacuna-cli 0.1.7 → 0.1.9

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 (57) hide show
  1. package/README.md +41 -8
  2. package/dist/agent/context.d.ts +1 -0
  3. package/dist/agent/context.d.ts.map +1 -1
  4. package/dist/agent/context.js +141 -6
  5. package/dist/agent/context.js.map +1 -1
  6. package/dist/agent/fix-loop.d.ts.map +1 -1
  7. package/dist/agent/fix-loop.js +135 -20
  8. package/dist/agent/fix-loop.js.map +1 -1
  9. package/dist/agent/generator.d.ts +2 -0
  10. package/dist/agent/generator.d.ts.map +1 -1
  11. package/dist/agent/generator.js +63 -22
  12. package/dist/agent/generator.js.map +1 -1
  13. package/dist/agent/loop.d.ts +1 -1
  14. package/dist/agent/loop.d.ts.map +1 -1
  15. package/dist/agent/loop.js +81 -4
  16. package/dist/agent/loop.js.map +1 -1
  17. package/dist/agent/prompts/index.d.ts +2 -0
  18. package/dist/agent/prompts/index.d.ts.map +1 -1
  19. package/dist/agent/prompts/index.js +145 -31
  20. package/dist/agent/prompts/index.js.map +1 -1
  21. package/dist/agent/prompts/react-native.d.ts.map +1 -1
  22. package/dist/agent/prompts/react-native.js +15 -4
  23. package/dist/agent/prompts/react-native.js.map +1 -1
  24. package/dist/agent/prompts/react.js +1 -1
  25. package/dist/agent/prompts/runners/vitest.js +1 -1
  26. package/dist/commands/analyze.d.ts.map +1 -1
  27. package/dist/commands/analyze.js +4 -0
  28. package/dist/commands/analyze.js.map +1 -1
  29. package/dist/commands/fix.d.ts.map +1 -1
  30. package/dist/commands/fix.js +9 -0
  31. package/dist/commands/fix.js.map +1 -1
  32. package/dist/commands/generate.d.ts.map +1 -1
  33. package/dist/commands/generate.js +9 -0
  34. package/dist/commands/generate.js.map +1 -1
  35. package/dist/commands/run.d.ts.map +1 -1
  36. package/dist/commands/run.js +4 -0
  37. package/dist/commands/run.js.map +1 -1
  38. package/dist/lib/config.d.ts +6 -0
  39. package/dist/lib/config.d.ts.map +1 -1
  40. package/dist/lib/config.js +9 -0
  41. package/dist/lib/config.js.map +1 -1
  42. package/dist/lib/extract-error.d.ts.map +1 -1
  43. package/dist/lib/extract-error.js +8 -2
  44. package/dist/lib/extract-error.js.map +1 -1
  45. package/dist/lib/feedback.d.ts +3 -0
  46. package/dist/lib/feedback.d.ts.map +1 -0
  47. package/dist/lib/feedback.js +27 -0
  48. package/dist/lib/feedback.js.map +1 -0
  49. package/dist/lib/reporter.d.ts.map +1 -1
  50. package/dist/lib/reporter.js +11 -1
  51. package/dist/lib/reporter.js.map +1 -1
  52. package/dist/lib/validate.d.ts +25 -0
  53. package/dist/lib/validate.d.ts.map +1 -1
  54. package/dist/lib/validate.js +561 -0
  55. package/dist/lib/validate.js.map +1 -1
  56. package/package.json +9 -4
  57. package/oclif.manifest.json +0 -309
@@ -1,18 +1,18 @@
1
1
  import { readFile, writeFile, mkdir, unlink, readdir } from 'fs/promises';
2
- import { join, dirname, basename, extname } from 'path';
2
+ import { join, dirname, basename, extname, isAbsolute } from 'path';
3
3
  import { access, stat } from 'fs/promises';
4
4
  import chalk from 'chalk';
5
5
  import { fileTestCommand, multiFileTestCommand } from '../lib/detector.js';
6
6
  import { runCommand } from '../lib/runner.js';
7
7
  import { startCoverageSpinner } from '../lib/coverage-spinner.js';
8
8
  import { WorkerDisplay } from '../lib/worker-display.js';
9
- import { buildFixFileContext, computeRelativeImport, collectTypeDefinitions, collectLocalImportPaths, detectReactMajorVersion } from './context.js';
9
+ import { buildFixFileContext, computeRelativeImport, collectTypeDefinitions, collectLocalImportPaths, detectReactMajorVersion, findFileByName } from './context.js';
10
10
  import { TestGenerator, TruncatedOutputError, OscillationError, ModelStallError, TRUNCATION_RETRY_MESSAGE, OSCILLATION_ESCAPE_MESSAGE } from './generator.js';
11
11
  import { processGap } from './loop.js';
12
12
  import { ProjectMemory } from './project-memory.js';
13
13
  import { getActiveTips, createTipRotator, formatTip } from '../lib/tips.js';
14
14
  import { typeCheckFile } from '../lib/typecheck.js';
15
- import { hasTestFunctions, enrichNoTestsError, isZeroTestsOutput, parsePassCount, buildStructureBrokenMessage, buildRegressionMessage, sanitizeMocksContent, stripLeadingProse, mergeMocksContent, deduplicateViMocks } from '../lib/validate.js';
15
+ import { hasTestFunctions, hasPlaceholderBodies, enrichNoTestsError, isZeroTestsOutput, parsePassCount, buildStructureBrokenMessage, buildRegressionMessage, sanitizeMocksContent, stripLeadingProse, mergeMocksContent, deduplicateViMocks, tryApplyPatch, tryApplyMocksPatch } from '../lib/validate.js';
16
16
  import { extractTestFailure } from '../lib/extract-error.js';
17
17
  import { StreamingFileViewer } from '../lib/streaming-viewer.js';
18
18
  // ─── Failing-files cache ──────────────────────────────────────────────────────
@@ -127,26 +127,74 @@ function parseFailingTestFiles(output, runner) {
127
127
  return [...combined];
128
128
  }
129
129
  // ─── Find the source file that a test file is testing ────────────────────────
130
- async function findSourceFile(testFilePath, cwd) {
130
+ async function findSourceFile(testFilePath, cwd, configSourceDirs = 'src') {
131
131
  const ext = extname(testFilePath);
132
132
  const base = basename(testFilePath, ext);
133
133
  const dir = dirname(testFilePath);
134
- // strip test suffix: Button.test → Button, Button.spec → Button
135
134
  const sourceBase = base.replace(/\.(test|spec)$/, '').replace(/^test_/, '').replace(/_test$/, '');
136
- // if inside __tests__ dir, source is in parent
137
- const sourceDir = basename(dir) === '__tests__' ? dirname(dir) : dir;
138
135
  const exts = [ext, '.ts', '.tsx', '.js', '.jsx'];
136
+ const srcDirs = Array.isArray(configSourceDirs) ? configSourceDirs : [configSourceDirs];
137
+ async function tryCandidates(targetDir) {
138
+ const resolved = isAbsolute(targetDir) ? targetDir : join(cwd, targetDir);
139
+ for (const e of exts) {
140
+ try {
141
+ await access(join(resolved, `${sourceBase}${e}`));
142
+ return join(resolved, `${sourceBase}${e}`);
143
+ }
144
+ catch { /* next */ }
145
+ }
146
+ return null;
147
+ }
148
+ // Attempt 1: same directory as test file, or parent of __tests__
149
+ const sameDir = basename(dir) === '__tests__' ? dirname(dir) : dir;
150
+ const attempt1 = await tryCandidates(sameDir);
151
+ if (attempt1)
152
+ return attempt1;
153
+ // Attempt 2: replace test directory segment with sourceDir
154
+ // Handles monorepo layouts like: packages/server/test/unit/adapters/Foo.test.ts
155
+ // → packages/server/src/adapters/Foo.ts
156
+ const TEST_SEGMENT_RE = /^(.*[/\\])(?:tests?|specs?)[/\\](?:(?:unit|integration|e2e|functional|features?)[/\\])?(.*)$/i;
157
+ const match = dir.match(TEST_SEGMENT_RE);
158
+ if (match) {
159
+ const [, prefix, suffix] = match;
160
+ for (const srcDir of srcDirs) {
161
+ // Strategy A: relative srcDir appended to the test root prefix
162
+ // Works when sourceDir is short ("src") and test is nested under same package root
163
+ const a = await tryCandidates(join(prefix, srcDir, suffix));
164
+ if (a)
165
+ return a;
166
+ // Strategy B: absolute resolved srcDir + relative suffix
167
+ // Works when sourceDir is explicit ("packages/server/src")
168
+ const absSrc = isAbsolute(srcDir) ? srcDir : join(cwd, srcDir);
169
+ const b = await tryCandidates(join(absSrc, suffix));
170
+ if (b)
171
+ return b;
172
+ }
173
+ }
174
+ // Attempt 3: recursive filename search.
175
+ // Handles extra segments between src/ and the file (e.g. test/unit/interactors/Foo.test.ts
176
+ // → src/lib/interactors/Foo.ts — the "lib" is invisible to the mirror logic above).
177
+ // Search roots: (a) package prefix + srcDir (most targeted, e.g. packages/server/src/),
178
+ // then (b) absolute srcDir from config (for flat repos).
179
+ const searchRoots = [];
180
+ if (match) {
181
+ const [, prefix] = match;
182
+ for (const srcDir of srcDirs) {
183
+ searchRoots.push(join(prefix, srcDir));
184
+ }
185
+ }
186
+ for (const srcDir of srcDirs) {
187
+ const abs = isAbsolute(srcDir) ? srcDir : join(cwd, srcDir);
188
+ if (!searchRoots.includes(abs))
189
+ searchRoots.push(abs);
190
+ }
139
191
  for (const e of exts) {
140
- // If sourceDir is absolute (testFilePath was absolute), use it directly.
141
- // join(cwd, absoluteDir) doubles the path: /project/home/project/app/... which never exists.
142
- const candidate = sourceDir.startsWith('/') || sourceDir.startsWith('\\')
143
- ? join(sourceDir, `${sourceBase}${e}`)
144
- : join(cwd, sourceDir, `${sourceBase}${e}`);
145
- try {
146
- await access(candidate);
147
- return candidate;
192
+ const filename = `${sourceBase}${e}`;
193
+ for (const root of searchRoots) {
194
+ const found = await findFileByName(root, filename);
195
+ if (found)
196
+ return found;
148
197
  }
149
- catch { /* try next */ }
150
198
  }
151
199
  return null;
152
200
  }
@@ -182,7 +230,7 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
182
230
  return { success: false, error: msg };
183
231
  }
184
232
  // Find and read the source file being tested
185
- const sourceFilePath = await findSourceFile(testFilePath, cwd);
233
+ const sourceFilePath = await findSourceFile(testFilePath, cwd, config.sourceDir);
186
234
  let sourceCode = null;
187
235
  if (sourceFilePath) {
188
236
  sourceCode = await readFile(sourceFilePath, 'utf-8').catch(() => null);
@@ -245,6 +293,7 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
245
293
  localImportPaths,
246
294
  reactMajorVersion,
247
295
  projectMemory,
296
+ existingTestLineCount: testCode.split('\n').length,
248
297
  })
249
298
  : await generator.retry(errorOutput);
250
299
  }
@@ -304,6 +353,29 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
304
353
  onStatus?.({ phase: 'passed', file: shortPath });
305
354
  return { success: true };
306
355
  }
356
+ // Patch mode: apply surgical edits against the current file on disk
357
+ if (generator.isPatch) {
358
+ const currentContent = await readFile(absTestPath, 'utf-8').catch(() => null) ?? testCode;
359
+ const patched = tryApplyPatch(currentContent, fixed);
360
+ if (patched !== null) {
361
+ fixed = patched;
362
+ }
363
+ else {
364
+ // Anchor(s) not found — do NOT write raw patch markers to disk
365
+ errorOutput =
366
+ 'PATCH APPLICATION FAILED: one or more anchor strings in your patch were not found in the test file.\n' +
367
+ 'Anchors must be copied character-for-character (including quote style) from the CURRENT TEST FILE shown above.\n' +
368
+ 'Checklist:\n' +
369
+ ' • REPLACE_TEST / DELETE_TEST anchor = exact it/test name already in the file\n' +
370
+ ' • ADD_AFTER_DESCRIBE anchor = exact describe() name already in the file\n' +
371
+ ' • For a brand-new test, use ADD_AFTER_DESCRIBE with the enclosing describe name\n' +
372
+ 'Re-read the test file, find the exact anchor names, and rewrite your patch.';
373
+ if (!onStatus)
374
+ log(chalk.yellow(` Patch anchors not found — retrying...`));
375
+ onStatus?.({ phase: 'retrying', file: shortPath, attempt, max: config.maxIterations });
376
+ continue;
377
+ }
378
+ }
307
379
  // Strip thinking/prose that leaked before the first real code line.
308
380
  const { code: cleanFixed, stripped: bleedText } = stripLeadingProse(fixed);
309
381
  if (bleedText !== null) {
@@ -313,8 +385,37 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
313
385
  }
314
386
  // Split out mocks file if AI returned one
315
387
  const MOCKS_SEPARATOR = '// ---MOCKS_FILE---';
388
+ const MOCKS_PATCH_SEPARATOR = '// ---MOCKS_PATCH---';
316
389
  let testFileContent = fixed;
317
- if (fixed.includes(MOCKS_SEPARATOR) && config.mocksFile) {
390
+ if (fixed.includes(MOCKS_PATCH_SEPARATOR) && config.mocksFile) {
391
+ // Surgical patch mode: model only emits the changed sections
392
+ const [newTestCode, patchContent] = fixed.split(MOCKS_PATCH_SEPARATOR);
393
+ testFileContent = newTestCode.trim();
394
+ if (patchContent?.trim()) {
395
+ const absoluteMocksFile = join(cwd, config.mocksFile);
396
+ let existing = '';
397
+ try {
398
+ existing = await readFile(absoluteMocksFile, 'utf-8');
399
+ }
400
+ catch { /* new file — patch can't apply */ }
401
+ if (existing) {
402
+ const applied = tryApplyMocksPatch(existing, patchContent.trim());
403
+ if (applied) {
404
+ if (applied.failedOps.length > 0) {
405
+ const anchors = applied.failedOps.map(op => `"${op.oldText.slice(0, 60).replace(/\n/g, '↵')}"`).join(', ');
406
+ errorOutput = `MOCKS PATCH FAILED: the following REPLACE anchor(s) were not found in the mock file:\n${anchors}\nAnchors must be copied character-for-character from the SHARED MOCK FILE shown above. Re-read it and rewrite your ---MOCKS_PATCH--- block.`;
407
+ if (!onStatus)
408
+ log(chalk.yellow(` ⚠ Mock patch anchors not found — retrying...`));
409
+ continue;
410
+ }
411
+ await writeFile(absoluteMocksFile, applied.result, 'utf-8');
412
+ if (!onStatus)
413
+ log(chalk.dim(` Patched mocks file: ${config.mocksFile}`));
414
+ }
415
+ }
416
+ }
417
+ }
418
+ else if (fixed.includes(MOCKS_SEPARATOR) && config.mocksFile) {
318
419
  const [newTestCode, newMocksCode] = fixed.split(MOCKS_SEPARATOR);
319
420
  testFileContent = newTestCode.trim();
320
421
  if (newMocksCode?.trim()) {
@@ -356,6 +457,20 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
356
457
  onStatus?.({ phase: 'running', file: shortPath });
357
458
  const result = await runCommand(fileTestCommand(env, absTestPath), cwd, 60_000);
358
459
  if (result.success) {
460
+ if (hasPlaceholderBodies(testFileContent)) {
461
+ errorOutput =
462
+ 'ERROR: One or more test bodies contain placeholder comments (e.g. `// body`, `// TODO`) with no real assertions.\n' +
463
+ 'Every test must have complete, working expectations:\n' +
464
+ ' it(\'description\', async () => {\n' +
465
+ ' const result = await subject.doThing(...);\n' +
466
+ ' expect(result).toEqual(expectedValue);\n' +
467
+ ' })\n' +
468
+ 'Replace every `// body` placeholder with real arrange-act-assert code.';
469
+ if (!onStatus)
470
+ log(chalk.yellow(' Placeholder test bodies detected — retrying...'));
471
+ onStatus?.({ phase: 'retrying', file: shortPath, attempt, max: config.maxIterations });
472
+ continue;
473
+ }
359
474
  const typeErrors = await typeCheckFile(absTestPath, cwd, env);
360
475
  if (typeErrors) {
361
476
  errorOutput = `Tests passed but TypeScript type errors were found:\n${typeErrors}\n\nFix ALL type errors. Do not use 'as any' or '@ts-ignore'.`;
@@ -570,7 +685,7 @@ async function regenerateFile(testFilePath, options, onStatus, projectMemory) {
570
685
  const absTestFile = testFilePath.startsWith('/') ? testFilePath : join(options.cwd, testFilePath);
571
686
  // Find the source file so processGap gets the right starting point.
572
687
  // processGap expects gap.filePath to be the SOURCE file, not the test file.
573
- const sourceFile = await findSourceFile(absTestFile, options.cwd);
688
+ const sourceFile = await findSourceFile(absTestFile, options.cwd, options.config.sourceDir);
574
689
  if (!sourceFile) {
575
690
  return { success: false, error: `Could not find source file for ${absTestFile}` };
576
691
  }
@@ -595,7 +710,7 @@ async function regenerateFile(testFilePath, options, onStatus, projectMemory) {
595
710
  }
596
711
  }
597
712
  : undefined;
598
- const result = await processGap(gap, options, generator, true, regenOnStatus, projectMemory);
713
+ const result = await processGap(gap, options, generator, true, regenOnStatus, projectMemory, absTestFile);
599
714
  return { success: result.success, error: result.error };
600
715
  }
601
716
  // ─── Worker pool ──────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"fix-loop.js","sourceRoot":"","sources":["../../src/agent/fix-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-loop.js","sourceRoot":"","sources":["../../src/agent/fix-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACzE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnK,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,eAAe,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAC7J,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC1S,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAgBhE,iFAAiF;AAEjF,MAAM,eAAe,GAAG,IAAI,CAAA,CAAC,aAAa;AAE1C,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAA;AAC5C,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC1F,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAA;QACxD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;QACzD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,KAAe;IACtD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAW;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACvC,CAAC;AAWD,iFAAiF;AAEjF,MAAM,YAAY,GAAG,yDAAyD,CAAA;AAE9E,SAAS,SAAS,CAAC,CAAS;IAC1B,8EAA8E;IAC9E,OAAO,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAClG,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,MAAc;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEhC,+FAA+F;IAC/F,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAEpC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC1E,IAAI,CAAC,EAAE,CAAC;gBAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,SAAQ;YAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACrE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACtE,IAAI,CAAC,EAAE,CAAC;gBAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,aAAa,GAAkB,IAAI,CAAA;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACpC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QACrD,IAAI,EAAE,EAAE,CAAC;YAAC,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAAC,MAAK;QAAC,CAAC;QACtD,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACvD,IAAI,EAAE,EAAE,CAAC;YAAC,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAAC,MAAK;QAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC,CAAA;IAEvD,IAAI,aAAa,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;QAC5D,uFAAuF;QACvF,6EAA6E;QAC7E,iEAAiE;QACjE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;QAChC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAAC,IAAI,MAAM,CAAC,IAAI,GAAG,aAAa;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAAC,IAAI,MAAM,CAAC,IAAI,GAAG,aAAa;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,MAAM,CAAC,CAAA;IACpB,CAAC;IAED,yEAAyE;IACzE,MAAM,eAAe,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAA;IACpG,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YACpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3F,OAAO,GAAG,KAAK,CAAA;YACjB,CAAC;YACD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,YAAY,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAA;YACtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClB,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAA;AACtB,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,cAAc,CAAC,YAAoB,EAAE,GAAW,EAAE,mBAAsC,KAAK;IAC1G,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACjG,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAEvF,KAAK,UAAU,aAAa,CAAC,SAAiB;QAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACzE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5H,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iEAAiE;IACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAClE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,2DAA2D;IAC3D,iFAAiF;IACjF,sEAAsE;IACtE,MAAM,eAAe,GAAG,+FAA+F,CAAA;IACvH,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IACxC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;QAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,+DAA+D;YAC/D,mFAAmF;YACnF,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;YAC3D,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAA;YACf,yDAAyD;YACzD,2DAA2D;YAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC9D,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;YACnD,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,2FAA2F;IAC3F,oFAAoF;IACpF,wFAAwF;IACxF,yDAAyD;IACzD,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;QACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC3D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvD,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,GAAG,UAAU,GAAG,CAAC,EAAE,CAAA;QACpC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAClD,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,OAAO,CACpB,YAAoB,EACpB,OAAmB,EACnB,SAAwB,EACxB,QAAuC,EACvC,aAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC1D,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;IACrD,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAEzF,IAAI,CAAC,QAAQ;QAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;IACtE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEjD,sDAAsD;IACtD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;IACjF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAA;QAC9D,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9E,MAAM,kBAAkB,GAAG,WAAW,CAAA;IACtC,MAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAElF,0BAA0B;IAC1B,IAAI,QAAgB,CAAA;IACpB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,GAAG,6BAA6B,SAAS,EAAE,CAAA;QACpD,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAA;QACzC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAChD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACvC,CAAC;IAED,6CAA6C;IAC7C,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IAChF,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,IAAI,cAAc,EAAE,CAAC;QACnB,UAAU,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEnG,8EAA8E;IAC9E,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/E,UAAU,IAAI,cAAc;YAC1B,CAAC,CAAC,sBAAsB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC3E,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QACzB,UAAU,IAAI,cAAc;YAC1B,CAAC,CAAC,uBAAuB,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACzF,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QACzB,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAC/C,CAAC,CAAA;IAEF,kEAAkE;IAClE,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAEjF,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,MAAM,iBAAiB,GAAG,CAAC,CAAA;IAE3B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;QACjE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,OAAO,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC,CAAA;QACrF,CAAC;QAED,6FAA6F;QAC7F,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QACpE,MAAM,cAAc,GAAG,OAAO,CAAA;QAC9B,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE;YACnC,QAAQ,EAAE,CAAC;gBACT,KAAK,EAAE,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;gBACvD,IAAI,EAAE,SAAS;gBACf,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAA;QAElE,IAAI,MAAuC,CAAA;QAC3C,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAA;YAC3C,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAClD,MAAM,CAAC,KAAK,EAAE,CAAA;QAChB,CAAC;QAED,IAAI,KAAa,CAAA;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,OAAO,KAAK,CAAC;gBACnB,CAAC,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC;oBAClB,QAAQ,EAAE,SAAS;oBACnB,QAAQ;oBACR,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI;oBAC1D,UAAU;oBACV,gBAAgB;oBAChB,WAAW;oBACX,GAAG;oBACH,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI;oBACjC,eAAe,EAAE,GAAG,EAAE,eAAe,IAAI,IAAI;oBAC7C,aAAa,EAAE,GAAG,EAAE,aAAa,IAAI,IAAI;oBACzC,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,IAAI;oBACrC,aAAa,EAAE,GAAG,EAAE,aAAa,IAAI,IAAI;oBACzC,eAAe;oBACf,gBAAgB;oBAChB,iBAAiB;oBACjB,aAAa;oBACb,qBAAqB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;iBACnD,CAAC;gBACJ,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,IAAI,EAAE,CAAA;YACd,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;YACrC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;YAC1C,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;gBACnC,IAAI,YAAY,GAAG,iBAAiB,EAAE,CAAC;oBACrC,YAAY,EAAE,CAAA;oBACd,IAAI,CAAC,QAAQ;wBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,YAAY,IAAI,iBAAiB,MAAM,CAAC,CAAC,CAAA;oBAChH,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;oBACpE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;oBAC3C,OAAO,EAAE,CAAA,CAAG,uDAAuD;oBACnE,SAAQ;gBACV,CAAC;YACH,CAAC;YACD,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;gBACxC,WAAW,GAAG,wBAAwB,CAAA;gBACtC,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gEAAgE,CAAC,CAAC,CAAA;gBAClG,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;gBACtF,SAAQ;YACV,CAAC;YACD,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;gBACpC,IAAI,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;oBACnC,iFAAiF;oBACjF,+EAA+E;oBAC/E,IAAI,CAAC,QAAQ;wBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iEAAiE,CAAC,CAAC,CAAA;oBACnG,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;oBACtF,SAAS,CAAC,qBAAqB,EAAE,CAAA;oBACjC,WAAW,GAAG,0BAA0B,CAAA;oBACxC,SAAQ;gBACV,CAAC;gBACD,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC,CAAA;gBACpH,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;gBAChD,MAAM,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBAC/D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;YAC/C,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAA;YACtD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAChD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;QACvC,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,CAAA;QACd,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QACrC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;QAE1C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAA;gBAC/C,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClF,CAAC;YACD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC1B,CAAC;QAED,oEAAoE;QACpE,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAA;YACzF,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;YACpD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,KAAK,GAAG,OAAO,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,+DAA+D;gBAC/D,WAAW;oBACT,uGAAuG;wBACvG,kHAAkH;wBAClH,cAAc;wBACd,kFAAkF;wBAClF,6EAA6E;wBAC7E,qFAAqF;wBACrF,6EAA6E,CAAA;gBAC/E,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAA;gBAC3E,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;gBACtF,SAAQ;YACV,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC1E,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YACxG,KAAK,GAAG,UAAU,CAAA;QACpB,CAAC;QAED,0CAA0C;QAC1C,MAAM,eAAe,GAAG,qBAAqB,CAAA;QAC7C,MAAM,qBAAqB,GAAG,sBAAsB,CAAA;QACpD,IAAI,eAAe,GAAG,KAAK,CAAA;QAE3B,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC9D,6DAA6D;YAC7D,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACtE,eAAe,GAAG,WAAW,CAAC,IAAI,EAAE,CAAA;YACpC,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;gBACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;gBACrD,IAAI,QAAQ,GAAG,EAAE,CAAA;gBACjB,IAAI,CAAC;oBAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;gBAC1G,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAA;oBACjE,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;4BAC1G,WAAW,GAAG,yFAAyF,OAAO,8IAA8I,CAAA;4BAC5P,IAAI,CAAC,QAAQ;gCAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAA;4BAClF,SAAQ;wBACV,CAAC;wBACD,MAAM,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;wBAC3D,IAAI,CAAC,QAAQ;4BAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;oBAC5E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC/D,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YAChE,eAAe,GAAG,WAAW,CAAC,IAAI,EAAE,CAAA;YACpC,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;gBACzB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC/E,IAAI,QAAQ,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gEAAgE,CAAC,CAAC,CAAA;gBAC9G,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;oBACrD,MAAM,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;oBAC5D,IAAI,QAAQ,GAAG,EAAE,CAAA;oBACjB,IAAI,CAAC;wBAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;oBACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;oBAC5E,MAAM,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;oBACnD,IAAI,CAAC,QAAQ;wBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC;QAED,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAA;QAErD,wCAAwC;QACxC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;YACvC,WAAW;gBACT,sFAAsF;oBACtF,gFAAgF;oBAChF,mGAAmG;oBACnG,+CAA+C,CAAA;YACjD,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAA;YAC/E,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;YACtF,SAAQ;QACV,CAAC;QAED,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACjD,MAAM,SAAS,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QAEtD,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAA;QAC5D,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAEjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAE/E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,oBAAoB,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC1C,WAAW;oBACT,oHAAoH;wBACpH,wDAAwD;wBACxD,uCAAuC;wBACvC,kDAAkD;wBAClD,8CAA8C;wBAC9C,QAAQ;wBACR,wEAAwE,CAAA;gBAC1E,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAA;gBACpF,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;gBACtF,SAAQ;YACV,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YAC7D,IAAI,UAAU,EAAE,CAAC;gBACf,WAAW,GAAG,wDAAwD,UAAU,+DAA+D,CAAA;gBAC/I,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAA;gBACrE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;gBACtF,SAAQ;YACV,CAAC;YACD,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;YAC3C,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC1B,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;QACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAA;QACrD,MAAM,eAAe,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACvD,MAAM,gBAAgB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;QAC3E,yEAAyE;QACzE,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAA;QAElD,IAAI,eAAe,EAAE,CAAC;YACpB,WAAW,GAAG,2BAA2B,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;YAC3E,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,OAAO,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;QAC9H,CAAC;aAAM,IAAI,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;YAChD,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;YACxG,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,iBAAiB,MAAM,gBAAgB,qBAAqB,OAAO,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;QAC3J,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,SAAS,CAAA;YACvB,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,OAAO,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;QAC/F,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,OAAO;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3F,CAAC;IAED,kEAAkE;IAClE,MAAM,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC/D,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAChD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,uBAAuB,MAAM,CAAC,aAAa,2BAA2B,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;KAC1G,CAAA;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAA;IACpD,MAAM,QAAQ,GAAG,QAAQ;SACtB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;SAC7G,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3B,OAAO,IAAI,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;AACnC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,GAAgC;IAC5E,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACtD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAA;IAEhG,KAAK,UAAU,IAAI,CAAC,GAAW;QAC7B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC1D,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,OAAiB,EAAE,GAAW;IACrE,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClF,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACrB,OAAO,MAAM,KAAK,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC/F,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,MAAc,EACd,MAAgB,EAChB,GAAqD,EACrD,GAAW;IAEX,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACrC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAC7F,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAChC,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IAC3F,OAAO,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;AAC9C,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,MAAc,EACd,UAAoB,EACpB,GAAqD,EACrD,GAAW;IAEX,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAExC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACvE,OAAO,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEnC,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACtG,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACxG,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,WAAqB,EACrB,OAAmB,EACnB,aAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEzC,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACtD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,YAAY,CAAC,MAAM,wBAAwB,CAAC,CAAC,CAAA;IAE3E,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IACpD,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,kBAAkB,GAAG,CAAC,CAAA;IAC1B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,MAAM,iBAAiB,GAAa,EAAE,CAAA;IAEtC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;QACjD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QAE/D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;QAEzD,+EAA+E;QAC/E,qFAAqF;QACrF,0DAA0D;QAC1D,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,MAAM,qBAAqB,CAAC,CAAC,CAAA;QACpE,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wGAAwG,CAAC,CAAC,CAAA;YAC3H,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC,CAAA;YAC5G,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC,CAAA;YAC9G,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC,CAAA;YAC5F,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9B,SAAQ;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAEnE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+EAA+E,CAAC,CAAC,CAAA;YAClG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9B,SAAQ;QACV,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;QACrD,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QAErD,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,aAAa,GAAG,CAAC,CAAC,CAAA;YACvD,SAAQ;QACV,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE3B,kEAAkE;QAClE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAC7F,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEhF,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QACxE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QACpE,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,aAAa,EAAE,CAAC,CAAC,CAAA;YACpE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9B,SAAQ;QACV,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAA;QAC7D,IAAI,KAAa,CAAA;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC;gBACnC,YAAY,EAAE,aAAa;gBAC3B,YAAY;gBACZ,UAAU,EAAE,WAAW;gBACvB,UAAU;gBACV,WAAW;gBACX,GAAG;aACJ,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YACjF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9B,SAAQ;QACV,CAAC;QAED,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QACzC,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAC9F,MAAM,aAAa,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;QACvG,MAAM,cAAc,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAA;QAEnE,IAAI,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,aAAa,EAAE,CAAC,CAAC,CAAA;YACvD,cAAc,EAAE,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,aAAa,EAAE,CAAC,CAAC,CAAA;YACnF,MAAM,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAChE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,oEAAoE;IACpE,yEAAyE;IACzE,mEAAmE;IACnE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;QAC1E,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,iBAAiB,CAAC,MAAM,kEAAkE,CAAC,CAAC,CAAA;QAC/H,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;YACjD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;YAC9E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;gBAC/C,kBAAkB,EAAE,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,CAAA;YAC5F,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;AAC/C,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,cAAc,CAC3B,YAAoB,EACpB,OAAmB,EACnB,QAAuC,EACvC,aAA6B;IAE7B,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAEjG,oEAAoE;IACpE,4EAA4E;IAC5E,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC3F,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,WAAW,EAAE,EAAE,CAAA;IACnF,CAAC;IAED,wEAAwE;IACxE,6EAA6E;IAC7E,iFAAiF;IACjF,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAEzC,MAAM,GAAG,GAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAA;IAC7F,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAEjF,uFAAuF;IACvF,sFAAsF;IACtF,uFAAuF;IACvF,yEAAyE;IACzE,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAA;IAChE,MAAM,aAAa,GAAG,QAAQ;QAC5B,CAAC,CAAC,CAAC,KAAkB,EAAE,EAAE;YACrB,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACzD,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACvE,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QACH,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;IACzG,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;AACzD,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,aAAa,CAC1B,SAAmB,EACnB,OAAmB,EACnB,WAAmB,EACnB,aAA4B;IAE5B,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;IAC5B,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,mBAAmB,GAAG,CAAC,CAAA;IAC3B,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,iBAAiB,GAAa,EAAE,CAAA;IACtC,MAAM,WAAW,GAAa,EAAE,CAAA;IAEhC,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QAC3B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QACnC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK;KACf,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC/E,OAAO,CAAC,KAAK,EAAE,CAAA;IAEf,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;QAClD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACjF,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;YAC1B,IAAI,CAAC,IAAI;gBAAE,MAAK;YAChB,MAAM,QAAQ,GAAG,CAAC,KAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACrE,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;YACnE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;YACxF,cAAc,EAAE,CAAA;YAChB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAAC,mBAAmB,EAAE,CAAC;oBAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAAC,CAAC;;oBACnE,UAAU,EAAE,CAAA;YACnB,CAAC;iBAAM,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACvC,iFAAiF;gBACjF,0EAA0E;gBAC1E,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;gBACnF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;gBACzF,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,UAAU,EAAE,CAAA;gBACd,CAAC;qBAAM,CAAC;oBACN,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC5B,IAAI,WAAW,CAAC,KAAK;wBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC5B,IAAI,MAAM,CAAC,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAA;AACpG,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAmB;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAA;IAEhC,IAAI,YAAsB,CAAA;IAE1B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,4EAA4E;QAC5E,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;YAClD,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;QACtG,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjG,OAAO,CAAC,IAAI,EAAE,CAAA;QAEd,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAA;YAC/D,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QAC3H,CAAC;QAED,YAAY,GAAG,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,wDAAwD;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;QAC5D,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,eAAe,CAAA;QAEtE,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,UAAU,CAAC,UAAU,KAAM,CAAC,KAAK,CAAC,MAAM,kEAAkE,CAAC,CAAC,CAAA;YACzK,YAAY,GAAG,KAAM,CAAC,KAAK,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;YAC3G,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YACzG,OAAO,CAAC,IAAI,EAAE,CAAA;YAEd,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,CAAC,eAAe,MAAM;oBAC1D,qDAAqD,MAAM,CAAC,eAAe,GAAG,CAAC,IAAI,CACpF,CAAA;YACH,CAAC;YAED,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAA;gBAC/D,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;YAC3H,CAAC;YAED,YAAY,GAAG,qBAAqB,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;YAC7F,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvC,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;gBAChD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;YAC7D,CAAC,CAAC,CAAA;YAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gEAAgE,CAAC,CAAC,CAAA;gBACnF,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,WAAW,kCAAkC,CAAC,CAAC,CAAA;gBAClF,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;qBACxD,KAAK,CAAC,IAAI,CAAC;qBACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACvB,KAAK,CAAC,CAAC,EAAE,CAAC;qBACV,IAAI,CAAC,IAAI,CAAC,CAAA;gBACb,IAAI,SAAS;oBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACnH,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;YAC3H,CAAC;YAED,MAAM,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,YAAY,CAAC,MAAM,wBAAwB,CAAC,CAAC,CAAA;IACzE,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,OAAO;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC,CAAA;QAC/H,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,WAAW,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAA;IAClC,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,EAAE,CAAA;IAE/C,IAAI,cAAsB,CAAA;IAC1B,IAAI,UAAkB,CAAA;IACtB,IAAI,mBAA2B,CAAA;IAC/B,IAAI,MAAgB,CAAA;IACpB,IAAI,iBAA2B,CAAA;IAC/B,IAAI,WAAqB,CAAA;IAEzB,IAAI,QAAQ,EAAE,CAAC;QACb,CAAC;QAAA,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA;IAC1K,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,CAAC,CAAA;QAClB,UAAU,GAAG,CAAC,CAAA;QACd,mBAAmB,GAAG,CAAC,CAAA;QACvB,MAAM,GAAG,EAAE,CAAA;QACX,iBAAiB,GAAG,EAAE,CAAA;QACtB,WAAW,GAAG,EAAE,CAAA;QAChB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,aAAa,CAAC;YACzB,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACtC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;YACrB,IAAI,GAAG;gBAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC7D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAA;YAC9F,cAAc,EAAE,CAAA;YAChB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAAC,mBAAmB,EAAE,CAAC;oBAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAAC,CAAC;;oBACnE,UAAU,EAAE,CAAA;YACnB,CAAC;iBAAM,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACvC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wDAAwD,CAAC,CAAC,CAAA;gBAC3E,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAA;gBAC/F,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,UAAU,EAAE,CAAA;gBACd,CAAC;qBAAM,CAAC;oBACN,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC5B,IAAI,WAAW,CAAC,KAAK;wBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC5B,IAAI,MAAM,CAAC,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,iFAAiF;IACjF,+EAA+E;IAC/E,sCAAsC;IACtC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,YAAY,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;;YACvE,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,kBAAkB,GAAG,CAAC,CAAA;IAC1B,IAAI,OAAO,CAAC,YAAY,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,WAAW,CAAC,MAAM,kDAAkD,CAAC,CAAC,CAAA;QACzH,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;QACtF,cAAc,GAAG,cAAc,CAAC,cAAc,CAAA;QAC9C,kBAAkB,GAAG,cAAc,CAAC,kBAAkB,CAAA;IACxD,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAA;AACxG,CAAC"}
@@ -28,11 +28,13 @@ export declare class TestGenerator {
28
28
  private lastHypothesis;
29
29
  private failedAttempts;
30
30
  private previousCodes;
31
+ private lastIsPatch;
31
32
  constructor(options: GeneratorOptions);
32
33
  setTokenCallback(cb: ((token: string) => void) | undefined): void;
33
34
  setFirstTokenCallback(cb: (() => void) | undefined): void;
34
35
  private buildOnToken;
35
36
  resetOscillationState(): void;
37
+ get isPatch(): boolean;
36
38
  generate(context: FileContext, gap: CoverageGap, projectMemory?: string | null): Promise<string>;
37
39
  fix(args: Parameters<typeof buildFixPrompt>[0]): Promise<string>;
38
40
  fixPollution(args: Parameters<typeof buildPollutionFixPrompt>[0]): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/agent/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAA0C,cAAc,EAAoB,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEtI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAI3D,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM;CAIhD;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAK1C;AAID,eAAO,MAAM,0BAA0B,QAOE,CAAA;AAyCzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAA;IACpB,GAAG,EAAE,mBAAmB,CAAA;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC;AAED,QAAA,MAAM,wBAAwB,QAKiC,CAAA;AAgF/D,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,UAAU,CAAC,CAAyB;IAC5C,OAAO,CAAC,qBAAqB,CAAC,CAAY;IAC1C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAAe;gBAExB,OAAO,EAAE,gBAAgB;IAUrC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;IAO1D,qBAAqB,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IAMlD,OAAO,CAAC,YAAY;IAiBpB,qBAAqB;IAIf,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IA6ChG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBhE,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBlF,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA2CpD;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/agent/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAA0C,cAAc,EAAoB,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEtI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAI3D,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM;CAIhD;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAK1C;AAID,eAAO,MAAM,0BAA0B,QAOE,CAAA;AA4CzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAA;IACpB,GAAG,EAAE,mBAAmB,CAAA;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC;AAED,QAAA,MAAM,wBAAwB,QAKiC,CAAA;AAgH/D,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,UAAU,CAAC,CAAyB;IAC5C,OAAO,CAAC,qBAAqB,CAAC,CAAY;IAC1C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,WAAW,CAAQ;gBAEf,OAAO,EAAE,gBAAgB;IAUrC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;IAO1D,qBAAqB,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IAMlD,OAAO,CAAC,YAAY;IAiBpB,qBAAqB;IAIrB,IAAI,OAAO,IAAI,OAAO,CAA4B;IAE5C,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IA+ChG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBhE,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBlF,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA4CpD;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
@@ -39,8 +39,8 @@ function estimateMaxTokens(sourceCode, configMax) {
39
39
  return Math.min(configMax, Math.max(4000, 2000 + lines * 40));
40
40
  }
41
41
  // Wraps a token callback so that <thinking> content is suppressed.
42
- // Buffers silently until <code_output> is seen, then streams from there.
43
- // Falls back to streaming everything if <code_output> never appears (e.g. non-XML response).
42
+ // Buffers silently until <code_output> or <code_patch> is seen, then streams from there.
43
+ // Falls back to streaming everything if neither tag appears (e.g. non-XML response).
44
44
  function codeOnlyStream(onToken) {
45
45
  let buf = '';
46
46
  let streaming = false;
@@ -50,16 +50,19 @@ function codeOnlyStream(onToken) {
50
50
  return;
51
51
  }
52
52
  buf += token;
53
- const idx = buf.indexOf('<code_output>');
54
- if (idx !== -1) {
53
+ const outputIdx = buf.includes('<code_output>') ? buf.indexOf('<code_output>') : Infinity;
54
+ const patchIdx = buf.includes('<code_patch>') ? buf.indexOf('<code_patch>') : Infinity;
55
+ const idx = Math.min(outputIdx, patchIdx);
56
+ if (idx < Infinity) {
55
57
  streaming = true;
56
- const after = buf.slice(idx + '<code_output>'.length);
58
+ const marker = outputIdx <= patchIdx ? '<code_output>' : '<code_patch>';
59
+ const after = buf.slice(idx + marker.length);
57
60
  if (after)
58
61
  onToken(after);
59
62
  buf = '';
60
63
  return;
61
64
  }
62
- // If no <code_output> after 3000 chars the model skipped the XML wrapper — flush and stream
65
+ // If no <code_output> or <code_patch> after 3000 chars the model skipped the XML wrapper — flush and stream
63
66
  if (buf.length > 3000) {
64
67
  streaming = true;
65
68
  onToken(buf);
@@ -75,6 +78,19 @@ const TRUNCATION_RETRY_MESSAGE = 'Your previous output produced no valid code
75
78
  'IMMEDIATELY write the code — do NOT plan in a <thinking> block this time. ' +
76
79
  'Write a short, focused test file. Cover the most important behaviors only — skip exhaustive edge cases. ' +
77
80
  'Every function body must be closed. Use <code_output> tags.';
81
+ // Detect a prose repetition loop: the model wrote the same planning sentence 3+ times
82
+ // without ever producing code. Only applied to the fallback path (no XML/fence tags).
83
+ function isRepetitionLoop(text) {
84
+ const lines = text.split('\n').map(l => l.trim()).filter(l => l.length > 45);
85
+ const seen = new Map();
86
+ for (const line of lines) {
87
+ const count = (seen.get(line) ?? 0) + 1;
88
+ seen.set(line, count);
89
+ if (count >= 3)
90
+ return true;
91
+ }
92
+ return false;
93
+ }
78
94
  // Detect syntactically incomplete code — a strong signal that output was cut off mid-generation.
79
95
  function isCodeIncomplete(code) {
80
96
  if (!code.trim())
@@ -103,17 +119,28 @@ function isCodeIncomplete(code) {
103
119
  // leaked into the code output. The model occasionally forgets to close the thinking block
104
120
  // before opening <code_output>, so the code starts with stray XML closing tags or prose.
105
121
  function stripThinkingBleed(code) {
106
- // Remove any </thinking> closing tag (with optional whitespace / newlines around it)
107
- let s = code.replace(/^\s*<\/thinking>\s*/i, '');
108
- // Remove any complete <thinking>...</thinking> block left at the top
109
- s = s.replace(/^\s*<thinking>[\s\S]*?<\/thinking>\s*/i, '');
110
- // Remove an unclosed <thinking> block — model got stuck looping, no real code follows
111
- s = s.replace(/^\s*<thinking>[\s\S]*/i, '');
122
+ // Claude uses <thinking>...</thinking>; DeepSeek R1 uses <think>...</think>.
123
+ // Handle both tag names, plus unclosed variants where the model looped without finishing.
124
+ let s = code;
125
+ // Remove stray closing tags
126
+ s = s.replace(/^\s*<\/(thinking|think)>\s*/i, '');
127
+ // Remove complete blocks
128
+ s = s.replace(/^\s*<(thinking|think)>[\s\S]*?<\/\1>\s*/i, '');
129
+ // Remove unclosed blocks (model got stuck — no real code follows)
130
+ s = s.replace(/^\s*<(thinking|think)>[\s\S]*/i, '');
112
131
  return s;
113
132
  }
114
133
  function parseStructuredResponse(raw) {
115
- const thinkingMatch = raw.match(/<thinking>([\s\S]*?)<\/thinking>/i);
134
+ const thinkingMatch = raw.match(/<(?:thinking|think)>([\s\S]*?)<\/(?:thinking|think)>/i);
116
135
  const hypothesis = thinkingMatch ? thinkingMatch[1].trim() : '';
136
+ // Check for <code_patch> FIRST — patch blocks are individually complete, skip truncation check.
137
+ const lineAnchoredPatch = /(?:^|\n)<code_patch>[ \t]*(?:\n|$)/i;
138
+ const patchMatch = lineAnchoredPatch.exec(raw);
139
+ if (patchMatch) {
140
+ const patchEnd = patchMatch.index + patchMatch[0].length;
141
+ const code = stripThinkingBleed(raw.slice(patchEnd).trim());
142
+ return { hypothesis, code, truncated: false, isPatch: true };
143
+ }
117
144
  // The real <code_output> delimiter is always on its own line (preceded by \n or start-of-string).
118
145
  // References to it inside planning text ("output in <code_output> tags") appear mid-sentence,
119
146
  // never on their own line. Use a line-anchored search to skip prose mentions entirely.
@@ -125,26 +152,33 @@ function parseStructuredResponse(raw) {
125
152
  const closeMatch = lineAnchoredClose.exec(raw.slice(openEnd));
126
153
  if (closeMatch) {
127
154
  const code = stripThinkingBleed(raw.slice(openEnd, openEnd + closeMatch.index).trim());
128
- return { hypothesis, code, truncated: isCodeIncomplete(code) };
155
+ return { hypothesis, code, truncated: isCodeIncomplete(code), isPatch: false };
129
156
  }
130
157
  // No closing tag — normal when stop sequence fires cleanly
131
158
  const code = stripThinkingBleed(raw.slice(openEnd).trim());
132
- return { hypothesis, code, truncated: isCodeIncomplete(code) };
159
+ return { hypothesis, code, truncated: isCodeIncomplete(code), isPatch: false };
133
160
  }
134
161
  // No XML tags — extract the last fenced code block if present.
135
162
  // Gemini and other models sometimes emit prose + multiple draft blocks before
136
163
  // settling on a final answer; the last block is the intended output.
164
+ // After extracting, check whether the content looks like patch ops (// @@@ headers) —
165
+ // models that skip <code_patch> tags but follow the @@@-format still get patch mode.
137
166
  const fenceMatches = [...raw.matchAll(/```(?:typescript|tsx?|javascript|jsx?|python|go)?\s*\n([\s\S]*?)```/g)];
138
167
  if (fenceMatches.length > 0) {
139
168
  const code = stripThinkingBleed(fenceMatches[fenceMatches.length - 1][1].trim());
140
- return { hypothesis, code, truncated: isCodeIncomplete(code) };
169
+ const isPatch = /^\/\/ @@@ (REPLACE_TEST|DELETE_TEST|ADD_AFTER_DESCRIBE|ADD_IMPORT|ADD_AFTER_IMPORTS|REPLACE):/m.test(code);
170
+ return { hypothesis, code, truncated: isCodeIncomplete(code), isPatch };
141
171
  }
142
- // No fenced blocks at all — strip any single fence pair and use as code
172
+ // No fenced blocks at all — strip any single fence pair and use as code.
173
+ // Also catch repetition loops: if the raw text has the same prose sentence 3+ times,
174
+ // the model was looping instead of writing code — treat as truncated so the
175
+ // TRUNCATION_RETRY_MESSAGE fires and forces immediate code output next turn.
143
176
  let fallback = raw.trim();
144
177
  fallback = fallback.replace(/^```(?:typescript|tsx?|javascript|jsx?|python|go)?\s*\n/, '');
145
178
  fallback = fallback.replace(/\n```\s*$/, '');
146
179
  const code = stripThinkingBleed(fallback.trim());
147
- return { hypothesis, code, truncated: isCodeIncomplete(code) };
180
+ const isPatch = /^\/\/ @@@ (REPLACE_TEST|DELETE_TEST|ADD_AFTER_DESCRIBE|ADD_IMPORT|ADD_AFTER_IMPORTS|REPLACE):/m.test(code);
181
+ return { hypothesis, code, truncated: isCodeIncomplete(code) || isRepetitionLoop(raw), isPatch };
148
182
  }
149
183
  export class TestGenerator {
150
184
  provider;
@@ -156,6 +190,7 @@ export class TestGenerator {
156
190
  lastHypothesis = '';
157
191
  failedAttempts = [];
158
192
  previousCodes = []; // normalized codes from all attempts, for oscillation detection
193
+ lastIsPatch = false;
159
194
  constructor(options) {
160
195
  this.provider = createProvider(options.config);
161
196
  this.env = options.env;
@@ -196,6 +231,7 @@ export class TestGenerator {
196
231
  resetOscillationState() {
197
232
  this.previousCodes = [];
198
233
  }
234
+ get isPatch() { return this.lastIsPatch; }
199
235
  async generate(context, gap, projectMemory) {
200
236
  this.lastHypothesis = '';
201
237
  this.failedAttempts = [];
@@ -221,12 +257,14 @@ export class TestGenerator {
221
257
  localImportContents: context.localImportContents,
222
258
  reactMajorVersion: context.reactMajorVersion,
223
259
  projectMemory,
260
+ existingTestLineCount: context.existingTestCode?.split('\n').length ?? 0,
224
261
  }),
225
262
  },
226
263
  ];
227
264
  const response = await this.provider.generate(this.history, buildSystemPrompt(this.env), this.buildOnToken(), estimateMaxTokens(context.sourceCode, this.maxTokens), GENERATE_TEMPERATURE);
228
- const { hypothesis, code, truncated } = parseStructuredResponse(response);
265
+ const { hypothesis, code, truncated, isPatch } = parseStructuredResponse(response);
229
266
  this.lastHypothesis = hypothesis;
267
+ this.lastIsPatch = isPatch;
230
268
  this.previousCodes.push(normalizeCode(code));
231
269
  this.history.push({ role: 'assistant', content: response });
232
270
  if (truncated)
@@ -239,8 +277,9 @@ export class TestGenerator {
239
277
  this.previousCodes = [];
240
278
  this.history = [{ role: 'user', content: buildFixPrompt(args) }];
241
279
  const response = await this.provider.generate(this.history, buildSystemPrompt(this.env), this.buildOnToken(), estimateMaxTokens(args.sourceCode, this.maxTokens), GENERATE_TEMPERATURE);
242
- const { hypothesis, code, truncated } = parseStructuredResponse(response);
280
+ const { hypothesis, code, truncated, isPatch } = parseStructuredResponse(response);
243
281
  this.lastHypothesis = hypothesis;
282
+ this.lastIsPatch = isPatch;
244
283
  this.previousCodes.push(normalizeCode(code));
245
284
  this.history.push({ role: 'assistant', content: response });
246
285
  if (truncated)
@@ -253,8 +292,9 @@ export class TestGenerator {
253
292
  this.previousCodes = [];
254
293
  this.history = [{ role: 'user', content: buildPollutionFixPrompt(args) }];
255
294
  const response = await this.provider.generate(this.history, buildSystemPrompt(this.env), this.buildOnToken(), this.maxTokens, RETRY_TEMPERATURE);
256
- const { hypothesis, code, truncated } = parseStructuredResponse(response);
295
+ const { hypothesis, code, truncated, isPatch } = parseStructuredResponse(response);
257
296
  this.lastHypothesis = hypothesis;
297
+ this.lastIsPatch = isPatch;
258
298
  this.previousCodes.push(normalizeCode(code));
259
299
  this.history.push({ role: 'assistant', content: response });
260
300
  if (truncated)
@@ -286,8 +326,9 @@ export class TestGenerator {
286
326
  content: buildRetryPrompt(failureOutput, this.failedAttempts),
287
327
  });
288
328
  const response = await this.provider.generate(this.history, buildSystemPrompt(this.env), this.buildOnToken(), this.maxTokens, RETRY_TEMPERATURE);
289
- const { hypothesis, code, truncated } = parseStructuredResponse(response);
329
+ const { hypothesis, code, truncated, isPatch } = parseStructuredResponse(response);
290
330
  this.lastHypothesis = hypothesis;
331
+ this.lastIsPatch = isPatch;
291
332
  this.history.push({ role: 'assistant', content: response });
292
333
  if (truncated)
293
334
  throw new TruncatedOutputError(code);