opencode-rag-plugin 1.6.2 → 1.8.1

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 (74) hide show
  1. package/ReadMe.md +41 -59
  2. package/dist/chunker/base.d.ts +1 -0
  3. package/dist/chunker/base.js +26 -0
  4. package/dist/chunker/base.js.map +1 -1
  5. package/dist/chunker/cpp.js +0 -3
  6. package/dist/chunker/cpp.js.map +1 -1
  7. package/dist/chunker/csharp.js +2 -4
  8. package/dist/chunker/csharp.js.map +1 -1
  9. package/dist/chunker/factory.d.ts +1 -1
  10. package/dist/chunker/factory.js +9 -2
  11. package/dist/chunker/factory.js.map +1 -1
  12. package/dist/chunker/go.js +0 -1
  13. package/dist/chunker/go.js.map +1 -1
  14. package/dist/chunker/grammar.js +8 -2
  15. package/dist/chunker/grammar.js.map +1 -1
  16. package/dist/chunker/java.js +0 -1
  17. package/dist/chunker/java.js.map +1 -1
  18. package/dist/chunker/javascript.js +0 -2
  19. package/dist/chunker/javascript.js.map +1 -1
  20. package/dist/chunker/kotlin.js +0 -2
  21. package/dist/chunker/kotlin.js.map +1 -1
  22. package/dist/chunker/python.js +0 -1
  23. package/dist/chunker/python.js.map +1 -1
  24. package/dist/chunker/ruby.js +0 -2
  25. package/dist/chunker/ruby.js.map +1 -1
  26. package/dist/chunker/rust.js +0 -1
  27. package/dist/chunker/rust.js.map +1 -1
  28. package/dist/chunker/swift.js +0 -3
  29. package/dist/chunker/swift.js.map +1 -1
  30. package/dist/chunker/typescript.js +0 -2
  31. package/dist/chunker/typescript.js.map +1 -1
  32. package/dist/cli.js +125 -3
  33. package/dist/cli.js.map +1 -1
  34. package/dist/core/config.d.ts +10 -0
  35. package/dist/core/config.js +16 -0
  36. package/dist/core/config.js.map +1 -1
  37. package/dist/eval/index.d.ts +5 -0
  38. package/dist/eval/index.js +4 -0
  39. package/dist/eval/index.js.map +1 -0
  40. package/dist/eval/session-logger.d.ts +16 -0
  41. package/dist/eval/session-logger.js +124 -0
  42. package/dist/eval/session-logger.js.map +1 -0
  43. package/dist/eval/storage.d.ts +12 -0
  44. package/dist/eval/storage.js +184 -0
  45. package/dist/eval/storage.js.map +1 -0
  46. package/dist/eval/types.d.ts +89 -0
  47. package/dist/eval/types.js +17 -0
  48. package/dist/eval/types.js.map +1 -0
  49. package/dist/indexer.js +131 -91
  50. package/dist/indexer.js.map +1 -1
  51. package/dist/opencode/tools.js +4 -6
  52. package/dist/opencode/tools.js.map +1 -1
  53. package/dist/plugin.js +41 -13
  54. package/dist/plugin.js.map +1 -1
  55. package/dist/retriever/keyword-index.js +2 -0
  56. package/dist/retriever/keyword-index.js.map +1 -1
  57. package/dist/tui.js +310 -0
  58. package/dist/tui.js.map +1 -1
  59. package/dist/vectorstore/lancedb.d.ts +4 -0
  60. package/dist/vectorstore/lancedb.js +14 -0
  61. package/dist/vectorstore/lancedb.js.map +1 -1
  62. package/dist/watcher.js +2 -0
  63. package/dist/watcher.js.map +1 -1
  64. package/dist/web/api.d.ts +4 -0
  65. package/dist/web/api.js +197 -0
  66. package/dist/web/api.js.map +1 -0
  67. package/dist/web/server.d.ts +5 -0
  68. package/dist/web/server.js +41 -0
  69. package/dist/web/server.js.map +1 -0
  70. package/dist/web/static.d.ts +1 -0
  71. package/dist/web/static.js +13 -0
  72. package/dist/web/static.js.map +1 -0
  73. package/dist/web/ui/index.html +1078 -0
  74. package/package.json +7 -2
package/dist/cli.js CHANGED
@@ -9,6 +9,7 @@ import chokidar from "chokidar";
9
9
  import pc from "picocolors";
10
10
  import { loadConfig, DEFAULT_CONFIG, resolveLogConfig } from "./core/config.js";
11
11
  import { resolveApiKey } from "./core/resolve-api-key.js";
12
+ import { appendDebugLog } from "./core/fileLogger.js";
12
13
  import { loadChunkersFromConfig } from "./chunker/loader.js";
13
14
  import { createEmbedder } from "./embedder/factory.js";
14
15
  import { createDescriptionProvider } from "./describer/factory.js";
@@ -225,6 +226,50 @@ function generateWorkspaceTuiPluginFile(packageName) {
225
226
  "",
226
227
  ].join("\n");
227
228
  }
229
+ function generateSkillFile() {
230
+ return [
231
+ "---",
232
+ "name: opencode-rag",
233
+ "description: Semantic code retrieval via OpenCodeRAG — vector search, file skeletons, and symbol usage lookup for this workspace",
234
+ "---",
235
+ "",
236
+ "## OpenCodeRAG Tools",
237
+ "",
238
+ "This workspace has OpenCodeRAG indexed for semantic code search. Use these tools BEFORE planning, editing, or answering code questions.",
239
+ "",
240
+ "### When to use each tool",
241
+ "",
242
+ "| Tool | Use when | Example |",
243
+ "|------|----------|---------|",
244
+ "| `opencode-rag-context` | Any code search — you need to find relevant code before acting | `\"authentication middleware\"` |",
245
+ "| `search_semantic` | Conceptual question — \"how does X work?\" or \"where is Y?\" | `\"How does the chunking pipeline work?\"` |",
246
+ "| `get_file_skeleton` | You have a file path but need to orient before reading | `\"src/plugin.ts\"` |",
247
+ "| `find_usages` | Before editing any function, class, or variable — check all call sites | `\"createRagHooks\"` |",
248
+ "",
249
+ "### Workflow",
250
+ "",
251
+ "1. **Skeleton first** — call `get_file_skeleton(filePath)` to see structure",
252
+ "2. **Find usages** — call `find_usages(symbolName)` before modifying any symbol",
253
+ "3. **Search** — call `opencode-rag-context(query)` or `search_semantic(query)` to find relevant code",
254
+ "4. **Read** — use the `read` tool on specific line ranges identified above",
255
+ "5. **Edit** — now you have full context to make safe changes",
256
+ "",
257
+ "### Parameters",
258
+ "",
259
+ "- `opencode-rag-context`: `query` (req), `pathHints?`, `languageHints?`, `topK?`",
260
+ "- `search_semantic`: `query` (req), `pathHints?`, `languageHints?`, `topK?`",
261
+ "- `get_file_skeleton`: `filePath` (req)",
262
+ "- `find_usages`: `symbolName` (req), `pathHint?`, `topK?`",
263
+ "",
264
+ "### Tips",
265
+ "",
266
+ "- Use `pathHints` to narrow searches to specific directories",
267
+ "- Use `languageHints` to filter by file type",
268
+ "- `find_usages` is essential before refactoring — it shows every reference",
269
+ "- If no results appear, the workspace may not be indexed yet — run `opencode-rag index`",
270
+ "",
271
+ ].join("\n");
272
+ }
228
273
  function mergeGitignoreContent(existingContent) {
229
274
  const lines = existingContent ? existingContent.split(/\r?\n/) : [];
230
275
  const trimmed = new Set(lines.map((line) => line.trim()));
@@ -347,8 +392,14 @@ program
347
392
  descriptionProvider,
348
393
  force: Boolean(options.force && !watchTriggered),
349
394
  logger: {
350
- info: (message) => logCliInfo(logFilePath, "index", message),
351
- warn: (message) => console.warn(message),
395
+ info: (message) => {
396
+ console.log(message);
397
+ appendDebugLog(logFilePath, { scope: "index", message });
398
+ },
399
+ warn: (message) => {
400
+ console.warn(message);
401
+ appendDebugLog(logFilePath, { scope: "index", message: `WARN: ${message}` });
402
+ },
352
403
  },
353
404
  });
354
405
  logIndexSummary(logFilePath, stats);
@@ -622,6 +673,52 @@ program
622
673
  process.exit(1);
623
674
  }
624
675
  });
676
+ program
677
+ .command("ui")
678
+ .description("Start the web UI for browsing the vector database")
679
+ .option("-c, --config <path>", "path to config file")
680
+ .option("-p, --port <number>", "port to listen on (default: from config or 3210)")
681
+ .option("--no-open", "do not open browser automatically")
682
+ .action(async (options) => {
683
+ try {
684
+ const cwd = process.cwd();
685
+ let logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
686
+ const config = await resolveConfig(options, logFilePath);
687
+ logFilePath = path.resolve(cwd, resolveLogConfig(config).logFilePath);
688
+ const port = parseInt(options.port ?? String(config.ui?.port ?? 3210), 10);
689
+ const openBrowser = options.open !== false && (config.ui?.openBrowser ?? true);
690
+ const { startWebUi } = await import("./web/server.js");
691
+ const server = await startWebUi(path.resolve(cwd, config.vectorStore.path), port);
692
+ const url = `http://127.0.0.1:${server.port}`;
693
+ logCliInfo(logFilePath, "ui", `\n${c.heading("OpenCodeRAG Web UI")}`);
694
+ logCliInfo(logFilePath, "ui", ` ${c.label("URL:")} ${c.value(url)}`);
695
+ logCliInfo(logFilePath, "ui", ` ${c.dim("Press Ctrl+C to stop")}\n`);
696
+ if (openBrowser) {
697
+ const { spawn } = await import("node:child_process");
698
+ if (process.platform === "win32") {
699
+ spawn("cmd.exe", ["/c", "start", url], { detached: true, stdio: "ignore" }).unref();
700
+ }
701
+ else {
702
+ const cmd = process.platform === "darwin" ? "open" : "xdg-open";
703
+ spawn(cmd, [url], { detached: true, stdio: "ignore" }).unref();
704
+ }
705
+ }
706
+ process.on("SIGINT", async () => {
707
+ await server.close();
708
+ process.exit(0);
709
+ });
710
+ process.on("SIGTERM", async () => {
711
+ await server.close();
712
+ process.exit(0);
713
+ });
714
+ }
715
+ catch (err) {
716
+ const message = err.message || String(err);
717
+ const logFilePath = path.resolve(process.cwd(), ".opencode", "opencode-rag.log");
718
+ logCliError(logFilePath, "ui", `\nUI failed: ${message}`, err);
719
+ process.exit(1);
720
+ }
721
+ });
625
722
  function generateDefaultConfigJson() {
626
723
  return JSON.stringify({
627
724
  embedding: {
@@ -635,6 +732,8 @@ function generateDefaultConfigJson() {
635
732
  excludeDirs: DEFAULT_CONFIG.indexing.excludeDirs,
636
733
  chunkOverlap: DEFAULT_CONFIG.indexing.chunkOverlap,
637
734
  minFileSizeBytes: DEFAULT_CONFIG.indexing.minFileSizeBytes,
735
+ concurrency: DEFAULT_CONFIG.indexing.concurrency,
736
+ embedBatchSize: DEFAULT_CONFIG.indexing.embedBatchSize,
638
737
  },
639
738
  vectorStore: {
640
739
  path: DEFAULT_CONFIG.vectorStore.path,
@@ -667,6 +766,9 @@ function generateDefaultConfigJson() {
667
766
  level: DEFAULT_CONFIG.logging.level,
668
767
  logFilePath: DEFAULT_CONFIG.logging.logFilePath,
669
768
  },
769
+ chunking: {
770
+ nodeTypes: {},
771
+ },
670
772
  }, null, 2) + "\n";
671
773
  }
672
774
  program
@@ -762,6 +864,26 @@ program
762
864
  else {
763
865
  console.log(` ${c.exists("Exists:")} .opencode/tui.json`);
764
866
  }
867
+ const skillsDir = path.join(opencodeDir, "skills");
868
+ const skillDir = path.join(skillsDir, "opencode-rag");
869
+ const skillPath = path.join(skillDir, "SKILL.md");
870
+ if (!existsSync(skillDir)) {
871
+ mkdirSync(skillDir, { recursive: true });
872
+ console.log(` ${c.created("Created:")} .opencode/skills/opencode-rag/`);
873
+ }
874
+ const skillContent = generateSkillFile();
875
+ const skillExists = existsSync(skillPath);
876
+ if (!skillExists || options.force) {
877
+ writeFileSync(skillPath, skillContent, "utf-8");
878
+ console.log(` ${skillExists ? c.updated("Updated:") : c.created("Created:")} .opencode/skills/opencode-rag/SKILL.md`);
879
+ }
880
+ else if (readFileSync(skillPath, "utf-8") !== skillContent) {
881
+ writeFileSync(skillPath, skillContent, "utf-8");
882
+ console.log(` ${c.updated("Updated:")} .opencode/skills/opencode-rag/SKILL.md`);
883
+ }
884
+ else {
885
+ console.log(` ${c.exists("Exists:")} .opencode/skills/opencode-rag/SKILL.md`);
886
+ }
765
887
  const workspacePackageExists = existsSync(opencodePackagePath);
766
888
  const nextWorkspacePackage = buildWorkspacePackageJson(readJsonObject(opencodePackagePath), packageMetadata, opencodeDir);
767
889
  if (!workspacePackageExists || options.force) {
@@ -842,7 +964,7 @@ if (shouldAutoRunCli(import.meta.url, process.argv[1])) {
842
964
  else {
843
965
  // Fallback: if the module appears to be running as a CLI (has argv with commands like 'init', 'index', etc.)
844
966
  // and not being imported as a library, parse the arguments anyway
845
- const commands = ['init', 'index', 'query', 'clear', 'status', 'list', 'show', 'dump'];
967
+ const commands = ['init', 'index', 'query', 'clear', 'status', 'list', 'show', 'dump', 'ui'];
846
968
  const cmd = process.argv[2];
847
969
  if (process.argv.length > 2 && cmd && commands.includes(cmd.toLowerCase())) {
848
970
  void program.parseAsync(process.argv);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAkB,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,GAEb,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,GAAG;IACR,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,GAAG,EAAE,CAAC,CAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACjC,CAAC;AAuBF,SAAS,WAAW,CAAC,WAAmB,EAAE,KAAa,EAAE,OAAe,EAAE,KAAc;IACtF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAChC,yDAAyD;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,WAAmB,EAAE,KAAa,EAAE,OAAe;IACrE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,kDAAkD;AACpD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAe,EAAE,WAAmB;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC7B,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5D,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACjF,OAAO,gBAAgB,CAAC,WAAW,EAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,8BAA8B,GAAG,CAAC,MAAM,kBAAkB,EAAE,GAAG,CAAC,CAAC;YACpG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC7B,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5D,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACjF,OAAO,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,8BAA8B,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,6CAA6C,CAAC,EAAE,CAAC,CAAC;IACnH,OAAO,gBAAgB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,SAAiB,EAAE,WAAmB;IACvE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACtE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,UAAU,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC;QAChH,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC3E,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB,EAAE,MAAiB;IAC9D,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/G,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5G,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5G,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,SAAkB;IACzC,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/B,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB,EAAE,KAAoB;IAChE,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/F,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpG,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACrG,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACnG,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACnG,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACxG,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACxG,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,GAAG,KAAK;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,cAAc,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAoB,CAAC;AAC/E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CACjG,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAA4B,CAAC;AAChF,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,KAA8B;IACrE,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,gCAAgC,CAAC,WAAmB,EAAE,WAAmB,EAAE,OAAe;IACjG,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAE9D,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,QAAQ,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,yBAAyB,CAChC,QAA6C,EAC7C,eAAgC,EAChC,WAAmB;IAEnB,MAAM,oBAAoB,GAAG,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACrE,MAAM,aAAa,GACjB,oBAAoB,CAAC,qBAAqB,CAAC;QAC3C,eAAe,CAAC,eAAe,EAAE,CAAC,qBAAqB,CAAC;QACxD,eAAe,CAAC,gBAAgB,EAAE,CAAC,qBAAqB,CAAC;QACzD,SAAS,CAAC;IAEZ,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,OAAO,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;QACtE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE;YACZ,GAAG,oBAAoB;YACvB,qBAAqB,EAAE,aAAa;YACpC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,gCAAgC,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC;SACjH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA6C;IACxE,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;IACrC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,iCAAiC,CAAC;IACnD,CAAC;IACD,uEAAuE;IACvE,oEAAoE;IACpE,qEAAqE;IACrE,2EAA2E;IAC3E,OAAO,IAAI,CAAC,MAAM,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,OAAe,EAAE,UAAkB;IACtF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,OAAO,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC;YACrH,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC7C,SAAS;YACX,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,CAAC,MAAM,CAAC;YACpB,CAAC;YAED,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,2BAA2B,CAAC,WAAmB;IACtD,OAAO;QACL,uCAAuC,WAAW,yBAAyB;QAC3E,8BAA8B;QAC9B,sCAAsC;QACtC,wBAAwB;QACxB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,8BAA8B,CAAC,WAAmB;IACzD,OAAO;QACL,uCAAuC,WAAW,gBAAgB;QAClE,wBAAwB;QACxB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,eAAwB;IACrD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,CAAC,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO;YACL,8CAA8C;YAC9C,eAAe;YACf,mBAAmB;YACnB,EAAE;YACF,iDAAiD;YACjD,SAAS;YACT,EAAE;YACF,eAAe;YACf,kBAAkB;YAClB,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,IAAI,CAAC;IACnF,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,4BAA4B,CAAC,WAAmB;IACvD,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,MAAM,QAAQ,GAAG;QACf;YACE,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,mBAAmB,CAAC;YAClD,KAAK,EAAE,KAAK;SACb;QACD;YACE,IAAI,EAAE;gBACJ,SAAS;gBACT,UAAU;gBACV,mBAAmB;gBACnB,kBAAkB;gBAClB,eAAe;aAChB;YACD,KAAK,EAAE,IAAI;SACZ;KACF,CAAC;IAEF,IAAI,SAA4B,CAAC;IAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,MAAM,GACV,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC1B,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAChH,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC7B,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;QAET,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,sCAAsC,CAAC;KACnD,OAAO,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;AAEzC,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC;KAC5C,MAAM,CAAC,aAAa,EAAE,uDAAuD,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QAEtE,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAExC,gDAAgD;QAChD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,eAAe,GAAG,GAAG,CAAC;QAC1B,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChF,eAAe,GAAI,KAAK,CAAC,CAAC,CAAc,CAAC,MAAM,CAAC;QAClD,CAAC;QACD,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAElG,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,YAAY,CAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAC1C,eAAe,CAChB,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QAExG,mDAAmD;QACnD,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAiB,EAAE,OAAO,EAAE,4BAA4B,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QAC7K,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO;YACnD,CAAC,CAAC,yBAAyB,CAAC,iBAAiB,CAAC;YAC9C,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,mBAAmB,EAAE,CAAC;YACxB,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC5I,CAAC;QAED,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,KAAK,EAAE,iBAA0B,KAAK,EAAiB,EAAE;YACvE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;gBAC/B,GAAG;gBACH,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;gBACrD,MAAM;gBACN,KAAK;gBACL,QAAQ;gBACR,YAAY;gBACZ,mBAAmB;gBACnB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC;gBAChD,MAAM,EAAE;oBACN,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC;oBAC5D,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;iBACzC;aACF,CAAC,CAAC;YAEH,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACpC,UAAU,CACR,WAAW,EACX,OAAO,EACP,KAAK,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,CAC/H,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,wBAAwB,CACxC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EACnB,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,OAAO,GAAI,KAAe,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,2BAA2B,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACjF,CAAC,EACD,GAAG,CACJ,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE;YAClC,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnF,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACtC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5B,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,kBAAmB,KAAe,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YACvF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAqB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;QACtD,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,QAAQ,kCAAkC,CAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACjF,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,sBAAsB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9F,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;KAC7C,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,IAAI,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAmB,EAAE,EAAE;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QAEtE,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;QAC3E,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtG,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3E,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,kCAAkC,CAAC,CAAC;YAC1G,OAAO;QACT,CAAC;QACD,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAErG,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QACxG,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAChL,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;QACtD,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,QAAQ,KAAK,CAAC,CAAC;QAE3F,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YACvK,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1F,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACjF,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,mBAAmB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9F,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAEtC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAC3B,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC/F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACjF,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,mBAAmB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CACzC,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAC1C,MAAM,EACN,KAAK,CACN,CAAC;QAEF,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1F,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5H,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7G,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzG,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtH,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChH,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtG,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvI,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAChG,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACxG,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;QACzH,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtG,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACrG,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO;YACpD,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACpG,CAAC,CAAC,CAAC,CAAC;QACN,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3L,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACpH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACjF,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,0BAA0B,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,kCAAkC,CAAC,CAAC;YACxG,OAAO;QACT,CAAC;QAED,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC/E,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9L,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACjF,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAmB,EAAE,EAAE;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9P,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACjF,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,IAAI,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAElC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,kCAAkC,CAAC,CAAC;YACzG,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEpD,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1K,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3M,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;YAC3B,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,KAAK,GAAG,MAAM,GAAG,KAAK,uBAAuB,MAAM,GAAG,KAAK,eAAe,CAAC,EAAE,CAAC,CAAC;QACnI,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACjF,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,SAAS,yBAAyB;IAChC,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,SAAS,EAAE;YACT,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,QAAQ;YAC3C,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,OAAO;YACzC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK;YACrC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,SAAS;SAC9C;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,cAAc,CAAC,QAAQ,CAAC,iBAAiB;YAC5D,WAAW,EAAE,cAAc,CAAC,QAAQ,CAAC,WAAW;YAChD,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,YAAY;YAClD,gBAAgB,EAAE,cAAc,CAAC,QAAQ,CAAC,gBAAgB;SAC3D;QACD,WAAW,EAAE;YACX,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI;SACtC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI;YACnC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,QAAQ;YAC3C,YAAY,EAAE;gBACZ,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,YAAa,CAAC,OAAO;gBACvD,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,YAAa,CAAC,aAAa;aACpE;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO;YACxC,gBAAgB,EAAE,cAAc,CAAC,QAAQ,CAAC,gBAAgB;YAC1D,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,YAAY;YAClD,SAAS,EAAE;gBACT,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,SAAU,CAAC,OAAO;gBACnD,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,SAAU,CAAC,UAAU;gBACzD,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,SAAU,CAAC,UAAU;aAC1D;YACD,UAAU,EAAE;gBACV,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAW,CAAC,OAAO;gBACpD,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAW,CAAC,QAAQ;gBACtD,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAW,CAAC,SAAS;gBACxD,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAW,CAAC,SAAS;aACzD;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK;YACnC,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;SAChD;KACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CAAC;AACX,CAAC;AAED,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC/D,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC,IAAI,CAAC,CAAC;IAE5E,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,oBAAoB,GAAG,qBAAqB,CAChD,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CACnE,CAAC;IACF,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,oBAAoB,EAAE,CAAC;QACvG,aAAa,CAAC,aAAa,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC3G,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC5D,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,oBAAoB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3C,aAAa,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACnH,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACrG,aAAa,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,aAAa,CAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;IACxH,CAAC;SAAM,IAAI,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,kBAAkB,EAAE,CAAC;QACzE,aAAa,CAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC5D,MAAM,qBAAqB,GAAG,8BAA8B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnF,IAAI,CAAC,oBAAoB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3C,aAAa,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACxH,CAAC;SAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,KAAK,qBAAqB,EAAE,CAAC;QAC/E,aAAa,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC;IAC3D,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACtC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACzG,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3F,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,sBAAsB,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IAC1H,IAAI,CAAC,sBAAsB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7C,aAAa,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;IACpH,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxG,aAAa,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,aAAa,CAAC,UAAU,EAAE,yBAAyB,EAAE,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACrG,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,mDAAmD,CAAC,IAAI,CAAC,CAAC;QACrF,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QACtE,MAAM,oBAAoB,GAAG,oCAAoC,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QACtG,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,4GAA4G,CAAC,EAAE,CAAC,CAAC;IAC1I,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;AAC1I,CAAC,CAAC,CAAC;AAEL;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAuB;IAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,GAAG,GAAG;YACV,KAAK,CAAC,QAAQ,CAAC,QAAQ;YACvB,KAAK,CAAC,QAAQ,CAAC,SAAS;YACxB,KAAK,CAAC,QAAQ,CAAC,OAAO;YACtB,KAAK,CAAC,OAAO;SACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,KAAc;IAChE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpD,OAAO,aAAa,KAAK,UAAU,YAAY,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC1I,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;KAAM,CAAC;IACN,6GAA6G;IAC7G,kEAAkE;IAClE,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC3E,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAiB,OAAO,CAAC,IAAI;IACxD,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,10 @@ export interface DescriptionConfig {
35
35
  retryMax?: number;
36
36
  retryBaseDelayMs?: number;
37
37
  }
38
+ export interface UiConfig {
39
+ port: number;
40
+ openBrowser: boolean;
41
+ }
38
42
  export interface RagConfig {
39
43
  embedding: {
40
44
  provider: string;
@@ -51,6 +55,8 @@ export interface RagConfig {
51
55
  excludeDirs: string[];
52
56
  chunkOverlap: number;
53
57
  minFileSizeBytes?: number;
58
+ concurrency: number;
59
+ embedBatchSize: number;
54
60
  };
55
61
  vectorStore: {
56
62
  path: string;
@@ -74,7 +80,11 @@ export interface RagConfig {
74
80
  readRelatedFilesMax?: number;
75
81
  };
76
82
  chunkers?: ChunkerConfig[];
83
+ chunking?: {
84
+ nodeTypes?: Record<string, string[]>;
85
+ };
77
86
  description?: DescriptionConfig;
87
+ ui?: UiConfig;
78
88
  logging: LoggingConfig;
79
89
  }
80
90
  export interface LoggingConfig {
@@ -61,6 +61,8 @@ export const DEFAULT_CONFIG = {
61
61
  ],
62
62
  chunkOverlap: 0,
63
63
  minFileSizeBytes: 0,
64
+ concurrency: 4,
65
+ embedBatchSize: 50,
64
66
  },
65
67
  vectorStore: {
66
68
  path: "./.opencode/rag_db",
@@ -101,6 +103,10 @@ export const DEFAULT_CONFIG = {
101
103
  retryMax: 3,
102
104
  retryBaseDelayMs: 1000,
103
105
  },
106
+ ui: {
107
+ port: 3210,
108
+ openBrowser: true,
109
+ },
104
110
  logging: {
105
111
  level: "info",
106
112
  logFilePath: "./.opencode/opencode-rag.log",
@@ -154,10 +160,20 @@ export function loadConfig(filePath) {
154
160
  return merged;
155
161
  })(),
156
162
  chunkers: parsed.chunkers ?? DEFAULT_CONFIG.chunkers,
163
+ chunking: {
164
+ nodeTypes: {
165
+ ...(DEFAULT_CONFIG.chunking?.nodeTypes ?? {}),
166
+ ...(parsed.chunking?.nodeTypes ?? {}),
167
+ },
168
+ },
157
169
  description: {
158
170
  ...DEFAULT_CONFIG.description,
159
171
  ...(parsed.description ?? {}),
160
172
  },
173
+ ui: {
174
+ ...DEFAULT_CONFIG.ui,
175
+ ...(parsed.ui ?? {}),
176
+ },
161
177
  logging: {
162
178
  ...DEFAULT_CONFIG.logging,
163
179
  ...(parsed.logging ?? {}),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { SessionEvent, SessionSummary, ComparisonResult, TokenUsage } from "./types.js";
2
+ export { RAG_TOOL_NAMES, isRagTool } from "./types.js";
3
+ export { appendSessionEvent, readSessionEvents, listSessionIDs, listSessions, getSession, deleteSession, computeSummary, compareSessions, } from "./storage.js";
4
+ export { createSessionLogger } from "./session-logger.js";
5
+ export type { SessionLogger } from "./session-logger.js";
@@ -0,0 +1,4 @@
1
+ export { RAG_TOOL_NAMES, isRagTool } from "./types.js";
2
+ export { appendSessionEvent, readSessionEvents, listSessionIDs, listSessions, getSession, deleteSession, computeSummary, compareSessions, } from "./storage.js";
3
+ export { createSessionLogger } from "./session-logger.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eval/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ interface EventLike {
2
+ type: string;
3
+ properties: Record<string, unknown>;
4
+ }
5
+ export interface SessionLogger {
6
+ onEvent(event: EventLike): void;
7
+ onRagContext(sessionID: string, messageID: string | undefined, context: {
8
+ chunkCount: number;
9
+ uniqueFiles: number;
10
+ contextTokens: number;
11
+ topScore: number;
12
+ retrievalTimeMs: number;
13
+ }): void;
14
+ }
15
+ export declare function createSessionLogger(storePath: string): SessionLogger;
16
+ export {};
@@ -0,0 +1,124 @@
1
+ import { appendSessionEvent } from "./storage.js";
2
+ export function createSessionLogger(storePath) {
3
+ return {
4
+ onEvent(event) {
5
+ try {
6
+ const props = event.properties;
7
+ if (!props)
8
+ return;
9
+ switch (event.type) {
10
+ case "message.updated": {
11
+ const info = props.info;
12
+ if (!info || info.role !== "assistant")
13
+ return;
14
+ const ev = {
15
+ ts: Date.now(),
16
+ event: "message",
17
+ sessionID: info.sessionID,
18
+ messageID: info.id,
19
+ role: "assistant",
20
+ modelID: info.modelID,
21
+ providerID: info.providerID,
22
+ tokens: info.tokens,
23
+ cost: info.cost,
24
+ finish: info.finish,
25
+ timeCreated: info.time?.created,
26
+ timeCompleted: info.time?.completed,
27
+ errorName: info.error?.name,
28
+ };
29
+ appendSessionEvent(storePath, ev);
30
+ break;
31
+ }
32
+ case "message.part.updated": {
33
+ const part = props.part;
34
+ if (!part)
35
+ return;
36
+ if (part.type === "step-finish") {
37
+ const ev = {
38
+ ts: Date.now(),
39
+ event: "step",
40
+ sessionID: part.sessionID,
41
+ messageID: part.messageID,
42
+ stepTokens: part.tokens,
43
+ stepCost: part.cost,
44
+ stepReason: part.reason,
45
+ };
46
+ appendSessionEvent(storePath, ev);
47
+ }
48
+ if (part.type === "tool") {
49
+ const state = part.state;
50
+ const status = state?.status;
51
+ const timeStart = state?.time?.start;
52
+ const timeEnd = state?.time?.end;
53
+ const duration = (timeStart != null && timeEnd != null) ? timeEnd - timeStart : undefined;
54
+ const ev = {
55
+ ts: Date.now(),
56
+ event: "tool",
57
+ sessionID: part.sessionID,
58
+ messageID: part.messageID,
59
+ tool: part.tool,
60
+ toolStatus: status,
61
+ toolTimeStart: timeStart,
62
+ toolTimeEnd: timeEnd,
63
+ toolDurationMs: duration,
64
+ };
65
+ appendSessionEvent(storePath, ev);
66
+ }
67
+ break;
68
+ }
69
+ case "session.created": {
70
+ const info = props.info;
71
+ if (!info?.id)
72
+ return;
73
+ const ev = {
74
+ ts: Date.now(),
75
+ event: "session.created",
76
+ sessionID: info.id,
77
+ sessionTitle: info.title,
78
+ };
79
+ appendSessionEvent(storePath, ev);
80
+ break;
81
+ }
82
+ case "session.status": {
83
+ const sessionID = props.sessionID;
84
+ const status = props.status;
85
+ if (!sessionID)
86
+ return;
87
+ const ev = {
88
+ ts: Date.now(),
89
+ event: "session.status",
90
+ sessionID,
91
+ sessionStatus: status?.type,
92
+ };
93
+ appendSessionEvent(storePath, ev);
94
+ break;
95
+ }
96
+ }
97
+ }
98
+ catch {
99
+ // Event logging must never break the plugin.
100
+ }
101
+ },
102
+ onRagContext(sessionID, messageID, context) {
103
+ try {
104
+ const ev = {
105
+ ts: Date.now(),
106
+ event: "rag.context",
107
+ sessionID,
108
+ messageID,
109
+ ragInjected: context.chunkCount > 0,
110
+ ragChunkCount: context.chunkCount,
111
+ ragUniqueFiles: context.uniqueFiles,
112
+ ragContextTokens: context.contextTokens,
113
+ ragTopScore: context.topScore,
114
+ ragRetrievalTimeMs: context.retrievalTimeMs,
115
+ };
116
+ appendSessionEvent(storePath, ev);
117
+ }
118
+ catch {
119
+ // Logging must never break the plugin.
120
+ }
121
+ },
122
+ };
123
+ }
124
+ //# sourceMappingURL=session-logger.js.map